From ab35581786e7f563fb510704eb677d2cfa0e24c5 Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Thu, 1 Oct 2020 14:03:10 +0200 Subject: [PATCH] Xfade related to file sample rate, with oversampling considered --- src/sfizz/Voice.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sfizz/Voice.cpp b/src/sfizz/Voice.cpp index 574fd2a9..8f655f77 100644 --- a/src/sfizz/Voice.cpp +++ b/src/sfizz/Voice.cpp @@ -574,7 +574,8 @@ void sfz::Voice::fillWithData(AudioSpan buffer) noexcept if (isLooping) { loopStart = static_cast(region->loopStart(currentPromise->oversamplingFactor)); loopSize = loopEnd + 1 - loopStart; - loopXfadeSize = static_cast(lroundPositive(region->loopCrossfade * sampleRate)); + loopXfadeSize = static_cast( + lroundPositive(region->loopCrossfade * static_cast(currentPromise->oversamplingFactor) * currentPromise->sampleRate)); loopXfOutStart = loopEnd + 1 - loopXfadeSize; loopXfInStart = loopStart - loopXfadeSize; for (auto& buf : xfadeTemp) {