From 917956e1eca767a7a9c984c191508bfe7ddf7bac Mon Sep 17 00:00:00 2001 From: Armin Date: Sun, 30 Aug 2026 00:24:41 +0200 Subject: [PATCH] Remove VEL RES knob; lay out filter knobs in a single 5-knob row --- Source/PluginEditor.cpp | 28 +++++++++++++--------------- Source/PluginEditor.h | 4 ++-- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/Source/PluginEditor.cpp b/Source/PluginEditor.cpp index 5d99ca7..24cdfbf 100644 --- a/Source/PluginEditor.cpp +++ b/Source/PluginEditor.cpp @@ -641,7 +641,6 @@ MainContentComponent::MainContentComponent(ChromaFlockProcessor& p) setupParam(filterEnvAmtKnob, filterEnvAmtAttach, "filterEnvAmt", "ENV AMT"); setupParam(keyTrackKnob, keyTrackAttach, "keyTrack", "KEY TRK"); setupParam(velToCutKnob, velToCutAttach, "velToCut", "VEL CUT"); - setupParam(velToResKnob, velToResAttach, "velToRes", "VEL RES"); setupLabel(envLabel, "AMP ENV"); setupParam(envAttackKnob, envAttackAttach, "envAttack", "ATTACK"); @@ -1250,21 +1249,20 @@ void MainContentComponent::resized() { filterLabel.setBounds(1152, sectionY, 498, labelH); filterTypeBox.setBounds(1430, 88, 220, 28); - // FILTER holds 6 knobs (incl. per-note VEL CUT / VEL RES), so the type - // dropdown sits in the header row and the knobs form a 3x2 grid. + // FILTER holds 5 knobs on a single row (the per-note VEL RES knob was + // removed); the type dropdown sits in the header row and the knobs span + // the section width at the original large size. { - int fSize = 78; - int fGap = 6; - int gridW = 3 * fSize + 2 * fGap; - int fSx = 1152 + (498 - gridW) / 2; - int fRow1Y = 124; - int fRow2Y = fRow1Y + fSize + fGap; - filterCutoffKnob.setBounds(fSx, fRow1Y, fSize, fSize); - filterResKnob.setBounds(fSx + fSize + fGap, fRow1Y, fSize, fSize); - filterEnvAmtKnob.setBounds(fSx + (fSize + fGap) * 2, fRow1Y, fSize, fSize); - keyTrackKnob.setBounds(fSx, fRow2Y, fSize, fSize); - velToCutKnob.setBounds(fSx + fSize + fGap, fRow2Y, fSize, fSize); - velToResKnob.setBounds(fSx + (fSize + fGap) * 2, fRow2Y, fSize, fSize); + int fSize = 89; + int fGap = 8; + int rowW = 5 * fSize + 4 * fGap; + int fSx = 1152 + (498 - rowW) / 2; + int fRowY = 124; + filterCutoffKnob.setBounds(fSx, fRowY, fSize, fSize); + filterResKnob.setBounds(fSx + (fSize + fGap), fRowY, fSize, fSize); + filterEnvAmtKnob.setBounds(fSx + (fSize + fGap) * 2, fRowY, fSize, fSize); + keyTrackKnob.setBounds(fSx + (fSize + fGap) * 3, fRowY, fSize, fSize); + velToCutKnob.setBounds(fSx + (fSize + fGap) * 4, fRowY, fSize, fSize); } envLabel.setBounds(10, 302, 563, labelH); diff --git a/Source/PluginEditor.h b/Source/PluginEditor.h index 94b0e36..3216112 100644 --- a/Source/PluginEditor.h +++ b/Source/PluginEditor.h @@ -169,7 +169,7 @@ private: juce::ComboBox filterTypeBox; KnobSlider filterCutoffKnob, filterResKnob, filterEnvAmtKnob, keyTrackKnob, - velToCutKnob, velToResKnob; + velToCutKnob; KnobSlider envAttackKnob, envDecayKnob, envSustainKnob, envReleaseKnob; KnobSlider fEnvAttackKnob, fEnvDecayKnob, fEnvSustainKnob, fEnvReleaseKnob; @@ -271,7 +271,7 @@ private: std::unique_ptr osc1WaveAttach, osc2WaveAttach; std::unique_ptr filterTypeAttach; std::unique_ptr octaveTransposeAttach, semitoneTransposeAttach; - std::unique_ptr filterCutoffAttach, filterResAttach, filterEnvAmtAttach, keyTrackAttach, velToCutAttach, velToResAttach; + std::unique_ptr filterCutoffAttach, filterResAttach, filterEnvAmtAttach, keyTrackAttach, velToCutAttach; std::unique_ptr envAttackAttach, envDecayAttach, envSustainAttach, envReleaseAttach; std::unique_ptr fEnvAttackAttach, fEnvDecayAttach, fEnvSustainAttach, fEnvReleaseAttach; std::unique_ptr panAttach, driveAttach, masterAttach, pbRangeAttach;