cyfaust 0.1.0__cp311-cp311-macosx_15_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (693) hide show
  1. cyfaust/CMakeLists.txt +93 -0
  2. cyfaust/__init__.py +0 -0
  3. cyfaust/__main__.py +819 -0
  4. cyfaust/box.pxd +46 -0
  5. cyfaust/box.pyx +2459 -0
  6. cyfaust/common.pxd +5 -0
  7. cyfaust/common.pyx +61 -0
  8. cyfaust/cyfaust.cpython-311-darwin.so +0 -0
  9. cyfaust/faust_box.pxd +298 -0
  10. cyfaust/faust_box_oo.pyx +66 -0
  11. cyfaust/faust_gui.pxd +261 -0
  12. cyfaust/faust_interp.pxd +160 -0
  13. cyfaust/faust_player.pxd +80 -0
  14. cyfaust/faust_signal.pxd +257 -0
  15. cyfaust/gui_statics.cpp +15 -0
  16. cyfaust/interp.pyx +673 -0
  17. cyfaust/player.cpp +32519 -0
  18. cyfaust/player.pyx +191 -0
  19. cyfaust/resources/architecture/AU/AUPublic/AUBase/AUBase.cpp +2327 -0
  20. cyfaust/resources/architecture/AU/AUPublic/AUBase/AUBase.h +1019 -0
  21. cyfaust/resources/architecture/AU/AUPublic/AUBase/AUDispatch.cpp +423 -0
  22. cyfaust/resources/architecture/AU/AUPublic/AUBase/AUDispatch.h +82 -0
  23. cyfaust/resources/architecture/AU/AUPublic/AUBase/AUInputElement.cpp +151 -0
  24. cyfaust/resources/architecture/AU/AUPublic/AUBase/AUInputElement.h +119 -0
  25. cyfaust/resources/architecture/AU/AUPublic/AUBase/AUOutputElement.cpp +62 -0
  26. cyfaust/resources/architecture/AU/AUPublic/AUBase/AUOutputElement.h +66 -0
  27. cyfaust/resources/architecture/AU/AUPublic/AUBase/AUPlugInDispatch.cpp +615 -0
  28. cyfaust/resources/architecture/AU/AUPublic/AUBase/AUPlugInDispatch.h +128 -0
  29. cyfaust/resources/architecture/AU/AUPublic/AUBase/AUScopeElement.cpp +512 -0
  30. cyfaust/resources/architecture/AU/AUPublic/AUBase/AUScopeElement.h +544 -0
  31. cyfaust/resources/architecture/AU/AUPublic/AUBase/ComponentBase.cpp +370 -0
  32. cyfaust/resources/architecture/AU/AUPublic/AUBase/ComponentBase.h +340 -0
  33. cyfaust/resources/architecture/AU/AUPublic/AUEffectBase/AUEffectBase.cpp +463 -0
  34. cyfaust/resources/architecture/AU/AUPublic/AUEffectBase/AUEffectBase.h +391 -0
  35. cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/AUInstrumentBase.cpp +837 -0
  36. cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/AUInstrumentBase.h +267 -0
  37. cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/AUMIDIBase.cpp +495 -0
  38. cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/AUMIDIBase.h +213 -0
  39. cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/LockFreeFIFO.h +168 -0
  40. cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/MIDIControlHandler.h +92 -0
  41. cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/MusicDeviceBase.cpp +354 -0
  42. cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/MusicDeviceBase.h +126 -0
  43. cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/SynthElement.cpp +419 -0
  44. cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/SynthElement.h +227 -0
  45. cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/SynthEvent.h +145 -0
  46. cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/SynthNote.cpp +138 -0
  47. cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/SynthNote.h +186 -0
  48. cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/SynthNoteList.cpp +93 -0
  49. cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/SynthNoteList.h +232 -0
  50. cyfaust/resources/architecture/AU/AUPublic/Utility/AUBaseHelper.cpp +134 -0
  51. cyfaust/resources/architecture/AU/AUPublic/Utility/AUBaseHelper.h +80 -0
  52. cyfaust/resources/architecture/AU/AUPublic/Utility/AUBuffer.cpp +217 -0
  53. cyfaust/resources/architecture/AU/AUPublic/Utility/AUBuffer.h +267 -0
  54. cyfaust/resources/architecture/AU/AUPublic/Utility/AUMIDIDefs.h +136 -0
  55. cyfaust/resources/architecture/AU/AUPublic/Utility/AUSilentTimeout.h +93 -0
  56. cyfaust/resources/architecture/AU/English.lproj/InfoPlist.strings +0 -0
  57. cyfaust/resources/architecture/AU/FaustAU.exp +2 -0
  58. cyfaust/resources/architecture/AU/FaustAU.xcodeproj/project.pbxproj +968 -0
  59. cyfaust/resources/architecture/AU/FaustAU.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  60. cyfaust/resources/architecture/AU/FaustAUCustomView.plist +14 -0
  61. cyfaust/resources/architecture/AU/Info.plist +47 -0
  62. cyfaust/resources/architecture/AU/PublicUtility/CAAtomic.h +305 -0
  63. cyfaust/resources/architecture/AU/PublicUtility/CAAtomicStack.h +239 -0
  64. cyfaust/resources/architecture/AU/PublicUtility/CAAudioChannelLayout.cpp +153 -0
  65. cyfaust/resources/architecture/AU/PublicUtility/CAAudioChannelLayout.h +199 -0
  66. cyfaust/resources/architecture/AU/PublicUtility/CAAutoDisposer.h +508 -0
  67. cyfaust/resources/architecture/AU/PublicUtility/CABufferList.cpp +264 -0
  68. cyfaust/resources/architecture/AU/PublicUtility/CABufferList.h +319 -0
  69. cyfaust/resources/architecture/AU/PublicUtility/CAByteOrder.h +161 -0
  70. cyfaust/resources/architecture/AU/PublicUtility/CADebugMacros.cpp +88 -0
  71. cyfaust/resources/architecture/AU/PublicUtility/CADebugMacros.h +580 -0
  72. cyfaust/resources/architecture/AU/PublicUtility/CADebugPrintf.cpp +89 -0
  73. cyfaust/resources/architecture/AU/PublicUtility/CADebugPrintf.h +115 -0
  74. cyfaust/resources/architecture/AU/PublicUtility/CADebugger.cpp +77 -0
  75. cyfaust/resources/architecture/AU/PublicUtility/CADebugger.h +56 -0
  76. cyfaust/resources/architecture/AU/PublicUtility/CAException.h +83 -0
  77. cyfaust/resources/architecture/AU/PublicUtility/CAGuard.cpp +339 -0
  78. cyfaust/resources/architecture/AU/PublicUtility/CAGuard.h +133 -0
  79. cyfaust/resources/architecture/AU/PublicUtility/CAHostTimeBase.cpp +110 -0
  80. cyfaust/resources/architecture/AU/PublicUtility/CAHostTimeBase.h +231 -0
  81. cyfaust/resources/architecture/AU/PublicUtility/CALogMacros.h +140 -0
  82. cyfaust/resources/architecture/AU/PublicUtility/CAMath.h +68 -0
  83. cyfaust/resources/architecture/AU/PublicUtility/CAMutex.cpp +345 -0
  84. cyfaust/resources/architecture/AU/PublicUtility/CAMutex.h +163 -0
  85. cyfaust/resources/architecture/AU/PublicUtility/CAReferenceCounted.h +87 -0
  86. cyfaust/resources/architecture/AU/PublicUtility/CAStreamBasicDescription.cpp +795 -0
  87. cyfaust/resources/architecture/AU/PublicUtility/CAStreamBasicDescription.h +409 -0
  88. cyfaust/resources/architecture/AU/PublicUtility/CAThreadSafeList.h +255 -0
  89. cyfaust/resources/architecture/AU/PublicUtility/CAVectorUnit.cpp +191 -0
  90. cyfaust/resources/architecture/AU/PublicUtility/CAVectorUnit.h +100 -0
  91. cyfaust/resources/architecture/AU/PublicUtility/CAVectorUnitTypes.h +59 -0
  92. cyfaust/resources/architecture/AU/PublicUtility/CAXException.cpp +49 -0
  93. cyfaust/resources/architecture/AU/PublicUtility/CAXException.h +338 -0
  94. cyfaust/resources/architecture/AU/SectionPatternLight.tiff +0 -0
  95. cyfaust/resources/architecture/AU/Source/AUSource/FaustAU.h +38 -0
  96. cyfaust/resources/architecture/AU/Source/AUSource/FaustAU.r +153 -0
  97. cyfaust/resources/architecture/AU/Source/AUSource/FaustAUVersion.h +64 -0
  98. cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_Bargraph.h +18 -0
  99. cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_Bargraph.m +21 -0
  100. cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_Button.h +20 -0
  101. cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_Button.m +56 -0
  102. cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_CustomView.h +87 -0
  103. cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_CustomView.m +834 -0
  104. cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_CustomViewFactory.h +13 -0
  105. cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_CustomViewFactory.m +22 -0
  106. cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_Knob.h +81 -0
  107. cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_Knob.m +199 -0
  108. cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_Slider.h +18 -0
  109. cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_Slider.m +21 -0
  110. cyfaust/resources/architecture/AU/version.plist +16 -0
  111. cyfaust/resources/architecture/VST/Info.plist +28 -0
  112. cyfaust/resources/architecture/VST/PkgInfo +1 -0
  113. cyfaust/resources/architecture/VST/README +11 -0
  114. cyfaust/resources/architecture/VST/VST.xcode/project.pbxproj +655 -0
  115. cyfaust/resources/architecture/alsa-console.cpp +246 -0
  116. cyfaust/resources/architecture/alsa-gtk.cpp +220 -0
  117. cyfaust/resources/architecture/alsa-qt.cpp +229 -0
  118. cyfaust/resources/architecture/api/DspFaust.cpp +612 -0
  119. cyfaust/resources/architecture/api/DspFaust.h +511 -0
  120. cyfaust/resources/architecture/api/README.md +237 -0
  121. cyfaust/resources/architecture/api/doc/Generic.md +38 -0
  122. cyfaust/resources/architecture/au-effect.cpp +487 -0
  123. cyfaust/resources/architecture/au-instrument.cpp +573 -0
  124. cyfaust/resources/architecture/bench.cpp +91 -0
  125. cyfaust/resources/architecture/c-jack-gtk.c +227 -0
  126. cyfaust/resources/architecture/ca-gtk.cpp +284 -0
  127. cyfaust/resources/architecture/ca-qt.cpp +424 -0
  128. cyfaust/resources/architecture/cpal.rs +195 -0
  129. cyfaust/resources/architecture/csound.cpp +245 -0
  130. cyfaust/resources/architecture/csvplot.cpp +227 -0
  131. cyfaust/resources/architecture/daisy/Makefile +14 -0
  132. cyfaust/resources/architecture/daisy/README.md +50 -0
  133. cyfaust/resources/architecture/daisy/ex_faust.cpp +173 -0
  134. cyfaust/resources/architecture/dssi.cpp +1262 -0
  135. cyfaust/resources/architecture/dummy-mem.cpp +186 -0
  136. cyfaust/resources/architecture/dummy.cpp +294 -0
  137. cyfaust/resources/architecture/faust/au/AUUI.h +404 -0
  138. cyfaust/resources/architecture/faust/audio/alsa-dsp.h +693 -0
  139. cyfaust/resources/architecture/faust/audio/android-dsp.h +583 -0
  140. cyfaust/resources/architecture/faust/audio/audio.h +115 -0
  141. cyfaust/resources/architecture/faust/audio/channels.h +122 -0
  142. cyfaust/resources/architecture/faust/audio/coreaudio-dsp.h +1543 -0
  143. cyfaust/resources/architecture/faust/audio/coreaudio-ios-dsp.h +743 -0
  144. cyfaust/resources/architecture/faust/audio/dummy-audio.h +255 -0
  145. cyfaust/resources/architecture/faust/audio/esp32-dsp.h +284 -0
  146. cyfaust/resources/architecture/faust/audio/fpe.h +164 -0
  147. cyfaust/resources/architecture/faust/audio/jack-dsp.h +534 -0
  148. cyfaust/resources/architecture/faust/audio/juce-dsp.h +119 -0
  149. cyfaust/resources/architecture/faust/audio/netjack-dsp.h +354 -0
  150. cyfaust/resources/architecture/faust/audio/oboe-dsp.h +308 -0
  151. cyfaust/resources/architecture/faust/audio/ofaudio-dsp.h +155 -0
  152. cyfaust/resources/architecture/faust/audio/opensles-android-dsp.h +631 -0
  153. cyfaust/resources/architecture/faust/audio/osc-dsp.h +120 -0
  154. cyfaust/resources/architecture/faust/audio/portaudio-dsp.h +236 -0
  155. cyfaust/resources/architecture/faust/audio/rtaudio-dsp.h +241 -0
  156. cyfaust/resources/architecture/faust/audio/samAudio.h +140 -0
  157. cyfaust/resources/architecture/faust/audio/teensy-dsp.h +171 -0
  158. cyfaust/resources/architecture/faust/dsp/cmajor-cpp-dsp.h +253 -0
  159. cyfaust/resources/architecture/faust/dsp/cmajorpatch-dsp.h +483 -0
  160. cyfaust/resources/architecture/faust/dsp/cpp-dsp-adapter.h +38 -0
  161. cyfaust/resources/architecture/faust/dsp/dsp-adapter.h +836 -0
  162. cyfaust/resources/architecture/faust/dsp/dsp-bench.h +611 -0
  163. cyfaust/resources/architecture/faust/dsp/dsp-checker.h +115 -0
  164. cyfaust/resources/architecture/faust/dsp/dsp-combiner.h +810 -0
  165. cyfaust/resources/architecture/faust/dsp/dsp-compute-adapter.h +159 -0
  166. cyfaust/resources/architecture/faust/dsp/dsp-multi.h +702 -0
  167. cyfaust/resources/architecture/faust/dsp/dsp-multifun.h +90 -0
  168. cyfaust/resources/architecture/faust/dsp/dsp-optimizer.h +511 -0
  169. cyfaust/resources/architecture/faust/dsp/dsp-tools.h +229 -0
  170. cyfaust/resources/architecture/faust/dsp/dsp.h +321 -0
  171. cyfaust/resources/architecture/faust/dsp/fastmath.cpp +301 -0
  172. cyfaust/resources/architecture/faust/dsp/faust-dynamic-engine.cpp +494 -0
  173. cyfaust/resources/architecture/faust/dsp/faust-dynamic-engine.h +386 -0
  174. cyfaust/resources/architecture/faust/dsp/faust-engine.h +75 -0
  175. cyfaust/resources/architecture/faust/dsp/faust-poly-engine.h +638 -0
  176. cyfaust/resources/architecture/faust/dsp/interpreter-dsp-c.h +288 -0
  177. cyfaust/resources/architecture/faust/dsp/interpreter-dsp.h +362 -0
  178. cyfaust/resources/architecture/faust/dsp/interpreter-machine-dsp.h +233 -0
  179. cyfaust/resources/architecture/faust/dsp/libfaust-box-c.h +817 -0
  180. cyfaust/resources/architecture/faust/dsp/libfaust-box.h +889 -0
  181. cyfaust/resources/architecture/faust/dsp/libfaust-c.h +116 -0
  182. cyfaust/resources/architecture/faust/dsp/libfaust-signal-c.h +649 -0
  183. cyfaust/resources/architecture/faust/dsp/libfaust-signal.h +731 -0
  184. cyfaust/resources/architecture/faust/dsp/llvm-dsp-adapter.h +160 -0
  185. cyfaust/resources/architecture/faust/dsp/llvm-dsp-c.h +524 -0
  186. cyfaust/resources/architecture/faust/dsp/llvm-dsp.h +575 -0
  187. cyfaust/resources/architecture/faust/dsp/llvm-machine-dsp.h +215 -0
  188. cyfaust/resources/architecture/faust/dsp/one-sample-dsp.h +477 -0
  189. cyfaust/resources/architecture/faust/dsp/poly-dsp.h +1079 -0
  190. cyfaust/resources/architecture/faust/dsp/poly-interpreter-dsp.h +143 -0
  191. cyfaust/resources/architecture/faust/dsp/poly-llvm-dsp.h +249 -0
  192. cyfaust/resources/architecture/faust/dsp/poly-wasm-dsp.h +257 -0
  193. cyfaust/resources/architecture/faust/dsp/proxy-dsp.h +108 -0
  194. cyfaust/resources/architecture/faust/dsp/proxy-osc-dsp.h +109 -0
  195. cyfaust/resources/architecture/faust/dsp/rnbo-dsp.h +187 -0
  196. cyfaust/resources/architecture/faust/dsp/sound-player.h +428 -0
  197. cyfaust/resources/architecture/faust/dsp/timed-dsp.h +279 -0
  198. cyfaust/resources/architecture/faust/dsp/wasm-dsp-imp.h +188 -0
  199. cyfaust/resources/architecture/faust/dsp/wasm-dsp.h +309 -0
  200. cyfaust/resources/architecture/faust/dsp/ysfx-dsp.h +188 -0
  201. cyfaust/resources/architecture/faust/export.h +61 -0
  202. cyfaust/resources/architecture/faust/gui/APIUI.h +726 -0
  203. cyfaust/resources/architecture/faust/gui/BelaOSCUI.h +170 -0
  204. cyfaust/resources/architecture/faust/gui/CGlue.h +667 -0
  205. cyfaust/resources/architecture/faust/gui/CInterface.h +142 -0
  206. cyfaust/resources/architecture/faust/gui/ControlSequenceUI.h +197 -0
  207. cyfaust/resources/architecture/faust/gui/ControlUI.h +137 -0
  208. cyfaust/resources/architecture/faust/gui/DaisyControlUI.h +283 -0
  209. cyfaust/resources/architecture/faust/gui/DaisyPatchInitControlUI.h +254 -0
  210. cyfaust/resources/architecture/faust/gui/DecoratorUI.h +115 -0
  211. cyfaust/resources/architecture/faust/gui/Esp32ControlUI.h +341 -0
  212. cyfaust/resources/architecture/faust/gui/Esp32Reader.h +102 -0
  213. cyfaust/resources/architecture/faust/gui/Esp32SensorUI.h +137 -0
  214. cyfaust/resources/architecture/faust/gui/FUI.h +147 -0
  215. cyfaust/resources/architecture/faust/gui/GTKUI.h +1414 -0
  216. cyfaust/resources/architecture/faust/gui/GUI.h +465 -0
  217. cyfaust/resources/architecture/faust/gui/JSONControl.h +48 -0
  218. cyfaust/resources/architecture/faust/gui/JSONUI.h +722 -0
  219. cyfaust/resources/architecture/faust/gui/JSONUIDecoder.h +589 -0
  220. cyfaust/resources/architecture/faust/gui/JuceGUI.h +2061 -0
  221. cyfaust/resources/architecture/faust/gui/JuceOSCUI.h +163 -0
  222. cyfaust/resources/architecture/faust/gui/JuceParameterUI.h +158 -0
  223. cyfaust/resources/architecture/faust/gui/JuceReader.h +103 -0
  224. cyfaust/resources/architecture/faust/gui/JuceStateUI.h +88 -0
  225. cyfaust/resources/architecture/faust/gui/LayoutUI.h +423 -0
  226. cyfaust/resources/architecture/faust/gui/LibsndfileReader.h +366 -0
  227. cyfaust/resources/architecture/faust/gui/MapUI.h +370 -0
  228. cyfaust/resources/architecture/faust/gui/MemoryReader.h +111 -0
  229. cyfaust/resources/architecture/faust/gui/MetaDataUI.h +357 -0
  230. cyfaust/resources/architecture/faust/gui/MidiUI.h +939 -0
  231. cyfaust/resources/architecture/faust/gui/OCVUI.h +688 -0
  232. cyfaust/resources/architecture/faust/gui/OSCUI.h +219 -0
  233. cyfaust/resources/architecture/faust/gui/PathBuilder.h +228 -0
  234. cyfaust/resources/architecture/faust/gui/PresetUI.h +337 -0
  235. cyfaust/resources/architecture/faust/gui/PrintCUI.h +152 -0
  236. cyfaust/resources/architecture/faust/gui/PrintUI.h +121 -0
  237. cyfaust/resources/architecture/faust/gui/QTUI.h +1891 -0
  238. cyfaust/resources/architecture/faust/gui/RosCI.h +493 -0
  239. cyfaust/resources/architecture/faust/gui/RosUI.h +488 -0
  240. cyfaust/resources/architecture/faust/gui/SaveUI.h +163 -0
  241. cyfaust/resources/architecture/faust/gui/SimpleParser.h +583 -0
  242. cyfaust/resources/architecture/faust/gui/SoundUI.h +217 -0
  243. cyfaust/resources/architecture/faust/gui/Soundfile.h +342 -0
  244. cyfaust/resources/architecture/faust/gui/Styles/Blue.qrc +5 -0
  245. cyfaust/resources/architecture/faust/gui/Styles/Blue.qss +177 -0
  246. cyfaust/resources/architecture/faust/gui/Styles/Default.qrc +5 -0
  247. cyfaust/resources/architecture/faust/gui/Styles/Default.qss +117 -0
  248. cyfaust/resources/architecture/faust/gui/Styles/Grey.qrc +5 -0
  249. cyfaust/resources/architecture/faust/gui/Styles/Grey.qss +174 -0
  250. cyfaust/resources/architecture/faust/gui/Styles/Salmon.qrc +5 -0
  251. cyfaust/resources/architecture/faust/gui/Styles/Salmon.qss +171 -0
  252. cyfaust/resources/architecture/faust/gui/UI.h +87 -0
  253. cyfaust/resources/architecture/faust/gui/ValueConverter.h +543 -0
  254. cyfaust/resources/architecture/faust/gui/WaveReader.h +364 -0
  255. cyfaust/resources/architecture/faust/gui/console.h +322 -0
  256. cyfaust/resources/architecture/faust/gui/httpdUI.h +372 -0
  257. cyfaust/resources/architecture/faust/gui/meta.h +39 -0
  258. cyfaust/resources/architecture/faust/gui/mspUI.h +580 -0
  259. cyfaust/resources/architecture/faust/gui/qrcodegen.h +269 -0
  260. cyfaust/resources/architecture/faust/gui/qrcodegen.impl.h +1025 -0
  261. cyfaust/resources/architecture/faust/gui/ring-buffer.h +414 -0
  262. cyfaust/resources/architecture/faust/midi/RtMidi.cpp +3054 -0
  263. cyfaust/resources/architecture/faust/midi/RtMidi.h +1034 -0
  264. cyfaust/resources/architecture/faust/midi/bela-midi.h +266 -0
  265. cyfaust/resources/architecture/faust/midi/daisy-midi.h +116 -0
  266. cyfaust/resources/architecture/faust/midi/esp32-midi.h +185 -0
  267. cyfaust/resources/architecture/faust/midi/gramophone-midi.h +107 -0
  268. cyfaust/resources/architecture/faust/midi/iplug2-midi.h +148 -0
  269. cyfaust/resources/architecture/faust/midi/jack-midi.h +247 -0
  270. cyfaust/resources/architecture/faust/midi/juce-midi.h +275 -0
  271. cyfaust/resources/architecture/faust/midi/midi.h +475 -0
  272. cyfaust/resources/architecture/faust/midi/rt-midi.h +315 -0
  273. cyfaust/resources/architecture/faust/midi/teensy-midi.h +89 -0
  274. cyfaust/resources/architecture/faust/misc.h +106 -0
  275. cyfaust/resources/architecture/faust/sound-file.h +132 -0
  276. cyfaust/resources/architecture/faust/unity/AudioPluginInterface.h +301 -0
  277. cyfaust/resources/architecture/faust/vst/faust.h +141 -0
  278. cyfaust/resources/architecture/faust/vst/voice.h +43 -0
  279. cyfaust/resources/architecture/faust/vst/vstui.h +524 -0
  280. cyfaust/resources/architecture/faustvst.cpp +3435 -0
  281. cyfaust/resources/architecture/faustvstqt.h +91 -0
  282. cyfaust/resources/architecture/gen-json.cpp +76 -0
  283. cyfaust/resources/architecture/jack-console.cpp +267 -0
  284. cyfaust/resources/architecture/jack-gtk-ros.cpp +139 -0
  285. cyfaust/resources/architecture/jack-gtk.cpp +282 -0
  286. cyfaust/resources/architecture/jack-internal.cpp +560 -0
  287. cyfaust/resources/architecture/jack-qt-chain-footer.cpp +87 -0
  288. cyfaust/resources/architecture/jack-qt-chain-header.cpp +92 -0
  289. cyfaust/resources/architecture/jack-qt.cpp +281 -0
  290. cyfaust/resources/architecture/jack.rs +171 -0
  291. cyfaust/resources/architecture/juce/README.md +84 -0
  292. cyfaust/resources/architecture/juce/juce-plugin.cpp +809 -0
  293. cyfaust/resources/architecture/juce/juce-standalone.cpp +413 -0
  294. cyfaust/resources/architecture/juce/plugin/plugin-llvm.jucer +184 -0
  295. cyfaust/resources/architecture/juce/plugin/plugin.jucer +159 -0
  296. cyfaust/resources/architecture/juce/standalone/standalone-llvm.jucer +216 -0
  297. cyfaust/resources/architecture/juce/standalone/standalone.jucer +191 -0
  298. cyfaust/resources/architecture/ladspa.cpp +543 -0
  299. cyfaust/resources/architecture/latexheader.tex +65 -0
  300. cyfaust/resources/architecture/lv2.cpp +2090 -0
  301. cyfaust/resources/architecture/lv2qtgui.h +62 -0
  302. cyfaust/resources/architecture/lv2ui.cpp +1966 -0
  303. cyfaust/resources/architecture/max-msp/README.md +109 -0
  304. cyfaust/resources/architecture/max-msp/faustgen-wrapper-poly.maxpat +184 -0
  305. cyfaust/resources/architecture/max-msp/faustgen-wrapper.maxpat +163 -0
  306. cyfaust/resources/architecture/max-msp/max-msp.cpp +734 -0
  307. cyfaust/resources/architecture/max-msp/max-msp64.cpp +789 -0
  308. cyfaust/resources/architecture/max-msp/py2max/README.md +277 -0
  309. cyfaust/resources/architecture/max-msp/py2max/py2max/__init__.py +3 -0
  310. cyfaust/resources/architecture/max-msp/py2max/py2max/common.py +7 -0
  311. cyfaust/resources/architecture/max-msp/py2max/py2max/core.py +1387 -0
  312. cyfaust/resources/architecture/max-msp/py2max/py2max/maxclassdb.py +318 -0
  313. cyfaust/resources/architecture/max-msp/py2max/py2max/utils.py +20 -0
  314. cyfaust/resources/architecture/max-msp/rnbo.py +1591 -0
  315. cyfaust/resources/architecture/max-msp/sndfile/sndfile.h +857 -0
  316. cyfaust/resources/architecture/max-msp/ui.js +230 -0
  317. cyfaust/resources/architecture/max-msp/wrapper-poly.maxpat +153 -0
  318. cyfaust/resources/architecture/max-msp/wrapper.maxpat +131 -0
  319. cyfaust/resources/architecture/minimal-bench.cpp +100 -0
  320. cyfaust/resources/architecture/minimal-effect.c +149 -0
  321. cyfaust/resources/architecture/minimal-effect.cpp +70 -0
  322. cyfaust/resources/architecture/minimal-fixed-point.cpp +195 -0
  323. cyfaust/resources/architecture/minimal-static.cpp +160 -0
  324. cyfaust/resources/architecture/minimal.c +103 -0
  325. cyfaust/resources/architecture/minimal.cpp +84 -0
  326. cyfaust/resources/architecture/minimal.rs +223 -0
  327. cyfaust/resources/architecture/module.cpp +91 -0
  328. cyfaust/resources/architecture/octave.cpp +471 -0
  329. cyfaust/resources/architecture/oscio-gtk.cpp +115 -0
  330. cyfaust/resources/architecture/oscio-qt.cpp +121 -0
  331. cyfaust/resources/architecture/owl.cpp +345 -0
  332. cyfaust/resources/architecture/pa-gtk.cpp +119 -0
  333. cyfaust/resources/architecture/pa-qt.cpp +261 -0
  334. cyfaust/resources/architecture/path-printer.cpp +100 -0
  335. cyfaust/resources/architecture/plot.cpp +128 -0
  336. cyfaust/resources/architecture/portaudio.rs +192 -0
  337. cyfaust/resources/architecture/puredata.cpp +636 -0
  338. cyfaust/resources/architecture/ra-qt.cpp +238 -0
  339. cyfaust/resources/architecture/sam/fast_pow2.h +69 -0
  340. cyfaust/resources/architecture/sam/fastexp.h +140 -0
  341. cyfaust/resources/architecture/sam/samFaustDSP.cpp +125 -0
  342. cyfaust/resources/architecture/sam/samFaustDSP.h +107 -0
  343. cyfaust/resources/architecture/scheduler.cpp +1391 -0
  344. cyfaust/resources/architecture/sndfile.cpp +291 -0
  345. cyfaust/resources/architecture/supercollider.cpp +611 -0
  346. cyfaust/resources/architecture/teensy/README.md +13 -0
  347. cyfaust/resources/architecture/teensy/teensy.cpp +214 -0
  348. cyfaust/resources/architecture/teensy/teensy.h +71 -0
  349. cyfaust/resources/architecture/thread.h +373 -0
  350. cyfaust/resources/architecture/vcvrack/README.md +78 -0
  351. cyfaust/resources/architecture/vcvrack/template/.gitignore +6 -0
  352. cyfaust/resources/architecture/vcvrack/template/Makefile +22 -0
  353. cyfaust/resources/architecture/vcvrack/template/res/FaustModule.svg +299 -0
  354. cyfaust/resources/architecture/vcvrack/template/src/FaustModule.cpp +942 -0
  355. cyfaust/resources/architecture/vst.cpp +947 -0
  356. cyfaust/resources/libraries/aanl.lib +900 -0
  357. cyfaust/resources/libraries/all.lib +36 -0
  358. cyfaust/resources/libraries/analyzers.lib +980 -0
  359. cyfaust/resources/libraries/basics.lib +2681 -0
  360. cyfaust/resources/libraries/compressors.lib +1341 -0
  361. cyfaust/resources/libraries/delays.lib +401 -0
  362. cyfaust/resources/libraries/demos.lib +1556 -0
  363. cyfaust/resources/libraries/dx7.lib +1036 -0
  364. cyfaust/resources/libraries/effect.lib +1645 -0
  365. cyfaust/resources/libraries/envelopes.lib +666 -0
  366. cyfaust/resources/libraries/examples/README.md +13 -0
  367. cyfaust/resources/libraries/examples/ambisonics/fourSourcesToOcto.dsp +20 -0
  368. cyfaust/resources/libraries/examples/ambisonics/oneSourceToStereo.dsp +12 -0
  369. cyfaust/resources/libraries/examples/analysis/FFT.dsp +26 -0
  370. cyfaust/resources/libraries/examples/analysis/dbmeter.dsp +19 -0
  371. cyfaust/resources/libraries/examples/analysis/spectralLevel.dsp +8 -0
  372. cyfaust/resources/libraries/examples/analysis/spectralTiltLab.dsp +20 -0
  373. cyfaust/resources/libraries/examples/analysis/vumeter.dsp +18 -0
  374. cyfaust/resources/libraries/examples/autodiff/delay/diff.dsp +2 -0
  375. cyfaust/resources/libraries/examples/autodiff/delay/gt.dsp +2 -0
  376. cyfaust/resources/libraries/examples/autodiff/gain/diff.dsp +7 -0
  377. cyfaust/resources/libraries/examples/autodiff/gain/gt.dsp +1 -0
  378. cyfaust/resources/libraries/examples/autodiff/gain_dc/diff.dsp +7 -0
  379. cyfaust/resources/libraries/examples/autodiff/gain_dc/gt.dsp +4 -0
  380. cyfaust/resources/libraries/examples/autodiff/gain_exp/diff.dsp +9 -0
  381. cyfaust/resources/libraries/examples/autodiff/gain_exp/gt.dsp +1 -0
  382. cyfaust/resources/libraries/examples/autodiff/gain_pow/diff.dsp +9 -0
  383. cyfaust/resources/libraries/examples/autodiff/gain_pow/gt.dsp +1 -0
  384. cyfaust/resources/libraries/examples/autodiff/gain_pow_trig/diff.dsp +12 -0
  385. cyfaust/resources/libraries/examples/autodiff/gain_pow_trig/gt.dsp +1 -0
  386. cyfaust/resources/libraries/examples/autodiff/gain_sq/diff.dsp +7 -0
  387. cyfaust/resources/libraries/examples/autodiff/gain_sq/gt.dsp +1 -0
  388. cyfaust/resources/libraries/examples/autodiff/mem/diff.dsp +1 -0
  389. cyfaust/resources/libraries/examples/autodiff/mem/gt.dsp +1 -0
  390. cyfaust/resources/libraries/examples/autodiff/noise.dsp +2 -0
  391. cyfaust/resources/libraries/examples/autodiff/noop.dsp +2 -0
  392. cyfaust/resources/libraries/examples/autodiff/one_zero/diff.dsp +2 -0
  393. cyfaust/resources/libraries/examples/autodiff/one_zero/gt.dsp +2 -0
  394. cyfaust/resources/libraries/examples/autodiff/ramp.dsp +1 -0
  395. cyfaust/resources/libraries/examples/autodiff/recursion/diff.dsp +2 -0
  396. cyfaust/resources/libraries/examples/autodiff/recursion/gt.dsp +1 -0
  397. cyfaust/resources/libraries/examples/autodiff/recursion/target.dsp +13 -0
  398. cyfaust/resources/libraries/examples/autodiff/tremolo/diff.dsp +14 -0
  399. cyfaust/resources/libraries/examples/autodiff/tremolo/diffable.lib +7 -0
  400. cyfaust/resources/libraries/examples/autodiff/tremolo/gt.dsp +11 -0
  401. cyfaust/resources/libraries/examples/delayEcho/echo.dsp +15 -0
  402. cyfaust/resources/libraries/examples/delayEcho/quadEcho.dsp +21 -0
  403. cyfaust/resources/libraries/examples/delayEcho/smoothDelay.dsp +26 -0
  404. cyfaust/resources/libraries/examples/delayEcho/stereoEcho.dsp +16 -0
  405. cyfaust/resources/libraries/examples/delayEcho/tapiir.dsp +44 -0
  406. cyfaust/resources/libraries/examples/dynamic/compressor.dsp +8 -0
  407. cyfaust/resources/libraries/examples/dynamic/distortion.dsp +8 -0
  408. cyfaust/resources/libraries/examples/dynamic/gateCompressor.dsp +10 -0
  409. cyfaust/resources/libraries/examples/dynamic/noiseGate.dsp +8 -0
  410. cyfaust/resources/libraries/examples/dynamic/volume.dsp +15 -0
  411. cyfaust/resources/libraries/examples/filtering/APF.dsp +13 -0
  412. cyfaust/resources/libraries/examples/filtering/BPF.dsp +13 -0
  413. cyfaust/resources/libraries/examples/filtering/DNN.dsp +25 -0
  414. cyfaust/resources/libraries/examples/filtering/HPF.dsp +13 -0
  415. cyfaust/resources/libraries/examples/filtering/LPF.dsp +13 -0
  416. cyfaust/resources/libraries/examples/filtering/bandFilter.dsp +44 -0
  417. cyfaust/resources/libraries/examples/filtering/cryBaby.dsp +4 -0
  418. cyfaust/resources/libraries/examples/filtering/diodeLadder.dsp +12 -0
  419. cyfaust/resources/libraries/examples/filtering/filterBank.dsp +6 -0
  420. cyfaust/resources/libraries/examples/filtering/graphicEqLab.dsp +10 -0
  421. cyfaust/resources/libraries/examples/filtering/highShelf.dsp +13 -0
  422. cyfaust/resources/libraries/examples/filtering/korg35HPF.dsp +13 -0
  423. cyfaust/resources/libraries/examples/filtering/korg35LPF.dsp +13 -0
  424. cyfaust/resources/libraries/examples/filtering/lfBoost.dsp +40 -0
  425. cyfaust/resources/libraries/examples/filtering/lowBoost.dsp +40 -0
  426. cyfaust/resources/libraries/examples/filtering/lowCut.dsp +40 -0
  427. cyfaust/resources/libraries/examples/filtering/lowShelf.dsp +13 -0
  428. cyfaust/resources/libraries/examples/filtering/moogHalfLadder.dsp +12 -0
  429. cyfaust/resources/libraries/examples/filtering/moogLadder.dsp +12 -0
  430. cyfaust/resources/libraries/examples/filtering/moogVCF.dsp +6 -0
  431. cyfaust/resources/libraries/examples/filtering/multibandFilter.dsp +14 -0
  432. cyfaust/resources/libraries/examples/filtering/notch.dsp +13 -0
  433. cyfaust/resources/libraries/examples/filtering/oberheim.dsp +14 -0
  434. cyfaust/resources/libraries/examples/filtering/oberheimBPF.dsp +13 -0
  435. cyfaust/resources/libraries/examples/filtering/oberheimBSF.dsp +13 -0
  436. cyfaust/resources/libraries/examples/filtering/oberheimHPF.dsp +13 -0
  437. cyfaust/resources/libraries/examples/filtering/oberheimLPF.dsp +13 -0
  438. cyfaust/resources/libraries/examples/filtering/parametricEqLab.dsp +10 -0
  439. cyfaust/resources/libraries/examples/filtering/parametricEqualizer.dsp +6 -0
  440. cyfaust/resources/libraries/examples/filtering/peakNotch.dsp +13 -0
  441. cyfaust/resources/libraries/examples/filtering/peakingEQ.dsp +13 -0
  442. cyfaust/resources/libraries/examples/filtering/sallenKey2ndOrder.dsp +14 -0
  443. cyfaust/resources/libraries/examples/filtering/sallenKey2ndOrderBPF.dsp +13 -0
  444. cyfaust/resources/libraries/examples/filtering/sallenKey2ndOrderHPF.dsp +13 -0
  445. cyfaust/resources/libraries/examples/filtering/sallenKey2ndOrderLPF.dsp +13 -0
  446. cyfaust/resources/libraries/examples/filtering/sallenKeyOnePole.dsp +13 -0
  447. cyfaust/resources/libraries/examples/filtering/sallenKeyOnePoleHPF.dsp +12 -0
  448. cyfaust/resources/libraries/examples/filtering/sallenKeyOnePoleLPF.dsp +12 -0
  449. cyfaust/resources/libraries/examples/filtering/spectralTilt.dsp +8 -0
  450. cyfaust/resources/libraries/examples/filtering/vcfWahLab.dsp +12 -0
  451. cyfaust/resources/libraries/examples/filtering/vocoder.dsp +8 -0
  452. cyfaust/resources/libraries/examples/filtering/wahPedal.dsp +6 -0
  453. cyfaust/resources/libraries/examples/gameaudio/bubble.dsp +42 -0
  454. cyfaust/resources/libraries/examples/gameaudio/door.dsp +58 -0
  455. cyfaust/resources/libraries/examples/gameaudio/fire.dsp +46 -0
  456. cyfaust/resources/libraries/examples/gameaudio/insects.dsp +148 -0
  457. cyfaust/resources/libraries/examples/gameaudio/rain.dsp +27 -0
  458. cyfaust/resources/libraries/examples/gameaudio/wind.dsp +23 -0
  459. cyfaust/resources/libraries/examples/generator/filterOsc.dsp +8 -0
  460. cyfaust/resources/libraries/examples/generator/noise.dsp +52 -0
  461. cyfaust/resources/libraries/examples/generator/noiseMetadata.dsp +74 -0
  462. cyfaust/resources/libraries/examples/generator/osc.dsp +17 -0
  463. cyfaust/resources/libraries/examples/generator/osci.dsp +17 -0
  464. cyfaust/resources/libraries/examples/generator/sawtoothLab.dsp +8 -0
  465. cyfaust/resources/libraries/examples/generator/virtualAnalog.dsp +8 -0
  466. cyfaust/resources/libraries/examples/generator/virtualAnalogLab.dsp +10 -0
  467. cyfaust/resources/libraries/examples/misc/UITester.dsp +71 -0
  468. cyfaust/resources/libraries/examples/misc/autopan.dsp +59 -0
  469. cyfaust/resources/libraries/examples/misc/capture.dsp +24 -0
  470. cyfaust/resources/libraries/examples/misc/drumkit.dsp +36 -0
  471. cyfaust/resources/libraries/examples/misc/guitarix.dsp +184 -0
  472. cyfaust/resources/libraries/examples/misc/matrix.dsp +17 -0
  473. cyfaust/resources/libraries/examples/misc/midiTester.dsp +122 -0
  474. cyfaust/resources/libraries/examples/misc/mixer.dsp +27 -0
  475. cyfaust/resources/libraries/examples/misc/statespace.dsp +39 -0
  476. cyfaust/resources/libraries/examples/misc/switcher.dsp +20 -0
  477. cyfaust/resources/libraries/examples/misc/tester.dsp +32 -0
  478. cyfaust/resources/libraries/examples/misc/tester2.dsp +31 -0
  479. cyfaust/resources/libraries/examples/old/README.md +5 -0
  480. cyfaust/resources/libraries/examples/old/freeverb.dsp +109 -0
  481. cyfaust/resources/libraries/examples/old/rewriting/Makefile +21 -0
  482. cyfaust/resources/libraries/examples/old/rewriting/fact.dsp +3 -0
  483. cyfaust/resources/libraries/examples/old/rewriting/fold.dsp +61 -0
  484. cyfaust/resources/libraries/examples/old/rewriting/mesh.dsp +43 -0
  485. cyfaust/resources/libraries/examples/old/rewriting/mesh.pd +37 -0
  486. cyfaust/resources/libraries/examples/old/rewriting/sample.pd +12 -0
  487. cyfaust/resources/libraries/examples/old/rewriting/serial.dsp +7 -0
  488. cyfaust/resources/libraries/examples/old/rewriting/sum.dsp +55 -0
  489. cyfaust/resources/libraries/examples/old/rewriting/test.pd +48 -0
  490. cyfaust/resources/libraries/examples/phasing/flanger.dsp +8 -0
  491. cyfaust/resources/libraries/examples/phasing/phaser.dsp +8 -0
  492. cyfaust/resources/libraries/examples/phasing/phaserFlangerLab.dsp +12 -0
  493. cyfaust/resources/libraries/examples/physicalModeling/brass.dsp +8 -0
  494. cyfaust/resources/libraries/examples/physicalModeling/brassMIDI.dsp +8 -0
  495. cyfaust/resources/libraries/examples/physicalModeling/churchBell.dsp +8 -0
  496. cyfaust/resources/libraries/examples/physicalModeling/clarinet.dsp +8 -0
  497. cyfaust/resources/libraries/examples/physicalModeling/clarinetMIDI.dsp +8 -0
  498. cyfaust/resources/libraries/examples/physicalModeling/djembeMIDI.dsp +8 -0
  499. cyfaust/resources/libraries/examples/physicalModeling/elecGuitarMIDI.dsp +10 -0
  500. cyfaust/resources/libraries/examples/physicalModeling/englishBell.dsp +8 -0
  501. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/NLFeks.dsp +91 -0
  502. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/NLFfm.dsp +70 -0
  503. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/README +125 -0
  504. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/bass.dsp +84 -0
  505. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/bass.h +91 -0
  506. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/blowBottle.dsp +102 -0
  507. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/bowed.dsp +114 -0
  508. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/brass.dsp +103 -0
  509. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/clarinet.dsp +110 -0
  510. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/flute.dsp +116 -0
  511. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/fluteStk.dsp +121 -0
  512. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/glassHarmonica.dsp +131 -0
  513. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/harpsi.dsp +90 -0
  514. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/harpsichord.h +185 -0
  515. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/instrument.h +114 -0
  516. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/modalBar.dsp +122 -0
  517. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/modalBar.h +48 -0
  518. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/audio-out.pd +33 -0
  519. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/bottle.pd +10 -0
  520. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/clarinets.pd +15 -0
  521. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/canon/audio-out.pd +33 -0
  522. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/canon/bass.pd +162 -0
  523. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/canon/canon.pd +55 -0
  524. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/canon/flute.pd +343 -0
  525. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/canon/pachelbel.mid +0 -0
  526. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/daisy/audio-out.pd +33 -0
  527. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/daisy/daisy.mid +0 -0
  528. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/daisy/daisy.pd +45 -0
  529. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/daisy/piano.pd +205 -0
  530. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/daisy/voiceForm.pd +340 -0
  531. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/take5/audio-out.pd +33 -0
  532. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/take5/blowHole.pd +330 -0
  533. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/take5/piano.pd +205 -0
  534. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/take5/take5.mid +0 -0
  535. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/take5/take5.pd +45 -0
  536. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/turkish-march/audio-out.pd +33 -0
  537. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/turkish-march/harpsi.pd +204 -0
  538. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/turkish-march/turkish-march.mid +0 -0
  539. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/turkish-march/turkish-march.pd +31 -0
  540. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/what-a-friend/audio-out.pd +33 -0
  541. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/what-a-friend/bass.pd +162 -0
  542. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/what-a-friend/modalBar.pd +258 -0
  543. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/what-a-friend/piano.pd +205 -0
  544. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/what-a-friend/what-a-friend.pd +52 -0
  545. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/what-a-friend/what_a_friend.mid +0 -0
  546. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/flutes.pd +15 -0
  547. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fm.pd +10 -0
  548. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/glassBare.pd +10 -0
  549. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/harpsichord-poly.pd +10 -0
  550. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/ironBare.pd +10 -0
  551. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/midi-in.pd +111 -0
  552. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/modal.pd +10 -0
  553. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/osc.pd +26 -0
  554. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/piano-poly.pd +10 -0
  555. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/plucked.pd +20 -0
  556. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/saxophone.pd +10 -0
  557. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/tibetan.pd +10 -0
  558. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/trumpet.pd +10 -0
  559. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/violin.pd +10 -0
  560. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/voiceSynth.pd +10 -0
  561. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/woodenBare.pd +10 -0
  562. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/phonemes.h +189 -0
  563. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/piano.dsp +255 -0
  564. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/piano.h +751 -0
  565. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/saxophony.dsp +114 -0
  566. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/sitar.dsp +48 -0
  567. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/tibetanBowl.dsp +155 -0
  568. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/tunedBar.dsp +123 -0
  569. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/uniBar.dsp +100 -0
  570. cyfaust/resources/libraries/examples/physicalModeling/faust-stk/voiceForm.dsp +125 -0
  571. cyfaust/resources/libraries/examples/physicalModeling/fds/1dDampedWaveEquation.dsp +43 -0
  572. cyfaust/resources/libraries/examples/physicalModeling/fds/2dKirchhoffThinPlate.dsp +75 -0
  573. cyfaust/resources/libraries/examples/physicalModeling/fds/BowedString.dsp +61 -0
  574. cyfaust/resources/libraries/examples/physicalModeling/fds/ControllableNonPhysicalString.dsp +72 -0
  575. cyfaust/resources/libraries/examples/physicalModeling/fds/HammeredString.dsp +74 -0
  576. cyfaust/resources/libraries/examples/physicalModeling/fds/PianoHammeredString.dsp +85 -0
  577. cyfaust/resources/libraries/examples/physicalModeling/fds/StiffString.dsp +54 -0
  578. cyfaust/resources/libraries/examples/physicalModeling/flute.dsp +8 -0
  579. cyfaust/resources/libraries/examples/physicalModeling/fluteMIDI.dsp +8 -0
  580. cyfaust/resources/libraries/examples/physicalModeling/frenchBell.dsp +8 -0
  581. cyfaust/resources/libraries/examples/physicalModeling/germanBell.dsp +8 -0
  582. cyfaust/resources/libraries/examples/physicalModeling/guitarMIDI.dsp +8 -0
  583. cyfaust/resources/libraries/examples/physicalModeling/karplus.dsp +8 -0
  584. cyfaust/resources/libraries/examples/physicalModeling/marimbaMIDI.dsp +10 -0
  585. cyfaust/resources/libraries/examples/physicalModeling/mi-faust/00_BasicOscillator/harmonicOscillator.dsp +58 -0
  586. cyfaust/resources/libraries/examples/physicalModeling/mi-faust/00_BasicOscillator/harmonicOscillator2.dsp +62 -0
  587. cyfaust/resources/libraries/examples/physicalModeling/mi-faust/00_BasicOscillator/harmonicOscillator3.dsp +65 -0
  588. cyfaust/resources/libraries/examples/physicalModeling/mi-faust/01_ParamControl/paramOsc.dsp +63 -0
  589. cyfaust/resources/libraries/examples/physicalModeling/mi-faust/02_AudioParamControl/audioParamOsc.dsp +63 -0
  590. cyfaust/resources/libraries/examples/physicalModeling/mi-faust/03_HammerTime/hammerOsc.dsp +71 -0
  591. cyfaust/resources/libraries/examples/physicalModeling/mi-faust/04_Gravity/bouncingOsc.dsp +64 -0
  592. cyfaust/resources/libraries/examples/physicalModeling/mi-faust/05_PluckedOscillator/pluckedOsc.dsp +57 -0
  593. cyfaust/resources/libraries/examples/physicalModeling/mi-faust/06_BowedOscillator/bowedOsc.dsp +65 -0
  594. cyfaust/resources/libraries/examples/physicalModeling/mi-faust/07_NonLinearOscillator/nlOsc.dsp +78 -0
  595. cyfaust/resources/libraries/examples/physicalModeling/mi-faust/08_TwoMassChain/2massChain.dsp +75 -0
  596. cyfaust/resources/libraries/examples/physicalModeling/mi-faust/09_TinyString/tinyString.dsp +101 -0
  597. cyfaust/resources/libraries/examples/physicalModeling/mi-faust/10_PluckedString/pluckedString.dsp +678 -0
  598. cyfaust/resources/libraries/examples/physicalModeling/mi-faust/11_BowedString/bowedString.dsp +671 -0
  599. cyfaust/resources/libraries/examples/physicalModeling/mi-faust/12_TriangleMesh/triangleMesh.dsp +448 -0
  600. cyfaust/resources/libraries/examples/physicalModeling/mi-faust/13_Construction/construction.dsp +1036 -0
  601. cyfaust/resources/libraries/examples/physicalModeling/mi-faust/14_Polyphonic/polyTriangle.dsp +79 -0
  602. cyfaust/resources/libraries/examples/physicalModeling/mi-faust/15_PhysicalLFO/physicalLFO.dsp +107 -0
  603. cyfaust/resources/libraries/examples/physicalModeling/modularInterpInstrMIDI.dsp +8 -0
  604. cyfaust/resources/libraries/examples/physicalModeling/nylonGuitarMIDI.dsp +8 -0
  605. cyfaust/resources/libraries/examples/physicalModeling/old/harpe.dsp +45 -0
  606. cyfaust/resources/libraries/examples/physicalModeling/old/karplus.dsp +34 -0
  607. cyfaust/resources/libraries/examples/physicalModeling/old/karplus32.dsp +47 -0
  608. cyfaust/resources/libraries/examples/physicalModeling/russianBell.dsp +8 -0
  609. cyfaust/resources/libraries/examples/physicalModeling/standardBell.dsp +8 -0
  610. cyfaust/resources/libraries/examples/physicalModeling/violin.dsp +8 -0
  611. cyfaust/resources/libraries/examples/physicalModeling/violinMIDI.dsp +8 -0
  612. cyfaust/resources/libraries/examples/physicalModeling/vocalBP.dsp +8 -0
  613. cyfaust/resources/libraries/examples/physicalModeling/vocalBPMIDI.dsp +8 -0
  614. cyfaust/resources/libraries/examples/physicalModeling/vocalFOF.dsp +8 -0
  615. cyfaust/resources/libraries/examples/physicalModeling/vocalFOFMIDI.dsp +8 -0
  616. cyfaust/resources/libraries/examples/pitchShifting/pitchShifter.dsp +20 -0
  617. cyfaust/resources/libraries/examples/psychoacoustic/harmonicExciter.dsp +10 -0
  618. cyfaust/resources/libraries/examples/quantizing/quantizedChords.dsp +49 -0
  619. cyfaust/resources/libraries/examples/reverb/dattorro.dsp +8 -0
  620. cyfaust/resources/libraries/examples/reverb/fdnRev.dsp +8 -0
  621. cyfaust/resources/libraries/examples/reverb/freeverb.dsp +8 -0
  622. cyfaust/resources/libraries/examples/reverb/greyhole.dsp +8 -0
  623. cyfaust/resources/libraries/examples/reverb/jprev.dsp +8 -0
  624. cyfaust/resources/libraries/examples/reverb/reverbDesigner.dsp +12 -0
  625. cyfaust/resources/libraries/examples/reverb/reverbTester.dsp +8 -0
  626. cyfaust/resources/libraries/examples/reverb/zitaRev.dsp +8 -0
  627. cyfaust/resources/libraries/examples/reverb/zitaRevFDN.dsp +8 -0
  628. cyfaust/resources/libraries/examples/smartKeyboard/acGuitar.dsp +100 -0
  629. cyfaust/resources/libraries/examples/smartKeyboard/associatedEffects/elecGuitarEffect.dsp +8 -0
  630. cyfaust/resources/libraries/examples/smartKeyboard/associatedEffects/myEffect.dsp +5 -0
  631. cyfaust/resources/libraries/examples/smartKeyboard/associatedEffects/reverb.dsp +5 -0
  632. cyfaust/resources/libraries/examples/smartKeyboard/bells.dsp +80 -0
  633. cyfaust/resources/libraries/examples/smartKeyboard/bowed.dsp +87 -0
  634. cyfaust/resources/libraries/examples/smartKeyboard/brass.dsp +82 -0
  635. cyfaust/resources/libraries/examples/smartKeyboard/clarinet.dsp +113 -0
  636. cyfaust/resources/libraries/examples/smartKeyboard/crazyGuiro.dsp +96 -0
  637. cyfaust/resources/libraries/examples/smartKeyboard/drums.dsp +74 -0
  638. cyfaust/resources/libraries/examples/smartKeyboard/dubDub.dsp +87 -0
  639. cyfaust/resources/libraries/examples/smartKeyboard/elecGuitar.dsp +67 -0
  640. cyfaust/resources/libraries/examples/smartKeyboard/fm.dsp +78 -0
  641. cyfaust/resources/libraries/examples/smartKeyboard/frog.dsp +74 -0
  642. cyfaust/resources/libraries/examples/smartKeyboard/harp.dsp +84 -0
  643. cyfaust/resources/libraries/examples/smartKeyboard/midiOnly.dsp +62 -0
  644. cyfaust/resources/libraries/examples/smartKeyboard/multiSynth.dsp +75 -0
  645. cyfaust/resources/libraries/examples/smartKeyboard/toy.dsp +71 -0
  646. cyfaust/resources/libraries/examples/smartKeyboard/trumpet.dsp +59 -0
  647. cyfaust/resources/libraries/examples/smartKeyboard/turenas.dsp +114 -0
  648. cyfaust/resources/libraries/examples/smartKeyboard/violin.dsp +91 -0
  649. cyfaust/resources/libraries/examples/smartKeyboard/violin2.dsp +84 -0
  650. cyfaust/resources/libraries/examples/smartKeyboard/vocal.dsp +43 -0
  651. cyfaust/resources/libraries/examples/spat/panpot.dsp +17 -0
  652. cyfaust/resources/libraries/examples/spat/spat.dsp +25 -0
  653. cyfaust/resources/libraries/fds.lib +535 -0
  654. cyfaust/resources/libraries/filter.lib +1710 -0
  655. cyfaust/resources/libraries/filters.lib +3125 -0
  656. cyfaust/resources/libraries/hoa.lib +1081 -0
  657. cyfaust/resources/libraries/instruments.lib +263 -0
  658. cyfaust/resources/libraries/interpolators.lib +675 -0
  659. cyfaust/resources/libraries/math.lib +602 -0
  660. cyfaust/resources/libraries/maths.lib +798 -0
  661. cyfaust/resources/libraries/maxmsp.lib +237 -0
  662. cyfaust/resources/libraries/mi.lib +528 -0
  663. cyfaust/resources/libraries/misceffects.lib +998 -0
  664. cyfaust/resources/libraries/music.lib +496 -0
  665. cyfaust/resources/libraries/noises.lib +487 -0
  666. cyfaust/resources/libraries/oscillator.lib +450 -0
  667. cyfaust/resources/libraries/oscillators.lib +1838 -0
  668. cyfaust/resources/libraries/phaflangers.lib +235 -0
  669. cyfaust/resources/libraries/physmodels.lib +3990 -0
  670. cyfaust/resources/libraries/platform.lib +59 -0
  671. cyfaust/resources/libraries/quantizers.lib +310 -0
  672. cyfaust/resources/libraries/reducemaps.lib +235 -0
  673. cyfaust/resources/libraries/reverbs.lib +686 -0
  674. cyfaust/resources/libraries/routes.lib +262 -0
  675. cyfaust/resources/libraries/sf.lib +53 -0
  676. cyfaust/resources/libraries/signals.lib +570 -0
  677. cyfaust/resources/libraries/soundfiles.lib +234 -0
  678. cyfaust/resources/libraries/spats.lib +173 -0
  679. cyfaust/resources/libraries/stdfaust.lib +38 -0
  680. cyfaust/resources/libraries/synths.lib +322 -0
  681. cyfaust/resources/libraries/tonestacks.lib +427 -0
  682. cyfaust/resources/libraries/tubes.lib +5039 -0
  683. cyfaust/resources/libraries/vaeffects.lib +984 -0
  684. cyfaust/resources/libraries/version.lib +22 -0
  685. cyfaust/resources/libraries/wdmodels.lib +2276 -0
  686. cyfaust/resources/libraries/webaudio.lib +402 -0
  687. cyfaust/signal.pxd +44 -0
  688. cyfaust/signal.pyx +1993 -0
  689. cyfaust-0.1.0.dist-info/METADATA +355 -0
  690. cyfaust-0.1.0.dist-info/RECORD +693 -0
  691. cyfaust-0.1.0.dist-info/WHEEL +5 -0
  692. cyfaust-0.1.0.dist-info/entry_points.txt +3 -0
  693. cyfaust-0.1.0.dist-info/licenses/LICENSE +26 -0
@@ -0,0 +1,900 @@
1
+ //################################ aanl.lib ##########################################
2
+ // A library for antialiased nonlinearities. Its official prefix is `aa`.
3
+ //
4
+ // This library provides aliasing-suppressed nonlinearities through first-order
5
+ // and second-order approximations of continuous-time signals, functions,
6
+ // and convolution based on antiderivatives. This technique is particularly
7
+ // effective if combined with low-factor oversampling, for example, operating
8
+ // at 96 kHz or 192 kHz sample-rate.
9
+ //
10
+ // The library contains trigonometric functions as well as other nonlinear
11
+ // functions such as bounded and unbounded saturators.
12
+ //
13
+ // Due to their limited domains or ranges, some of these functions may not
14
+ // suitable for audio nonlinear processing or waveshaping, although
15
+ // they have been included for completeness. Some other functions,
16
+ // for example, tan() and tanh(), are only available with first-order
17
+ // antialiasing due to the complexity of the antiderivative of the
18
+ // x * f(x) term, particularly because of the necessity of the dilogarithm
19
+ // function, which requires special implementation.
20
+ //
21
+ // Future improvements to this library may include an adaptive
22
+ // mechanism to set the ill-conditioned cases threshold to improve
23
+ // performance in varying cases.
24
+ //
25
+ // Note that the antialiasing functions introduce a delay in the path,
26
+ // respectively half and one-sample delay for first and second-order functions.
27
+ //
28
+ // Also note that due to division by differences, it is vital to use
29
+ // double-precision or more to reduce errors.
30
+ //
31
+ // The environment identifier for this library is `aa`. After importing
32
+ // the standard libraries in Faust, the functions below can be called as `aa.function_name`.
33
+ //
34
+ // #### References
35
+ // * <https://github.com/grame-cncm/faustlibraries/blob/master/aanl.lib>
36
+ // * Reducing the Aliasing in Nonlinear Waveshaping Using Continuous-time Convolution,
37
+ // Julian Parker, Vadim Zavalishin, Efflam Le Bivic, DAFX, 2016
38
+ // * <http://dafx16.vutbr.cz/dafxpapers/20-DAFx-16_paper_41-PN.pdf>
39
+ //########################################################################################
40
+
41
+ ba = library("basics.lib");
42
+ ma = library("maths.lib");
43
+
44
+ declare name "Faust Antialiased Nonlinearities";
45
+ declare version "1.3.0";
46
+
47
+ //==============================Auxiliary Functions=======================================
48
+ //========================================================================================
49
+
50
+ //-------`(aa.)clip`-----------
51
+ // Clipping function.
52
+ //-----------------------------
53
+ clip(l, h, x) = max(l, min(h, x));
54
+
55
+
56
+ //-------`(aa.)Rsqrt`----------
57
+ // Real-valued sqrt().
58
+ //-----------------------------
59
+ Rsqrt(x) = sqrt(max(0.0, x));
60
+
61
+
62
+ //-------`(aa.)Rlog`-----------
63
+ // Real-valued log().
64
+ //-----------------------------
65
+ Rlog(x) = log(max(ma.EPSILON, x));
66
+
67
+
68
+ //-------`(aa.)Rtan`-----------
69
+ // Real-valued tan().
70
+ //-----------------------------
71
+ Rtan(x) = tan(clip(-ma.MAX, ma.MAX, x));
72
+
73
+
74
+ //-------`(aa.)Racos`----------
75
+ // Real-valued acos().
76
+ //-----------------------------
77
+ Racos(x) = acos(clip(-1.0, 1.0, x));
78
+
79
+
80
+ //-------`(aa.)Rasin`----------
81
+ // Real-valued asin().
82
+ //-----------------------------
83
+ Rasin(x) = asin(clip(-1.0, 1.0, x));
84
+
85
+
86
+ //-------`(aa.)Racosh`----------
87
+ // Real-valued acosh()
88
+ //------------------------------
89
+ Racosh(x) = ma.acosh(clip(1.0, ma.MAX, x));
90
+
91
+
92
+ //-------`(aa.)Rcosh`----------
93
+ // Real-valued cosh().
94
+ //-----------------------------
95
+ Rcosh(x) = min(ma.MAX, ma.cosh(x));
96
+
97
+
98
+ //-------`(aa.)Rsinh`-----------
99
+ // Real-valued sinh().
100
+ //------------------------------
101
+ Rsinh(x) = clip(-ma.MAX, ma.MAX, ma.sinh(x));
102
+
103
+
104
+ //-------`(aa.)Ratanh`----------
105
+ // Real-valued atanh().
106
+ //------------------------------
107
+ Ratanh(x) = ma.atanh(clip(-1.0 + ma.EPSILON, 1.0 - ma.EPSILON, x));
108
+
109
+
110
+ //-------`(aa.)ADAA1`---------------------
111
+ // Generalised first-order ADAA function.
112
+ //
113
+ // #### Usage
114
+ //
115
+ // ```
116
+ // _ : ADAA1(EPS, f, F1) : _
117
+ // ```
118
+ //
119
+ // Where:
120
+ //
121
+ // * `EPS`: a threshold to handle ill-conditioned cases
122
+ // * `f`: a function that we want to process with ADAA
123
+ // * `F1`: f's first antiderivative
124
+
125
+ declare ADAA1 author "Dario Sanfilippo";
126
+ declare ADAA1 copyright "Copyright (C) 2021 Dario Sanfilippo
127
+ <sanfilippo.dario@gmail.com>";
128
+ declare ADAA1 license "LGPL v3.0 license";
129
+ ADAA1(EPS, f, F1, x) = D1q
130
+ with {
131
+ D1q = ba.if(abs(x - x') <= EPS, ill_D1q, safe_D1q)
132
+ with {
133
+ ill_D1q = f(x_m);
134
+ safe_D1q = (F1(x) - F1(x')) / (x - x');
135
+ x_m = .5 * (x + x');
136
+ };
137
+ };
138
+
139
+
140
+ //-------`(aa.)ADAA2`---------------------
141
+ // Generalised second-order ADAA function.
142
+ //
143
+ // #### Usage
144
+ //
145
+ // ```
146
+ // _ : ADAA2(EPS, f, F1, F2) : _
147
+ // ```
148
+ //
149
+ // Where:
150
+ //
151
+ // * `EPS`: a threshold to handle ill-conditioned cases
152
+ // * `f`: a function that we want to process with ADAA
153
+ // * `F1`: f's first antiderivative
154
+ // * `F2`: f's second antiderivative
155
+
156
+ declare ADAA2 author "Dario Sanfilippo";
157
+ declare ADAA2 copyright "Copyright (C) 2021 Dario Sanfilippo
158
+ <sanfilippo.dario@gmail.com>";
159
+ declare ADAA2 license "LGPL v3.0 license";
160
+ ADAA2(EPS, f, F1, F2, x) = T1 + T2
161
+ with {
162
+ T1 = ba.if((x - x') ^ 2.0 <= EPS, ill_T1, safe_T1)
163
+ with {
164
+ ill_T1 = .5 * f((x + 2.0 * x') / 3.0);
165
+ safe_T1 = (x * (F1(x) - F1(x')) - (F2(x) - F2(x'))) /
166
+ ((x - x') ^ 2.0);
167
+ };
168
+ T2 = ba.if((x' - x'') ^ 2.0 <= EPS, ill_T2, safe_T2)
169
+ with {
170
+ ill_T2 = .5 * f((x'' + 2.0 * x') / 3.0);
171
+ safe_T2 = (x'' * (F1(x'') - F1(x')) - (F2(x'') - F2(x'))) /
172
+ ((x'' - x') ^ 2.0);
173
+ };
174
+ };
175
+
176
+
177
+ //==============================Main functions============================================
178
+ //========================================================================================
179
+
180
+ //================= Saturators ===============
181
+ //
182
+ // These antialiased saturators perform best with high-amplitude input
183
+ // signals. If the input is only slightly saturated, hence producing
184
+ // negligible aliasing, the trivial saturator may result in a better
185
+ // overall output, as noise can be introduced by first and second ADAA
186
+ // at low amplitudes.
187
+ //
188
+ // Once determining the lowest saturation level for which the antialiased
189
+ // functions perform adequately, it might be sensible to cross-fade
190
+ // between the trivial and the antialiased saturators according to the
191
+ // amplitude profile of the input signal.
192
+ //==============================================
193
+
194
+ //-------`(aa.)hardclip`---------------------
195
+ //
196
+ // First-order ADAA hard-clip.
197
+ //
198
+ // The domain of this function is ℝ; its theoretical range is [-1.0; 1.0].
199
+ //
200
+ // #### Usage
201
+ // ```
202
+ // _ : aa.hardclip : _
203
+ // ```
204
+ //---------------------------------------------
205
+ declare hardclip author "Dario Sanfilippo";
206
+ declare hardclip copyright "Copyright (C) 2021 Dario Sanfilippo
207
+ <sanfilippo.dario@gmail.com>";
208
+ declare hardclip license "LGPL v3.0 license";
209
+ hardclip(x) = ADAA1(EPS, f, F1, x)
210
+ with {
211
+ EPS = 1.0 / ma.SR;
212
+ f(x_f) = clip(-1.0, 1.0, x_f);
213
+ F1(x_F1) = ba.if( (x_F1 <= 1.0) & (x_F1 >= -1.0),
214
+ .5 * x_F1 ^ 2.0,
215
+ x_F1 * ma.signum(x_F1) - .5);
216
+ };
217
+
218
+
219
+ //-------`(aa.)hardclip2`---------------------
220
+ //
221
+ // Second-order ADAA hard-clip.
222
+ //
223
+ // The domain of this function is ℝ; its theoretical range is [-1.0; 1.0].
224
+ //
225
+ // #### Usage
226
+ // ```
227
+ // _ : aa.hardclip2 : _
228
+ // ```
229
+ //---------------------------------------------
230
+ declare hardclip2 author "Dario Sanfilippo";
231
+ declare hardclip2 copyright "Copyright (C) 2021 Dario Sanfilippo
232
+ <sanfilippo.dario@gmail.com>";
233
+ declare hardclip2 license "LGPL v3.0 license";
234
+ hardclip2(x) = ADAA2(EPS, f, F1, F2, x)
235
+ with {
236
+ EPS = 1.0 / ma.SR;
237
+ f(x_f) = clip(-1.0, 1.0, x_f);
238
+ F1(x_F1) = ba.if( (x_F1 <= 1.0) & (x_F1 >= -1.0),
239
+ .5 * x_F1 ^ 2.0,
240
+ x_F1 * ma.signum(x_F1) - .5);
241
+ F2(x_F2) = ba.if( (x_F2 <= 1.0) & (x_F2 >= -1.0),
242
+ (1.0 / 3.0) * x_F2 ^ 3.0,
243
+ ((.5 * x_F2 ^ 2.0) - 1.0 / 6.0) *
244
+ ma.signum(x_F2));
245
+ };
246
+
247
+
248
+ //-------`(aa.)cubic1`---------------------
249
+ //
250
+ // First-order ADAA cubic saturator.
251
+ //
252
+ // The domain of this function is ℝ; its theoretical range is
253
+ // [-2.0/3.0; 2.0/3.0].
254
+ //
255
+ // #### Usage
256
+ // ```
257
+ // _ : aa.cubic1 : _
258
+ // ```
259
+ //-------------------------------------------
260
+ declare cubic1 author "Dario Sanfilippo";
261
+ declare cubic1 copyright "Copyright (C) 2021 Dario Sanfilippo
262
+ <sanfilippo.dario@gmail.com>";
263
+ declare cubic1 license "LGPL v3.0 license";
264
+ cubic1(x) = ADAA1(EPS, f, F1, x)
265
+ with {
266
+ EPS = 1.0 / ma.SR;
267
+ f(x_f) = ba.if( (x_f < 1.0) & (x_f > -1.0),
268
+ x_f - x_f ^ 3.0 / 3.0,
269
+ (2.0 / 3.0) * ma.signum(x_f));
270
+ F1(x_F1) = ba.if( x_F1 <= -1.0,
271
+ x_F1 * -2.0 / 3.0,
272
+ ba.if( x_F1 >= 1.0,
273
+ x_F1 * 2.0 / 3.0,
274
+ x_F1 ^ 2.0 / 2.0 - x_F1 ^ 4.0 / 12.0));
275
+ };
276
+
277
+
278
+ //-------`(aa.)parabolic`---------------------
279
+ //
280
+ // First-order ADAA parabolic saturator.
281
+ //
282
+ // The domain of this function is ℝ; its theoretical range is [-1.0; 1.0].
283
+ //
284
+ // #### Usage
285
+ // ```
286
+ // _ : aa.parabolic : _
287
+ // ```
288
+ //--------------------------------------------
289
+ declare parabolic author "Dario Sanfilippo";
290
+ declare parabolic copyright "Copyright (C) 2021 Dario Sanfilippo
291
+ <sanfilippo.dario@gmail.com>";
292
+ declare parabolic license "LGPL v3.0 license";
293
+ parabolic(x) = ADAA1(EPS, f, F1, x)
294
+ with {
295
+ EPS = 1.0 / ma.SR;
296
+ f(x_f) = ba.if( abs(x_f) <= 2.0,
297
+ x_f * (1.0 - abs(x_f) / 4.0),
298
+ ma.signum(x_f));
299
+ F1(x_F1) = ba.if( abs(x_F1) <= 2.0,
300
+ (-1.0 / 12.0) * x_F1 ^ 2.0 *
301
+ (x_F1 * ma.signum(x_F1) - 6.0),
302
+ abs(x_F1));
303
+ };
304
+
305
+
306
+ //-------`(aa.)parabolic2`---------------------
307
+ //
308
+ // Second-order ADAA parabolic saturator.
309
+ //
310
+ // The domain of this function is ℝ; its theoretical range is [-1.0; 1.0].
311
+ //
312
+ // #### Usage
313
+ // ```
314
+ // _ : aa.parabolic : _
315
+ // ```
316
+ //---------------------------------------------
317
+ declare parabolic2 author "Dario Sanfilippo";
318
+ declare parabolic2 copyright "Copyright (C) 2021 Dario Sanfilippo
319
+ <sanfilippo.dario@gmail.com>";
320
+ declare parabolic2 license "LGPL v3.0 license";
321
+ parabolic2(x) = ADAA2(EPS, f, F1, F2, x)
322
+ with {
323
+ EPS = 1.0 / ma.SR;
324
+ f(x_f) = ba.if( abs(x_f) <= 2.0,
325
+ x_f * (1.0 - abs(x_f) / 4.0),
326
+ ma.signum(x_f));
327
+ F1(x_F1) = ba.if( abs(x_F1) <= 2.0,
328
+ (-1.0 / 12.0) * x_F1 ^ 2.0 *
329
+ (x_F1 * ma.signum(x_F1) - 6.0),
330
+ abs(x_F1));
331
+ F2(x_F2) = ba.if( abs(x_F2) <= 2.0,
332
+ (1.0 / 48.0) * x_F2 ^ 3.0 *
333
+ (16.0 - 3.0 * x_F2 * ma.signum(x_F2)),
334
+ .5 * x_F2 ^ 2.0 * ma.signum(x_F2));
335
+ };
336
+
337
+
338
+ //-------`(aa.)hyperbolic`---------------------
339
+ //
340
+ // First-order ADAA hyperbolic saturator.
341
+ //
342
+ // The domain of this function is ℝ; its theoretical range is ]-1.0; 1.0[.
343
+ //
344
+ // #### Usage
345
+ // ```
346
+ // _ : aa.hyperbolic : _
347
+ // ```
348
+ //---------------------------------------------
349
+ declare hyperbolic author "Dario Sanfilippo";
350
+ declare hyperbolic copyright "Copyright (C) 2021 Dario Sanfilippo
351
+   <sanfilippo.dario@gmail.com>";
352
+ declare hyperbolic license "LGPL v3.0 license";
353
+ hyperbolic(x) = ADAA1(EPS, f, F1, x)
354
+ with {
355
+ EPS = 1.0 / ma.SR;
356
+ f(x_f) = x_f / (1.0 + abs(x_f));
357
+ F1(x_F1) = abs(x_F1) - log(1.0 + abs(x_F1));
358
+ };
359
+
360
+
361
+ //-------`(aa.)hyperbolic2`---------------------
362
+ //
363
+ // Second-order ADAA hyperbolic saturator.
364
+ //
365
+ // The domain of this function is ℝ; its theoretical range is ]-1.0; 1.0[.
366
+ //
367
+ // #### Usage
368
+ // ```
369
+ // _ : aa.hyperbolic2 : _
370
+ // ```
371
+ //----------------------------------------------
372
+ declare hyperbolic2 author "Dario Sanfilippo";
373
+ declare hyperbolic2 copyright "Copyright (C) 2021 Dario Sanfilippo
374
+   <sanfilippo.dario@gmail.com>";
375
+ declare hyperbolic2 license "LGPL v3.0 license";
376
+ hyperbolic2(x) = ADAA2(EPS, f, F1, F2, x)
377
+ with {
378
+ EPS = 1.0 / ma.SR;
379
+ f(x_f) = x_f / (1.0 + abs(x_f));
380
+ F1(x_F1) = abs(x_F1) - log(1.0 + abs(x_F1));
381
+ F2(x_F2) = ma.signum(x_F2) * (.5 * (3.0 - 2.0 * abs(x_F2) + x_F2 ^ 2.0 +
382
+ 2.0 * log(1.0 + abs(x_F2))) - 3.0 / 2.0) + 3.0 / 2.0;
383
+ };
384
+
385
+
386
+ //-------`(aa.)sinarctan`---------------------
387
+ //
388
+ // First-order ADAA sin(atan()) saturator.
389
+ //
390
+ // The domain of this function is ℝ; its theoretical range is ]-1.0; 1.0[.
391
+ //
392
+ // #### Usage
393
+ // ```
394
+ // _ : aa.sinatan : _
395
+ // ```
396
+ //----------------------------------------------
397
+ declare sinarctan author "Dario Sanfilippo";
398
+ declare sinarctan copyright "Copyright (C) 2021 Dario Sanfilippo
399
+ <sanfilippo.dario@gmail.com>";
400
+ declare sinarctan license "LGPL v3.0 license";
401
+ sinarctan(x) = ADAA1(EPS, f, F1, x)
402
+ with {
403
+ EPS = 1.0 / ma.SR;
404
+ f(x_f) = x_f / sqrt(1.0 + x_f ^ 2.0);
405
+ F1(x_F1) = sqrt(x_F1 ^ 2.0 + 1.0) + const
406
+ with {
407
+ const = -1.0; // for F1(0) = 0 to minimise precision loss
408
+ };
409
+ };
410
+
411
+
412
+ //-------`(aa.)sinarctan2`---------------------
413
+ //
414
+ // Second-order ADAA sin(atan()) saturator.
415
+ //
416
+ // The domain of this function is ℝ; its theoretical range is ]-1.0; 1.0[.
417
+ //
418
+ // #### Usage
419
+ // ```
420
+ // _ : aa.sinarctan2 : _
421
+ // ```
422
+ //----------------------------------------------
423
+ declare sinarctan2 author "Dario Sanfilippo";
424
+ declare sinarctan2 copyright "Copyright (C) 2021 Dario Sanfilippo
425
+ <sanfilippo.dario@gmail.com>";
426
+ declare sinarctan2 license "LGPL v3.0 license";
427
+ sinarctan2(x) = ADAA2(EPS, f, F1, F2, x)
428
+ with {
429
+ EPS = 1.0 / ma.SR;
430
+ f(x_f) = x_f / sqrt(1.0 + x_f ^ 2.0);
431
+ F1(x_F1) = sqrt(x_F1 ^ 2.0 + 1.0) + const
432
+ with {
433
+ const = -1.0; // for F1(0) = 0 to minimise precision loss
434
+ };
435
+ F2(x_F2) = .5 * x_F2 * sqrt(x_F2 ^ 2.0 + 1.0) - .5 * ma.asinh(x_F2);
436
+ };
437
+
438
+
439
+ //-------`(aa.)tanh1`---------------------
440
+ //
441
+ // First-order ADAA tanh() saturator.
442
+ //
443
+ // The domain of this function is ℝ; its theoretical range is ]-1.0; 1.0[.
444
+ //
445
+ // #### Usage
446
+ // ```
447
+ // _ : aa.tanh1 : _
448
+ // ```
449
+ //----------------------------------------------
450
+ declare tanh1 author "Dario Sanfilippo";
451
+ declare tanh1 copyright "Copyright (C) 2021 Dario Sanfilippo
452
+ <sanfilippo.dario@gmail.com>";
453
+ declare tanh1 license "LGPL v3.0 license";
454
+ tanh1(x) = ADAA1(EPS, f, F1, x)
455
+ with {
456
+ EPS = 1.0 / ma.SR;
457
+ f(x_f) = ma.tanh(x_f);
458
+ F1(x_F1) = log(Rcosh(x_F1));
459
+ };
460
+
461
+
462
+ //-------`(aa.)arctan`---------------------
463
+ //
464
+ // First-order ADAA atan().
465
+ //
466
+ // The domain of this function is ℝ; its theoretical range is ]-π/2.0; π/2.0[.
467
+ //
468
+ // #### Usage
469
+ // ```
470
+ // _ : aa.arctan : _
471
+ // ```
472
+ //-------------------------------------------
473
+ declare arctan author "Dario Sanfilippo";
474
+ declare arctan copyright "Copyright (C) 2021 Dario Sanfilippo
475
+ <sanfilippo.dario@gmail.com>";
476
+ declare arctan license "LGPL v3.0 license";
477
+ arctan(x) = ADAA1(EPS, f, F1, x)
478
+ with {
479
+ EPS = 1.0 / ma.SR;
480
+ f(x_f) = atan(x_f);
481
+ F1(x_F1) = x_F1 * f(x_F1) - .5 * log(x_F1 ^ 2.0 + 1.0);
482
+ };
483
+
484
+
485
+ //-------`(aa.)arctan2`---------------------
486
+ //
487
+ // Second-order ADAA atan().
488
+ //
489
+ // The domain of this function is ℝ; its theoretical range is ]-π/2.0; π/2.0[.
490
+ //
491
+ // #### Usage
492
+ // ```
493
+ // _ : aa.arctan2 : _
494
+ // ```
495
+ //-------------------------------------------
496
+ declare arctan2 author "Dario Sanfilippo";
497
+ declare arctan2 copyright "Copyright (C) 2021 Dario Sanfilippo
498
+ <sanfilippo.dario@gmail.com>";
499
+ declare arctan2 license "LGPL v3.0 license";
500
+ arctan2(x) = ADAA2(EPS, f, F1, F2, x)
501
+ with {
502
+ EPS = 1.0 / ma.SR;
503
+ f(x_f) = atan(x_f);
504
+ F1(x_F1) = x_F1 * f(x_F1) - .5 * log(x_F1 ^ 2.0 + 1.0);
505
+ F2(x_F2) = .5 * x_F2 ^ 2.0 * f(x_F2) - x_F2 / 2.0 + .5 * f(x_F2);
506
+ };
507
+
508
+
509
+ //-------`(aa.)asinh1`---------------------
510
+ //
511
+ // First-order ADAA asinh() saturator (unbounded).
512
+ //
513
+ // The domain of this function is ℝ; its theoretical range is ℝ.
514
+ //
515
+ // #### Usage
516
+ // ```
517
+ // _ : aa.asinh1 : _
518
+ // ```
519
+ //-------------------------------------------
520
+ declare asinh1 author "Dario Sanfilippo";
521
+ declare asinh1 copyright "Copyright (C) 2021 Dario Sanfilippo
522
+ <sanfilippo.dario@gmail.com>";
523
+ declare asinh1 license "LGPL v3.0 license";
524
+ asinh1(x) = ADAA1(EPS, f, F1, x)
525
+ with {
526
+ EPS = 1.0 / ma.SR;
527
+ f(x_f) = ma.asinh(x_f);
528
+ F1(x_F1) = x_F1 * f(x_F1) - sqrt(1.0 + x_F1 ^ 2.0) + const
529
+ with {
530
+ const = 1.0; // for F1(0) = 0 to minimise precision loss
531
+ };
532
+ };
533
+
534
+
535
+ //-------`(aa.)asinh2`---------------------
536
+ //
537
+ // Second-order ADAA asinh() saturator (unbounded).
538
+ //
539
+ // The domain of this function is ℝ; its theoretical range is ℝ.
540
+ //
541
+ // #### Usage
542
+ // ```
543
+ // _ : aa.asinh2 : _
544
+ // ```
545
+ //-------------------------------------------
546
+ declare asinh2 author "Dario Sanfilippo";
547
+ declare asinh2 copyright "Copyright (C) 2021 Dario Sanfilippo
548
+ <sanfilippo.dario@gmail.com>";
549
+ declare asinh2 license "LGPL v3.0 license";
550
+ asinh2(x) = ADAA2(EPS, f, F1, F2, x)
551
+ with {
552
+ EPS = 1.0 / ma.SR;
553
+ f(x_f) = ma.asinh(x_f);
554
+ F1(x_F1) = x_F1 * f(x_F1) - sqrt(1.0 + x_F1 ^ 2.0) + const
555
+ with {
556
+ const = 1.0; // for F1(0) = 0 to minimise precision loss
557
+ };
558
+ F2(x_F2) = .25 * (2.0 * x_F2 ^ 2.0 * f(x_F2) + f(x_F2) -
559
+ sqrt(x_F2 ^ 2.0 + 1.0) * x_F2);
560
+ };
561
+
562
+
563
+ //================= Trigonometry ===============
564
+ // These functions are reliable if input signals are within their domains.
565
+ //============================================
566
+
567
+
568
+ //-------`(aa.)cosine1`---------------------
569
+ //
570
+ // First-order ADAA cos().
571
+ //
572
+ // The domain of this function is ℝ; its theoretical range is [-1.0; 1.0].
573
+ //
574
+ // #### Usage
575
+ // ```
576
+ // _ : aa.cosine1 : _
577
+ // ```
578
+ //-------------------------------------------
579
+ declare cosine1 author "Dario Sanfilippo";
580
+ declare cosine1 copyright "Copyright (C) 2021 Dario Sanfilippo
581
+ <sanfilippo.dario@gmail.com>";
582
+ declare cosine1 license "LGPL v3.0 license";
583
+ cosine1(x) = ADAA1(EPS, f, F1, x)
584
+ with {
585
+ EPS = 1.0 / ma.SR;
586
+ f(x_f) = cos(x_f);
587
+ F1(x_F1) = sin(x_F1);
588
+ };
589
+
590
+
591
+ //-------`(aa.)cosine2`---------------------
592
+ //
593
+ // Second-order ADAA cos().
594
+ //
595
+ // The domain of this function is ℝ; its theoretical range is [-1.0; 1.0].
596
+ //
597
+ // #### Usage
598
+ // ```
599
+ // _ : aa.cosine2 : _
600
+ // ```
601
+ //-------------------------------------------
602
+ declare cosine2 author "Dario Sanfilippo";
603
+ declare cosine2 copyright "Copyright (C) 2021 Dario Sanfilippo
604
+ <sanfilippo.dario@gmail.com>";
605
+ declare cosine2 license "LGPL v3.0 license";
606
+ cosine2(x) = ADAA2(EPS, f, F1, F2, x)
607
+ with {
608
+ EPS = 1.0 / ma.SR;
609
+ f(x_f) = cos(x_f);
610
+ F1(x_F1) = sin(x_F1);
611
+ F2(x_F2) = x_F2 * sin(x_F2) + cos(x_F2);
612
+ };
613
+
614
+
615
+ //-------`(aa.)arccos`---------------------
616
+ //
617
+ // First-order ADAA acos().
618
+ //
619
+ // The domain of this function is [-1.0; 1.0]; its theoretical range is
620
+ // [π; 0.0].
621
+ //
622
+ // #### Usage
623
+ // ```
624
+ // _ : aa.arccos : _
625
+ // ```
626
+ //------------------------------------------
627
+ declare arccos author "Dario Sanfilippo";
628
+ declare arccos copyright "Copyright (C) 2021 Dario Sanfilippo
629
+ <sanfilippo.dario@gmail.com>";
630
+ declare arccos license "LGPL v3.0 license";
631
+ arccos(x) = ADAA1(EPS, f, F1, x)
632
+ with {
633
+ EPS = 1.0 / ma.SR;
634
+ f(x_f) = Racos(x_f);
635
+ F1(x_F1) = x_F1 * f(x_F1) - Rsqrt(1.0 - x_F1 ^ 2.0) + const
636
+ with {
637
+ const = 1.0; // for F1(0) = 0 to minimise precision loss
638
+ };
639
+ };
640
+
641
+
642
+ //-------`(aa.)arccos2`---------------------
643
+ //
644
+ // Second-order ADAA acos().
645
+ //
646
+ // The domain of this function is [-1.0; 1.0]; its theoretical range is
647
+ // [π; 0.0].
648
+ //
649
+ // Note that this function is not accurate for low-amplitude or low-frequency
650
+ // input signals. In that case, the first-order ADAA arccos() can be used.
651
+ //
652
+ // #### Usage
653
+ // ```
654
+ // _ : aa.arccos2 : _
655
+ // ```
656
+ //--------------------------------------------
657
+ declare arccos2 author "Dario Sanfilippo";
658
+ declare arccos2 copyright "Copyright (C) 2021 Dario Sanfilippo
659
+ <sanfilippo.dario@gmail.com>";
660
+ declare arccos2 license "LGPL v3.0 license";
661
+ arccos2(x) = ADAA2(EPS, f, F1, F2, x)
662
+ with {
663
+ EPS = 1.0 / ma.SR;
664
+ f(x_f) = Racos(x_f);
665
+ F1(x_F1) = x_F1 * f(x_F1) - Rsqrt(1.0 - x_F1 ^ 2.0) + const
666
+ with {
667
+ const = 1.0; // for F1(0) = 0 to minimise precision loss
668
+ };
669
+ F2(x_F2) = .25 * (2.0 * x_F2 ^ 2.0 * f(x_F2) + Rasin(x_F2) -
670
+ Rsqrt(1.0 - x_F2 ^ 2.0));
671
+ };
672
+
673
+
674
+ //-------`(aa.)acosh1`---------------------
675
+ //
676
+ // First-order ADAA acosh().
677
+ //
678
+ // The domain of this function is ℝ >= 1.0; its theoretical range is ℝ >= 0.0.
679
+ //
680
+ // #### Usage
681
+ // ```
682
+ // _ : aa.acosh1 : _
683
+ // ```
684
+ //------------------------------------------
685
+ declare acosh1 author "Dario Sanfilippo";
686
+ declare acosh1 copyright "Copyright (C) 2021 Dario Sanfilippo
687
+ <sanfilippo.dario@gmail.com>";
688
+ declare acosh1 license "LGPL v3.0 license";
689
+ acosh1(x) = ADAA1(EPS, f, F1, x)
690
+ with {
691
+ EPS = 1.0 / ma.SR;
692
+ f(x_f) = Racosh(x_f);
693
+ F1(x_F1) = x_F1 * f(x_F1) - Rsqrt(x_F1 - 1.0) * Rsqrt(x_F1 + 1.0);
694
+ };
695
+
696
+
697
+ //-------`(aa.)acosh2`---------------------
698
+ //
699
+ // Second-order ADAA acosh().
700
+ //
701
+ // The domain of this function is ℝ >= 1.0; its theoretical range is ℝ >= 0.0.
702
+ //
703
+ // Note that this function is not accurate for low-frequency input signals.
704
+ // In that case, the first-order ADAA acosh() can be used.
705
+ //
706
+ // #### Usage
707
+ // ```
708
+ // _ : aa.acosh2 : _
709
+ // ```
710
+ //-------------------------------------------
711
+ declare acosh2 author "Dario Sanfilippo";
712
+ declare acosh2 copyright "Copyright (C) 2021 Dario Sanfilippo
713
+ <sanfilippo.dario@gmail.com>";
714
+ declare acosh2 license "LGPL v3.0 license";
715
+ acosh2(x) = ADAA2(EPS, f, F1, F2, x)
716
+ with {
717
+ EPS = 1.0 / ma.SR;
718
+ f(x_f) = Racosh(x_f);
719
+ F1(x_F1) = x_F1 * f(x_F1) - Rsqrt(x_F1 - 1.0) * Rsqrt(x_F1 + 1.0);
720
+ F2(x_F2) = .5 * x_F2 ^ 2.0 * f(x_F2) - .25 *
721
+ Rsqrt(x_F2 - 1.0) * Rsqrt(x_F2 + 1.0) * x_F2 -
722
+ .25 * Rlog(x_F2 + Rsqrt(x_F2 - 1.0) * Rsqrt(x_F2 + 1.0));
723
+ };
724
+
725
+
726
+ //-------`(aa.)sine`---------------------
727
+ //
728
+ // First-order ADAA sin().
729
+ //
730
+ // The domain of this function is ℝ; its theoretical range is ℝ.
731
+ //
732
+ // #### Usage
733
+ // ```
734
+ // _ : aa.sine : _
735
+ // ```
736
+ //----------------------------------------
737
+ declare sine author "Dario Sanfilippo";
738
+ declare sine copyright "Copyright (C) 2021 Dario Sanfilippo
739
+ <sanfilippo.dario@gmail.com>";
740
+ declare sine license "LGPL v3.0 license";
741
+ sine(x) = ADAA1(EPS, f, F1, x)
742
+ with {
743
+ EPS = 1.0 / ma.SR;
744
+ f(x_f) = sin(x_f);
745
+ F1(x_F1) = -1.0 * cos(x_F1);
746
+ };
747
+
748
+
749
+ //-------`(aa.)sine2`---------------------
750
+ //
751
+ // Second-order ADAA sin().
752
+ //
753
+ // The domain of this function is ℝ; its theoretical range is ℝ.
754
+ //
755
+ // #### Usage
756
+ // ```
757
+ // _ : aa.sine2 : _
758
+ // ```
759
+ //----------------------------------------
760
+ declare sine2 author "Dario Sanfilippo";
761
+ declare sine2 copyright "Copyright (C) 2021 Dario Sanfilippo
762
+ <sanfilippo.dario@gmail.com>";
763
+ declare sine2 license "LGPL v3.0 license";
764
+ sine2(x) = ADAA2(EPS, f, F1, F2, x)
765
+ with {
766
+ EPS = 1.0 / ma.SR;
767
+ f(x_f) = sin(x_f);
768
+ F1(x_F1) = 1.0 - cos(x_F1);
769
+ F2(x_F2) = sin(x_F2) - x_F2 * cos(x_F2);
770
+ };
771
+
772
+
773
+ //-------`(aa.)arcsin`---------------------
774
+ //
775
+ // First-order ADAA asin().
776
+ //
777
+ // The domain of this function is [-1.0, 1.0]; its theoretical range is
778
+ // [-π/2.0; π/2.0].
779
+ //
780
+ // #### Usage
781
+ // ```
782
+ // _ : aa.arcsin : _
783
+ // ```
784
+ //------------------------------------------
785
+ declare arcsin author "Dario Sanfilippo";
786
+ declare arcsin copyright "Copyright (C) 2021 Dario Sanfilippo
787
+ <sanfilippo.dario@gmail.com>";
788
+ declare arcsin license "LGPL v3.0 license";
789
+ arcsin(x) = ADAA1(EPS, f, F1, x)
790
+ with {
791
+ EPS = 1.0 / ma.SR;
792
+ f(x_f) = Rasin(x_f);
793
+ F1(x_F1) = x_F1 * f(x_F1) + Rsqrt(1.0 - x_F1 ^ 2.0) + const
794
+ with {
795
+ const = -1.0; // for F1(0) = 0 to minimise precision loss
796
+ };
797
+ };
798
+
799
+
800
+ //-------`(aa.)arcsin2`---------------------
801
+ //
802
+ // Second-order ADAA asin().
803
+ //
804
+ // The domain of this function is [-1.0, 1.0]; its theoretical range is
805
+ // [-π/2.0; π/2.0].
806
+ //
807
+ // Note that this function is not accurate for low-frequency input signals.
808
+ // In that case, the first-order ADAA asin() can be used.
809
+ //
810
+ // #### Usage
811
+ // ```
812
+ // _ : aa.arcsin2 : _
813
+ // ```
814
+ //------------------------------------------
815
+ declare arcsin2 author "Dario Sanfilippo";
816
+ declare arcsin2 copyright "Copyright (C) 2021 Dario Sanfilippo
817
+ <sanfilippo.dario@gmail.com>";
818
+ declare arcsin2 license "LGPL v3.0 license";
819
+ arcsin2(x) = ADAA2(EPS, f, F1, F2, x)
820
+ with {
821
+ EPS = 1.0 / ma.SR;
822
+ f(x_f) = Rasin(x_f);
823
+ F1(x_F1) = x_F1 * f(x_F1) + Rsqrt(1.0 - x_F1 ^ 2.0) + const
824
+ with {
825
+ const = -1.0; // for F1(0) = 0 to minimise precision loss
826
+ };
827
+ F2(x_F2) = .25 * (Rsqrt(1.0 - x_F2 ^ 2.0) * x_F2 +
828
+ (2.0 * x_F2 ^ 2.0 - 1.0) * f(x_F2));
829
+ };
830
+
831
+
832
+ //-------`(aa.)tangent`---------------------
833
+ //
834
+ // First-order ADAA tan().
835
+ //
836
+ // The domain of this function is [-π/2.0; π/2.0]; its theoretical range is ℝ.
837
+ //
838
+ // #### Usage
839
+ // ```
840
+ // _ : aa.tangent : _
841
+ // ```
842
+ //------------------------------------------
843
+ declare tangent author "Dario Sanfilippo";
844
+ declare tangent copyright "Copyright (C) 2021 Dario Sanfilippo
845
+ <sanfilippo.dario@gmail.com>";
846
+ declare tangent license "LGPL v3.0 license";
847
+ tangent(x) = ADAA1(EPS, f, F1, x)
848
+ with {
849
+ EPS = 1.0 / ma.SR;
850
+ f(x_f) = Rtan(x_f);
851
+ F1(x_F1) = -1.0 * Rlog(cos(x_F1));
852
+ };
853
+
854
+
855
+ //-------`(aa.)atanh1`---------------------
856
+ //
857
+ // First-order ADAA atanh().
858
+ //
859
+ // The domain of this function is ]-1.0; 1.0[; its theoretical range is ℝ.
860
+ //
861
+ // #### Usage
862
+ // ```
863
+ // _ : aa.atanh1 : _
864
+ // ```
865
+ //------------------------------------------
866
+ declare atanh1 author "Dario Sanfilippo";
867
+ declare atanh1 copyright "Copyright (C) 2021 Dario Sanfilippo
868
+ <sanfilippo.dario@gmail.com>";
869
+ declare atanh1 license "LGPL v3.0 license";
870
+ atanh1(x) = ADAA1(EPS, f, F1, x)
871
+ with {
872
+ EPS = 1.0 / ma.SR;
873
+ f(x_f) = Ratanh(x_f);
874
+ F1(x_F1) = .5 * Rlog(1.0 - x_F1 ^ 2.0) + x_F1 * f(x_F1);
875
+ };
876
+
877
+
878
+ //-------`(aa.)atanh2`---------------------
879
+ //
880
+ // Second-order ADAA atanh().
881
+ //
882
+ // The domain of this function is ]-1.0; 1.0[; its theoretical range is ℝ.
883
+ //
884
+ // #### Usage
885
+ // ```
886
+ // _ : aa.atanh2 : _
887
+ // ```
888
+ //------------------------------------------
889
+ declare atanh2 author "Dario Sanfilippo";
890
+ declare atanh2 copyright "Copyright (C) 2021 Dario Sanfilippo
891
+ <sanfilippo.dario@gmail.com>";
892
+ declare atanh2 license "LGPL v3.0 license";
893
+ atanh2(x) = ADAA2(EPS, f, F1, F2, x)
894
+ with {
895
+ EPS = 1.0 / ma.SR;
896
+ f(x_f) = Ratanh(x_f);
897
+ F1(x_F1) = .5 * Rlog(1.0 - x_F1 ^ 2.0) + x_F1 * f(x_F1);
898
+ F2(x_F2) = .5 * x_F2 ^ 2.0 * f(x_F2) + x_F2 / 2.0 + .25 *
899
+ Rlog(1.0 - x_F2) - .25 * Rlog(1.0 + x_F2);
900
+ };