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,114 @@
|
|
|
1
|
+
declare name "saxophony";
|
|
2
|
+
declare description "Nonlinear WaveGuide Saxophone";
|
|
3
|
+
declare author "Romain Michon";
|
|
4
|
+
declare copyright "Romain Michon (rmichon@ccrma.stanford.edu)";
|
|
5
|
+
declare version "1.0";
|
|
6
|
+
declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license);
|
|
7
|
+
declare description "This class implements a hybrid digital waveguide instrument that can generate a variety of wind-like sounds. It has also been referred to as the blowed string model. The waveguide section is essentially that of a string, with one rigid and one lossy termination. The non-linear function is a reed table. The string can be blown at any point between the terminations, though just as with strings, it is impossible to excite the system at either end. If the excitation is placed at the string mid-point, the sound is that of a clarinet. At points closer to the bridge, the sound is closer to that of a saxophone. See Scavone (2002) for more details.";
|
|
8
|
+
declare reference "https://ccrma.stanford.edu/~jos/pasp/Woodwinds.html";
|
|
9
|
+
|
|
10
|
+
import("instruments.lib");
|
|
11
|
+
|
|
12
|
+
//==================== GUI SPECIFICATION ================
|
|
13
|
+
|
|
14
|
+
freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1);
|
|
15
|
+
gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",1,0,1,0.01);
|
|
16
|
+
gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]");
|
|
17
|
+
|
|
18
|
+
pressure = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Pressure
|
|
19
|
+
[2][tooltip:Breath pressure (a value between 0 and 1)]",1,0,1,0.01);
|
|
20
|
+
reedStiffness = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Reed_Stiffness
|
|
21
|
+
[2][tooltip:A value between 0 and 1]",0.3,0,1,0.01);
|
|
22
|
+
blowPosition = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Blow_Position
|
|
23
|
+
[2][tooltip:A value between 0 and 1]",0.5,0,1,0.01);
|
|
24
|
+
noiseGain = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Noise_Gain",0.05,0,1,0.01);
|
|
25
|
+
|
|
26
|
+
typeModulation = nentry("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Type
|
|
27
|
+
[3][tooltip: 0=theta is modulated by the incoming signal; 1=theta is modulated by the averaged incoming signal;
|
|
28
|
+
2=theta is modulated by the squared incoming signal; 3=theta is modulated by a sine wave of frequency freqMod;
|
|
29
|
+
4=theta is modulated by a sine wave of frequency freq;]",0,0,4,1);
|
|
30
|
+
nonLinearity = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity
|
|
31
|
+
[3][tooltip:Nonlinearity factor (value between 0 and 1)]",0,0,1,0.01);
|
|
32
|
+
frequencyMod = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Frequency
|
|
33
|
+
[3][unit:Hz][tooltip:Frequency of the sine wave for the modulation of theta (works if Modulation Type=3)]",220,20,1000,0.1);
|
|
34
|
+
nonLinAttack = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity_Attack
|
|
35
|
+
[3][unit:s][Attack duration of the nonlinearity]",0.1,0,2,0.01);
|
|
36
|
+
|
|
37
|
+
vibratoFreq = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Freq
|
|
38
|
+
[4][unit:Hz]",6,1,15,0.1);
|
|
39
|
+
vibratoGain = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Gain
|
|
40
|
+
[4][tooltip:A value between 0 and 1]",0.1,0,1,0.01);
|
|
41
|
+
vibratoBegin = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Begin
|
|
42
|
+
[4][unit:s][tooltip:Vibrato silence duration before attack]",0.05,0,2,0.01);
|
|
43
|
+
vibratoAttack = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Attack
|
|
44
|
+
[4][unit:s][tooltip:Vibrato attack duration]",0.3,0,2,0.01);
|
|
45
|
+
vibratoRelease = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Release
|
|
46
|
+
[4][unit:s][tooltip:Vibrato release duration]",0.1,0,2,0.01);
|
|
47
|
+
|
|
48
|
+
envelopeAttack = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Attack
|
|
49
|
+
[5][unit:s][tooltip:Envelope attack duration]",0.05,0,2,0.01);
|
|
50
|
+
envelopeRelease = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Envelope_Release
|
|
51
|
+
[5][unit:s][tooltip:Envelope release duration]",0.01,0,2,0.01);
|
|
52
|
+
|
|
53
|
+
//==================== SIGNAL PROCESSING ================
|
|
54
|
+
|
|
55
|
+
//----------------------- Nonlinear filter ----------------------------
|
|
56
|
+
//nonlinearities are created by the nonlinear passive allpass ladder filter declared in miscfilter.lib
|
|
57
|
+
|
|
58
|
+
//nonlinear filter order
|
|
59
|
+
nlfOrder = 6;
|
|
60
|
+
|
|
61
|
+
//attack - sustain - release envelope for nonlinearity (declared in instruments.lib)
|
|
62
|
+
envelopeMod = en.asr(nonLinAttack,1,envelopeRelease,gate);
|
|
63
|
+
|
|
64
|
+
//nonLinearModultor is declared in instruments.lib, it adapts allpassnn from miscfilter.lib
|
|
65
|
+
//for using it with waveguide instruments
|
|
66
|
+
NLFM = nonLinearModulator((nonLinearity : si.smoo),envelopeMod,freq,
|
|
67
|
+
typeModulation,(frequencyMod : si.smoo),nlfOrder);
|
|
68
|
+
|
|
69
|
+
//----------------------- Synthesis parameters computing and functions declaration ----------------------------
|
|
70
|
+
|
|
71
|
+
//stereoizer is declared in instruments.lib and implement a stereo spacialisation in function of
|
|
72
|
+
//the frequency period in number of samples
|
|
73
|
+
stereo = stereoizer(ma.SR/freq);
|
|
74
|
+
|
|
75
|
+
//reed table parameters
|
|
76
|
+
reedTableOffset = 0.7;
|
|
77
|
+
reedTableSlope = 0.1 + (0.4*reedStiffness);
|
|
78
|
+
|
|
79
|
+
//the reed function is declared in instruments.lib
|
|
80
|
+
reedTable = reed(reedTableOffset,reedTableSlope);
|
|
81
|
+
|
|
82
|
+
//Delay lines length in number of samples
|
|
83
|
+
fdel1 = (1-blowPosition) * (ma.SR/freq - 3);
|
|
84
|
+
fdel2 = (ma.SR/freq - 3)*blowPosition +1 ;
|
|
85
|
+
|
|
86
|
+
//Delay lines
|
|
87
|
+
delay1 = de.fdelay(4096,fdel1);
|
|
88
|
+
delay2 = de.fdelay(4096,fdel2);
|
|
89
|
+
|
|
90
|
+
//Breath pressure is controlled by an attack / sustain / release envelope (asr is declared in instruments.lib)
|
|
91
|
+
envelope = (0.55+pressure*0.3)*en.asr(pressure*envelopeAttack,1,pressure*envelopeRelease,gate);
|
|
92
|
+
breath = envelope + envelope*noiseGain*no.noise;
|
|
93
|
+
|
|
94
|
+
//envVibrato is decalred in instruments.lib
|
|
95
|
+
vibrato = vibratoGain*envVibrato(vibratoBegin,vibratoAttack,100,vibratoRelease,gate)*osc(vibratoFreq);
|
|
96
|
+
breathPressure = breath + breath*vibratoGain*os.osc(vibratoFreq);
|
|
97
|
+
|
|
98
|
+
//Body filter is a one zero filter (declared in instruments.lib)
|
|
99
|
+
bodyFilter = *(gain) : oneZero1(b0,b1)
|
|
100
|
+
with{
|
|
101
|
+
gain = -0.95;
|
|
102
|
+
b0 = 0.5;
|
|
103
|
+
b1 = 0.5;
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
instrumentBody(delay1FeedBack,breathP) = delay1FeedBack <: -(delay2) <:
|
|
107
|
+
((breathP - _ <: breathP - _*reedTable) - delay1FeedBack),_;
|
|
108
|
+
|
|
109
|
+
process =
|
|
110
|
+
(bodyFilter,breathPressure : instrumentBody) ~
|
|
111
|
+
(delay1 : NLFM) : !,
|
|
112
|
+
//Scaling Output and stereo
|
|
113
|
+
*(gain) : stereo : instrReverb;
|
|
114
|
+
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
declare name "Sitar";
|
|
2
|
+
declare description "WaveGuide Sitar";
|
|
3
|
+
declare author "Romain Michon (rmichon@ccrma.stanford.edu)";
|
|
4
|
+
declare copyright "Romain Michon";
|
|
5
|
+
declare version "1.0";
|
|
6
|
+
declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license);
|
|
7
|
+
declare description "This instrument implements a sitar plucked string physical model based on the Karplus-Strong algorithm using a randomly modulated delay line.";
|
|
8
|
+
|
|
9
|
+
import("instruments.lib");
|
|
10
|
+
|
|
11
|
+
//==================== GUI SPECIFICATION ================
|
|
12
|
+
|
|
13
|
+
freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1);
|
|
14
|
+
gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",1,0,1,0.01);
|
|
15
|
+
gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]");
|
|
16
|
+
|
|
17
|
+
resonance = hslider("v:Physical_Parameters/Resonance
|
|
18
|
+
[2][tooltip:A value between 0 and 1]",0.7,0,1,0.01)*0.1;
|
|
19
|
+
|
|
20
|
+
//==================== SIGNAL PROCESSING ================
|
|
21
|
+
|
|
22
|
+
//stereoizer is declared in instruments.lib and implement a stereo spacialisation in function of
|
|
23
|
+
//the frequency period in number of samples
|
|
24
|
+
stereo = stereoizer(ma.SR/freq);
|
|
25
|
+
|
|
26
|
+
//excitation envelope (adsr)
|
|
27
|
+
envelope = en.adsr(0.001,0.04,1,0.5,gate);
|
|
28
|
+
|
|
29
|
+
//the delay length is randomly modulated
|
|
30
|
+
targetDelay = ma.SR/freq;
|
|
31
|
+
delayLength = targetDelay*((1+(0.5*no.noise)) : si.smooth(0.9992));
|
|
32
|
+
delayLine = de.delay(4096,delayLength);
|
|
33
|
+
|
|
34
|
+
//the loop gain control the resonance duration
|
|
35
|
+
loopGain = 0.895 + resonance + (freq*0.0000005);
|
|
36
|
+
amGain = 0.1*gain;
|
|
37
|
+
|
|
38
|
+
//feedback filter is a one zero (declared in instruments.lib)
|
|
39
|
+
filter = oneZero1(b0,b1)
|
|
40
|
+
with{
|
|
41
|
+
zero = 0.01;
|
|
42
|
+
b0 = 1/(1 + zero);
|
|
43
|
+
b1 = -zero*b0;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
process = (*(loopGain) : filter + (envelope*no.noise*amGain))~delayLine : *(8) :
|
|
47
|
+
stereo : instrReverb;
|
|
48
|
+
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
declare name "tibetanBowl";
|
|
2
|
+
declare description "Banded Waveguide Modeld Tibetan Bowl";
|
|
3
|
+
declare author "Romain Michon";
|
|
4
|
+
declare copyright "Romain Michon (rmichon@ccrma.stanford.edu)";
|
|
5
|
+
declare version "1.0";
|
|
6
|
+
declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license);
|
|
7
|
+
declare description "This instrument uses banded waveguide. For more information, see Essl, G. and Cook, P. Banded Waveguides: Towards Physical Modelling of Bar Percussion Instruments, Proceedings of the 1999 International Computer Music Conference.";
|
|
8
|
+
|
|
9
|
+
import("instruments.lib");
|
|
10
|
+
|
|
11
|
+
//==================== GUI SPECIFICATION ================
|
|
12
|
+
|
|
13
|
+
freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1);
|
|
14
|
+
gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",0.8,0,1,0.01);
|
|
15
|
+
gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]");
|
|
16
|
+
|
|
17
|
+
select = nentry("h:Physical_and_Nonlinearity/v:Physical_Parameters/Excitation_Selector
|
|
18
|
+
[2][tooltip:0=Bow; 1=Strike]",0,0,1,1);
|
|
19
|
+
integrationConstant = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Integration_Constant
|
|
20
|
+
[2][tooltip:A value between 0 and 1]",0,0,1,0.01);
|
|
21
|
+
baseGain = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Base_Gain
|
|
22
|
+
[2][tooltip:A value between 0 and 1]",1,0,1,0.01);
|
|
23
|
+
bowPressure = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Bow_Pressure
|
|
24
|
+
[2][tooltip:Bow pressure on the instrument (Value between 0 and 1)]",0.2,0,1,0.01);
|
|
25
|
+
bowPosition = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Bow_Position
|
|
26
|
+
[2][tooltip:Bow position on the instrument (Value between 0 and 1)]",0,0,1,0.01);
|
|
27
|
+
|
|
28
|
+
typeModulation = nentry("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Type
|
|
29
|
+
[3][tooltip: 0=theta is modulated by the incoming signal; 1=theta is modulated by the averaged incoming signal;
|
|
30
|
+
2=theta is modulated by the squared incoming signal; 3=theta is modulated by a sine wave of frequency freqMod;
|
|
31
|
+
4=theta is modulated by a sine wave of frequency freq;]",0,0,4,1);
|
|
32
|
+
nonLinearity = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity
|
|
33
|
+
[3][tooltip:Nonlinearity factor (value between 0 and 1)]",0,0,1,0.01);
|
|
34
|
+
frequencyMod = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Frequency
|
|
35
|
+
[3][unit:Hz][tooltip:Frequency of the sine wave for the modulation of theta (works if Modulation Type=3)]",220,20,1000,0.1);
|
|
36
|
+
nonLinAttack = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity_Attack
|
|
37
|
+
[3][unit:s][Attack duration of the nonlinearity]",0.1,0,2,0.01);
|
|
38
|
+
|
|
39
|
+
//==================== MODAL PARAMETERS ================
|
|
40
|
+
|
|
41
|
+
preset = 0;
|
|
42
|
+
|
|
43
|
+
nMode(0) = 12;
|
|
44
|
+
|
|
45
|
+
modes(0,0) = 0.996108344;
|
|
46
|
+
basegains(0,0) = 0.999925960128219;
|
|
47
|
+
excitation(0,0) = 11.900357 / 10;
|
|
48
|
+
|
|
49
|
+
modes(0,1) = 1.0038916562;
|
|
50
|
+
basegains(0,1) = 0.999925960128219;
|
|
51
|
+
excitation(0,1) = 11.900357 / 10;
|
|
52
|
+
|
|
53
|
+
modes(0,2) = 2.979178;
|
|
54
|
+
basegains(0,2) = 0.999982774366897;
|
|
55
|
+
excitation(0,2) = 10.914886 / 10;
|
|
56
|
+
|
|
57
|
+
modes(0,3) = 2.99329767;
|
|
58
|
+
basegains(0,3) = 0.999982774366897;
|
|
59
|
+
excitation(0,3) = 10.914886 / 10;
|
|
60
|
+
|
|
61
|
+
modes(0,4) = 5.704452;
|
|
62
|
+
basegains(0,4) = 1.0;
|
|
63
|
+
excitation(0,4) = 42.995041 / 10;
|
|
64
|
+
|
|
65
|
+
modes(0,5) = 5.704452;
|
|
66
|
+
basegains(0,5) = 1.0;
|
|
67
|
+
excitation(0,5) = 42.995041 / 10;
|
|
68
|
+
|
|
69
|
+
modes(0,6) = 8.9982;
|
|
70
|
+
basegains(0,6) = 1.0;
|
|
71
|
+
excitation(0,6) = 40.063034 / 10;
|
|
72
|
+
|
|
73
|
+
modes(0,7) = 9.01549726;
|
|
74
|
+
basegains(0,7) = 1.0;
|
|
75
|
+
excitation(0,7) = 40.063034 / 10;
|
|
76
|
+
|
|
77
|
+
modes(0,8) = 12.83303;
|
|
78
|
+
basegains(0,8) = 0.999965497558225;
|
|
79
|
+
excitation(0,8) = 7.063034 / 10;
|
|
80
|
+
|
|
81
|
+
modes(0,9) = 12.807382;
|
|
82
|
+
basegains(0,9) = 0.999965497558225;
|
|
83
|
+
excitation(0,9) = 7.063034 / 10;
|
|
84
|
+
|
|
85
|
+
modes(0,10) = 17.2808219;
|
|
86
|
+
basegains(0,10) = 0.9999999999999999999965497558225;
|
|
87
|
+
excitation(0,10) = 57.063034 / 10;
|
|
88
|
+
|
|
89
|
+
modes(0,11) = 21.97602739726;
|
|
90
|
+
basegains(0,11) = 0.999999999999999965497558225;
|
|
91
|
+
excitation(0,11) = 57.063034 / 10;
|
|
92
|
+
|
|
93
|
+
//==================== SIGNAL PROCESSING ================
|
|
94
|
+
|
|
95
|
+
//----------------------- Nonlinear filter ----------------------------
|
|
96
|
+
//nonlinearities are created by the nonlinear passive allpass ladder filter declared in miscfilter.lib
|
|
97
|
+
|
|
98
|
+
//nonlinear filter order
|
|
99
|
+
nlfOrder = 6;
|
|
100
|
+
|
|
101
|
+
//nonLinearModultor is declared in instruments.lib, it adapts allpassnn from miscfilter.lib
|
|
102
|
+
//for using it with waveguide instruments
|
|
103
|
+
NLFM = nonLinearModulator((nonLinearity : si.smoo),1,freq,
|
|
104
|
+
typeModulation,(frequencyMod : si.smoo),nlfOrder);
|
|
105
|
+
|
|
106
|
+
//----------------------- Synthesis parameters computing and functions declaration ----------------------------
|
|
107
|
+
|
|
108
|
+
//the number of modes depends on the preset being used
|
|
109
|
+
nModes = nMode(preset);
|
|
110
|
+
|
|
111
|
+
//bow table parameters
|
|
112
|
+
tableOffset = 0;
|
|
113
|
+
tableSlope = 10 - (9*bowPressure);
|
|
114
|
+
|
|
115
|
+
delayLengthBase = ma.SR/freq;
|
|
116
|
+
|
|
117
|
+
//delay lengths in number of samples
|
|
118
|
+
delayLength(x) = delayLengthBase/modes(preset,x);
|
|
119
|
+
|
|
120
|
+
//delay lines
|
|
121
|
+
delayLine(x) = de.delay(4096,delayLength(x));
|
|
122
|
+
|
|
123
|
+
//Filter bank: bandpass filters (declared in instruments.lib)
|
|
124
|
+
radius = 1 - ma.PI*32/ma.SR;
|
|
125
|
+
bandPassFilter(x) = bandPass(freq*modes(preset,x),radius);
|
|
126
|
+
|
|
127
|
+
//Delay lines feedback for bow table lookup control
|
|
128
|
+
baseGainApp = 0.8999999999999999 + (0.1*baseGain);
|
|
129
|
+
velocityInputApp = integrationConstant;
|
|
130
|
+
velocityInput = velocityInputApp + _*baseGainApp,par(i,(nModes-1),(_*baseGainApp)) :> +;
|
|
131
|
+
|
|
132
|
+
//Bow velocity is controlled by an ADSR envelope
|
|
133
|
+
maxVelocity = 0.03 + 0.1*gain;
|
|
134
|
+
bowVelocity = maxVelocity*en.adsr(0.02,0.005,1,0.01,gate);
|
|
135
|
+
|
|
136
|
+
//stereoizer is declared in instruments.lib and implement a stereo spacialisation in function of
|
|
137
|
+
//the frequency period in number of samples
|
|
138
|
+
stereo = stereoizer(delayLengthBase);
|
|
139
|
+
|
|
140
|
+
//----------------------- Algorithm implementation ----------------------------
|
|
141
|
+
|
|
142
|
+
//Bow table lookup (bow is decalred in instruments.lib)
|
|
143
|
+
bowing = bowVelocity - velocityInput <: *(bow(tableOffset,tableSlope)) : /(nModes);
|
|
144
|
+
|
|
145
|
+
//One resonance
|
|
146
|
+
resonance(x) = + : + (excitation(preset,x)*select) : delayLine(x) : *(basegains(preset,x)) : bandPassFilter(x);
|
|
147
|
+
|
|
148
|
+
process =
|
|
149
|
+
//Bowed Excitation
|
|
150
|
+
(bowing*((select-1)*-1) <:
|
|
151
|
+
//nModes resonances with nModes feedbacks for bow table look-up
|
|
152
|
+
par(i,nModes,(resonance(i)~_)))~par(i,nModes,_) :> + :
|
|
153
|
+
//Signal Scaling and stereo
|
|
154
|
+
NLFM : stereo : instrReverb;
|
|
155
|
+
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
declare name "tunedBar";
|
|
2
|
+
declare description "Nonlinear Banded Waveguide Models";
|
|
3
|
+
declare author "Romain Michon";
|
|
4
|
+
declare copyright "Romain Michon (rmichon@ccrma.stanford.edu)";
|
|
5
|
+
declare version "1.0";
|
|
6
|
+
declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license);
|
|
7
|
+
declare description "This instrument uses banded waveguide. For more information, see Essl, G. and Cook, P. Banded Waveguides: Towards Physical Modelling of Bar Percussion Instruments, Proceedings of the 1999 International Computer Music Conference.";
|
|
8
|
+
|
|
9
|
+
import("instruments.lib");
|
|
10
|
+
|
|
11
|
+
//==================== GUI SPECIFICATION ================
|
|
12
|
+
|
|
13
|
+
freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1);
|
|
14
|
+
gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",0.8,0,1,0.01);
|
|
15
|
+
gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]");
|
|
16
|
+
|
|
17
|
+
select = nentry("h:Physical_and_Nonlinearity/v:Physical_Parameters/Excitation_Selector
|
|
18
|
+
[2][tooltip:0=Bow; 1=Strike]",0,0,1,1);
|
|
19
|
+
integrationConstant = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Integration_Constant
|
|
20
|
+
[2][tooltip:A value between 0 and 1]",0,0,1,0.01);
|
|
21
|
+
baseGain = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Base_Gain
|
|
22
|
+
[2][tooltip:A value between 0 and 1]",1,0,1,0.01);
|
|
23
|
+
bowPressure = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Bow_Pressure
|
|
24
|
+
[2][tooltip:Bow pressure on the instrument (Value between 0 and 1)]",0.2,0,1,0.01);
|
|
25
|
+
bowPosition = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Bow_Position
|
|
26
|
+
[2][tooltip:Bow position on the instrument (Value between 0 and 1)]",0,0,1,0.01);
|
|
27
|
+
|
|
28
|
+
typeModulation = nentry("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Type
|
|
29
|
+
[3][tooltip: 0=theta is modulated by the incoming signal; 1=theta is modulated by the averaged incoming signal;
|
|
30
|
+
2=theta is modulated by the squared incoming signal; 3=theta is modulated by a sine wave of frequency freqMod;
|
|
31
|
+
4=theta is modulated by a sine wave of frequency freq;]",0,0,4,1);
|
|
32
|
+
nonLinearity = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity
|
|
33
|
+
[3][tooltip:Nonlinearity factor (value between 0 and 1)]",0,0,1,0.01);
|
|
34
|
+
frequencyMod = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Modulation_Frequency
|
|
35
|
+
[3][unit:Hz][tooltip:Frequency of the sine wave for the modulation of theta (works if Modulation Type=3)]",220,20,1000,0.1);
|
|
36
|
+
nonLinAttack = hslider("h:Physical_and_Nonlinearity/v:Nonlinear_Filter_Parameters/Nonlinearity_Attack
|
|
37
|
+
[3][unit:s][Attack duration of the nonlinearity]",0.1,0,2,0.01);
|
|
38
|
+
|
|
39
|
+
//==================== MODAL PARAMETERS ================
|
|
40
|
+
|
|
41
|
+
preset = 2;
|
|
42
|
+
|
|
43
|
+
nMode(2) = 4;
|
|
44
|
+
|
|
45
|
+
modes(2,0) = 1;
|
|
46
|
+
basegains(2,0) = pow(0.999,1);
|
|
47
|
+
excitation(2,0) = 1*gain*gate/nMode(2);
|
|
48
|
+
|
|
49
|
+
modes(2,1) = 4.0198391420;
|
|
50
|
+
basegains(2,1) = pow(0.999,2);
|
|
51
|
+
excitation(2,1) = 1*gain*gate/nMode(2);
|
|
52
|
+
|
|
53
|
+
modes(2,2) = 10.7184986595;
|
|
54
|
+
basegains(2,2) = pow(0.999,3);
|
|
55
|
+
excitation(2,2) = 1*gain*gate/nMode(2);
|
|
56
|
+
|
|
57
|
+
modes(2,3) = 18.0697050938;
|
|
58
|
+
basegains(2,3) = pow(0.999,4);
|
|
59
|
+
excitation(2,3) = 1*gain*gate/nMode(2);
|
|
60
|
+
|
|
61
|
+
//==================== SIGNAL PROCESSING ================
|
|
62
|
+
|
|
63
|
+
//----------------------- Nonlinear filter ----------------------------
|
|
64
|
+
//nonlinearities are created by the nonlinear passive allpass ladder filter declared in miscfilter.lib
|
|
65
|
+
|
|
66
|
+
//nonlinear filter order
|
|
67
|
+
nlfOrder = 6;
|
|
68
|
+
|
|
69
|
+
//nonLinearModultor is declared in instruments.lib, it adapts allpassnn from miscfilter.lib
|
|
70
|
+
//for using it with waveguide instruments
|
|
71
|
+
NLFM = nonLinearModulator((nonLinearity : si.smoo),1,freq,
|
|
72
|
+
typeModulation,(frequencyMod : si.smoo),nlfOrder);
|
|
73
|
+
|
|
74
|
+
//----------------------- Synthesis parameters computing and functions declaration ----------------------------
|
|
75
|
+
|
|
76
|
+
//the number of modes depends on the preset being used
|
|
77
|
+
nModes = nMode(preset);
|
|
78
|
+
|
|
79
|
+
//bow table parameters
|
|
80
|
+
tableOffset = 0;
|
|
81
|
+
tableSlope = 10 - (9*bowPressure);
|
|
82
|
+
|
|
83
|
+
delayLengthBase = ma.SR/freq;
|
|
84
|
+
|
|
85
|
+
//delay lengths in number of samples
|
|
86
|
+
delayLength(x) = delayLengthBase/modes(preset,x);
|
|
87
|
+
|
|
88
|
+
//delay lines
|
|
89
|
+
delayLine(x) = de.delay(4096,delayLength(x));
|
|
90
|
+
|
|
91
|
+
//Filter bank: bandpass filters (declared in instruments.lib)
|
|
92
|
+
radius = 1 - ma.PI*32/ma.SR;
|
|
93
|
+
bandPassFilter(x) = bandPass(freq*modes(preset,x),radius);
|
|
94
|
+
|
|
95
|
+
//Delay lines feedback for bow table lookup control
|
|
96
|
+
baseGainApp = 0.8999999999999999 + (0.1*baseGain);
|
|
97
|
+
velocityInputApp = integrationConstant;
|
|
98
|
+
velocityInput = velocityInputApp + _*baseGainApp,par(i,(nModes-1),(_*baseGainApp)) :> +;
|
|
99
|
+
|
|
100
|
+
//Bow velocity is controlled by an ADSR envelope
|
|
101
|
+
maxVelocity = 0.03 + 0.1*gain;
|
|
102
|
+
bowVelocity = maxVelocity*en.adsr(0.02,0.005,0.9,0.01,gate);
|
|
103
|
+
|
|
104
|
+
//stereoizer is declared in instruments.lib and implement a stereo spacialisation in function of
|
|
105
|
+
//the frequency period in number of samples
|
|
106
|
+
stereo = stereoizer(delayLengthBase);
|
|
107
|
+
|
|
108
|
+
//----------------------- Algorithm implementation ----------------------------
|
|
109
|
+
|
|
110
|
+
//Bow table lookup (bow is decalred in instruments.lib)
|
|
111
|
+
bowing = bowVelocity - velocityInput <: *(bow(tableOffset,tableSlope)) : /(nModes);
|
|
112
|
+
|
|
113
|
+
//One resonance
|
|
114
|
+
resonance(x) = + : + (excitation(preset,x)*select) : delayLine(x) : *(basegains(preset,x)) : bandPassFilter(x);
|
|
115
|
+
|
|
116
|
+
process =
|
|
117
|
+
//Bowed Excitation
|
|
118
|
+
(bowing*((select-1)*-1) <:
|
|
119
|
+
//nModes resonances with nModes feedbacks for bow table look-up
|
|
120
|
+
par(i,nModes,(resonance(i)~_)))~par(i,nModes,_) :> + :
|
|
121
|
+
//Signal Scaling and stereo
|
|
122
|
+
*(4) : NLFM : stereo : instrReverb;
|
|
123
|
+
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
declare name "UniBar";
|
|
2
|
+
declare description "Nonlinear Banded Waveguide Models";
|
|
3
|
+
declare author "Romain Michon";
|
|
4
|
+
declare copyright "Romain Michon (rmichon@ccrma.stanford.edu)";
|
|
5
|
+
declare version "1.0";
|
|
6
|
+
declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license);
|
|
7
|
+
declare description "This instrument uses banded waveguide. For more information, see Essl, G. and Cook, P. Banded Waveguides: Towards Physical Modelling of Bar Percussion Instruments, Proceedings of the 1999 International Computer Music Conference.";
|
|
8
|
+
|
|
9
|
+
import("instruments.lib");
|
|
10
|
+
|
|
11
|
+
//==================== GUI SPECIFICATION ================
|
|
12
|
+
|
|
13
|
+
freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1);
|
|
14
|
+
gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",0.8,0,1,0.01);
|
|
15
|
+
gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]");
|
|
16
|
+
|
|
17
|
+
select = nentry("h:Physical_and_Nonlinearity/v:Physical_Parameters/Excitation_Selector
|
|
18
|
+
[2][tooltip:0=Bow; 1=Strike]",0,0,1,1);
|
|
19
|
+
integrationConstant = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Integration_Constant
|
|
20
|
+
[2][tooltip:A value between 0 and 1]",0,0,1,0.01);
|
|
21
|
+
baseGain = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Base_Gain
|
|
22
|
+
[2][tooltip:A value between 0 and 1]",1,0,1,0.01);
|
|
23
|
+
bowPressure = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Bow_Pressure
|
|
24
|
+
[2][tooltip:Bow pressure on the instrument (Value between 0 and 1)]",0.2,0,1,0.01);
|
|
25
|
+
bowPosition = hslider("h:Physical_and_Nonlinearity/v:Physical_Parameters/Bow_Position
|
|
26
|
+
[2][tooltip:Bow position on the instrument (Value between 0 and 1)]",0,0,1,0.01);
|
|
27
|
+
|
|
28
|
+
//==================== MODAL PARAMETERS ================
|
|
29
|
+
|
|
30
|
+
preset = 1;
|
|
31
|
+
|
|
32
|
+
nMode(1) = 4;
|
|
33
|
+
|
|
34
|
+
modes(1,0) = 1;
|
|
35
|
+
basegains(1,0) = pow(0.9,1);
|
|
36
|
+
excitation(1,0) = 1*gain/nMode(1);
|
|
37
|
+
|
|
38
|
+
modes(1,1) = 2.756;
|
|
39
|
+
basegains(1,1) = pow(0.9,2);
|
|
40
|
+
excitation(1,1) = 1*gain/nMode(1);
|
|
41
|
+
|
|
42
|
+
modes(1,2) = 5.404;
|
|
43
|
+
basegains(1,2) = pow(0.9,3);
|
|
44
|
+
excitation(1,2) = 1*gain/nMode(1);
|
|
45
|
+
|
|
46
|
+
modes(1,3) = 8.933;
|
|
47
|
+
basegains(1,3) = pow(0.9,4);
|
|
48
|
+
excitation(1,3) = 1*gain/nMode(1);
|
|
49
|
+
|
|
50
|
+
//==================== SIGNAL PROCESSING ================
|
|
51
|
+
|
|
52
|
+
//----------------------- Synthesis parameters computing and functions declaration ----------------------------
|
|
53
|
+
|
|
54
|
+
//the number of modes depends on the preset being used
|
|
55
|
+
nModes = nMode(preset);
|
|
56
|
+
|
|
57
|
+
//bow table parameters
|
|
58
|
+
tableOffset = 0;
|
|
59
|
+
tableSlope = 10 - (9*bowPressure);
|
|
60
|
+
|
|
61
|
+
delayLengthBase = ma.SR/freq;
|
|
62
|
+
|
|
63
|
+
//delay lengths in number of samples
|
|
64
|
+
delayLength(x) = delayLengthBase/modes(preset,x);
|
|
65
|
+
|
|
66
|
+
//delay lines
|
|
67
|
+
delayLine(x) = de.delay(4096,delayLength(x));
|
|
68
|
+
|
|
69
|
+
//Filter bank: bandpass filters (declared in instruments.lib)
|
|
70
|
+
radius = 1 - ma.PI*32/ma.SR;
|
|
71
|
+
bandPassFilter(x) = bandPass(freq*modes(preset,x),radius);
|
|
72
|
+
|
|
73
|
+
//Delay lines feedback for bow table lookup control
|
|
74
|
+
baseGainApp = 0.8999999999999999 + (0.1*baseGain);
|
|
75
|
+
velocityInputApp = integrationConstant;
|
|
76
|
+
velocityInput = velocityInputApp + _*baseGainApp,par(i,(nModes-1),(_*baseGainApp)) :> +;
|
|
77
|
+
|
|
78
|
+
//Bow velocity is controlled by an ADSR envelope
|
|
79
|
+
maxVelocity = 0.03 + 0.1*gain;
|
|
80
|
+
bowVelocity = maxVelocity*en.adsr(0.02,0.005,0.9,0.01,gate);
|
|
81
|
+
|
|
82
|
+
//stereoizer is declared in instruments.lib and implement a stereo spacialisation in function of
|
|
83
|
+
//the frequency period in number of samples
|
|
84
|
+
stereo = stereoizer(delayLengthBase);
|
|
85
|
+
|
|
86
|
+
//----------------------- Algorithm implementation ----------------------------
|
|
87
|
+
|
|
88
|
+
//Bow table lookup (bow is decalred in instruments.lib)
|
|
89
|
+
bowing = bowVelocity - velocityInput <: *(bow(tableOffset,tableSlope)) : /(nModes);
|
|
90
|
+
|
|
91
|
+
//One resonance
|
|
92
|
+
resonance(x) = + : + (excitation(preset,x)*select) : delayLine(x) : *(basegains(preset,x)) : bandPassFilter(x);
|
|
93
|
+
|
|
94
|
+
process =
|
|
95
|
+
//Bowed Excitation
|
|
96
|
+
(bowing*((select-1)*-1) <:
|
|
97
|
+
//nModes resonances with nModes feedbacks for bow table look-up
|
|
98
|
+
par(i,nModes,(resonance(i)~_)))~par(i,nModes,_) :> + :
|
|
99
|
+
//Signal Scaling and stereo
|
|
100
|
+
*(14) : stereo : instrReverb;
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
declare name "voiceForm";
|
|
2
|
+
declare description "Voice Formant Instrument";
|
|
3
|
+
declare author "Romain Michon (rmichon@ccrma.stanford.edu)";
|
|
4
|
+
declare copyright "Romain Michon";
|
|
5
|
+
declare version "1.0";
|
|
6
|
+
declare licence "STK-4.3"; // Synthesis Tool Kit 4.3 (MIT style license);
|
|
7
|
+
declare description "This instrument contains an excitation singing wavetable (looping wave with random and periodic vibrato, smoothing on frequency, etc.), excitation noise, and four sweepable complex resonances. Phoneme preset numbers: 0->eee (beet), 1->ihh (bit), 2->ehh (bet), 3->aaa (bat), 4->ahh (father), 5->aww (bought), 6->ohh (bone), 7->uhh (but), 8->uuu (foot), 9->ooo (boot), 10->rrr (bird), 11->lll (lull), 12->mmm (mom), 13->nnn (nun), 14->nng (sang), 15->ngg (bong), 16->fff, 17->sss, 18->thh, 19->shh, 20->xxx, 21->hee (beet), 22->hoo (boot), 23->hah (father), 24->bbb, 25->ddd, 26->jjj, 27->ggg, 28->vvv, 29->zzz, 30->thz, 31->zhh";
|
|
8
|
+
|
|
9
|
+
import("instruments.lib");
|
|
10
|
+
|
|
11
|
+
//==================== GUI SPECIFICATION ================
|
|
12
|
+
|
|
13
|
+
freq = nentry("h:Basic_Parameters/freq [1][unit:Hz] [tooltip:Tone frequency]",440,20,20000,1);
|
|
14
|
+
gain = nentry("h:Basic_Parameters/gain [1][tooltip:Gain (value between 0 and 1)]",1,0,1,0.01);
|
|
15
|
+
gate = button("h:Basic_Parameters/gate [1][tooltip:noteOn = 1, noteOff = 0]");
|
|
16
|
+
|
|
17
|
+
phoneme = hslider("v:Physical_Parameters/Phoneme
|
|
18
|
+
[2][tooltip:0->eee, 1->ihh, 2->ehh, 3->aaa, 4->ahh, 5->aww, 6->ohh, 7->uhh, 8->uuu, 9->ooo, 10->rrr, 11->lll, 12->mmm, 13->nnn, 14->nng, 15->ngg, 16->fff, 17->sss, 18->thh, 19->shh, 20->xxx, 21->hee, 22->hoo, 23->hah, 24->bbb, 25->ddd, 26->jjj, 27->ggg, 28->vvv, 29->zzz, 30->thz, 31->zhh]",4,0,31,1);
|
|
19
|
+
|
|
20
|
+
vibratoFreq = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Freq
|
|
21
|
+
[3][unit:Hz]",6,1,15,0.1);
|
|
22
|
+
vibratoGain = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Gain
|
|
23
|
+
[3][tooltip:A value between 0 and 1]",0.05,0,1,0.01);
|
|
24
|
+
vibratoBegin = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Begin
|
|
25
|
+
[3][unit:s][tooltip:Vibrato silence duration before attack]",0.05,0,2,0.01);
|
|
26
|
+
vibratoAttack = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Attack
|
|
27
|
+
[3][unit:s][tooltip:Vibrato attack duration]",0.5,0,2,0.01);
|
|
28
|
+
vibratoRelease = hslider("h:Envelopes_and_Vibrato/v:Vibrato_Parameters/Vibrato_Release
|
|
29
|
+
[3][unit:s][tooltip:Vibrato release duration]",0.1,0,2,0.01);
|
|
30
|
+
|
|
31
|
+
voicedEnvelopeAttack = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Voiced_Attack
|
|
32
|
+
[4][unit:s][tooltip:Voiced sounds attack duration]",0.01,0,2,0.01);
|
|
33
|
+
voicedEnvelopeRelease = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Voiced_Release
|
|
34
|
+
[4][unit:s][tooltip:Voiced sounds release duration]",0.01,0,2,0.01);
|
|
35
|
+
|
|
36
|
+
noiseEnvelopeAttack = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Noised_Attack
|
|
37
|
+
[4][unit:s][tooltip:Noised sounds attack duration]",0.001,0,2,0.001);
|
|
38
|
+
noiseEnvelopeRelease = hslider("h:Envelopes_and_Vibrato/v:Envelope_Parameters/Noised_Release
|
|
39
|
+
[4][unit:s][tooltip:Noised sounds release duration]",0.001,0,2,0.001);
|
|
40
|
+
|
|
41
|
+
//==================== SIGNAL PROCESSING ================
|
|
42
|
+
|
|
43
|
+
//----------------------- Synthesis parameters computing and functions declaration ----------------------------
|
|
44
|
+
|
|
45
|
+
//stereoizer is declared in instruments.lib and implement a stereo spacialisation in function of
|
|
46
|
+
//the frequency period in number of samples
|
|
47
|
+
stereo = stereoizer(ma.SR/freq);
|
|
48
|
+
|
|
49
|
+
//exitation filters (declared in instruments.lib)
|
|
50
|
+
onePoleFilter = onePole(b0,a1)
|
|
51
|
+
with{
|
|
52
|
+
pole = 0.97 - (gain*0.2);
|
|
53
|
+
b0 = 1 - pole;
|
|
54
|
+
a1 = -pole;
|
|
55
|
+
};
|
|
56
|
+
oneZeroFilter = oneZero1(b0,b1)
|
|
57
|
+
with{
|
|
58
|
+
zero = -0.9;
|
|
59
|
+
b0 = 1/(1 - zero);
|
|
60
|
+
b1 = -zero*b0;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
//implements a formant (resonance) which can be "swept" over time from one frequency setting to another
|
|
64
|
+
formSwep(frequency,radius,filterGain) = *(gain_) : bandPass(frequency_,radius)
|
|
65
|
+
with{
|
|
66
|
+
//filter's radius, gain and frequency are interpolated
|
|
67
|
+
radius_ = radius : si.smoo;
|
|
68
|
+
frequency_ = frequency : si.smoo;
|
|
69
|
+
gain_ = filterGain : si.smoo;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
//formants parameters are countained in a C++ file
|
|
73
|
+
phonemeGains = ffunction(float loadPhonemeGains(int,int), <phonemes.h>,"");
|
|
74
|
+
phonemeParameters = ffunction(float loadPhonemeParameters(int,int,int), <phonemes.h>,"");
|
|
75
|
+
|
|
76
|
+
//formants frequencies
|
|
77
|
+
ffreq0 = phonemeParameters(phoneme,0,0);
|
|
78
|
+
ffreq1 = phonemeParameters(phoneme,1,0);
|
|
79
|
+
ffreq2 = phonemeParameters(phoneme,2,0);
|
|
80
|
+
ffreq3 = phonemeParameters(phoneme,3,0);
|
|
81
|
+
|
|
82
|
+
//formants radius
|
|
83
|
+
frad0 = phonemeParameters(phoneme,0,1);
|
|
84
|
+
frad1 = phonemeParameters(phoneme,1,1);
|
|
85
|
+
frad2 = phonemeParameters(phoneme,2,1);
|
|
86
|
+
frad3 = phonemeParameters(phoneme,3,1);
|
|
87
|
+
|
|
88
|
+
//formants gains
|
|
89
|
+
fgain0 = phonemeParameters(phoneme,0,2) : pow(10,(_/20));
|
|
90
|
+
fgain1 = phonemeParameters(phoneme,1,2) : pow(10,(_/20));
|
|
91
|
+
fgain2 = phonemeParameters(phoneme,2,2) : pow(10,(_/20));
|
|
92
|
+
fgain3 = phonemeParameters(phoneme,3,2) : pow(10,(_/20));
|
|
93
|
+
|
|
94
|
+
//gain of the voiced part od the sound
|
|
95
|
+
voiceGain = phonemeGains(phoneme,0) : si.smoo;
|
|
96
|
+
|
|
97
|
+
//gain of the fricative part of the sound
|
|
98
|
+
noiseGain = phonemeGains(phoneme,1) : si.smoo;
|
|
99
|
+
|
|
100
|
+
//formants filters
|
|
101
|
+
filter0 = formSwep(ffreq0,frad0,fgain0);
|
|
102
|
+
filter1 = formSwep(ffreq1,frad1,fgain1);
|
|
103
|
+
filter2 = formSwep(ffreq2,frad2,fgain2);
|
|
104
|
+
filter3 = formSwep(ffreq3,frad3,fgain3);
|
|
105
|
+
|
|
106
|
+
//----------------------- Algorithm implementation ----------------------------
|
|
107
|
+
|
|
108
|
+
//envelopes (declared in instruments.lib) and vibrato
|
|
109
|
+
vibratoEnvelope = envVibrato(vibratoBegin,vibratoAttack,100,vibratoRelease,gate);
|
|
110
|
+
voicedEnvelope = en.asr(voicedEnvelopeAttack,1,voicedEnvelopeRelease,gate);
|
|
111
|
+
noiseEnvelope = en.asr(noiseEnvelopeAttack,1,noiseEnvelopeRelease,gate);
|
|
112
|
+
vibrato = os.osc(vibratoFreq)*vibratoGain*100*vibratoEnvelope;
|
|
113
|
+
|
|
114
|
+
//the voice source is generated by an impulse train
|
|
115
|
+
//(imptrain defined in oscillator.lib) that is lowpass filtered
|
|
116
|
+
voiced = os.imptrain(freq+vibrato) : fi.lowpass3e(3300) : *(voiceGain*voicedEnvelope);
|
|
117
|
+
|
|
118
|
+
//ficative sounds are produced by a noise generator
|
|
119
|
+
frica = no.noise*noiseEnvelope*noiseGain;
|
|
120
|
+
|
|
121
|
+
process = voiced : oneZeroFilter : onePoleFilter :
|
|
122
|
+
+(frica) <: filter0,filter1,filter2,filter3 :> + : stereo :
|
|
123
|
+
instrReverb;
|
|
124
|
+
|
|
125
|
+
|