2010-03-08 11 views
12

Ich bin ein Student der Elektronik und Telekommunikation, neben meinem Abschluss. Ich werde an einem Projekt arbeiten, das mein Wissen über DSP, Musik und Audio im Allgemeinen einbezieht. Ich kenne bereits alle grundlegenden mathematischen Instrumente und alles, was ich dazu brauche, wie FFT, Circular Convolution ecc ecc.Wie schreibt man C++ Audio-Verarbeitungsanwendungen?

Ich möchte lernen C++ - Programmierung aus einem Grund: es ist sehr wichtig in der Berufswelt !!! Und ich denke, es ist eines der am häufigsten verwendeten, um Anwendungen zu schreiben, die mit Audio arbeiten, besonders wenn es um Echtzeitverarbeitung geht.

Ok, nach dieser kleinen Einführung würde ich gerne zuerst wissen, welches die am häufigsten verwendeten Bibliotheken sind, um mit Audioverarbeitung in C++ zu arbeiten ?? Ich habe länger im Internet gesucht, aber ich konnte nicht viel Arbeit finden. (Ich arbeite unter Linux mit Eclipse CDT-Umgebung).

Dann würde ich gerne wissen, ob es gute Quellen gibt, um zu lernen, wie man einen Arbeitscode schreibt, wie zum Beispiel, wie man einen einfachen Tiefpassfilter schreibt. Im Grunde werde ich jetzt keine Echtzeit-Anwendungen schreiben, sondern möchte von der Bearbeitung einer WAV-Datei, oder besser noch einer MP3-Datei, also grundsätzlich auf Vektoren von Samples ausgehen.

Nehmen wir an, dass ich im Moment für den Moment möchte ich die Wellenform aus einer Audiodatei extrahieren, und speichern Sie es in ein Miniaturbild oder ein PNG-Bild.

Ok, für jetzt denke ich, es ist alles was ich brauche.

Irgendwelche Ideen, Ratschläge, Büchereien, Bücher, interessante Quellen darüber?

Vielen Dank im Voraus für jede Art von Antwort.

Giovanni.

+0

Welche Programmiersprachen tun Sie alre weißt du das? – sbi

Antwort

4

Ich würde vorschlagen, dass Sie Ihren eigenen WAVE-Dateileser und -schreiber in C++ schreiben, ohne auf externe Bibliotheken angewiesen zu sein. Das WAVE-Format ist ziemlich einfach, zumindest wenn Sie nur die gängigsten Wave-Dateien unterstützen wollen.

Dann haben Sie Zugriff auf die Audiodaten, die Sie in C++ leicht manipulieren können. Ich würde empfehlen, zunächst die Lautstärke, die Anzahl der Kanäle zur Berechnung der Audio-Statistiken zu ändern. Erstellen eines PNG der Audio-Wellenform erfordert einige erweiterte C++ Fähigkeiten ...

+0

Ok! Sehr gut, es kann etwas sein, mit dem man anfangen kann. Wie kann ich das machen? Gibt es Tutorials? Ich weiß, wie WAV-Dateien strukturiert sind, aber ich weiß nicht, wie man Audiodateien auf C++ öffnet, ist das der normale Dateistrom, der sich öffnet? Oder gibt es etwas mehr, das ich brauchen würde? – Cesko82

+1

Es ist ein normaler Dateistream. Sie können lesen und schreiben wie Sie möchten. Aber ich würde Ihnen empfehlen, sich zuerst C++ genauer anzuschauen, anstatt in DSP zu gehen, ohne einige Grundlagen dieser Programmiersprache zu kennen. Sie könnten leicht in Anzahl von Problemen laufen. Haben Sie in anderen Sprachen programmiert? – Adi

+0

Ja, ich habe es auf Python und manchmal auf Java gemacht. Ich habe bereits ein Routin mit Python geschrieben, das Matlab-ähnliche Bibliotheken verwendet, aber das benötigt zu viel Ram, um eine Wellenform zu zeichnen, da eine Videobibliothek verwendet wird, die den Grafikkartentreiber aktiviert. Ich möchte jetzt nur Wellenformen für eine Datei exportieren und vielleicht zwei Audiodateien zusammenmischen. – Cesko82

1

Ich habe BASS mit guten Ergebnissen verwendet (es gibt eine C/C++ API, die Sie verwenden können).

+0

das klingt nett, aber ich kann es nicht auf Repositories finden, wie kann ich es auf meiner karmischen Koala-Distribution verwalten? – Cesko82

+0

Ah, tut mir leid, irgendwie habe ich verpasst, dass du Linux benutzt hast. Hier (http://www.un4seen.com/forum/?topic=8682.0) ist ein offizieller Build, den Sie herunterladen können. Auch etwas zu BASS zu beachten: Es ist nicht Open Source und kostenlos nur für den nicht-kommerziellen Gebrauch, also kann es sein, oder nicht sein, was Sie suchen, aber es ist einen Besuch wert. – DSB

6

Überprüfen Sie diese link, die Ihnen einige Informationen über die verfügbare (kommerzielle und Open Source) Audio-Bearbeitungs-Software geben wird.

einige interessante Open-Source-Audio-Editing-Tools, die in C++ geschrieben sind

  1. Audacity
  2. LMMS
  3. Qtractor
  4. Ardour
  5. Rosegarden

C++ - Bibliothek für Audioverarbeitung.

  1. SndObj
  2. The Synthesis ToolKit in C++

C++ Code und Links im Zusammenhang Filter und Audio-Verarbeitung ..

C++ code for Filter,Audio Processing

Code Guru,Low pass filter