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.
- cyfaust/CMakeLists.txt +93 -0
- cyfaust/__init__.py +0 -0
- cyfaust/__main__.py +819 -0
- cyfaust/box.pxd +46 -0
- cyfaust/box.pyx +2459 -0
- cyfaust/common.pxd +5 -0
- cyfaust/common.pyx +61 -0
- cyfaust/cyfaust.cpython-311-darwin.so +0 -0
- cyfaust/faust_box.pxd +298 -0
- cyfaust/faust_box_oo.pyx +66 -0
- cyfaust/faust_gui.pxd +261 -0
- cyfaust/faust_interp.pxd +160 -0
- cyfaust/faust_player.pxd +80 -0
- cyfaust/faust_signal.pxd +257 -0
- cyfaust/gui_statics.cpp +15 -0
- cyfaust/interp.pyx +673 -0
- cyfaust/player.cpp +32519 -0
- cyfaust/player.pyx +191 -0
- cyfaust/resources/architecture/AU/AUPublic/AUBase/AUBase.cpp +2327 -0
- cyfaust/resources/architecture/AU/AUPublic/AUBase/AUBase.h +1019 -0
- cyfaust/resources/architecture/AU/AUPublic/AUBase/AUDispatch.cpp +423 -0
- cyfaust/resources/architecture/AU/AUPublic/AUBase/AUDispatch.h +82 -0
- cyfaust/resources/architecture/AU/AUPublic/AUBase/AUInputElement.cpp +151 -0
- cyfaust/resources/architecture/AU/AUPublic/AUBase/AUInputElement.h +119 -0
- cyfaust/resources/architecture/AU/AUPublic/AUBase/AUOutputElement.cpp +62 -0
- cyfaust/resources/architecture/AU/AUPublic/AUBase/AUOutputElement.h +66 -0
- cyfaust/resources/architecture/AU/AUPublic/AUBase/AUPlugInDispatch.cpp +615 -0
- cyfaust/resources/architecture/AU/AUPublic/AUBase/AUPlugInDispatch.h +128 -0
- cyfaust/resources/architecture/AU/AUPublic/AUBase/AUScopeElement.cpp +512 -0
- cyfaust/resources/architecture/AU/AUPublic/AUBase/AUScopeElement.h +544 -0
- cyfaust/resources/architecture/AU/AUPublic/AUBase/ComponentBase.cpp +370 -0
- cyfaust/resources/architecture/AU/AUPublic/AUBase/ComponentBase.h +340 -0
- cyfaust/resources/architecture/AU/AUPublic/AUEffectBase/AUEffectBase.cpp +463 -0
- cyfaust/resources/architecture/AU/AUPublic/AUEffectBase/AUEffectBase.h +391 -0
- cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/AUInstrumentBase.cpp +837 -0
- cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/AUInstrumentBase.h +267 -0
- cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/AUMIDIBase.cpp +495 -0
- cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/AUMIDIBase.h +213 -0
- cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/LockFreeFIFO.h +168 -0
- cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/MIDIControlHandler.h +92 -0
- cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/MusicDeviceBase.cpp +354 -0
- cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/MusicDeviceBase.h +126 -0
- cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/SynthElement.cpp +419 -0
- cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/SynthElement.h +227 -0
- cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/SynthEvent.h +145 -0
- cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/SynthNote.cpp +138 -0
- cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/SynthNote.h +186 -0
- cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/SynthNoteList.cpp +93 -0
- cyfaust/resources/architecture/AU/AUPublic/AUInstrumentBase/SynthNoteList.h +232 -0
- cyfaust/resources/architecture/AU/AUPublic/Utility/AUBaseHelper.cpp +134 -0
- cyfaust/resources/architecture/AU/AUPublic/Utility/AUBaseHelper.h +80 -0
- cyfaust/resources/architecture/AU/AUPublic/Utility/AUBuffer.cpp +217 -0
- cyfaust/resources/architecture/AU/AUPublic/Utility/AUBuffer.h +267 -0
- cyfaust/resources/architecture/AU/AUPublic/Utility/AUMIDIDefs.h +136 -0
- cyfaust/resources/architecture/AU/AUPublic/Utility/AUSilentTimeout.h +93 -0
- cyfaust/resources/architecture/AU/English.lproj/InfoPlist.strings +0 -0
- cyfaust/resources/architecture/AU/FaustAU.exp +2 -0
- cyfaust/resources/architecture/AU/FaustAU.xcodeproj/project.pbxproj +968 -0
- cyfaust/resources/architecture/AU/FaustAU.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- cyfaust/resources/architecture/AU/FaustAUCustomView.plist +14 -0
- cyfaust/resources/architecture/AU/Info.plist +47 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAAtomic.h +305 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAAtomicStack.h +239 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAAudioChannelLayout.cpp +153 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAAudioChannelLayout.h +199 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAAutoDisposer.h +508 -0
- cyfaust/resources/architecture/AU/PublicUtility/CABufferList.cpp +264 -0
- cyfaust/resources/architecture/AU/PublicUtility/CABufferList.h +319 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAByteOrder.h +161 -0
- cyfaust/resources/architecture/AU/PublicUtility/CADebugMacros.cpp +88 -0
- cyfaust/resources/architecture/AU/PublicUtility/CADebugMacros.h +580 -0
- cyfaust/resources/architecture/AU/PublicUtility/CADebugPrintf.cpp +89 -0
- cyfaust/resources/architecture/AU/PublicUtility/CADebugPrintf.h +115 -0
- cyfaust/resources/architecture/AU/PublicUtility/CADebugger.cpp +77 -0
- cyfaust/resources/architecture/AU/PublicUtility/CADebugger.h +56 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAException.h +83 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAGuard.cpp +339 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAGuard.h +133 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAHostTimeBase.cpp +110 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAHostTimeBase.h +231 -0
- cyfaust/resources/architecture/AU/PublicUtility/CALogMacros.h +140 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAMath.h +68 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAMutex.cpp +345 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAMutex.h +163 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAReferenceCounted.h +87 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAStreamBasicDescription.cpp +795 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAStreamBasicDescription.h +409 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAThreadSafeList.h +255 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAVectorUnit.cpp +191 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAVectorUnit.h +100 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAVectorUnitTypes.h +59 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAXException.cpp +49 -0
- cyfaust/resources/architecture/AU/PublicUtility/CAXException.h +338 -0
- cyfaust/resources/architecture/AU/SectionPatternLight.tiff +0 -0
- cyfaust/resources/architecture/AU/Source/AUSource/FaustAU.h +38 -0
- cyfaust/resources/architecture/AU/Source/AUSource/FaustAU.r +153 -0
- cyfaust/resources/architecture/AU/Source/AUSource/FaustAUVersion.h +64 -0
- cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_Bargraph.h +18 -0
- cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_Bargraph.m +21 -0
- cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_Button.h +20 -0
- cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_Button.m +56 -0
- cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_CustomView.h +87 -0
- cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_CustomView.m +834 -0
- cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_CustomViewFactory.h +13 -0
- cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_CustomViewFactory.m +22 -0
- cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_Knob.h +81 -0
- cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_Knob.m +199 -0
- cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_Slider.h +18 -0
- cyfaust/resources/architecture/AU/Source/CocoaUI/FaustAU_Slider.m +21 -0
- cyfaust/resources/architecture/AU/version.plist +16 -0
- cyfaust/resources/architecture/VST/Info.plist +28 -0
- cyfaust/resources/architecture/VST/PkgInfo +1 -0
- cyfaust/resources/architecture/VST/README +11 -0
- cyfaust/resources/architecture/VST/VST.xcode/project.pbxproj +655 -0
- cyfaust/resources/architecture/alsa-console.cpp +246 -0
- cyfaust/resources/architecture/alsa-gtk.cpp +220 -0
- cyfaust/resources/architecture/alsa-qt.cpp +229 -0
- cyfaust/resources/architecture/api/DspFaust.cpp +612 -0
- cyfaust/resources/architecture/api/DspFaust.h +511 -0
- cyfaust/resources/architecture/api/README.md +237 -0
- cyfaust/resources/architecture/api/doc/Generic.md +38 -0
- cyfaust/resources/architecture/au-effect.cpp +487 -0
- cyfaust/resources/architecture/au-instrument.cpp +573 -0
- cyfaust/resources/architecture/bench.cpp +91 -0
- cyfaust/resources/architecture/c-jack-gtk.c +227 -0
- cyfaust/resources/architecture/ca-gtk.cpp +284 -0
- cyfaust/resources/architecture/ca-qt.cpp +424 -0
- cyfaust/resources/architecture/cpal.rs +195 -0
- cyfaust/resources/architecture/csound.cpp +245 -0
- cyfaust/resources/architecture/csvplot.cpp +227 -0
- cyfaust/resources/architecture/daisy/Makefile +14 -0
- cyfaust/resources/architecture/daisy/README.md +50 -0
- cyfaust/resources/architecture/daisy/ex_faust.cpp +173 -0
- cyfaust/resources/architecture/dssi.cpp +1262 -0
- cyfaust/resources/architecture/dummy-mem.cpp +186 -0
- cyfaust/resources/architecture/dummy.cpp +294 -0
- cyfaust/resources/architecture/faust/au/AUUI.h +404 -0
- cyfaust/resources/architecture/faust/audio/alsa-dsp.h +693 -0
- cyfaust/resources/architecture/faust/audio/android-dsp.h +583 -0
- cyfaust/resources/architecture/faust/audio/audio.h +115 -0
- cyfaust/resources/architecture/faust/audio/channels.h +122 -0
- cyfaust/resources/architecture/faust/audio/coreaudio-dsp.h +1543 -0
- cyfaust/resources/architecture/faust/audio/coreaudio-ios-dsp.h +743 -0
- cyfaust/resources/architecture/faust/audio/dummy-audio.h +255 -0
- cyfaust/resources/architecture/faust/audio/esp32-dsp.h +284 -0
- cyfaust/resources/architecture/faust/audio/fpe.h +164 -0
- cyfaust/resources/architecture/faust/audio/jack-dsp.h +534 -0
- cyfaust/resources/architecture/faust/audio/juce-dsp.h +119 -0
- cyfaust/resources/architecture/faust/audio/netjack-dsp.h +354 -0
- cyfaust/resources/architecture/faust/audio/oboe-dsp.h +308 -0
- cyfaust/resources/architecture/faust/audio/ofaudio-dsp.h +155 -0
- cyfaust/resources/architecture/faust/audio/opensles-android-dsp.h +631 -0
- cyfaust/resources/architecture/faust/audio/osc-dsp.h +120 -0
- cyfaust/resources/architecture/faust/audio/portaudio-dsp.h +236 -0
- cyfaust/resources/architecture/faust/audio/rtaudio-dsp.h +241 -0
- cyfaust/resources/architecture/faust/audio/samAudio.h +140 -0
- cyfaust/resources/architecture/faust/audio/teensy-dsp.h +171 -0
- cyfaust/resources/architecture/faust/dsp/cmajor-cpp-dsp.h +253 -0
- cyfaust/resources/architecture/faust/dsp/cmajorpatch-dsp.h +483 -0
- cyfaust/resources/architecture/faust/dsp/cpp-dsp-adapter.h +38 -0
- cyfaust/resources/architecture/faust/dsp/dsp-adapter.h +836 -0
- cyfaust/resources/architecture/faust/dsp/dsp-bench.h +611 -0
- cyfaust/resources/architecture/faust/dsp/dsp-checker.h +115 -0
- cyfaust/resources/architecture/faust/dsp/dsp-combiner.h +810 -0
- cyfaust/resources/architecture/faust/dsp/dsp-compute-adapter.h +159 -0
- cyfaust/resources/architecture/faust/dsp/dsp-multi.h +702 -0
- cyfaust/resources/architecture/faust/dsp/dsp-multifun.h +90 -0
- cyfaust/resources/architecture/faust/dsp/dsp-optimizer.h +511 -0
- cyfaust/resources/architecture/faust/dsp/dsp-tools.h +229 -0
- cyfaust/resources/architecture/faust/dsp/dsp.h +321 -0
- cyfaust/resources/architecture/faust/dsp/fastmath.cpp +301 -0
- cyfaust/resources/architecture/faust/dsp/faust-dynamic-engine.cpp +494 -0
- cyfaust/resources/architecture/faust/dsp/faust-dynamic-engine.h +386 -0
- cyfaust/resources/architecture/faust/dsp/faust-engine.h +75 -0
- cyfaust/resources/architecture/faust/dsp/faust-poly-engine.h +638 -0
- cyfaust/resources/architecture/faust/dsp/interpreter-dsp-c.h +288 -0
- cyfaust/resources/architecture/faust/dsp/interpreter-dsp.h +362 -0
- cyfaust/resources/architecture/faust/dsp/interpreter-machine-dsp.h +233 -0
- cyfaust/resources/architecture/faust/dsp/libfaust-box-c.h +817 -0
- cyfaust/resources/architecture/faust/dsp/libfaust-box.h +889 -0
- cyfaust/resources/architecture/faust/dsp/libfaust-c.h +116 -0
- cyfaust/resources/architecture/faust/dsp/libfaust-signal-c.h +649 -0
- cyfaust/resources/architecture/faust/dsp/libfaust-signal.h +731 -0
- cyfaust/resources/architecture/faust/dsp/llvm-dsp-adapter.h +160 -0
- cyfaust/resources/architecture/faust/dsp/llvm-dsp-c.h +524 -0
- cyfaust/resources/architecture/faust/dsp/llvm-dsp.h +575 -0
- cyfaust/resources/architecture/faust/dsp/llvm-machine-dsp.h +215 -0
- cyfaust/resources/architecture/faust/dsp/one-sample-dsp.h +477 -0
- cyfaust/resources/architecture/faust/dsp/poly-dsp.h +1079 -0
- cyfaust/resources/architecture/faust/dsp/poly-interpreter-dsp.h +143 -0
- cyfaust/resources/architecture/faust/dsp/poly-llvm-dsp.h +249 -0
- cyfaust/resources/architecture/faust/dsp/poly-wasm-dsp.h +257 -0
- cyfaust/resources/architecture/faust/dsp/proxy-dsp.h +108 -0
- cyfaust/resources/architecture/faust/dsp/proxy-osc-dsp.h +109 -0
- cyfaust/resources/architecture/faust/dsp/rnbo-dsp.h +187 -0
- cyfaust/resources/architecture/faust/dsp/sound-player.h +428 -0
- cyfaust/resources/architecture/faust/dsp/timed-dsp.h +279 -0
- cyfaust/resources/architecture/faust/dsp/wasm-dsp-imp.h +188 -0
- cyfaust/resources/architecture/faust/dsp/wasm-dsp.h +309 -0
- cyfaust/resources/architecture/faust/dsp/ysfx-dsp.h +188 -0
- cyfaust/resources/architecture/faust/export.h +61 -0
- cyfaust/resources/architecture/faust/gui/APIUI.h +726 -0
- cyfaust/resources/architecture/faust/gui/BelaOSCUI.h +170 -0
- cyfaust/resources/architecture/faust/gui/CGlue.h +667 -0
- cyfaust/resources/architecture/faust/gui/CInterface.h +142 -0
- cyfaust/resources/architecture/faust/gui/ControlSequenceUI.h +197 -0
- cyfaust/resources/architecture/faust/gui/ControlUI.h +137 -0
- cyfaust/resources/architecture/faust/gui/DaisyControlUI.h +283 -0
- cyfaust/resources/architecture/faust/gui/DaisyPatchInitControlUI.h +254 -0
- cyfaust/resources/architecture/faust/gui/DecoratorUI.h +115 -0
- cyfaust/resources/architecture/faust/gui/Esp32ControlUI.h +341 -0
- cyfaust/resources/architecture/faust/gui/Esp32Reader.h +102 -0
- cyfaust/resources/architecture/faust/gui/Esp32SensorUI.h +137 -0
- cyfaust/resources/architecture/faust/gui/FUI.h +147 -0
- cyfaust/resources/architecture/faust/gui/GTKUI.h +1414 -0
- cyfaust/resources/architecture/faust/gui/GUI.h +465 -0
- cyfaust/resources/architecture/faust/gui/JSONControl.h +48 -0
- cyfaust/resources/architecture/faust/gui/JSONUI.h +722 -0
- cyfaust/resources/architecture/faust/gui/JSONUIDecoder.h +589 -0
- cyfaust/resources/architecture/faust/gui/JuceGUI.h +2061 -0
- cyfaust/resources/architecture/faust/gui/JuceOSCUI.h +163 -0
- cyfaust/resources/architecture/faust/gui/JuceParameterUI.h +158 -0
- cyfaust/resources/architecture/faust/gui/JuceReader.h +103 -0
- cyfaust/resources/architecture/faust/gui/JuceStateUI.h +88 -0
- cyfaust/resources/architecture/faust/gui/LayoutUI.h +423 -0
- cyfaust/resources/architecture/faust/gui/LibsndfileReader.h +366 -0
- cyfaust/resources/architecture/faust/gui/MapUI.h +370 -0
- cyfaust/resources/architecture/faust/gui/MemoryReader.h +111 -0
- cyfaust/resources/architecture/faust/gui/MetaDataUI.h +357 -0
- cyfaust/resources/architecture/faust/gui/MidiUI.h +939 -0
- cyfaust/resources/architecture/faust/gui/OCVUI.h +688 -0
- cyfaust/resources/architecture/faust/gui/OSCUI.h +219 -0
- cyfaust/resources/architecture/faust/gui/PathBuilder.h +228 -0
- cyfaust/resources/architecture/faust/gui/PresetUI.h +337 -0
- cyfaust/resources/architecture/faust/gui/PrintCUI.h +152 -0
- cyfaust/resources/architecture/faust/gui/PrintUI.h +121 -0
- cyfaust/resources/architecture/faust/gui/QTUI.h +1891 -0
- cyfaust/resources/architecture/faust/gui/RosCI.h +493 -0
- cyfaust/resources/architecture/faust/gui/RosUI.h +488 -0
- cyfaust/resources/architecture/faust/gui/SaveUI.h +163 -0
- cyfaust/resources/architecture/faust/gui/SimpleParser.h +583 -0
- cyfaust/resources/architecture/faust/gui/SoundUI.h +217 -0
- cyfaust/resources/architecture/faust/gui/Soundfile.h +342 -0
- cyfaust/resources/architecture/faust/gui/Styles/Blue.qrc +5 -0
- cyfaust/resources/architecture/faust/gui/Styles/Blue.qss +177 -0
- cyfaust/resources/architecture/faust/gui/Styles/Default.qrc +5 -0
- cyfaust/resources/architecture/faust/gui/Styles/Default.qss +117 -0
- cyfaust/resources/architecture/faust/gui/Styles/Grey.qrc +5 -0
- cyfaust/resources/architecture/faust/gui/Styles/Grey.qss +174 -0
- cyfaust/resources/architecture/faust/gui/Styles/Salmon.qrc +5 -0
- cyfaust/resources/architecture/faust/gui/Styles/Salmon.qss +171 -0
- cyfaust/resources/architecture/faust/gui/UI.h +87 -0
- cyfaust/resources/architecture/faust/gui/ValueConverter.h +543 -0
- cyfaust/resources/architecture/faust/gui/WaveReader.h +364 -0
- cyfaust/resources/architecture/faust/gui/console.h +322 -0
- cyfaust/resources/architecture/faust/gui/httpdUI.h +372 -0
- cyfaust/resources/architecture/faust/gui/meta.h +39 -0
- cyfaust/resources/architecture/faust/gui/mspUI.h +580 -0
- cyfaust/resources/architecture/faust/gui/qrcodegen.h +269 -0
- cyfaust/resources/architecture/faust/gui/qrcodegen.impl.h +1025 -0
- cyfaust/resources/architecture/faust/gui/ring-buffer.h +414 -0
- cyfaust/resources/architecture/faust/midi/RtMidi.cpp +3054 -0
- cyfaust/resources/architecture/faust/midi/RtMidi.h +1034 -0
- cyfaust/resources/architecture/faust/midi/bela-midi.h +266 -0
- cyfaust/resources/architecture/faust/midi/daisy-midi.h +116 -0
- cyfaust/resources/architecture/faust/midi/esp32-midi.h +185 -0
- cyfaust/resources/architecture/faust/midi/gramophone-midi.h +107 -0
- cyfaust/resources/architecture/faust/midi/iplug2-midi.h +148 -0
- cyfaust/resources/architecture/faust/midi/jack-midi.h +247 -0
- cyfaust/resources/architecture/faust/midi/juce-midi.h +275 -0
- cyfaust/resources/architecture/faust/midi/midi.h +475 -0
- cyfaust/resources/architecture/faust/midi/rt-midi.h +315 -0
- cyfaust/resources/architecture/faust/midi/teensy-midi.h +89 -0
- cyfaust/resources/architecture/faust/misc.h +106 -0
- cyfaust/resources/architecture/faust/sound-file.h +132 -0
- cyfaust/resources/architecture/faust/unity/AudioPluginInterface.h +301 -0
- cyfaust/resources/architecture/faust/vst/faust.h +141 -0
- cyfaust/resources/architecture/faust/vst/voice.h +43 -0
- cyfaust/resources/architecture/faust/vst/vstui.h +524 -0
- cyfaust/resources/architecture/faustvst.cpp +3435 -0
- cyfaust/resources/architecture/faustvstqt.h +91 -0
- cyfaust/resources/architecture/gen-json.cpp +76 -0
- cyfaust/resources/architecture/jack-console.cpp +267 -0
- cyfaust/resources/architecture/jack-gtk-ros.cpp +139 -0
- cyfaust/resources/architecture/jack-gtk.cpp +282 -0
- cyfaust/resources/architecture/jack-internal.cpp +560 -0
- cyfaust/resources/architecture/jack-qt-chain-footer.cpp +87 -0
- cyfaust/resources/architecture/jack-qt-chain-header.cpp +92 -0
- cyfaust/resources/architecture/jack-qt.cpp +281 -0
- cyfaust/resources/architecture/jack.rs +171 -0
- cyfaust/resources/architecture/juce/README.md +84 -0
- cyfaust/resources/architecture/juce/juce-plugin.cpp +809 -0
- cyfaust/resources/architecture/juce/juce-standalone.cpp +413 -0
- cyfaust/resources/architecture/juce/plugin/plugin-llvm.jucer +184 -0
- cyfaust/resources/architecture/juce/plugin/plugin.jucer +159 -0
- cyfaust/resources/architecture/juce/standalone/standalone-llvm.jucer +216 -0
- cyfaust/resources/architecture/juce/standalone/standalone.jucer +191 -0
- cyfaust/resources/architecture/ladspa.cpp +543 -0
- cyfaust/resources/architecture/latexheader.tex +65 -0
- cyfaust/resources/architecture/lv2.cpp +2090 -0
- cyfaust/resources/architecture/lv2qtgui.h +62 -0
- cyfaust/resources/architecture/lv2ui.cpp +1966 -0
- cyfaust/resources/architecture/max-msp/README.md +109 -0
- cyfaust/resources/architecture/max-msp/faustgen-wrapper-poly.maxpat +184 -0
- cyfaust/resources/architecture/max-msp/faustgen-wrapper.maxpat +163 -0
- cyfaust/resources/architecture/max-msp/max-msp.cpp +734 -0
- cyfaust/resources/architecture/max-msp/max-msp64.cpp +789 -0
- cyfaust/resources/architecture/max-msp/py2max/README.md +277 -0
- cyfaust/resources/architecture/max-msp/py2max/py2max/__init__.py +3 -0
- cyfaust/resources/architecture/max-msp/py2max/py2max/common.py +7 -0
- cyfaust/resources/architecture/max-msp/py2max/py2max/core.py +1387 -0
- cyfaust/resources/architecture/max-msp/py2max/py2max/maxclassdb.py +318 -0
- cyfaust/resources/architecture/max-msp/py2max/py2max/utils.py +20 -0
- cyfaust/resources/architecture/max-msp/rnbo.py +1591 -0
- cyfaust/resources/architecture/max-msp/sndfile/sndfile.h +857 -0
- cyfaust/resources/architecture/max-msp/ui.js +230 -0
- cyfaust/resources/architecture/max-msp/wrapper-poly.maxpat +153 -0
- cyfaust/resources/architecture/max-msp/wrapper.maxpat +131 -0
- cyfaust/resources/architecture/minimal-bench.cpp +100 -0
- cyfaust/resources/architecture/minimal-effect.c +149 -0
- cyfaust/resources/architecture/minimal-effect.cpp +70 -0
- cyfaust/resources/architecture/minimal-fixed-point.cpp +195 -0
- cyfaust/resources/architecture/minimal-static.cpp +160 -0
- cyfaust/resources/architecture/minimal.c +103 -0
- cyfaust/resources/architecture/minimal.cpp +84 -0
- cyfaust/resources/architecture/minimal.rs +223 -0
- cyfaust/resources/architecture/module.cpp +91 -0
- cyfaust/resources/architecture/octave.cpp +471 -0
- cyfaust/resources/architecture/oscio-gtk.cpp +115 -0
- cyfaust/resources/architecture/oscio-qt.cpp +121 -0
- cyfaust/resources/architecture/owl.cpp +345 -0
- cyfaust/resources/architecture/pa-gtk.cpp +119 -0
- cyfaust/resources/architecture/pa-qt.cpp +261 -0
- cyfaust/resources/architecture/path-printer.cpp +100 -0
- cyfaust/resources/architecture/plot.cpp +128 -0
- cyfaust/resources/architecture/portaudio.rs +192 -0
- cyfaust/resources/architecture/puredata.cpp +636 -0
- cyfaust/resources/architecture/ra-qt.cpp +238 -0
- cyfaust/resources/architecture/sam/fast_pow2.h +69 -0
- cyfaust/resources/architecture/sam/fastexp.h +140 -0
- cyfaust/resources/architecture/sam/samFaustDSP.cpp +125 -0
- cyfaust/resources/architecture/sam/samFaustDSP.h +107 -0
- cyfaust/resources/architecture/scheduler.cpp +1391 -0
- cyfaust/resources/architecture/sndfile.cpp +291 -0
- cyfaust/resources/architecture/supercollider.cpp +611 -0
- cyfaust/resources/architecture/teensy/README.md +13 -0
- cyfaust/resources/architecture/teensy/teensy.cpp +214 -0
- cyfaust/resources/architecture/teensy/teensy.h +71 -0
- cyfaust/resources/architecture/thread.h +373 -0
- cyfaust/resources/architecture/vcvrack/README.md +78 -0
- cyfaust/resources/architecture/vcvrack/template/.gitignore +6 -0
- cyfaust/resources/architecture/vcvrack/template/Makefile +22 -0
- cyfaust/resources/architecture/vcvrack/template/res/FaustModule.svg +299 -0
- cyfaust/resources/architecture/vcvrack/template/src/FaustModule.cpp +942 -0
- cyfaust/resources/architecture/vst.cpp +947 -0
- cyfaust/resources/libraries/aanl.lib +900 -0
- cyfaust/resources/libraries/all.lib +36 -0
- cyfaust/resources/libraries/analyzers.lib +980 -0
- cyfaust/resources/libraries/basics.lib +2681 -0
- cyfaust/resources/libraries/compressors.lib +1341 -0
- cyfaust/resources/libraries/delays.lib +401 -0
- cyfaust/resources/libraries/demos.lib +1556 -0
- cyfaust/resources/libraries/dx7.lib +1036 -0
- cyfaust/resources/libraries/effect.lib +1645 -0
- cyfaust/resources/libraries/envelopes.lib +666 -0
- cyfaust/resources/libraries/examples/README.md +13 -0
- cyfaust/resources/libraries/examples/ambisonics/fourSourcesToOcto.dsp +20 -0
- cyfaust/resources/libraries/examples/ambisonics/oneSourceToStereo.dsp +12 -0
- cyfaust/resources/libraries/examples/analysis/FFT.dsp +26 -0
- cyfaust/resources/libraries/examples/analysis/dbmeter.dsp +19 -0
- cyfaust/resources/libraries/examples/analysis/spectralLevel.dsp +8 -0
- cyfaust/resources/libraries/examples/analysis/spectralTiltLab.dsp +20 -0
- cyfaust/resources/libraries/examples/analysis/vumeter.dsp +18 -0
- cyfaust/resources/libraries/examples/autodiff/delay/diff.dsp +2 -0
- cyfaust/resources/libraries/examples/autodiff/delay/gt.dsp +2 -0
- cyfaust/resources/libraries/examples/autodiff/gain/diff.dsp +7 -0
- cyfaust/resources/libraries/examples/autodiff/gain/gt.dsp +1 -0
- cyfaust/resources/libraries/examples/autodiff/gain_dc/diff.dsp +7 -0
- cyfaust/resources/libraries/examples/autodiff/gain_dc/gt.dsp +4 -0
- cyfaust/resources/libraries/examples/autodiff/gain_exp/diff.dsp +9 -0
- cyfaust/resources/libraries/examples/autodiff/gain_exp/gt.dsp +1 -0
- cyfaust/resources/libraries/examples/autodiff/gain_pow/diff.dsp +9 -0
- cyfaust/resources/libraries/examples/autodiff/gain_pow/gt.dsp +1 -0
- cyfaust/resources/libraries/examples/autodiff/gain_pow_trig/diff.dsp +12 -0
- cyfaust/resources/libraries/examples/autodiff/gain_pow_trig/gt.dsp +1 -0
- cyfaust/resources/libraries/examples/autodiff/gain_sq/diff.dsp +7 -0
- cyfaust/resources/libraries/examples/autodiff/gain_sq/gt.dsp +1 -0
- cyfaust/resources/libraries/examples/autodiff/mem/diff.dsp +1 -0
- cyfaust/resources/libraries/examples/autodiff/mem/gt.dsp +1 -0
- cyfaust/resources/libraries/examples/autodiff/noise.dsp +2 -0
- cyfaust/resources/libraries/examples/autodiff/noop.dsp +2 -0
- cyfaust/resources/libraries/examples/autodiff/one_zero/diff.dsp +2 -0
- cyfaust/resources/libraries/examples/autodiff/one_zero/gt.dsp +2 -0
- cyfaust/resources/libraries/examples/autodiff/ramp.dsp +1 -0
- cyfaust/resources/libraries/examples/autodiff/recursion/diff.dsp +2 -0
- cyfaust/resources/libraries/examples/autodiff/recursion/gt.dsp +1 -0
- cyfaust/resources/libraries/examples/autodiff/recursion/target.dsp +13 -0
- cyfaust/resources/libraries/examples/autodiff/tremolo/diff.dsp +14 -0
- cyfaust/resources/libraries/examples/autodiff/tremolo/diffable.lib +7 -0
- cyfaust/resources/libraries/examples/autodiff/tremolo/gt.dsp +11 -0
- cyfaust/resources/libraries/examples/delayEcho/echo.dsp +15 -0
- cyfaust/resources/libraries/examples/delayEcho/quadEcho.dsp +21 -0
- cyfaust/resources/libraries/examples/delayEcho/smoothDelay.dsp +26 -0
- cyfaust/resources/libraries/examples/delayEcho/stereoEcho.dsp +16 -0
- cyfaust/resources/libraries/examples/delayEcho/tapiir.dsp +44 -0
- cyfaust/resources/libraries/examples/dynamic/compressor.dsp +8 -0
- cyfaust/resources/libraries/examples/dynamic/distortion.dsp +8 -0
- cyfaust/resources/libraries/examples/dynamic/gateCompressor.dsp +10 -0
- cyfaust/resources/libraries/examples/dynamic/noiseGate.dsp +8 -0
- cyfaust/resources/libraries/examples/dynamic/volume.dsp +15 -0
- cyfaust/resources/libraries/examples/filtering/APF.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/BPF.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/DNN.dsp +25 -0
- cyfaust/resources/libraries/examples/filtering/HPF.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/LPF.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/bandFilter.dsp +44 -0
- cyfaust/resources/libraries/examples/filtering/cryBaby.dsp +4 -0
- cyfaust/resources/libraries/examples/filtering/diodeLadder.dsp +12 -0
- cyfaust/resources/libraries/examples/filtering/filterBank.dsp +6 -0
- cyfaust/resources/libraries/examples/filtering/graphicEqLab.dsp +10 -0
- cyfaust/resources/libraries/examples/filtering/highShelf.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/korg35HPF.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/korg35LPF.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/lfBoost.dsp +40 -0
- cyfaust/resources/libraries/examples/filtering/lowBoost.dsp +40 -0
- cyfaust/resources/libraries/examples/filtering/lowCut.dsp +40 -0
- cyfaust/resources/libraries/examples/filtering/lowShelf.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/moogHalfLadder.dsp +12 -0
- cyfaust/resources/libraries/examples/filtering/moogLadder.dsp +12 -0
- cyfaust/resources/libraries/examples/filtering/moogVCF.dsp +6 -0
- cyfaust/resources/libraries/examples/filtering/multibandFilter.dsp +14 -0
- cyfaust/resources/libraries/examples/filtering/notch.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/oberheim.dsp +14 -0
- cyfaust/resources/libraries/examples/filtering/oberheimBPF.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/oberheimBSF.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/oberheimHPF.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/oberheimLPF.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/parametricEqLab.dsp +10 -0
- cyfaust/resources/libraries/examples/filtering/parametricEqualizer.dsp +6 -0
- cyfaust/resources/libraries/examples/filtering/peakNotch.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/peakingEQ.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/sallenKey2ndOrder.dsp +14 -0
- cyfaust/resources/libraries/examples/filtering/sallenKey2ndOrderBPF.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/sallenKey2ndOrderHPF.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/sallenKey2ndOrderLPF.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/sallenKeyOnePole.dsp +13 -0
- cyfaust/resources/libraries/examples/filtering/sallenKeyOnePoleHPF.dsp +12 -0
- cyfaust/resources/libraries/examples/filtering/sallenKeyOnePoleLPF.dsp +12 -0
- cyfaust/resources/libraries/examples/filtering/spectralTilt.dsp +8 -0
- cyfaust/resources/libraries/examples/filtering/vcfWahLab.dsp +12 -0
- cyfaust/resources/libraries/examples/filtering/vocoder.dsp +8 -0
- cyfaust/resources/libraries/examples/filtering/wahPedal.dsp +6 -0
- cyfaust/resources/libraries/examples/gameaudio/bubble.dsp +42 -0
- cyfaust/resources/libraries/examples/gameaudio/door.dsp +58 -0
- cyfaust/resources/libraries/examples/gameaudio/fire.dsp +46 -0
- cyfaust/resources/libraries/examples/gameaudio/insects.dsp +148 -0
- cyfaust/resources/libraries/examples/gameaudio/rain.dsp +27 -0
- cyfaust/resources/libraries/examples/gameaudio/wind.dsp +23 -0
- cyfaust/resources/libraries/examples/generator/filterOsc.dsp +8 -0
- cyfaust/resources/libraries/examples/generator/noise.dsp +52 -0
- cyfaust/resources/libraries/examples/generator/noiseMetadata.dsp +74 -0
- cyfaust/resources/libraries/examples/generator/osc.dsp +17 -0
- cyfaust/resources/libraries/examples/generator/osci.dsp +17 -0
- cyfaust/resources/libraries/examples/generator/sawtoothLab.dsp +8 -0
- cyfaust/resources/libraries/examples/generator/virtualAnalog.dsp +8 -0
- cyfaust/resources/libraries/examples/generator/virtualAnalogLab.dsp +10 -0
- cyfaust/resources/libraries/examples/misc/UITester.dsp +71 -0
- cyfaust/resources/libraries/examples/misc/autopan.dsp +59 -0
- cyfaust/resources/libraries/examples/misc/capture.dsp +24 -0
- cyfaust/resources/libraries/examples/misc/drumkit.dsp +36 -0
- cyfaust/resources/libraries/examples/misc/guitarix.dsp +184 -0
- cyfaust/resources/libraries/examples/misc/matrix.dsp +17 -0
- cyfaust/resources/libraries/examples/misc/midiTester.dsp +122 -0
- cyfaust/resources/libraries/examples/misc/mixer.dsp +27 -0
- cyfaust/resources/libraries/examples/misc/statespace.dsp +39 -0
- cyfaust/resources/libraries/examples/misc/switcher.dsp +20 -0
- cyfaust/resources/libraries/examples/misc/tester.dsp +32 -0
- cyfaust/resources/libraries/examples/misc/tester2.dsp +31 -0
- cyfaust/resources/libraries/examples/old/README.md +5 -0
- cyfaust/resources/libraries/examples/old/freeverb.dsp +109 -0
- cyfaust/resources/libraries/examples/old/rewriting/Makefile +21 -0
- cyfaust/resources/libraries/examples/old/rewriting/fact.dsp +3 -0
- cyfaust/resources/libraries/examples/old/rewriting/fold.dsp +61 -0
- cyfaust/resources/libraries/examples/old/rewriting/mesh.dsp +43 -0
- cyfaust/resources/libraries/examples/old/rewriting/mesh.pd +37 -0
- cyfaust/resources/libraries/examples/old/rewriting/sample.pd +12 -0
- cyfaust/resources/libraries/examples/old/rewriting/serial.dsp +7 -0
- cyfaust/resources/libraries/examples/old/rewriting/sum.dsp +55 -0
- cyfaust/resources/libraries/examples/old/rewriting/test.pd +48 -0
- cyfaust/resources/libraries/examples/phasing/flanger.dsp +8 -0
- cyfaust/resources/libraries/examples/phasing/phaser.dsp +8 -0
- cyfaust/resources/libraries/examples/phasing/phaserFlangerLab.dsp +12 -0
- cyfaust/resources/libraries/examples/physicalModeling/brass.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/brassMIDI.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/churchBell.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/clarinet.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/clarinetMIDI.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/djembeMIDI.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/elecGuitarMIDI.dsp +10 -0
- cyfaust/resources/libraries/examples/physicalModeling/englishBell.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/NLFeks.dsp +91 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/NLFfm.dsp +70 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/README +125 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/bass.dsp +84 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/bass.h +91 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/blowBottle.dsp +102 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/bowed.dsp +114 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/brass.dsp +103 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/clarinet.dsp +110 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/flute.dsp +116 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/fluteStk.dsp +121 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/glassHarmonica.dsp +131 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/harpsi.dsp +90 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/harpsichord.h +185 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/instrument.h +114 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/modalBar.dsp +122 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/modalBar.h +48 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/audio-out.pd +33 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/bottle.pd +10 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/clarinets.pd +15 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/canon/audio-out.pd +33 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/canon/bass.pd +162 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/canon/canon.pd +55 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/canon/flute.pd +343 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/canon/pachelbel.mid +0 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/daisy/audio-out.pd +33 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/daisy/daisy.mid +0 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/daisy/daisy.pd +45 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/daisy/piano.pd +205 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/daisy/voiceForm.pd +340 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/take5/audio-out.pd +33 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/take5/blowHole.pd +330 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/take5/piano.pd +205 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/take5/take5.mid +0 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/take5/take5.pd +45 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/turkish-march/audio-out.pd +33 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/turkish-march/harpsi.pd +204 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/turkish-march/turkish-march.mid +0 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/turkish-march/turkish-march.pd +31 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/what-a-friend/audio-out.pd +33 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/what-a-friend/bass.pd +162 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/what-a-friend/modalBar.pd +258 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/what-a-friend/piano.pd +205 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/what-a-friend/what-a-friend.pd +52 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fancy/what-a-friend/what_a_friend.mid +0 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/flutes.pd +15 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/fm.pd +10 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/glassBare.pd +10 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/harpsichord-poly.pd +10 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/ironBare.pd +10 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/midi-in.pd +111 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/modal.pd +10 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/osc.pd +26 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/piano-poly.pd +10 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/plucked.pd +20 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/saxophone.pd +10 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/tibetan.pd +10 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/trumpet.pd +10 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/violin.pd +10 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/voiceSynth.pd +10 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/pd-patches/woodenBare.pd +10 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/phonemes.h +189 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/piano.dsp +255 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/piano.h +751 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/saxophony.dsp +114 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/sitar.dsp +48 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/tibetanBowl.dsp +155 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/tunedBar.dsp +123 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/uniBar.dsp +100 -0
- cyfaust/resources/libraries/examples/physicalModeling/faust-stk/voiceForm.dsp +125 -0
- cyfaust/resources/libraries/examples/physicalModeling/fds/1dDampedWaveEquation.dsp +43 -0
- cyfaust/resources/libraries/examples/physicalModeling/fds/2dKirchhoffThinPlate.dsp +75 -0
- cyfaust/resources/libraries/examples/physicalModeling/fds/BowedString.dsp +61 -0
- cyfaust/resources/libraries/examples/physicalModeling/fds/ControllableNonPhysicalString.dsp +72 -0
- cyfaust/resources/libraries/examples/physicalModeling/fds/HammeredString.dsp +74 -0
- cyfaust/resources/libraries/examples/physicalModeling/fds/PianoHammeredString.dsp +85 -0
- cyfaust/resources/libraries/examples/physicalModeling/fds/StiffString.dsp +54 -0
- cyfaust/resources/libraries/examples/physicalModeling/flute.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/fluteMIDI.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/frenchBell.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/germanBell.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/guitarMIDI.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/karplus.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/marimbaMIDI.dsp +10 -0
- cyfaust/resources/libraries/examples/physicalModeling/mi-faust/00_BasicOscillator/harmonicOscillator.dsp +58 -0
- cyfaust/resources/libraries/examples/physicalModeling/mi-faust/00_BasicOscillator/harmonicOscillator2.dsp +62 -0
- cyfaust/resources/libraries/examples/physicalModeling/mi-faust/00_BasicOscillator/harmonicOscillator3.dsp +65 -0
- cyfaust/resources/libraries/examples/physicalModeling/mi-faust/01_ParamControl/paramOsc.dsp +63 -0
- cyfaust/resources/libraries/examples/physicalModeling/mi-faust/02_AudioParamControl/audioParamOsc.dsp +63 -0
- cyfaust/resources/libraries/examples/physicalModeling/mi-faust/03_HammerTime/hammerOsc.dsp +71 -0
- cyfaust/resources/libraries/examples/physicalModeling/mi-faust/04_Gravity/bouncingOsc.dsp +64 -0
- cyfaust/resources/libraries/examples/physicalModeling/mi-faust/05_PluckedOscillator/pluckedOsc.dsp +57 -0
- cyfaust/resources/libraries/examples/physicalModeling/mi-faust/06_BowedOscillator/bowedOsc.dsp +65 -0
- cyfaust/resources/libraries/examples/physicalModeling/mi-faust/07_NonLinearOscillator/nlOsc.dsp +78 -0
- cyfaust/resources/libraries/examples/physicalModeling/mi-faust/08_TwoMassChain/2massChain.dsp +75 -0
- cyfaust/resources/libraries/examples/physicalModeling/mi-faust/09_TinyString/tinyString.dsp +101 -0
- cyfaust/resources/libraries/examples/physicalModeling/mi-faust/10_PluckedString/pluckedString.dsp +678 -0
- cyfaust/resources/libraries/examples/physicalModeling/mi-faust/11_BowedString/bowedString.dsp +671 -0
- cyfaust/resources/libraries/examples/physicalModeling/mi-faust/12_TriangleMesh/triangleMesh.dsp +448 -0
- cyfaust/resources/libraries/examples/physicalModeling/mi-faust/13_Construction/construction.dsp +1036 -0
- cyfaust/resources/libraries/examples/physicalModeling/mi-faust/14_Polyphonic/polyTriangle.dsp +79 -0
- cyfaust/resources/libraries/examples/physicalModeling/mi-faust/15_PhysicalLFO/physicalLFO.dsp +107 -0
- cyfaust/resources/libraries/examples/physicalModeling/modularInterpInstrMIDI.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/nylonGuitarMIDI.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/old/harpe.dsp +45 -0
- cyfaust/resources/libraries/examples/physicalModeling/old/karplus.dsp +34 -0
- cyfaust/resources/libraries/examples/physicalModeling/old/karplus32.dsp +47 -0
- cyfaust/resources/libraries/examples/physicalModeling/russianBell.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/standardBell.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/violin.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/violinMIDI.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/vocalBP.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/vocalBPMIDI.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/vocalFOF.dsp +8 -0
- cyfaust/resources/libraries/examples/physicalModeling/vocalFOFMIDI.dsp +8 -0
- cyfaust/resources/libraries/examples/pitchShifting/pitchShifter.dsp +20 -0
- cyfaust/resources/libraries/examples/psychoacoustic/harmonicExciter.dsp +10 -0
- cyfaust/resources/libraries/examples/quantizing/quantizedChords.dsp +49 -0
- cyfaust/resources/libraries/examples/reverb/dattorro.dsp +8 -0
- cyfaust/resources/libraries/examples/reverb/fdnRev.dsp +8 -0
- cyfaust/resources/libraries/examples/reverb/freeverb.dsp +8 -0
- cyfaust/resources/libraries/examples/reverb/greyhole.dsp +8 -0
- cyfaust/resources/libraries/examples/reverb/jprev.dsp +8 -0
- cyfaust/resources/libraries/examples/reverb/reverbDesigner.dsp +12 -0
- cyfaust/resources/libraries/examples/reverb/reverbTester.dsp +8 -0
- cyfaust/resources/libraries/examples/reverb/zitaRev.dsp +8 -0
- cyfaust/resources/libraries/examples/reverb/zitaRevFDN.dsp +8 -0
- cyfaust/resources/libraries/examples/smartKeyboard/acGuitar.dsp +100 -0
- cyfaust/resources/libraries/examples/smartKeyboard/associatedEffects/elecGuitarEffect.dsp +8 -0
- cyfaust/resources/libraries/examples/smartKeyboard/associatedEffects/myEffect.dsp +5 -0
- cyfaust/resources/libraries/examples/smartKeyboard/associatedEffects/reverb.dsp +5 -0
- cyfaust/resources/libraries/examples/smartKeyboard/bells.dsp +80 -0
- cyfaust/resources/libraries/examples/smartKeyboard/bowed.dsp +87 -0
- cyfaust/resources/libraries/examples/smartKeyboard/brass.dsp +82 -0
- cyfaust/resources/libraries/examples/smartKeyboard/clarinet.dsp +113 -0
- cyfaust/resources/libraries/examples/smartKeyboard/crazyGuiro.dsp +96 -0
- cyfaust/resources/libraries/examples/smartKeyboard/drums.dsp +74 -0
- cyfaust/resources/libraries/examples/smartKeyboard/dubDub.dsp +87 -0
- cyfaust/resources/libraries/examples/smartKeyboard/elecGuitar.dsp +67 -0
- cyfaust/resources/libraries/examples/smartKeyboard/fm.dsp +78 -0
- cyfaust/resources/libraries/examples/smartKeyboard/frog.dsp +74 -0
- cyfaust/resources/libraries/examples/smartKeyboard/harp.dsp +84 -0
- cyfaust/resources/libraries/examples/smartKeyboard/midiOnly.dsp +62 -0
- cyfaust/resources/libraries/examples/smartKeyboard/multiSynth.dsp +75 -0
- cyfaust/resources/libraries/examples/smartKeyboard/toy.dsp +71 -0
- cyfaust/resources/libraries/examples/smartKeyboard/trumpet.dsp +59 -0
- cyfaust/resources/libraries/examples/smartKeyboard/turenas.dsp +114 -0
- cyfaust/resources/libraries/examples/smartKeyboard/violin.dsp +91 -0
- cyfaust/resources/libraries/examples/smartKeyboard/violin2.dsp +84 -0
- cyfaust/resources/libraries/examples/smartKeyboard/vocal.dsp +43 -0
- cyfaust/resources/libraries/examples/spat/panpot.dsp +17 -0
- cyfaust/resources/libraries/examples/spat/spat.dsp +25 -0
- cyfaust/resources/libraries/fds.lib +535 -0
- cyfaust/resources/libraries/filter.lib +1710 -0
- cyfaust/resources/libraries/filters.lib +3125 -0
- cyfaust/resources/libraries/hoa.lib +1081 -0
- cyfaust/resources/libraries/instruments.lib +263 -0
- cyfaust/resources/libraries/interpolators.lib +675 -0
- cyfaust/resources/libraries/math.lib +602 -0
- cyfaust/resources/libraries/maths.lib +798 -0
- cyfaust/resources/libraries/maxmsp.lib +237 -0
- cyfaust/resources/libraries/mi.lib +528 -0
- cyfaust/resources/libraries/misceffects.lib +998 -0
- cyfaust/resources/libraries/music.lib +496 -0
- cyfaust/resources/libraries/noises.lib +487 -0
- cyfaust/resources/libraries/oscillator.lib +450 -0
- cyfaust/resources/libraries/oscillators.lib +1838 -0
- cyfaust/resources/libraries/phaflangers.lib +235 -0
- cyfaust/resources/libraries/physmodels.lib +3990 -0
- cyfaust/resources/libraries/platform.lib +59 -0
- cyfaust/resources/libraries/quantizers.lib +310 -0
- cyfaust/resources/libraries/reducemaps.lib +235 -0
- cyfaust/resources/libraries/reverbs.lib +686 -0
- cyfaust/resources/libraries/routes.lib +262 -0
- cyfaust/resources/libraries/sf.lib +53 -0
- cyfaust/resources/libraries/signals.lib +570 -0
- cyfaust/resources/libraries/soundfiles.lib +234 -0
- cyfaust/resources/libraries/spats.lib +173 -0
- cyfaust/resources/libraries/stdfaust.lib +38 -0
- cyfaust/resources/libraries/synths.lib +322 -0
- cyfaust/resources/libraries/tonestacks.lib +427 -0
- cyfaust/resources/libraries/tubes.lib +5039 -0
- cyfaust/resources/libraries/vaeffects.lib +984 -0
- cyfaust/resources/libraries/version.lib +22 -0
- cyfaust/resources/libraries/wdmodels.lib +2276 -0
- cyfaust/resources/libraries/webaudio.lib +402 -0
- cyfaust/signal.pxd +44 -0
- cyfaust/signal.pyx +1993 -0
- cyfaust-0.1.0.dist-info/METADATA +355 -0
- cyfaust-0.1.0.dist-info/RECORD +693 -0
- cyfaust-0.1.0.dist-info/WHEEL +5 -0
- cyfaust-0.1.0.dist-info/entry_points.txt +3 -0
- cyfaust-0.1.0.dist-info/licenses/LICENSE +26 -0
cyfaust/interp.pyx
ADDED
|
@@ -0,0 +1,673 @@
|
|
|
1
|
+
# distutils: language = c++
|
|
2
|
+
|
|
3
|
+
from libcpp.string cimport string
|
|
4
|
+
from libcpp.map cimport map
|
|
5
|
+
from libc.stdlib cimport malloc, free
|
|
6
|
+
from cython.operator cimport dereference as deref, preincrement as inc
|
|
7
|
+
|
|
8
|
+
from . cimport faust_interp as fi
|
|
9
|
+
from . cimport faust_gui as fg
|
|
10
|
+
from . cimport faust_signal as fs
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
from .common cimport ParamArray
|
|
14
|
+
from .common import ParamArray
|
|
15
|
+
|
|
16
|
+
from .box cimport Box
|
|
17
|
+
from .box import Box
|
|
18
|
+
|
|
19
|
+
from .signal cimport SignalVector
|
|
20
|
+
from .signal import SignalVector
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
## ---------------------------------------------------------------------------
|
|
24
|
+
## faust/dsp/libfaust
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def generate_sha1(data: str) -> str:
|
|
28
|
+
"""Generate SHA1 key from a string."""
|
|
29
|
+
return fi.generateSHA1(data.encode('utf8')).decode()
|
|
30
|
+
|
|
31
|
+
def expand_dsp_from_file(filename: str, *args) -> tuple(str, str):
|
|
32
|
+
"""Expand dsp in a file into a self-contained dsp string.
|
|
33
|
+
|
|
34
|
+
Returns sha key for expanded dsp string and expanded dsp string
|
|
35
|
+
"""
|
|
36
|
+
cdef ParamArray params = ParamArray(args)
|
|
37
|
+
cdef string error_msg, sha_key
|
|
38
|
+
error_msg.reserve(4096)
|
|
39
|
+
sha_key.reserve(100) # sha1 is 40 chars
|
|
40
|
+
cdef string result = fi.expandDSPFromFile(
|
|
41
|
+
filename.encode('utf8'),
|
|
42
|
+
params.argc,
|
|
43
|
+
params.argv,
|
|
44
|
+
sha_key,
|
|
45
|
+
error_msg
|
|
46
|
+
)
|
|
47
|
+
if not error_msg.empty():
|
|
48
|
+
print(error_msg.decode())
|
|
49
|
+
return
|
|
50
|
+
return (sha_key.decode(), result.decode())
|
|
51
|
+
|
|
52
|
+
def expand_dsp_from_string(name_app: str, dsp_content: str, *args) -> tuple(str, str):
|
|
53
|
+
"""Expand dsp in a file into a self-contained dsp string."""
|
|
54
|
+
cdef ParamArray params = ParamArray(args)
|
|
55
|
+
cdef string error_msg, sha_key
|
|
56
|
+
error_msg.reserve(4096)
|
|
57
|
+
sha_key.reserve(128) # sha1 is 40 chars
|
|
58
|
+
cdef string result = fi.expandDSPFromString(
|
|
59
|
+
name_app.encode('utf8'),
|
|
60
|
+
dsp_content.encode('utf8'),
|
|
61
|
+
params.argc,
|
|
62
|
+
params.argv,
|
|
63
|
+
sha_key,
|
|
64
|
+
error_msg
|
|
65
|
+
)
|
|
66
|
+
if not error_msg.empty():
|
|
67
|
+
print(error_msg.decode())
|
|
68
|
+
return
|
|
69
|
+
return (sha_key.decode(), result.decode())
|
|
70
|
+
|
|
71
|
+
def generate_auxfiles_from_file(filename: str, *args) -> bool:
|
|
72
|
+
"""Generate additional files from a file.
|
|
73
|
+
|
|
74
|
+
Auxfiles can be other backends, SVG, XML, JSON...
|
|
75
|
+
"""
|
|
76
|
+
cdef ParamArray params = ParamArray(args)
|
|
77
|
+
cdef string error_msg
|
|
78
|
+
error_msg.reserve(4096)
|
|
79
|
+
result = fi.generateAuxFilesFromFile(
|
|
80
|
+
filename.encode('utf8'),
|
|
81
|
+
params.argc,
|
|
82
|
+
params.argv,
|
|
83
|
+
error_msg
|
|
84
|
+
)
|
|
85
|
+
if not error_msg.empty():
|
|
86
|
+
print(error_msg.decode())
|
|
87
|
+
return
|
|
88
|
+
return result
|
|
89
|
+
|
|
90
|
+
def generate_auxfiles_from_string(name_app: str, dsp_content: str, *args) -> bool:
|
|
91
|
+
"""Generate additional files from a string.
|
|
92
|
+
|
|
93
|
+
Auxfiles can be other backends, SVG, XML, JSON...
|
|
94
|
+
"""
|
|
95
|
+
cdef ParamArray params = ParamArray(args)
|
|
96
|
+
cdef string error_msg
|
|
97
|
+
error_msg.reserve(4096)
|
|
98
|
+
result = fi.generateAuxFilesFromString(
|
|
99
|
+
name_app.encode('utf8'),
|
|
100
|
+
dsp_content.encode('utf8'),
|
|
101
|
+
params.argc,
|
|
102
|
+
params.argv,
|
|
103
|
+
error_msg
|
|
104
|
+
)
|
|
105
|
+
if not error_msg.empty():
|
|
106
|
+
print(error_msg.decode())
|
|
107
|
+
return
|
|
108
|
+
return result
|
|
109
|
+
|
|
110
|
+
## ---------------------------------------------------------------------------
|
|
111
|
+
## faust/audio/rtaudio-dsp
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
cdef class RtAudioDriver:
|
|
115
|
+
"""faust audio driver using rtaudio cross-platform lib."""
|
|
116
|
+
cdef fi.rtaudio *ptr
|
|
117
|
+
cdef bint ptr_owner
|
|
118
|
+
|
|
119
|
+
def __dealloc__(self):
|
|
120
|
+
if self.ptr and self.ptr_owner:
|
|
121
|
+
del self.ptr
|
|
122
|
+
self.ptr = NULL
|
|
123
|
+
|
|
124
|
+
def __cinit__(self, int srate, int bsize):
|
|
125
|
+
self.ptr = new fi.rtaudio(srate, bsize)
|
|
126
|
+
self.ptr_owner = True
|
|
127
|
+
|
|
128
|
+
def set_dsp(self, dsp: InterpreterDsp):
|
|
129
|
+
""""set InterpreterDsp instance."""
|
|
130
|
+
self.ptr.setDsp(<fi.dsp*>dsp.ptr)
|
|
131
|
+
|
|
132
|
+
def init(self, dsp: InterpreterDsp) -> bool:
|
|
133
|
+
"""initialize with dsp instance."""
|
|
134
|
+
name = "RtAudioDriver".encode('utf8')
|
|
135
|
+
if self.ptr.init(name, dsp.get_numinputs(), dsp.get_numoutputs()):
|
|
136
|
+
self.set_dsp(dsp)
|
|
137
|
+
return True
|
|
138
|
+
return False
|
|
139
|
+
|
|
140
|
+
def start(self):
|
|
141
|
+
"""start audio driver."""
|
|
142
|
+
if not self.ptr.start():
|
|
143
|
+
print("RtAudioDriver: could not start")
|
|
144
|
+
|
|
145
|
+
def stop(self):
|
|
146
|
+
"""stop audio driver."""
|
|
147
|
+
self.ptr.stop()
|
|
148
|
+
|
|
149
|
+
@property
|
|
150
|
+
def buffersize(self):
|
|
151
|
+
"""get buffersize"""
|
|
152
|
+
return self.ptr.getBufferSize()
|
|
153
|
+
|
|
154
|
+
@property
|
|
155
|
+
def samplerate(self):
|
|
156
|
+
"""get samplerate."""
|
|
157
|
+
return self.ptr.getSampleRate()
|
|
158
|
+
|
|
159
|
+
@property
|
|
160
|
+
def numinputs(self):
|
|
161
|
+
"""get number of inputs."""
|
|
162
|
+
return self.ptr.getNumInputs()
|
|
163
|
+
|
|
164
|
+
@property
|
|
165
|
+
def numoutputs(self):
|
|
166
|
+
"""get number of outputs."""
|
|
167
|
+
return self.ptr.getNumOutputs()
|
|
168
|
+
|
|
169
|
+
## ---------------------------------------------------------------------------
|
|
170
|
+
## faust/dsp/interpreter-dsp
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
def get_version():
|
|
174
|
+
"""Returns the library version as a static string."""
|
|
175
|
+
return fi.getCLibFaustVersion().decode()
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
cdef class InterpreterDspFactory:
|
|
179
|
+
"""Interpreter DSP factory class."""
|
|
180
|
+
|
|
181
|
+
cdef fi.interpreter_dsp_factory* ptr
|
|
182
|
+
cdef bint ptr_owner
|
|
183
|
+
cdef set instances
|
|
184
|
+
|
|
185
|
+
def __cinit__(self):
|
|
186
|
+
self.ptr = NULL
|
|
187
|
+
self.ptr_owner = False
|
|
188
|
+
self.instances = set()
|
|
189
|
+
|
|
190
|
+
def __dealloc__(self):
|
|
191
|
+
if self.ptr and self.ptr_owner:
|
|
192
|
+
instances = self.instances.copy()
|
|
193
|
+
while instances:
|
|
194
|
+
i = instances.pop()
|
|
195
|
+
i.delete()
|
|
196
|
+
fi.deleteInterpreterDSPFactory(self.ptr)
|
|
197
|
+
self.ptr = NULL
|
|
198
|
+
|
|
199
|
+
def get_name(self) -> str:
|
|
200
|
+
"""Return factory name."""
|
|
201
|
+
return self.ptr.getName().decode()
|
|
202
|
+
|
|
203
|
+
def get_sha_key(self) -> str:
|
|
204
|
+
"""Return factory SHA key."""
|
|
205
|
+
return self.ptr.getSHAKey().decode()
|
|
206
|
+
|
|
207
|
+
def get_dsp_code(self) -> str:
|
|
208
|
+
"""Return factory expanded DSP code."""
|
|
209
|
+
return self.ptr.getDSPCode().decode()
|
|
210
|
+
|
|
211
|
+
def get_compile_options(self) -> str:
|
|
212
|
+
"""Return factory compile options."""
|
|
213
|
+
return self.ptr.getCompileOptions().decode()
|
|
214
|
+
|
|
215
|
+
def get_library_list(self) -> list[str]:
|
|
216
|
+
"""Get the Faust DSP factory list of library dependancies."""
|
|
217
|
+
return self.ptr.getLibraryList()
|
|
218
|
+
|
|
219
|
+
def get_include_pathnames(self) -> list[str]:
|
|
220
|
+
"""Get the list of all used includes."""
|
|
221
|
+
return self.ptr.getIncludePathnames()
|
|
222
|
+
|
|
223
|
+
def get_warning_messages(self) -> list[str]:
|
|
224
|
+
"""Get warning messages list for a given compilation."""
|
|
225
|
+
return [msg.decode() for msg in self.ptr.getWarningMessages()]
|
|
226
|
+
|
|
227
|
+
def create_dsp_instance(self) -> InterpreterDsp:
|
|
228
|
+
"""Create a new DSP instance, to be deleted with C++ 'delete'"""
|
|
229
|
+
cdef fi.interpreter_dsp* dsp = self.ptr.createDSPInstance()
|
|
230
|
+
instance = InterpreterDsp.from_ptr(dsp)
|
|
231
|
+
self.instances.add(instance)
|
|
232
|
+
return instance
|
|
233
|
+
|
|
234
|
+
def set_memory_manager(self, object manager):
|
|
235
|
+
"""Set a custom memory manager to be used when creating instances.
|
|
236
|
+
|
|
237
|
+
Args:
|
|
238
|
+
manager: A memory manager object (currently None to reset to default)
|
|
239
|
+
"""
|
|
240
|
+
# For now, only support None to reset to default
|
|
241
|
+
if manager is None:
|
|
242
|
+
self.ptr.setMemoryManager(NULL)
|
|
243
|
+
else:
|
|
244
|
+
raise NotImplementedError("Custom memory managers not yet supported in Python interface")
|
|
245
|
+
|
|
246
|
+
def get_memory_manager(self):
|
|
247
|
+
"""Return the currently set custom memory manager.
|
|
248
|
+
|
|
249
|
+
Returns:
|
|
250
|
+
None if no custom manager is set, otherwise raises NotImplementedError
|
|
251
|
+
"""
|
|
252
|
+
cdef fi.dsp_memory_manager* manager = self.ptr.getMemoryManager()
|
|
253
|
+
if manager == NULL:
|
|
254
|
+
return None
|
|
255
|
+
else:
|
|
256
|
+
# Custom memory managers not yet fully supported in Python interface
|
|
257
|
+
raise NotImplementedError("Custom memory managers not yet fully supported in Python interface")
|
|
258
|
+
|
|
259
|
+
def class_init(self, int sample_rate):
|
|
260
|
+
"""Initialize the static tables for all factory instances.
|
|
261
|
+
|
|
262
|
+
Args:
|
|
263
|
+
sample_rate: The sample rate in Hz
|
|
264
|
+
"""
|
|
265
|
+
self.ptr.classInit(sample_rate)
|
|
266
|
+
|
|
267
|
+
def write_to_bitcode(self) -> str:
|
|
268
|
+
"""Write a Faust DSP factory into a bitcode string."""
|
|
269
|
+
return fi.writeInterpreterDSPFactoryToBitcode(self.ptr).decode()
|
|
270
|
+
|
|
271
|
+
def write_to_bitcode_file(self, bit_code_path: str) -> bool:
|
|
272
|
+
"""Write a Faust DSP factory into a bitcode file."""
|
|
273
|
+
return fi.writeInterpreterDSPFactoryToBitcodeFile(
|
|
274
|
+
self.ptr, bit_code_path.encode('utf8'))
|
|
275
|
+
|
|
276
|
+
@staticmethod
|
|
277
|
+
cdef InterpreterDspFactory from_ptr(fi.interpreter_dsp_factory* ptr, bint owner=False):
|
|
278
|
+
"""Wrap external factory from pointer"""
|
|
279
|
+
cdef InterpreterDspFactory factory = InterpreterDspFactory.__new__(
|
|
280
|
+
InterpreterDspFactory)
|
|
281
|
+
factory.ptr = ptr
|
|
282
|
+
factory.owner = owner
|
|
283
|
+
return factory
|
|
284
|
+
|
|
285
|
+
@staticmethod
|
|
286
|
+
def from_sha_key(str sha_key) -> InterpreterDspFactory:
|
|
287
|
+
"""create an interpreter dsp factory from a sha key"""
|
|
288
|
+
cdef InterpreterDspFactory factory = InterpreterDspFactory.__new__(
|
|
289
|
+
InterpreterDspFactory)
|
|
290
|
+
factory.ptr_owner = True
|
|
291
|
+
factory.ptr = <fi.interpreter_dsp_factory*>fi.getInterpreterDSPFactoryFromSHAKey(
|
|
292
|
+
sha_key.encode())
|
|
293
|
+
return factory
|
|
294
|
+
|
|
295
|
+
@staticmethod
|
|
296
|
+
def from_file(str filepath, *args) -> InterpreterDspFactory:
|
|
297
|
+
"""create an interpreter dsp factory from a file"""
|
|
298
|
+
cdef string error_msg
|
|
299
|
+
error_msg.reserve(4096)
|
|
300
|
+
cdef InterpreterDspFactory factory = InterpreterDspFactory.__new__(
|
|
301
|
+
InterpreterDspFactory)
|
|
302
|
+
cdef ParamArray params = ParamArray(args)
|
|
303
|
+
factory.ptr_owner = True
|
|
304
|
+
factory.ptr = <fi.interpreter_dsp_factory*>fi.createInterpreterDSPFactoryFromFile(
|
|
305
|
+
filepath.encode('utf8'),
|
|
306
|
+
params.argc,
|
|
307
|
+
params.argv,
|
|
308
|
+
error_msg,
|
|
309
|
+
)
|
|
310
|
+
if not error_msg.empty():
|
|
311
|
+
print(error_msg.decode())
|
|
312
|
+
return
|
|
313
|
+
return factory
|
|
314
|
+
|
|
315
|
+
@staticmethod
|
|
316
|
+
def from_signals(str name_app, SignalVector signals, *args) -> InterpreterDspFactory:
|
|
317
|
+
"""Create a Faust DSP factory from a vector of output signals."""
|
|
318
|
+
cdef string error_msg
|
|
319
|
+
error_msg.reserve(4096)
|
|
320
|
+
cdef InterpreterDspFactory factory = InterpreterDspFactory.__new__(
|
|
321
|
+
InterpreterDspFactory)
|
|
322
|
+
cdef ParamArray params = ParamArray(args)
|
|
323
|
+
factory.ptr_owner = True
|
|
324
|
+
factory.ptr = <fi.interpreter_dsp_factory*>fi.createInterpreterDSPFactoryFromSignals(
|
|
325
|
+
name_app.encode('utf8'),
|
|
326
|
+
<fs.tvec>signals.ptr,
|
|
327
|
+
params.argc,
|
|
328
|
+
params.argv,
|
|
329
|
+
error_msg,
|
|
330
|
+
)
|
|
331
|
+
if not error_msg.empty():
|
|
332
|
+
print(error_msg.decode())
|
|
333
|
+
return
|
|
334
|
+
return factory
|
|
335
|
+
|
|
336
|
+
@staticmethod
|
|
337
|
+
def from_boxes(str name_app, Box box, *args) -> InterpreterDspFactory:
|
|
338
|
+
"""Create a Faust DSP factory from a box expression."""
|
|
339
|
+
cdef string error_msg
|
|
340
|
+
error_msg.reserve(4096)
|
|
341
|
+
cdef InterpreterDspFactory factory = InterpreterDspFactory.__new__(
|
|
342
|
+
InterpreterDspFactory)
|
|
343
|
+
cdef ParamArray params = ParamArray(args)
|
|
344
|
+
factory.ptr_owner = True
|
|
345
|
+
factory.ptr = <fi.interpreter_dsp_factory*>fi.createInterpreterDSPFactoryFromBoxes(
|
|
346
|
+
name_app.encode('utf8'),
|
|
347
|
+
box.ptr,
|
|
348
|
+
params.argc,
|
|
349
|
+
params.argv,
|
|
350
|
+
error_msg,
|
|
351
|
+
)
|
|
352
|
+
if not error_msg.empty():
|
|
353
|
+
print(error_msg.decode())
|
|
354
|
+
return
|
|
355
|
+
return factory
|
|
356
|
+
|
|
357
|
+
@staticmethod
|
|
358
|
+
def from_bitcode_file(str bit_code_path) -> InterpreterDspFactory:
|
|
359
|
+
"""Create a Faust DSP factory from a bitcode file."""
|
|
360
|
+
cdef string error_msg
|
|
361
|
+
error_msg.reserve(4096)
|
|
362
|
+
cdef InterpreterDspFactory factory = InterpreterDspFactory.__new__(
|
|
363
|
+
InterpreterDspFactory)
|
|
364
|
+
factory.ptr_owner = True
|
|
365
|
+
factory.ptr = <fi.interpreter_dsp_factory*>fi.readInterpreterDSPFactoryFromBitcodeFile(
|
|
366
|
+
bit_code_path.encode('utf8'),
|
|
367
|
+
error_msg,
|
|
368
|
+
)
|
|
369
|
+
if not error_msg.empty():
|
|
370
|
+
print(error_msg.decode())
|
|
371
|
+
return
|
|
372
|
+
return factory
|
|
373
|
+
|
|
374
|
+
@staticmethod
|
|
375
|
+
def from_string(str name_app, str code, *args) -> InterpreterDspFactory:
|
|
376
|
+
"""Create an interpreter dsp factory from a string"""
|
|
377
|
+
cdef string error_msg
|
|
378
|
+
error_msg.reserve(4096)
|
|
379
|
+
cdef InterpreterDspFactory factory = InterpreterDspFactory.__new__(
|
|
380
|
+
InterpreterDspFactory)
|
|
381
|
+
cdef ParamArray params = ParamArray(args)
|
|
382
|
+
factory.ptr_owner = True
|
|
383
|
+
factory.ptr = <fi.interpreter_dsp_factory*>fi.createInterpreterDSPFactoryFromString(
|
|
384
|
+
name_app.encode('utf8'),
|
|
385
|
+
code.encode('utf8'),
|
|
386
|
+
params.argc,
|
|
387
|
+
params.argv,
|
|
388
|
+
error_msg,
|
|
389
|
+
)
|
|
390
|
+
if not error_msg.empty():
|
|
391
|
+
print(error_msg.decode())
|
|
392
|
+
return
|
|
393
|
+
assert factory.ptr, "factory.ptr is NULL (should not be)"
|
|
394
|
+
return factory
|
|
395
|
+
|
|
396
|
+
@staticmethod
|
|
397
|
+
def from_bitcode(str bitcode) -> InterpreterDspFactory:
|
|
398
|
+
"""Create a Faust DSP factory from a bitcode string.
|
|
399
|
+
|
|
400
|
+
Note that the library keeps an internal cache of all allocated
|
|
401
|
+
factories so that the compilation of the same DSP code (that is
|
|
402
|
+
the same bitcode code string) will return the same
|
|
403
|
+
(reference counted) factory pointer.
|
|
404
|
+
|
|
405
|
+
bitcode - the bitcode string
|
|
406
|
+
error_msg - the error string to be filled
|
|
407
|
+
|
|
408
|
+
returns the DSP factory on success, otherwise a null pointer.
|
|
409
|
+
"""
|
|
410
|
+
cdef string error_msg
|
|
411
|
+
error_msg.reserve(4096)
|
|
412
|
+
cdef InterpreterDspFactory factory = InterpreterDspFactory.__new__(
|
|
413
|
+
InterpreterDspFactory)
|
|
414
|
+
factory.ptr_owner = True
|
|
415
|
+
factory.ptr = <fi.interpreter_dsp_factory*>fi.readInterpreterDSPFactoryFromBitcode(
|
|
416
|
+
bitcode.encode('utf8'),
|
|
417
|
+
error_msg,
|
|
418
|
+
)
|
|
419
|
+
if not error_msg.empty():
|
|
420
|
+
print(error_msg.decode())
|
|
421
|
+
return
|
|
422
|
+
assert factory.ptr, "factory pointer is NULL (should not be)"
|
|
423
|
+
return factory
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
cdef class MetaCollector:
|
|
427
|
+
"""Collects DSP metadata into a Python dictionary."""
|
|
428
|
+
cdef fg.MetaCollector* ptr
|
|
429
|
+
cdef bint ptr_owner
|
|
430
|
+
|
|
431
|
+
def __cinit__(self):
|
|
432
|
+
self.ptr = new fg.MetaCollector()
|
|
433
|
+
self.ptr_owner = True
|
|
434
|
+
|
|
435
|
+
def __dealloc__(self):
|
|
436
|
+
if self.ptr and self.ptr_owner:
|
|
437
|
+
del self.ptr
|
|
438
|
+
self.ptr = NULL
|
|
439
|
+
|
|
440
|
+
def get_metadata(self) -> dict:
|
|
441
|
+
"""Return collected metadata as a Python dictionary."""
|
|
442
|
+
cdef dict result = {}
|
|
443
|
+
cdef map[string, string] meta_map = self.ptr.getMeta()
|
|
444
|
+
cdef map[string, string].iterator it = meta_map.begin()
|
|
445
|
+
while it != meta_map.end():
|
|
446
|
+
result[deref(it).first.decode('utf8')] = deref(it).second.decode('utf8')
|
|
447
|
+
inc(it)
|
|
448
|
+
return result
|
|
449
|
+
|
|
450
|
+
|
|
451
|
+
cdef class InterpreterDsp:
|
|
452
|
+
"""DSP instance class with methods."""
|
|
453
|
+
|
|
454
|
+
cdef fi.interpreter_dsp* ptr
|
|
455
|
+
cdef bint ptr_owner
|
|
456
|
+
cdef fg.SoundUI* sound_ui
|
|
457
|
+
|
|
458
|
+
def __dealloc__(self):
|
|
459
|
+
if self.sound_ui:
|
|
460
|
+
del self.sound_ui
|
|
461
|
+
self.sound_ui = NULL
|
|
462
|
+
if self.ptr and self.ptr_owner:
|
|
463
|
+
del self.ptr
|
|
464
|
+
self.ptr = NULL
|
|
465
|
+
|
|
466
|
+
def __cinit__(self):
|
|
467
|
+
self.ptr = NULL
|
|
468
|
+
self.ptr_owner = False
|
|
469
|
+
self.sound_ui = NULL
|
|
470
|
+
|
|
471
|
+
def delete(self):
|
|
472
|
+
del self.ptr
|
|
473
|
+
|
|
474
|
+
@staticmethod
|
|
475
|
+
cdef InterpreterDsp from_ptr(fi.interpreter_dsp* ptr, bint owner=False):
|
|
476
|
+
"""Wrap the dsp instance and manage its lifetime."""
|
|
477
|
+
cdef InterpreterDsp dsp = InterpreterDsp.__new__(InterpreterDsp)
|
|
478
|
+
dsp.ptr_owner = owner
|
|
479
|
+
dsp.ptr = ptr
|
|
480
|
+
return dsp
|
|
481
|
+
|
|
482
|
+
def get_numinputs(self) -> int:
|
|
483
|
+
"""Return instance number of audio inputs."""
|
|
484
|
+
return self.ptr.getNumInputs()
|
|
485
|
+
|
|
486
|
+
def get_numoutputs(self) -> int:
|
|
487
|
+
"""Return instance number of audio outputs."""
|
|
488
|
+
return self.ptr.getNumOutputs()
|
|
489
|
+
|
|
490
|
+
def get_samplerate(self) -> int:
|
|
491
|
+
"""Return the sample rate currently used by the instance."""
|
|
492
|
+
return self.ptr.getSampleRate()
|
|
493
|
+
|
|
494
|
+
def init(self, int sample_rate):
|
|
495
|
+
"""Global init, calls static class init and instance init."""
|
|
496
|
+
self.ptr.init(sample_rate)
|
|
497
|
+
|
|
498
|
+
def instance_init(self, int sample_rate):
|
|
499
|
+
"""Init instance state."""
|
|
500
|
+
self.ptr.instanceInit(sample_rate)
|
|
501
|
+
|
|
502
|
+
def instance_constants(self, int sample_rate):
|
|
503
|
+
"""Init instance constant state."""
|
|
504
|
+
self.ptr.instanceConstants(sample_rate)
|
|
505
|
+
|
|
506
|
+
def instance_reset_user_interface(self):
|
|
507
|
+
"""Init default control parameters values."""
|
|
508
|
+
self.ptr.instanceResetUserInterface()
|
|
509
|
+
|
|
510
|
+
def instance_clear(self):
|
|
511
|
+
"""Init instance state but keep the control parameter values."""
|
|
512
|
+
self.ptr.instanceClear()
|
|
513
|
+
|
|
514
|
+
def clone(self) -> InterpreterDsp:
|
|
515
|
+
"""Return a clone of the instance."""
|
|
516
|
+
cdef fi.interpreter_dsp* dsp = self.ptr.clone()
|
|
517
|
+
return InterpreterDsp.from_ptr(dsp)
|
|
518
|
+
|
|
519
|
+
def build_user_interface(self, str sound_directory="", int sample_rate=-1):
|
|
520
|
+
"""Trigger the ui_interface parameter with instance specific calls
|
|
521
|
+
|
|
522
|
+
Calls are made to 'openTabBox', 'addButton',
|
|
523
|
+
'addVerticalSlider'... in order to build the UI.
|
|
524
|
+
|
|
525
|
+
This method also loads any soundfiles referenced in the DSP code.
|
|
526
|
+
|
|
527
|
+
Args:
|
|
528
|
+
sound_directory: Base directory for soundfile paths (default: current directory)
|
|
529
|
+
sample_rate: Sample rate for resampling soundfiles (-1 for no resampling)
|
|
530
|
+
"""
|
|
531
|
+
# Clean up previous SoundUI if it exists
|
|
532
|
+
if self.sound_ui:
|
|
533
|
+
del self.sound_ui
|
|
534
|
+
self.sound_ui = NULL
|
|
535
|
+
|
|
536
|
+
# Create SoundUI to handle soundfile loading
|
|
537
|
+
# Parameters: sound_directory, sample_rate, reader (NULL for default), is_double
|
|
538
|
+
self.sound_ui = new fg.SoundUI(
|
|
539
|
+
sound_directory.encode('utf8'),
|
|
540
|
+
sample_rate,
|
|
541
|
+
<fg.SoundfileReader*>NULL,
|
|
542
|
+
False # is_double=False for float audio
|
|
543
|
+
)
|
|
544
|
+
self.ptr.buildUserInterface(<fg.UI*>self.sound_ui)
|
|
545
|
+
|
|
546
|
+
def control(self):
|
|
547
|
+
"""Read all controllers (buttons, sliders, etc.), and update the DSP state.
|
|
548
|
+
|
|
549
|
+
This method updates the DSP state to be used by 'frame' or 'compute'.
|
|
550
|
+
Note: This method will only be functional with the -ec (--external-control) option.
|
|
551
|
+
"""
|
|
552
|
+
self.ptr.control()
|
|
553
|
+
|
|
554
|
+
def frame(self, float[::1] inputs not None, float[::1] outputs not None):
|
|
555
|
+
"""DSP instance computation to process one single frame.
|
|
556
|
+
|
|
557
|
+
Args:
|
|
558
|
+
inputs: input audio buffer as memoryview of floats
|
|
559
|
+
outputs: output audio buffer as memoryview of floats
|
|
560
|
+
|
|
561
|
+
Note: This method will only be functional with the -os (--one-sample) option.
|
|
562
|
+
"""
|
|
563
|
+
self.ptr.frame(&inputs[0], &outputs[0])
|
|
564
|
+
|
|
565
|
+
def compute(self, int count, float[:, ::1] inputs not None, float[:, ::1] outputs not None):
|
|
566
|
+
"""DSP instance computation with successive in/out audio buffers.
|
|
567
|
+
|
|
568
|
+
Args:
|
|
569
|
+
count: number of frames to compute
|
|
570
|
+
inputs: 2D input audio buffers as memoryview [channels, samples]
|
|
571
|
+
outputs: 2D output audio buffers as memoryview [channels, samples]
|
|
572
|
+
"""
|
|
573
|
+
cdef float** input_ptrs = <float**>malloc(inputs.shape[0] * sizeof(float*))
|
|
574
|
+
cdef float** output_ptrs = <float**>malloc(outputs.shape[0] * sizeof(float*))
|
|
575
|
+
|
|
576
|
+
try:
|
|
577
|
+
for i in range(inputs.shape[0]):
|
|
578
|
+
input_ptrs[i] = &inputs[i, 0]
|
|
579
|
+
for i in range(outputs.shape[0]):
|
|
580
|
+
output_ptrs[i] = &outputs[i, 0]
|
|
581
|
+
|
|
582
|
+
self.ptr.compute(count, input_ptrs, output_ptrs)
|
|
583
|
+
finally:
|
|
584
|
+
free(input_ptrs)
|
|
585
|
+
free(output_ptrs)
|
|
586
|
+
|
|
587
|
+
def compute_timestamped(self, double date_usec, int count, float[:, ::1] inputs not None, float[:, ::1] outputs not None):
|
|
588
|
+
"""DSP instance computation with timestamp for sample-accurate timing.
|
|
589
|
+
|
|
590
|
+
The timestamp parameter is provided for API compatibility with compiled DSP
|
|
591
|
+
backends that support sample-accurate scheduling. The interpreter backend
|
|
592
|
+
currently processes the audio immediately and the timestamp is stored for
|
|
593
|
+
potential future use.
|
|
594
|
+
|
|
595
|
+
Args:
|
|
596
|
+
date_usec: timestamp in microseconds (stored but not used by interpreter)
|
|
597
|
+
count: number of frames to compute
|
|
598
|
+
inputs: 2D input audio buffers as memoryview [channels, samples]
|
|
599
|
+
outputs: 2D output audio buffers as memoryview [channels, samples]
|
|
600
|
+
"""
|
|
601
|
+
# Note: The interpreter backend doesn't currently support timestamped
|
|
602
|
+
# scheduling - it delegates to the standard compute method.
|
|
603
|
+
# The timestamp is accepted for API compatibility.
|
|
604
|
+
cdef float** input_ptrs = <float**>malloc(inputs.shape[0] * sizeof(float*))
|
|
605
|
+
cdef float** output_ptrs = <float**>malloc(outputs.shape[0] * sizeof(float*))
|
|
606
|
+
|
|
607
|
+
try:
|
|
608
|
+
for i in range(inputs.shape[0]):
|
|
609
|
+
input_ptrs[i] = &inputs[i, 0]
|
|
610
|
+
for i in range(outputs.shape[0]):
|
|
611
|
+
output_ptrs[i] = &outputs[i, 0]
|
|
612
|
+
|
|
613
|
+
# Call the standard compute - timestamp is for API compatibility
|
|
614
|
+
self.ptr.compute(count, input_ptrs, output_ptrs)
|
|
615
|
+
finally:
|
|
616
|
+
free(input_ptrs)
|
|
617
|
+
free(output_ptrs)
|
|
618
|
+
|
|
619
|
+
def metadata(self) -> dict:
|
|
620
|
+
"""Get DSP metadata as a dictionary.
|
|
621
|
+
|
|
622
|
+
Returns:
|
|
623
|
+
dict: Dictionary of metadata key-value pairs (e.g., name, author, version, etc.)
|
|
624
|
+
"""
|
|
625
|
+
cdef MetaCollector collector = MetaCollector()
|
|
626
|
+
self.ptr.metadata(<fg.Meta*>collector.ptr)
|
|
627
|
+
return collector.get_metadata()
|
|
628
|
+
|
|
629
|
+
|
|
630
|
+
def get_dsp_factory_from_sha_key(str sha_key) -> InterpreterDspFactory:
|
|
631
|
+
"""Get the Faust DSP factory associated with a given SHA key."""
|
|
632
|
+
return InterpreterDspFactory.from_sha_key(sha_key)
|
|
633
|
+
|
|
634
|
+
def create_dsp_factory_from_file(filename: str, *args) -> InterpreterDspFactory:
|
|
635
|
+
"""Create a Faust DSP factory from a DSP source code as a file."""
|
|
636
|
+
return InterpreterDspFactory.from_file(filename, *args)
|
|
637
|
+
|
|
638
|
+
def create_dsp_factory_from_string(name_app: str, code: str, *args) -> InterpreterDspFactory:
|
|
639
|
+
"""Create a Faust DSP factory from a DSP source code as a string."""
|
|
640
|
+
return InterpreterDspFactory.from_string(name_app, code, *args)
|
|
641
|
+
|
|
642
|
+
def create_dsp_factory_from_signals(str name_app, SignalVector signals, *args) -> InterpreterDspFactory:
|
|
643
|
+
"""Create a Faust DSP factory from a vector of output signals."""
|
|
644
|
+
return InterpreterDspFactory.from_signals(name_app, signals, *args)
|
|
645
|
+
|
|
646
|
+
def create_dsp_factory_from_boxes(str name_app, Box box, *args) -> InterpreterDspFactory:
|
|
647
|
+
"""Create a Faust DSP factory from boxes."""
|
|
648
|
+
return InterpreterDspFactory.from_boxes(name_app, box, *args)
|
|
649
|
+
|
|
650
|
+
def delete_all_dsp_factories():
|
|
651
|
+
"""Delete all Faust DSP factories kept in the library cache."""
|
|
652
|
+
fi.deleteAllInterpreterDSPFactories()
|
|
653
|
+
|
|
654
|
+
def get_all_dsp_factories():
|
|
655
|
+
"""Return Faust DSP factories of the library cache as a vector of their SHA keys."""
|
|
656
|
+
return [key.decode() for key in fi.getAllInterpreterDSPFactories()]
|
|
657
|
+
|
|
658
|
+
def start_multithreaded_access_mode() -> bool:
|
|
659
|
+
"""Start multi-thread access mode."""
|
|
660
|
+
return fi.startMTDSPFactories()
|
|
661
|
+
|
|
662
|
+
def stop_multithreaded_access_mode():
|
|
663
|
+
"""Stop multi-thread access mode."""
|
|
664
|
+
fi.stopMTDSPFactories()
|
|
665
|
+
|
|
666
|
+
def read_dsp_factory_from_bitcode(str bitcode) -> InterpreterDspFactory:
|
|
667
|
+
"""Create a Faust DSP factory from a bitcode string."""
|
|
668
|
+
return InterpreterDspFactory.from_bitcode(bitcode)
|
|
669
|
+
|
|
670
|
+
def read_dsp_factory_from_bitcode_file(str bitcode_path) -> InterpreterDspFactory:
|
|
671
|
+
"""Create a Faust DSP factory from a bitcode file."""
|
|
672
|
+
return InterpreterDspFactory.from_bitcode_file(bitcode_path)
|
|
673
|
+
|