From a20a4c0029506763f9dbfcc7cdd5e860b99dcafd Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Sun, 27 Sep 2020 11:25:43 +0200 Subject: [PATCH] flexEG: If stage is of zero duration, immediate transition to level --- src/sfizz/FlexEnvelope.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/sfizz/FlexEnvelope.cpp b/src/sfizz/FlexEnvelope.cpp index 70dc0948..c58d3ae5 100644 --- a/src/sfizz/FlexEnvelope.cpp +++ b/src/sfizz/FlexEnvelope.cpp @@ -144,6 +144,9 @@ void FlexEnvelope::Impl::process(absl::Span out) const bool isReleased = isReleased_; while ((!stageSustained_ && currentTime_ >= stageTime_) || (stageSustained_ && isReleased)) { + // If stage is of zero duration, immediate transition to level + if (!stageSustained_ && stageTime_ == 0) + currentLevel_ = stageTargetLevel_; if (!advanceToNextStage()) { out.remove_prefix(frameIndex); fill(out, 0.0f);