Vorrichtung und Verfahren zum Bestimmen eines Akkordtyps, der einem Testsignal zugrunde liegt
Beschreibung
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 beispiels- weise 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 abge- speicherten 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 Eigenschaf- ten 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 Struc- tures", 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 Musik- stück im Verhältnis zu anderen Tönen auftritt. Solche Tonartprofile sind beispielsweise in Fig. 5A für die Tonart C- Dur und in Fig. 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.
Der vorliegenden Erfindung liegt daher 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 dies im 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 16 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 Testsig- nals 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 vorbe- stimmten 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 Ver-
- b -
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 Bereitstel- len 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:
Fig. 1 ein Blockschaltbild eines Ausführungsbeispiels der erfindungsgemäßen Vorrichtung zum Bestimmen eines Akkordtyps;
Fig. 2 eine Tabelle über musiktheoretisch bereitstellbare Referenzvektoren für verschiedene Klassen von Akkordtypen;
Fig. 3A eine Darstellung eines Ausführungsbeispiels des bis 3C erfindungsgemäßen Verfahren zum Bestimmen eines Ak- kordtyps;
Fig. 4 eine tabellarische Darstellung der Zuordnung eines Akkordtyps gemäß dem in Fig. 3 dargestellten Aus- führungsbeispiel des erfindungsgemäßen Verfahrens; und
Fig. 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.
Fig. 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 Be- reitstellen 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 Testsig- nalvektors 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 Refe- renzvektoren 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 entsprechen- de 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 ers- ten, 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 Fig. 2 wiedergegeben sind. Hierbei sind in den Zeilen der in Fig. 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 wei- terer Septakkord (durch die Spalten-Bezeichnung m.7 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 Fig. 1 dargestellt ist, beispielsweise eine Matrix mit 12 Zeilen erstellt werden, wobei jede Zeile einen Halbton der westlichen Notenskala repräsentiert und benach- barte 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 Fig. 1 dargestellten Einrichtung 104 zum Bereitstellen eines Testsignalvektors in diejenigen Testsignalvektorelemen- te 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 Ska- larproduktes 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 Ska- larproduktbildung 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 Schwell- wertbildung 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 ent- sprechenden 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 Akkord- umkehrungen ü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 Ein- gangsvektor 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.
Fig. 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 Fig. 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 Fig. 3A ist eine Spalte einer derartigen Matrix nunmehr als Eingangvektor 302 in Zeilen- form 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 Fig. 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 Figur 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 Fig. 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 Fig. 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 Fig. 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 zyk- lisch 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 Fig. 3A in Zeile 308 dargestellt. Eine Berechnung des Skalarproduktes für diesen Ver- schiebungswert (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 Eingangsvek- tors 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 Fig. 3A in Zeile 310 erkenn- bar 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 Fig. 3B dargestellt ist. Bei dieser Ska- larproduktbildung wird der Referenzvektor für Moll-Akkorde 312 mit dem dritten verschobenen Eingangsvektor wie er aus Fig. 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 Fig. 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 Vorgehens- weise 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 Fig. 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 Fig. 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 Su mation 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 Frequenzkomponen- te. Diese zusätzlichen Komponenten sind als Obertöne oder harmonische bekannt und erscheinen in der Spektraldarstel- lung 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 Ak- korderkennung 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 ausge- drü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 Matrix- elementen 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 Figuren 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 ange- nommen. 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.