Fix to pass a Polyphony test.
This commit is contained in:
parent
4055582671
commit
342cd99dd9
1 changed files with 9 additions and 1 deletions
|
|
@ -102,9 +102,17 @@ void ADSREnvelope::getBlockInternal(absl::Span<Float> output) noexcept
|
||||||
// prevent computing the segment further than release point
|
// prevent computing the segment further than release point
|
||||||
size = std::min<size_t>(size, releaseDelay);
|
size = std::min<size_t>(size, releaseDelay);
|
||||||
} else if (releaseDelay == 0 && delay <= 0) {
|
} else if (releaseDelay == 0 && delay <= 0) {
|
||||||
|
if (delay < 0) {
|
||||||
// release takes effect this frame
|
// release takes effect this frame
|
||||||
currentState = State::Release;
|
currentState = State::Release;
|
||||||
|
} else {
|
||||||
|
// release takes effect the next frame
|
||||||
|
size = 1;
|
||||||
|
}
|
||||||
releaseDelay = -1;
|
releaseDelay = -1;
|
||||||
|
} else if (releaseDelay == -1 && currentState < State::Release && delay <= 0) {
|
||||||
|
// release takes effect this frame
|
||||||
|
currentState = State::Release;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue