 <p>Look at your <a href="https://ccrma.stanford.edu/courses/422/projects/WaveFormat/" rel="nofollow">RIFF header</a>. This will tell you the endianness of the Wav file. </p> <p>Use that endian-ness to read in your 32-bit floats correctly. For example: If your system is little endian (say, based on an x86 processor) and your wav file is big endian(say, created on an old PPC mac), you will need to do a <a href="http://stackoverflow.com/questions/2182002/convert-big-endian-to-little-endian-in-c-without-using-provided-func">32-bit endian swap</a> after you read in the data so that your float variable actually contains data that makes sense (this is usually a value between -1.0f and 1.0f )</p>