2010-08-06 39 views
5

Ya he buscado en Stackoverflow y google, pero no he encontrado lo que estoy buscando.
Hasta ahora obtuve los datos brutos de audio (archivo WAV) y quiero visualizarlos.Mostrar una forma de onda de audio usando C#

 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... 
    } 

Sé que necesito para convertir los datos en bruto en muestras y para verificar si el pico para cada muestra y dibujar líneas, pero realmente no saben cómo hacerlo (excepto en el dibujo).

+2

Como fundador de Gigasoft, tenemos una solución que simplifica esta necesidad y proporciona un código de ejemplo para reproducir y representar gráficamente los datos de wav, como Adobe Audition o Nero Wave Editor. Consulte nuestra pequeña demostración 18meg v8 [C# charting demo] (http://www.gigasoft.com) y revise el ejemplo de demostración 123. La descarga también incluye exprés de WPF y MFC y el código fuente para mostrar la curva de aprendizaje necesaria. Este ejemplo no se basa en bibliotecas dependientes y muestra el código mínimo para visualizar y reproducir un wav. – Robert

Respuesta

5

Visualiza los datos ... ¡Guauu! Debería consultar WAV file spec here y perhaps here y luego volver a pensar si esto es algo que realmente quiere abordar. (El segundo enlace es en realidad una visión general mejor y más sencilla. Eche un vistazo a la sección de datos para ver si es algo con lo que desea trabajar)

No me malinterprete. Tal vez esto es exactamente lo que quieres hacer, y podría ser divertido. ¡Deberías saber en lo que te estás metiendo!

Además, aquí hay un Code Project component que puede usar directamente o buscar ideas.

+0

Al "Visualizar los datos" quise mostrar una forma de onda simple basada en amplificador, no en visualización 3D ... De todos modos, este componente de proyecto de código es realmente útil, gracias. – Adir

Cuestiones relacionadas