diff --git a/modules/juce_audio_basics/utilities/juce_ADSR.h b/modules/juce_audio_basics/utilities/juce_ADSR.h index 6de3e8dae1..23d7aed78e 100644 --- a/modules/juce_audio_basics/utilities/juce_ADSR.h +++ b/modules/juce_audio_basics/utilities/juce_ADSR.h @@ -102,12 +102,6 @@ public: { envelopeVal = 0.0f; currentState = State::idle; - - if (resetReleaseRate) - { - releaseRate = static_cast (sustainLevel / (currentParameters.release * sr)); - resetReleaseRate = false; - } } /** Starts the attack phase of the envelope. */ @@ -133,14 +127,9 @@ public: { if (currentState != State::idle) { - if (releaseRate > 0.0f) + if (currentParameters.release > 0.0f) { - if (currentState != State::sustain) - { - releaseRate = static_cast (envelopeVal / (currentParameters.release * sr)); - resetReleaseRate = true; - } - + releaseRate = static_cast (envelopeVal / (currentParameters.release * sr)); currentState = State::release; } else @@ -231,7 +220,6 @@ private: 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); } void checkCurrentState() @@ -249,7 +237,6 @@ private: double sr = 0.0; float envelopeVal = 0.0f, sustainLevel = 0.0f, attackRate = 0.0f, decayRate = 0.0f, releaseRate = 0.0f; - bool resetReleaseRate = false; }; } // namespace juce