Remove VEL RES knob; lay out filter knobs in a single 5-knob row

This commit is contained in:
Armin 2026-08-30 00:24:41 +02:00
commit 917956e1ec
2 changed files with 15 additions and 17 deletions

View file

@ -641,7 +641,6 @@ MainContentComponent::MainContentComponent(ChromaFlockProcessor& p)
setupParam(filterEnvAmtKnob, filterEnvAmtAttach, "filterEnvAmt", "ENV AMT"); setupParam(filterEnvAmtKnob, filterEnvAmtAttach, "filterEnvAmt", "ENV AMT");
setupParam(keyTrackKnob, keyTrackAttach, "keyTrack", "KEY TRK"); setupParam(keyTrackKnob, keyTrackAttach, "keyTrack", "KEY TRK");
setupParam(velToCutKnob, velToCutAttach, "velToCut", "VEL CUT"); setupParam(velToCutKnob, velToCutAttach, "velToCut", "VEL CUT");
setupParam(velToResKnob, velToResAttach, "velToRes", "VEL RES");
setupLabel(envLabel, "AMP ENV"); setupLabel(envLabel, "AMP ENV");
setupParam(envAttackKnob, envAttackAttach, "envAttack", "ATTACK"); setupParam(envAttackKnob, envAttackAttach, "envAttack", "ATTACK");
@ -1250,21 +1249,20 @@ void MainContentComponent::resized() {
filterLabel.setBounds(1152, sectionY, 498, labelH); filterLabel.setBounds(1152, sectionY, 498, labelH);
filterTypeBox.setBounds(1430, 88, 220, 28); filterTypeBox.setBounds(1430, 88, 220, 28);
// FILTER holds 6 knobs (incl. per-note VEL CUT / VEL RES), so the type // FILTER holds 5 knobs on a single row (the per-note VEL RES knob was
// dropdown sits in the header row and the knobs form a 3x2 grid. // 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 fSize = 89;
int fGap = 6; int fGap = 8;
int gridW = 3 * fSize + 2 * fGap; int rowW = 5 * fSize + 4 * fGap;
int fSx = 1152 + (498 - gridW) / 2; int fSx = 1152 + (498 - rowW) / 2;
int fRow1Y = 124; int fRowY = 124;
int fRow2Y = fRow1Y + fSize + fGap; filterCutoffKnob.setBounds(fSx, fRowY, fSize, fSize);
filterCutoffKnob.setBounds(fSx, fRow1Y, fSize, fSize); filterResKnob.setBounds(fSx + (fSize + fGap), fRowY, fSize, fSize);
filterResKnob.setBounds(fSx + fSize + fGap, fRow1Y, fSize, fSize); filterEnvAmtKnob.setBounds(fSx + (fSize + fGap) * 2, fRowY, fSize, fSize);
filterEnvAmtKnob.setBounds(fSx + (fSize + fGap) * 2, fRow1Y, fSize, fSize); keyTrackKnob.setBounds(fSx + (fSize + fGap) * 3, fRowY, fSize, fSize);
keyTrackKnob.setBounds(fSx, fRow2Y, fSize, fSize); velToCutKnob.setBounds(fSx + (fSize + fGap) * 4, fRowY, fSize, fSize);
velToCutKnob.setBounds(fSx + fSize + fGap, fRow2Y, fSize, fSize);
velToResKnob.setBounds(fSx + (fSize + fGap) * 2, fRow2Y, fSize, fSize);
} }
envLabel.setBounds(10, 302, 563, labelH); envLabel.setBounds(10, 302, 563, labelH);

View file

@ -169,7 +169,7 @@ private:
juce::ComboBox filterTypeBox; juce::ComboBox filterTypeBox;
KnobSlider filterCutoffKnob, filterResKnob, filterEnvAmtKnob, keyTrackKnob, KnobSlider filterCutoffKnob, filterResKnob, filterEnvAmtKnob, keyTrackKnob,
velToCutKnob, velToResKnob; velToCutKnob;
KnobSlider envAttackKnob, envDecayKnob, envSustainKnob, envReleaseKnob; KnobSlider envAttackKnob, envDecayKnob, envSustainKnob, envReleaseKnob;
KnobSlider fEnvAttackKnob, fEnvDecayKnob, fEnvSustainKnob, fEnvReleaseKnob; KnobSlider fEnvAttackKnob, fEnvDecayKnob, fEnvSustainKnob, fEnvReleaseKnob;
@ -271,7 +271,7 @@ private:
std::unique_ptr<ComboBoxAttachment> osc1WaveAttach, osc2WaveAttach; std::unique_ptr<ComboBoxAttachment> osc1WaveAttach, osc2WaveAttach;
std::unique_ptr<IndexedComboBoxAttachment> filterTypeAttach; std::unique_ptr<IndexedComboBoxAttachment> filterTypeAttach;
std::unique_ptr<ComboBoxAttachment> octaveTransposeAttach, semitoneTransposeAttach; std::unique_ptr<ComboBoxAttachment> octaveTransposeAttach, semitoneTransposeAttach;
std::unique_ptr<SliderAttachment> filterCutoffAttach, filterResAttach, filterEnvAmtAttach, keyTrackAttach, velToCutAttach, velToResAttach; std::unique_ptr<SliderAttachment> filterCutoffAttach, filterResAttach, filterEnvAmtAttach, keyTrackAttach, velToCutAttach;
std::unique_ptr<SliderAttachment> envAttackAttach, envDecayAttach, envSustainAttach, envReleaseAttach; std::unique_ptr<SliderAttachment> envAttackAttach, envDecayAttach, envSustainAttach, envReleaseAttach;
std::unique_ptr<SliderAttachment> fEnvAttackAttach, fEnvDecayAttach, fEnvSustainAttach, fEnvReleaseAttach; std::unique_ptr<SliderAttachment> fEnvAttackAttach, fEnvDecayAttach, fEnvSustainAttach, fEnvReleaseAttach;
std::unique_ptr<SliderAttachment> panAttach, driveAttach, masterAttach, pbRangeAttach; std::unique_ptr<SliderAttachment> panAttach, driveAttach, masterAttach, pbRangeAttach;