From b8b0624a80e9424d8740945fc176b926de64b92f Mon Sep 17 00:00:00 2001 From: Armin Date: Wed, 15 Jul 2026 23:52:33 +0200 Subject: [PATCH] Make master fader natural by applying it as final post-limiter stage --- Source/PluginProcessor.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Source/PluginProcessor.cpp b/Source/PluginProcessor.cpp index e9432d5..f4dc10a 100644 --- a/Source/PluginProcessor.cpp +++ b/Source/PluginProcessor.cpp @@ -337,7 +337,7 @@ void ChromaFlockProcessor::updateVoiceParameters() { getParam("fEnvRelease"), getParam("pan"), getParam("drive"), - getParam("masterLevel"), + 1.0f, l1Rate, getParam("lfo1Depth"), static_cast(getParam("lfo1Shape")), @@ -469,6 +469,12 @@ void ChromaFlockProcessor::processBlock(juce::AudioBuffer& buffer, juce:: // Reverb (block-based) reverbFX.process(leftData, rightData, numSamples); + // Master volume — final stage, after limiter/reverb. + for (int i = 0; i < numSamples; ++i) { + leftData[i] *= masterGain; + rightData[i] *= masterGain; + } + // Metering float sumSquares = 0.0f; float peak = 0.0f;