diff --git a/modules/gin b/modules/gin index 10c1883..636ac60 160000 --- a/modules/gin +++ b/modules/gin @@ -1 +1 @@ -Subproject commit 10c188347a176c78a626be3a6cd19c03b82fa02c +Subproject commit 636ac6050cc20b6e33b0814e170651b913db2e18 diff --git a/plugin/Resources/layout.json b/plugin/Resources/layout.json index 6834f9d..b1b0a92 100644 --- a/plugin/Resources/layout.json +++ b/plugin/Resources/layout.json @@ -75,7 +75,13 @@ { "id": "mod", "x": "prevR()+1", "y": "prevY()", "r": "parW()", "h": 163, "children": [ { "id": "modlist", "x": 0, "y": 23, "r": "parW()", "b": "parH()" } - ] }, + ] + }, + { "id": "mtx", "x": "prevX()", "y": "prevY()", "r": "parR()", "h": 163, "children": + [ + { "id": "matrix", "x": 0, "y": 23, "r": "parW()", "b": "parH()" } + ] + }, { "id": "gate", "x": "0", "y": "prevB()+1", "w": 290, "h": 137, "children": [ { "id": "Beat", "x": 61, "y": 30, "w": 42, "h": 57 }, diff --git a/plugin/Source/Editor.cpp b/plugin/Source/Editor.cpp index c55a524..1465dd1 100644 --- a/plugin/Source/Editor.cpp +++ b/plugin/Source/Editor.cpp @@ -13,6 +13,7 @@ Editor::Editor (WavetableAudioProcessor& proc_) addAndMakeVisible (filter); addAndMakeVisible (step); addAndMakeVisible (mod); + addAndMakeVisible (mtx); addAndMakeVisible (global); addAndMakeVisible (gate); addAndMakeVisible (chorus); diff --git a/plugin/Source/Editor.h b/plugin/Source/Editor.h index dc5775c..43f2bbd 100644 --- a/plugin/Source/Editor.h +++ b/plugin/Source/Editor.h @@ -27,6 +27,7 @@ private: ENVBox envs[Cfg::numENVs] { { "ENV 1", proc, 0 }, { "ENV 2", proc, 1 }, { "ENV 3", proc, 2 } }; StepBox step { "step", proc }; ModBox mod { "mod", proc }; + MatrixBox mtx { "mtx", proc }; GlobalBox global { "global", proc }; GateBox gate { proc }; diff --git a/plugin/Source/Panels.h b/plugin/Source/Panels.h index 7954fbb..6addb4a 100644 --- a/plugin/Source/Panels.h +++ b/plugin/Source/Panels.h @@ -417,6 +417,8 @@ public: : gin::ParamBox (name), proc (proc_) { setName ("mod"); + + addHeader ({"SRC", "MTX"}, 0, proc.uiParams.activeMOD); addControl (new gin::ModSrcListBox (proc.modMatrix), 0, 0, 3, 2); } @@ -424,6 +426,23 @@ public: WavetableAudioProcessor& proc; }; +//============================================================================== +class MatrixBox : public gin::ParamBox +{ +public: + MatrixBox (const juce::String& name, WavetableAudioProcessor& proc_) + : gin::ParamBox (name), proc (proc_) + { + setName ("mtx"); + + addHeader ({"SRC", "MTX"}, 1, proc.uiParams.activeMOD); + + addControl (new gin::ModMatrixBox (proc, proc.modMatrix), 0, 0, 3, 2); + } + + WavetableAudioProcessor& proc; +}; + //============================================================================== class GlobalBox : public gin::ParamBox { diff --git a/plugin/Source/PluginProcessor.cpp b/plugin/Source/PluginProcessor.cpp index 8df4f8f..f216249 100644 --- a/plugin/Source/PluginProcessor.cpp +++ b/plugin/Source/PluginProcessor.cpp @@ -294,6 +294,7 @@ void WavetableAudioProcessor::UIParams::setup (WavetableAudioProcessor& p) { activeLFO = p.addIntParam ("uiLFO", "LFO", "", "", { 0.0, 2.0, 0.0, 1.0 }, 0.0, 0.0f); activeENV = p.addIntParam ("uiENV", "ENV", "", "", { 0.0, 2.0, 0.0, 1.0 }, 0.0f, 0.0f); + activeMOD = p.addIntParam ("uiMOD", "MOD", "", "", { 0.0, 1.0, 0.0, 1.0 }, 0.0f, 0.0f); } //============================================================================== diff --git a/plugin/Source/PluginProcessor.h b/plugin/Source/PluginProcessor.h index 9b9d80d..d955716 100644 --- a/plugin/Source/PluginProcessor.h +++ b/plugin/Source/PluginProcessor.h @@ -155,7 +155,7 @@ public: { UIParams() = default; - gin::Parameter::Ptr activeLFO, activeENV; + gin::Parameter::Ptr activeLFO, activeENV, activeMOD; void setup (WavetableAudioProcessor& p);