Skip to content

Commit 342cd99

Browse files
KKQ-KKQpaulfd
authored andcommitted
Fix to pass a Polyphony test.
1 parent 4055582 commit 342cd99

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/sfizz/ADSREnvelope.cpp

+9-1
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,17 @@ void ADSREnvelope::getBlockInternal(absl::Span<Float> output) noexcept
102102
// prevent computing the segment further than release point
103103
size = std::min<size_t>(size, releaseDelay);
104104
} 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) {
105114
// release takes effect this frame
106115
currentState = State::Release;
107-
releaseDelay = -1;
108116
}
109117
}
110118

0 commit comments

Comments
 (0)