Getting PCM values of WAV files

Posted by user2431088 on Stack Overflow See other posts from Stack Overflow or by user2431088
Published on 2013-07-01T12:51:28Z Indexed on 2013/07/01 17:07 UTC
Read the original article Hit count: 354

Filed under:
|
|

I have a .wav mono file (16bit,44.1kHz) and im using this code below. If im not wrong, this would give me an output of values between -1 and 1 which i can apply FFT on ( to be converted to a spectrogram later on). However, my output is no where near -1 and 1.

This is a portion of my output

7.01214599609375  
17750.2552337646  
8308.42733764648  
0.000274658203125  
1.00001525878906  
0.67291259765625  
1.3458251953125  
16.0000305175781  
24932  
758.380676269531  
0.0001068115234375    

This is the code which i got from another post
Edit 1:

 public static Double[] prepare(String wavePath, out int SampleRate)
    {
        Double[] data;
        byte[] wave;
        byte[] sR = new byte[4];
        System.IO.FileStream WaveFile = System.IO.File.OpenRead(wavePath);
        wave = new byte[WaveFile.Length];
        data = new Double[(wave.Length - 44) / 4];//shifting the headers out of the PCM data;
        WaveFile.Read(wave, 0, Convert.ToInt32(WaveFile.Length));//read the wave file into the wave variable
        /***********Converting and PCM accounting***************/
       for (int i = 0; i < data.Length; i += 2)
        {
             data[i] = BitConverter.ToInt16(wave, i) / 32768.0;
        }


        /**************assigning sample rate**********************/
        for (int i = 24; i < 28; i++)
        {
            sR[i - 24] = wave[i];
        }
        SampleRate = BitConverter.ToInt16(sR, 0);
        return data;
    }

© Stack Overflow or respective owner

Related posts about c#

Related posts about fft