Hier spielen einige Faktoren eine Rolle:
Nehmen wir an, wir haben eine magische Software, die Audio hören und uns genau sagen kann, welche Noten gespielt werden. Selbst mit dieser Software ist die Bestimmung des Schlüssels kein triviales Problem. Sicher, es gibt einfache Fälle, aber selbst Menschen sind sich über viele Songs nicht einig. Ein Computer hat keine Chance.
Nehmen Sie Sweet Home Alabama mit. Die Akkorde sind D
C
G
. Viele Elektronen wurden verschwendet, um darüber zu streiten, ob dies ein V
IV
I
in G-Dur oder ein I
bVII
IV
in D-Dur. Ich persönlich denke, es liegt in der Tonart "Bitte spiele das nie wieder", also vermeide ich es, die höllische Sache zu genau zu analysieren.
Oder nimm Hey Jude. Die na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na na bisschen. Wenn wir ein wenig transponieren, sind die Akkorde auch D
C
G
. Aber das ist ziemlich klar ein I
bVII
IV
in D-Dur. Der Kontext ist wichtig, und die Erstellung eines Algorithmus zur automatischen Ermittlung dieses Kontexts ist ein komplexes Problem.
Wir haben also festgestellt, dass 100% der untersuchten Songs einen D code haben > C
G
Progression sind ärgerlich. Der nächste Teil des Problems besteht darin, eine Liste der Tonhöhen für diese Tastenerkennung zu erhalten.
Sie werden feststellen, dass ich im vorherigen Abschnitt das Wort "magisch" verwendet habe. Die meisten Tonhöhenerkennungssoftware führen eine Art Frequenzanalyse durch. Grundsätzlich greifen sie auf einen Audioabschnitt zu und bestimmen, welche Frequenzen vorhanden sind. Wir kennen die Frequenz jeder Note, daher können wir diese Liste der Frequenzen einer Liste der Tonhöhen zuordnen.
Nicht so schnell. Wenn ein Instrument eine Note spielt, erzeugt es leider mehr als eine Frequenz. Deshalb klingt ein Klavier nicht wie eine Gitarre. Einige dieser Frequenzen sind harmonisch; das heißt, Vielfache der Wurzelfrequenz. Andere werden nicht. Wenn das Instrument nicht gestimmt ist (z. B. nicht gestimmte Percussion oder Noise Sweep), gibt es viele dieser unharmonischen Frequenzen.
Wenn Sie eine vollständige Spur haben, trennen Sie alle diese Frequenzen und bestimmen Sie, welche Tonhöhen es sind. und welche harmonisch sind, ist nicht trivial. Es ist so, als würde man versuchen, die Zutaten eines Milchshakes zu trennen, sobald sie gemischt sind. Es ist sicherlich möglich, eine gute Annäherung zu erhalten, aber es ist schwierig, genau zu sagen, was gespielt wurde. Das (trainierte) menschliche Ohr ist bei dieser Aufgabe viel besser als Computer.
Um fair zu sein, wenn Sie nur versuchen, den Schlüssel zu bestimmen (anstatt jede Note zu transkribieren), ist dieses Problem einfacher lösen. Es ist mir egal, wer welche Note spielt; nur die gesamte harmonische Struktur. Aber es gibt immer noch viel Platz für Ihren Computer, um hier Fehler zu machen.
In einigen Kommentaren wurde festgestellt, dass selbst wenn Sie eine Liste von Tonhöhen haben, die Konvertierung in Notennamen eine Vorstellung von der erfordert Schlüssel. Dies liegt daran, dass wir in der überwiegenden Mehrheit der westlichen Musik das Konzept der Enharmonik haben. Grundsätzlich haben A # und Bb die gleiche Frequenz, und wir wählen den Namen basierend auf der Taste.
Für viele Musikstücke ist dies kein wirklich großes Problem. Hier ist beispielsweise eine Reihe von Tonhöhen:
A # / B ♭ / C ♭♭
B # / C / D ♭♭
C ## / D / E ♭♭
D # / E ♭ / F ♭♭
E # / F / G ♭♭
F ## / G / A ♭♭
G##/A/B♭♭
Es ist ziemlich offensichtlich, dass dies B-Dur ist. Man könnte es A # Major nennen, aber das ist eine viel kompliziertere Art, die Skala zu buchstabieren, also tun wir es nicht. Ebenso ist C ♭♭ Major kein guter Name. Diese Art von Heuristik lässt sich ganz einfach zur Software hinzufügen. In diesem einfachen Fall ist dies also kein wirkliches Problem.
Es könnte problematischer sein, wenn es zwei gleich richtige Optionen gibt, wie F # Dur gegen G ♭ Dur. Auch hier ist beides richtig, also wählen Sie einfach einen aus.
Wenn der Schlüssel mehrdeutig ist, kann dies ein größeres Problem sein. Aber ich denke, die anderen Probleme sind viel bedeutender.
Schließlich bei Auto-Tune. Die Arbeit von Auto-Tune ist aus mehreren Gründen einfacher. Erstens geht es in die andere Richtung. Es enthält eine Reihe von "guten" Noten (Halbtöne oder eine benutzerdefinierte Taste) und verschiebt alle "schlechten" Noten entsprechend. Es muss kein Schlüssel zugewiesen werden. Zweitens stimmen Sie im Allgemeinen ein einzelnes isoliertes Instrument automatisch ab. Das ist viel einfacher zu handhaben als eine komplette Mischung. Ich weiß nicht, was Auto-Tune tun wird, wenn Sie es über den gesamten Mix gleichzeitig ausführen, aber ich denke nicht, dass es hübsch sein wird.
Kurz gesagt:
- Selbst bei einer Liste aller Noten / Akkorde ist die Tastenerkennung nicht trivial.
- Das automatische Abrufen dieser Liste von Noten und Akkorden ist kein zuverlässiger Prozess.
Infolgedessen können Computer zwar eine automatische Schlüsselerkennung versuchen und sich in vielen Fällen nähern, aber es ist unwahrscheinlich, dass sie jemals 100% genau sind. Wenn jemand mir das Gegenteil beweisen möchte, würde ich gerne eine kostenlose Kopie Ihrer Software erhalten, um Ihre Behauptungen zu überprüfen. Natürlich für wissenschaftliche Zwecke.