I've already searched at Stackoverflow and google, but haven't found what I'm looking for.
So far I got the audio raw data(WAV File) and I want to visualize it.
private void Form1_Load(object sender, EventArgs e) { FileStream fs = new FileStream("D:\\tada.wav", FileMode.Open); BinaryReader reader = new BinaryReader(fs); char[] data = new char[4]; long fsize; long wfxSize; long dataSize; WaveFormatEx wfx; //RIFF reader.Read(data, 0, 4); fsize = reader.ReadInt32(); //WAVE reader.Read(data, 0, 4); //FMT reader.Read(data, 0, 4); wfxSize = reader.ReadInt32(); byte[] wfxBuffer = new byte[wfxSize]; reader.Read(wfxBuffer, 0, (int)wfxSize); wfx = new WaveFormatEx(wfxBuffer); //DATA reader.Read(data, 0, 4); dataSize = reader.ReadInt32(); byte[] dataBuff = new byte[dataSize]; reader.Read(dataBuff, 0, (int)dataSize); reader.Close(); //Visualize the data... }
I know I need to convert the raw data into samples and then check for the peak for each sample and draw lines, but I really don't know how to do it(except for the drawing).