diff --git a/src/sfizz/Voice.cpp b/src/sfizz/Voice.cpp index 2069d9b7..e1ebcd33 100644 --- a/src/sfizz/Voice.cpp +++ b/src/sfizz/Voice.cpp @@ -1092,10 +1092,11 @@ void sfz::Voice::updateLoopInformation() noexcept if (!region->shouldLoop()) return; const auto& info = currentPromise->information; + const auto factor = resources.filePool.getOversamplingFactor(); const auto rate = info.sampleRate; - loop.end = static_cast(info.loopEnd); - loop.start = static_cast(info.loopBegin); + loop.end = static_cast(region->loopEnd(factor)); + loop.start = static_cast(region->loopStart(factor)); loop.size = loop.end + 1 - loop.start; loop.xfSize = static_cast(lroundPositive(region->loopCrossfade * rate)); loop.xfOutStart = loop.end + 1 - loop.xfSize;