From 5367e208befe1f699d114ba744a7afb688a7d9f0 Mon Sep 17 00:00:00 2001 From: Roland Rabien Date: Sat, 26 Aug 2023 11:42:14 -0700 Subject: [PATCH] More UI cleanup --- plugin/Resources/layout.json | 6 +-- plugin/Source/Editor.cpp | 15 ------- plugin/Source/Editor.h | 22 --------- plugin/Source/Panels.h | 86 ++++++++---------------------------- 4 files changed, 21 insertions(+), 108 deletions(-) diff --git a/plugin/Resources/layout.json b/plugin/Resources/layout.json index a02493f..0acd646 100644 --- a/plugin/Resources/layout.json +++ b/plugin/Resources/layout.json @@ -2,13 +2,11 @@ "children": [ { "id": "osc[1..2]", "x": "0,prevR()+1", "y": 0, "w": "parW()/2", "h": 163 }, - { "id": "flt", "x": "0", "y": "prevB()+1", "w": 175, "h": 163 }, - { "id": "fltAdsr", "x": "prevR()+1", "y": "prevY()", "w": 175, "h": 163 }, + { "id": "flt", "x": "0", "y": "prevB()+1", "w": 400, "h": 163 }, { "id": "noise", "x": "prevR()+1", "y": "prevY()", "w": 60, "h": 163 }, { "id": "sub", "x": "prevR()+1", "y": "prevY()", "w": 120, "h": 163 }, { "id": "lfo[1..3]", "x": "0,prevR()+1", "y": "prevB()+1,prevY()", "w": 175, "h": 163 }, - { "id": "gate", "x": "prevR()+1", "y": "prevY()", "w": 175, "h": 163 }, - { "id": "gatePattern", "x": "prevR()+1", "y": "prevY()", "w": 175, "h": 163 }, + { "id": "gate", "x": "prevR()+1", "y": "prevY()", "w": 240, "h": 163 }, { "id": "scope", "x": "0", "y": "prevB()+1", "w": 175, "h": 163 }, { "id": "reverb", "x": "prevR()+1", "y": "prevY()", "w": 175, "h": 163 }, { "id": "delay", "x": "prevR()+1", "y": "prevY()", "w": 175, "h": 163 }, diff --git a/plugin/Source/Editor.cpp b/plugin/Source/Editor.cpp index 6383408..52c5cc0 100644 --- a/plugin/Source/Editor.cpp +++ b/plugin/Source/Editor.cpp @@ -10,7 +10,6 @@ Editor::Editor (WavetableAudioProcessor& proc_) addAndMakeVisible (sub); addAndMakeVisible (noise); addAndMakeVisible (filter); - addAndMakeVisible (fltADSR); for (int i = 0; i < Cfg::numLFOs; i++) { @@ -19,7 +18,6 @@ Editor::Editor (WavetableAudioProcessor& proc_) } addAndMakeVisible (gate); - addAndMakeVisible (pattern); addAndMakeVisible (chorus); addAndMakeVisible (distort); addAndMakeVisible (delay); @@ -33,19 +31,6 @@ Editor::Editor (WavetableAudioProcessor& proc_) void Editor::setupCallbacks() { - // LFO mod items - for (int i = 0; i < Cfg::numLFOs; i++) - { - modItems[i].onClick = [this, i] - { - modItems[0].setSelected (i == 0); - modItems[1].setSelected (i == 1); - modItems[2].setSelected (i == 2); - - lfoBox.setPage (i); - }; - } - modItems[0].onClick(); } void Editor::resized() diff --git a/plugin/Source/Editor.h b/plugin/Source/Editor.h index 5afaa05..f9fd24d 100644 --- a/plugin/Source/Editor.h +++ b/plugin/Source/Editor.h @@ -23,32 +23,10 @@ private: FilterBox filter { "filter", proc }; - FilterADSRArea fltADSR { proc }; - LFOBox lfos[Cfg::numLFOs] { { "LFO 1", proc, 0 }, { "LFO 2", proc, 1 }, { "LFO 3", proc, 2 } }; LFOArea lfoGraphs[Cfg::numLFOs] { { proc, 0 }, { proc, 1 }, { proc, 2 } }; - gin::HeaderItem modItems[8] { { "LFO 1", proc.lfoParams[0].enable, proc.modMatrix, proc.modSrcMonoLFO[0], proc.modSrcLFO[0] }, - { "LFO 2", proc.lfoParams[1].enable, proc.modMatrix, proc.modSrcMonoLFO[1], proc.modSrcLFO[1] }, - { "LFO 3", proc.lfoParams[2].enable, proc.modMatrix, proc.modSrcMonoLFO[2], proc.modSrcLFO[2] }, - { "ENV 1", proc.envParams[0].enable, proc.modMatrix, {}, proc.modSrcEnv[0] }, - { "ENV 2", proc.envParams[1].enable, proc.modMatrix, {}, proc.modSrcEnv[1] }, - { "ENV 3", proc.envParams[2].enable, proc.modMatrix, {}, proc.modSrcEnv[2] }, - { "STEP", proc.stepLfoParams.enable, proc.modMatrix, proc.modSrcMonoStep, proc.modSrcStep }, - { "MIDI", nullptr } }; - gin::HeaderRow modHeader; - - gin::HeaderItem fxItems[5] { { "GATE", proc.gateParams.enable }, - { "CHORUS", proc.chorusParams.enable }, - { "DISTORT", proc.distortionParams.enable }, - { "DELAY", proc.delayParams.enable }, - { "REVERB", proc.reverbParams.enable } }; - - gin::HeaderRow fxHeader; - - GateBox gate { proc }; - GateArea pattern { proc }; ChorusBox chorus { proc }; DistortBox distort { proc }; DelayBox delay { proc }; diff --git a/plugin/Source/Panels.h b/plugin/Source/Panels.h index 9b461c5..2f9348a 100644 --- a/plugin/Source/Panels.h +++ b/plugin/Source/Panels.h @@ -201,6 +201,15 @@ public: addControl (new gin::Select (flt.type), 1, 1); addControl (v = new gin::Knob (flt.velocityTracking), 2, 1); + adsr = new gin::ADSRComponent (); + adsr->setParams (flt.attack, flt.decay, flt.sustain, flt.release); + addControl (adsr, 3, 0, 4, 1); + + addControl (a = new gin::Knob (flt.attack), 3, 1); + addControl (d = new gin::Knob (flt.decay), 4, 1); + addControl (s = new gin::Knob (flt.sustain), 5, 1); + addControl (r = new gin::Knob (flt.release), 6, 1); + freq->setLiveValuesCallback ([this] () { if (proc.filterParams.amount->getUserValue() != 0.0f || @@ -209,6 +218,8 @@ public: return proc.getLiveFilterCutoff(); return juce::Array(); }); + + watchParam (flt.amount); } void paramChanged () override @@ -216,41 +227,8 @@ public: gin::ParamBox::paramChanged (); auto& flt = proc.filterParams; + v->setEnabled (flt.amount->getUserValue() != 0.0f); - } - - WavetableAudioProcessor& proc; - gin::ParamComponent::Ptr v; -}; - -//============================================================================== -class FilterADSRArea : public gin::ParamArea -{ -public: - FilterADSRArea (WavetableAudioProcessor& proc_) - : proc (proc_) - { - setName ("fltAdsr"); - - auto& flt = proc.filterParams; - - adsr = new gin::ADSRComponent (); - adsr->setParams (flt.attack, flt.decay, flt.sustain, flt.release); - addControl (adsr); - - addControl (a = new gin::Knob (flt.attack)); - addControl (d = new gin::Knob (flt.decay)); - addControl (s = new gin::Knob (flt.sustain)); - addControl (r = new gin::Knob (flt.release)); - - watchParam (flt.amount); - } - - void paramChanged() override - { - gin::ParamArea::paramChanged (); - - auto& flt = proc.filterParams; a->setEnabled (flt.amount->getUserValue() != 0.0f); d->setEnabled (flt.amount->getUserValue() != 0.0f); s->setEnabled (flt.amount->getUserValue() != 0.0f); @@ -259,7 +237,7 @@ public: } WavetableAudioProcessor& proc; - gin::ParamComponent::Ptr a, d, s, r; + gin::ParamComponent::Ptr v, a, d, s, r; gin::ADSRComponent* adsr; }; @@ -346,8 +324,12 @@ public: addControl (new gin::Select (proc.gateParams.beat), 0, 0); addControl (new gin::Knob (proc.gateParams.length), 1, 0); - addControl (new gin::Knob (proc.gateParams.attack), 0, 1); - addControl (new gin::Knob (proc.gateParams.release), 1, 1); + addControl (new gin::Knob (proc.gateParams.attack), 2, 0); + addControl (new gin::Knob (proc.gateParams.release), 3, 0); + + auto g = new gin::GateEffectComponent(); + g->setParams (proc.gateParams.length, proc.gateParams.l, proc.gateParams.r, proc.gateParams.enable); + addControl (g, 0, 1, 4, 1); setSize (112, 163); } @@ -355,36 +337,6 @@ public: WavetableAudioProcessor& proc; }; -//============================================================================== -class GateArea : public gin::ParamArea -{ -public: - GateArea (WavetableAudioProcessor& proc_) - : gin::ParamArea ("Pattern"), proc (proc_) - { - setName ("gatePattern"); - - g = new gin::GateEffectComponent(); - g->setParams (proc.gateParams.length, proc.gateParams.l, proc.gateParams.r, proc.gateParams.enable); - addControl (g); - - setSize (272, 163); - } - - void paramChanged () override - { - gin::ParamArea::paramChanged (); - } - - void resized() override - { - g->setBounds (getLocalBounds().withSizeKeepingCentre (getWidth(), 128)); - } - - WavetableAudioProcessor& proc; - gin::GateEffectComponent* g; -}; - //============================================================================== class ChorusBox : public gin::ParamBox {