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
cyfaust/__main__.py ADDED
@@ -0,0 +1,819 @@
1
+ #!/usr/bin/env python3
2
+ """cyfaust command-line interface.
3
+
4
+ Usage:
5
+ cyfaust <command> [options]
6
+
7
+ Commands:
8
+ version Show cyfaust and libfaust version information
9
+ compile Compile Faust DSP to various backends (cpp, c, rust, codebox)
10
+ diagram Generate SVG block diagram from Faust DSP
11
+ expand Expand Faust DSP to self-contained code
12
+ info Show DSP information (metadata, inputs, outputs)
13
+ play Play a Faust DSP file with RtAudio
14
+ params List all DSP parameters (sliders, buttons, etc.)
15
+ validate Check a Faust DSP file for errors
16
+ bitcode Save/load DSP factory as bitcode
17
+ json Export DSP metadata as JSON
18
+
19
+ Examples:
20
+ cyfaust version
21
+ cyfaust compile examples/noise.dsp -o noise.cpp
22
+ cyfaust play examples/osc.dsp -d 5
23
+ cyfaust params examples/synth.dsp
24
+ cyfaust info examples/instrument.dsp
25
+ """
26
+
27
+ import argparse
28
+ import json as json_module
29
+ import signal
30
+ import sys
31
+ import os
32
+ import time
33
+ from pathlib import Path
34
+
35
+
36
+ def get_cyfaust_imports():
37
+ """Import cyfaust modules, handling both dynamic and static builds."""
38
+ try:
39
+ from cyfaust.interp import (
40
+ get_version,
41
+ create_dsp_factory_from_file,
42
+ create_dsp_factory_from_string,
43
+ expand_dsp_from_file,
44
+ generate_auxfiles_from_file,
45
+ RtAudioDriver,
46
+ read_dsp_factory_from_bitcode_file,
47
+ )
48
+ from cyfaust.box import (
49
+ create_source_from_boxes,
50
+ dsp_to_boxes,
51
+ create_lib_context,
52
+ destroy_lib_context,
53
+ )
54
+ return {
55
+ 'get_version': get_version,
56
+ 'create_dsp_factory_from_file': create_dsp_factory_from_file,
57
+ 'create_dsp_factory_from_string': create_dsp_factory_from_string,
58
+ 'expand_dsp_from_file': expand_dsp_from_file,
59
+ 'generate_auxfiles_from_file': generate_auxfiles_from_file,
60
+ 'create_source_from_boxes': create_source_from_boxes,
61
+ 'dsp_to_boxes': dsp_to_boxes,
62
+ 'create_lib_context': create_lib_context,
63
+ 'destroy_lib_context': destroy_lib_context,
64
+ 'RtAudioDriver': RtAudioDriver,
65
+ 'read_dsp_factory_from_bitcode_file': read_dsp_factory_from_bitcode_file,
66
+ }
67
+ except ImportError:
68
+ from cyfaust.cyfaust import (
69
+ get_version,
70
+ create_dsp_factory_from_file,
71
+ create_dsp_factory_from_string,
72
+ expand_dsp_from_file,
73
+ generate_auxfiles_from_file,
74
+ create_source_from_boxes,
75
+ dsp_to_boxes,
76
+ create_lib_context,
77
+ destroy_lib_context,
78
+ RtAudioDriver,
79
+ read_dsp_factory_from_bitcode_file,
80
+ )
81
+ return {
82
+ 'get_version': get_version,
83
+ 'create_dsp_factory_from_file': create_dsp_factory_from_file,
84
+ 'create_dsp_factory_from_string': create_dsp_factory_from_string,
85
+ 'expand_dsp_from_file': expand_dsp_from_file,
86
+ 'generate_auxfiles_from_file': generate_auxfiles_from_file,
87
+ 'create_source_from_boxes': create_source_from_boxes,
88
+ 'dsp_to_boxes': dsp_to_boxes,
89
+ 'create_lib_context': create_lib_context,
90
+ 'destroy_lib_context': destroy_lib_context,
91
+ 'RtAudioDriver': RtAudioDriver,
92
+ 'read_dsp_factory_from_bitcode_file': read_dsp_factory_from_bitcode_file,
93
+ }
94
+
95
+
96
+ def cmd_version(args):
97
+ """Show version information."""
98
+ imports = get_cyfaust_imports()
99
+ print(f"cyfaust CLI")
100
+ print(f"libfaust version: {imports['get_version']()}")
101
+ return 0
102
+
103
+
104
+ def cmd_compile(args):
105
+ """Compile Faust DSP to target backend."""
106
+ imports = get_cyfaust_imports()
107
+
108
+ if not os.path.exists(args.input):
109
+ print(f"Error: File not found: {args.input}", file=sys.stderr)
110
+ return 1
111
+
112
+ # Map backend names
113
+ backend_map = {
114
+ 'cpp': 'cpp',
115
+ 'c++': 'cpp',
116
+ 'c': 'c',
117
+ 'rust': 'rust',
118
+ 'codebox': 'codebox',
119
+ }
120
+
121
+ backend = backend_map.get(args.backend.lower())
122
+ if not backend:
123
+ print(f"Error: Unknown backend '{args.backend}'. "
124
+ f"Choose from: cpp, c, rust, codebox", file=sys.stderr)
125
+ return 1
126
+
127
+ # Read DSP file content
128
+ name = Path(args.input).stem
129
+ with open(args.input, 'r') as f:
130
+ dsp_content = f.read()
131
+
132
+ # Initialize library context for box operations
133
+ imports['create_lib_context']()
134
+ try:
135
+ # Create box from DSP content
136
+ box = imports['dsp_to_boxes'](name, dsp_content)
137
+ if box is None:
138
+ print(f"Error: Failed to parse DSP file: {args.input}", file=sys.stderr)
139
+ return 1
140
+
141
+ # Generate source code
142
+ source = imports['create_source_from_boxes'](name, box, backend)
143
+ if source is None:
144
+ print(f"Error: Failed to generate {backend} code", file=sys.stderr)
145
+ return 1
146
+
147
+ # Output
148
+ if args.output:
149
+ with open(args.output, 'w') as f:
150
+ f.write(source)
151
+ print(f"Generated {backend} code: {args.output}")
152
+ else:
153
+ print(source)
154
+
155
+ return 0
156
+ finally:
157
+ imports['destroy_lib_context']()
158
+
159
+
160
+ def cmd_diagram(args):
161
+ """Generate SVG block diagram."""
162
+ imports = get_cyfaust_imports()
163
+
164
+ if not os.path.exists(args.input):
165
+ print(f"Error: File not found: {args.input}", file=sys.stderr)
166
+ return 1
167
+
168
+ # Determine output directory
169
+ if args.output:
170
+ output_dir = str(Path(args.output).parent or '.')
171
+ svg_option = f"-svg"
172
+ output_option = f"-O"
173
+ output_path = output_dir
174
+ else:
175
+ output_dir = '.'
176
+ svg_option = "-svg"
177
+ output_option = "-O"
178
+ output_path = output_dir
179
+
180
+ # Generate SVG using auxfiles
181
+ result = imports['generate_auxfiles_from_file'](
182
+ args.input,
183
+ svg_option,
184
+ output_option, output_path
185
+ )
186
+
187
+ if result:
188
+ name = Path(args.input).stem
189
+ svg_dir = Path(output_path) / f"{name}-svg"
190
+ print(f"Generated SVG diagram in: {svg_dir}")
191
+ return 0
192
+ else:
193
+ print("Error: Failed to generate SVG diagram", file=sys.stderr)
194
+ return 1
195
+
196
+
197
+ def cmd_expand(args):
198
+ """Expand Faust DSP to self-contained code."""
199
+ imports = get_cyfaust_imports()
200
+
201
+ if not os.path.exists(args.input):
202
+ print(f"Error: File not found: {args.input}", file=sys.stderr)
203
+ return 1
204
+
205
+ result = imports['expand_dsp_from_file'](args.input)
206
+ if result is None:
207
+ print("Error: Failed to expand DSP", file=sys.stderr)
208
+ return 1
209
+
210
+ sha_key, expanded_code = result
211
+
212
+ if args.output:
213
+ with open(args.output, 'w') as f:
214
+ f.write(expanded_code)
215
+ print(f"Expanded DSP written to: {args.output}")
216
+ print(f"SHA1 key: {sha_key}")
217
+ else:
218
+ if args.sha_only:
219
+ print(sha_key)
220
+ else:
221
+ print(f"// SHA1: {sha_key}")
222
+ print(expanded_code)
223
+
224
+ return 0
225
+
226
+
227
+ def cmd_info(args):
228
+ """Show DSP information."""
229
+ imports = get_cyfaust_imports()
230
+
231
+ if not os.path.exists(args.input):
232
+ print(f"Error: File not found: {args.input}", file=sys.stderr)
233
+ return 1
234
+
235
+ factory = imports['create_dsp_factory_from_file'](args.input)
236
+ if factory is None:
237
+ print(f"Error: Failed to create DSP factory from: {args.input}", file=sys.stderr)
238
+ return 1
239
+
240
+ dsp = factory.create_dsp_instance()
241
+ if dsp is None:
242
+ print("Error: Failed to create DSP instance", file=sys.stderr)
243
+ return 1
244
+
245
+ # Initialize to get proper info
246
+ dsp.init(44100)
247
+
248
+ print(f"File: {args.input}")
249
+ print(f"Name: {factory.get_name()}")
250
+ print(f"SHA Key: {factory.get_sha_key()}")
251
+ print(f"Compile Options: {factory.get_compile_options()}")
252
+ print(f"Inputs: {dsp.get_numinputs()}")
253
+ print(f"Outputs: {dsp.get_numoutputs()}")
254
+
255
+ # Get metadata
256
+ try:
257
+ meta = dsp.metadata()
258
+ if meta:
259
+ print("\nMetadata:")
260
+ for key, value in sorted(meta.items()):
261
+ print(f" {key}: {value}")
262
+ except Exception:
263
+ pass # metadata() might not be available in older builds
264
+
265
+ # Library dependencies
266
+ libs = factory.get_library_list()
267
+ if libs:
268
+ print(f"\nLibraries ({len(libs)}):")
269
+ for lib in libs:
270
+ print(f" {lib}")
271
+
272
+ # Warnings
273
+ warnings = factory.get_warning_messages()
274
+ if warnings:
275
+ print(f"\nWarnings ({len(warnings)}):")
276
+ for warn in warnings:
277
+ print(f" {warn}")
278
+
279
+ return 0
280
+
281
+
282
+ def cmd_play(args):
283
+ """Play a Faust DSP file with RtAudio."""
284
+ imports = get_cyfaust_imports()
285
+
286
+ if not os.path.exists(args.input):
287
+ print(f"Error: File not found: {args.input}", file=sys.stderr)
288
+ return 1
289
+
290
+ factory = imports['create_dsp_factory_from_file'](args.input)
291
+ if factory is None:
292
+ print(f"Error: Failed to create DSP factory from: {args.input}", file=sys.stderr)
293
+ return 1
294
+
295
+ dsp = factory.create_dsp_instance()
296
+ if dsp is None:
297
+ print("Error: Failed to create DSP instance", file=sys.stderr)
298
+ return 1
299
+
300
+ sample_rate = args.samplerate
301
+ buffer_size = args.buffersize
302
+
303
+ # Initialize DSP
304
+ dsp.init(sample_rate)
305
+
306
+ # Build user interface to enable soundfile support
307
+ try:
308
+ dsp.build_user_interface()
309
+ except Exception:
310
+ pass # May not be needed for all DSPs
311
+
312
+ # Create and initialize audio driver
313
+ driver = imports['RtAudioDriver'](sample_rate, buffer_size)
314
+ if not driver.init(dsp):
315
+ print("Error: Failed to initialize audio driver", file=sys.stderr)
316
+ return 1
317
+
318
+ # Setup signal handler for clean exit
319
+ running = [True]
320
+
321
+ def signal_handler(signum, frame):
322
+ running[0] = False
323
+ print("\nStopping...")
324
+
325
+ signal.signal(signal.SIGINT, signal_handler)
326
+ signal.signal(signal.SIGTERM, signal_handler)
327
+
328
+ # Start playback
329
+ name = factory.get_name()
330
+ print(f"Playing: {name}")
331
+ print(f" Sample rate: {sample_rate} Hz")
332
+ print(f" Buffer size: {buffer_size}")
333
+ print(f" Inputs: {dsp.get_numinputs()}, Outputs: {dsp.get_numoutputs()}")
334
+ if args.duration:
335
+ print(f" Duration: {args.duration} seconds")
336
+ print("Press Ctrl+C to stop...")
337
+
338
+ driver.start()
339
+
340
+ try:
341
+ if args.duration:
342
+ # Play for specified duration
343
+ end_time = time.time() + args.duration
344
+ while running[0] and time.time() < end_time:
345
+ time.sleep(0.1)
346
+ else:
347
+ # Play indefinitely until interrupted
348
+ while running[0]:
349
+ time.sleep(0.1)
350
+ finally:
351
+ driver.stop()
352
+ print("Stopped.")
353
+
354
+ return 0
355
+
356
+
357
+ def cmd_params(args):
358
+ """List all DSP parameters by parsing the expanded code."""
359
+ imports = get_cyfaust_imports()
360
+
361
+ if not os.path.exists(args.input):
362
+ print(f"Error: File not found: {args.input}", file=sys.stderr)
363
+ return 1
364
+
365
+ # Expand DSP to get all UI elements
366
+ result = imports['expand_dsp_from_file'](args.input)
367
+ if result is None:
368
+ print("Error: Failed to expand DSP", file=sys.stderr)
369
+ return 1
370
+
371
+ sha_key, expanded_code = result
372
+
373
+ # Parse the expanded code to find UI elements
374
+ import re
375
+
376
+ # Find sliders, buttons, etc.
377
+ ui_patterns = [
378
+ (r'vslider\s*\(\s*"([^"]+)"\s*,\s*([^,]+)\s*,\s*([^,]+)\s*,\s*([^,]+)\s*,\s*([^)]+)\)', 'vslider'),
379
+ (r'hslider\s*\(\s*"([^"]+)"\s*,\s*([^,]+)\s*,\s*([^,]+)\s*,\s*([^,]+)\s*,\s*([^)]+)\)', 'hslider'),
380
+ (r'nentry\s*\(\s*"([^"]+)"\s*,\s*([^,]+)\s*,\s*([^,]+)\s*,\s*([^,]+)\s*,\s*([^)]+)\)', 'nentry'),
381
+ (r'button\s*\(\s*"([^"]+)"\s*\)', 'button'),
382
+ (r'checkbox\s*\(\s*"([^"]+)"\s*\)', 'checkbox'),
383
+ (r'vbargraph\s*\(\s*"([^"]+)"\s*,\s*([^,]+)\s*,\s*([^)]+)\)', 'vbargraph'),
384
+ (r'hbargraph\s*\(\s*"([^"]+)"\s*,\s*([^,]+)\s*,\s*([^)]+)\)', 'hbargraph'),
385
+ ]
386
+
387
+ params = []
388
+ for pattern, ui_type in ui_patterns:
389
+ for match in re.finditer(pattern, expanded_code):
390
+ if ui_type in ['vslider', 'hslider', 'nentry']:
391
+ params.append({
392
+ 'type': ui_type,
393
+ 'label': match.group(1),
394
+ 'init': match.group(2).strip(),
395
+ 'min': match.group(3).strip(),
396
+ 'max': match.group(4).strip(),
397
+ 'step': match.group(5).strip(),
398
+ })
399
+ elif ui_type in ['button', 'checkbox']:
400
+ params.append({
401
+ 'type': ui_type,
402
+ 'label': match.group(1),
403
+ })
404
+ elif ui_type in ['vbargraph', 'hbargraph']:
405
+ params.append({
406
+ 'type': ui_type,
407
+ 'label': match.group(1),
408
+ 'min': match.group(2).strip(),
409
+ 'max': match.group(3).strip(),
410
+ })
411
+
412
+ if not params:
413
+ print(f"No parameters found in: {args.input}")
414
+ return 0
415
+
416
+ print(f"Parameters ({len(params)}):")
417
+ print("-" * 60)
418
+
419
+ for i, p in enumerate(params):
420
+ print(f" [{i}] {p['label']} ({p['type']})")
421
+ if 'init' in p:
422
+ print(f" Init: {p['init']}, Range: [{p['min']}, {p['max']}], Step: {p['step']}")
423
+ elif 'min' in p:
424
+ print(f" Range: [{p['min']}, {p['max']}]")
425
+
426
+ return 0
427
+
428
+
429
+ def cmd_validate(args):
430
+ """Validate a Faust DSP file for errors."""
431
+ imports = get_cyfaust_imports()
432
+
433
+ if not os.path.exists(args.input):
434
+ print(f"Error: File not found: {args.input}", file=sys.stderr)
435
+ return 1
436
+
437
+ # Try to create factory - this will catch compile errors
438
+ factory = imports['create_dsp_factory_from_file'](args.input)
439
+
440
+ if factory is None:
441
+ print(f"INVALID: {args.input}")
442
+ print(" Failed to compile DSP")
443
+ return 1
444
+
445
+ # Check for warnings
446
+ warnings = factory.get_warning_messages()
447
+
448
+ # Try to create DSP instance
449
+ dsp = factory.create_dsp_instance()
450
+ if dsp is None:
451
+ print(f"INVALID: {args.input}")
452
+ print(" Failed to create DSP instance")
453
+ return 1
454
+
455
+ # Initialize and check basic properties
456
+ dsp.init(44100)
457
+ num_inputs = dsp.get_numinputs()
458
+ num_outputs = dsp.get_numoutputs()
459
+
460
+ if num_outputs == 0 and num_inputs == 0:
461
+ print(f"WARNING: {args.input}")
462
+ print(" DSP has no inputs or outputs")
463
+ if warnings:
464
+ for w in warnings:
465
+ print(f" Warning: {w}")
466
+ return 0 if not args.strict else 1
467
+
468
+ print(f"VALID: {args.input}")
469
+ print(f" Name: {factory.get_name()}")
470
+ print(f" Inputs: {num_inputs}, Outputs: {num_outputs}")
471
+
472
+ if warnings:
473
+ print(f" Warnings ({len(warnings)}):")
474
+ for w in warnings:
475
+ print(f" - {w}")
476
+ if args.strict:
477
+ return 1
478
+
479
+ return 0
480
+
481
+
482
+ def cmd_bitcode(args):
483
+ """Save or load DSP factory as bitcode."""
484
+ imports = get_cyfaust_imports()
485
+
486
+ if args.mode == 'save':
487
+ # Save DSP to bitcode
488
+ if not os.path.exists(args.input):
489
+ print(f"Error: File not found: {args.input}", file=sys.stderr)
490
+ return 1
491
+
492
+ factory = imports['create_dsp_factory_from_file'](args.input)
493
+ if factory is None:
494
+ print(f"Error: Failed to create DSP factory from: {args.input}", file=sys.stderr)
495
+ return 1
496
+
497
+ output_path = args.output or (Path(args.input).stem + ".fbc")
498
+ # Use factory method to write bitcode
499
+ result = factory.write_to_bitcode_file(output_path)
500
+
501
+ if result:
502
+ print(f"Saved bitcode to: {output_path}")
503
+ return 0
504
+ else:
505
+ print("Error: Failed to write bitcode file", file=sys.stderr)
506
+ return 1
507
+
508
+ elif args.mode == 'load':
509
+ # Load bitcode and show info
510
+ if not os.path.exists(args.input):
511
+ print(f"Error: File not found: {args.input}", file=sys.stderr)
512
+ return 1
513
+
514
+ factory = imports['read_dsp_factory_from_bitcode_file'](args.input)
515
+ if factory is None:
516
+ print(f"Error: Failed to load bitcode from: {args.input}", file=sys.stderr)
517
+ return 1
518
+
519
+ dsp = factory.create_dsp_instance()
520
+ if dsp is None:
521
+ print("Error: Failed to create DSP instance from bitcode", file=sys.stderr)
522
+ return 1
523
+
524
+ dsp.init(44100)
525
+
526
+ print(f"Loaded bitcode: {args.input}")
527
+ print(f" Name: {factory.get_name()}")
528
+ print(f" SHA Key: {factory.get_sha_key()}")
529
+ print(f" Inputs: {dsp.get_numinputs()}, Outputs: {dsp.get_numoutputs()}")
530
+ return 0
531
+
532
+ else:
533
+ print(f"Error: Unknown mode '{args.mode}'. Use 'save' or 'load'.", file=sys.stderr)
534
+ return 1
535
+
536
+
537
+ def cmd_json(args):
538
+ """Export DSP metadata as JSON."""
539
+ imports = get_cyfaust_imports()
540
+ import re
541
+
542
+ if not os.path.exists(args.input):
543
+ print(f"Error: File not found: {args.input}", file=sys.stderr)
544
+ return 1
545
+
546
+ factory = imports['create_dsp_factory_from_file'](args.input)
547
+ if factory is None:
548
+ print(f"Error: Failed to create DSP factory from: {args.input}", file=sys.stderr)
549
+ return 1
550
+
551
+ dsp = factory.create_dsp_instance()
552
+ if dsp is None:
553
+ print("Error: Failed to create DSP instance", file=sys.stderr)
554
+ return 1
555
+
556
+ dsp.init(44100)
557
+
558
+ # Build JSON structure
559
+ data = {
560
+ "file": args.input,
561
+ "name": factory.get_name(),
562
+ "sha_key": factory.get_sha_key(),
563
+ "compile_options": factory.get_compile_options(),
564
+ "inputs": dsp.get_numinputs(),
565
+ "outputs": dsp.get_numoutputs(),
566
+ "sample_rate": dsp.get_samplerate(),
567
+ }
568
+
569
+ # Add metadata
570
+ try:
571
+ meta = dsp.metadata()
572
+ if meta:
573
+ data["metadata"] = meta
574
+ except Exception:
575
+ data["metadata"] = {}
576
+
577
+ # Parse parameters from expanded code
578
+ result = imports['expand_dsp_from_file'](args.input)
579
+ if result:
580
+ sha_key, expanded_code = result
581
+
582
+ ui_patterns = [
583
+ (r'vslider\s*\(\s*"([^"]+)"\s*,\s*([^,]+)\s*,\s*([^,]+)\s*,\s*([^,]+)\s*,\s*([^)]+)\)', 'vslider'),
584
+ (r'hslider\s*\(\s*"([^"]+)"\s*,\s*([^,]+)\s*,\s*([^,]+)\s*,\s*([^,]+)\s*,\s*([^)]+)\)', 'hslider'),
585
+ (r'nentry\s*\(\s*"([^"]+)"\s*,\s*([^,]+)\s*,\s*([^,]+)\s*,\s*([^,]+)\s*,\s*([^)]+)\)', 'nentry'),
586
+ (r'button\s*\(\s*"([^"]+)"\s*\)', 'button'),
587
+ (r'checkbox\s*\(\s*"([^"]+)"\s*\)', 'checkbox'),
588
+ (r'vbargraph\s*\(\s*"([^"]+)"\s*,\s*([^,]+)\s*,\s*([^)]+)\)', 'vbargraph'),
589
+ (r'hbargraph\s*\(\s*"([^"]+)"\s*,\s*([^,]+)\s*,\s*([^)]+)\)', 'hbargraph'),
590
+ ]
591
+
592
+ params = []
593
+ for pattern, ui_type in ui_patterns:
594
+ for match in re.finditer(pattern, expanded_code):
595
+ if ui_type in ['vslider', 'hslider', 'nentry']:
596
+ params.append({
597
+ 'type': ui_type,
598
+ 'label': match.group(1),
599
+ 'init': match.group(2).strip(),
600
+ 'min': match.group(3).strip(),
601
+ 'max': match.group(4).strip(),
602
+ 'step': match.group(5).strip(),
603
+ })
604
+ elif ui_type in ['button', 'checkbox']:
605
+ params.append({
606
+ 'type': ui_type,
607
+ 'label': match.group(1),
608
+ })
609
+ elif ui_type in ['vbargraph', 'hbargraph']:
610
+ params.append({
611
+ 'type': ui_type,
612
+ 'label': match.group(1),
613
+ 'min': match.group(2).strip(),
614
+ 'max': match.group(3).strip(),
615
+ })
616
+
617
+ if params:
618
+ data["parameters"] = params
619
+
620
+ # Add libraries
621
+ libs = factory.get_library_list()
622
+ if libs:
623
+ data["libraries"] = list(libs)
624
+
625
+ # Add warnings
626
+ warnings = factory.get_warning_messages()
627
+ if warnings:
628
+ data["warnings"] = list(warnings)
629
+
630
+ # Output
631
+ indent = 2 if args.pretty else None
632
+ json_str = json_module.dumps(data, indent=indent)
633
+
634
+ if args.output:
635
+ with open(args.output, 'w') as f:
636
+ f.write(json_str)
637
+ print(f"JSON written to: {args.output}")
638
+ else:
639
+ print(json_str)
640
+
641
+ return 0
642
+
643
+
644
+ def main():
645
+ """Main entry point."""
646
+ parser = argparse.ArgumentParser(
647
+ prog='cyfaust',
648
+ description='cyfaust command-line interface for Faust DSP processing',
649
+ formatter_class=argparse.RawDescriptionHelpFormatter,
650
+ epilog='''
651
+ Examples:
652
+ cyfaust version
653
+ cyfaust compile noise.dsp -b cpp -o noise.cpp
654
+ cyfaust play osc.dsp -d 5
655
+ cyfaust params synth.dsp
656
+ cyfaust validate filter.dsp
657
+ cyfaust bitcode save synth.dsp -o synth.fbc
658
+ cyfaust json instrument.dsp --pretty
659
+ '''
660
+ )
661
+
662
+ subparsers = parser.add_subparsers(dest='command', help='Available commands')
663
+
664
+ # version command
665
+ version_parser = subparsers.add_parser('version', help='Show version information')
666
+ version_parser.set_defaults(func=cmd_version)
667
+
668
+ # compile command
669
+ compile_parser = subparsers.add_parser(
670
+ 'compile',
671
+ help='Compile Faust DSP to target backend'
672
+ )
673
+ compile_parser.add_argument('input', help='Input Faust DSP file')
674
+ compile_parser.add_argument(
675
+ '-b', '--backend',
676
+ default='cpp',
677
+ choices=['cpp', 'c++', 'c', 'rust', 'codebox'],
678
+ help='Target backend (default: cpp)'
679
+ )
680
+ compile_parser.add_argument(
681
+ '-o', '--output',
682
+ help='Output file (default: stdout)'
683
+ )
684
+ compile_parser.set_defaults(func=cmd_compile)
685
+
686
+ # diagram command
687
+ diagram_parser = subparsers.add_parser(
688
+ 'diagram',
689
+ help='Generate SVG block diagram'
690
+ )
691
+ diagram_parser.add_argument('input', help='Input Faust DSP file')
692
+ diagram_parser.add_argument(
693
+ '-o', '--output',
694
+ help='Output directory for SVG files'
695
+ )
696
+ diagram_parser.set_defaults(func=cmd_diagram)
697
+
698
+ # expand command
699
+ expand_parser = subparsers.add_parser(
700
+ 'expand',
701
+ help='Expand Faust DSP to self-contained code'
702
+ )
703
+ expand_parser.add_argument('input', help='Input Faust DSP file')
704
+ expand_parser.add_argument(
705
+ '-o', '--output',
706
+ help='Output file (default: stdout)'
707
+ )
708
+ expand_parser.add_argument(
709
+ '--sha-only',
710
+ action='store_true',
711
+ help='Only output the SHA1 key'
712
+ )
713
+ expand_parser.set_defaults(func=cmd_expand)
714
+
715
+ # info command
716
+ info_parser = subparsers.add_parser(
717
+ 'info',
718
+ help='Show DSP information'
719
+ )
720
+ info_parser.add_argument('input', help='Input Faust DSP file')
721
+ info_parser.set_defaults(func=cmd_info)
722
+
723
+ # play command
724
+ play_parser = subparsers.add_parser(
725
+ 'play',
726
+ help='Play a Faust DSP file with RtAudio'
727
+ )
728
+ play_parser.add_argument('input', help='Input Faust DSP file')
729
+ play_parser.add_argument(
730
+ '-d', '--duration',
731
+ type=float,
732
+ help='Duration in seconds (default: play until Ctrl+C)'
733
+ )
734
+ play_parser.add_argument(
735
+ '-r', '--samplerate',
736
+ type=int,
737
+ default=44100,
738
+ help='Sample rate in Hz (default: 44100)'
739
+ )
740
+ play_parser.add_argument(
741
+ '-b', '--buffersize',
742
+ type=int,
743
+ default=512,
744
+ help='Buffer size in samples (default: 512)'
745
+ )
746
+ play_parser.set_defaults(func=cmd_play)
747
+
748
+ # params command
749
+ params_parser = subparsers.add_parser(
750
+ 'params',
751
+ help='List all DSP parameters'
752
+ )
753
+ params_parser.add_argument('input', help='Input Faust DSP file')
754
+ params_parser.add_argument(
755
+ '-v', '--verbose',
756
+ action='store_true',
757
+ help='Show additional parameter details'
758
+ )
759
+ params_parser.set_defaults(func=cmd_params)
760
+
761
+ # validate command
762
+ validate_parser = subparsers.add_parser(
763
+ 'validate',
764
+ help='Check a Faust DSP file for errors'
765
+ )
766
+ validate_parser.add_argument('input', help='Input Faust DSP file')
767
+ validate_parser.add_argument(
768
+ '--strict',
769
+ action='store_true',
770
+ help='Treat warnings as errors'
771
+ )
772
+ validate_parser.set_defaults(func=cmd_validate)
773
+
774
+ # bitcode command
775
+ bitcode_parser = subparsers.add_parser(
776
+ 'bitcode',
777
+ help='Save/load DSP factory as bitcode'
778
+ )
779
+ bitcode_parser.add_argument(
780
+ 'mode',
781
+ choices=['save', 'load'],
782
+ help='Operation mode: save DSP to bitcode, or load and display info'
783
+ )
784
+ bitcode_parser.add_argument('input', help='Input file (DSP for save, bitcode for load)')
785
+ bitcode_parser.add_argument(
786
+ '-o', '--output',
787
+ help='Output bitcode file (for save mode, default: <name>.fbc)'
788
+ )
789
+ bitcode_parser.set_defaults(func=cmd_bitcode)
790
+
791
+ # json command
792
+ json_parser = subparsers.add_parser(
793
+ 'json',
794
+ help='Export DSP metadata as JSON'
795
+ )
796
+ json_parser.add_argument('input', help='Input Faust DSP file')
797
+ json_parser.add_argument(
798
+ '-o', '--output',
799
+ help='Output JSON file (default: stdout)'
800
+ )
801
+ json_parser.add_argument(
802
+ '-p', '--pretty',
803
+ action='store_true',
804
+ help='Pretty-print JSON output'
805
+ )
806
+ json_parser.set_defaults(func=cmd_json)
807
+
808
+ # Parse arguments
809
+ args = parser.parse_args()
810
+
811
+ if args.command is None:
812
+ parser.print_help()
813
+ return 0
814
+
815
+ return args.func(args)
816
+
817
+
818
+ if __name__ == '__main__':
819
+ sys.exit(main())