From 4a9b77dd705790ec1c15fb139afdcc7093c8e2ad Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 20 Dec 2016 00:33:45 +0100 Subject: [PATCH] Corrected bug sound playing twice Samples count was not properly calculated on WAV loading --- src/audio.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/audio.c b/src/audio.c index 4435b7607..a9c07c39f 100644 --- a/src/audio.c +++ b/src/audio.c @@ -1083,11 +1083,13 @@ static Wave LoadWAV(const char *fileName) // Read in the sound data into the soundData variable fread(wave.data, waveData.subChunkSize, 1, wavFile); - // Now we set the variables that we need later - wave.sampleCount = waveData.subChunkSize; + // Store wave parameters wave.sampleRate = waveFormat.sampleRate; wave.sampleSize = waveFormat.bitsPerSample; wave.channels = waveFormat.numChannels; + + // NOTE: subChunkSize comes in bytes, we need to translate it to number of samples + wave.sampleCount = waveData.subChunkSize/(waveFormat.bitsPerSample/8); TraceLog(INFO, "[%s] WAV file loaded successfully (SampleRate: %i, SampleSize: %i, Channels: %i)", fileName, wave.sampleRate, wave.sampleSize, wave.channels); }