#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