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,809 @@
1
+ /************************************************************************
2
+ FAUST Architecture File
3
+ Copyright (C) 2016 GRAME, Centre National de Creation Musicale
4
+ ---------------------------------------------------------------------
5
+ This Architecture section is free software; you can redistribute it
6
+ and/or modify it under the terms of the GNU General Public License
7
+ as published by the Free Software Foundation; either version 3 of
8
+ the License, or (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 General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License
16
+ along with this program; If not, see <http://www.gnu.org/licenses/>.
17
+
18
+ EXCEPTION : As a special exception, you may create a larger work
19
+ that contains this FAUST architecture section and distribute
20
+ that work under terms of your choice, so long as this FAUST
21
+ architecture section is not modified.
22
+
23
+ ************************************************************************
24
+ ************************************************************************/
25
+
26
+ #include <algorithm>
27
+ #include <assert.h>
28
+
29
+ #if JUCE_WINDOWS
30
+ #define JUCE_CORE_INCLUDE_NATIVE_HEADERS 1
31
+ #endif
32
+
33
+ #include "JuceLibraryCode/JuceHeader.h"
34
+
35
+ #include "faust/gui/MapUI.h"
36
+ #include "faust/dsp/dsp-adapter.h"
37
+ #include "faust/gui/MidiUI.h"
38
+ #include "faust/dsp/poly-dsp.h"
39
+ #ifndef PLUGIN_MAGIC
40
+ #include "faust/gui/JuceGUI.h"
41
+ #endif
42
+ #include "faust/gui/JuceParameterUI.h"
43
+ #include "faust/gui/JuceStateUI.h"
44
+
45
+ // Always included otherwise -i mode sometimes fails...
46
+ #include "faust/gui/DecoratorUI.h"
47
+
48
+ #if defined(SOUNDFILE)
49
+ #include "faust/gui/SoundUI.h"
50
+ #endif
51
+
52
+ #if defined(OSCCTRL)
53
+ #include "faust/gui/JuceOSCUI.h"
54
+ #endif
55
+
56
+ #if defined(MIDICTRL)
57
+ #include "faust/midi/juce-midi.h"
58
+ #include "faust/dsp/timed-dsp.h"
59
+ #endif
60
+
61
+ #if defined(POLY2)
62
+ #include "faust/dsp/dsp-combiner.h"
63
+ #include "effect.h"
64
+ #endif
65
+
66
+ // we require macro declarations
67
+ #define FAUST_UIMACROS
68
+
69
+ // but we will ignore most of them
70
+ #define FAUST_ADDBUTTON(l,f)
71
+ #define FAUST_ADDCHECKBOX(l,f)
72
+ #define FAUST_ADDSOUNDFILE(l,s)
73
+ #define FAUST_ADDVERTICALSLIDER(l,f,i,a,b,s)
74
+ #define FAUST_ADDHORIZONTALSLIDER(l,f,i,a,b,s)
75
+ #define FAUST_ADDNUMENTRY(l,f,i,a,b,s)
76
+ #define FAUST_ADDVERTICALBARGRAPH(l,f,a,b)
77
+ #define FAUST_ADDHORIZONTALBARGRAPH(l,f,a,b)
78
+
79
+ <<includeIntrinsic>>
80
+
81
+ <<includeclass>>
82
+
83
+ #if defined(JUCE_POLY)
84
+
85
+ struct FaustSound : public juce::SynthesiserSound {
86
+
87
+ bool appliesToNote (int /*midiNoteNumber*/) override { return true; }
88
+ bool appliesToChannel (int /*midiChannel*/) override { return true; }
89
+ };
90
+
91
+ // An hybrid JUCE and Faust voice
92
+
93
+ class FaustVoice : public juce::SynthesiserVoice, public dsp_voice {
94
+
95
+ private:
96
+
97
+ std::unique_ptr<juce::AudioBuffer<FAUSTFLOAT>> fBuffer;
98
+
99
+ public:
100
+
101
+ FaustVoice(dsp* dsp):dsp_voice(dsp)
102
+ {
103
+ // Allocate buffer for mixing
104
+ fBuffer = std::make_unique<juce::AudioBuffer<FAUSTFLOAT>>(dsp->getNumOutputs(), 8192);
105
+ fDSP->init(juce::SynthesiserVoice::getSampleRate());
106
+ }
107
+
108
+ bool canPlaySound (juce::SynthesiserSound* sound) override
109
+ {
110
+ return dynamic_cast<FaustSound*> (sound) != nullptr;
111
+ }
112
+
113
+ void startNote (int midiNoteNumber,
114
+ float velocity,
115
+ juce::SynthesiserSound* s,
116
+ int currentPitchWheelPosition) override
117
+ {
118
+ // Note is triggered
119
+ keyOn(midiNoteNumber, velocity);
120
+ }
121
+
122
+ void stopNote (float velocity, bool allowTailOff) override
123
+ {
124
+ keyOff(!allowTailOff);
125
+ }
126
+
127
+ void pitchWheelMoved (int newPitchWheelValue) override
128
+ {
129
+ // not implemented for now
130
+ }
131
+
132
+ void controllerMoved (int controllerNumber, int newControllerValue) override
133
+ {
134
+ // not implemented for now
135
+ }
136
+
137
+ void renderNextBlock (juce::AudioBuffer<FAUSTFLOAT>& outputBuffer,
138
+ int startSample,
139
+ int numSamples) override
140
+ {
141
+ // Only plays when the voice is active
142
+ if (isVoiceActive()) {
143
+
144
+ // Play the voice
145
+ compute(numSamples, nullptr, (FAUSTFLOAT**)fBuffer->getArrayOfWritePointers());
146
+
147
+ // Mix it in outputs
148
+ for (int i = 0; i < fDSP->getNumOutputs(); i++) {
149
+ outputBuffer.addFrom(i, startSample, *fBuffer, i, 0, numSamples);
150
+ }
151
+ }
152
+ }
153
+
154
+ };
155
+
156
+ // Decorates the JUCE Synthesiser and adds Faust polyphonic code for GUI handling
157
+
158
+ class FaustSynthesiser : public juce::Synthesiser, public dsp_voice_group {
159
+
160
+ private:
161
+
162
+ juce::Synthesiser fSynth;
163
+
164
+ static void panic(float val, void* arg)
165
+ {
166
+ static_cast<FaustSynthesiser*>(arg)->allNotesOff(0, false); // 0 stops all voices
167
+ }
168
+
169
+ public:
170
+
171
+ FaustSynthesiser():dsp_voice_group(panic, this, true, true)
172
+ {
173
+ setNoteStealingEnabled(true);
174
+ }
175
+
176
+ virtual ~FaustSynthesiser()
177
+ {
178
+ // Voices will be deallocated by fSynth
179
+ dsp_voice_group::clearVoices();
180
+ }
181
+
182
+ void addVoice(FaustVoice* voice)
183
+ {
184
+ fSynth.addVoice(voice);
185
+ dsp_voice_group::addVoice(voice);
186
+ }
187
+
188
+ void addSound(juce::SynthesiserSound* sound)
189
+ {
190
+ fSynth.addSound(sound);
191
+ }
192
+
193
+ void allNotesOff(int midiChannel, bool allowTailOff)
194
+ {
195
+ fSynth.allNotesOff(midiChannel, allowTailOff);
196
+ }
197
+
198
+ void setCurrentPlaybackSampleRate (double newRate)
199
+ {
200
+ fSynth.setCurrentPlaybackSampleRate(newRate);
201
+ }
202
+
203
+ void renderNextBlock (juce::AudioBuffer<float>& outputAudio,
204
+ const juce::MidiBuffer& inputMidi,
205
+ int startSample,
206
+ int numSamples)
207
+ {
208
+ fSynth.renderNextBlock(outputAudio, inputMidi, startSample, numSamples);
209
+ }
210
+
211
+ void renderNextBlock (juce::AudioBuffer<double>& outputAudio,
212
+ const juce::MidiBuffer& inputMidi,
213
+ int startSample,
214
+ int numSamples)
215
+ {
216
+ fSynth.renderNextBlock(outputAudio, inputMidi, startSample, numSamples);
217
+ }
218
+
219
+ };
220
+
221
+ #endif
222
+
223
+ // Using the PluginGuiMagic project (https://foleysfinest.com/developer/pluginguimagic/)
224
+
225
+ #if defined(PLUGIN_MAGIC)
226
+
227
+ class FaustPlugInAudioProcessor : public foleys::MagicProcessor, private juce::Timer
228
+ {
229
+
230
+ public:
231
+ FaustPlugInAudioProcessor();
232
+ virtual ~FaustPlugInAudioProcessor() {}
233
+
234
+ void prepareToPlay (double sampleRate, int samplesPerBlock) override;
235
+
236
+ bool isBusesLayoutSupported (const BusesLayout& layouts) const override;
237
+
238
+ void processBlock (juce::AudioBuffer<float>& buffer, juce::MidiBuffer& midiMessages) override
239
+ {
240
+ jassert (! isUsingDoublePrecision());
241
+ process (buffer, midiMessages);
242
+ #ifdef MAGIC_LEVEL_SOURCE
243
+ fOutputMeter->pushSamples(buffer);
244
+ #endif
245
+ }
246
+
247
+ void processBlock (juce::AudioBuffer<double>& buffer, juce::MidiBuffer& midiMessages) override
248
+ {
249
+ jassert (isUsingDoublePrecision());
250
+ process (buffer, midiMessages);
251
+ }
252
+
253
+ const juce::String getName() const override;
254
+
255
+ bool acceptsMidi() const override;
256
+ bool producesMidi() const override;
257
+ double getTailLengthSeconds() const override;
258
+
259
+ int getNumPrograms() override;
260
+ int getCurrentProgram() override;
261
+ void setCurrentProgram (int index) override;
262
+ const juce::String getProgramName (int index) override;
263
+ void changeProgramName (int index, const juce::String& newName) override;
264
+
265
+ void releaseResources() override
266
+ {}
267
+
268
+ void timerCallback() override;
269
+
270
+ juce::AudioProcessor::BusesProperties getBusesProperties();
271
+ bool supportsDoublePrecisionProcessing() const override;
272
+
273
+ #ifdef MAGIC_LEVEL_SOURCE
274
+ foleys::MagicLevelSource* fOutputMeter = nullptr;
275
+ #endif
276
+ juce::AudioProcessorValueTreeState treeState{ *this, nullptr };
277
+
278
+ #ifdef JUCE_POLY
279
+ std::unique_ptr<FaustSynthesiser> fSynth;
280
+ #else
281
+ #if defined(MIDICTRL)
282
+ std::unique_ptr<juce_midi_handler> fMIDIHandler;
283
+ std::unique_ptr<MidiUI> fMIDIUI;
284
+ #endif
285
+ std::unique_ptr<dsp> fDSP;
286
+ #endif
287
+
288
+ #if defined(OSCCTRL)
289
+ std::unique_ptr<JuceOSCUI> fOSCUI;
290
+ #endif
291
+
292
+ #if defined(SOUNDFILE)
293
+ std::unique_ptr<SoundUI> fSoundUI;
294
+ #endif
295
+
296
+ JuceStateUI fStateUI;
297
+ JuceParameterUI fParameterUI;
298
+
299
+ std::atomic<bool> fFirstCall = true;
300
+
301
+ private:
302
+
303
+ template <typename FloatType>
304
+ void process (juce::AudioBuffer<FloatType>& buffer, juce::MidiBuffer& midiMessages);
305
+
306
+ JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (FaustPlugInAudioProcessor)
307
+
308
+ };
309
+
310
+ #else
311
+
312
+ class FaustPlugInAudioProcessor : public juce::AudioProcessor, private juce::Timer
313
+ {
314
+
315
+ public:
316
+
317
+ FaustPlugInAudioProcessor();
318
+ virtual ~FaustPlugInAudioProcessor() {}
319
+
320
+ void prepareToPlay (double sampleRate, int samplesPerBlock) override;
321
+
322
+ bool isBusesLayoutSupported (const BusesLayout& layouts) const override;
323
+
324
+ void processBlock (juce::AudioBuffer<float>& buffer, juce::MidiBuffer& midiMessages) override
325
+ {
326
+ jassert (! isUsingDoublePrecision());
327
+ process (buffer, midiMessages);
328
+ }
329
+
330
+ void processBlock (juce::AudioBuffer<double>& buffer, juce::MidiBuffer& midiMessages) override
331
+ {
332
+ jassert (isUsingDoublePrecision());
333
+ process (buffer, midiMessages);
334
+ }
335
+
336
+ juce::AudioProcessorEditor* createEditor() override;
337
+ bool hasEditor() const override;
338
+
339
+ const juce::String getName() const override;
340
+
341
+ bool acceptsMidi() const override;
342
+ bool producesMidi() const override;
343
+ double getTailLengthSeconds() const override;
344
+
345
+ int getNumPrograms() override;
346
+ int getCurrentProgram() override;
347
+ void setCurrentProgram (int index) override;
348
+ const juce::String getProgramName (int index) override;
349
+ void changeProgramName (int index, const juce::String& newName) override;
350
+
351
+ void getStateInformation (juce::MemoryBlock& destData) override;
352
+ void setStateInformation (const void* data, int sizeInBytes) override;
353
+
354
+ void releaseResources() override
355
+ {}
356
+
357
+ void timerCallback() override;
358
+
359
+ juce::AudioProcessor::BusesProperties getBusesProperties();
360
+ bool supportsDoublePrecisionProcessing() const override;
361
+
362
+ #ifdef JUCE_POLY
363
+ std::unique_ptr<FaustSynthesiser> fSynth;
364
+ #else
365
+ #if defined(MIDICTRL)
366
+ std::unique_ptr<juce_midi_handler> fMIDIHandler;
367
+ std::unique_ptr<MidiUI> fMIDIUI;
368
+ #endif
369
+ std::unique_ptr<dsp> fDSP;
370
+ #endif
371
+
372
+ #if defined(OSCCTRL)
373
+ std::unique_ptr<JuceOSCUI> fOSCUI;
374
+ #endif
375
+
376
+ #if defined(SOUNDFILE)
377
+ std::unique_ptr<SoundUI> fSoundUI;
378
+ #endif
379
+
380
+ JuceStateUI fStateUI;
381
+ JuceParameterUI fParameterUI;
382
+
383
+ std::atomic<bool> fFirstCall = true;
384
+
385
+ private:
386
+
387
+ template <typename FloatType>
388
+ void process (juce::AudioBuffer<FloatType>& buffer, juce::MidiBuffer& midiMessages);
389
+
390
+ JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (FaustPlugInAudioProcessor)
391
+
392
+ };
393
+
394
+ #endif
395
+
396
+ class FaustPlugInAudioProcessorEditor : public juce::AudioProcessorEditor
397
+ {
398
+
399
+ public:
400
+
401
+ FaustPlugInAudioProcessorEditor (FaustPlugInAudioProcessor&);
402
+ virtual ~FaustPlugInAudioProcessorEditor() {}
403
+
404
+ void paint (juce::Graphics&) override;
405
+ void resized() override;
406
+
407
+ private:
408
+
409
+ // This reference is provided as a quick way for your editor to
410
+ // access the processor object that created it.
411
+ FaustPlugInAudioProcessor& processor;
412
+
413
+ JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (FaustPlugInAudioProcessorEditor)
414
+ #ifndef PLUGIN_MAGIC
415
+ JuceGUI fJuceGUI;
416
+ #endif
417
+ };
418
+
419
+ #ifndef PLUGIN_MAGIC
420
+ FaustPlugInAudioProcessor::FaustPlugInAudioProcessor()
421
+ : juce::AudioProcessor (getBusesProperties()), fParameterUI(this)
422
+ #else
423
+ FaustPlugInAudioProcessor::FaustPlugInAudioProcessor()
424
+ : foleys::MagicProcessor (getBusesProperties()), fParameterUI(this)
425
+ #endif
426
+ {
427
+ bool midi_sync = false;
428
+ int nvoices = 0;
429
+
430
+ mydsp* tmp_dsp = new mydsp();
431
+ MidiMeta::analyse(tmp_dsp, midi_sync, nvoices);
432
+ delete tmp_dsp;
433
+
434
+ #ifdef PLUGIN_MAGIC
435
+ #ifdef MAGIC_LOAD_BINARY
436
+ // change magic_xml and magic_xmlSize to match the name of your included
437
+ // XML file from Plugin GUI Magic
438
+ magicState.setGuiValueTree(BinaryData::magic_xml, BinaryData::magic_xmlSize);
439
+ #endif
440
+ // put other GUI Magic sources here, similar to expression below.
441
+ #ifdef MAGIC_LEVEL_SOURCE
442
+ fOutputMeter = magicState.createAndAddObject<foleys::MagicLevelSource>("output");
443
+ #endif
444
+ #endif
445
+
446
+ #ifdef JUCE_POLY
447
+ assert(nvoices > 0);
448
+ fSynth = std::make_unique<FaustSynthesiser>();
449
+ for (int i = 0; i < nvoices; i++) {
450
+ fSynth->addVoice(new FaustVoice(new mydsp()));
451
+ }
452
+ fSynth->init();
453
+ fSynth->addSound(new FaustSound());
454
+ #else
455
+
456
+ bool group = true;
457
+
458
+ #ifdef POLY2
459
+ assert(nvoices > 0);
460
+ std::cout << "Started with " << nvoices << " voices\n";
461
+ dsp* dsp = new mydsp_poly(new mydsp(), nvoices, true, group);
462
+
463
+ #if MIDICTRL
464
+ if (midi_sync) {
465
+ fDSP = std::make_unique<timed_dsp>(new dsp_sequencer(dsp, new effect()));
466
+ } else {
467
+ fDSP = std::make_unique<dsp_sequencer>(dsp, new effect());
468
+ }
469
+ #else
470
+ fDSP = std::make_unique<dsp_sequencer>(dsp, new effects());
471
+ #endif
472
+
473
+ #else
474
+ if (nvoices > 0) {
475
+ std::cout << "Started with " << nvoices << " voices\n";
476
+ dsp* dsp = new mydsp_poly(new mydsp(), nvoices, true, group);
477
+
478
+ #if MIDICTRL
479
+ if (midi_sync) {
480
+ fDSP = std::make_unique<timed_dsp>(dsp);
481
+ } else {
482
+ fDSP = std::make_unique<decorator_dsp>(dsp);
483
+ }
484
+ #else
485
+ fDSP = std::make_unique<decorator_dsp>(dsp);
486
+ #endif
487
+ } else {
488
+ #if MIDICTRL
489
+ if (midi_sync) {
490
+ fDSP = std::make_unique<timed_dsp>(new mydsp());
491
+ } else {
492
+ fDSP = std::make_unique<mydsp>();
493
+ }
494
+ #else
495
+ fDSP = std::make_unique<mydsp>();
496
+ #endif
497
+ }
498
+
499
+ #endif
500
+
501
+ #if defined(MIDICTRL)
502
+ fMIDIHandler = std::make_unique<juce_midi_handler>();
503
+ fMIDIUI = std::make_unique<MidiUI>(fMIDIHandler.get());
504
+ fDSP->buildUserInterface(fMIDIUI.get());
505
+ if (!fMIDIUI->run()) {
506
+ std::cerr << "JUCE MIDI handler cannot be started..." << std::endl;
507
+ }
508
+ #endif
509
+
510
+ #endif
511
+
512
+ #if defined(OSCCTRL)
513
+ fOSCUI = std::make_unique<JuceOSCUI>("127.0.0.1", 5510, 5511);
514
+ #ifdef JUCE_POLY
515
+ fSynth->buildUserInterface(fOSCUI.get());
516
+ #else
517
+ fDSP->buildUserInterface(fOSCUI.get());
518
+ #endif
519
+ if (!fOSCUI->run()) {
520
+ std::cerr << "JUCE OSC handler cannot be started..." << std::endl;
521
+ }
522
+ #endif
523
+
524
+ #if defined(SOUNDFILE)
525
+ // Use bundle path
526
+ auto file = juce::File::getSpecialLocation(juce::File::currentExecutableFile)
527
+ .getParentDirectory().getParentDirectory().getChildFile("Resources");
528
+ fSoundUI = std::make_unique<SoundUI>(file.getFullPathName().toStdString());
529
+ fDSP->buildUserInterface(fSoundUI.get());
530
+ #endif
531
+
532
+ #ifdef JUCE_POLY
533
+ fSynth->buildUserInterface(&fStateUI);
534
+ fSynth->buildUserInterface(&fParameterUI);
535
+ // When no previous state was restored, init DSP controllers with their default values
536
+ if (!fStateUI.fRestored) {
537
+ fSynth->instanceResetUserInterface();
538
+ }
539
+ #else
540
+ fDSP->buildUserInterface(&fStateUI);
541
+ fDSP->buildUserInterface(&fParameterUI);
542
+ // When no previous state was restored, init DSP controllers with their default values
543
+ if (!fStateUI.fRestored) {
544
+ fDSP->instanceResetUserInterface();
545
+ }
546
+ #endif
547
+
548
+ startTimerHz(25);
549
+ }
550
+
551
+ juce::AudioProcessor::BusesProperties FaustPlugInAudioProcessor::getBusesProperties()
552
+ {
553
+ if (juce::PluginHostType::getPluginLoadedAs() == wrapperType_Standalone) {
554
+ if (FAUST_INPUTS == 0) {
555
+ return BusesProperties().withOutput("Output", juce::AudioChannelSet::discreteChannels(std::min<int>(2, FAUST_OUTPUTS)), true);
556
+ } else {
557
+ return BusesProperties()
558
+ .withInput("Input", juce::AudioChannelSet::discreteChannels(std::min<int>(2, FAUST_INPUTS)), true)
559
+ .withOutput("Output", juce::AudioChannelSet::discreteChannels(std::min<int>(2, FAUST_OUTPUTS)), true);
560
+ }
561
+ } else {
562
+ if (FAUST_INPUTS == 0) {
563
+ return BusesProperties().withOutput("Output", juce::AudioChannelSet::discreteChannels(FAUST_OUTPUTS), true);
564
+ } else {
565
+ return BusesProperties()
566
+ .withInput("Input", juce::AudioChannelSet::discreteChannels(FAUST_INPUTS), true)
567
+ .withOutput("Output", juce::AudioChannelSet::discreteChannels(FAUST_OUTPUTS), true);
568
+ }
569
+ }
570
+ }
571
+
572
+ void FaustPlugInAudioProcessor::timerCallback()
573
+ {
574
+ GUI::updateAllGuis();
575
+ }
576
+
577
+ //==============================================================================
578
+ const juce::String FaustPlugInAudioProcessor::getName() const
579
+ {
580
+ return JucePlugin_Name;
581
+ }
582
+
583
+ bool FaustPlugInAudioProcessor::acceptsMidi() const
584
+ {
585
+ #if JucePlugin_WantsMidiInput
586
+ return true;
587
+ #else
588
+ return false;
589
+ #endif
590
+ }
591
+
592
+ bool FaustPlugInAudioProcessor::producesMidi() const
593
+ {
594
+ #if JucePlugin_ProducesMidiOutput
595
+ return true;
596
+ #else
597
+ return false;
598
+ #endif
599
+ }
600
+
601
+ double FaustPlugInAudioProcessor::getTailLengthSeconds() const
602
+ {
603
+ return 0.0;
604
+ }
605
+
606
+ int FaustPlugInAudioProcessor::getNumPrograms()
607
+ {
608
+ return 1; // NB: some hosts don't cope very well if you tell them there are 0 programs,
609
+ // so this should be at least 1, even if you're not really implementing programs.
610
+ }
611
+
612
+ int FaustPlugInAudioProcessor::getCurrentProgram()
613
+ {
614
+ return 0;
615
+ }
616
+
617
+ void FaustPlugInAudioProcessor::setCurrentProgram (int index)
618
+ {}
619
+
620
+ const juce::String FaustPlugInAudioProcessor::getProgramName (int index)
621
+ {
622
+ return juce::String();
623
+ }
624
+
625
+ void FaustPlugInAudioProcessor::changeProgramName (int index, const juce::String& newName)
626
+ {}
627
+
628
+ bool FaustPlugInAudioProcessor::supportsDoublePrecisionProcessing() const
629
+ {
630
+ return sizeof(FAUSTFLOAT) == 8;
631
+ }
632
+
633
+ //==============================================================================
634
+ void FaustPlugInAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
635
+ {
636
+ // Reset DSP adaptation
637
+ fFirstCall = true;
638
+
639
+ #ifdef JUCE_POLY
640
+ fSynth->setCurrentPlaybackSampleRate (sampleRate);
641
+ #else
642
+
643
+ // Setting the DSP control values has already been done
644
+ // by 'buildUserInterface(&fStateUI)', using the saved values or the default ones.
645
+ // What has to be done to finish the DSP initialization is done now.
646
+ mydsp::classInit(int(sampleRate));
647
+ fDSP->instanceConstants(int(sampleRate));
648
+ fDSP->instanceClear();
649
+
650
+ // Get latency metadata
651
+ struct LatencyMeta : public Meta {
652
+
653
+ float fLatencyFrames = -1.f;
654
+ float fLatencySec = -1.f;
655
+
656
+ void declare(const char* key, const char* value)
657
+ {
658
+ if (std::string(key) == "latency_frames" || std::string(key) == "latency_samples") {
659
+ fLatencyFrames = std::atof(value);
660
+ } else if (std::string(key) == "latency_sec") {
661
+ fLatencySec = std::atof(value);
662
+ }
663
+ }
664
+ };
665
+
666
+ LatencyMeta meta;
667
+ fDSP->metadata(&meta);
668
+ if (meta.fLatencyFrames > 0) {
669
+ setLatencySamples(meta.fLatencyFrames);
670
+ } else if (meta.fLatencySec > 0) {
671
+ setLatencySamples(meta.fLatencySec * sampleRate);
672
+ }
673
+
674
+ #endif
675
+ #ifdef MAGIC_LEVEL_SOURCE
676
+ magicState.prepareToPlay(sampleRate, samplesPerBlock);
677
+ fOutputMeter->setupSource(getMainBusNumOutputChannels(), sampleRate, 500, 200);
678
+ #endif
679
+ }
680
+
681
+ bool FaustPlugInAudioProcessor::isBusesLayoutSupported (const BusesLayout& layouts) const
682
+ {
683
+ // Always return true and have the DSP adapts its buffer layout with a dsp_adapter (see 'prepareToPlay' and 'process')
684
+ return true;
685
+ }
686
+
687
+ template <typename FloatType>
688
+ void FaustPlugInAudioProcessor::process (juce::AudioBuffer<FloatType>& buffer, juce::MidiBuffer& midiMessages)
689
+ {
690
+ juce::ScopedNoDenormals noDenormals;
691
+
692
+ /*
693
+ prepareToPlay is possibly called several times with different values for sampleRate
694
+ and isUsingDoublePrecision() state (this has been seen in particular with VTS3),
695
+ making proper sample format (float/double) and the inputs/outputs layout adaptation
696
+ more complex at this stage.
697
+
698
+ So adapting the sample format (float/double) and the inputs/outputs layout is done
699
+ once at first process call even if this possibly allocates memory, which is not RT safe.
700
+ */
701
+ if (fFirstCall) {
702
+ fFirstCall = false;
703
+
704
+ // Possible sample size adaptation
705
+ if (supportsDoublePrecisionProcessing()) {
706
+ if (isUsingDoublePrecision()) {
707
+ // Nothing to do
708
+ } else {
709
+ fDSP = std::make_unique<dsp_sample_adapter<double, float>>(fDSP.release());
710
+ }
711
+ } else {
712
+ if (isUsingDoublePrecision()) {
713
+ fDSP = std::make_unique<dsp_sample_adapter<float, double>>(fDSP.release());
714
+ } else {
715
+ // Nothing to do
716
+ }
717
+ }
718
+
719
+ // Possibly adapt DSP inputs/outputs number
720
+ if (fDSP->getNumInputs() > getTotalNumInputChannels() || fDSP->getNumOutputs() > getTotalNumOutputChannels()) {
721
+ fDSP = std::make_unique<dsp_adapter>(fDSP.release(), getTotalNumInputChannels(), getTotalNumOutputChannels(), 4096);
722
+ }
723
+ }
724
+
725
+ #ifdef JUCE_POLY
726
+ fSynth->renderNextBlock(buffer, midiMessages, 0, buffer.getNumSamples());
727
+ #else
728
+ #if defined(MIDICTRL)
729
+ // Read MIDI input events from midiMessages
730
+ fMIDIHandler->decodeBuffer(midiMessages);
731
+ // Then write MIDI output events to midiMessages
732
+ fMIDIHandler->encodeBuffer(midiMessages);
733
+ #endif
734
+ // MIDI timestamp is expressed in frames
735
+ fDSP->compute(-1, buffer.getNumSamples(),
736
+ (FAUSTFLOAT**)buffer.getArrayOfReadPointers(),
737
+ (FAUSTFLOAT**)buffer.getArrayOfWritePointers());
738
+ #endif
739
+ }
740
+
741
+ //==============================================================================
742
+ #ifndef PLUGIN_MAGIC
743
+ bool FaustPlugInAudioProcessor::hasEditor() const
744
+ {
745
+ return true;
746
+ }
747
+
748
+ juce::AudioProcessorEditor* FaustPlugInAudioProcessor::createEditor()
749
+ {
750
+ return new FaustPlugInAudioProcessorEditor (*this);
751
+ }
752
+
753
+ //==============================================================================
754
+ void FaustPlugInAudioProcessor::getStateInformation (juce::MemoryBlock& destData)
755
+ {
756
+ // You should use this method to store your parameters in the memory block.
757
+ // You could do that either as raw data, or use the XML or ValueTree classes
758
+ // as intermediaries to make it easy to save and load complex data.
759
+
760
+ fStateUI.getStateInformation(destData);
761
+ }
762
+
763
+ void FaustPlugInAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
764
+ {
765
+ // You should use this method to restore your parameters from this memory block,
766
+ // whose contents will have been created by the getStateInformation() call.
767
+
768
+ fStateUI.setStateInformation(data, sizeInBytes);
769
+ }
770
+ #endif
771
+ //==============================================================================
772
+ // This creates new instances of the plugin..
773
+ juce::AudioProcessor* JUCE_CALLTYPE createPluginFilter()
774
+ {
775
+ return new FaustPlugInAudioProcessor();
776
+ }
777
+
778
+ //==============================================================================
779
+ #ifndef PLUGIN_MAGIC
780
+ FaustPlugInAudioProcessorEditor::FaustPlugInAudioProcessorEditor (FaustPlugInAudioProcessor& p)
781
+ : juce::AudioProcessorEditor (&p), processor (p)
782
+ {
783
+ #ifdef JUCE_POLY
784
+ p.fSynth->buildUserInterface(&fJuceGUI);
785
+ #else
786
+ p.fDSP->buildUserInterface(&fJuceGUI);
787
+ #endif
788
+
789
+ addAndMakeVisible(fJuceGUI);
790
+
791
+ juce::Rectangle<int> recommendedSize = fJuceGUI.getSize();
792
+ setSize (recommendedSize.getWidth(), recommendedSize.getHeight());
793
+ }
794
+
795
+ //==============================================================================
796
+ void FaustPlugInAudioProcessorEditor::paint (juce::Graphics& g)
797
+ {
798
+ g.fillAll (juce::Colours::white);
799
+ }
800
+
801
+ void FaustPlugInAudioProcessorEditor::resized()
802
+ {
803
+ fJuceGUI.setBounds(getLocalBounds());
804
+ }
805
+
806
+ #endif
807
+ // Globals
808
+ std::list<GUI*> GUI::fGuiList;
809
+ ztimedmap GUI::gTimedZoneMap;