diff --git a/plugins/mimid/Engine/AdssrEnvelope.h b/plugins/mimid/Engine/AdssrEnvelope.h index 902e7ea..0fbd46a 100644 --- a/plugins/mimid/Engine/AdssrEnvelope.h +++ b/plugins/mimid/Engine/AdssrEnvelope.h @@ -146,8 +146,8 @@ class AdssrEnvelope void setSustain(float sus) { sustain = sus; - sustain_asymptote = calc_sustain_asymptote(); if (state == DEC || state == SUS) { + sustain_asymptote = calc_sustain_asymptote(); // Chase sustain level at decay rate, if sustain // level changed in ADSR mode if (Value > sustain) { @@ -206,6 +206,7 @@ class AdssrEnvelope Value = 1.0f; state = DEC; coef = coef_dec(decay); + sustain_asymptote = calc_sustain_asymptote(); dir = 1; } break;