Add tabs to param boxes

This commit is contained in:
Roland Rabien 2023-08-26 20:57:45 -07:00
commit 8ce8ff8336
4 changed files with 34 additions and 5 deletions

@ -1 +1 @@
Subproject commit 0e2729ff522819ddb94f8df6ce1d665494a6b19a Subproject commit 051b6464cd5bc26a1b721ef74de53704a92e2406

View file

@ -282,6 +282,8 @@ public:
addEnable (lfo.enable); addEnable (lfo.enable);
addHeader ({"LFO 1", "LFO 2", "LFO 3"}, idx, proc.uiParams.activeLFO);
addModSource (new gin::ModulationSourceButton (proc.modMatrix, proc.modSrcLFO[idx], true)); addModSource (new gin::ModulationSourceButton (proc.modMatrix, proc.modSrcLFO[idx], true));
addModSource (new gin::ModulationSourceButton (proc.modMatrix, proc.modSrcMonoLFO[idx], false)); addModSource (new gin::ModulationSourceButton (proc.modMatrix, proc.modSrcMonoLFO[idx], false));
@ -309,14 +311,18 @@ public:
{ {
gin::ParamBox::paramChanged (); gin::ParamBox::paramChanged ();
if (r && b)
{
auto& lfo = proc.lfoParams[idx]; auto& lfo = proc.lfoParams[idx];
r->setVisible (! lfo.sync->isOn()); r->setVisible (! lfo.sync->isOn());
b->setVisible (lfo.sync->isOn()); b->setVisible (lfo.sync->isOn());
} }
}
WavetableAudioProcessor& proc; WavetableAudioProcessor& proc;
int idx; int idx;
gin::ParamComponent::Ptr r, b; gin::ParamComponent::Ptr r = nullptr;
gin::ParamComponent::Ptr b = nullptr;
}; };
//============================================================================== //==============================================================================
@ -332,6 +338,8 @@ public:
addEnable (env.enable); addEnable (env.enable);
addHeader ({"ENV 1", "ENV 2", "ENV 3"}, idx, proc.uiParams.activeENV);
addModSource (new gin::ModulationSourceButton (proc.modMatrix, proc.modSrcEnv[idx], true)); addModSource (new gin::ModulationSourceButton (proc.modMatrix, proc.modSrcEnv[idx], true));
addControl (new gin::Knob (env.attack), 0, 1); addControl (new gin::Knob (env.attack), 0, 1);

View file

@ -270,6 +270,13 @@ void WavetableAudioProcessor::GlobalParams::setup (WavetableAudioProcessor& p)
level->conversionFunction = [] (float in) { return juce::Decibels::decibelsToGain (in); }; level->conversionFunction = [] (float in) { return juce::Decibels::decibelsToGain (in); };
} }
//==============================================================================
void WavetableAudioProcessor::UIParams::setup (WavetableAudioProcessor& p)
{
activeLFO = p.addExtParam ("uiLFO", "LFO", "", "", { 0.0, 2.0, 0.0, 1.0 }, 0.0, 0.0f);
activeENV = p.addExtParam ("uiENV", "ENV", "", "", { 0.0, 2.0, 0.0, 1.0 }, 0.0f, 0.0f);
}
//============================================================================== //==============================================================================
void WavetableAudioProcessor::ChorusParams::setup (WavetableAudioProcessor& p) void WavetableAudioProcessor::ChorusParams::setup (WavetableAudioProcessor& p)
{ {
@ -367,6 +374,7 @@ WavetableAudioProcessor::WavetableAudioProcessor()
adsrParams.setup (*this); adsrParams.setup (*this);
globalParams.setup (*this); globalParams.setup (*this);
uiParams.setup (*this);
gateParams.setup (*this); gateParams.setup (*this);
chorusParams.setup (*this); chorusParams.setup (*this);
distortionParams.setup (*this); distortionParams.setup (*this);

View file

@ -146,6 +146,18 @@ public:
JUCE_DECLARE_NON_COPYABLE (GlobalParams) JUCE_DECLARE_NON_COPYABLE (GlobalParams)
}; };
// UI Params
struct UIParams
{
UIParams() = default;
gin::Parameter::Ptr activeLFO, activeENV;
void setup (WavetableAudioProcessor& p);
JUCE_DECLARE_NON_COPYABLE (UIParams)
};
struct GateParams struct GateParams
{ {
GateParams() = default; GateParams() = default;
@ -227,6 +239,7 @@ public:
DistortionParams distortionParams; DistortionParams distortionParams;
DelayParams delayParams; DelayParams delayParams;
ReverbParams reverbParams; ReverbParams reverbParams;
UIParams uiParams;
//============================================================================== //==============================================================================
gin::GateEffect gate; gin::GateEffect gate;