diff --git a/modules/juce_audio_basics/utilities/juce_ADSR.h b/modules/juce_audio_basics/utilities/juce_ADSR.h index 41bfb1bfe8..3821333f06 100644 --- a/modules/juce_audio_basics/utilities/juce_ADSR.h +++ b/modules/juce_audio_basics/utilities/juce_ADSR.h @@ -200,9 +200,9 @@ private: // need to call setSampleRate() first! jassert (sr > 0.0); - attackRate = (parameters.attack > 0.0f ? static_cast (1.0f / (parameters.attack * sr)) : -1.0f); - decayRate = (parameters.decay > 0.0f ? static_cast (1.0f / (parameters.decay * sr)) : -1.0f); - releaseRate = (parameters.release > 0.0f ? static_cast (1.0f / (parameters.release * sr)) : -1.0f); + attackRate = (parameters.attack > 0.0f ? static_cast (1.0f / (parameters.attack * sr)) : -1.0f); + decayRate = (parameters.decay > 0.0f ? static_cast ((1.0f - sustainLevel) / (parameters.decay * sr)) : -1.0f); + releaseRate = (parameters.release > 0.0f ? static_cast (sustainLevel / (parameters.release * sr)) : -1.0f); } //==============================================================================