We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 4055582 commit 342cd99Copy full SHA for 342cd99
src/sfizz/ADSREnvelope.cpp
@@ -102,9 +102,17 @@ void ADSREnvelope::getBlockInternal(absl::Span<Float> output) noexcept
102
// prevent computing the segment further than release point
103
size = std::min<size_t>(size, releaseDelay);
104
} else if (releaseDelay == 0 && delay <= 0) {
105
+ if (delay < 0) {
106
+ // release takes effect this frame
107
+ currentState = State::Release;
108
+ } else {
109
+ // release takes effect the next frame
110
+ size = 1;
111
+ }
112
+ releaseDelay = -1;
113
+ } else if (releaseDelay == -1 && currentState < State::Release && delay <= 0) {
114
// release takes effect this frame
115
currentState = State::Release;
- releaseDelay = -1;
116
}
117
118
0 commit comments