diff --git a/src/sfizz/FilePool.h b/src/sfizz/FilePool.h index 94e9fa1d..1e996756 100644 --- a/src/sfizz/FilePool.h +++ b/src/sfizz/FilePool.h @@ -68,12 +68,13 @@ struct FilePromise return AudioSpan(fileData) .subspan(sfz::config::excessFileFrames, fileData.getNumFrames() - 2 * sfz::config::excessFileFrames); - else if (availableFrames > preloadedData->getNumFrames()) - return AudioSpan(fileData).subspan(sfz::config::excessFileFrames, availableFrames); + else if (availableFrames > preloadedData->getNumFrames() + sfz::config::excessFileFrames) + return AudioSpan(fileData) + .subspan(sfz::config::excessFileFrames, availableFrames - sfz::config::excessFileFrames); else return AudioSpan(*preloadedData) .subspan(sfz::config::excessFileFrames, - preloadedData->getNumFrames() - sfz::config::excessFileFrames); + preloadedData->getNumFrames() - 2 * sfz::config::excessFileFrames); } void reset()