|
| | ModMatrix ()=default |
| |
| | ~ModMatrix () override=default |
| |
| void | setDefaultPolarityMode (PolarityMode m) |
| |
| void | stateUpdated (const juce::ValueTree &vt) |
| |
| void | updateState (juce::ValueTree &vt) |
| |
| float | getValue (gin::Parameter *p, bool smoothed=true) |
| |
| float | getValue (ModVoice &voice, gin::Parameter *p, bool smoothed=true) |
| |
| void | setMonoValue (ModSrcId id, float value) |
| |
| void | setPolyValue (ModVoice &voice, ModSrcId id, float value) |
| |
| void | finishBlock (int numSamples) |
| |
| void | addVoice (ModVoice *v) |
| |
| ModSrcId | addMonoModSource (const juce::String &id, const juce::String &name, bool bipolar) |
| |
| ModSrcId | addPolyModSource (const juce::String &id, const juce::String &name, bool bipolar) |
| |
| void | addParameter (gin::Parameter *p, bool poly, float smoothingTime=0.02f) |
| |
| void | setSampleRate (double sampleRate) |
| |
| void | build () |
| |
| void | enableLearn (ModSrcId source) override |
| |
| void | disableLearn () override |
| |
| ModSrcId | getLearn () override |
| |
| int | getNumModSources () override |
| |
| juce::String | getModSrcName (ModSrcId src) override |
| |
| bool | getModSrcPoly (ModSrcId src) override |
| |
| bool | getModSrcBipolar (ModSrcId src) override |
| |
| juce::String | getModDstName (ModDstId dst) override |
| |
| juce::Array< ModSrcId > | getModSources (gin::Parameter *) override |
| |
| Parameter * | getParameter (ModDstId d) override |
| |
| bool | isModulated (ModDstId param) override |
| |
| float | getModDepth (ModSrcId src, ModDstId param) override |
| |
| std::vector< std::pair< ModDstId, float > > | getModDepths (ModSrcId src) override |
| |
| std::vector< std::pair< ModSrcId, float > > | getModDepths (ModDstId param) override |
| |
| void | setModDepth (ModSrcId src, ModDstId param, float f) override |
| |
| void | clearModDepth (ModSrcId src, ModDstId param) override |
| |
| ModFunction | getModFunction (ModSrcId src, ModDstId param) override |
| |
| void | setModFunction (ModSrcId src, ModDstId param, ModFunction f) override |
| |
| bool | getModEnable (ModSrcId src, ModDstId param) override |
| |
| void | setModEnable (ModSrcId src, ModDstId param, bool b) override |
| |
| bool | getModBipolarMapping (ModSrcId src, ModDstId param) override |
| |
| void | setModBipolarMapping (ModSrcId src, ModDstId param, bool b) override |
| |
| bool | shouldShowLiveModValues () override |
| |
| juce::Array< float > | getLiveValues (gin::Parameter *p) override |
| |
| void | setOnlyShowModWhenVoiceActive (bool b) |
| |
| void | addListener (Listener *l) override |
| |
| void | removeListener (Listener *l) override |
| |
| virtual | ~IModMatrix ()=default |
| |
Modulation matrix system for routing multiple modulation sources to parameters.
The ModMatrix provides a flexible modulation routing system commonly used in synthesizers and audio effects. It allows multiple modulation sources (LFOs, envelopes, velocity, etc.) to control multiple destination parameters with configurable depth, enable/disable, and curve shaping.
Key Features:
- Monophonic and polyphonic modulation sources
- Multiple sources can modulate a single parameter
- Configurable modulation curves (linear, exponential, sine, etc.)
- Parameter smoothing to avoid discontinuities
- Learning mode for quick modulation assignment
- State persistence via ValueTree
- Voice management for polyphonic synthesizers
Usage:
- Create a ModMatrix instance in your synthesizer
- Add all parameters using addParameter()
- Add modulation sources using addMonoModSource() or addPolyModSource()
- Update mod source values from your processing loop
- Always retrieve parameter values through the ModMatrix using getValue()
Example:
Modulation matrix system for routing multiple modulation sources to parameters.
Definition gin_modmatrix.h:98
void setMonoValue(ModSrcId id, float value)
Definition gin_modmatrix.h:302
void setPolyValue(ModVoice &voice, ModSrcId id, float value)
Definition gin_modmatrix.h:310
ModSrcId addPolyModSource(const juce::String &id, const juce::String &name, bool bipolar)
float getValue(gin::Parameter *p, bool smoothed=true)
Definition gin_modmatrix.h:237
ModSrcId addMonoModSource(const juce::String &id, const juce::String &name, bool bipolar)
void addParameter(gin::Parameter *p, bool poly, float smoothingTime=0.02f)
A lightweight 2D point class for projects that don't use juce_graphics.
Definition gin_point.h:25
- See also
- ModVoice, ModSrcId, ModDstId, IModMatrix