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,688 @@
|
|
|
1
|
+
/************************** BEGIN OCVUI.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 _OCVUI_H
|
|
26
|
+
#define _OCVUI_H
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
*
|
|
30
|
+
* This architecture file allows the user to use the OpenCV library in order to perform
|
|
31
|
+
* image processing and use the result to control audio parameters.
|
|
32
|
+
*
|
|
33
|
+
* To use this mode, just add the option -ocv with your faust2jack tool.
|
|
34
|
+
*
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
#ifndef FAUSTFLOAT
|
|
38
|
+
#define FAUSTFLOAT float
|
|
39
|
+
#endif
|
|
40
|
+
|
|
41
|
+
// OpenCV includes
|
|
42
|
+
#include "opencv2/video/tracking.hpp"
|
|
43
|
+
#include "opencv2/imgproc/imgproc.hpp"
|
|
44
|
+
#include "opencv2/highgui/highgui.hpp"
|
|
45
|
+
|
|
46
|
+
// Basic includes
|
|
47
|
+
#include <iostream>
|
|
48
|
+
#include <ctype.h>
|
|
49
|
+
|
|
50
|
+
// std::thread
|
|
51
|
+
#include <pthread.h>
|
|
52
|
+
|
|
53
|
+
// OpenCV Main Loop Function Prototype
|
|
54
|
+
static void* ocvLoop(void*);
|
|
55
|
+
|
|
56
|
+
//******** OpenCV User Interface CLASS DEFINITION ********//
|
|
57
|
+
class OCVUI : public UI
|
|
58
|
+
{
|
|
59
|
+
|
|
60
|
+
public:
|
|
61
|
+
|
|
62
|
+
// STRUCTURES
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* \struct object
|
|
66
|
+
* \brief parameters of an object detected in the image
|
|
67
|
+
*
|
|
68
|
+
* An object is assimilated to a circle, and characterised by
|
|
69
|
+
* its color, its center, its area, and its radius.
|
|
70
|
+
*
|
|
71
|
+
*/
|
|
72
|
+
|
|
73
|
+
struct object
|
|
74
|
+
{
|
|
75
|
+
int color; /*!< Object's color */
|
|
76
|
+
float centerX; /*!< Object's center's abscissa */
|
|
77
|
+
float centerY; /*!< Object's center's ordinate */
|
|
78
|
+
float area; /*!< Object's area */
|
|
79
|
+
int radius; /*!< Object's radius */
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* \struct metadata
|
|
84
|
+
* \brief metadata for audio parameters
|
|
85
|
+
*
|
|
86
|
+
* OpenCV metadata specify which object's characteristics you
|
|
87
|
+
* want for an audio parameter.
|
|
88
|
+
*
|
|
89
|
+
*/
|
|
90
|
+
struct metadata
|
|
91
|
+
{
|
|
92
|
+
FAUSTFLOAT* zone; /*!< Audio parameter's address */
|
|
93
|
+
int color; /*!< Object's color */
|
|
94
|
+
std::string param; /*!< Object's parameter */
|
|
95
|
+
bool used; /*!< Bool variable */
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
// FUNCTIONS
|
|
99
|
+
|
|
100
|
+
//-- UI Functions Redefinition
|
|
101
|
+
// Functions inherited from the UI class
|
|
102
|
+
|
|
103
|
+
// Constructor
|
|
104
|
+
OCVUI() : objects_storage_(0), parameters_storage_(0), height_(0), width_(0){};
|
|
105
|
+
|
|
106
|
+
// Destructor
|
|
107
|
+
~OCVUI()
|
|
108
|
+
{
|
|
109
|
+
exit_ = true;
|
|
110
|
+
pthread_join(loop_, NULL);
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
// -- WIDGETS LAYOUTS
|
|
115
|
+
void openTabBox(const char* label){}
|
|
116
|
+
void openHorizontalBox(const char* label){}
|
|
117
|
+
void openVerticalBox(const char* label){}
|
|
118
|
+
void closeBox(){}
|
|
119
|
+
|
|
120
|
+
// -- ACTIVE WIDGETS
|
|
121
|
+
void addButton(const char* label, FAUSTFLOAT* zone){}
|
|
122
|
+
void addCheckButton(const char* label, FAUSTFLOAT* zone){}
|
|
123
|
+
void addVerticalSlider(const char* label, FAUSTFLOAT* zone, FAUSTFLOAT init, FAUSTFLOAT min,
|
|
124
|
+
FAUSTFLOAT max, FAUSTFLOAT step){}
|
|
125
|
+
void addHorizontalSlider(const char* label, FAUSTFLOAT* zone, FAUSTFLOAT init, FAUSTFLOAT min,
|
|
126
|
+
FAUSTFLOAT max, FAUSTFLOAT step){}
|
|
127
|
+
void addNumEntry(const char* label, FAUSTFLOAT* zone, FAUSTFLOAT init, FAUSTFLOAT min,
|
|
128
|
+
FAUSTFLOAT max, FAUSTFLOAT step){}
|
|
129
|
+
|
|
130
|
+
// -- PASSIVE WIDGETS
|
|
131
|
+
void addHorizontalBargraph(const char* label, FAUSTFLOAT* zone, FAUSTFLOAT min, FAUSTFLOAT max){}
|
|
132
|
+
void addVerticalBargraph(const char* label, FAUSTFLOAT* zone, FAUSTFLOAT min, FAUSTFLOAT max){}
|
|
133
|
+
|
|
134
|
+
// -- soundfiles
|
|
135
|
+
virtual void addSoundfile(const char* label, const char* filename, Soundfile** sf_zone) {}
|
|
136
|
+
|
|
137
|
+
// -- METADATA DECLARATION
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* \fn bool parser(std::string string2parse, metadata *pmeta)
|
|
141
|
+
* \brief Parsing Function
|
|
142
|
+
*
|
|
143
|
+
* \param string2parse A string to parse
|
|
144
|
+
* \param pmeta Pointer on a metadata structure
|
|
145
|
+
*
|
|
146
|
+
* This function parses the metadata string, and puts the parameters
|
|
147
|
+
* in a metadata structure.
|
|
148
|
+
*/
|
|
149
|
+
|
|
150
|
+
bool parser(const std::string& string2parse, metadata* pmeta)
|
|
151
|
+
{
|
|
152
|
+
int SPACE = 32; // Parameters separator
|
|
153
|
+
std::vector<std::string> parameters(0);
|
|
154
|
+
|
|
155
|
+
// String analysis
|
|
156
|
+
for (int i = 0 ; i < string2parse.size() ; i++)
|
|
157
|
+
{
|
|
158
|
+
if (string2parse[i] == SPACE)
|
|
159
|
+
{
|
|
160
|
+
std::string oneParameter= string2parse.substr(0, i);
|
|
161
|
+
parameters.push_back(oneParameter);
|
|
162
|
+
string2parse.erase(string2parse.begin(), string2parse.begin()+i+1);
|
|
163
|
+
i = 0;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
std::string lastParameter = string2parse;
|
|
167
|
+
|
|
168
|
+
parameters.push_back(lastParameter);
|
|
169
|
+
|
|
170
|
+
// Store Parameters in a Metadata Structure
|
|
171
|
+
|
|
172
|
+
// Parameters count must be 2
|
|
173
|
+
if (parameters.size() == 2)
|
|
174
|
+
{
|
|
175
|
+
/**
|
|
176
|
+
* \enum color
|
|
177
|
+
* \brief color indexes
|
|
178
|
+
*
|
|
179
|
+
* Colors are indexed
|
|
180
|
+
*/
|
|
181
|
+
|
|
182
|
+
if (parameters[0]=="red") /*!< red = 1 */
|
|
183
|
+
{
|
|
184
|
+
pmeta->color = 1;
|
|
185
|
+
}
|
|
186
|
+
else if (parameters[0]=="yellow") /*!< yellow = 2 */
|
|
187
|
+
{
|
|
188
|
+
pmeta->color = 2;
|
|
189
|
+
}
|
|
190
|
+
else if (parameters[0]=="green") /*!< green = 3 */
|
|
191
|
+
{
|
|
192
|
+
pmeta->color = 3;
|
|
193
|
+
}
|
|
194
|
+
else if (parameters[0]=="cyan") /*!< cyan = 4 */
|
|
195
|
+
{
|
|
196
|
+
pmeta->color = 4;
|
|
197
|
+
}
|
|
198
|
+
else if (parameters[0]=="blue") /*!< blue = 5 */
|
|
199
|
+
{
|
|
200
|
+
pmeta->color = 5;
|
|
201
|
+
}
|
|
202
|
+
else if (parameters[0]=="magenta") /*!< magenta = 6 */
|
|
203
|
+
{
|
|
204
|
+
pmeta->color = 6;
|
|
205
|
+
}
|
|
206
|
+
pmeta->param = parameters[1];
|
|
207
|
+
pmeta->used = false;
|
|
208
|
+
return true;
|
|
209
|
+
}
|
|
210
|
+
else
|
|
211
|
+
{
|
|
212
|
+
std::cout << "Wrong count of parameters. Please check if the OpenCV"
|
|
213
|
+
<< "metadata is correctly defined" << std::endl;
|
|
214
|
+
return false;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* \fn void declare(FAUSTFLOAT* zone, const char* key, const char* val)
|
|
219
|
+
* \brief metadata declaration
|
|
220
|
+
*
|
|
221
|
+
* \param zone audio parameter's address
|
|
222
|
+
* \param key metadata key/type (here, it must be ocv)
|
|
223
|
+
* \param val metadata value
|
|
224
|
+
*
|
|
225
|
+
* This function gives the metadata string, which will be analysed.
|
|
226
|
+
*/
|
|
227
|
+
void declare(FAUSTFLOAT* zone, const char* key, const char* val)
|
|
228
|
+
{
|
|
229
|
+
if (key == "ocv")
|
|
230
|
+
{
|
|
231
|
+
metadata newMeta;
|
|
232
|
+
bool string_parsed = false;
|
|
233
|
+
|
|
234
|
+
if (zone != 0)
|
|
235
|
+
{
|
|
236
|
+
newMeta.zone = zone;
|
|
237
|
+
}
|
|
238
|
+
string_parsed = parser(val, &newMeta);
|
|
239
|
+
|
|
240
|
+
if (string_parsed)
|
|
241
|
+
{
|
|
242
|
+
parameters_storage_.push_back(newMeta);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
// Image Processing Functions
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* \fn void contoursProcess(std::vector<std::vector<cv::Point>> contours, int color)
|
|
251
|
+
* \brief Contours processing
|
|
252
|
+
*
|
|
253
|
+
* \param contours contours of an object
|
|
254
|
+
* \param color color of this object
|
|
255
|
+
*
|
|
256
|
+
* This function approximates contours to rectangles,
|
|
257
|
+
* and stores the bigest one as a new object.
|
|
258
|
+
*/
|
|
259
|
+
|
|
260
|
+
void contoursProcess(std::vector<std::vector<cv::Point> > contours, int color)
|
|
261
|
+
{
|
|
262
|
+
int tempArea = 0;
|
|
263
|
+
cv::Rect myRect;
|
|
264
|
+
for (int j = 0; j<contours.size(); j++)
|
|
265
|
+
{
|
|
266
|
+
std::vector<std::vector<cv::Point> > contours_poly( contours.size() );
|
|
267
|
+
std::vector<cv::Rect> boundRect( contours.size() );
|
|
268
|
+
|
|
269
|
+
if (contours[j].size() > 40) // Do not take care about small
|
|
270
|
+
// contours
|
|
271
|
+
{
|
|
272
|
+
approxPolyDP( cv::Mat(contours[j]), contours_poly[j], 3, true );// Approximate contours to
|
|
273
|
+
// a polygone
|
|
274
|
+
boundRect[j] = cv::boundingRect( cv::Mat(contours_poly[j]) ); // Bound a contour in a
|
|
275
|
+
// rectangle
|
|
276
|
+
if ((int)boundRect[j].area()>tempArea)
|
|
277
|
+
{
|
|
278
|
+
tempArea=(int)boundRect[j].area();
|
|
279
|
+
myRect = boundRect[j];
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
if (tempArea != 0)
|
|
284
|
+
{
|
|
285
|
+
// Create a new object structure to store the object properties
|
|
286
|
+
object newObject;
|
|
287
|
+
newObject.color = color;
|
|
288
|
+
newObject.centerX = myRect.x+myRect.width/2;
|
|
289
|
+
newObject.centerY = myRect.y+myRect.height/2;
|
|
290
|
+
newObject.area = 1.5*(float)tempArea/(width_*height_);
|
|
291
|
+
newObject.radius= (int)MIN(myRect.width/2, myRect.height/2);
|
|
292
|
+
|
|
293
|
+
// Put the new object in the objects storage.
|
|
294
|
+
objects_storage_.push_back(newObject);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* \fn void erodeAndDilate(cv::Mat image)
|
|
299
|
+
* \brief Morphological Opening (Erosion and Dilatation)
|
|
300
|
+
*
|
|
301
|
+
* \param image mask produced with the "cv::inRange" function.
|
|
302
|
+
*
|
|
303
|
+
* This function improves a mask shape
|
|
304
|
+
* See OpenCV documentation for more informations :
|
|
305
|
+
* http://docs.opencv.org/doc/tutorials/imgproc/erosion_dilatation/erosion_dilatation.html
|
|
306
|
+
*/
|
|
307
|
+
|
|
308
|
+
void erodeAndDilate(cv::Mat image)
|
|
309
|
+
{
|
|
310
|
+
cv::Mat element;
|
|
311
|
+
element = cv::getStructuringElement(cv::MORPH_ELLIPSE, cv::Size(3, 3));
|
|
312
|
+
|
|
313
|
+
// Erase small alone pixels
|
|
314
|
+
// http://docs.opencv.org/modules/imgproc/doc/filtering.html#dilate
|
|
315
|
+
for (int i = 0; i < 2 ; i++)
|
|
316
|
+
{
|
|
317
|
+
cv::erode(image, image, element);
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
// Enlarge blocks of pixels
|
|
321
|
+
// http://docs.opencv.org/modules/imgproc/doc/filtering.html#erode
|
|
322
|
+
for (int i = 0; i < 10 ; i++)
|
|
323
|
+
{
|
|
324
|
+
cv::dilate(image, image, element);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* \fn void drawCircle(object my_object, cv::Mat my_image)
|
|
330
|
+
* \brief Draws circles around chosen objects
|
|
331
|
+
*
|
|
332
|
+
* \param my_object Detected and specified object
|
|
333
|
+
* \param my_image image on which to draw
|
|
334
|
+
*
|
|
335
|
+
* This function draws circles around the objects specified in the metadata
|
|
336
|
+
* declaration and detected in the image.
|
|
337
|
+
* Note that the circle color depends on the object color.
|
|
338
|
+
*/
|
|
339
|
+
|
|
340
|
+
void drawCircle(object my_object, cv::Mat my_image)
|
|
341
|
+
{
|
|
342
|
+
cv::Scalar bgr_color;
|
|
343
|
+
switch (my_object.color)
|
|
344
|
+
{
|
|
345
|
+
case 1: // RED
|
|
346
|
+
bgr_color = cv::Scalar (0,0,255);
|
|
347
|
+
|
|
348
|
+
break;
|
|
349
|
+
|
|
350
|
+
case 2: //YELLOW
|
|
351
|
+
bgr_color = cv::Scalar (0, 255, 255);
|
|
352
|
+
|
|
353
|
+
break;
|
|
354
|
+
|
|
355
|
+
case 3: // GREEN
|
|
356
|
+
bgr_color = cv::Scalar (0, 255, 0);
|
|
357
|
+
|
|
358
|
+
break;
|
|
359
|
+
case 4: // CYAN
|
|
360
|
+
bgr_color = cv::Scalar (255, 255, 0);
|
|
361
|
+
|
|
362
|
+
break;
|
|
363
|
+
|
|
364
|
+
case 5: // BLUE
|
|
365
|
+
bgr_color = cv::Scalar (255,0,0);
|
|
366
|
+
|
|
367
|
+
break;
|
|
368
|
+
|
|
369
|
+
case 6: // MAGENTA
|
|
370
|
+
bgr_color = cv::Scalar (255, 0, 255);
|
|
371
|
+
|
|
372
|
+
break;
|
|
373
|
+
|
|
374
|
+
default: // Add a color !
|
|
375
|
+
|
|
376
|
+
break;
|
|
377
|
+
}
|
|
378
|
+
// draw circle
|
|
379
|
+
cv::circle(my_image, cv::Point(my_object.centerX, my_object.centerY),
|
|
380
|
+
my_object.radius, bgr_color, 2, 8, 0);
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
/**
|
|
384
|
+
* \fn imageProcessing(cv::Mat BGRImage)
|
|
385
|
+
* \brief Image Processing function for objects detection
|
|
386
|
+
*
|
|
387
|
+
* \param BGRImage image in BGR color scale, from camera
|
|
388
|
+
*
|
|
389
|
+
* This function processes a BGR image.
|
|
390
|
+
* It converts it into an HSV image, opens it (erodes and dilates), extracts contours from image
|
|
391
|
+
* and extracts objects from contours. The objects are stored and circled.
|
|
392
|
+
*/
|
|
393
|
+
|
|
394
|
+
void imageProcessing(cv::Mat BGRImage)
|
|
395
|
+
{
|
|
396
|
+
height_ = BGRImage.rows;
|
|
397
|
+
width_ = BGRImage.cols;
|
|
398
|
+
|
|
399
|
+
cv::Mat HsvImage;
|
|
400
|
+
cv::cvtColor(BGRImage, HsvImage, CV_BGR2HSV); // Convert frame to HSV format
|
|
401
|
+
// in order to use "inRange"
|
|
402
|
+
|
|
403
|
+
// Mask matrices (red, yellow, green, cyan, blue and magenta)
|
|
404
|
+
cv::Mat r_mask, y_mask, g_mask, c_mask, b_mask, m_mask;
|
|
405
|
+
|
|
406
|
+
// Objects contours
|
|
407
|
+
std::vector<std::vector<cv::Point> > r_contours, y_contours, g_contours,
|
|
408
|
+
c_contours, b_contours, m_contours;
|
|
409
|
+
std::vector<cv::Vec4i> hierarchy;
|
|
410
|
+
|
|
411
|
+
// Get every pixel whose value is between _min and _max
|
|
412
|
+
// and put it into a mask
|
|
413
|
+
cv::inRange(BGRImage, red_min, red_max, r_mask);
|
|
414
|
+
cv::inRange(BGRImage, yellow_min, yellow_max, y_mask);
|
|
415
|
+
cv::inRange(BGRImage, green_min, green_max, g_mask);
|
|
416
|
+
cv::inRange(BGRImage, cyan_min, cyan_max, c_mask);
|
|
417
|
+
cv::inRange(BGRImage, blue_min, blue_max, b_mask);
|
|
418
|
+
cv::inRange(BGRImage, magenta_min, magenta_max, m_mask);
|
|
419
|
+
|
|
420
|
+
// Improve masks shapes
|
|
421
|
+
erodeAndDilate(r_mask);
|
|
422
|
+
erodeAndDilate(y_mask);
|
|
423
|
+
erodeAndDilate(g_mask);
|
|
424
|
+
erodeAndDilate(c_mask);
|
|
425
|
+
erodeAndDilate(b_mask);
|
|
426
|
+
erodeAndDilate(m_mask);
|
|
427
|
+
|
|
428
|
+
// Get the shapes contours from masks
|
|
429
|
+
cv::findContours(r_mask, r_contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0) );
|
|
430
|
+
cv::findContours(y_mask, y_contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0) );
|
|
431
|
+
cv::findContours(g_mask, g_contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0) );
|
|
432
|
+
cv::findContours(c_mask, c_contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0) );
|
|
433
|
+
cv::findContours(b_mask, b_contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0) );
|
|
434
|
+
cv::findContours(m_mask, m_contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0) );
|
|
435
|
+
|
|
436
|
+
// Process every contour. Note that color is taken in account.
|
|
437
|
+
for (int i = 1; i <= 6; i++)
|
|
438
|
+
{
|
|
439
|
+
switch (i)
|
|
440
|
+
{
|
|
441
|
+
case 1: // RED
|
|
442
|
+
contoursProcess(r_contours, 1);
|
|
443
|
+
|
|
444
|
+
break;
|
|
445
|
+
|
|
446
|
+
case 2: // YELLOW
|
|
447
|
+
contoursProcess(y_contours, 2);
|
|
448
|
+
|
|
449
|
+
break;
|
|
450
|
+
|
|
451
|
+
case 3: // GREEN
|
|
452
|
+
contoursProcess(g_contours, 3);
|
|
453
|
+
|
|
454
|
+
break;
|
|
455
|
+
|
|
456
|
+
case 4: // CYAN
|
|
457
|
+
contoursProcess(c_contours, 4);
|
|
458
|
+
|
|
459
|
+
break;
|
|
460
|
+
|
|
461
|
+
case 5: // BLUE
|
|
462
|
+
contoursProcess(b_contours, 5);
|
|
463
|
+
|
|
464
|
+
break;
|
|
465
|
+
|
|
466
|
+
case 6: // MAGENTA
|
|
467
|
+
contoursProcess(m_contours, 6);
|
|
468
|
+
|
|
469
|
+
break;
|
|
470
|
+
|
|
471
|
+
default: // You'll have to add a new color...
|
|
472
|
+
break;
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
// Audio parameters setting
|
|
477
|
+
for (int i = 0; i<objects_storage_.size(); i++)
|
|
478
|
+
{
|
|
479
|
+
for (int j = 0; j < parameters_storage_.size(); j++)
|
|
480
|
+
{
|
|
481
|
+
if (objects_storage_[i].color == parameters_storage_[j].color
|
|
482
|
+
&& !parameters_storage_[j].used)
|
|
483
|
+
{
|
|
484
|
+
if (parameters_storage_[j].param=="color")
|
|
485
|
+
{
|
|
486
|
+
*parameters_storage_[j].zone=(float)objects_storage_[i].color;
|
|
487
|
+
}
|
|
488
|
+
else if (parameters_storage_[j].param=="x")
|
|
489
|
+
{
|
|
490
|
+
*parameters_storage_[j].zone=objects_storage_[i].centerX/width_;
|
|
491
|
+
}
|
|
492
|
+
else if (parameters_storage_[j].param=="y")
|
|
493
|
+
{
|
|
494
|
+
*parameters_storage_[j].zone=1-(objects_storage_[i].centerY/height_);
|
|
495
|
+
}
|
|
496
|
+
else if (parameters_storage_[j].param=="area")
|
|
497
|
+
{
|
|
498
|
+
*parameters_storage_[j].zone=(float)objects_storage_[i].area;
|
|
499
|
+
}
|
|
500
|
+
parameters_storage_[j].used=true;
|
|
501
|
+
|
|
502
|
+
drawCircle(objects_storage_[i], BGRImage);
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
/**
|
|
509
|
+
* \fn void empty()
|
|
510
|
+
* \brief Empties the object's storage
|
|
511
|
+
*
|
|
512
|
+
* This function empties the object's storage, and resets the parameters storage
|
|
513
|
+
*/
|
|
514
|
+
|
|
515
|
+
void empty()
|
|
516
|
+
{
|
|
517
|
+
while (objects_storage_.size() > 0)
|
|
518
|
+
{
|
|
519
|
+
objects_storage_.pop_back();
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
for (int l = 0; l<parameters_storage_.size(); l++)
|
|
523
|
+
{
|
|
524
|
+
parameters_storage_[l].used=false;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
/**
|
|
529
|
+
* \fn bool exit()
|
|
530
|
+
* \brief Return the exit member parameter.
|
|
531
|
+
*/
|
|
532
|
+
bool exit()
|
|
533
|
+
{
|
|
534
|
+
return exit_;
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
/**
|
|
538
|
+
* \fn void exitThread()
|
|
539
|
+
* \brief Exit from thread
|
|
540
|
+
*
|
|
541
|
+
* \param This function exits from thread
|
|
542
|
+
*/
|
|
543
|
+
void exitThread()
|
|
544
|
+
{
|
|
545
|
+
pthread_exit(NULL);
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
/**
|
|
549
|
+
* \fn void run()
|
|
550
|
+
* \brief Creates and runs the thread
|
|
551
|
+
*
|
|
552
|
+
* This function creates the image processing thread
|
|
553
|
+
*/
|
|
554
|
+
bool run()
|
|
555
|
+
{
|
|
556
|
+
exit_ = false;
|
|
557
|
+
if (pthread_create(&loop_, NULL, ocvLoop, (void *)this) == 0) {
|
|
558
|
+
return true;
|
|
559
|
+
} else {
|
|
560
|
+
std::cerr <<"Could not create thread. Thread Creation failed." << std::endl;
|
|
561
|
+
return false;
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
////////////////////////////////////////////
|
|
566
|
+
//// ////
|
|
567
|
+
//// MEMBER VARIABLES ////
|
|
568
|
+
//// ////
|
|
569
|
+
////////////////////////////////////////////
|
|
570
|
+
|
|
571
|
+
private:
|
|
572
|
+
|
|
573
|
+
// HSV min and max values variables
|
|
574
|
+
// #1 : RED
|
|
575
|
+
static cv::Scalar red_min;
|
|
576
|
+
static cv::Scalar red_max;
|
|
577
|
+
|
|
578
|
+
// #2 : YELLOW
|
|
579
|
+
static cv::Scalar yellow_min;
|
|
580
|
+
static cv::Scalar yellow_max;
|
|
581
|
+
|
|
582
|
+
// #3 : GREEN
|
|
583
|
+
static cv::Scalar green_min;
|
|
584
|
+
static cv::Scalar green_max;
|
|
585
|
+
|
|
586
|
+
// #4 : CYAN
|
|
587
|
+
static cv::Scalar cyan_min;
|
|
588
|
+
static cv::Scalar cyan_max;
|
|
589
|
+
|
|
590
|
+
// #5 : BLUE
|
|
591
|
+
static cv::Scalar blue_min;
|
|
592
|
+
static cv::Scalar blue_max;
|
|
593
|
+
|
|
594
|
+
// #6 : MAGENTA
|
|
595
|
+
static cv::Scalar magenta_min;
|
|
596
|
+
static cv::Scalar magenta_max;
|
|
597
|
+
|
|
598
|
+
// Objects Storage
|
|
599
|
+
// Where all the objects are stored
|
|
600
|
+
std::vector<object> objects_storage_;
|
|
601
|
+
|
|
602
|
+
// Parameters Storage
|
|
603
|
+
// Where all the "ocv" metadata parameters are stored
|
|
604
|
+
std::vector<metadata> parameters_storage_;
|
|
605
|
+
|
|
606
|
+
// Matrix height and width
|
|
607
|
+
int height_, width_;
|
|
608
|
+
|
|
609
|
+
// Loop thread;
|
|
610
|
+
pthread_t loop_;
|
|
611
|
+
|
|
612
|
+
// Thread EXIT variable
|
|
613
|
+
bool exit_;
|
|
614
|
+
};
|
|
615
|
+
|
|
616
|
+
// HSV min and max values
|
|
617
|
+
// Note that H is between 0 and 180
|
|
618
|
+
// in openCV
|
|
619
|
+
|
|
620
|
+
// #1 = RED
|
|
621
|
+
cv::Scalar OCVUI::red_min = cv::Scalar(0,200,55);
|
|
622
|
+
cv::Scalar OCVUI::red_max = cv::Scalar(1,255,255);
|
|
623
|
+
|
|
624
|
+
// #2 = YELLOW
|
|
625
|
+
cv::Scalar OCVUI::yellow_min = cv::Scalar(25, 200, 55);
|
|
626
|
+
cv::Scalar OCVUI::yellow_max = cv::Scalar(35, 255, 255);
|
|
627
|
+
|
|
628
|
+
// #3 = GREEN
|
|
629
|
+
cv::Scalar OCVUI::green_min = cv::Scalar(20,155,55);
|
|
630
|
+
cv::Scalar OCVUI::green_max = cv::Scalar(50,255,255);
|
|
631
|
+
|
|
632
|
+
// #4 = CYAN
|
|
633
|
+
cv::Scalar OCVUI::cyan_min = cv::Scalar(85,200,55);
|
|
634
|
+
cv::Scalar OCVUI::cyan_max = cv::Scalar(95,200,55);
|
|
635
|
+
|
|
636
|
+
// #5 = BLUE
|
|
637
|
+
cv::Scalar OCVUI::blue_min = cv::Scalar(115,155,55);
|
|
638
|
+
cv::Scalar OCVUI::blue_max = cv::Scalar(125,255,255);
|
|
639
|
+
|
|
640
|
+
// #6 = MAGENTA
|
|
641
|
+
cv::Scalar OCVUI::magenta_min = cv::Scalar(145,200,55);
|
|
642
|
+
cv::Scalar OCVUI::magenta_max = cv::Scalar(155,255,255);
|
|
643
|
+
|
|
644
|
+
// OpenCV Main Loop Function Implementation
|
|
645
|
+
// This function is a loop that gets every frame from a camera
|
|
646
|
+
// and calls the image processing functions.
|
|
647
|
+
// This is the OCVUI.h main function.
|
|
648
|
+
/**
|
|
649
|
+
* \fn void* ocvLoop(void* ocv_object)
|
|
650
|
+
* \brief Loop function for image processing
|
|
651
|
+
*/
|
|
652
|
+
void* ocvLoop(void* ocv_object)
|
|
653
|
+
{
|
|
654
|
+
// The camera index allows to select the camera.
|
|
655
|
+
// 0 stands for the default camera.
|
|
656
|
+
int camIndex=1;
|
|
657
|
+
//std::cout<<"camera index ?"<<std::endl;
|
|
658
|
+
//std::cin>>camIndex;
|
|
659
|
+
|
|
660
|
+
cv::Mat frame, hsv;
|
|
661
|
+
OCVUI* ocv = (OCVUI*) ocv_object;
|
|
662
|
+
cv::VideoCapture cap(camIndex);
|
|
663
|
+
std::cout<<"Video Capture from camera n°"<<camIndex<<std::endl;
|
|
664
|
+
|
|
665
|
+
if (!cap.isOpened()) // check if we succeeded to read frames
|
|
666
|
+
// from camera
|
|
667
|
+
{
|
|
668
|
+
std::cout<<"Could not open camera n°"<<camIndex<<" !"<<std::endl;
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
cap.set(CV_CAP_PROP_FPS, 60); // Set frames rate
|
|
672
|
+
cv::namedWindow("Tracking", 1); // Create a window
|
|
673
|
+
|
|
674
|
+
while (!ocv->exit())
|
|
675
|
+
{
|
|
676
|
+
cap >> frame; // Get frame from camera
|
|
677
|
+
ocv->imageProcessing(frame); // Objects Detection function
|
|
678
|
+
|
|
679
|
+
/*** Show image ***/
|
|
680
|
+
cv::imshow("Tracking", frame);
|
|
681
|
+
ocv->empty(); // Empty the objects and parameters storages
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
ocv->exitThread();
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
#endif
|
|
688
|
+
/************************** END OCVUI.h **************************/
|