feat(params): add parameters, macros, RAVE controls and resources
This commit is contained in:
@@ -0,0 +1,156 @@
|
||||
#include "Params.h"
|
||||
|
||||
namespace serum
|
||||
{
|
||||
|
||||
juce::String modSourceName (ModSource s)
|
||||
{
|
||||
switch (s)
|
||||
{
|
||||
case ModSource::Lfo1: return "LFO 1";
|
||||
case ModSource::Lfo2: return "LFO 2";
|
||||
case ModSource::Lfo3: return "LFO 3";
|
||||
case ModSource::Lfo4: return "LFO 4";
|
||||
case ModSource::Env1: return "Env 1";
|
||||
case ModSource::Env2: return "Env 2";
|
||||
case ModSource::Env3: return "Env 3";
|
||||
case ModSource::Env4: return "Env 4";
|
||||
case ModSource::Velocity: return "Velocity";
|
||||
case ModSource::Note: return "Note";
|
||||
case ModSource::ModWheel: return "Mod Wheel";
|
||||
case ModSource::PitchBend: return "Pitch Bend";
|
||||
case ModSource::Macro1: return "Macro 1";
|
||||
case ModSource::Macro2: return "Macro 2";
|
||||
case ModSource::Macro3: return "Macro 3";
|
||||
case ModSource::Macro4: return "Macro 4";
|
||||
case ModSource::Random: return "Random";
|
||||
default: return {};
|
||||
}
|
||||
}
|
||||
|
||||
juce::String modSourceToString (ModSource s)
|
||||
{
|
||||
switch (s)
|
||||
{
|
||||
case ModSource::Lfo1: return "lfo1"; case ModSource::Lfo2: return "lfo2";
|
||||
case ModSource::Lfo3: return "lfo3"; case ModSource::Lfo4: return "lfo4";
|
||||
case ModSource::Env1: return "env1"; case ModSource::Env2: return "env2";
|
||||
case ModSource::Env3: return "env3"; case ModSource::Env4: return "env4";
|
||||
case ModSource::Velocity: return "velocity"; case ModSource::Note: return "note";
|
||||
case ModSource::ModWheel: return "modwheel"; case ModSource::PitchBend: return "pitchbend";
|
||||
case ModSource::Macro1: return "macro1"; case ModSource::Macro2: return "macro2";
|
||||
case ModSource::Macro3: return "macro3"; case ModSource::Macro4: return "macro4";
|
||||
case ModSource::Random: return "random";
|
||||
default: return {};
|
||||
}
|
||||
}
|
||||
|
||||
ModSource modSourceFromString (const juce::String& s)
|
||||
{
|
||||
for (int i = 0; i < kNumModSources; ++i)
|
||||
if (s == modSourceToString ((ModSource) i))
|
||||
return (ModSource) i;
|
||||
return ModSource::Lfo1;
|
||||
}
|
||||
|
||||
juce::String modTargetName (ModTarget t)
|
||||
{
|
||||
switch (t)
|
||||
{
|
||||
case ModTarget::Master: return "Master Volume";
|
||||
case ModTarget::Pitch: return "Pitch";
|
||||
case ModTarget::Amp: return "Amp";
|
||||
case ModTarget::OscALevel: return "Osc A Level";
|
||||
case ModTarget::OscAPan: return "Osc A Pan";
|
||||
case ModTarget::OscAWtPos: return "Osc A WT Pos";
|
||||
case ModTarget::OscAUnison: return "Osc A Unison";
|
||||
case ModTarget::OscADetune: return "Osc A Detune";
|
||||
case ModTarget::OscASpread: return "Osc A Spread";
|
||||
case ModTarget::OscAWarpAmt: return "Osc A Warp Amt";
|
||||
case ModTarget::OscBLevel: return "Osc B Level";
|
||||
case ModTarget::OscBPan: return "Osc B Pan";
|
||||
case ModTarget::OscBWtPos: return "Osc B WT Pos";
|
||||
case ModTarget::OscBUnison: return "Osc B Unison";
|
||||
case ModTarget::OscBDetune: return "Osc B Detune";
|
||||
case ModTarget::OscBSpread: return "Osc B Spread";
|
||||
case ModTarget::OscBWarpAmt: return "Osc B Warp Amt";
|
||||
case ModTarget::SubLevel: return "Sub Level";
|
||||
case ModTarget::NoiseLevel: return "Noise Level";
|
||||
case ModTarget::Filter1Cutoff: return "Filter 1 Cutoff";
|
||||
case ModTarget::Filter1Res: return "Filter 1 Res";
|
||||
case ModTarget::Filter1Drive: return "Filter 1 Drive";
|
||||
case ModTarget::Filter2Cutoff: return "Filter 2 Cutoff";
|
||||
case ModTarget::Filter2Res: return "Filter 2 Res";
|
||||
case ModTarget::Filter2Drive: return "Filter 2 Drive";
|
||||
case ModTarget::FilterMix: return "Filter Mix";
|
||||
case ModTarget::FilterOut: return "Filter Out";
|
||||
case ModTarget::Fx1Mix: return "FX 1 Mix"; case ModTarget::Fx2Mix: return "FX 2 Mix";
|
||||
case ModTarget::Fx3Mix: return "FX 3 Mix"; case ModTarget::Fx4Mix: return "FX 4 Mix";
|
||||
case ModTarget::Fx5Mix: return "FX 5 Mix"; case ModTarget::Fx6Mix: return "FX 6 Mix";
|
||||
case ModTarget::Fx7Mix: return "FX 7 Mix"; case ModTarget::Fx8Mix: return "FX 8 Mix";
|
||||
default: return {};
|
||||
}
|
||||
}
|
||||
|
||||
juce::String modTargetParamId (ModTarget t)
|
||||
{
|
||||
switch (t)
|
||||
{
|
||||
case ModTarget::Master: return ids::master;
|
||||
case ModTarget::Pitch: return {};
|
||||
case ModTarget::Amp: return {};
|
||||
case ModTarget::OscALevel: return ids::oscALevel;
|
||||
case ModTarget::OscAPan: return ids::oscAPan;
|
||||
case ModTarget::OscAWtPos: return ids::oscAWtPos;
|
||||
case ModTarget::OscAUnison: return ids::oscAUnison;
|
||||
case ModTarget::OscADetune: return ids::oscADetune;
|
||||
case ModTarget::OscASpread: return ids::oscASpread;
|
||||
case ModTarget::OscAWarpAmt: return ids::oscAWarpAmt;
|
||||
case ModTarget::OscBLevel: return ids::oscBLevel;
|
||||
case ModTarget::OscBPan: return ids::oscBPan;
|
||||
case ModTarget::OscBWtPos: return ids::oscBWtPos;
|
||||
case ModTarget::OscBUnison: return ids::oscBUnison;
|
||||
case ModTarget::OscBDetune: return ids::oscBDetune;
|
||||
case ModTarget::OscBSpread: return ids::oscBSpread;
|
||||
case ModTarget::OscBWarpAmt: return ids::oscBWarpAmt;
|
||||
case ModTarget::SubLevel: return ids::subLevel;
|
||||
case ModTarget::NoiseLevel: return ids::noiseLevel;
|
||||
case ModTarget::Filter1Cutoff: return ids::f1Cutoff;
|
||||
case ModTarget::Filter1Res: return ids::f1Res;
|
||||
case ModTarget::Filter1Drive: return ids::f1Drive;
|
||||
case ModTarget::Filter2Cutoff: return ids::f2Cutoff;
|
||||
case ModTarget::Filter2Res: return ids::f2Res;
|
||||
case ModTarget::Filter2Drive: return ids::f2Drive;
|
||||
case ModTarget::FilterMix: return ids::fMix;
|
||||
case ModTarget::FilterOut: return ids::fOut;
|
||||
case ModTarget::Fx1Mix: return ids::fx1Mix; case ModTarget::Fx2Mix: return ids::fx2Mix;
|
||||
case ModTarget::Fx3Mix: return ids::fx3Mix; case ModTarget::Fx4Mix: return ids::fx4Mix;
|
||||
case ModTarget::Fx5Mix: return ids::fx5Mix; case ModTarget::Fx6Mix: return ids::fx6Mix;
|
||||
case ModTarget::Fx7Mix: return ids::fx7Mix; case ModTarget::Fx8Mix: return ids::fx8Mix;
|
||||
default: return {};
|
||||
}
|
||||
}
|
||||
|
||||
ModTarget modTargetFromParamId (const juce::String& id)
|
||||
{
|
||||
for (int i = 0; i < kNumModTargets; ++i)
|
||||
if (id.isNotEmpty() && modTargetParamId ((ModTarget) i) == id)
|
||||
return (ModTarget) i;
|
||||
return ModTarget::None;
|
||||
}
|
||||
|
||||
juce::String modTargetToString (ModTarget t)
|
||||
{
|
||||
if (t == ModTarget::Pitch) return "pitch";
|
||||
if (t == ModTarget::Amp) return "amp";
|
||||
return modTargetParamId (t);
|
||||
}
|
||||
|
||||
ModTarget modTargetFromString (const juce::String& s)
|
||||
{
|
||||
if (s == "pitch") return ModTarget::Pitch;
|
||||
if (s == "amp") return ModTarget::Amp;
|
||||
return modTargetFromParamId (s);
|
||||
}
|
||||
|
||||
} // namespace serum
|
||||
Reference in New Issue
Block a user