diff --git a/sources/Voice.cpp b/sources/Voice.cpp index fc1448d6..7d94099c 100644 --- a/sources/Voice.cpp +++ b/sources/Voice.cpp @@ -197,6 +197,7 @@ void sfz::Voice::fillWithData(StereoSpan buffer) noexcept if (!region->shouldLoop() && (floatPosition + 1.01) > source.size()) { DBG("Releasing " << region->sample); + state = State::release; egEnvelope.startRelease(buffer.size()); } } @@ -218,7 +219,9 @@ void sfz::Voice::fillWithGenerator(StereoSpan buffer) noexcept bool sfz::Voice::checkOffGroup(int delay [[maybe_unused]], uint32_t group) noexcept { if (region != nullptr && triggerType == TriggerType::NoteOn && region->offBy && *region->offBy == group) { - // TODO: release + DBG("Off group of sample " << region->sample); + state = State::release; + egEnvelope.startRelease(delay); return true; }