Jump to content
Unity Insider Forum

Tonhöhe ermitteln


Siebenkeim

Recommended Posts

Hallo,

 

ich schreibe gerade ein Spiel wo ich die Tonhöhe von Liedern (MP3 Dateien) brauche.

Habe jetzt aus dem Stream der Audiodatei mittels dem FFT Algorithmus mehrere 1024 Byte Blobs bearbeitet.

Habe leider nicht soviel Ahnung von digitaler Signalverarbeitung (musste für den jetzigen Projektstand mehrere englische Foren durchwühlen).

Und wollte fragen ob sich hier jemand damit auskennt und mir vielleicht ein paar Tipps geben könnte wie ich jetzt mit den

X und Y Coords die ich durch den FFT Algorithmus zurückbekomme den Pitch herausbekomme.

Ziel ist es dann durch den Pitch die Tonarten herauszufeinden (wenn dies überhaupt möglich ist).

 

EDIT:

Die Frequenzbereiche ermittle ich so:


_FftSize = 1024;

for (int i = 0; i < _FftSize; i++)
listBox1.Items.Add(i * _Aggregator.WaveFormat.SampleRate / _FftSize);

 

EDIT2:

Habe jetzt etwas weiter rumprobiert und mir die Frequenzbereiche mit den Y - Werten ausgegeben:

oww3nxd7.png

 

Bei 93Hz ist ein sehr hoher Effektivwert. Heißt dies jetzt das der Ton dort "sehr stark" vorkommt?

Laut der Tabelle http://www.phy.mtu.e.../notefreqs.html müsste es ein F#2/Gb2 Ton sein.

 

Und was ist dann mit den Hertz Werten ab 20kHz aufwärts? Die kann doch der Mensch garnicht wahrnehmen oder?

<Cat>: das liegt daran, dass die Disketisierung im Zeitraum einer periodischen Wiederholung des Frequenzspektrums im Frequenzraum entspricht <Cat>: das Frequenzspektrum geht aber von -höchste Frequenz bis +höchste Frequenz <Cat>: d.h. damit die Perioden sich nicht überlappen, brauchen sie 2x Frequenz als Abstand

 

 

Mit freundlichen Grüßen

Siebenkeim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...