Automatische Melodietranskription
Ziel des Projektes ist die Entwicklung eines Transkriptionstools für monophone Musik in MATLAB. Dieses Tool kann in folgende 3 Funktionsblöcke unterteilt werden:
- ) Laden eines Musikstückes (pcm-kodiert / wav-Datei)
- ) Multimodale Signalanalyse (Zeit- / Frequenzbereich / musikalische Ebene)
- ) Generierung einen Notentextes basierend auf den Informationen aus der Analyseeinheit.
Die größte Funktionseinheit bildet die Analysestufe. Sie besteht aus 2 Blöcken, der „Onset Detection Stage“ und dem „F0-Estimator“ (Grundton-Schätzer).
Die Aufgabe der „Onset Detection Stage“ ist Ereignisse musikalischer Relevanz (z.b.: Notenanfänge) im Signal zu suchen und zeitlich genau zu erfassen. Das Auffinden von Onset Zeitpunkten erfolgt nicht auf dem stark korrelierten Musiksignal direkt, sondern mittels redundanzreduzierter Meta-Daten bzw. Features, welche "frame"-weise alle 3-5 ms berechnet werden. Features können jede Art von Kombination spektraler - oder zeitlicher Information sein (wie z.b. der Spektrale Fluss oder die differenzierte Einhüllende des Audiosignals), doch müssen sie so gewählt sein, dass die relevante musikalische Information abgebildet wird. D.h. im Idealfall nimmt ein Feature, das zum Auffinden von „Onset Zeitpunkten“ verwendet wird, den Großteil der Zeit einen kleinen Wert und nur bei Notenanfängen einen großen Wert an. Mittels „Peak-Picking“ können dann die „Onset Zeitpunkte“ extrahiert werden.
Der „F0-estimator“ dient zur Bestimmung der Frequenz des Grundtons einer gespielten Note. Dieser wird auf der Basis von Differenz-Funktionen arbeiten, welche starke Verwandtschaft mit der Autokorrelationsfunktion aufweisen. Diese Funktionen dienen zum Auffinden signalinhärenter Periodizitäten, welche Attribut harmonischer Klänge sind. Der Hauptunterschied zwischen Autokorrelationsfunktion und Differenzfunktion liegt darin, dass bei höchster Korrelation der Signale die Funktion anstatt eines „Peaks“ ein „Valley“ (einen Funktionseinbruch) aufweist und dass sie geringere Empfindlichkeit gegenüber Amplituden-Änderungen zeigen.
Informationen aus beiden Stufen sollen auf verschiedene Weise kombiniert werden um die Robustheit des Systems zu erhöhen. In einem letzten Schritt soll musikalisches Grundwissen appliziert werden, um unwahrscheinliche Notenfortschreitungen auszuschließen.