-
Die
vorliegende Erfindung betrifft das technische Gebiet der musikalischen
Harmonieerkennung und insbesondere betrifft die vorliegende Erfindung eine
Vorrichtung und ein Verfahren zum Bestimmen eines Akkordtyps unter
Verwendung eines Referenzvektors für eine Tonart des Akkordtyps.
-
In
dem letzten Jahrzehnt wuchs aufgrund der deutlich verbesserten Speicher-
und Klang-Optimierung von aufgenommenen musikalischen Stücken die
Bedeutung einer Klassifizierung dieser Musik-Stücke in eine Musikstilrichtung.
Dabei war jedoch zu berücksichtigen,
dass sich in den letzten Jahren eine Vielzahl von Unterarten einer
Musikstilrichtung ausgebildet haben, wobei sich eine Klassifikation
in beispielsweise die Musikstilrichtungen ”Klassik”, ”Jazz”, ”Rock” ... nicht mehr als ausreichend
genug erwies. Hierbei war ferner zu beachten, dass durch die erhebliche
Zunahme von veröffentlichten
Musikstücken
auch die Ausbildung von verschiedenen Musik-Geschmäckern verstärkt wurde. Durch
die Zunahme der unterschiedlichen Musikgeschmäcker und der deutlichen Zunahme
der veröffentlichten
Musikstücke
wurde dadurch auch eine Vorklassifizierung der Musikstücke notwendig,
die dann meist als Meta-Daten (d. h. Daten über Daten) in elektronischer
Form dem meist ebenfalls in elektronischer Form abgespeicherten
Musikstück
beigefügt werden.
Da die Klassifikation des Stücks,
so wie sie den Meta-Daten entnommen werden kann, oftmals durch den
Wechsel des Musikgeschmacks überholt werden,
war es notwendig, eine Möglichkeit
zu schaffen, um Meta-Daten direkt aus den musikalischen Eigenschaften
eines Musikstückes
zeitnah vor einer Klassifikation zu generieren, wobei dann eine
Klassifikation des Musikstücks
nicht in den Meta-Daten abgelegt werden braucht, sondern lediglich
die musikalischen bzw. musiktheoretischen Eigen schaften des Musikstückes aus
diesem selbst erkannt werden und hieraus ein Rückschluss auf die Musikstilrichtung oder
Unterklasse der Musikstilrichtung des Musikstückes gezogen werden kann.
-
Als
ein deutliches Erkennungsmerkmal eines Musikstückes konnte in diesem Zusammenhang
die Klassifizierung von auftretenden Akkordtypen, wie beispielsweise
einem D-Dur-Akkord
oder einem G-Moll-Akkord in einem Musikstück als wichtiges Merkmal bei
einer Klassifikation des Musikstücks
zu einer Musikstilrichtung oder Unterklasse einer Musikstilrichtung
erkennen. In einem ersten Ansatz für eine Tonart-Erkennung eines
Musikstückes
wurde von David Temperley in dessen Schrift ”The Recognition of Basic Musical
Structures”,
The MIT Press, 2001, Seiten 173 bis 187 vorgeschlagen, Tonartprofile durch
eine empirische psycho-akustische Referenzmodellbildung erstellt
werden. Diese Tonartprofile geben dann eine Häufigkeit an, wie oft ein bestimmter Ton
bei einem beispielsweise C-Dur-Musikstück in diesem Musikstück im Verhältnis zu
anderen Tönen auftritt.
Solche Tonartprofile sind beispielsweise in 5A für die Tonart
C-Dur und in 5B für
die Tonart D-Moll dargestellt. Soll nun ein zu untersuchendes Musikstück klassifiziert
werden, werden die in diesem Musikstück auftretenden zeitlichen
Dauern der einzelnen Halbtöne
(beispielsweise C, Cis, D, ...) mit Hilfe eines Histogramms ausgewertet
und mit den Tonartprofilen für
die einzelnen Tonarten korreliert, wobei ein Korrelationskoeffizient
ermittelt wird. Im Anschluss hieran wird das zu untersuchende Musikstück in diejenige
Tonart klassifiziert, die den höchsten
Korrelationskoeffizienten des aus dem zu untersuchenden Musikstück resultierenden
Histogramms und dem entsprechenden Tonartprofil ergibt.
-
Ein
derartiges Vorgehen weist jedoch den Nachteil auf, dass für die Erstellung
eines aussagekräftigen
Histogramms (als ein aussagekräftiger Testsignalvektor),
ein zeitlich lang andauerndes Segment eines Musikstückes zu
verwenden ist und sich innerhalb dieses Zeitsegmentes des zu untersuchenden
Musikstückes
die Tonart des Musikstückes ändern kann.
Dies führt
dann zu einer ungenauen Klassifikation des Musikstückes. Ferner
lässt sich
durch das vorstehend beschriebene Verfahren lediglich die Tonart
des Musikstückes
(bzw. des untersuchten Zeitsegmentes des Musikstückes) erkennen, die Erkennung
der Tonart eines einzelnen Akkordes ist somit nicht sichergestellt.
Dies resultiert vor allem daraus, dass für kurze Zeitsegmente kein aussagekräftiges Histogramm
auf grund der kurzen Zeitdauer des Segmentes erstellt werden kann.
Das zeitliche Auflösungsverhalten
des vorstehend beschriebenen Verfahrens ist somit eingeschränkt.
-
Die
US 6,057,502 A zeigt
eine Vorrichtung und ein Verfahren zum Erkennen von musikalischen Akkorden.
Ein Zeitsegment oder eine kurze Dauer von einer musikalischen Tonwelle
wird zuerst dadurch analysiert, dass durch eine FFT-Transformation
dieselbe in Frequenzkomponenten in der Form eines Frequenzspektrums
zerlegt wird, welches eine Anzahl von Spitzenenergiepegeln hat.
Eine vorbestimmte Frequenzspanne (beispielsweise 63,5 bis 2032 Hz)
des Spektrums wird für
die Analyse der Akkorderkennung ausgeschnitten. Das herausgeschnittene
Frequenzspektrum wird dann auf eine Oktavspanne gefaltet, um die
spektralen Peaks innerhalb einer musikalischen Oktavspanne zu verbessern.
Die Frequenzachse wird durch eine gewisse Differenz zwischen einem
Referenztonabstand angepasst, der sich durch Spitzenfrequenzpositionen
des analysierten Spektrums und dem Referenztonabstand des verwendeten
Verarbeitungssystems definiert. Anschließend wird ein Akkord von den
Positionen dieser Peaks in dem aufgestellten Oktavspektrum durch Mustervergleich
mit Referenzfrequenzkomponentenmustern von entsprechenden Akkordtypen
bestimmt. Auf diese Weise werden musikalische Akkorde, die in einer
musikalischen Aufführung
enthalten sind, von der Tonwelle der musikalischen Aufführung erkannt. Autokorrelationsmethoden
können
vorzugsweise eingesetzt werden, um die Autokorrelation zwischen den
Frequenzkomponenten in dem Oktavprofil aus der Basiseinheit einer
Halbtonspanne zu bestimmen, um die Spitze in dem Frequenzspektrum
des Oktavprofils auf eine Halbtonbasis zu verbessern.
-
Der
vorliegenden Erfindung liegt die Aufgabe zugrunde, eine Möglichkeit
zu schaffen, um einen einem Testsignal zugrunde liegenden Akkordtyp
zu bestimmen, wobei die Bestimmung des Akkordtyps, der dem Testsignal
zugrunde liegt, eine verbesserte zeitliche Auflösung ermöglichen soll, als diesem Stand der
Technik möglich
ist.
-
Diese
Aufgabe wird durch eine Vorrichtung zum Bestimmen eines Akkordtyps
gemäß Anspruch 1
und ein Verfahren zum Bestimmen eines Akkordtyps gemäß Anspruch
14 gelöst.
-
Die
vorliegende Erfindung schafft eine Vorrichtung zum Bestimmen eines
Akkordtyps, der einem Testsignal zugrunde liegt, wobei der Akkordtyp durch
ein Auftreten von vorbestimmten Frequenzen in einem Frequenzbereich
des Testsignals definiert ist und die vordefinierten Frequenzen
in dem Frequenzbereich des Testsignals Tönen in einer vorbestimmten
Spektralspanne entsprechen, wobei ein erster Akkordtyp wenigstens
einen ersten vordefinierten signifikanten Ton in der Spektralspanne
hat und wobei ein zweiter Akkordtyp einen zweiten vordefinierten
signifikanten Ton in der Spektralspanne hat, wobei sich der erste
signifikante Ton von dem zweiten signifikanten Ton unterscheidet,
und wobei die Vorrichtung zum Bestimmen folgende Merkmale aufweist:
eine
Einrichtung zum Bereitstellen eines Referenzvektors für den Akkordtyp
aus einer Mehrzahl von verschiedenen Referenzvektoren, wobei der
Referenzvektor eine Mehrzahl von Referenzvektorelementen aufweist,
die je einem Ton in der Spektralspanne zugeordnet sind, und wobei
wenigstens ein Signifikanzreferenzvektorelement für jeden
Referenzvektor für
einen signifikanten Ton eines zugeordneten Akkordtyps vorgesehen
ist;
eine Einrichtung zum Bereitstellen eines Testsignalvektors
aus dem Testsignal, wobei der Testsignalvektor eine Mehrzahl von
Testsignalvektorelementen aufweist, die je einem Ton in der Spektralspannung zugeordnet
sind, wobei ein Testsignalvektorelement davon abhängig ist,
ob der Ton, der dem Testsignalvektorelement zugeordnet ist, in dem
Testsignal auftritt; und
eine Einrichtung zum Vergleichen des
Referenzvektors mit dem Testsignalvektor, wobei die Einrichtung zum
Vergleichen ausgebildet ist, den Referenzvektor mit dem Testsignalvektor
oder um verschiedene Verschiebungswerte zyklisch verschobene Versionen des
Testsignalvektors zu vergleichen, um verschiedene Vergleichsergebnisse
zu erhalten, die dem Testsignalvektor oder Verschiebungswerten zugewiesen
sind, um auf der Basis eines extremen Vergleichsergebnisses und
des demselben zugeordneten Verschiebungswertes den Akkordtyp zu
bestimmen.
-
Ferner
schafft die vorliegende Erfindung ein Verfahren zum Bestimmen eines
Akkordtyps, der einem Testsignal zugrunde liegt, wobei der Akkordtyp durch
ein Auftreten von vorbestimmten Frequenzen in einem Frequenzbereich
des Testsignals definiert ist und die vordefinierten Frequenzen
in dem Frequenzbereich des Testsignals Tönen in einer vorbestimmten
Spektralspanne entsprechen, wobei ein erster Akkordtyp wenigstens
einen ersten vordefinierten signifikanten Ton in der Spektralspanne
hat und wobei ein zweiter Akkordtyp einen zweiten vordefinierten
signifikanten Ton in der Spektralspanne hat, wobei sich der erste
signifikante Ton von dem zweiten signifikanten Ton unterscheidet,
und wobei das Verfahren zum Bestimmen folgende Schritte aufweist:
Bereitstellen
eines Referenzvektors für
den Akkordtyp aus einer Mehrzahl von verschiedenen Referenzvektoren,
wobei der Referenzvektor eine Mehrzahl von Referenzvektorelementen
aufweist, die je einem Ton in der Spektralspanne zugeordnet sind,
und wobei wenigstens ein Signifikanzreferenzvektorelement für jeden
Referenzvektor für
einen signifikanten Ton eines zugeordneten Akkordtyps vorgesehen
ist;
Bereitstellen eines Testsignalvektors aus dem Testsignal,
wobei der Testsignalvektor eine Mehrzahl von Testsignalvektorelementen
aufweist, die je einem Ton in der Spektralspannung zugeordnet sind,
wobei ein Testsignalvektorelement davon abhängig ist, ob der Ton, der dem
Testsignalvektorelement zugeordnet ist, in dem Testsignal auftritt;
und
Vergleichen des Referenzvektors mit dem Testsignalvektor,
wobei beim Vergleichen der Referenzvektor mit dem Testsignalvektor
oder um verschiedene Verschiebungswerte zyklisch verschobene Versionen des
Testsignalvektors verglichen wird, um verschiedene Vergleichsergebnisse
zu erhalten, die dem Testsignalvektor oder Verschiebungswerten zugewiesen
sind, um auf der Basis eines extremen Vergleichsergebnisses und
des demselben zugeordneten Verschiebungswertes den Akkordtyp zu
bestimmen.
-
Der
vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass durch
das Verwenden eines Referenzvektors und eines aus dem Testsignal
ermittelten Testsignalvektors ein Vergleichen des Referenzsignalvektors
mit dem Testsignalvektor erfolgen kann und der Akkordtyp direkt
aus dem Ergebnis des Vergleichens abgeleitet werden kann. Hierzu
ist gegenüber
dem Stand der Technik nicht mehr das Bereitstellen von einer hohen
Anzahl von Referenzvektoren notwendig. Vielmehr kann beispielsweise
für eine Klasse
von Akkordtypen, wie die Dur-Akkorde, ein Referenzvektor bereitgestellt
werden und aus der Kenntnis eines Abstandes zwischen zwei in einem Akkord
auftretenden Tönen
durch ein zyklisches Verschieben des Testvektors und einem Vergleichen
der verschobenen Version des Testvektors mit dem Referenzvektor
ein Grundton des zu bestimmenden Akkordtyps ermittelt werden.
-
Der
erfindungsgemäße Ansatz
bietet den Vorteil, dass nicht mehr eine statistische Verteilung des
Auftretens von Tönen
bzw. Halbtönen
(Histogramm) in dem Testsignal zur Bestimmung des Akkordtyps notwendig
ist. Vielmehr kann der Akkordtyp durch das Bereitstellen des Referenzvektor
und dem aus dem Testsignal abgeleiteten Testsignalvektor mit einer
anschließenden
einfachen zyklischen Verschiebung der Elemente des Testsignalvektors
auf einfache Art und Weise der Akkordtyp, der dem Testsignal zugrunde
liegt, bestimmt werden. Herbei braucht dann nicht, wie im Stand
der Technik, auf eine hohe Anzahl von (psycho-akustisch ermittelten)
Referenzvektoren zurückgegriffen
werden. Weiterhin ist auch, gegenüber dem Stand der Technik,
das Vorliegen eines zeitlich lang andauernden Testsignals zur Akkordtypbestimmung
nicht notwendig. Die bedeutet, dass das Testsignal, dem der Akkordtyp
zugrunde liegt, deutlich kürzer
sein kann als in herkömmlichen Ansätzen. Dies
resultiert insbesondere daraus, dass im erfindungsgemäßen Ansatz
lediglich das Auftreten eines Tons innerhalb des Testsignals in
einem Element des Testsignalvektors erfasst wird und somit beispielsweise
ein gleichzeitiges Klingen von verschiedenen Tönen in einer zeitlich kurzen
Spanne (beispielsweise einer Viertelnote) ausreicht, um über den
spektralen Abstand der Töne
den dem Testsignal zugrunde liegende Akkordtyp zu erkennen. Der
er findungsgemäße Ansatz
bietet somit gegenüber
dem Stand der Technik den Vorteil, deutlich kleinere Zeitsegmente
auf Akkordtypen hin untersuchen zu können und somit eine deutlich
höhere
Granularität
der Akkordtypbestimmung innerhalb eines Testsignals zu erreichen.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend anhand der beiliegenden
Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
Blockschaltbild eines Ausführungsbeispiels
der erfindungsgemäßen Vorrichtung zum
Bestimmen eines Akkordtyps;
-
2 eine
Tabelle über
musiktheoretisch bereitstellbare Referenzvektoren für verschiedene Klassen
von Akkordtypen;
-
3A eine Darstellung eines Ausführungsbeispiels
des bis 3C erfindungsgemäßen Verfahren zum
Bestimmen eines Akkordtyps;
-
4 eine
tabellarische Darstellung der Zuordnung eines Akkordtyps gemäß dem in 3 dargestellten
Ausführungsbeispiel
des erfindungsgemäßen Verfahrens;
und
-
5A eine Darstellung von Histogrammen, die
in einer und 5B herkömmlichen
Tonartbestimmung als Referenzvektoren verwendet werden.
-
In
der nachfolgenden Beschreibung der bevorzugten Ausführungsbeispiele
der vorliegenden Erfindung werden für die in den verschiedenen
Zeichnungen dargestellten und ähnlich
wirkenden Elemente gleiche oder ähnliche
Bezugszeichen verwendet, wobei auf eine wiederholte Beschreibung
dieser Elemente verzichtet wird.
-
1 zeigt
ein Blockschaltbild eines Ausführungsbeispiels
einer erfindungsgemäßen Vorrichtung 100 zum
Bestimmen eines Akkordtyps, der einem Testsignal zugrunde liegt.
Hierbei umfasst die Vorrichtung 100 eine Einrichtung 102 zum
Bereitstellen eines Referenzvektors, eine Einrichtung 104 zum
Bereitstellen eines Testsignalvektors sowie eine Einrichtung 106 zum
Vergleichen des Referenzvektors mit dem Testsignalvektor. Die Einrichtung 102 zum
Bereitstellen eines Testvektors kann beispielsweise derart ausgebildet
sein, um je einen Referenzvektor für Dur-Akkorde, Moll-Akkorde
oder weitere Akkordklassen bereitzustellen, und diese über eine
Verbindung 108 der Einrichtung 106 zum Vergleichen
des Referenzvektors mit dem Testsignalvektor zuzuführen. Ferner
kann die Einrichtung 104 zum Bereitstellen eines Testsignalvektors
ausgebildet sein, um aus einem Testsignal 110 den Testsignalvektor
zu ermitteln und diesen Testsignalvektor über die Verbindung 112 der
Einrichtung 106 zum Vergleichen des Referenzvektors mit
dem Testsignalvektor zuzuführen.
Hierbei kann beispielsweise das Testsignal 110 in einer
Zeitbereichsdarstellung vorliegen, die einer analoge oder digitalen
Darstellung des zu untersuchenden Musikstücks entspricht. Die Einrichtung 104 zum
Bereitstellen eines Testsignalvektors kann dann das Testsignal einer
Zeitbereichs-Frequenzbereichs-Transformation unterziehen, wodurch
die in dem Testsignal auftretenden Frequenzen ermittelt werden können und
beispielsweise eine Information über
eine Amplitude in diesen, in dem Testsignal auftretenden Frequenzen,
in einzelne Elemente des Testvektors geschrieben werden können. Üblicherweise
werden dann die in dem Testsignal auftretenden Frequenzen entsprechenden
Halbtönen
in einer Oktav zugeordnet. In der Einrichtung 106 zum Vergleichen
des Referenzvektors mit dem Testsignalvektor wird durch eine nachfolgend
näher beschriebene
Vorgehensweise ein Akkordtyp bestimmt und dieser über einen Ausgang 114 ausgegeben.
-
Das
in der Einrichtung 106 zum Vergleichen durchgeführte Verfahren
der Akkordbestimmung basiert im Grunde auf einem Mustererkennungsverfahren.
Tonale Ereignisse (d. h. das Auftreten von Tönen in dem Testsignal) werden
mit einem (oder mehreren) Referenzvektoren verglichen, die verschiedene
Akkordtypen bzw. Akkordtypklassen repräsentieren. Diese Referenzvektoren
können
eine Anzahl von beispielsweise 12 Referenzvektorelementen aufweisen, die
den 12 verschiedenen Halbtönen
in einer Oktav der westlichen Notenskala entsprechen. Weiterhin können dann
diejenigen Referenzvektorelemente auf den Wert 1 gesetzt werden,
bei denen entsprechende Noten oder Töne in dem entsprechenden Akkordtyp
oder der Klasse von Akkordtypen auftreten, wobei dann die anderen
Referenzvektorelemente auf den Wert 0 gesetzt werden können. Die
in einem Akkord auftretenden Töne
sind dabei für
den Akkordtyp signifikant und werden in der nachfolgenden Beschreibung
als Signifikanz-Referenzvektorelemente bezeichnet. Beispielsweise
kann der Referenzvektor für einen
Dur-Akkord den Wert 1 in dem ersten, fünften und achten (Signifikanz-)Referenzvektorelement
enthalten oder der Referenzvektor für einen Moll-Akkord den Wert
1 in dem ersten, vierten und achten Referenzvektorelement enthalten,
wogegen die anderen Referenzvektorelemente in den jeweiligen Referenzvektoren
den Wert 0 haben.
-
Alternativ
zu Dur- oder Moll-Referenzvektoren können auch weitere Referenzvektoren
verwendet werden, wie sie grob in der tabellarischen Darstellung
in
2 wiedergegeben sind. Hierbei sind in den Zeilen
der in
2 dargestellten Tabelle verschiedene Klassen von
Akkorden, beispielsweise Dur- oder Moll-Akkorde sowie weitere Akkordklasse wie
sus4, diminished (= vermindert), oder augmented (= übermäßig) aufgeführt, wobei
in den Spalten zunächst
ein Hauptakkord HA für
die jeweilige Akkordklasse angegeben wurde und nachfolgend weitere Nebenakkorde
wie einem Septakkord (durch die Spalten-Bezeichnung 7 gekennzeichnet),
ein weiterer Septakkord (durch die Spalten-Bezeichnung m7 gekennzeichnet)
und ein weiterer Akkord, der durch die Spaltenbezeichnung 9 gekennzeichnet
ist. Die entsprechenden Referenzvektoren können dabei die folgende Form
annehmen:
Dur: | 100010010000 |
Moll: | 100100010000 |
Vermindert: | 100100100000 |
Übermäßig: | 100010001000 |
Dur
7: | 100010010010 |
Moll
7: | 100100010010 |
Dur
m7: | 100010010001 |
Moll
m7: | 100100010001 |
Dur
sus4: | 100001010000 |
Dur
sus4 7: | 100001010010 |
Dur
sus4m7: | 100001010001 |
Dur
9: | 101010010000 |
Moll
9: | 101100010000 |
-
Weiterhin
kann in der Einrichtung 104 zum Bereitstellen, wie sie
in 1 dargestellt ist, beispielsweise eine Matrix
mit 12 Zeilen erstellt werden, wobei jede Zeile einen Halbton der
westlichen Notenskala repräsentiert
und benachbarte Spalten dieser Matrix zeitlich aufeinanderfolgenden
Segmenten des zu untersuchenden Musikstückes entsprechen. Im vorliegenden
Beispiel kann dann das Testsignal als ein zeitliches Segment des
Musikstücks
betrachtet werden, das in einer Spalte der Matrix aufgetragen ist.
Die Elemente der Matrix werden vorzugsweise bei der Initialisierung
der Matrix auf null gesetzt. Um die Halbtöne in der entsprechenden Matrix
zu bestimmen, kann, wie oben näher
dargestellt wurde, beispielsweise eine FFT (FFT = Fast Fourier Transformation
= schnelle Fourier Transformation) als Zeit-Frequenzbereichstransformation verwendet werden.
Hierdurch werden aus einem Zeitsegment des Musikstückes die
in diesem Zeitsegment auftretende Frequenzen ermittelt und in der
in 1 dargestellten Einrichtung 104 zum Bereitstellen
eines Testsignalvektors in diejenigen Testsignalvektorelemente eine
Information über
das Auftreten einer Frequenz eingetragen, die den entsprechenden
Frequenzen (Halbtönen)
zugewiesen sind. Für
jedes Zeitsegment (d. h. für
jeden Zeit-Rahmen)
können
somit die Amplituden oder von Amplituden ab geleitete Werte in die Spalten
der zuvor genannten Matrix eingetragen werden. Sollte ein Ton in
mehr als einer Oktave innerhalb des Zeitsegmentes oder des Zeit-Rahmens
auftreten, können
die Amplituden oder von Amplituden abgeleitete Werte derjeninge
Töne, die
den gleichen Grundton haben aber in mehreren Oktaven auftreten, zusammen
addiert und in die entsprechenden Zeile und Spalte eingetragen werden.
Dies resultiert darin, dass dieser Ton ein höheres Gewicht für eine nachfolgende
Verarbeitung erhält.
Jede Spalte dieser Matrix wird dann sukzessive mit allen Referenzvektoren verglichen,
was beispielsweise durch die Berechnung eines Skalarproduktes aus
dem Referenzvektor und dem aus einer Spalte der Matrix gebildeten
Testsignalvektor durchgeführt
werden kann. Weiterhin werden die Referenzvektoren, die aus den
Spalten der Matrix gebildet wurden, derart zyklisch verschoben,
so dass alle Elemente, die nicht den Wert 0 haben, einmal an der
vordersten Position des Referenzsignalvektors angeordnet sind und
in einer derartigen Anordnung ein Vergleichsergebnis, beispielsweise durch
eine Skalarproduktbildung ermittelt wird. Hierzu ist ferner anzumerken,
dass zu einer Vereinfachung der Vergleichsergebnisbildung auch nicht
direkt die Amplituden der in den Zeitsegment auftretenden Frequenzen
oder der entsprechenden Halbtöne verwendet
werden, sondern dass durch eine Schwellwertbildung festgestellt
werden kann, ob eine Frequenz in dem Testsignal (d. h. dem zu untersuchenden
Zeitsegment) in einer ausreichenden Stärke für die weitere Signalverarbeitung
vorhanden ist. Diese ausreichende Stärke kann beispielsweise durch das Überschreiten
des Amplitudenwertes über
den Schwellwert gekennzeichnet sein, wobei dann bei dem Überschreiten
des Amplitudenwertes das entsprechende Testsignalvektorelement den
Wert 1 erhält
und für
den Fall, dass die Amplitude den Stellenwert des entsprechenden
Tones nicht überschreitet, das
Testsignalvektorelemente des entsprechenden Halbtons den Wert 0
erhält.
Durch eine derartige Zuordnung bzw. Schwellenwertbildung lassen
sich dann eindeutigere Ergebnisse ermitteln, wobei möglicherweise
fehlerhafte Amplitudenwerte, die aus einer unpräzisen Zeit- Frequenzbereichstransformation resultieren,
in ihrer Wirkung abgeschwächt
werden können.
-
Durch
ein solches zyklisches Verschieben der Elemente des Testsignalvektors
lassen sich somit alle möglichen
Akkordumkehrungen überprüfen. Die
Klasse von Akkordtypen, die durch den Referenzvektor gekennzeichnet
ist, der bei dem Vergleichen beispielsweise durch die Skalarproduktbildung das
höchste
Skalarprodukt ergab, wird dann als Klasse des Akkordtyps ausgegeben.
Weiterhin wird der entsprechende Grundton des erkannten Akkordtyps aus
der Anzahl von erfolgten zyklischen Verschiebungen ermittelt, die
zu dem höchsten
Skalarprodukt führte.
-
Um
zu verhindern, dass eine derartige Vorrichtung zum Bestimmen eines
Akkordtyps unvollständige
Akkorde identifiziert, kann ein zusätzliches Kriterium angewandt
werden. Die Ergebnisse der Skalarproduktbildung für Referenzvektoren,
die in einer Komponente des Referenzvektors den Wert 1 enthalten
und an der entsprechenden Stelle des Eingangsvektors (Testvektors)
den Wert 0 aufweisen, werden bei der Bestimmung des Akkordtyps außer Acht
gelassen. Für
den Fall, dass nur Referenzvektoren bereitstehen, die in Verbindung
mit einem Eingangsvektor zu einem solchen außer Acht lassen der Ergebnisse
für die
Akkorderkennung führt,
kann der hierin vorgeschlagene Algorithmus derart ausgebildet sein,
dass er die einzelnen Noten in dem entsprechenden Zeitrahmen oder
Zeitsegment ausgibt.
-
Für den Fall,
dass der Eingangsvektor mehr Elemente als der Referenzvektor hat,
wird die näheste Übereinstimmung
zwischen Eingangsvektor und Referenzvektor gewählt. Dies kann beispielsweise dadurch
erfolgen, dass im Eingangsvektor einzelne Elemente herausgenommen
werden, wodurch der Eingangsvektor in seiner Länge reduziert ist. Dieser reduzierte
Eingangsvektor kann dann mit dem oder den entsprechenden Referenzvektor(en)
verglichen, bzw. das Skalarprodukt gebildet werden und das Ergebnis,
das den besten Vergleichs wert oder das höchste Skalarprodukt liefert,
als Endergebnis ausgegeben werden. In diesem Fall wird dann ein
von der Amplitude der entsprechenden Noten abhängiger Wert besonders relevant,
da laute Töne
dann ein höheres
Gewicht bei der Berechnung des Skalarproduktes erhalten. Als letzter
Schritt kann eine Erzeugung einer Textdatei erfolgen, die alle identifizierten Akkorde
bzw. Akkordtypen in chronologischer Reihenfolge enthält.
-
Ferner
können
Harmonien, deren zeitliche Dauer zu kurz für eine Berücksichtigung ist, von der Liste
entfernt werden, da eine sichere Annahme darin gesehen werden kann,
dass passende Akkorde nicht innerhalb von Millisekunden-Intervalle wechseln.
-
Es
ist somit ein großer
Vorteil des vorstehend vorgeschlagenen Algorithmus dass dieser eine
Aufwärtskompatibilität zur Bestimmung
von weiteren Akkordtypen aufweist, was einfach durch ein Hinzufügen von
neuen Referenzvektoren zu der Akkordmatrix möglich ist.
-
3 zeigt
die Vorgehensweise bei der Ausführung
des erfindungsgemäßen Verfahrens
in einem Ausführungsbeispiel.
Hierzu wird wie beispielsweise die in der Beschreibung zu 1 genannte Matrix
verwendet, die in den Zeilen die Töne bzw. Halbtöne einer
Oktav und in den Spalten die einzelnen Zeitsegmente oder Zeitrahmen
des zu untersuchenden Musikstückes
wiedergibt. In 3A ist eine Spalte
einer derartigen Matrix nunmehr als Eingangvektor 302 in
Zeilenform wiedergegeben, wobei jedes Element dieses Eingangsvektors
einen Halbton der westlichen Notenskala entspricht, deren Halbtöne bzw.
Halbtonschritte in der Zeile 304 wiedergegeben sind. Der
Einfachheit halber wird angenommen, dass die Amplituden der in dem
Eingangsvektor vorkommenden Frequenzen oder Halbtönen (d.
h. in dem dem Eingangsvektor entsprechenden Zeitsegment vorkommenden
Frequenzen bzw. Halbtönen) nur
eine Amplitude von 1 oder 0 aufweisen. Analog kann auch eine Normierung
auf den Wert 1 erfolgen, wenn die Amplitude des entsprechenden Tons
einen Schwellwert überschreitet
oder eine Normierung auf den Wert 0 erfolgen, wenn die Amplitude
zu dem entsprechenden Ton den Schwellwert unterschreitet. Zwischenwerte
werden somit durch die vorstehend beschriebene Schwellwertentscheidung
eliminiert. Eine solche Elimination ist jedoch nicht zwingend für die Funktionsfähigkeit
des beschriebenen Verfahrens notwendig.
-
Zur
Untersuchung der in den einzelnen Zeitsegmenten des zu untersuchenden
Musikstücks
auftretenden Akkordtypen wird die vorstehend beschriebene Matrix
spaltenweise durchlaufen und somit die jeweils aktuelle Spalte als
Eingangsvektor 302 untersucht, wie in 3A dargestellt
ist. Die Akkorderkennung beruht dann darauf, diesen Vektor 302 in
allen möglichen
Umstellungen mit Referenzvektoren zu vergleichen, die die verschiedenen
Akkordarten repräsentieren.
Die bisher implementierten Referenzvektoren entsprechen dabei den
unter Bezugnahme auf die 2 näher erläuterten Referenzvektoren. Beispielsweise
wurde als Referenzvektor für
die Moll-Akkorde die Folge von den Werten 100100010000 verwendet.
-
Zunächst wird
dann im erfindungsgemäßen Vorgehen
der Eingangsvektor 302 wenn nötig so verschoben, dass das
erste Element (d. h. dasjenige Element, das an der vordersten Position
des Referenzvektors steht) nicht den Wert 0 hat. Da in 3A der Eingangsvektor die Werte 010001000010
hat, kann durch ein zyklisches Verschieben des Eingangsvektors um
ein Element nach links ein verschobener Eingangsvektor erhalten
werden, der an der im ersten Vektorelement (d. h. an der vordersten
Position) den Wert 1 hat. Eine solche Verschiebung um ein Element
ist in der Zeile 306 in 3A dargestellt.
Für eine
solche Umstellung, wie sie in der Zeile 306 durchgeführt wurde,
kann dann ein Vergleichswert in Form eines Skalarproduktes berechnet
werden, wie er unter Verwendung des Referenzvektors für Moll-Akkorde
in einem Skalarproduktwert von 1 resultiert. Eine Aufstellung von
derartigen Skalarproduktwerten unter Verwendung des Re ferenzvektors für Moll-Akkorde
und den entsprechenden Verschiebungswerten ist in 4 näher dargestellt.
Der Verschiebungswert gibt hierbei die Anzahl von Verschiebungen
an, um die ein verschobener Eingangsvektor in bezug auf den ursprünglichen
Eingangsvektor 302 zyklisch verschoben wurde.
-
Für die Bildung
der ersten Umkehrung wird dann der in Zeile 306 verschobene
Eingangsvekor um weitere 4 Elemente zyklisch nach links verschoben,
so dass wiederum der Wert 1 an einer vordersten bzw. ersten Position
des neuen verschobenen Eingangsvektors auftritt. Eine derartige
Verschiebung um 4 weitere Elemente ist in 3A in
Zeile 308 dargestellt. Eine Berechnung des Skalarproduktes
für diesen
Verschiebungswert (d. h. den Verschiebungswert 5 = 1 + 4) lässt ergibt
den Skalarproduktwert 1. Analog wird auch zur Bildung der zweiten
Umkehrung wiederum eine zyklische Linksverschiebung durchgeführt, bis
wieder an der vordersten bzw. ersten Position des dritten verschobenen
Eingangsvektors wieder der Wert 1 steht. Ein solcher dritter verschobener
Eingangsvektor mit dem Wert 1 an der vordersten bzw. ersten Position
des dritten verschobenen Eingangsvektors kann durch eine weitere
Verschiebung von 5 Elementen durchgeführt werden, so wie es der 3A in Zeile 310 erkennbar ist.
Durch die Bildung des Skalarproduktes für den dritten verschobenen
Eingangsvektor unter Verwendung des Referenzvektors für Moll-Akkorde
kann somit ein Skalarproduktwert von 3 ermittelt werden wie es durch
die Skalarproduktbildung in 38 dargestellt ist.
Bei dieser Skalarproduktbildung wird der Referenzvektor für Moll-Akkorde 312 mit
dem dritten verschobenen Eingangsvektor wie er aus 3A Zeile 310 resultiert
Elementweise multipliziert und die Produkte nachfolgend Elementweise
addiert, woraus sich der Skalarproduktewert von 3 ergibt. Wird demgegenüber ein
Referenzvektor für
Dur-Akkorde 314 verwendet, wie er in 3C dargestellt
ist, und hieraus mit dem dritten verschobenen Eingangsvektor das
Skalarprodukt gebildet, resultiert ein Wert von zwei, der somit
niedriger als das Ska larprodukt bei der Verwendung des Referenzvektors
für Moll-Akkorde ist. Hieraus
kann geschlossen werden, dass für die
Bedingung der Maximierung des Skalarproduktes (d. h. der Suche nach
extremen Vergleichsergebnissen) der entsprechende Akkordtyp des
ursprünglichen
Eingangsvektors 302 ein Moll-Akkord sein muss, da das Skalarprodukt
für den
Moll-Referenzvektor 312 höher ist
als das Skalarprodukt des Dur-Referenzvektors 314 jeweils
bezogen auf den dritten verschobenen Eingangsvektor. In einer alternativen
Vorgehensweise kann auch je ein Skalarprodukt zwischen jeder einzelnen
Umkehrung und jedem einzelnen Referenzvektor gebildet werden und letztendlich
derjenige Referenzvektor bestimmt werden, unter dessen Verwendung
das höchste
Skalarprodukt erzeugt wurde.
-
Der
Grundton des Akkordtyps kann dann durch eine Auswertung desjenigen
Verschiebungswertes erfolgen, um den der Eingangsvektor 302 verschoben
wurde um den verschobenen Eingangsvektor zu erhalten, unter dessen
Verwendung mit dem Referenzvektor das maximale Skalarprodukt berechnet
wurde. Für
das in 3 gewählte
Ausführungsbeispiel
des Eingangsvektors 302 kann somit bei einer zyklischen
Linksverschiebung um 10 Elemente und unter Verwendung des Referenzvektors
für Moll-Akkorde
das maximale Skalarprodukt (mit dem Wert von 3) ermittelt werden,
wobei der Verschiebungswert von 10 zu einem Grundton A# führt, woraus
der Akkordtyp A#-Moll resultiert. Eine derartige Zuordnung 400 von
Verschiebungswerten zu Akkordtypen ist in 4 näher dargestellt.
Eine derartige Zuordnung 400 kann auch als Look-up-Tabelle beispielsweise
in einem Speicher in der Einrichtung 106 zum Vergleichen
des Referenzvektors mit dem Testsignalvektor implementiert sein,
um eine deutliche Beschleunigung bei der Ermittlung des Akkordtyps bei
Kenntnis der Verschiebungswertanzahl zu erhalten.
-
Alternativ
zu der zuvor genannten Möglichkeit
der Summation von Amplituden von in verschiedenen Oktaven auftretenden
Tönen kann
auch eine Löschung
von Obertönen
stattfinden.
-
Jede
Musiknote – mit
Ausnahme von reinen synthetischen Sinussignalen – bestehen aus mehr als einer
Frequenzkomponente. Diese zusätzlichen Komponenten
sind als Obertöne
oder harmonische bekannt und erscheinen in der Spektraldarstellung bei
Vielfachen ihrer Grundfrequenz. Um eine verlässliche Harmonischen-Analyse
aus einer Frequenzbereichsdarstellung eines Musiksignals zu erhalten,
besteht die Schwierigkeit vor allem darin, diese Obertöne zu identifizieren
und möglichst
für die
Akkordfindung nur den Grundton (in einer Oktav) zu verwenden. Hierbei
wurden für
die weitere Akkorderkennung zwei Annahmen getroffen:
- 1. Ein Oberton kann lediglich während der Zeitdauer auftreten,
während
der auch der Grundton präsent
ist.
- 2. Der Amplitudenpegel der Obertöne überschreitet nicht den Pegel
des Grundtons.
-
Insbesondere
die zweite Annahme erweist sich als problematisch, da es in polyphoner
Musik durchaus häufig
vorkommt, dass zwei Grundtöne zeitgleich
auftreten, wobei der höhere
Grundton einen niedrigeren Pegel hat, als der niedrigere Grundton,
während
der höhere
Grundton ein Oberton des niedrigeren Grundtons ist. Nach der obigen
Annahme müsste
der höhere
Grundton dann gelöscht
werden. Dies kann bei der Akkorderkennung dazu führen, dass bei der Bestimmung
eines Akkordtyps diejenigen Töne,
die außerhalb
einer betrachteten Oktav liegen nicht für die Bestimmung des Akkordtyps verwendet
werden.
-
Abhängig von
den Gegebenheiten kann das erfindungsgemäße Verfahren zum Bestimmen
eines Akkordtyps, der einem Testsignal zugrunde liegt in Hardware
oder in Software implementiert werden. Die Implementierung kann
auf einem digitalen Speichermedium, insbesondere einer Diskette
oder CD mit elektronisch auslesbaren Steuersignalen erfolgen, die
so mit einem programmierbaren Computersystem zusammenwirken können, dass
das entsprechende Verfahren ausgeführt wird. Allgemein besteht die
Erfindung somit auch in einem Compu terprogrammprodukt mit einem
auf einem maschinenlesbaren Träger
gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens,
wenn das Computerprogrammprodukt auf einem Rechner abläuft. Mit
anderen Worten ausgedrückt,
kann die Erfindung somit als ein Computerprogramm mit einem Programmcode
zur Durchführung
des Verfahrens realisiert werden, wenn das Computerprogramm auf
einem Computer abläuft.
-
Zusammenfassend
lässt sich
somit sagen, dass aus einem zu untersuchenden Musikstück eine Matrix
gebildet werden kann, die in den Zeilen die Halbtöne einer
Oktave und in den Spalten die Zeitsegmente, d. h. die Zeitrahmen
des zu untersuchenden Musikstücks
enthält
und in den jeweiligen Matrixelementen Werte eingetragen werden können, die von
Amplitudenwerten der zu den entsprechenden Zeitsegmenten und Halbtönen auftretenden
Amplituden entsprechen. Um die Akkorderkennung durchzuführen, kann
Matrix nun spaltenweise durchlaufen werden und die jeweils aktuelle
Spalte als Vektor untersucht werden. Die Akkorderkennung beruht
dann darauf, diesen Vektor in allen möglichen Umstellungen mit Referenzvektoren
zu vergleichen, die die verschiedenen Akkordarten repräsentieren.
-
Zunächst kann
der Eingangsvektor, d. h. eine Spalte der Matrix wenn nötig so verschoben
werden, dass das erste Element keinen Wert von 0 hat. Dann werden
die Skalarprodukte mit allen Referenzvektoren gebildet. Anschließend wird
dies auch für
alle Umstellungen des Eingangsvektors berechnet. In einer besonderen
Form braucht für
alle Vergleiche, bei denen der Referenzvektor Einsen in Elementen
besitzt, in denen der Eingangsvektor Nullen hat, im folgenden nicht
gewertet werden. Ist dies für
alle Vergleiche der Fall, werden vom hier vorgestellten Algorithmus
beispielsweise die Einzeltöne
ausgegeben. Ansonsten ”gewinnt” der Referenzvektor
mit dem höchsten
Skalarprodukt. Der Grundton ergibt sich aus der Anzahl der Elemente,
um die der Eingangsvektor für
den Vergleich mit dem höchsten
Ergebnis verschoben wur de. In den 3 und 4 ist
der Moll-Referenzvektor derjenige mit dem höchsten Skalarprodukt, und zwar
für den
Vergleich mit der zweiten Umkehrung gegenüber beispielsweise den Dur-Referenzvektor.
Daher wird ein Moll-Akkord angenommen. Der Grundton ergibt sich
daraus, dass der Vektor für
das höchste
Skalarprodukt durch Verschiebung von insgesamt 10 Elementen zu Stande kommt.
10 Halbtöne über dem
C liegt A#, d. h. wird ein Akkordtyp A#-Moll angenommen. Es werden
vorzugsweise nur Akkorde ausgegeben, die für eine Mindestdauer von beispielsweise
10 Zeitrahmen behalten werden. Die gefundenen Akkorde können dann
in chronologischer Reihenfolge mit ihren jeweiligen Dauern in eine
Textdatei eingetragen und diese Textdatei ausgegeben werden.