diff --git a/src/sfizz/FilePool.cpp b/src/sfizz/FilePool.cpp index fb362170..e0028e36 100644 --- a/src/sfizz/FilePool.cpp +++ b/src/sfizz/FilePool.cpp @@ -43,7 +43,6 @@ void readBaseFile(SndfileHandle& sndFile, sfz::AudioBuffer& output, uint32_t { output.reset(); output.resize(numFrames + sfz::config::excessFileFrames); - output.clear(); if (reverse) sndFile.seek(-static_cast(numFrames), SEEK_END); @@ -52,10 +51,12 @@ void readBaseFile(SndfileHandle& sndFile, sfz::AudioBuffer& output, uint32_t if (channels == 1) { output.addChannel(); + output.clear(); sndFile.readf(output.channelWriter(0), numFrames); } else if (channels == 2) { output.addChannel(); output.addChannel(); + output.clear(); sfz::Buffer tempReadBuffer { 2 * numFrames }; sndFile.readf(tempReadBuffer.data(), numFrames); sfz::readInterleaved(tempReadBuffer, output.getSpan(0).first(numFrames), output.getSpan(1).first(numFrames));