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