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,836 @@
1
+ /************************** BEGIN dsp-adapter.h *************************
2
+ FAUST Architecture File
3
+ Copyright (C) 2003-2022 GRAME, Centre National de Creation Musicale
4
+ ---------------------------------------------------------------------
5
+ This program is free software; you can redistribute it and/or modify
6
+ it under the terms of the GNU Lesser General Public License as published by
7
+ the Free Software Foundation; either version 2.1 of the License, or
8
+ (at your option) any later version.
9
+
10
+ This program is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU Lesser General Public License for more details.
14
+
15
+ You should have received a copy of the GNU Lesser General Public License
16
+ along with this program; if not, write to the Free Software
17
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
+
19
+ EXCEPTION : As a special exception, you may create a larger work
20
+ that contains this FAUST architecture section and distribute
21
+ that work under terms of your choice, so long as this FAUST
22
+ architecture section is not modified.
23
+ ************************************************************************/
24
+
25
+ #ifndef __dsp_adapter__
26
+ #define __dsp_adapter__
27
+
28
+ #ifndef _WIN32
29
+ #include <alloca.h>
30
+ #endif
31
+ #include <string.h>
32
+ #include <cmath>
33
+ #include <assert.h>
34
+ #include <stdio.h>
35
+
36
+ #include "faust/dsp/dsp.h"
37
+
38
+ // Adapts a DSP for a different number of inputs/outputs
39
+ class dsp_adapter : public decorator_dsp {
40
+
41
+ private:
42
+
43
+ FAUSTFLOAT** fAdaptedInputs;
44
+ FAUSTFLOAT** fAdaptedOutputs;
45
+ int fHWInputs;
46
+ int fHWOutputs;
47
+ int fBufferSize;
48
+
49
+ void adaptBuffers(FAUSTFLOAT** inputs, FAUSTFLOAT** outputs)
50
+ {
51
+ for (int i = 0; i < fHWInputs; i++) {
52
+ fAdaptedInputs[i] = inputs[i];
53
+ }
54
+ for (int i = 0; i < fHWOutputs; i++) {
55
+ fAdaptedOutputs[i] = outputs[i];
56
+ }
57
+ }
58
+
59
+ public:
60
+
61
+ dsp_adapter(dsp* dsp, int hw_inputs, int hw_outputs, int buffer_size):decorator_dsp(dsp)
62
+ {
63
+ fHWInputs = hw_inputs;
64
+ fHWOutputs = hw_outputs;
65
+ fBufferSize = buffer_size;
66
+
67
+ fAdaptedInputs = new FAUSTFLOAT*[dsp->getNumInputs()];
68
+ for (int i = 0; i < dsp->getNumInputs() - fHWInputs; i++) {
69
+ fAdaptedInputs[i + fHWInputs] = new FAUSTFLOAT[buffer_size];
70
+ memset(fAdaptedInputs[i + fHWInputs], 0, sizeof(FAUSTFLOAT) * buffer_size);
71
+ }
72
+
73
+ fAdaptedOutputs = new FAUSTFLOAT*[dsp->getNumOutputs()];
74
+ for (int i = 0; i < dsp->getNumOutputs() - fHWOutputs; i++) {
75
+ fAdaptedOutputs[i + fHWOutputs] = new FAUSTFLOAT[buffer_size];
76
+ memset(fAdaptedOutputs[i + fHWOutputs], 0, sizeof(FAUSTFLOAT) * buffer_size);
77
+ }
78
+ }
79
+
80
+ virtual ~dsp_adapter()
81
+ {
82
+ for (int i = 0; i < fDSP->getNumInputs() - fHWInputs; i++) {
83
+ delete [] fAdaptedInputs[i + fHWInputs];
84
+ }
85
+ delete [] fAdaptedInputs;
86
+
87
+ for (int i = 0; i < fDSP->getNumOutputs() - fHWOutputs; i++) {
88
+ delete [] fAdaptedOutputs[i + fHWOutputs];
89
+ }
90
+ delete [] fAdaptedOutputs;
91
+ }
92
+
93
+ virtual int getNumInputs() { return fHWInputs; }
94
+ virtual int getNumOutputs() { return fHWOutputs; }
95
+
96
+ virtual dsp_adapter* clone() { return new dsp_adapter(fDSP->clone(), fHWInputs, fHWOutputs, fBufferSize); }
97
+
98
+ virtual void compute(double date_usec, int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs)
99
+ {
100
+ adaptBuffers(inputs, outputs);
101
+ fDSP->compute(date_usec, count, fAdaptedInputs, fAdaptedOutputs);
102
+ }
103
+
104
+ virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs)
105
+ {
106
+ adaptBuffers(inputs, outputs);
107
+ fDSP->compute(count, fAdaptedInputs, fAdaptedOutputs);
108
+ }
109
+ };
110
+
111
+ // Adapts a DSP for a different sample size
112
+ template <typename REAL_INT, typename REAL_EXT>
113
+ class dsp_sample_adapter : public decorator_dsp {
114
+
115
+ private:
116
+
117
+ REAL_INT** fAdaptedInputs;
118
+ REAL_INT** fAdaptedOutputs;
119
+
120
+ void adaptInputBuffers(int count, FAUSTFLOAT** inputs)
121
+ {
122
+ for (int chan = 0; chan < fDSP->getNumInputs(); chan++) {
123
+ for (int frame = 0; frame < count; frame++) {
124
+ fAdaptedInputs[chan][frame] = REAL_INT(reinterpret_cast<REAL_EXT**>(inputs)[chan][frame]);
125
+ }
126
+ }
127
+ }
128
+
129
+ void adaptOutputsBuffers(int count, FAUSTFLOAT** outputs)
130
+ {
131
+ for (int chan = 0; chan < fDSP->getNumOutputs(); chan++) {
132
+ for (int frame = 0; frame < count; frame++) {
133
+ reinterpret_cast<REAL_EXT**>(outputs)[chan][frame] = REAL_EXT(fAdaptedOutputs[chan][frame]);
134
+ }
135
+ }
136
+ }
137
+
138
+ public:
139
+
140
+ dsp_sample_adapter(dsp* dsp):decorator_dsp(dsp)
141
+ {
142
+ fAdaptedInputs = new REAL_INT*[dsp->getNumInputs()];
143
+ for (int i = 0; i < dsp->getNumInputs(); i++) {
144
+ fAdaptedInputs[i] = new REAL_INT[4096];
145
+ }
146
+
147
+ fAdaptedOutputs = new REAL_INT*[dsp->getNumOutputs()];
148
+ for (int i = 0; i < dsp->getNumOutputs(); i++) {
149
+ fAdaptedOutputs[i] = new REAL_INT[4096];
150
+ }
151
+ }
152
+
153
+ virtual ~dsp_sample_adapter()
154
+ {
155
+ for (int i = 0; i < fDSP->getNumInputs(); i++) {
156
+ delete [] fAdaptedInputs[i];
157
+ }
158
+ delete [] fAdaptedInputs;
159
+
160
+ for (int i = 0; i < fDSP->getNumOutputs(); i++) {
161
+ delete [] fAdaptedOutputs[i];
162
+ }
163
+ delete [] fAdaptedOutputs;
164
+ }
165
+
166
+ virtual dsp_sample_adapter* clone() { return new dsp_sample_adapter(fDSP->clone()); }
167
+
168
+ virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs)
169
+ {
170
+ assert(count <= 4096);
171
+ adaptInputBuffers(count, inputs);
172
+ // DSP base class uses FAUSTFLOAT** type, so reinterpret_cast has to be used even if the real DSP uses REAL_INT
173
+ fDSP->compute(count, reinterpret_cast<FAUSTFLOAT**>(fAdaptedInputs), reinterpret_cast<FAUSTFLOAT**>(fAdaptedOutputs));
174
+ adaptOutputsBuffers(count, outputs);
175
+ }
176
+
177
+ virtual void compute(double date_usec, int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs)
178
+ {
179
+ assert(count <= 4096);
180
+ adaptInputBuffers(count, inputs);
181
+ // DSP base class uses FAUSTFLOAT** type, so reinterpret_cast has to be used even if the real DSP uses REAL_INT
182
+ fDSP->compute(date_usec, count, reinterpret_cast<FAUSTFLOAT**>(fAdaptedInputs), reinterpret_cast<FAUSTFLOAT**>(fAdaptedOutputs));
183
+ adaptOutputsBuffers(count, outputs);
184
+ }
185
+ };
186
+
187
+ // Template used to specialize double parameters expressed as NUM/DENOM
188
+ template <int NUM, int DENOM>
189
+ struct Double {
190
+ static constexpr double value() { return double(NUM)/double(DENOM); }
191
+ };
192
+
193
+ // Base class for filters
194
+ template <class fVslider0, int fVslider1>
195
+ struct Filter {
196
+ inline int getFactor() { return fVslider1; }
197
+ };
198
+
199
+ // Identity filter: copy input to output
200
+ template <class fVslider0, int fVslider1>
201
+ struct Identity : public Filter<fVslider0, fVslider1> {
202
+ inline int getFactor() { return fVslider1; }
203
+
204
+ inline void compute(int count, FAUSTFLOAT* input0, FAUSTFLOAT* output0)
205
+ {
206
+ memcpy(output0, input0, count * sizeof(FAUSTFLOAT));
207
+ }
208
+ };
209
+
210
+ // Generated with process = fi.lowpass(3, ma.SR*hslider("FCFactor", 0.4, 0.4, 0.5, 0.01)/hslider("Factor", 2, 2, 8, 1));
211
+ template <class fVslider0, int fVslider1, typename REAL>
212
+ struct LowPass3 : public Filter<fVslider0, fVslider1> {
213
+
214
+ REAL fVec0[2];
215
+ REAL fRec1[2];
216
+ REAL fRec0[3];
217
+
218
+ inline REAL LowPass3_faustpower2_f(REAL value)
219
+ {
220
+ return (value * value);
221
+ }
222
+
223
+ LowPass3()
224
+ {
225
+ for (int l0 = 0; (l0 < 2); l0 = (l0 + 1)) {
226
+ fVec0[l0] = 0.0;
227
+ }
228
+ for (int l1 = 0; (l1 < 2); l1 = (l1 + 1)) {
229
+ fRec1[l1] = 0.0;
230
+ }
231
+ for (int l2 = 0; (l2 < 3); l2 = (l2 + 1)) {
232
+ fRec0[l2] = 0.0;
233
+ }
234
+ }
235
+
236
+ inline void compute(int count, FAUSTFLOAT* input0, FAUSTFLOAT* output0)
237
+ {
238
+ // Computed at template specialization time
239
+ REAL fSlow0 = std::tan((3.1415926535897931 * (REAL(fVslider0::value()) / REAL(fVslider1))));
240
+ REAL fSlow1 = (1.0 / fSlow0);
241
+ REAL fSlow2 = (1.0 / (((fSlow1 + 1.0000000000000002) / fSlow0) + 1.0));
242
+ REAL fSlow3 = (1.0 / (fSlow1 + 1.0));
243
+ REAL fSlow4 = (1.0 - fSlow1);
244
+ REAL fSlow5 = (((fSlow1 + -1.0000000000000002) / fSlow0) + 1.0);
245
+ REAL fSlow6 = (2.0 * (1.0 - (1.0 / LowPass3_faustpower2_f(fSlow0))));
246
+ // Computed at runtime
247
+ for (int i = 0; (i < count); i = (i + 1)) {
248
+ REAL fTemp0 = REAL(input0[i]);
249
+ fVec0[0] = fTemp0;
250
+ fRec1[0] = (0.0 - (fSlow3 * ((fSlow4 * fRec1[1]) - (fTemp0 + fVec0[1]))));
251
+ fRec0[0] = (fRec1[0] - (fSlow2 * ((fSlow5 * fRec0[2]) + (fSlow6 * fRec0[1]))));
252
+ output0[i] = FAUSTFLOAT((fSlow2 * (fRec0[2] + (fRec0[0] + (2.0 * fRec0[1])))));
253
+ fVec0[1] = fVec0[0];
254
+ fRec1[1] = fRec1[0];
255
+ fRec0[2] = fRec0[1];
256
+ fRec0[1] = fRec0[0];
257
+ }
258
+ }
259
+ };
260
+
261
+ // Generated with process = fi.lowpass(4, ma.SR*hslider("FCFactor", 0.4, 0.4, 0.5, 0.01)/hslider("Factor", 2, 2, 8, 1));
262
+ template <class fVslider0, int fVslider1, typename REAL>
263
+ struct LowPass4 : public Filter<fVslider0, fVslider1> {
264
+
265
+ REAL fRec1[3];
266
+ REAL fRec0[3];
267
+
268
+ inline REAL LowPass4_faustpower2_f(REAL value)
269
+ {
270
+ return (value * value);
271
+ }
272
+
273
+ LowPass4()
274
+ {
275
+ for (int l0 = 0; (l0 < 3); l0 = (l0 + 1)) {
276
+ fRec1[l0] = 0.0f;
277
+ }
278
+ for (int l1 = 0; (l1 < 3); l1 = (l1 + 1)) {
279
+ fRec0[l1] = 0.0f;
280
+ }
281
+ }
282
+
283
+ inline void compute(int count, FAUSTFLOAT* input0, FAUSTFLOAT* output0)
284
+ {
285
+ // Computed at template specialization time
286
+ REAL fSlow0 = std::tan((3.1415926535897931 * (REAL(fVslider0::value()) / REAL(fVslider1))));
287
+ REAL fSlow1 = (1.0 / fSlow0);
288
+ REAL fSlow2 = (1.0 / (((fSlow1 + 0.76536686473017945) / fSlow0) + 1.0));
289
+ REAL fSlow3 = (1.0 / (((fSlow1 + 1.8477590650225735) / fSlow0) + 1.0));
290
+ REAL fSlow4 = (((fSlow1 + -1.8477590650225735) / fSlow0) + 1.0);
291
+ REAL fSlow5 = (2.0 * (1.0 - (1.0 / LowPass4_faustpower2_f(fSlow0))));
292
+ REAL fSlow6 = (((fSlow1 + -0.76536686473017945) / fSlow0) + 1.0);
293
+ // Computed at runtime
294
+ for (int i = 0; (i < count); i = (i + 1)) {
295
+ fRec1[0] = (REAL(input0[i]) - (fSlow3 * ((fSlow4 * fRec1[2]) + (fSlow5 * fRec1[1]))));
296
+ fRec0[0] = ((fSlow3 * (fRec1[2] + (fRec1[0] + (2.0 * fRec1[1])))) - (fSlow2 * ((fSlow6 * fRec0[2]) + (fSlow5 * fRec0[1]))));
297
+ output0[i] = FAUSTFLOAT((fSlow2 * (fRec0[2] + (fRec0[0] + (2.0 * fRec0[1])))));
298
+ fRec1[2] = fRec1[1];
299
+ fRec1[1] = fRec1[0];
300
+ fRec0[2] = fRec0[1];
301
+ fRec0[1] = fRec0[0];
302
+ }
303
+ }
304
+ };
305
+
306
+ // Generated with process = fi.lowpass3e(ma.SR*hslider("FCFactor", 0.4, 0.4, 0.5, 0.01)/hslider("Factor", 2, 2, 8, 1));
307
+ template <class fVslider0, int fVslider1, typename REAL>
308
+ struct LowPass3e : public Filter<fVslider0, fVslider1> {
309
+
310
+ REAL fRec1[3];
311
+ REAL fVec0[2];
312
+ REAL fRec0[2];
313
+
314
+ inline REAL LowPass3e_faustpower2_f(REAL value)
315
+ {
316
+ return (value * value);
317
+ }
318
+
319
+ LowPass3e()
320
+ {
321
+ for (int l0 = 0; (l0 < 3); l0 = (l0 + 1)) {
322
+ fRec1[l0] = 0.0;
323
+ }
324
+ for (int l1 = 0; (l1 < 2); l1 = (l1 + 1)) {
325
+ fVec0[l1] = 0.0;
326
+ }
327
+ for (int l2 = 0; (l2 < 2); l2 = (l2 + 1)) {
328
+ fRec0[l2] = 0.0;
329
+ }
330
+ }
331
+
332
+ inline void compute(int count, FAUSTFLOAT* input0, FAUSTFLOAT* output0)
333
+ {
334
+ // Computed at template specialization time
335
+ REAL fSlow0 = std::tan((3.1415926535897931 * (REAL(fVslider0::value()) / REAL(fVslider1))));
336
+ REAL fSlow1 = (1.0 / fSlow0);
337
+ REAL fSlow2 = (1.0 / (fSlow1 + 0.82244590899881598));
338
+ REAL fSlow3 = (0.82244590899881598 - fSlow1);
339
+ REAL fSlow4 = (1.0 / (((fSlow1 + 0.80263676416103003) / fSlow0) + 1.4122708937742039));
340
+ REAL fSlow5 = LowPass3e_faustpower2_f(fSlow0);
341
+ REAL fSlow6 = (0.019809144837788999 / fSlow5);
342
+ REAL fSlow7 = (fSlow6 + 1.1615164189826961);
343
+ REAL fSlow8 = (((fSlow1 + -0.80263676416103003) / fSlow0) + 1.4122708937742039);
344
+ REAL fSlow9 = (2.0 * (1.4122708937742039 - (1.0 / fSlow5)));
345
+ REAL fSlow10 = (2.0 * (1.1615164189826961 - fSlow6));
346
+ // Computed at runtime
347
+ for (int i = 0; (i < count); i = (i + 1)) {
348
+ fRec1[0] = (REAL(input0[i]) - (fSlow4 * ((fSlow8 * fRec1[2]) + (fSlow9 * fRec1[1]))));
349
+ REAL fTemp0 = (fSlow4 * (((fSlow7 * fRec1[0]) + (fSlow10 * fRec1[1])) + (fSlow7 * fRec1[2])));
350
+ fVec0[0] = fTemp0;
351
+ fRec0[0] = (0.0 - (fSlow2 * ((fSlow3 * fRec0[1]) - (fTemp0 + fVec0[1]))));
352
+ output0[i] = FAUSTFLOAT(fRec0[0]);
353
+ fRec1[2] = fRec1[1];
354
+ fRec1[1] = fRec1[0];
355
+ fVec0[1] = fVec0[0];
356
+ fRec0[1] = fRec0[0];
357
+ }
358
+ }
359
+ };
360
+
361
+ // Generated with process = fi.lowpass6e(ma.SR*hslider("FCFactor", 0.4, 0.4, 0.5, 0.01)/hslider("Factor", 2, 2, 8, 1));
362
+ template <class fVslider0, int fVslider1, typename REAL>
363
+ struct LowPass6e : public Filter<fVslider0, fVslider1> {
364
+
365
+ REAL fRec2[3];
366
+ REAL fRec1[3];
367
+ REAL fRec0[3];
368
+
369
+ inline REAL LowPass6e_faustpower2_f(REAL value)
370
+ {
371
+ return (value * value);
372
+ }
373
+
374
+ LowPass6e()
375
+ {
376
+ for (int l0 = 0; (l0 < 3); l0 = (l0 + 1)) {
377
+ fRec2[l0] = 0.0;
378
+ }
379
+ for (int l1 = 0; (l1 < 3); l1 = (l1 + 1)) {
380
+ fRec1[l1] = 0.0;
381
+ }
382
+ for (int l2 = 0; (l2 < 3); l2 = (l2 + 1)) {
383
+ fRec0[l2] = 0.0;
384
+ }
385
+ }
386
+
387
+ inline void compute(int count, FAUSTFLOAT* input0, FAUSTFLOAT* output0)
388
+ {
389
+ // Computed at template specialization time
390
+ REAL fSlow0 = std::tan((3.1415926535897931 * (REAL(fVslider0::value()) / REAL(fVslider1))));
391
+ REAL fSlow1 = (1.0 / fSlow0);
392
+ REAL fSlow2 = (1.0 / (((fSlow1 + 0.16840487111358901) / fSlow0) + 1.0693584077073119));
393
+ REAL fSlow3 = LowPass6e_faustpower2_f(fSlow0);
394
+ REAL fSlow4 = (1.0 / fSlow3);
395
+ REAL fSlow5 = (fSlow4 + 53.536152954556727);
396
+ REAL fSlow6 = (1.0 / (((fSlow1 + 0.51247864188914105) / fSlow0) + 0.68962136448467504));
397
+ REAL fSlow7 = (fSlow4 + 7.6217312988706034);
398
+ REAL fSlow8 = (1.0 / (((fSlow1 + 0.78241304682164503) / fSlow0) + 0.24529150870616001));
399
+ REAL fSlow9 = (9.9999997054999994e-05 / fSlow3);
400
+ REAL fSlow10 = (fSlow9 + 0.00043322720055500002);
401
+ REAL fSlow11 = (((fSlow1 + -0.78241304682164503) / fSlow0) + 0.24529150870616001);
402
+ REAL fSlow12 = (2.0 * (0.24529150870616001 - fSlow4));
403
+ REAL fSlow13 = (2.0 * (0.00043322720055500002 - fSlow9));
404
+ REAL fSlow14 = (((fSlow1 + -0.51247864188914105) / fSlow0) + 0.68962136448467504);
405
+ REAL fSlow15 = (2.0 * (0.68962136448467504 - fSlow4));
406
+ REAL fSlow16 = (2.0 * (7.6217312988706034 - fSlow4));
407
+ REAL fSlow17 = (((fSlow1 + -0.16840487111358901) / fSlow0) + 1.0693584077073119);
408
+ REAL fSlow18 = (2.0 * (1.0693584077073119 - fSlow4));
409
+ REAL fSlow19 = (2.0 * (53.536152954556727 - fSlow4));
410
+ // Computed at runtime
411
+ for (int i = 0; (i < count); i = (i + 1)) {
412
+ fRec2[0] = (REAL(input0[i]) - (fSlow8 * ((fSlow11 * fRec2[2]) + (fSlow12 * fRec2[1]))));
413
+ fRec1[0] = ((fSlow8 * (((fSlow10 * fRec2[0]) + (fSlow13 * fRec2[1])) + (fSlow10 * fRec2[2]))) - (fSlow6 * ((fSlow14 * fRec1[2]) + (fSlow15 * fRec1[1]))));
414
+ fRec0[0] = ((fSlow6 * (((fSlow7 * fRec1[0]) + (fSlow16 * fRec1[1])) + (fSlow7 * fRec1[2]))) - (fSlow2 * ((fSlow17 * fRec0[2]) + (fSlow18 * fRec0[1]))));
415
+ output0[i] = FAUSTFLOAT((fSlow2 * (((fSlow5 * fRec0[0]) + (fSlow19 * fRec0[1])) + (fSlow5 * fRec0[2]))));
416
+ fRec2[2] = fRec2[1];
417
+ fRec2[1] = fRec2[0];
418
+ fRec1[2] = fRec1[1];
419
+ fRec1[1] = fRec1[0];
420
+ fRec0[2] = fRec0[1];
421
+ fRec0[1] = fRec0[0];
422
+ }
423
+ }
424
+ };
425
+
426
+ // A "si.bus(N)" like hard-coded class
427
+ struct dsp_bus : public dsp {
428
+
429
+ int fChannels;
430
+ int fSampleRate;
431
+
432
+ dsp_bus(int channels):fChannels(channels), fSampleRate(-1)
433
+ {}
434
+
435
+ virtual int getNumInputs() { return fChannels; }
436
+ virtual int getNumOutputs() { return fChannels; }
437
+
438
+ virtual int getSampleRate() { return fSampleRate; }
439
+
440
+ virtual void buildUserInterface(UI* ui_interface) {}
441
+ virtual void init(int sample_rate)
442
+ {
443
+ //classInit(sample_rate);
444
+ instanceInit(sample_rate);
445
+ }
446
+
447
+ virtual void instanceInit(int sample_rate)
448
+ {
449
+ fSampleRate = sample_rate;
450
+ instanceConstants(sample_rate);
451
+ instanceResetUserInterface();
452
+ instanceClear();
453
+ }
454
+
455
+ virtual void instanceConstants(int sample_rate) {}
456
+ virtual void instanceResetUserInterface() {}
457
+ virtual void instanceClear() {}
458
+
459
+ virtual dsp* clone() { return new dsp_bus(fChannels); }
460
+
461
+ virtual void metadata(Meta* m) {}
462
+
463
+ virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs)
464
+ {
465
+ for (int chan = 0; chan < fChannels; chan++) {
466
+ memcpy(outputs[chan], inputs[chan], sizeof(FAUSTFLOAT) * count);
467
+ }
468
+ }
469
+
470
+ virtual void compute(double /*date_usec*/, int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs)
471
+ {
472
+ compute(count, inputs, outputs);
473
+ }
474
+
475
+ };
476
+
477
+ // Base class for sample-rate adapter
478
+ template <typename FILTER>
479
+ class sr_sampler : public decorator_dsp {
480
+
481
+ protected:
482
+
483
+ std::vector<FILTER> fInputLowPass;
484
+ std::vector<FILTER> fOutputLowPass;
485
+
486
+ inline int getFactor() { return this->fOutputLowPass[0].getFactor(); }
487
+
488
+ public:
489
+
490
+ sr_sampler(dsp* dsp):decorator_dsp(dsp)
491
+ {
492
+ for (int chan = 0; chan < fDSP->getNumInputs(); chan++) {
493
+ fInputLowPass.push_back(FILTER());
494
+ }
495
+ for (int chan = 0; chan < fDSP->getNumOutputs(); chan++) {
496
+ fOutputLowPass.push_back(FILTER());
497
+ }
498
+ }
499
+ };
500
+
501
+ // Down sample-rate adapter
502
+ template <typename FILTER>
503
+ class dsp_down_sampler : public sr_sampler<FILTER> {
504
+
505
+ public:
506
+
507
+ dsp_down_sampler(dsp* dsp):sr_sampler<FILTER>(dsp)
508
+ {}
509
+
510
+ virtual void init(int sample_rate)
511
+ {
512
+ this->fDSP->init(sample_rate / this->getFactor());
513
+ }
514
+
515
+ virtual void instanceInit(int sample_rate)
516
+ {
517
+ this->fDSP->instanceInit(sample_rate / this->getFactor());
518
+ }
519
+
520
+ virtual void instanceConstants(int sample_rate)
521
+ {
522
+ this->fDSP->instanceConstants(sample_rate / this->getFactor());
523
+ }
524
+
525
+ virtual dsp_down_sampler* clone() { return new dsp_down_sampler(decorator_dsp::clone()); }
526
+
527
+ virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs)
528
+ {
529
+ int real_count = count / this->getFactor();
530
+
531
+ // Adapt inputs
532
+ FAUSTFLOAT** fInputs = (FAUSTFLOAT**)alloca(this->fDSP->getNumInputs() * sizeof(FAUSTFLOAT*));
533
+ for (int chan = 0; chan < this->fDSP->getNumInputs(); chan++) {
534
+ // Lowpass filtering in place on 'inputs'
535
+ this->fInputLowPass[chan].compute(count, inputs[chan], inputs[chan]);
536
+ // Allocate fInputs with 'real_count' frames
537
+ fInputs[chan] = (FAUSTFLOAT*)alloca(sizeof(FAUSTFLOAT) * real_count);
538
+ // Decimate
539
+ for (int frame = 0; frame < real_count; frame++) {
540
+ fInputs[chan][frame] = inputs[chan][frame * this->getFactor()];
541
+ }
542
+ }
543
+
544
+ // Allocate fOutputs with 'real_count' frames
545
+ FAUSTFLOAT** fOutputs = (FAUSTFLOAT**)alloca(this->fDSP->getNumOutputs() * sizeof(FAUSTFLOAT*));
546
+ for (int chan = 0; chan < this->fDSP->getNumOutputs(); chan++) {
547
+ fOutputs[chan] = (FAUSTFLOAT*)alloca(sizeof(FAUSTFLOAT) * real_count);
548
+ }
549
+
550
+ // Compute at lower rate
551
+ this->fDSP->compute(real_count, fInputs, fOutputs);
552
+
553
+ // Adapt outputs
554
+ for (int chan = 0; chan < this->fDSP->getNumOutputs(); chan++) {
555
+ // Puts zeros
556
+ memset(outputs[chan], 0, sizeof(FAUSTFLOAT) * count);
557
+ for (int frame = 0; frame < real_count; frame++) {
558
+ // Copy one sample every 'DownFactor'
559
+ // Apply volume
560
+ //outputs[chan][frame * this->getFactor()] = fOutputs[chan][frame] * this->getFactor();
561
+ outputs[chan][frame * this->getFactor()] = fOutputs[chan][frame];
562
+ }
563
+ // Lowpass filtering in place on 'outputs'
564
+ this->fOutputLowPass[chan].compute(count, outputs[chan], outputs[chan]);
565
+ }
566
+ }
567
+
568
+ virtual void compute(double /*date_usec*/, int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { compute(count, inputs, outputs); }
569
+ };
570
+
571
+ // Up sample-rate adapter
572
+ template <typename FILTER>
573
+ class dsp_up_sampler : public sr_sampler<FILTER> {
574
+
575
+ public:
576
+
577
+ dsp_up_sampler(dsp* dsp):sr_sampler<FILTER>(dsp)
578
+ {}
579
+
580
+ virtual void init(int sample_rate)
581
+ {
582
+ this->fDSP->init(sample_rate * this->getFactor());
583
+ }
584
+
585
+ virtual void instanceInit(int sample_rate)
586
+ {
587
+ this->fDSP->instanceInit(sample_rate * this->getFactor());
588
+ }
589
+
590
+ virtual void instanceConstants(int sample_rate)
591
+ {
592
+ this->fDSP->instanceConstants(sample_rate * this->getFactor());
593
+ }
594
+
595
+ virtual dsp_up_sampler* clone() { return new dsp_up_sampler(decorator_dsp::clone()); }
596
+
597
+ virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs)
598
+ {
599
+ int real_count = count * this->getFactor();
600
+
601
+ // Adapt inputs
602
+ FAUSTFLOAT** fInputs = (FAUSTFLOAT**)alloca(this->fDSP->getNumInputs() * sizeof(FAUSTFLOAT*));
603
+
604
+ for (int chan = 0; chan < this->fDSP->getNumInputs(); chan++) {
605
+ // Allocate fInputs with 'real_count' frames
606
+ fInputs[chan] = (FAUSTFLOAT*)alloca(sizeof(FAUSTFLOAT) * real_count);
607
+ // Puts zeros
608
+ memset(fInputs[chan], 0, sizeof(FAUSTFLOAT) * real_count);
609
+ for (int frame = 0; frame < count; frame++) {
610
+ // Copy one sample every 'UpFactor'
611
+ fInputs[chan][frame * this->getFactor()] = inputs[chan][frame];
612
+ }
613
+ // Lowpass filtering in place on 'fInputs'
614
+ this->fInputLowPass[chan].compute(real_count, fInputs[chan], fInputs[chan]);
615
+ }
616
+
617
+ // Allocate fOutputs with 'real_count' frames
618
+ FAUSTFLOAT** fOutputs = (FAUSTFLOAT**)alloca(this->fDSP->getNumOutputs() * sizeof(FAUSTFLOAT*));
619
+
620
+ for (int chan = 0; chan < this->fDSP->getNumOutputs(); chan++) {
621
+ fOutputs[chan] = (FAUSTFLOAT*)alloca(sizeof(FAUSTFLOAT) * real_count);
622
+ }
623
+
624
+ // Compute at upper rate
625
+ this->fDSP->compute(real_count, fInputs, fOutputs);
626
+
627
+ // Adapt outputs
628
+ for (int chan = 0; chan < this->fDSP->getNumOutputs(); chan++) {
629
+ // Lowpass filtering in place on 'fOutputs'
630
+ this->fOutputLowPass[chan].compute(real_count, fOutputs[chan], fOutputs[chan]);
631
+ // Decimate
632
+ for (int frame = 0; frame < count; frame++) {
633
+ // Apply volume
634
+ //outputs[chan][frame] = fOutputs[chan][frame * this->getFactor()] * this->getFactor();
635
+ outputs[chan][frame] = fOutputs[chan][frame * this->getFactor()];
636
+ }
637
+ }
638
+ }
639
+
640
+ virtual void compute(double /*date_usec*/, int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { compute(count, inputs, outputs); }
641
+ };
642
+
643
+ // Create a UP/DS + Filter adapted DSP
644
+ template <typename REAL>
645
+ dsp* createSRAdapter(dsp* DSP, std::string& error, int ds = 0, int us = 0, int filter = 0)
646
+ {
647
+ if (ds >= 2) {
648
+ switch (filter) {
649
+ case 0:
650
+ if (ds == 2) {
651
+ return new dsp_down_sampler<Identity<Double<1,1>, 2>>(DSP);
652
+ } else if (ds == 3) {
653
+ return new dsp_down_sampler<Identity<Double<1,1>, 3>>(DSP);
654
+ } else if (ds == 4) {
655
+ return new dsp_down_sampler<Identity<Double<1,1>, 4>>(DSP);
656
+ } else if (ds == 8) {
657
+ return new dsp_down_sampler<Identity<Double<1,1>, 8>>(DSP);
658
+ } else if (ds == 16) {
659
+ return new dsp_down_sampler<Identity<Double<1,1>, 16>>(DSP);
660
+ } else if (ds == 32) {
661
+ return new dsp_down_sampler<Identity<Double<1,1>, 32>>(DSP);
662
+ } else {
663
+ error = "ERROR : ds factor type must be in [2..32] range\n";
664
+ return nullptr;
665
+ }
666
+ case 1:
667
+ if (ds == 2) {
668
+ return new dsp_down_sampler<LowPass3<Double<45,100>, 2, REAL>>(DSP);
669
+ } else if (ds == 3) {
670
+ return new dsp_down_sampler<LowPass3<Double<45,100>, 3, REAL>>(DSP);
671
+ } else if (ds == 4) {
672
+ return new dsp_down_sampler<LowPass3<Double<45,100>, 4, REAL>>(DSP);
673
+ } else if (ds == 8) {
674
+ return new dsp_down_sampler<LowPass3<Double<45,100>, 8, REAL>>(DSP);
675
+ } else if (ds == 16) {
676
+ return new dsp_down_sampler<LowPass3<Double<45,100>, 16, REAL>>(DSP);
677
+ } else if (ds == 32) {
678
+ return new dsp_down_sampler<LowPass3<Double<45,100>, 32, REAL>>(DSP);
679
+ } else {
680
+ error = "ERROR : ds factor type must be in [2..32] range\n";
681
+ return nullptr;
682
+ }
683
+ case 2:
684
+ if (ds == 2) {
685
+ return new dsp_down_sampler<LowPass4<Double<45,100>, 2, REAL>>(DSP);
686
+ } else if (ds == 3) {
687
+ return new dsp_down_sampler<LowPass4<Double<45,100>, 3, REAL>>(DSP);
688
+ } else if (ds == 4) {
689
+ return new dsp_down_sampler<LowPass4<Double<45,100>, 4, REAL>>(DSP);
690
+ } else if (ds == 8) {
691
+ return new dsp_down_sampler<LowPass4<Double<45,100>, 8, REAL>>(DSP);
692
+ } else if (ds == 16) {
693
+ return new dsp_down_sampler<LowPass4<Double<45,100>, 16, REAL>>(DSP);
694
+ } else if (ds == 32) {
695
+ return new dsp_down_sampler<LowPass4<Double<45,100>, 32, REAL>>(DSP);
696
+ } else {
697
+ error = "ERROR : ds factor type must be in [2..32] range\n";
698
+ return nullptr;
699
+ }
700
+ case 3:
701
+ if (ds == 2) {
702
+ return new dsp_down_sampler<LowPass3e<Double<45,100>, 2, REAL>>(DSP);
703
+ } else if (ds == 3) {
704
+ return new dsp_down_sampler<LowPass3e<Double<45,100>, 3, REAL>>(DSP);
705
+ } else if (ds == 4) {
706
+ return new dsp_down_sampler<LowPass3e<Double<45,100>, 4, REAL>>(DSP);
707
+ } else if (ds == 8) {
708
+ return new dsp_down_sampler<LowPass3e<Double<45,100>, 8, REAL>>(DSP);
709
+ } else if (ds == 16) {
710
+ return new dsp_down_sampler<LowPass3e<Double<45,100>, 16, REAL>>(DSP);
711
+ } else if (ds == 32) {
712
+ return new dsp_down_sampler<LowPass3e<Double<45,100>, 32, REAL>>(DSP);
713
+ } else {
714
+ error = "ERROR : ds factor type must be in [2..32] range\n";
715
+ return nullptr;
716
+ }
717
+ case 4:
718
+ if (ds == 2) {
719
+ return new dsp_down_sampler<LowPass6e<Double<45,100>, 2, REAL>>(DSP);
720
+ } else if (ds == 3) {
721
+ return new dsp_down_sampler<LowPass6e<Double<45,100>, 3, REAL>>(DSP);
722
+ } else if (ds == 4) {
723
+ return new dsp_down_sampler<LowPass6e<Double<45,100>, 4, REAL>>(DSP);
724
+ } else if (ds == 8) {
725
+ return new dsp_down_sampler<LowPass6e<Double<45,100>, 8, REAL>>(DSP);
726
+ } else if (ds == 16) {
727
+ return new dsp_down_sampler<LowPass6e<Double<45,100>, 16, REAL>>(DSP);
728
+ } else if (ds == 32) {
729
+ return new dsp_down_sampler<LowPass6e<Double<45,100>, 32, REAL>>(DSP);
730
+ } else {
731
+ error = "ERROR : ds factor type must be in [2..32] range\n";
732
+ return nullptr;
733
+ }
734
+ default:
735
+ error = "ERROR : filter type must be in [0..4] range\n";
736
+ return nullptr;
737
+ }
738
+ } else if (us >= 2) {
739
+
740
+ switch (filter) {
741
+ case 0:
742
+ if (us == 2) {
743
+ return new dsp_up_sampler<Identity<Double<1,1>, 2>>(DSP);
744
+ } else if (us == 3) {
745
+ return new dsp_up_sampler<Identity<Double<1,1>, 3>>(DSP);
746
+ } else if (us == 4) {
747
+ return new dsp_up_sampler<Identity<Double<1,1>, 4>>(DSP);
748
+ } else if (us == 8) {
749
+ return new dsp_up_sampler<Identity<Double<1,1>, 8>>(DSP);
750
+ } else if (us == 16) {
751
+ return new dsp_up_sampler<Identity<Double<1,1>, 16>>(DSP);
752
+ } else if (us == 32) {
753
+ return new dsp_up_sampler<Identity<Double<1,1>, 32>>(DSP);
754
+ } else {
755
+ error = "ERROR : us factor type must be in [2..32] range\n";
756
+ return nullptr;
757
+ }
758
+ case 1:
759
+ if (us == 2) {
760
+ return new dsp_up_sampler<LowPass3<Double<45,100>, 2, REAL>>(DSP);
761
+ } else if (us == 3) {
762
+ return new dsp_up_sampler<LowPass3<Double<45,100>, 3, REAL>>(DSP);
763
+ } else if (us == 4) {
764
+ return new dsp_up_sampler<LowPass3<Double<45,100>, 4, REAL>>(DSP);
765
+ } else if (us == 8) {
766
+ return new dsp_up_sampler<LowPass3<Double<45,100>, 8, REAL>>(DSP);
767
+ } else if (us == 16) {
768
+ return new dsp_up_sampler<LowPass3<Double<45,100>, 16, REAL>>(DSP);
769
+ } else if (us == 32) {
770
+ return new dsp_up_sampler<LowPass3<Double<45,100>, 32, REAL>>(DSP);
771
+ } else {
772
+ error = "ERROR : us factor type must be in [2..32] range\n";
773
+ return nullptr;
774
+ }
775
+ case 2:
776
+ if (us == 2) {
777
+ return new dsp_up_sampler<LowPass4<Double<45,100>, 2, REAL>>(DSP);
778
+ } else if (us == 3) {
779
+ return new dsp_up_sampler<LowPass4<Double<45,100>, 3, REAL>>(DSP);
780
+ } else if (us == 4) {
781
+ return new dsp_up_sampler<LowPass4<Double<45,100>, 4, REAL>>(DSP);
782
+ } else if (us == 8) {
783
+ return new dsp_up_sampler<LowPass4<Double<45,100>, 8, REAL>>(DSP);
784
+ } else if (us == 16) {
785
+ return new dsp_up_sampler<LowPass4<Double<45,100>, 16, REAL>>(DSP);
786
+ } else if (us == 32) {
787
+ return new dsp_up_sampler<LowPass4<Double<45,100>, 32, REAL>>(DSP);
788
+ } else {
789
+ error = "ERROR : us factor type must be in [2..32] range\n";
790
+ return nullptr;
791
+ }
792
+ case 3:
793
+ if (us == 2) {
794
+ return new dsp_up_sampler<LowPass3e<Double<45,100>, 2, REAL>>(DSP);
795
+ } else if (us == 3) {
796
+ return new dsp_up_sampler<LowPass3e<Double<45,100>, 3, REAL>>(DSP);
797
+ } else if (us == 4) {
798
+ return new dsp_up_sampler<LowPass3e<Double<45,100>, 4, REAL>>(DSP);
799
+ } else if (us == 8) {
800
+ return new dsp_up_sampler<LowPass3e<Double<45,100>, 8, REAL>>(DSP);
801
+ } else if (us == 16) {
802
+ return new dsp_up_sampler<LowPass3e<Double<45,100>, 16, REAL>>(DSP);
803
+ } else if (us == 32) {
804
+ return new dsp_up_sampler<LowPass3e<Double<45,100>, 32, REAL>>(DSP);
805
+ } else {
806
+ error = "ERROR : us factor type must be in [2..32] range\n";
807
+ return nullptr;
808
+ }
809
+ case 4:
810
+ if (us == 2) {
811
+ return new dsp_up_sampler<LowPass6e<Double<45,100>, 2, REAL>>(DSP);
812
+ } else if (us == 3) {
813
+ return new dsp_up_sampler<LowPass6e<Double<45,100>, 3, REAL>>(DSP);
814
+ } else if (us == 4) {
815
+ return new dsp_up_sampler<LowPass6e<Double<45,100>, 4, REAL>>(DSP);
816
+ } else if (us == 8) {
817
+ return new dsp_up_sampler<LowPass6e<Double<45,100>, 8, REAL>>(DSP);
818
+ } else if (us == 16) {
819
+ return new dsp_up_sampler<LowPass6e<Double<45,100>, 16, REAL>>(DSP);
820
+ } else if (us == 32) {
821
+ return new dsp_up_sampler<LowPass6e<Double<45,100>, 32, REAL>>(DSP);
822
+ } else {
823
+ error = "ERROR : us factor type must be in [2..32] range\n";
824
+ return nullptr;
825
+ }
826
+ default:
827
+ error = "ERROR : filter type must be in [0..4] range\n";
828
+ return nullptr;
829
+ }
830
+ } else {
831
+ return DSP;
832
+ }
833
+ }
834
+
835
+ #endif
836
+ /************************** END dsp-adapter.h **************************/