Fix filter env: restore unipolar modulation so all env knobs are responsive

Reverts the sustain-relative modulation that made F.ENV SUS and the
cutoff knob feel dead while a note was held. The envelope now modulates
up from the base cutoff; at env amount 0 the cutoff equals the knob, and
lowering env amount darkens the held tone as expected.

Also extends the filter to 24/48 dB modes (extra TPT stages), adds the
matching combobox options, gives knobs a real blurred drop shadow, and
updates the AGENTS.md filterType choice count.
This commit is contained in:
Armin 2026-08-13 14:15:41 +02:00
commit a1cd68b6b3
5 changed files with 38 additions and 18 deletions

View file

@ -47,9 +47,11 @@ void KnobLookAndFeel::drawRotarySlider(juce::Graphics& g, int x, int y, int widt
auto rw = radius * 2.0f;
auto angle = rotaryStartAngle + sliderPos * (rotaryEndAngle - rotaryStartAngle);
// Drop shadow
g.setColour(juce::Colour(0x40000000));
g.fillEllipse(rx + 2.0f, ry + 3.0f, rw, rw);
// Blurred drop shadow
juce::DropShadow knobShadow(juce::Colour(0x55000000), 10, juce::Point<int>(0, 5));
juce::Path shadowPath;
shadowPath.addEllipse(juce::Rectangle<float>(rx, ry, rw, rw));
knobShadow.drawForPath(g, shadowPath);
// Outer bevel (dark bottom-right, light top-left)
auto bevelPath = juce::Path();
@ -620,7 +622,8 @@ MainContentComponent::MainContentComponent(ChromaFlockProcessor& p)
setupParam(phaseOffsetKnob, phaseOffsetAttach, "phaseOffset", "PHASE");
setupLabel(filterLabel, "FILTER");
setupCB(filterTypeBox, filterTypeAttach, "filterType", {"LP 12dB", "LP 24dB", "Band Pass", "High Pass", "Notch"});
setupCB(filterTypeBox, filterTypeAttach, "filterType", {"LP 12dB", "LP 24dB", "Band Pass", "High Pass", "Notch",
"Band Pass 24", "High Pass 24", "Notch 24", "LP 48dB"});
setupParam(filterCutoffKnob, filterCutoffAttach, "filterCutoff", "CUTOFF");
setupParam(filterResKnob, filterResAttach, "filterRes", "RES");
setupParam(filterEnvAmtKnob, filterEnvAmtAttach, "filterEnvAmt", "ENV AMT");