Sound Frequenzenspektrum bekommen....

Clipp3r

Grünschnabel
Hallo Leute!

Also, langsam habe ich das Gefühl, dass es noch niemand probiert hat, oder ich nach den falschen Sachen suche.

Ich will in C# mit Hilfe von DirectX das Frequenzenspektrum einer Musikdatei bekommen.
Also von mir aus ein Array gefüllt mit doubles die die Amplitude der entsprechenden Frequenz darstellt. (ähnlich wie bei FMod)

Ja, ich weiß, dass FMod gerade diese Funktion bietet, doch will ich für das spielen von Musik und der gleichen DirectX verwenden. Ich meine, es muss doch möglich sein in .NET/C# mit DirectX an die Frequenzen zu kommen, oder?

Ich hoffe mir kann jemand helfen, denn hier komm ich garnicht weiter.

Gruß und Danke,
Clipper
 
Hallo,

um von diskreten Amplitudenwerten auf eine Frequenzverteilung zu kommen, musst du eine diskrete Fourier-Transformation durchführen. Soweit ich weiß, bietet DirectX hier keine entsprechende Funktionalität an. Du müsstest also entweder selber eine Implementation schreiben oder auf eine Bibliothek zurückgreifen.

Grüße,
Matthias
 

Clipp3r

Grünschnabel
Hi!

Danke erstmal für deine Antwort.
Also, dass ich die FFT benutzen muss ist mir klar, jedoch brauche ich ja erstmal irgendetwas um diese darauf anzuwenden. Und genau diese Werte fehlen mir....
 

chmee

verstaubtes inventar
Premium-User
? Wenn Du das Frequenzspektrum schon hast, benötigst Du ja keine FFT mehr, sondern wie es mir scheint, möchtest Du quasi den Umkehrweg gehen.. *Wunder*

Grundsätzlich sollte man eine FFT auf die Wav-Datei anwenden. Diese ist 2dimensional (Zeit/Amplitude).

mfg chmee