Frequenzen einer WAVE?
-
Hallo!
Ich würde gerne an die einzelnen Frequenzen einer WAVE herankommen. Es sollte ja eigentlich gespeichert sein, wann eine Frequenz mit welcher Stärke gespielt wird, oder?
Ich hab mir schon mal die Spezifikationen von WAVE angesehen, aber die beschreiben nur den allgemeinen Aufbau der WAVE mit allen Chunks aber nicht den Aufbau der eigentlichen Sound-Daten...
Hat hier jemand evtl. einen Artikel oder Sourcecode?
Das ganze soll eine Art Equalizer werden...
-
In einer WAV-Datei stehen keine Frequenzen, wenn du eine unkomprimierte WAV-Datei meinst.
Es stehen Samples drin.
Die Anzahl der Samples pro Sekunde, die sample rate, kannst du anscheinend schon auslesen. Wenn nicht schau auf www.wotsit.org vorbei.Die maximal darstellbare Frequenz ist übrigens die halbe Samplerate, um zur Frequenz zurückzukommen.
Die Sounddaten sind AFAIK einfach nur aneindergereihte Samples. Das sind normalerweise 16Bit- oder 8Bit-Integer-Werte. Mehr ist das nicht.
-
danke erstmal...
bei wotsit hatte ich schon vorbeigeschaut, allerdings sagte bzw. sagt mir der Begriff Sampler nichts...
Ich hab mir schonmal entsprechende Lexikontexte durchgelesen allerdings wird aus denen nicht klar wie denn nun die Soundinfos in diesen Samplern gespeichert sind... Man kann doch nicht die zig Frequenzen die z.B. Musik ausmachen in einen Integer Wert pro Zeiteinheit stecken, oder doch?? Es müsste ja theoretisch gespeichert sein, wie stark jede Frequenz zum Zeitpunkt gespielt wird...
-
Ich habe Samples und keine Sampler gemeint.
Sampler sind etwas ganz anderes.Weißt du, wie Schall in der Luft aussieht?
=> Schall sind Druckschwankungen.
Und diese Druckschwankungen hängen von der Frequenz ab: Viele Schwankungen pro Sekunde = hoher Ton, wenige Schwankungen = niedriger Ton, starke Schwankungen = laut, schwache Schwankungen = leise.Dieser Druck der Luft ist das, was aufgezeichnet wird. Dabei werden alle der tausenden von Frequenzen der Musik auf einmal erfasst. Das ergibt dann eine etwas chaotisch aussehende Linie, wenn man die Druckschwankungen als Gaph darstellt.
Diese Linie ist aber in keiner Weise mathematisch beschrieben. Es stehen keine einzelnen Frequenzen drin. Definitiv nicht.Bei einer CD z.B. wird 44100mal pro Sekunde der aktuelle Schalldruck gemessen und gespeichert. Beim Abspielen werden diese Messwerte (das sind die Samples) als Stromschwankungen an die Lautsprecher weitergegeben. Erst die Lautsprecher machen daraus wieder die ursprünglichen Frequenzen.
Fazit:
An die einzelnen Frequenzen kommst du nur, indem du den WAV-Stream (die Summe aller Frequenzen) mit Hilfe irgendwelcher Algorithmen zerlegst. Diese Algorithmen sind mir leider nicht bekannt. Mit Google lässt sich aber ziemlich sicher was in der Richtung auftreiben.
-
Im Endeffekt hast du hier ein sogennantes Amplitudenmoduliertes Signal, welches mit der Sampling Frequenz ca 44Khz diskretisiert ist.
Wenn du Equalizer spielen willst, kannst du von Abschnitten in realtime eine FFT Rechnen die entsprechenden Fregquenzen mit mehreren Bandfiltern verändern, das Ergebnis zurücktransformieren und dann ausgeben.Normalerweise nimmt man dafür Signalprozessoren die auf so etwas optimiert sind, aber ein 3GHz Pentium sollte reichen.
-
danke!
damit bin ich schon mal ein gutes stück weitergekommen!