diff --git a/src/sfizz/Voice.cpp b/src/sfizz/Voice.cpp index a370044f..0b1ee1aa 100644 --- a/src/sfizz/Voice.cpp +++ b/src/sfizz/Voice.cpp @@ -571,7 +571,7 @@ void sfz::Voice::fillWithData(AudioSpan buffer) noexcept if (isLooping) { loopStart = static_cast(region->loopStart(currentPromise->oversamplingFactor)); loopSize = loopEnd + 1 - loopStart; - loopXfadeSize = static_cast(region->loopCrossfade * sampleRate + 0.5); + loopXfadeSize = static_cast(lroundPositive(region->loopCrossfade * sampleRate)); loopXfOutStart = loopEnd + 1 - loopXfadeSize; loopXfInStart = loopStart - loopXfadeSize; for (auto& buf : xfadeTemp) {