diff --git a/src/index.js b/src/index.js index bb544b0..fff1330 100644 --- a/src/index.js +++ b/src/index.js @@ -232,12 +232,15 @@ class AudioEngine { let loaderPromise = null; + // Make a copy of the buffer because decoding detaches the original buffer + var bufferCopy = sound.data.buffer.slice(0); + switch (sound.format) { case '': - loaderPromise = Tone.context.decodeAudioData(sound.data.buffer); + loaderPromise = Tone.context.decodeAudioData(bufferCopy); break; case 'adpcm': - loaderPromise = (new ADPCMSoundDecoder()).decode(sound.data.buffer); + loaderPromise = (new ADPCMSoundDecoder()).decode(bufferCopy); break; default: return log.warn('unknown sound format', sound.format);