Gin
|
Add one of these to you Synth if you want to support modulation. More...
Classes | |
class | Listener |
Public Types | |
enum | PolarityMode { unipolar , bipolar , sameAsSource } |
enum | Function { linear , quadraticIn , quadraticInOut , quadraticOut , sineIn , sineInOut , sineOut , exponentialIn , exponentialInOut , exponentialOut , invLinear , invQuadraticIn , invQuadraticInOut , invQuadraticOut , invSineIn , invSineInOut , invSineOut , invExponentialIn , invExponentialInOut , invExponentialOut } |
Public Member Functions | |
ModMatrix ()=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) |
juce::Array< float > | getLiveValues (gin::Parameter *p) |
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) |
void | disableLearn () |
ModSrcId | getLearn () |
int | getNumModSources () |
juce::String | getModSrcName (ModSrcId src) |
bool | getModSrcPoly (ModSrcId src) |
bool | getModSrcBipolar (ModSrcId src) |
juce::String | getModDstName (ModDstId dst) |
juce::Array< ModSrcId > | getModSources (gin::Parameter *) |
Parameter * | getParameter (ModDstId d) |
bool | isModulated (ModDstId param) |
float | getModDepth (ModSrcId src, ModDstId param) |
std::vector< std::pair< ModDstId, float > > | getModDepths (ModSrcId param) |
std::vector< std::pair< ModSrcId, float > > | getModDepths (ModDstId param) |
void | setModDepth (ModSrcId src, ModDstId param, float f) |
void | clearModDepth (ModSrcId src, ModDstId param) |
Function | getModFunction (ModSrcId src, ModDstId param) |
void | setModFunction (ModSrcId src, ModDstId param, Function f) |
bool | getModEnable (ModSrcId src, ModDstId param) |
void | setModEnable (ModSrcId src, ModDstId param, bool b) |
bool | getModBipolarMapping (ModSrcId src, ModDstId param) |
void | setModBipolarMapping (ModSrcId src, ModDstId param, bool b) |
bool | shouldShowLiveModValues () |
void | setOnlyShowModWhenVoiceActive (bool b) |
void | addListener (Listener *l) |
void | removeListener (Listener *l) |
Static Public Member Functions | |
static float | shape (float v, Function f, bool biPolarSrc, bool biPolarDst) |
Add one of these to you Synth if you want to support modulation.
Then add all your parameters Then add all your mod source. Update your mod sources from your processing loop. Always get your parameter values from the mod matrix
enum ModMatrix::Function |
|
default |
void ModMatrix::setDefaultPolarityMode | ( | PolarityMode | m | ) |
void ModMatrix::stateUpdated | ( | const juce::ValueTree & | vt | ) |
void ModMatrix::updateState | ( | juce::ValueTree & | vt | ) |
|
static |
References easeExponentialIn(), easeExponentialInOut(), easeExponentialOut(), easeQuadraticIn(), easeQuadraticInOut(), easeQuadraticOut(), easeSineIn(), easeSineInOut(), easeSineOut(), exponentialIn, exponentialInOut, exponentialOut, invExponentialIn, invExponentialInOut, invExponentialOut, invLinear, invQuadraticIn, invQuadraticInOut, invQuadraticOut, invSineIn, invSineInOut, invSineOut, linear, quadraticIn, quadraticInOut, quadraticOut, sineIn, sineInOut, and sineOut.
Referenced by getLiveValues(), getValue(), and ModCurveButton::paintButton().
float ModMatrix::getValue | ( | gin::Parameter * | p, |
bool | smoothed = true |
||
) |
References Assets::info, and shape().
Referenced by ModVoice::getValue(), and ModVoice::getValueUnsmoothed().
float ModMatrix::getValue | ( | ModVoice & | voice, |
gin::Parameter * | p, | ||
bool | smoothed = true |
||
) |
References Assets::info, shape(), and Assets::voice.
juce::Array<float> ModMatrix::getLiveValues | ( | gin::Parameter * | p | ) |
References ModVoice::getValue(), Assets::info, and shape().
void ModMatrix::setMonoValue | ( | ModSrcId | id, |
float | value | ||
) |
References Assets::info.
References Assets::voice.
void ModMatrix::finishBlock | ( | int | numSamples | ) |
void ModMatrix::addVoice | ( | ModVoice * | v | ) |
ModSrcId ModMatrix::addMonoModSource | ( | const juce::String & | id, |
const juce::String & | name, | ||
bool | bipolar | ||
) |
ModSrcId ModMatrix::addPolyModSource | ( | const juce::String & | id, |
const juce::String & | name, | ||
bool | bipolar | ||
) |
void ModMatrix::addParameter | ( | gin::Parameter * | p, |
bool | poly, | ||
float | smoothingTime = 0.02f |
||
) |
void ModMatrix::setSampleRate | ( | double | sampleRate | ) |
void ModMatrix::build | ( | ) |
void ModMatrix::enableLearn | ( | ModSrcId | source | ) |
void ModMatrix::disableLearn | ( | ) |
ModSrcId ModMatrix::getLearn | ( | ) |
Referenced by ModulationOverview::ModulationOverview().
int ModMatrix::getNumModSources | ( | ) |
Referenced by ModSrcListBox::getNumRows().
juce::String ModMatrix::getModSrcName | ( | ModSrcId | src | ) |
References ModSrcId::id.
bool ModMatrix::getModSrcPoly | ( | ModSrcId | src | ) |
References ModSrcId::id.
bool ModMatrix::getModSrcBipolar | ( | ModSrcId | src | ) |
References ModSrcId::id.
juce::String ModMatrix::getModDstName | ( | ModDstId | dst | ) |
juce::Array<ModSrcId> ModMatrix::getModSources | ( | gin::Parameter * | ) |
bool ModMatrix::isModulated | ( | ModDstId | param | ) |
bool ModMatrix::shouldShowLiveModValues | ( | ) |
void ModMatrix::setOnlyShowModWhenVoiceActive | ( | bool | b | ) |
void ModMatrix::addListener | ( | Listener * | l | ) |
Referenced by ModulationOverview::ModulationOverview().
void ModMatrix::removeListener | ( | Listener * | l | ) |