diff --git a/src/sfizz/ADSREnvelope.cpp b/src/sfizz/ADSREnvelope.cpp index d44ad9b5..3f5a7f32 100644 --- a/src/sfizz/ADSREnvelope.cpp +++ b/src/sfizz/ADSREnvelope.cpp @@ -34,7 +34,8 @@ void ADSREnvelope::reset(const EGDescription& desc, const Region& region, this->releaseRate = secondsToExpRate(desc.getRelease(state, velocity)); this->hold = secondsToSamples(desc.getHold(state, velocity)); this->peak = 1.0; - this->sustain = normalizePercents(desc.getSustain(state, velocity)); + this->sustain = normalizePercents(desc.getSustain(state, velocity)); + this->sustain = max(this->sustain, config::virtuallyZero); this->start = this->peak * normalizePercents(desc.getStart(state, velocity)); releaseDelay = 0;