Automatisierte Gitarrenmelodieerkennung am PC

Gast #1471938
Guten Tag,

ich bin gerade dabei ein Gitarrenaudiosignal zu analysieren. Ich habe 
das Signal schon abgetastet! Alle 64ms habe ich ein Hamming Fenster 
gebaut mit 512 Abtastwerten. Die Fenster sind überlappend angeordnet. 
Dieses habe ich dann mittels FFT analisiert und danach mit einer 
Spektralanalyse analysiert.

Und da ist mein Porblem, ich kann die Werte nicht interpretieren. Wie 
berechne ich aus diesem Frequenzbild die Grundfrequenz?

Im Anhang habe ich eine PDF welche die einzelnen Frames zeigen wie die 
ersten beiden Fourier Koeffizienten nach der Spektralanalyse aussehen. 
Solltet ihr merh Infos brauchen werde ich sie euch zusenden. Dazu habe 
ich noch das Signal visualisiert. Es sind drei Noten gespielt f, g und 
a!

Mein Ziel ist es die Noten zu filtern, das heißt ich will rausfinden 
wann eine neue Note gespielt wird und wann sie aufhört. Mein Ansatz 
bisher:

Ich schneide die Note ab sobald ein maximum bei einem Frame im ersten 
Fourier Koeffizient auftritt. Aber ich weiß nicht wann die Note aufhört.

Ich hoffe ihr könnt mir helfen.
Angehängte Dateien:
#1472090
Hi Michi,

Also generell, das Fachgebiet nennt sich "Music Information Retrieval" 
MIR und das was du machst ist eigentlich bekannt unter "Pitch 
detection".

Du kannst das ganze natürlich über recht viele Wege (Algorithmen 
realisiern) ... z.b mit der Autokorrelation -> 
http://cnx.org/content/m11714/latest/ ...
aber ich würde mir einfach einmal das Spektrogramm deines Signals 
anschaun d.h du nimmst dir am besten Matlab und mittels Specgramm kannst 
dir die Frequenzanteile deines Signals über die Zeit anschaun, wobei 
sich hier natürlich -> die dominanteste Frequenz ist dann deine 
Grundfrequenz. Das ganze wird natürlich richtig schwer zu analysieren 
wenn du Akkorde spielst bzw. Effekte auf dem Signal drauf hast.

Wenn du kein Matlab hast ... Audacity ist ein Open Source Recording 
Programm welches auch Spektralanalysetools enthält bzw. gibt es 
natürlich auch scho fertige Tools zur Pitch detection.

Wenn du die Grundfrequenz erhalten hast ... musst du natürlich noch auf 
deine Töne umrechnen ... http://de.wikipedia.org/wiki/Ton (Musik).

Für die Time detection d.h zu welchem Zeitpunkt ein Ton kommt ... kannst 
einfach die Leistung deines Signals berechnen -> Signal^2 und dann mit 
einem Threshold die Startwerte setzen ... wobei natürlich 
berücksichtigen ist das das Anschlagen transient ist und noch nicht 
wirklich die Grundfrequenz enthält ...


lg Peter
#1472132
Hallo Michi,
soll das ein Echtzeitsystem werden?
Verstehe ich das richtig, Du hast schon die Fourierzerlegung für jeden 
Zeitschritt?
Soll das ganze nur für einzelne Töne, oder auch für Kombinationen davon 
funktionieren?
Was hältst Du davon erstmal mit sinussignalen zu üben?

Grüße,
Hans
Gast #1473423
Also danke schonmal für die Antworten.

Das System stellt keinerlei Anforderung an eine Echtzeitanalyse. Ich 
analysiere das Signal das in Wave Form vorliegt.

Ich hab das Signal soweit analysiert und mit der FFT ins 
Frequenzspektrum überführt und dann die Beträge der Fourier 
Koeffizienten berechnet.

Jetzt ist meine Frage wie ich die Werte am besten verwende, da ich 
später Akkorde filtern will.

Minimum Ziel:
- Erkennung einzelner Noten

Wünschenwertes Ergebnis:
- Analyse Akkorde und die zugehörigen Noten
- Ermittlung der Notenwerte(ganze, halbe Note)
- Generierung Notenblatt
- Erkennung der Verzierungen ( Abgedämpft)

Es wäre mir sehr hilfreich wenn ihr mir helfen könnt.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.