diff --git a/modules/juce_dsp/processors/juce_BallisticsFilter.cpp b/modules/juce_dsp/processors/juce_BallisticsFilter.cpp index 8ed7bbc937..e9fcf5ee35 100644 --- a/modules/juce_dsp/processors/juce_BallisticsFilter.cpp +++ b/modules/juce_dsp/processors/juce_BallisticsFilter.cpp @@ -92,13 +92,13 @@ SampleType BallisticsFilter::processSample (int channel, SampleType { jassert (isPositiveAndBelow (channel, yold.size())); - SampleType cte = (inputValue > yold[(size_t) channel] ? cteAT : cteRL); - if (levelType == LevelCalculationType::RMS) inputValue *= inputValue; else inputValue = std::abs (inputValue); + SampleType cte = (inputValue > yold[(size_t) channel] ? cteAT : cteRL); + SampleType result = inputValue + cte * (yold[(size_t) channel] - inputValue); yold[(size_t) channel] = result;