feat(params): add parameters, macros, RAVE controls and resources

This commit is contained in:
2026-09-08 14:55:22 +02:00
parent a9abca9e15
commit 0a94208d0f
12 changed files with 1198 additions and 0 deletions
+156
View File
@@ -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