diff --git a/sfizz/Voice.cpp b/sfizz/Voice.cpp index 9ffb5f1b..3132cb3e 100644 --- a/sfizz/Voice.cpp +++ b/sfizz/Voice.cpp @@ -344,7 +344,9 @@ void sfz::Voice::processStereo(AudioSpan buffer) noexcept void sfz::Voice::fillWithData(AudioSpan buffer) noexcept { auto source { [&]() { - if (region->canUsePreloadedData() || !dataReady) + if (region->canUsePreloadedData()) + return AudioSpan(*region->preloadedData); + else if (!dataReady) return AudioSpan(*region->preloadedData); else return AudioSpan(*fileData); @@ -483,8 +485,9 @@ void sfz::Voice::reset() noexcept void sfz::Voice::garbageCollect() noexcept { - if (state == State::idle && region == nullptr) + if (state == State::idle && region == nullptr) { fileData.reset(); + } } void sfz::Voice::expectFileData(unsigned ticket)