From dd3ba968caf276d2eef08a0711da5cae315adb0f Mon Sep 17 00:00:00 2001 From: Roland Rabien Date: Sat, 26 Aug 2023 13:01:59 -0700 Subject: [PATCH] All UI exists --- modules/gin | 2 +- plugin/Resources/layout.json | 8 +++++--- plugin/Source/Editor.cpp | 2 ++ plugin/Source/Editor.h | 2 ++ plugin/Source/Panels.h | 39 +++++++++++++++++++++++++++++++++++- 5 files changed, 48 insertions(+), 5 deletions(-) diff --git a/modules/gin b/modules/gin index f325203..a5f117c 160000 --- a/modules/gin +++ b/modules/gin @@ -1 +1 @@ -Subproject commit f3252033e5e408357e0075ed8730755e0e7b725d +Subproject commit a5f117c0c12ad1e1ed52312debb1bd9d6dd503fe diff --git a/plugin/Resources/layout.json b/plugin/Resources/layout.json index 52bcfa5..72fb627 100644 --- a/plugin/Resources/layout.json +++ b/plugin/Resources/layout.json @@ -9,11 +9,13 @@ { "id": "lfo[1..3]", "x": 0, "y": "prevB()+1,prevY()", "w": 340, "h": 163 }, { "id": "env[1..3]", "x": "getR('lfo1')+1", "y": "prevY()", "w": 240, "h": 163 }, { "id": "step", "x": "prevR()+1", "y": "prevY()", "w": 240, "h": 163 }, + { "id": "mod", "x": "prevR()+1", "y": "prevY()", "w": 240, "h": 163 }, { "id": "gate", "x": "0", "y": "prevB()+1", "w": 240, "h": 163 }, - { "id": "reverb", "x": "prevR()+1", "y": "prevY()", "w": 175, "h": 163 }, - { "id": "delay", "x": "prevR()+1", "y": "prevY()", "w": 175, "h": 163 }, - { "id": "distort", "x": "prevR()+1", "y": "prevY()", "w": 100, "h": 163 }, { "id": "chorus", "x": "prevR()+1", "y": "prevY()", "w": 175, "h": 163 }, + { "id": "distort", "x": "prevR()+1", "y": "prevY()", "w": 100, "h": 163 }, + { "id": "delay", "x": "prevR()+1", "y": "prevY()", "w": 175, "h": 163 }, + { "id": "reverb", "x": "prevR()+1", "y": "prevY()", "w": 175, "h": 163 }, + { "id": "global", "x": "prevR()+1", "y": "prevY()", "w": 175, "h": 163 }, { "id": "scope", "x": 0, "y": "prevB()+1", "w": "parW()-2", "b": "parH()-1" } ] } \ No newline at end of file diff --git a/plugin/Source/Editor.cpp b/plugin/Source/Editor.cpp index f82ea56..f73eb3b 100644 --- a/plugin/Source/Editor.cpp +++ b/plugin/Source/Editor.cpp @@ -12,6 +12,8 @@ Editor::Editor (WavetableAudioProcessor& proc_) addAndMakeVisible (adsr); addAndMakeVisible (filter); addAndMakeVisible (step); + addAndMakeVisible (mod); + addAndMakeVisible (global); addAndMakeVisible (gate); addAndMakeVisible (chorus); addAndMakeVisible (distort); diff --git a/plugin/Source/Editor.h b/plugin/Source/Editor.h index da1128b..dc7730a 100644 --- a/plugin/Source/Editor.h +++ b/plugin/Source/Editor.h @@ -27,6 +27,8 @@ private: LFOBox lfos[Cfg::numLFOs] { { "LFO 1", proc, 0 }, { "LFO 2", proc, 1 }, { "LFO 3", proc, 2 } }; ENVBox envs[Cfg::numENVs] { { "ENV 1", proc, 0 }, { "ENV 2", proc, 1 }, { "ENV 3", proc, 2 } }; StepBox step { "step", proc }; + ModBox mod { "mod", proc }; + GlobalBox global { "global", proc }; GateBox gate { proc }; ChorusBox chorus { proc }; diff --git a/plugin/Source/Panels.h b/plugin/Source/Panels.h index 12485e2..dd0e59e 100644 --- a/plugin/Source/Panels.h +++ b/plugin/Source/Panels.h @@ -367,7 +367,44 @@ public: } WavetableAudioProcessor& proc; - int idx; +}; + +//============================================================================== +class ModBox : public gin::ParamBox +{ +public: + ModBox (const juce::String& name, WavetableAudioProcessor& proc_) + : gin::ParamBox (name), proc (proc_) + { + setName ("mod"); + + addControl (new gin::ModSrcListBox (proc.modMatrix), 0, 0, 3, 2); + } + + WavetableAudioProcessor& proc; +}; + +//============================================================================== +class GlobalBox : public gin::ParamBox +{ +public: + GlobalBox (const juce::String& name, WavetableAudioProcessor& proc_) + : gin::ParamBox (name), proc (proc_) + { + setName ("global"); + + addControl (new gin::Knob (proc.globalParams.level), 0, 0); + addControl (new gin::Select (proc.globalParams.glideMode), 1, 0); + addControl (new gin::Knob (proc.globalParams.glideRate), 2, 0); + + addControl (new gin::Knob (proc.globalParams.voices), 0, 1); + addControl (new gin::Select (proc.globalParams.legato), 1, 1); + addControl (new gin::Select (proc.globalParams.mono), 2, 1); + + setSize (168, 163); + } + + WavetableAudioProcessor& proc; }; //==============================================================================