2010-08-06 3 views
5

Ich habe bereits bei Stackoverflow und Google gesucht, aber habe nicht gefunden, wonach ich suche.
Bis jetzt habe ich die Audio-Rohdaten (WAV-Datei) und ich möchte es visualisieren.Anzeige einer Audio-Wellenform mit 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... 
    } 

Ich weiß, ich brauche die Rohdaten in Proben konvertieren und dann für jede Probe für die Spitzen zu überprüfen und Linien zeichnen, aber ich weiß wirklich nicht, wie es zu tun (mit Ausnahme der Zeichnung).

+2

Als Gigasoft-Gründer haben wir eine Lösung, die diese Anforderung vereinfacht und Beispielcode zum Abspielen und Chart der WAV-Daten ähnlich wie Adobe Audition oder Nero Wave Editor bereitstellt. Sehen Sie sich unsere kleine 18mg v8 [C# -Diagramm-Demo] an (http://www.gigasoft.com) und sehen Sie sich das Demo-Beispiel 123 an. Der Download enthält auch WPF- und MFC-Exes und Quellcode, um die notwendige Lernkurve zu zeigen. Dieses Beispiel basiert nicht auf abhängigen Bibliotheken und zeigt den minimalen Code zum Visualisieren und Abspielen eines Wavs. – Robert

Antwort

5

Visualisieren Sie die Daten ... Beeindruckend! Sie sollten die WAV file spec here und perhaps here überprüfen und dann überdenken, ob das etwas ist, was Sie eigentlich angehen wollen. (Der zweite Link ist eigentlich ein besserer, optimierterer Überblick. Schauen Sie sich den Datenbereich an, um zu sehen, ob Sie damit arbeiten möchten.)

Verstehen Sie mich nicht falsch. Vielleicht ist das genau das was du machen willst und es könnte Spaß machen. Du solltest nur wissen, worauf du hinaus willst!

Auch hier ist eine Code Project component, die Sie direkt verwenden oder für Ideen suchen könnten.

+0

Mit "Visualize die Daten" meine ich Display eine einfache Wellenform basierend auf Verstärker, nicht 3D-Visualisierung ... Wie auch immer dieser Code-Projekt-Komponente ist wirklich hilfreich, danke. – Adir