144
Mathematisch-Naturwissenschaftliche Fakultät II Institut für Informatik Automatisiertes Motivsuchen in Musikwerken im MusicXML Format von Andreas Lehmann Gutachter: Prof. Dr. Wolfgang Coy Prof. Dr. Reiner Kluge Datum: 12. Juni 2009 Betreuer: Dr. Jochen Koubek

Automatisiertes Motivsuchen in Musikwerken im … · Die diatonische Notenlage ... von Deep Purple oder das Mundharmonika-Motiv von „Spiel mir das Lied vom Tod“ aus dem gleichnamigen

  • Upload
    buihanh

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Mathematisch-Naturwissenschaftliche Fakultät II Institut für Informatik

 

Automatisiertes Motivsuchen in Musikwerken im MusicXML Format von Andreas Lehmann

 

Gutachter: Prof. Dr. Wolfgang Coy Prof. Dr. Reiner Kluge Datum: 12. Juni 2009

Betreuer: Dr. Jochen Koubek

 

SELBSTSTÄNDIGKEITSERKLÄRUNG

Ich erkläre hiermit, dass ich die vorliegende Arbeit selbstständig und unter Verwendung der an-gegebenen Quellen und Hilfsmittel angefertigt habe.

Berlin, den 12. Juni 2009

Andreas Lehmann

 

INHALTSVERZEICHNIS 

Vorwort ......................................................................................................................................................... 5

1 Musikalische Grundlagen zu Motiven und Motivverarbeitungen ................................................ 7

1.1 Der Motivbegriff ......................................................................................................................... 7

1.2 Motivverarbeitungsformen ...................................................................................................... 11

1.3 Manuelle Suche nach Motiven und Motivverarbeitungen in drei Beispielwerken ......... 15

2 Das MusicXML-Format ................................................................................................................... 21

2.1 Die Beschreibungssprache MusicXML ................................................................................. 21

2.2 Abbildungsform der Noteninformationen in MusicXML .................................................. 22

2.3 Aufbau einer MusicXML-Datei .............................................................................................. 24

2.4 Validität eines MusicXML-Dokuments je nach Erstellungsart .......................................... 28

3 Das Konzept des Motivanalysealgorithmus ................................................................................. 31

3.1 Die Idee der Konturanalyse zur Erweiterung des MusicXML-Datenbestands .............. 31

3.2 Konzept zur separaten Abspeicherung der Noteninformationen ..................................... 36

3.3 Systematischer Bezug der Motivverarbeitung zum Originalmotiv .................................... 38

3.3.1 Originalmotiv / Wiederholung ....................................................................................... 38

3.3.2 Imitation ............................................................................................................................. 39

3.3.3 Sequenz .............................................................................................................................. 39

3.3.4 Umkehrung ........................................................................................................................ 42

3.3.5 Krebs .................................................................................................................................. 46

3.3.6 Spiegelkrebs ....................................................................................................................... 50

3.3.7 Intervallweitung ................................................................................................................ 52

3.3.8 Intervallengung ................................................................................................................. 53

3.3.9 Augmentation .................................................................................................................... 54

3.3.10 Diminution ........................................................................................................................ 55

3.3.11 Weitere Formen ................................................................................................................ 56

4 Der Algorithmus ................................................................................................................................ 57

4.1 Das Einlesen und Abspeichern der Quelldaten ................................................................... 57

4.1.1 Einlesen genereller Informationen: Notenschlüssel, Tonart und Taktart ................ 60

4.1.2 Einlesen der Tonhöhe ...................................................................................................... 63

4.1.3 Einlesen und Berechnen der Notenwerte ..................................................................... 66

 

4.2 Problem- und Sonderfälle beim Einlesen aus MusicXML .................................................. 71

4.2.1 Betrachtung von Akkorden vor der Konturanalyse .................................................... 71

4.2.2 Instrumente mit zwei Systemen in MusicXML ........................................................... 74

4.2.3 Überbindungen .................................................................................................................. 77

4.2.4 Punktierte Noten ............................................................................................................... 78

4.2.5 Vorschlagsnote .................................................................................................................. 80

4.2.6 Alterationen ....................................................................................................................... 80

4.3 Erweiterung des MusicXML-Datenbestands für die Konturanalyse ............................... 82

4.3.1 Indizierung der Notenlage ............................................................................................... 82

Die chromatische Notenlage ....................................................................................................... 82

Die diatonische Notenlage ........................................................................................................... 85

4.3.2 Implementierung der Musikalischen Konturen ............................................................ 86

Der Parsons-Code ......................................................................................................................... 86

Die diatonische Kontur ................................................................................................................ 87

Die Chromatische Kontur ........................................................................................................... 87

Die Pause und deren Auswirkung auf die Motivkontur .......................................................... 87

4.4 Allgemeine Funktionsweise des Motivanalyseprogramms .................................................. 89

4.5 Extraktion der Daten je nach Verbindungstyp ..................................................................... 92

4.6 Erstellung eines Strings aus dem multidimensionalen Array .............................................. 96

4.7 Kriterien zum Auffinden von Motiven ................................................................................. 98

4.8 Die Motivsuche ......................................................................................................................... 99

4.9 Berechnung der Motivverarbeitungsformen ....................................................................... 102

4.10 Reduktion und Transformation der Noteninformationen ................................................ 104

4.11 Die Motivanalysefunktion ...................................................................................................... 110

4.12 Die Einordnung der Ergebnisse zu möglichen Motivverarbeitungsformen .................. 112

5 Fazit und Ausblick ........................................................................................................................... 116

Anhang ...................................................................................................................................................... 122

1 Noten der Musikbeispiele ................................................................................................................ 122

2 Quellenverzeichnis ........................................................................................................................... 142

 

VORWORT „Wenn Ihnen ‘Mein kleiner grüner Kaktus‘ von den Comedian Harmonists gefällt, dann könnten Ihnen auch folgende Lieder gefallen.“ Hinter solchen Sätzen, die CD-Verkäufe von Online-Musikshops ankurbeln sollen, steckt neuerdings eine Software, die musikalische Ähnlichkeiten zwischen Musikwerken erkennt. Eine solche Software ist beispielsweise Pandora, die auf Basis von über 400 zugewiesenen subjektiven Attributen wie „Sax playing“, „Slow moving Bass Line“ oder „Emotional Female Lead Vocal Performance“ Ähnlichkeiten zwischen Musikwerken aus einer Datenbank abfragt. Diese Attribute werden von Experten des „Music Genome Project“ ständig ergänzt.1 Eine Alternative stellt der vom Fraunhofer-Institut entwickelte MPEG7-Standard dar. Eine Komponente von MPEG7 ist die Analyse einer Melodiekontur z.B. in einer Audio-Datei. So können Gemeinsamkeiten zwischen Musikstücken gefunden werden. Die Firma mufin von Magix bietet eine Software mit der MPEG7-Implementierung an. Dieser Diplomarbeit liegt ein Algorithmus zugrunde, welcher die Idee des MPEG7-Standards − die Suche nach einer Melodiekontur − aufgreift und erweitert. Grundlage der Musikanalyse ist eine MusicXML-Datei. MusicXML ist ein Dateiformat zur Beschreibung von Musiknoten sowie deren Darstellung in einer Partitur. Es basiert auf der Auszeichnungssprache XML und besitzt eine eigene Dokumenttypdefinition (DTD). Das Ziel dieser Arbeit ist das automatisierte Finden von Motiven und deren Motivverarbeitungen innerhalb eines Musikwerkes. Ein Motiv ist die kleinste musikalische Zelle, der Grundbaustein eines Musikstückes: ein Melodiefragment aus wenigen Noten. Aus mehreren zusammengesetzten Motiven bzw. Motivverarbeitungen entstehen Phrasen und später ganze Melodien. Motivverar-beitungen sind Möglichkeiten, ein Motiv so umzugestalten, dass ein Musikstück interessant bleibt und stets in sich geschlossen wirkt. Als bekannteste Motivverarbeitungen sind die Sequenz (Wiederholung auf einer anderen Tonstufe) und Krebs (das Rückwärtssetzen des Motivs) zu nennen. Als Weiterentwicklung der Ergebnisse der Diplomarbeit kann eine Datenbank mit Motiven und Motivverarbeitungen erstellt werden, die zur Plagiatssuche dient oder Empfehlungen gibt, welche Musikwerke zu anderen Musikwerken ähnlich klingen.

Das erste Kapitel der Diplomarbeit befasst sich mit den musikalischen Grundlagen rund um den Begriff Motiv sowie Motivverarbeitungsformen. Unterschiedliche Definitionen werden zu einer neuen Motivdefinition zusammengefasst. Die wichtigsten Motivverarbeitungsformen werden vorgestellt. Im zweiten Kapitel wird das MusicXML-Format sowie die Beschreibung von musikalischen

                                                             1 vgl. Pandora Radio - Listen to Free Internet Radio, Find New Music: "The Music Genome Project". URL: http://www.pandora.com/mgp.shtml [Stand: 8. März 2009]

 

Elementen mit MusicXML behandelt. Hier werden alle relevanten Elemente vorgestellt, die in MusicXML für die Motivanalyse benötigt werden. Es folgt im dritten Kapitel die Vorstellung des Konzepts des Motivanalysealgorithmus. Dabei ist vor allem der für den Algorithmus benötigte Datenbestand von Interesse. Zu jeder Motiv-verarbeitungsform werden Abbildungsvorschriften aus mathematischer Sicht erstellt, um aus einem Motiv Motivverarbeitungen ableiten zu können. Schließlich wird der Motivanalysealgorithmus selbst vorgestellt. Im Mittelpunkt steht dabei die Extraktion des Datenbestands aus einem MusicXML-Dokument, auf welche Weise ein Motiv von einem Algorithmus gefunden werden kann und wie Motivverarbeitungen durch den Algo-rithmus identifiziert werden können. Außerdem erfolgt die Auseinandersetzung mit verschiede-nen Problemen, die mit einer automatisierten Motivsuche und -analyse in Verbindung stehen. Im letzten Kapitel werden schlussendlich Anwendungsmöglichkeiten für den Algorithmus vorge-stellt. Außerdem werden Möglichkeiten, den Algorithmus zu erweitern, betrachtet.

 

1 MUSIKALISCHE GRUNDLAGEN ZU MOTIVEN UND MOTIVVERARBEI-TUNGEN

Musikalische Motive sind Hörern im Alltag sehr bekannt. Sei es das markante Anfangsmotiv der „5. Sinfonie” von Ludwig van Beethoven, das auffällige Gitarrenriff in „Smoke on the water“ von Deep Purple oder das Mundharmonika-Motiv von „Spiel mir das Lied vom Tod“ aus dem gleichnamigen Spielfilm. Nachdem der Motivbegriff erklärt wird, soll eine Analyse an drei gewählten Musikbeispielen er-folgen, um die Existenz von Motiven und Motivverarbeitungen zu verdeutlichen.

 

1.1 DER MOTIVBEGRIFF

Der dtv-Atlas zur Musik beschreibt das Motiv als „kleinste, meist melodische Sinneinheit, ein typisches und einprägsames Gebilde, definiert durch die Kraft der Verselbstständigung.“ 2

Im ABC Musik wird Motiv als kleinster Baustein bezeichnet, der eine „unverwechselbare, musikalisch sinnvolle Einheit“ 3 darstellt.

Theodor Wiehmayer erklärt in seiner Publikation „Musikalische Formenlehre in Analysen“, die sich zu einem großen Teil mit der Thematik Motiv beschäftigt, dass das Motiv der kleinste orga-nische Bestandteil der Tonsprache ist und sich Urformen des musikalischen Rhythmus in griechi-schen Versfußformen befinden.4

                                                             2 Michels, U. (2005): Musiklehre/Form II, dtv-Atlas Musik, Band 1, Systematischer Teil Musikgeschichte von den Anfängen bis zur Renaissance. München: Deutscher Taschenbuch Verlag GmbH & Co. KG, 106. 3 Ziegenrücker, W. (1997) Das Motiv, ABC Musik – Allgemeine Musiklehre. Leipzig: Deutscher Verlag für Musik, Wies-baden: Breitkopf & Härtel, 173 f. 4 vgl. Wiehmayer, T. (1927) Grundfragen der metrischen Analyse, Musikalische Formenlehre in Analysen. Magdeburg: Heinrichshofen’s Verlag, 1 ff.

 

Die Motiverklärungen lassen sich zu folgender Motivdefinition zusammenfassen:

Ein Motiv ist der kleinste Baustein der musikalischen Sprache, der melodisch und rhythmisch prägnant ist und die Kraft hat, sich zu verselbstständigen.

Die Elemente eines Motivs sind der Rhythmus sowie der Melodieverlauf, welcher sich in Inter-vallen widerspiegelt. Die Analyse dieser beiden Elemente wird im Motivanalysealgorithmus wesentlich sein. Daher ist zunächst der Begriff Intervall zu klären. Der Abstand zwischen zwei zeitlich hintereinander gespielten Noten wird als melodisches Inter-vall bezeichnet. Erklingen zwei Noten gleichzeitig, ist der Abstand zwischen diesen beiden Noten als ein harmonisches Intervall zu bezeichnen.5 Es werden Intervalle des diatonischen und des chromatischen Raumes unterschieden. Im diatonischen Raum werden immer nur Noten aus dem Tonvorrat der gerade vorherrschenden Tonart verwendet.6 Der gesamte Tonvorrat besteht aus zwölf Tönen (Halbtonschritten) − c, cis/des, d, dis/es, e, f, fis/ges, g, gis/as, a, ais/b und h. In-nerhalb einer Tonart werden aber nur sieben Töne verwendet, die je nach Tongeschlecht (Dur/Moll) aus einer speziellen Verteilung an aufeinanderfolgenden Ganz- bzw. Halbton-schritten gebildet werden.7 Im Gegensatz dazu werden im chromatischen Raum alle zwölf Halbtöne betrachtet. Die folgen-den tabellarischen Auflistungen benennen die Intervalle im diatonischen und chromatischen Raum.

Notenabstand zwischen zwei Noten in der Diatonik Intervallbezeichnung 0 Prime1 Sekunde2 (Bsp. c´ – e´) Terz3 Quarte4 (Bsp. f´ – c´´) Quinte5 Sexte6 Septime7 (Bsp. g´ – g´´) Oktave8 None (Oktave + Sekunde)9 Dezime (Oktave + Terz) 10 Undezime (Oktave + Quarte) 11 Duodezime (Oktave + Quinte )12 Terzdezime (Oktave + Sexte) 13 Quartdezime (Oktave + Septime)14 Quintdezime (Oktave + Oktave) Tabelle 1 - Intervallbezeichnungen für Ganztonschritte

                                                             5 vgl. Ziegenrücker, W. (1997) Das Motiv, ABC Musik – Allgemeine Musiklehre. Leipzig: Deutscher Verlag für Musik, Wiesbaden: Breitkopf & Härtel, 77. 6 vgl. Amon, R. (2005) Tonsysteme, Lexikon der Harmonielehre. Wien-München: Doblinger Metzler Verlag, 299. 7 So besteht eine Dur-Tonleiter aus Halbtonschritten zwischen dem 3. und 4. sowie zwischen dem 7. und 8. Ton, die restlichen Tonabstände sind Ganztonschritte. Eine reine Moll-Tonleiter hingegen hat ihre Halbtonschritte zwischen dem 2. und 3. sowie zwischen dem 5. und 6. Ton 

 

Notenabstand zwischen zwei Noten in der Chromatik Intervallbezeichnung0 Prime1 Kleine Sekunde2 Große Sekunde3 Kleine Terz4 Große Terz5 Reine Quarte6 Tritonus7 Quinte8 Kleine Sexte9 Große Sexte10 Kleine Septime11 Große Septime12 Reine OktaveTabelle 2 - Intervallbezeichnungen für Halbtonschritte

In einem Notensystem ist zwischen zwei Ebenen zu unterscheiden. In der vertikalen Ebene wer-den synchrone Momente wie Harmonik (auch harmonische, also gleichzeitig erklingende Inter-valle) sichtbar. Die Horizontale hingegen repräsentiert ein Motiv oder Melodie hinsichtlich seiner zeitlichen Struktur − also den Rhythmus, z.B. durch Pausenzeichen oder durch Notenwerte. Werden beide Ebenen gleichzeitig betrachtet, so ist zu beobachten, dass die melodischen Inter-valle immer eine Richtung besitzen: von einer zur nächsten Note ist das Intervall entweder auf-wärts oder abwärts strebend oder gleichbleibend (Prime). Die Angabe der Intervallrichtung wird später für den Algorithmus essenziell wichtig sein. In der horizontalen Ebene geben Notenwerte Aufschluss über die relative Dauer der Noten zu-

einander. Die gängigen Notenwerte sind ganze Note ( ), halbe Note ( ), Viertelnote ( ), Ach-

telnote ( ) und Sechszehntelnote ( ). Die exakte Dauer eines Notenwertes hängt hingegen von dem Tempo eines Musikstückes ab.8 Eine genauere Unterteilung von Notenwerten kann durch Überbindungen von zwei oder mehre-ren Noten oder durch Punktierungen (Verlängerung der Note um jeweils die Hälfte des angege-benen Notenwertes) geschaffen werden. Eine weitere rhythmische Besonderheit ist die X-tole, die die Begriffe Duole, Triole, Quartole usw. zusammenfasst. So nehmen beispielsweise bei einer typischen Triole drei Viertelnoten die Zeit von zwei Viertelnoten ein. Die beiden folgenden Darstellungen geben Aufschluss über einige Notenwerte und ihre Dauern. Eine Zählzeit bzw. ein Schlag entspricht hier einer Viertelnote.   

                                                             8 Das Tempo wird durch die Angabe bpm − beats per minute − (1 beat entspricht in der Regel einer Viertelnote − bei 120 bpm dauert eine Viertelnote demzufolge eine halbe Sekunde), oder durch MM − Mälzels Metronom − ange-geben. Vgl. Erpf, H. (1967) Formenlehre heute – Form und Zeitablauf, Form und Struktur in der Musik. Mainz: B. Schott’s Söhne, 10.

 

10 

Schlag m m+1 m+2 m+3 m+4

2x Ganze Note 3x Halbe Note 5x Viertelnote Einfach punktierte halbe Note, 2x Viertelnote

Abbildung 1 - Übersicht der Notenwerte und ihre Zählzeiten

 

Notenwert DauerGanze Note Schlagm bis Schlagm+4 Halbe Note Schlagm bis Schlagm+2 Viertelnote Schlagm bis Schlagm+1 Achtelnote (Schlagm bis Schlagm+1)/2 Sechszehntelnote (Schlagm bis Schlagm+1)/4 Einfach punktierte Viertelnote (Schlagm bis Schlagm+1)+(Schlagm zu Schlagm+1)/21 Vierteltriole auf zwei Viertelnoten verteilt (Schlagm bis Schlagm+2) /3 Tabelle 3 - Beschreibung der Dauer von Notenwerten

Diese musiktheoretischen Grundlagen zu Rhythmus und Intervallen sollen genügen, um ein Mo-tiv zu erklären und später mathematisch zu erfassen.

 

11 

1.2 MOTIVVERARBEITUNGSFORMEN

Jede motivthematische Arbeit besitzt einen Bezug zum Originalmotiv. Einige Motivverarbeitun-gen sind sehr einfach zum Originalmotiv zurückzuführen, bei anderen Motivverarbeitungen ist der Bezug nicht ganz so offensichtlich. Die wichtigsten Motivverarbeitungen werden in diesem Abschnitt erarbeitet. Für das Beschreiben der Motivverarbeitungen wird ein selbst komponiertes Motiv betrachtet, welches in Abbildung 2 dargestellt ist. Dieses Motiv ist speziell für den Motivanalysealgorithmus aufbereitet, indem es Noteninformationen enthält, die der Algorithmus verarbeiten kann. Auch im weiteren Verlauf dieser Arbeit wird dieses Motiv zur Veranschaulichung herangezogen werden.

 Abbildung 2 - Beispielmotiv

Die bekannteste musikalische Verarbeitungsform ist keine Verarbeitung im eigentlichen Sinn: es ist die Wiederholung des Motivs. Die Wiederholung ist für den Hörer ein sehr wichtiges musikalisches Ereignis.9 Musik wird in einer zeitlichen Abfolge wahrgenommen. Das Werk ist in seiner Gesamtheit erst nach dem Verklingen des letzten Tones erfassbar. Daher fügen erst Mo-tivwiederholungen die einzelnen Abschnitte zu einem zusammenhängenden Werk zusammen. Nach Aktivierung der Aufmerksamkeit wird mit Hilfe der Wiederholung ein Motiv im Gedächt-nis verankert. Die „Wiederholung ist somit ein obligatorisches Element für die Bildung eines (Leit-)motivs“.10 Trivial betrachtet sorgt die häufige Anwendung von Motivwiederholungen für die Ohrwurm-Qualität.

Die erste tatsächliche Motivverarbeitungsform ist die Imitation. Bei der Imitation wird das vor-liegende Motiv in einer anderen Stimme nachgeahmt und meist nach einigen Noten variiert.11 Geschichtlich gesehen stammt die Imitation aus der Kirchenvokalmusik, bei der nacheinander die Vokalstimmen Bass, Tenor, Alt beziehungsweise Sopran einsetzten. Die erste Gesangsstimme singt die ersten Noten einer Melodie, die zweite Stimme setzt ein und imitiert diese Melodie in der eigenen Gesangslage. Die Imitation der zweiten Stimme setzt meist in der Oktave oder im                                                              9 vgl. Amon, R. (2005) Motiv – Motivisch-thematische Arbeit, Lexikon der Harmonielehre. Wien-München: Doblinger Metzler Verlag, 193 f. 10 Flückiger, B. (2007) Leitmotive, Sound Design – Die virtuelle Klangwelt des Films. Marburg: Schüren Verlag, 186 f. 11 vgl. Holst, I. (1992) Die Anfänge der Kontrapunktik, Das ABC der Musik. Stuttgart: Phillip Reclam jun. GmbH, 72.

 

12 

Quintton zur ersten Stimme ein.12 In Abbildung 3 ist eine Imitation des Beispielmotivs aus Ab-bildung 2 in der darunterliegenden Oktave dargestellt.

Abbildung 3 - Imitation des Beispielmotivs

Eine ähnliche Motivverarbeitung wie die Imitation ist die Sequenz. Eine Sequenz ist eine Wie-derholung des Motivs auf einer anderen Tonstufe13 und kommt in der Regel etwa so häufig wie die Wiederholung selbst vor. Bei der Sequenz wird im Gegensatz zur Imitation das Motiv nicht variiert. Es werden zwei Ausprägungen der Sequenz unterschieden: die tonale Sequenz und die reale Sequenz. Bei einer tonalen Sequenz werden die Intervalle zwischen den Noten diatonisch beibehalten, d.h. die Intervalle in der Sequenz werden der Tonart angepasst. Dadurch kann bei-spielsweise eine große Terz aus dem Originalmotiv zu einer kleinen Terz in der tonalen Sequenz werden. Bei einer realen Sequenz hingegen bleiben alle Intervalle zwischen den Noten exakt er-halten. Abbildung 4 zeigt beide Versionen ausgehend vom Beispielmotiv. Kompositorisch ermöglichen die Formen der Sequenz einen Ausbruch aus dem bestehenden kompositorischen Material, um neues Musikmaterial zu schaffen:14 so führt eine reale Sequenz zu anderen Tonarten, während durch eine tonale Sequenz neue harmonische Verbindungen er-schlossen werden.

Abbildung 4 - Tonale (links) und reale Sequenz (rechts) des Beispielmotivs

Eine vollkommen neue Melodiekontur entsteht mit der Umkehrung. Die Umkehrung wird auch als Inversion oder Spiegel bezeichnet. Sie entsteht durch das beliebige Anlegen einer gedachten horizontalen Achse an einer Notenlinie oder an einem Notenlinienzwischenraum. So führt bei-spielsweise eine Terz aufwärts im Originalmotiv zu einer Terz abwärts in der Umkehrung. Auch

                                                             12 vgl. Lemacher, H., Schroeder, H. (1977) Der zweistimmige Satz, Lehrbuch des Kontrapunktes. Mainz: Schott Musik International, 21. 13 vgl. Ziegenrücker, W. (1997) Das Motiv, ABC Musik – Allgemeine Musiklehre. Leipzig: Deutscher Verlag für Musik, Wiesbaden: Breitkopf & Härtel, 175. 14 vgl. Amon, R. (2005) Motiv – Motivisch-thematische Arbeit, Lexikon der Harmonielehre. Wien-München: Doblinger Metzler Verlag, 194.

 

13 

im Fall der Umkehrung gibt es zwei Ausprägungen: die tonale und die reale Umkehrung. Hierbei gelten für die Intervalle die gleichen Bedingungen wie für die Sequenz. In Abbildung 5 sind wie-derum beide Varianten der Umkehrung anhand des Beispielmotivs dargestellt.

Abbildung 5 - Tonale und reale Umkehrung

Eine Spiegelung eines Motivs kann nicht nur in der Horizontalen, sondern auch in der Vertikalen, erfolgen. Diese Form der Motivverarbeitung wird Krebs15 genannt. Beim Krebs be-findet sich die Spiegelachse parallel zu den Taktstrichen: der Krebs entspricht also dem rückwärts gelesenen Originalmotiv. Durch diese Art der Motivverarbeitung werden Intervalle zwischen den Noten nicht verändert. Das Krebsmotiv gibt es in zwei Ausprägungen. Bei der ersten Form, Krebs I, wird das gesamte Motiv 1:1 gespiegelt. Bei der Form Krebs II werden alle Intervalle gespiegelt, der Rhythmus aber bleibt wie bei dem Originalmotiv (siehe Abbildung 6).

Abbildung 6 - Krebs I (links) und Krebs II (rechts)

Bei den Motivverarbeitungsmöglichkeiten Augmentation und Diminution nimmt ein Motiv neue Notenwerte an. Die Augmentation streckt das Motiv in die Länge. Aus mathematischer Sicht werden die Noten-werte mit dem Faktor Zwei multipliziert: so wird z.B. aus einer halben Note eine ganze Note und aus einer Achtelnote eine Viertelnote. Die Diminution ist das Gegenstück der Augmentation. Hier werden die Notenwerte halbiert. Vom Hörerlebnis können diese Motivformen so betrachtet werden, als ob das Motiv schneller oder langsamer gespielt wird.

 Abbildung 7 - Augmentation und Diminution

                                                             15 vgl. Lemacher, H., Schroeder, H. (1977) Der zweistimmige Satz, Lehrbuch des Kontrapunktes. Mainz: Schott Musik International, 21.

 

14 

Eine Dehnung oder Stauchung eines Motivs ist nicht nur in der Horizontalen − also der zeitli-chen Ebene − möglich, sondern auch in der Vertikalen. Hierzu zählen die Motivverarbeitungs-formen Intervallweitung und Intervallengung (siehe Abbildung 8). Bei der Intervallweitung werden die Intervalle beliebig größer gesetzt, beispielsweise wird aus einer Terz eine Sexte. Die Intervallrichtung (auf- oder abwärts) muss allerdings gleichbleiben. Entsprechend verhält es sich bei der Intervallengung, nur dass die Intervalle kleiner gesetzt werden. So wird beispielsweise eine Terz im Originalmotiv zu einer Sekunde verarbeitet.

Abbildung 8 - Intervallweitung und Intervallverengung

Eine weitere sehr vielseitige Motivverarbeitungsform ist die Variation. Hierbei werden einzelne Motivelemente wie etwa Rhythmus oder Melodie so belassen, andere Elemente hingegen werden variiert. So bleiben beispielsweise bei einer rhythmischen Variation Melodie und Harmonie gleich, während der Rhythmus variiert wird. Demgegenüber werden bei einer melodischen Varia-tion lediglich die Tonhöhen verändert, der Rhythmus aber bleibt bestehen. Kurz erwähnt sei als motivthematische Verarbeitungsmöglichkeit abschließend die Abspaltung, bei der ein Teil des Motivs in einem neuen musikalischen Kontext gestellt wird. Bei den genannten Beispielen handelt es sich um die am häufigsten auftretenden Motivverarbei-tungsformen. Durch Kombination entstehen noch diverse weitere Möglichkeiten, ein Motiv zu verarbeiten.

 

15 

1.3 MANUELLE SUCHE NACH MOTIVEN UND MOTIVVERARBEITUNGEN IN DREI BEISPIELWERKEN

Die behandelten Motivverarbeitungsformen sollen nun in drei Musikwerken auf deren Vorkom-men hin beleuchtet werden, um vorweg zu prüfen, auf welche Besonderheiten der Motivsuche-Algorithmus ausgelegt sein muss. Hierzu werden Musikwerke aus verschiedenen Epochen und Stilen gewählt, um einen möglichst breiten Anwendungsbereich abzudecken. Zu den ausgewähl-ten Musikstücken gehört ein Choralwerk, ein Stück einer Filmmusik und ein Popsong aus den 90iger Jahren. Zunächst muss das Originalmotiv anhand von markanten und wiederkehrenden Notenverläufen, Rhythmen und Intervallen ausfindig gemacht werden. Erst wenn ein mögliches Motiv im Musik-werk gefunden wurde, können motivthematische Verarbeitungen identifiziert werden. Diese Vorgehensweise ist vergleichbar mit dem zu implementierenden Algorithmus.

Die vollständigen Musikwerke befinden sich im Anhang dieser Diplomarbeit. Das Musikwerk „Exsultate Deo“ B-Teil von Alessandra Scarlatti befindet sich im Anhang 1, „Solange“ (aus 007-James Bond Casino Royale) von David Arnold befindet sich im Anhang 2 und „When we dance“ von Sting befindet sich im Anhang 3. Die in diesem Abschnitt abgebildeten Partituren sind zu-sammengesetzte Ausschnitte aus dem Werk, welche ein herausragendes Motiv und seine Verar-beitungen hintereinander zeigt.

Exsultate Deo B-Teil von Alessandra Scarlatti

Exsultate Deo ist ein Choralwerk für vier Stimmen, komponiert von Alessandra Scarlatti. Scarlatti lebte von 1660 bis 1725 und schuf vor allem in der Zeit des Barock viele Musikwerke.16 Interes-sant am vorliegenden Werk ist der B-Teil, da hier das Anfangsmotiv von zwei weiteren Vokal-stimmen imitiert wird. Abbildung 9 zeigt diverse Motivverarbeitungsformen aus dem Choralwerk als Auszug aus allen vier Stimmen. Die Motive und Motivverarbeitungen sind beschriftet und durchnummeriert.

                                                             16 Dürr, W. (2005) Scarlatti, Pietro Alessandro Gaspare, Musiklexikon. Stuttgart, Weimar: Verlag J.B. Metzler, 168

 

16 

 

Abbildung 9 - Exsultate Deo B-Teil in Motivauszügen aus allen Stimmen

Tabelle 4 soll die in Abbildung 9 durchnummerierten Motive einigen Motivverarbeitungsformen zuordnen und deren Vorkommen zusammenfassen.

 

17 

Motiv 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ∑

Originalmotiv X X X 3

Imitation X X X 3

Sequenz X X X* X X X* 6

Variation X X X X X 5

Rhythmische Verschiebung X X* 3

Abspaltung X X X 2

Rhythmische Augmentation X X X 3

Rhythmische Diminution X 1

Umkehrung X 1

Entfernt verwandtes Motiv X 1

Melodische Variation X X 2

Tabelle 4 - Zusammenfassung der Motive für das Werk Exsultate Deo B-Teil

Die mit einem Stern (*) notierten Motive in Tabelle 4 sind nicht motivthematische Verarbeitun-gen des Originalmotivs, sondern eines bereits verarbeiteten Motivs. Die Tabelle verdeutlicht, wie vielschichtig Scarlatti Gebrauch der motivthematischen Arbeit ge-macht hat. Sehr viele Motivverarbeitungen treten hier auf − allerdings nie alleinstehend und voll-ständig. Vielmehr handelt es sich stets um Mischformen, die ineinander übergehen. Sollen die zuvor besprochenen Motivverarbeitungsmöglichkeiten alleinig in ihrer reinen vollständigen Form betrachtet werden, so müssten das gesuchte Originalmotiv auf die vier Anfangsnoten beschränkt werden. Von diesen vier Noten wiederum wäre es erst möglich, vollständige Verarbeitungen zu finden.

Solange (aus 007-James Bond Casino Royale) von David Arnold

Filmmusik, wie beispielsweise in einem James Bond-Film, wird oftmals mit Hilfe der Leitmotiv-technik gestaltet.17 Diese Technik beinhaltet, dass den Protagonisten, Orten, Handlungen, Zeiten oder anderen Objekten jeweils ein markantes musikalisches Motiv zugeteilt wird. Immer wenn ein Objekt auf der Leinwand erscheint, dem ein Leitmotiv zugeordnet ist, erklingt „sein“ Motiv. Auf diese Weise erhält der Zuschauer einen markanten auditiven Bezug zu einem sichtbaren Ob-jekt. Abbildung 10 zeigt einen Auszug mit den Motiven und Motivverarbeitungen aus „Solange“, einem Musikstück aus dem Soundtrack zum James Bond-Film Casino Royale. Das Musikstück enthält das Leitmotiv, welches immer wiederkehrt, sobald das Bond-Girl Solange Dimitrios auf-tritt.

                                                             17 vgl. Spehr, G. (2007) Audio-Branding – alles neu?, Audio-Branding. München: Verlag Reinhard Fischer, 38.

 

18 

 

Abbildung 10 - „Solange“ in Motivauszügen

 

Tabelle 5 - Zusammenfassung der Motive für das Werk „Solange“ aus 007-James Bond Casino Royale 

Tabelle 5 fasst wiederum die Motive aus „Solange“ zu Motivverarbeitungsformen zusammen. Es zeigt sich, dass hier wenige Mischformen der Motivverarbeitungen auftreten. Da der Motivanaly-sealgorithmus nur die Motivverarbeitungen findet, welche ihm in Reinform hinterlegt sind, sind die Motive im Werk „Solange“ vom Algorithmus gut aufzufinden.

Motiv 1 2 3 4 5 6 7 8 9 ∑

Originalmotiv X X X 3

Sequenz X X 2

Melodische Variation X X X 3

Abspaltung X X 2

Rhythmische Variation X X 2

 

19 

When we dance von Sting

In der Popmusik ist die Wiederholung von Motiven bzw. Melodien ein beliebtes Mittel, um den musikalischen Eindruck im Ohr des Hörers zu festigen. In Abbildung 11 wird dies durch die Markierung und Benennung der Motive in dem Popsong „When we dance“ von Sting deutlich.

 

Abbildung 11 - „When we dance“ in Motivauszügen

   

 

20 

Motiv 1 2 3 4 5 6 7 8 9 10 11 12 13 ∑

Originalmotiv X X X X X X X X 8

Sequenz X X X* X 4

Variation X X X X X X X X X X 10

Erweiterung X X X 3

Tabelle 6 - Zusammenfassung der Motive in „When we dance“

Tabelle 6 veranschaulicht wie in den vergangenen Musikbeispielen das Vorkommen einzelner Motivverarbeitungsformen. Es zeigt sich hier ein ähnliches Bild wie bei dem Choralwerk von Scarlatti. Die meisten Motivverarbeitungen sind Mischformen. Auch hier würden die reinen, voll-ständigen Motivverarbeitungen erst auffindbar, wenn als Originalmotiv eine kürzere Notenfolge betrachtet würde.

Es kann zusammengefasst werden, dass es von großer Bedeutung ist, wie lang ein Motiv für die Analyse ist. Ist es zu kurz gewählt, werden zu viele Motivverarbeitungen in die Ergebnismenge aufgenommen. Dies schließt die Gefahr ein, dass Motivverarbeitungen in die Ergebnismenge aufgenommen werden, die in keinem motivthematischen Zusammenhang zum Originalmotiv stehen. Ist das Motiv jedoch zu lang gewählt, besteht die Möglichkeit, dass die Ergebnismenge unbefriedigend gering ist. Die Problematik kann auf den ersten Blick nur durch den menschli-chen Eingriff gelöst werden. Deswegen gehört zur Programmieranforderung, dass die Motivana-lysesoftware nicht nur eigenständig Motive zur Analyse auswählt, sondern der Mensch die Mög-lichkeit hat, ein Motiv von Hand einzugeben. Somit ist es möglich, dass ein Motiv beliebig ge-kürzt oder verlängert wird bis die Ergebnismenge zufriedenstellend ist.

 

21 

2 DAS MUSICXML-FORMAT

2.1 DIE BESCHREIBUNGSSPRACHE MUSICXML

Das MusicXML-Datenformat ist eine Beschreibungssprache für Musik. Sie ist abgeleitet von XML, der Extensible Markup Language. XML ist wiederum aus der SGML, Standard Generalized Markup Language, entstanden. SGML sowie XML bieten systemunabhängige und strukturierte Repräsentationen von Texten. Diese Sprachen sind Metasprachen, mit der eine Aus-zeichnungssprache, auch Markup Language genannt, definiert werden kann.

Es sind drei Eigenschaften zusammenzufassen:

Markup Language-Dokumente werden auf Basis von Elementen gegliedert. Diese besit-zen einen vordefinierten Namen und sind vordefinierten Typen zugeordnet.

In einer zusätzlichen Datei, der DTD-Document Type Definition, werden die für die in XML zulässigen Dokumenttypen Namen für die Elemente und Verschachtelungsreihen-folgen festgelegt. Für die Interpretation ist ein entsprechender Parser oder eine Pro-grammiersprache nötig, die mit Hilfe der DTD das XML-Dokument analysiert und dar-stellt.

XML-Dokumente sind wohldefiniert. Die Dokumente sind an lokale Zeichensätze an-passbar, ohne dass das Dokument selbst geändert werden muss. Mit XML-Dokumenten lassen sich maschinenunabhängige Dokumente erstellen.18

Der übliche Weg eine MusicXML-Datei zu erstellen, ist es, ein Notationsprogramm zu verwen-den, das die Partitur in Form einer MusicXML-Datei speichern kann. Die bekanntesten Notati-onsprogramme dieser Art sind Sibelius19 und Finale.20

Im MusicXML-Format sind die Informationen zu einer Note in Elementen eingebettet. Die Struktur ist dabei <element>Elementinhalt</element>. Elemente können in MusicXML ineinander verschachtelt sein. So ist das äußerste Element für das Beschreiben einer Note das Element

                                                             18 vgl. Ferber, R. (2003) Explizit strukturierte Elemente - XML, Information Retrieval. Heidelberg: dpunkt Verlag, 255. 19 vgl. Sibelius: "Was ist neu". URL: http://www.sibelius.com/products/sibelius/ [Stand: 1. Februar 2009] 20 vgl. Klemm Music & Makemusic: "Notensatz und Notenschreibprogramme Finale". URL: http://www.klemm-music.de/coda/ [Stand: 1. Februar 2009]

 

22 

<note>. Innerhalb dieses Elements umschließt das Element <pitch> die Elemente <step>Notenname</step>, <alter>Alteration21

</alter> und <octave>Oktavlage</octave>. Es ist zu erkennen, dass diese drei Elemente für die Beschreibung der vertikalen Ebene einer Note zum Element <pitch> zusammengefasst sind. Für die Darstellung der horizontalen Ebene existieren u.a. die Elemente <duration> für die relati-ve Notenlänge und <type> als englische Bezeichnung des Notenwertes. Das folgende Beispiel zeigt die eben beschriebenen MusicXML-Elemente, angewendet auf ein eingestrichenes Ces.

<note> <pitch> <step>C</step> <alter>-1</alter> <octave>4</octave> </pitch> <duration>4</duration> <type>quarter</type> </note>  

Quelltext 1 - vereinfachtes MusicXML-Beispiel für die Beschreibung der Note Ces'

Die im Quelltext 1 mittels Zahlen bzw. Buchstaben codierten Noteninformationen sollen im folgenden Abschnitt erläutert werden.

2.2 ABBILDUNGSFORM DER NOTENINFOR-MATIONEN IN MUSICXML

Wieder soll das selbst komponierte Beispielmotiv aus dem ersten Kapitel zur Veranschaulichung dienen. Die Notenreihe ohne Beachtung der Vorzeichen lautet: E, G, B22, D, C, B, D, E, C, A. Diese Buchstaben werden in MusicXML für die Darstellung der Notennamen direkt so verwen-det. Das Motiv enthält an der Position der Note g eine Alteration. Die typischen Hochalterationszei-

chen sind Kreuz ( ) für eine Anhebung um einen Halbtonschritt aufwärts und Doppelkreuz ( ) für eine Anhebung um zwei Halbtonschritte aufwärts. Für das Tiefalterieren von Noten wird das

b ( ) für eine Verminderung um einen Halbtonschritt abwärts und das Doppel-b ( ) für eine

                                                             21 Erhöhung bzw. Erniedrigung der Note um einen oder auch mehreren Halbtonschritte mit Hilfe eines Vorzeichens 22 Für eine einheitliche Konvention zum MusicXML-Format wird fortwährend statt der deutschen Notenbezeich-nung h der englische Notenname b verwendet.

 

23 

Verminderung um zwei Halbtonschritte abwärts verwendet. In MusicXML wird eine Note ohne

Alteration mit 0 gekennzeichnet, eine Note mit Kreuzvorzeichen mit +1, eine Note mit dem

Doppelkreuz mit +2, eine Note mit dem -Vorzeichen mit -1 und mit dem - Vorzeichen mit -2. Für das verwendete Beispielmotiv ergibt sich somit die Alterationsfolge: 0, +1, 0, 0, 0, 0, 0, 0, 0, 0.

Eine weitere Noteninformation eines Motivs ist die Oktavlage einer Note im Notensystem. Durch die Anwendung eines Notenschlüssels im Notensystem, typischerweise ein Violinschlüssel oder ein Bassschlüssel, wird die genaue Tonhöhe und auch die Oktavlage auf den Notenlinien bestimmt. Eine Übersicht über die Oktavlagen ist in Abbildung 12 dargestellt.

 

Abbildung 12 - Darstellung der Oktavlagen

Die Oktavlagen werden in MusicXML wie folgt abgebildet:

Subkontra-Oktave = 0 Kontra-Oktave = 1 große Oktave = 2 kleine Oktave = 3 eingestrichene Oktave = 4 zweigestrichene Oktave = 5 dreigestrichene Oktave = 6 usw.

 

24 

Insgesamt lässt MusicXML für die Oktavlage einen Wertebereich von 0 bis 9 zu.23 Für das gewählte Beispielmotiv ergibt sich die folgende Oktavlagenreihe: 4, 4, 4, 5, 5, 4, 4, 4, 4, 3.

Mit den beschriebenen drei Parametern Notenname, Alteration und Oktave ist die vertikale Ebene von Noten innerhalb eines Notensystems beschrieben. Für die horizontale, zeitliche Ebene ist der Notenwert das entscheidende Kriterium. Der Noten-wert, der aus der Form der Note (gefüllt/leer, mit/ohne Hals, mit/ohne Fähnchen) hervorgeht, wird in einer Zahl kodiert. Diese setzt sich aus mehreren Werten zusammen und ist abhängig von der Taktart. Es können aber auch zusätzliche Zeichen erscheinen, die den Notenwert verändern und als eigene Noteninformation in MusicXML auftreten. Zum einen ist es die Punktierung, bei der der ausgeschriebene Notenwert um nochmals die Hälfte des eigenen Notenwertes verlängert wird. Zum anderen verändert auch eine X-tole (z.B. eine Duole oder Triole) den Notenwert. Nur wenn Punktierungen oder X-tolen vorliegen, wird dies in MusicXML angegeben.

2.3 AUFBAU EINER MUSICXML-DATEI

Um das MusicXML-Datenformat konkret zu beschreiben, wird hier ein sogenanntes „Hello World“-Beispiel (siehe Quelltext 2) zur Veranschaulichung genommen. Das Beispiel beschreibt Grundelemente von MusicXML und die Dokumentstruktur anhand eines eingestrichenen C (sie-he Abbildung 13). Die Analyse eines MusicXML-Dokuments ermöglicht das Verständnis, wie ein Algorithmus alle notwendigen Elementinhalte aus MusicXML herauslesen kann.

 

Abbildung 13 - Ein eingestrichenes C

   

                                                             23 Recordare: Internet Music Publishing and Software: "MusicXML 1.0 Alphabetical Index". URL: http://www.recordare.com/dtds/1.0/musicxml-index.html [Stand: 2. Februar 2009]

 

25 

1. <?xml version="1.0" encoding="UTF-8"?> 2. <!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"> 3. <score-partwise> 4. <identification> 5. <encoding> 6. <software>Finale for Windows</software> 7. <software>Dolet Light for Finale 2006</software> 8. <encoding-date>1900-00-00</encoding-date> 9. </encoding> 10. </identification> 11. <part-list> 12. <score-part id="P1"> 13. <part-name>Violine</part-name> 14. <score-instrument id="P1-I1"> 15. <instrument-name>Violine</instrument-name> 16. </score-instrument> 17. <midi-instrument id="P1-I1"> 18. <midi-channel>1</midi-channel> 19. <midi-program>41</midi-program> 20. </midi-instrument> 21. </score-part> 22. </part-list> 23. <!--===========Hier beginnt der Hauptteil==============--> 24. <part id="P1"> 25. <measure number="1"> 26. <attributes> 27. <divisions>1</divisions> 28. <key> 29. <fifths>0</fifths> 30. <mode>major</mode> 31. </key> 32. <time symbol="common"> 33. <beats>4</beats> 34. <beat-type>4</beat-type> 35. </time> 36. <clef> 37. <sign>G</sign> 38. <line>2</line> 39. </clef> 40. </attributes> 41. <sound tempo="120"/> 42. <note> 43. <pitch> 44. <step>C</step> 45. <octave>4</octave> 46. </pitch> 47. <duration>4</duration> 48. <voice>1</voice> 49. <type>whole</type> 50. </note> 51. <barline location="right"> 52. <bar-style>light-heavy</bar-style> 53. </barline> 54. </measure> 55. </part> 56. <!--=========================================================--> 57. </score-partwise>   Quelltext 2 - MusicXML-Code des Hello World-Beispiels

Eine MusicXML-Datei ist in Prolog, auch Einleitungsteil genannt, und Hauptteil gegliedert. Der Prolog beschreibt grundlegende Daten über das MusicXML-Dokument. Der Hauptteil repräsen-tiert Daten, die zur Darstellung der Partitur notwendig sind. Prolog und Hauptteil werden durch das Element <score-partwise> umschlossen.

 

26 

Der Prolog besitzt als Kindelemente <identification> und <part-list>. <identification> beinhal-tet u.a. das Element <software>, in dem die Software angegeben wird, mit der die MusicXML-Datei erstellt wurde. <part-list> enthält das Element <score-part>, welches das Notensystem mit dem dazugehörigen assoziierten Musikinstrument beschreibt. Zudem besitzt es das Attribut id, mit dem beschrieben wird, in welchem Notensystem das Musikinstrument steht. Hier weist beispielsweise der Wert P1 die Elementinhalte in <score-part> dem Instrument zu, das an oberster Stelle im Notensystem steht. Nach P1 wird die Zahl für jedes neue Notensystem um 1 inkrementiert: <score-part

id=P[z]>...</score-part> mit z   (Natürliche Zahlen). In <part-name> wird ein Instrumenten-name vergeben, der im Notenbild dem Notensystem vorangestellt wird. Im Element <score-instrument> können mehrere Instrumente, die in den Elementen <instrument-name> be-zeichnet sind, zu einer Gruppe zusammengefasst werden. Hier erscheint stets der vollständige Instrumentenname. Die Elemente <midi-instrument> mit den Kindelementen <midi-channel> und <midi-program> sind reserviert für das Abspielen der Partitur über die Soundkarte per MIDI. MIDI ist ein Protokoll zur Ansteuerung von MIDI-fähigen Instrumenten und Soundkarten. In <midi-channel> wird der Kanal des jeweiligen Instruments angegeben, das die Verbindung zum Notensystem über das Attribut id in <midi-instrument> und <score-instrument> schafft. Das Element <midi-channel> kann die Werte 1 bis 16 annehmen. Über diese Kanäle werden die MIDI-Signale des entspre-chenden Notensystems an die MIDI-fähige Software verschickt. Das Element <midi-program> beinhaltet eine Zahl zwischen 1 und 128. Jede dieser Zahlen ist einem bestimmten Musikinstru-ment zugeordnet.24 Im vorliegenden Beispiel entspricht die Zahl 41 dem Instrument Violine.

Der Hauptteil des MusicXML-Dokuments beschreibt alle in der Partitur sichtbaren Daten. Jedes Musikinstrument erhält für die Präsentation seiner Noten einen eigenen Elementbereich. Dieser wird mit <part> bezeichnet. Die gleichen Werte vom Attribut id im Element <part> schaffen eine Verknüpfung der initialisierten Musikinstrumente aus dem Prolog mit dem Hauptteil. Innerhalb von <part> werden einzelne Takte mit <measure> angegeben. Jedes dieser Elemente besitzt das Attribut number. Beginnt ein neuer Takt, wird der Zahlenwert in number um 1 inkrementiert. Werden am Anfang eines Taktes Notenschlüssel, Tonarten oder Taktarten verändert, werden diese Informationen zu Beginn eines Taktes innerhalb von <attributes> eingefügt. Darin enthal-ten ist u.a. das Element <key>, welches mit Hilfe der Kindelemente <fifths> und <mode> die Ton-art beschreibt. Der Wert in <fifths> gibt die Tonstufe und der Wert in <mode> das Tongeschlecht an. Weiterhin enthält <attributes> die Elemente <time>, <clef> und <divisions>. <time> besitzt als Kindelemente <beats>, das die Anzahl der Zählzeiten wiedergibt und <beat-type>, das angibt, welcher Notenwert einer Zählzeit entspricht. Beide Werte liegen hier bei 4, dementsprechend

                                                             24 MIDI Manufacturers Association: "General MIDI Level 1 Sound Set". URL: http://www.midi.org/techspecs/gm1sound.php [Stand: 1. April 2009]

 

27 

handelt es sich um einen 4/4-Takt. Für die Angabe des Notenschlüssels wird das Element <clef> benutzt. Es besitzt als Kindelemente <sign> für die Angabe des Notenschlüssels und <line> für die Angabe der Notenlinie, auf der der Notenschlüssel positioniert wird. <divisions> beschreibt die Basiseinheit für die Tondauer, auf die sich alle Noten ab dem Takt beziehen, in dem <divisions> initialisiert bzw. re-initialisiert wird. Der Wert in <divisions> ist wichtig, um mit Hilfe des später auftretenden Elements <duration> den Notenwert zu errechnen. Nach dem Element <attributes> folgt das Element <sound> mit dem Attribut tempo, welches er-wartungsgemäß das Tempo der folgenden Takte angibt. Mit dem nun folgenden Element <note> wird jede Note einzeln beschrieben. Befinden sich meh-rere Noten in einem Takt, werden die Elemente <note> nacheinander platziert. Dies ermöglicht dem Algorithmus ein lineares Auslesen der MusicXML-Datei. Im Element <note> sind u.a. die Kindelemente <pitch>, <duration>, <voice> und <type> enthalten. In <pitch> gibt es die Kindelemente <step> für den Notennamen und <octave> für die Oktavlage einer Note. Wird eine Note alteriert, so befindet sich in <pitch> zusätzlich das Kindelement <alter>, welches die Altera-tion in Halbtonschritten angibt. Zulässig sind alle ganzen Zahlen von -9 bis 9. Das Alterationszeichen wird zusätzlich mit dem Element <accidental> beschrieben. Die häufigs-

ten Elementinhalte sind natural ( n-Auflösungszeichen), sharp ( m-Vorzeichen) oder flat ( b-Vorzeichen). <duration> ist neben <divisions> die zweite Angabe, um den Notenwert zu errech-nen. Im vorliegenden „Hello World“-Beispiel hat <divisions> den Wert 1, und <duration> besitzt für die Note C den Wert 4. Der Notenwert wird nach folgender Rechnungsvorschrift ermittelt:

Notenwert = duration/divisions = 4/1 = 4.

Die vier wird in diesem Beispiel mit der ganzen Note gleichgesetzt, da sie in einem 4/4 Takt alle vier Zählzeiten einnimmt. Eine halbe Note würde demnach dem Wert 2 und eine Viertelnote dem Wert 1 entsprechen. Der Notenwert wird zusätzlich im Element <type> als englisches Wort ausgeschrieben. Sofern zusätzlich eine Punktierung vorliegt, wird das leere Element <dot /> eingefügt. Tritt eine X-tole auf, so wird das Element <time-modification> mit den Kindelementen <actual-notes>, <normal-notes> und <beam> eingefügt. Das Element <voice> benennt die Stimme im System, zu der die Note gehört. Die Angabe von <voice> ist nötig, wenn mehrere Gesangsstimmen in einem Notensystem untergebracht sind. Das letzte wichtige Element ist <stem>, welches die Halsausrichtung einer Note wiedergibt. Mögliche Werte sind up und down. Das Ende einer Partitur wird mit einem Doppelstrich, dem Element <barline> und <barline-style> angegeben.

   

 

28 

2.4 VALIDITÄT EINES MUSICXML-DOKUMENTS JE NACH ERSTELLUNGSART

Das zu untersuchende MusicXML-Dokument muss anhand der Dokumenttypdefinition validierbar sein. Nur so kann gewährleistet werden, dass der Algorithmus korrekte Ergebnisse erzielt.

Eine MusicXML-Datei kann auf mehrere Arten erstellt werden: Üblicherweise über ein Noten-satzprogramm, häufig aber auch mit Hilfe eines MIDI-Software-Sequenzer wie Apple Logic-Studio oder Steinberg Cubase. Je nach Transformationssoftware (z.B. Notensatzprogramm oder MIDI-Software) werden verschiedene MusicXML-Ausgaben erzeugt. So binden beispielsweise die beiden bekanntesten Notationsprogramme Sibelius25 und Finale26 neben allgemeingültigen MusicXML-Sprachelementen auch noch weitere Elemente ein, die das Layout einer Partitur im eigenen Notationsprogramm beschreiben und optimieren. Somit enthält eine mit Hilfe eines No-tationsprogramms erstellte MusicXML-Datei stets zusätzliche Sprachelemente, die nur indirekt etwas mit dem MusicXML-Standard zu tun haben und so Fehler während der Motivanalyse her-vorrufen können. Aber auch die Erzeugung einer MusicXML-Datei durch Konvertierung aus einer MIDI-Datei ist problembehaftet für die Motivanalyse durch den Algorithmus. Sehr viele Musikwerke unter-schiedlichster Komponisten und Interpreten sind im MIDI-Format rund um den Globus im In-ternet verfügbar. Populär ist MIDI vor allem aufgrund der geringen Dateigröße geworden. Heute gilt MIDI vor allem im Musikproduktionsbereich als Format, das sich etabliert hat. Es liegt daher nahe, dass für die Motivanalyse eine MusicXML-Datei benutzt wird, die mit einer Konvertie-rungssoftware aus einer MIDI-Datei umgewandelt wurde. Wie stark aber das Notenbild einer durch MIDI-Konvertierung erstellte MusicXML-Datei vom eigentlichen Notenbild abweichen kann, soll im Folgenden verdeutlicht werden.

Wird eine in einem Notationsprogramm erstellte Partitur im MIDI-Format gespeichert und diese im gleichen Notationsprogramm erneut geöffnet, so sind viele Musiksymbole beim Speichern der MIDI-Datei unwiderruflich verlorengegangen. Abbildung 14 zeigt eine Partitur, wie Sie im No-tensatzprogramm Finale eingegeben wurde. Diese Partitur wurde als MIDI-Datei gespeichert und besitzt danach die Darstellung wie in Abbildung 15.

                                                             25 vgl. Sibelius: "Was ist neu". URL: http://www.sibelius.com/products/sibelius/ [Stand: 1. Februar 2009] 26 vgl. Klemm Music & Makemusic: "Notensatz und Notenschreibprogramme Finale". URL: http://www.klemm-music.de/coda/ [Stand: 1. Februar 2009]

 

29 

 

Abbildung 14 - Notenbeispiel mit Noten und musikalischen Symbolen

 Abbildung 15 - In das Notensatzprogramm importierte MIDI-Datei

Der Vergleich beider Abbildungen zeigt, dass MIDI keine Informationen über die Darstellung einer Partitur sowie Interpretationshinweise enthält. MIDI ist in erster Linie kein Darstellungs-format für Noten und deren Partituren, sondern ein Datenaustauschformat zwischen Synthesi-zern, Samplern, Drumcomputern, Sequenzerprogrammen und anderen Hardwaregeräten bzw. Software. Für deren Kommunikation untereinander sind viele musikalische Symbole und Zeichen irrelevant. Welche musikalischen Zeichen und Symbole von MIDI ausgewertet werden, ist in der MIDI-Spezifikation27 nachzulesen. Wird ein MusicXML-Dokument, das aus einer MIDI-Datei konvertiert wurde, für die Motivanalyse benutzt, können zwei Arten von Verfälschungen des Notenbildes entstehen:

1. Die Lesbarkeit einer Partitur ist beeinträchtigt. Die vorherrschende Tonart wird nicht wie üblich am Anfang des Notensystems dargestellt. Stattdessen werden Alterationen (Vor-

zeichen-Symbole wie b oder m) vor jeder Note einzeln verwendet. Die Informationen, die

für eine Motivanalyse an sich notwendig sind, sind jedoch nicht verfälscht. Es fehlen au-

                                                             27 vgl. MIDI Manufacturers Association Incorporated: "Tech Specs & Info". URL: http://www.midi.org/techspecs/ [Stand: 1. Februar 2009]

 

30 

ßerdem dynamische Zeichen zur Lautstärke sowie der Notentext, was die Motivanalyse jedoch nicht beeinträchtigt. Die Motivanalyse kann trotz fehlender Zeichen durchgeführt werden.

2. Die aus der MIDI-Datei konvertierte MusicXML-Datei erschwert die Motivanalyse oder macht sie gar unmöglich. Wird z.B. eine Partitur, die Vorschlagsnoten enthält, als eine MIDI-Datei gespeichert, so werden diese Noten in normale − rhythmusrelevante − No-ten umgewandelt, obwohl Vorschlagsnoten nicht mit ihrem Notenwert im Takt gezählt werden. In der Partitur sind nun neue Noten vorhanden, die auch als solche in der Mo-tivanalyse interpretiert werden. Ebenfalls werden auch beim Speichern in das MIDI-Format bestimmte Notensysteme zusammengefasst. So wird ein Klaviersystem, das aus Bass- und Diskantsystem besteht, miteinander verbunden. Zwei vollkommen getrennten Melodiestrukturen bilden neue Intervall- und Akkordstrukturen, die in der Motivanalyse falsch bewertet werden.

Es kann zusammengefasst werden, dass je ähnlicher eine gespeicherte Partitur der Originalparti-tur im Notenbild ist, die Motivanalyse umso erfolgsversprechender ist. Es dürfen maximal No-tenbildverfälschungen der ersteren Art auftreten.

 

31 

3 DAS KONZEPT DES MOTIVANALYSEALGORITHMUS

Die grundlegende Idee des Algorithmus besteht darin, die Noten eines Musikwerkes getrennt nach Parametern aus MusicXML einzulesen, und anschließend die Noteninformationen je Para-meter miteinander zu vergleichen. Hierbei sind insbesondere die Parameter Notenname, Alterati-on, Oktavlage, Notenwert sowie die beiden rhythmischen Zusatzzeichen Punktierung und X-tole von Interesse. Diese Elemente sollen für den Algorithmus fortwährend getrennt voneinander betrachtet werden. Voraussetzung ist, dass die einzelnen Noteninformationen zusammengesetzt wieder der ursprünglichen Note entsprechen.

Handelt es sich bei einer Melodie um ein Motiv, so werden sich die dazugehörigen Noteninfor-mationen der aufeinanderfolgenden Noten innerhalb des Musikstückes im Regelfall wiederholen. So kann beispielsweise die längste Reihe dieser aufeinanderfolgenden Noteninformationen, die im Musikwerk immer wiederkehrt, als Originalmotiv erkannt werden. Ist das Originalmotiv ge-funden, so wird das Musikstück auf weitere übereinstimmende Noteninformationsreihen abge-sucht und es wird ein Zusammenhang zwischen Originalmotiv und Motivverarbeitung gesucht.

Grundlegend bringt der Motivanalysealgorithmus nur dann sinnvolle Ergebnisse, wenn der Komponist des zu analysierenden Werkes kompositorische Regeln zu Motivverarbeitungen kor-rekt und in nicht allzu freier Interpretation angewendet hat. Hat der Komponist ein Motiv nicht eins zu eins verarbeitet, sondern z.B. innerhalb einer Sequenz auch nur eine Note verändert, kann der Algorithmus dies nicht mehr als Sequenz erkennen.

3.1 DIE IDEE DER KONTURANALYSE ZUR ERWEITERUNG DES MUSICXML-DATENBESTANDS

Neben den eben genannten Parametern, die für die Motivanalyse direkt aus MusicXML ausgele-sen werden können, ist weiterhin die Melodiekontur ein wichtiger Bestandteil zur Motivanalyse. So wird durch die Analyse der Melodiekontur die Ergebnismenge an Motivverarbeitungen einge-

 

32 

grenzt, wodurch die Motivsuche beschleunigt wird. Außerdem sind einige Motivverarbeitungs-formen ohne Konturanalyse gar nicht auffindbar. MusicXML enthält jedoch keine Angaben über eine Kontur, sodass die Angaben hierzu aus den anderen Noteninformationen errechnet werden müssen. Die Kontur beschreibt den Melodieverlauf. Dabei sind drei Genauigkeitsstufen möglich: der Par-sons-Code, die diatonische Kontur und die chromatische Kontur. Der Parsons-Code beschreibt, ob sich die kommende Note höher, tiefer oder auf der gleichen Stufe zur aktuellen Note befindet. Die diatonische Kontur beinhaltet den diatonischen Intervallabstand von Note zu Note und die chromatische Kontur beinhaltet den chromatischen Intervallabstand von Note zu Note. Mit Hilfe des Konturverlaufs kann das bereits gefundene Originalmotiv im Weiteren wie eine Schablone über die gerade zu analysierende Notenfolge gelegt werden. Hierbei wird das Musik-stück durchsucht, um eine Übereinstimmung − ein Matching − der Noten zur Schablone zu fin-den. Dadurch können die Motivverarbeitungen erkannt werden. Im Folgenden wird n als Zeigerfunktion verwendet, welche das aktuell betrachtete musikalische Ereignis (Note, Pause oder Akkord) in der vertikalen Ebene bezeichnet. n+1 ist das nächste zeit-lich folgende musikalische Ereignis − unabhängig davon, ob es nach einer Viertelnote oder etwa einer ganzen Note folgt. Je nachdem, ob sich Note, Pause oder Akkord an der Notenposition n+1 befindet, muss der Konturverlauf von n zu n+1 für den Parsons-Code, die diatonische oder chromatische Kontur neu berechnet werden. Diese Berechnung wird im Motivsuche-Algorithmus mit einer if-else Anweisung realisiert. Insgesamt sind neun Arten − neun Verbin-dungstypen − möglich, wie Notenposition n und Notenposition n+1 belegt sein können. In den Klammern stehen die jeweiligen Abkürzungen, die bei Bedarf benutzt werden:

Notenposition n Notenposition n+1

Note → Note (N→N)

Note → Akkord (N→A)

Note → Pause (N→P)

Akkord → Note (A→N)

Akkord → Akkord (A→A)

Akkord → Pause (A→P)

Pause → Note (P→N)

Pause → Akkord (P→A)

Pause → Pause (P→P)

Abbildung 16 - n→n+1 Verbindungstypen

 

33 

Für jede dieser Kombinationen muss der Algorithmus eine entsprechende Anweisung ausführen, um die richtige Kontur zu errechnen.

Bei Akkorden nimmt die Konturbewegung von einer Akkordposition oder zu einer Akkordpositi-on verschiedene Verlaufsrichtungen ein. Enthält beispielsweise Notenposition n eine Note und Notenposition n+1 einen Akkord mit drei Noten, so gibt es von Position(n) zu Position(n+1) drei Konturverläufe, die für die Motivanalyse jeweils einzeln zu betrachten und zu analysieren sind. Jeder dieser drei Konturverläufe kann mit der Kontur des gesuchten Motivs oder einer Motivver-arbeitung übereinstimmen. Es ist nicht zu vernachlässigen, dass die Komplexität zunimmt, je mehr Akkorde ein Musikwerk enthält. Besteht beispielsweise Notenposition n aus einem Akkord mit drei Noten und Notenposition n+1 ebenfalls aus einem Akkord mit drei Noten, so ergeben sich von Position(n) zu Position(n+1) bereits neun Konturverläufe, die analysiert werden müssen. Sind alle Notenpositionen und deren Belegung mit Note, Pause oder Akkord analysiert, kann eine Kontur erstellt werden.

Der Parsons-Code beschreibt die Intervallrichtung von Note n zur Note n+1. Eine Note an der ersten Position eines Musikwerkes wird mit dem Startzeichen (S oder auch *) initiiert. Die nach-folgende Note kann entweder den Wert „Repeat“ (R), „Up“ (U) oder „Down“ (D) annehmen. Wie die Bezeichnungen bereits wiedergeben, wird das Intervall von Position(n) zu Position(n+1) für den Parsons-Code an Position(n+1) beschrieben. Liegt die Note an Position(n+1) höher als die Note an Position(n), so ist der Parsons-Code an Position(n+1)=U. Liegt die Note jedoch tie-fer, ist der Parsons-Code an Position (n+1)=D. Liegen zwei aufeinanderfolgende Noten auf dem gleichen Intervall, ist der Parsons-Code mit R zu bezeichnen. Rhythmen werden im Parsons-Code ignoriert. Anhand von Parsons-Code-Reihen können alle Musikstücke systematisiert und katalogisiert wer-den. Die Publikation „The Directory of Tunes and Musical Themes“ von Denys Parsons be-schreibt wichtige Klassikwerke, Volksmusik und Populäre Musik im Parsons-Code.28 Möchte ein Musikinteressierter den Titel und Interpreten eines im „The Directory of Tunes and Musical Themes“ publizierten Musikstücks herausfinden, so muss er die Melodie des Stückes gedanklich nachsingen und den Parson-Code daran ableiten. Wie in einem Duden nähert er sich mit jedem neuen Buchstaben im Parsons-Code seinem gewünschten Musikstück. „Happy birthday“, ein Lied, dass weltweit fast jede Person kennt, lässt sich als Parsons-Code auf folgende Weise beschreiben: *RUDUDDRUDUD. Der Parsons-Code, der auch im MPEG7-Standard implementiert ist, ist eine bedeutende Idee für die Motivanalyse.

Im Gegensatz zum Parsons-Code wird anhand der diatonischen Kontur erkannt, wie viele Ton-schritte im diatonischen Raum zwischen zwei Noten bestehen. Die erste Note eines Musikwerkes

                                                             28 vgl. Parsons, D. (2002): The Directory of Tunes and Musical Themes. Lübeck: Bohmeier Verlag.

 

34 

wird mit einem Asterisk (*) initiiert. Intervalle, die von Notenposition(n) nach Notenpositi-on(n+1) aufwärts verlaufen, werden mit ganzzahligen positiven Zahlen entsprechend des jeweili-gen Intervalls gekennzeichnet. Intervalle, die von Notenposition(n) nach Notenposition(n+1) abwärts verlaufen, werden dementsprechend mit ganzzahligen negativen Zahlen gekennzeichnet.

Die chromatische Kontur ist im Gegensatz zum Parsons-Code und zur diatonischen Kontur die genaueste Methode, Intervalle zwischen Noten zu bestimmen. Mit der chromatischen Kontur wird das Intervall zwischen zwei aufeinanderfolgenden Noten im Halbtonschritt ermittelt. Auf-wärts verlaufende Intervalle werden mit positiven Zahlen und abwärts verlaufende Intervalle mit negativen Zahlen entsprechend der Halbtonschritte angegeben.

Für die Suche nach einigen Motivverarbeitungen muss nur die Kontur des Parsons-Codes be-trachtet werden, da die Betrachtung weiterer Konturen oder Noteninformationen keine genaue-ren Ergebnisse bringt. Andere Motivverarbeitungen können nur voneinander unterschieden wer-den, wenn sie alle Konturtests durchlaufen. Welche Motivverarbeitung welche Konturtests durchlaufen muss, zeigt Abbildung 17.

 

35 

 

Abbildung 17 - Suche nach Motivverarbeitungen mit Hilfe der Konturtests

Die Noteninformationen aus den Parametern Notenname, Alteration, Oktavlage, Notenwert sowie die Daten aus der Konturanalyse ergeben den kompletten Datenbestand, der von dem Motivanalysealgorithmus benötigt wird.

Parsons‐Code 

diatonische Kontur 

chromatische Kontur 

Intervallengung

Intervallweitung

tonale Sequenz

reale Sequenz

Augmentation

Diminution

Krebs I 

tonale Umkehrung

reale Umkehrung

Krebs II 

Originalmotiv

Spiegelkrebs

 

36 

3.2 KONZEPT ZUR SEPARATEN ABSPEICHE-RUNG DER NOTENINFORMATIONEN

Mit einer multidimensionalen Arraystruktur können alle einzelnen Informationen einer Note in separate Arrayzellen gespeichert werden. Mit Hilfe eines Arrayschlüssels ist es zu jeder Zeit mög-lich, auf einzelne oder alle Informationen einer Note zuzugreifen. Weiterhin kann die multidi-mensionale Arraystruktur skaliert und um weitere Informationen erweitert werden. Dies ist vor allem für den Ausbau des Motivanalysealgorithmus hilfreich.

n-3 1 e 4 1/8 0 n-2 2 g 4 1/8 1 n-1 3 h 4 ¼ 0 aktuelle Note n 4 d 5 1/8 0 n+1 5 . . . 0 Alteration Notenwert Oktavlage Notenname Index / Arrayschlüssel

Abbildung 18 - Darstellung einer multidimensionalen Arraystruktur

Die Abbildung 18 zeigt eine mögliche multidimensionale Arraystruktur mit den direkt aus Mu-sicXML gelesenen Noteninformationen Notenname, Oktavlage, Alteration und Notenwert an-hand des selbst komponierten Motivbeispiels. Für den Algorithmus soll nun die Arraystruktur um den n→n+1 Verbindungstyp, den Parsons-Code, die diatonische und chromatische Kontur sowie die Noteninformation Punktierung und X-tole erweitert werden, wie in Abbildung 19 dar-gestellt.

   

 

37 

n-3 1 e 4 1/8 0 * * * Note →

Note nein nein

n-2 2 g 4 1/8 1 U +2 +4 Note → Note

nein nein

n-1 3 h 4 ¼ 0 U +2 +3 Note → Note

nein nein

aktuelle Note n 4 d 5 1/8 0 U +2 +3 Note → Note

nein nein

n+1 5 . . . 0 D -1 -2 Note → Note

ja nein

X-tole Punktierung n→n+1 Verbindungstyp Chromatische Kontur Diatonische Kontur Parsons-Code Alteration Notenwert Oktave Notenname Index / Arrayschlüssel

Abbildung 19 - Darstellung einer erweiterten multidimensionalen Arraystruktur

Abbildung 19 zeigt, wie später alle Noten und Pausen eines Werkes in einem multidimensionalen Array untergebracht werden. Die Daten aus diesem Array werden bei der Suche nach Motivver-arbeitungen miteinander verglichen. Mit Hilfe mathematischer Regeln können so Motivverarbei-tungen zum Originalmotiv zurückgeführt werden. Im Folgenden werden die Noteninformationen, die bei den einzelnen Motivverarbeitungsformen im Array auftreten, vorgestellt und mathematische Regeln zur Rückführung der Motivverarbei-tungen zum Originalmotiv entwickelt.

 

38 

3.3 SYSTEMATISCHER BEZUG DER MOTIV-VERARBEITUNG ZUM ORIGINALMOTIV

3.3.1 ORIGINALMOTIV / WIEDERHOLUNG

Ein Originalmotiv ist die Basis, aus der alle Motivverarbeitungen entstehen. Daher ist es wichtig, dass so viele Noteninformationen wie möglich aus dem Originalmotiv extrahiert werden, um über gutes Ausgangsmaterial für die Analyse der Motivverarbeitungen zu verfügen. Das Origi-nalmotiv wird als solches anhand seiner Wiederholungen identifiziert. Die Wiederholung ist hier gleichzusetzen mit dem Originalmotiv. Zur Veranschaulichung wird wieder das selbst komponierte Motiv als Beispiel genutzt.

Notenname E G B D C B D E C A

Alteration 0 +1 0 0 0 0 0 0 0 0 Oktave 4 4 4 5 5 4 4 4 4 3

Notenwert 1/8 1/8 1/4 1/8 1/4 1/8 1/8 1/8 1/8 1/2 Punktierung nein nein nein nein ja nein nein nein nein nein X-tole nein nein nein nein nein nein nein nein nein nein

n→n+1 Verbindungstyp

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

n→n+1 (Parsons)

Start Up Up Up Down Down Down Up Down Down

n→n+1 (Diatonisch)

Start +2 +2 +2 -1 -1 -5 +1 -2 -2

n→n+1 (Chromatisch)

Start +4 +3 +3 -2 -1 -9 +2 -4 -3

Tabelle 7 - Noteninformationen des Originalmotivs

Die Tabelle 7 stellt alle für die Motivanalyse zur Verfügung stehenden Noteninformationen dar: Notenname, Alteration, Oktave, Notenwert, Punktierung und X-tole, den n→n+1-Verbindungstyp, den Parsons-Code, die diatonische sowie die chromatische Kontur.

 

39 

3.3.2 IMITATION

Eine Imitation kann nach einigen Noten frei weitergeführt werden. Durch die freie Weiterfüh-rung ist es nicht möglich, diese Motivverarbeitungsform vollständig auf das Originalmotiv auto-matisiert zurückzuführen. Eine Analyse der Imitation ist dann möglich, wenn der frei weiterge-führte Motivschwanz nicht betrachtet würde. Dies hat allerdings zur Folge, dass unter Umstän-den das Motiv zu kurz ist und der Algorithmus Notenfolgen als motivthematische Verarbeitun-gen ausgibt, die an sich gar keine sind. Für die Diplomarbeit soll die Imitation daher unbeachtet bleiben.

3.3.3 SEQUENZ

Es ist zwischen tonaler und realer Sequenz zu unterscheiden.

Die tonale Sequenz ist eine zur Notenlinie parallel verschobene Wiederholung des Originalmo-tivs, bei der die Tonart und damit auch die diatonische Kontur erhalten bleiben. So bleibt in einer tonalen Sequenz eines Motivs in G-Dur beispielsweise das Fis bestehen, sofern dieses in der Se-quenz erreicht wird. Es tritt jedoch in diesem Fall an einer anderen vertikalen Position auf. Es treten keine zusätzlichen Alterationen auf einer anderen Tonhöhe auf. Die einzige Ausnahme ist eine Alteration, die außerhalb der Tonart auch im Originalmotiv auftritt. Diese findet sich in der Sequenz (sowohl bei der tonalen als auch der realen) an der gleichen zeitlichen Position wie-der.

Abbildung 20 - Tonale Sequenz und deren Konturverlauf

Wie in Abbildung 20 angedeutet, ist es relativ frei, um wie viele Tonschritte die Sequenz nach oben oder unten verschoben wird, jedoch muss der Anfangston aus dem Notenvorrat der vor-herrschenden Tonart kommen, sofern nicht bereits der Anfangston des Originalmotivs tonarten-unabhängig alteriert ist.

 

40 

Durch das vertikale Verschieben gehen diverse Noteninformationen, die ein Motiv in der Verti-kalen beschreiben, verloren. Somit können Notenname und Oktavlage nicht mehr zur Analyse der tonalen Sequenz herangezogen werden. Auch wären Noteninformationen zur Alteration nur auswertbar, wenn das Originalmotiv in C-Dur notiert wäre, und somit tonartenabhängige Altera-tionen nicht auftreten. Daher können zur Identifizierung der tonalen Sequenz nur die Informati-onen herangezogen werden, die in Tabelle 8 enthalten sind. Hierzu zählen die Daten des Parsons-Code und der diatonischen Kontur, ebenso die horizontalen Noteninformationen Notenwert, Punktierung und X-tole. Die Noteninformationen zur chromatischen Kontur sind erwartungs-gemäß für das Finden einer tonalen Sequenz nicht nutzbar.

Notenname

Alteration (+1)29 Oktave Notenwert 1/8 1/8 1/4 1/8 1/4 1/8 1/8 1/8 1/8 1/2 Punktierung nein nein nein nein ja nein nein nein nein nein X-tole nein nein nein nein nein nein nein nein nein nein n→n+1 Verbindungstyp

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

n→n+1 (Parsons)

Start Up Up Up Down Down Down Up Down Down

n→n+1 (Diatonisch)

Start +2 +2 +2 -1 -1 -5 +1 -2 -2

n→n+1 (Chromatisch)

Tabelle 8 - Noteninformationen der tonalen Sequenz

Die folgende Tabelle stellt dar, welche Noteninformationen der tonalen Sequenz nicht mehr dem Originalmotiv entsprechen.

Originalmotiv Tonale Sequenz Notenname -Alteration -Oktavlage -Notenwert Notenwert Punktierung Punktierung X-tole X-toleParsons-Code Parsons-Code Diatonische Kontur Diatonische Kontur Chromatische Kontur -Tabelle 9 - Vergleichbare Noteninformationen zwischen der tonalen Sequenz und Originalmotiv

                                                             29 Ist das Originalmotiv in einer Kreuz- bzw. B-Tonart notiert, können weitere Alterationen durch die Parallelver-schiebung auftreten, die sich dann an dieser Position mit der tonartenunabhängigen Alteration summieren.

 

41 

Die reale Sequenz ist im Vergleich zur tonalen Sequenz mathematisch genauer und eindeutiger zu identifizieren. Bei der realen Sequenz werden alle Intervalle chromatisch beibehalten, somit dient die chromatische Kontur als weiteres Kriterium zur Auffindung einer realen Sequenz. Eine reale Sequenz kann auf jeder beliebigen Tonstufe beginnen, also auch auf einer bereits alte-rierten Tonstufe. Daher sind auch hier, wie bei der tonalen Sequenz, die Noteninformationen zur Tonhöhe, Alteration und Oktavlage bei einem Vergleich mit dem Originalmotiv innerhalb der Motivanalyse nicht verwendbar. Tabelle 10 stellt die zur Verfügung stehenden Noteninformationen einer beliebigen realen Se-quenz des Beispielmotivs dar.

Notenname

Alteration Oktave Notenwert 1/8 1/8 1/4 1/8 1/4 1/8 1/8 1/8 1/8 1/2 Punktierung nein nein nein nein ja nein nein nein nein nein X-tole nein nein nein nein nein nein nein nein nein nein

n→n+1 Verbindungstyp

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

n→n+1 (Parsons)

Start Up Up Up Down Down Down Up Down Down

n→n+1 (Diatonisch)

Start +2 +2 +2 -1 -1 -5 +1 -2 -2

n→n+1 (Chromatisch)

Start +4 +3 +3 -2 -1 -9 +2 -4 -3

Tabelle 10 - Noteninformationen der realen Sequenz

 

Originalmotiv Reale Sequenz Notenname -Alteration -Oktavlage -Notenwert NotenwertPunktierung PunktierungX-tole X-toleParsons-Code Parsons-CodeDiatonische Kontur Diatonische Kontur Chromatische Kontur Chromatische Kontur Tabelle 11 - Vergleichbare Noteninformationen zwischen realer Sequenz und Originalmotiv

Tabelle 11 zeigt alle Noteninformation eines Originalmotivs und dessen realer Sequenz, die wäh-rend der Motivanalyse miteinander verglichen werden. Neben dem Parsons-Code und der diato-nischen Kontur muss auch die chromatische Kontur der realen Sequenz mit der des Originalmo-tivs übereinstimmen.

 

42 

3.3.4 UMKEHRUNG

Auch bei Umkehrungen wird zwischen tonalen und realen Umkehrungen unterschieden.

Soll eine tonale Umkehrung gefunden werden, so ist erstmalig ein Transformationsschritt vom Originalmotiv zur Umkehrung notwendig.

Eine tonale Umkehrung als an die Tonart angepasste horizontale Spiegelung des Originalmotivs kann auf einer beliebigen Tonstufe innerhalb der Tonart beginnen. Betrachtet werden drei mögli-che tonale Umkehrungen des Beispielmotivs in Abbildung 21. Mit Hilfe dieser drei Beispiele soll eine mathematische Beschreibung gefunden werden.

Originalmotiv Einige Formen der tonalen Umkehrung   

   

  

  

    

Abbildung 21 - Mögliche tonale Umkehrungen des Originalmotivs

Auffällig ist, dass alle Notenwerte auch in der tonalen Umkehrung erhalten bleiben. Es kann auch für die reale Umkehrung vorausgesetzt werden, dass durch die Spiegelung an der Horizontalen der Rhythmus nicht beeinflusst wird. Weiterhin ist gut sichtbar, dass eine Umkehrung stets spiegelverkehrt zum Verlauf des Original-motivs ist. Eine aufwärts verlaufende Kontur geht in der Umkehrung abwärts, eine abwärts ver-laufende Kontur im Originalmotiv geht in der Umkehrung aufwärts. Wird aufwärts mit einem „+“ und abwärts mit einem „-“ symbolisiert, so lässt sich folgende Abbildungsvorschrift für das Originalmotiv zur Umkehrung beschreiben:

 

43 

wenn n→n+1(Originalmotiv) = + n→n+1(Umkehrung) = -

wenn n→n+1(Originalmotiv) = - n→n+1(Umkehrung) = +

Befindet sich eine Note genau auf der Achse, an der die Spiegelung verläuft, befindet sich die Note im Originalmotiv wie auch in der Umkehrung auf der gleichen Tonhöhe.

Eine Abbildungsregel lässt sich daraus für den Parsons-Code, für die diatonische, sowie auch für die chromatische Kontur bilden.

Für den Parsons-Code wird die Abbildungsregel wie folgt angepasst:

wenn n→n+1(Originalmotiv) = U n→n+1(Umkehrung) = D

wenn n→n+1(Originalmotiv) = D n→n+1(Umkehrung) = U

wenn n→n+1(Originalmotiv) = R n→n+1(Umkehrung) = R

Für die diatonische und chromatische Kontur muss stets nur das Vorzeichen geändert werden.

Sei x  

wenn n→n+1(Originalmotiv) = (+)x n→n+1(Umkehrung) = -x

wenn n→n+1(Originalmotiv) = -x n→n+1(Umkehrung) = (+)x 30

Die chromatische Kontur ist jedoch für die Betrachtung der tonalen Umkehrung irrelevant, da die chromatischen Schritte je nach Tonart unterschiedlich und daher nicht mehr mit der chroma-tischen Kontur des Originalmotivs zu vergleichen sind. Die chromatische Kontur ist daher nur bei der realen Umkehrung von Interesse. Abbildung 22 zeigt die drei möglichen tonalen Umkehrungen aus Abbildung 21 mit den für die Motivanalyse verwendbaren Konturen.

   

                                                             30 Da bei ganzen Zahlen in einem MusicXML-Dokument keine Pluszeichen angezeigt werden, sind die Pluszeichen zur Verdeutlichung in Klammern gesetzt.

 

44 

Originalmotiv

S U U U D D D U D D Parsons-Code

* 2 2 2 -1 -1 -5 1 -2 -2 Diatonische Kontur

Form 1 der tonalen Umkehrung

S D D D U U U D U U Parsons-Code

* -2 -2 -2 1 1 5 -1 2 2 Diatonische Kontur

Form 2 der tonalen Umkehrung

S D D D U U U D U U Parsons-Code

* -2 -2 -2 1 1 5 -1 2 2 Diatonische Kontur

Form 3 der tonalen Umkehrung

S D D D U U U D U U Parsons-Code

* -2 -2 -2 1 1 5 -1 2 2 Diatonische Kontur

Abbildung 22 - Mögliche Formen der Umkehrung und deren Kontur  

Da die Spiegelachse bei der Umkehrung frei gewählt wird, können weder Notennamen noch Ok-tavlagen dazu genutzt werden, in der Motivanalyse eine Umkehrung aufzufinden. Ebenso ist auch die Alteration ähnlich wie bei der tonalen und realen Sequenz nicht zu verwenden. Bei der auto-matisierten Suche nach tonalen Umkehrungen sind also lediglich die rhythmischen Werte sowie die diatonische Kontur und der Parsons-Code ausschlaggebend. Tabelle 12 zeigt die für die Motivanalyse zur Verfügung stehenden Noteninformationen einer beliebigen tonalen Umkehrung des Beispielmotivs. 

Notenname

Alteration Oktave Notenwert 1/8 1/8 1/4 1/8 1/4 1/8 1/8 1/8 1/8 1/2 Punktierung nein nein nein nein ja nein nein nein nein nein X-tole nein nein nein nein nein nein nein nein nein nein n→n+1 Verbindungstyp

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

n→n+1 (Parsons)

Start Down Down Down Up Up Up Down Up Up

n→n+1 (Diatonisch)

Start -2 -2 -2 +1 +1 +5 -1 +2 +2

n→n+1 (Chromatisch)

Tabelle 12 - Noteninformationen der tonalen Umkehrung

Eine Übersicht der Parameter, die bei der Suche nach tonalen Umkehrungen mit dem Original-motiv verglichen werden können, ist in Tabelle 13 enthalten.

   

 

45 

Originalmotiv Tonale Umkehrung Notenname -Alteration -Oktavlage -Notenwert NotenwertPunktierung PunktierungX-tole X-toleParsons-Code Parsons-Code der Umkehrung Diatonische Kontur Diatonische Kontur der Umkehrung Chromatische Kontur -Tabelle 13 - Vergleichbare Noteninformationen zwischen tonaler Umkehrung und Originalmotiv

 

Für die reale Umkehrung gelten die gleichen Abbildungsregeln in der Konturanalyse wie für die tonale Umkehrung. Auch sind die gleichen Parameter der realen Umkehrung zu betrachten: Rhythmus und Konturen (siehe Tabelle 14 und Tabelle 15). Bei der realen Umkehrung ist aber die Analyse der chromatischen Kontur zu ergänzen, da die reale Umkehrung chromatisch eins zu eins gespiegelt wird.

Notenname

Alteration Oktave Notenwert 1/8 1/8 1/4 1/8 1/4 1/8 1/8 1/8 1/8 1/2 Punktierung nein nein nein nein ja nein nein nein nein nein X-tole nein nein nein nein nein nein nein nein nein nein n→n+1 Verbindungstyp

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

n→n+1 (Parsons)

Start Down Down Down Up Up Up Down Up Up

n→n+1 (Diatonisch)

Start -2 -2 -2 +1 +1 +5 -1 +2 +2

n→n+1 (Chromatisch)

Start -4 -3 -3 +2 +2 +9 -2 +4 +3

Tabelle 14 - Noteninformationen der realen Umkehrung 

Originalmotiv Reale UmkehrungNotenname -Alteration -Oktavlage -Notenwert NotenwertPunktierung PunktierungX-tole X-toleParsons-Code Parsons-Code der Umkehrung Diatonische Kontur Diatonische Kontur der Umkehrung Chromatische Kontur Chromatische Kontur der Umkehrung Tabelle 15 - Vergleichbare Noteninformationen zwischen realer Umkehrung und Originalmotiv

 

46 

3.3.5 KREBS

Auch der Krebs wird in zwei verschiedenen Formen betrachtet: Krebs I sowie Krebs II.

Der Krebs I ist die Motivform, bei der das Motiv von hinten nach vorn gelesen wird. Wie in Tabelle 16 dargestellt, sind im Krebs I immer noch alle Noteninformationen aus dem Original-motivs enthalten, lediglich anders sortiert.

Notenname A C E D B C D B G E

Alteration 0 0 0 0 0 0 0 0 +1 0 Oktave 3 4 4 4 4 5 5 4 4 4 Notenwert 1/2 1/8 1/8 1/8 1/8 1/4 1/8 1/4 1/8 1/8 Punktierung nein nein nein nein nein ja nein nein nein nein X-tole nein nein nein nein nein nein nein nein nein nein n→n+1 Verbindungstyp

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

n→n+1 (Parsons)

Start Up Up Down Up Up Up Down Down Down

n→n+1 (Diatonisch)

Start +2 +2 -1 +5 +1 +1 -2 -2 -2

n→n+1 (Chromatisch)

Start +3 +4 -2 +9 +1 +2 -3 -3 -4

Tabelle 16 - Noteninformationen des Krebs I

Originalmotiv Krebs INotenname Notenname (rückwärtige Reihenfolge)Alteration Alteration (rückwärtige Reihenfolge)Oktavlage Oktavlage (rückwärtige Reihenfolge)Notenwert Notenwert (rückwärtige Reihenfolge)Punktierung Punktierung (rückwärtige Reihenfolge)X-tole X-tole (rückwärtige Reihenfolge)Parsons-Code Parsons-Code (rückwärtige Reihenfolge und Symboltausch) Diatonische Kontur Diatonische Kontur (rückwärtige Reihenfolge und Vorzeichentausch)Chromatische Kontur Chromatische Kontur (rückwärtige Reihenfolge und Vorzeichentausch)Tabelle 17 - Vergleichbare Noteninformationen zwischen Krebs I und Originalmotiv

Um festzustellen, ob es sich bei einer Notenfolge um das Krebs I-Motiv des Originalmotivs han-delt, sind alle Parameter in rückwärtiger Reihenfolge zu betrachten (siehe Tabelle 17).

Die Transformation des Parsons-Codes, der diatonischen sowie der chromatischen Kontur ver-langt jedoch, wie es sich in Abbildung 23 erahnen lässt, einen weiteren Schritt.

   

 

47 

Originalmotiv Krebs I Parsons-Code

S U U U D D D U D D S U U D U U U D D D

Diatonische Kontur

* 2 2 2 -1 -1 -5 1 -2 -2 * 2 2 -1 5 1 1 -2 -2 -2

Chromatische Kontur

* 4 3 3 -2 -1 -9 2 -4 -3 * 3 4 -2 9 1 2 -3 -3 -4

Abbildung 23 - Konturen vom Originalmotiv und Krebs I

Für die Bildung der Konturen für Krebs I ist ein Zweischrittverfahren notwendig, welches Ab-bildung 24 verdeutlichen soll. Im ersten Schritt werden die Konturenreihen in verkehrter Reihen-folge angeordnet. Im zweiten Schritt müssen alle Vorzeichen getauscht sowie die Symbole im Parsons-Code invertiert werden.

   

 

48 

1. Ausgangssituation Das vorliegende Originalmotiv

S U U U D D D U D D * 2 2 2 -1 -1 -5 1 -2 -2* 4 3 3 -2 -1 -9 2 -4 -3

2. Krebsbildung Konturreihe wird in verkehrter Reihenfolge gebildet.

3. Umwandlung Parsons-Code: -Symbol am Reihenanfang wird durch * ersetzt-Symbolumwandlungen: D→U, U→D und R→R Diatonische Kontur: -Zahl am Reihenanfang wird durch * ersetzt -Symbole ersetzen: - → + und + → - Chromatische Kontur: -Zahl am Reihenanfang wird durch * ersetzt -Symbole ersetzen: - → + und + → -

D D U D D D U U U S S U U D U U U D D D -2 -2 -2 1 1 5 -1 2 2 * * 2 2 -1 5 1 1 -2 -2 -2-4 -3 -3 2 1 9 -2 4 3 * * 3 4 -2 9 1 2 -3 -3 -4Abbildung 24 - Transformationsprozess vom Originalmotiv zur Krebsform I

Nur wenn in einer Notenreihe nach der Transformation alle Noteninformationen aller Parameter mit denen des Originalmotivs übereinstimmen, handelt es sich eindeutig um einen Krebs I.

Der Krebs II ist ähnlich zu analysieren wie der Krebs I. Jedoch sind hier nur die Intervalle rück-wärts zu lesen, der Rhythmus ist bei Krebs II mit dem Originalmotiv identisch. Durch die Beibe-haltung der Notenwerte ist es für den Hörer für gewöhnlich leichter, den Bezug zum Originalmo-

 

49 

tiv zu erkennen.31 Wieder sind alle Parameter in die Analyse einzubeziehen. Wie die Werte der Parameter bei dem Krebs II des Beispielmotivs lauten, ist in Tabelle 18 dargestellt. Die Transformation der Konturen, Notennamen, Alterationen sowie Oktavlagen durch den Al-gorithmus vom Originalmotiv zum Krebs II erfolgt auf die gleiche Weise wie bei Krebs I. Jedoch müssen die Notenwerte nicht transformiert werden, diese liegen somit in der gleichen Reihenfol-ge wie beim Originalmotiv vor.

Notenname A C E D B C D B G E

Alteration 0 0 0 0 0 0 0 0 +1 0 Oktave 3 4 4 4 4 5 5 4 4 4 Notenwert 1/8 1/8 1/4 1/8 1/4 1/8 1/8 1/8 1/8 1/2 Punktierung nein nein nein nein nein ja nein nein nein nein X-tole nein nein Nein nein nein nein nein nein nein nein n→n+1 Verbindungstyp

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

n→n+1 (Parsons)

Start Up Up Down Up Up Up Down Down Down

n→n+1 (Diatonisch)

Start +2 +2 -1 +5 +1 +1 -2 -2 -2

n→n+1 (Chromatisch)

Start +3 +4 -2 +9 +1 +2 -3 -3 -4

Tabelle 18 - Noteninformationen des Krebs II 

Originalmotiv Krebs IINotenname Notenname (rückwärtige Reihenfolge)Alteration Alteration (rückwärtige Reihenfolge)Oktavlage Oktavlage (rückwärtige Reihenfolge)Notenwert NotenwertPunktierung PunktierungX-tole X-tole Parsons-Code Parsons-Code (rückwärtige Reihenfolge und Symboltausch) Diatonische Kontur Diatonische Kontur (rückwärtige Reihenfolge und Vorzeichentausch) Chromatische Kontur Chromatische Kontur (rückwärtige Reihenfolge und Vorzeichentausch)Tabelle 19 - Vergleichbare Noteninformationen zwischen Krebs II und Originalmotiv

Tabelle 19 zeigt, welche Noteninformationen des Krebses II bei der Transformation aus dem Originalmotiv zum Originalmotiv gleich bleiben.

                                                             31 vgl. Amon, R. (2005) Motiv – Motivisch-thematische Arbeit, Lexikon der Harmonielehre. Wien-München: Doblinger Metzler Verlag, 193 f.

 

50 

3.3.6 SPIEGELKREBS

Der Spiegelkrebs ist eine Kombination aus tonaler Umkehrung und Krebs I, auch Krebsumkeh-rung genannt. Aufgrund der horizontalen Spiegelung, durch die der Spiegelkrebs auf jeder beliebigen Tonstufe innerhalb der vorherrschenden Tonart beginnen kann, sind Notennamen, Alterationen, Oktavla-gen sowie die chromatische Kontur keine brauchbaren Parameter, um den Spiegelkrebs auf das Originalmotiv zurückzuführen. Tabelle 20 zeigt alle Parameter, aufgrund derer der Spiegelkrebs durch Vergleich mit dem Originalmotiv in der Motivanalyse als solcher erkannt wird. Wiederum ist es notwendig, Transformationen vorzunehmen.

Originalmotiv SpiegelkrebsNotenname -Alteration -Oktavlage -Notenwert Notenwert (rückwärtige Reihenfolge) Punktierung Punktierung (rückwärtige Reihenfolge) X-tole X-tole (rückwärtige Reihenfolge) Parsons-Code Parsons-Code (rückwärtige Reihenfolge) Diatonische Kontur Diatonische Kontur

(rückwärtige Reihenfolge) Chromatische Kontur -Tabelle 20 - Vergleichbare Noteninformationen zwischen Spiegelkrebs und Originalmotiv

Es spielt keine Rolle, ob zuerst die Umkehrung und dann Krebs I oder zuerst der Krebs I und dann die Umkehrung gebildet wird. Dies wird in Abbildung 25 anhand des Transformationspro-zesses für den Parsons-Code verdeutlicht.

   

 

51 

Originalmotiv

S U U U D D D U D D

Krebs Umkehrung

S U U D U U U D D D Spiegel-

krebs

S D D D U U U D U U

Umkehrung Krebs

=

S D D U D D D U U U S D D U D D D U U UAbbildung 25 - Transformationsmöglichkeiten vom Originalmotiv zum Spiegelkrebs anhand des Parsons-Codes

Die Transformation der Konturen bei Krebs I verlangt das rückwärtige Lesen der Noten sowie einen Symboltausch bzw. Vorzeichentausch, während bei der Umkehrung zusätzlich ein Symbol-tausch bzw. Vorzeichentausch notwendig wird. Somit hebt sich der Symbol- und Vorzeichen-tausch wieder auf. Die Konturen des Spiegelkrebses unterscheiden sich vom Originalmotiv also nur in der rückwärtigen Reihenfolge. Welche konkreten Werte bei einem beliebigen Spiegelkrebs des Beispielmotivs entstehen, zeigt Tabelle 21.

Notenname

Alteration Oktave Notenwert 1/2 1/8 1/8 1/8 1/8 1/4 1/8 1/4 1/8 1/8 Punktierung nein nein nein nein nein ja nein nein nein nein X-tole nein nein nein nein nein nein nein nein nein nein n→n+1 Verbindungstyp

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

n→n+1 (Parsons)

Start Down Down Up Down Up Up Down Down Down

n→n+1 (Diatonisch)

Start -2 -2 +1 -5 -1 -1 +2 +2 +2

n→n+1 (Chromatisch)

Tabelle 21 - Noteninformationen des Spiegelkrebses

Je nachdem, ob zunächst die Umkehrung oder erst der Krebs durchgeführt wird, fallen einige Parameter in unterschiedlicher Reihenfolge als Basis für einen Vergleich der Noteninformationen

 

52 

zwischen Originalmotiv und Verarbeitung weg. Das Endresultat ist aber bei beiden Reihenfolgen dasselbe, da die Reihenfolge der Transformation irrelevant ist. Abbildung 26 zeigt auf der linken Seite, welche Noteninformationen für die Motivanalyse zu verwenden sind, wenn zunächst die Umkehrung und danach davon der Krebs I gebildet werden. Eine Umkehrung ist mit dem Origi-nalmotiv allein durch die Parameter Notenwert, Parsons-Code sowie die diatonische Kontur ver-gleichbar. Wird danach der Krebs I gebildet, so sind alle diese betrachteten Noteninformationen zur Motivanalyse zu verwenden. Auf der rechten Seite von Abbildung 26 wird zunächst der Krebs I gebildet, bei dem alle Noteninformationen zum Vergleich mit dem Originalmotiv ver-wendet werden können. Erst danach fallen Notennamen, Alterationen, Oktavlagen sowie die chromatischen Konturen als brauchbare Noteninformationen weg. Anhand dieser Darstellung wird deutlich, dass es wesentlich effizienter ist, zuerst die Umkehrung und danach den Krebs zu bilden, da so vom Algorithmus bei der Berechnung des Krebses we-sentlich weniger Noteninformationen durchgearbeitet werden müssen.

Originalmotiv Umkehrung Krebs der Um-kehrung (Spiegelkrebs)

Originalmotiv Krebs Umkehrung des Krebses (Spiegelkrebs)

Notenname - - Notenname Notenname - Alteration - - Alteration Alteration - Oktavlage - - Oktavlage Oktavlage - Notenwert Notenwert Notenwert Notenwert Notenwert Notenwert Chromatische Kontur

- - Chromatische Kontur

Chromatische Kontur

-

Diatonische Kontur

Diatonische Kontur

Diatonische Kontur

Diatonische Kontur

Diatonische Kontur

Diatonische Kontur

Parsons-Code Parsons-Code Parsons-Code Parsons-Code Parsons-Code Parsons-Code Abbildung 26 - Verlust der Noteninformationen in den einzelnen Umwandlungsstufen

3.3.7 INTERVALLWEITUNG

Bei der Intervallweitung werden die Intervalle gestreckt. Es können beliebige Tonhöhen erreicht werden, solange die Intervallrichtung bestehen bleibt. Dies macht es unmöglich, Notennamen, Alterationen sowie Oktavlagen als Kriterium in der Motivanalyse zu verwenden. Auch sind die diatonische und die chromatische Kontur nicht mehr mit dem Originalmotiv vergleichbar. Tabel-le 22 zeigt die Parameter, die bei der Motivanalyse ein durch Intervallweitung verarbeitetes Motiv auf das Originalmotiv zurückführen lassen. 

   

 

53 

Originalmotiv IntervallweitungNotenname -Alteration -Oktavlage -Notenwert NotenwertPunktierung PunktierungX-tole X-toleParsons-Code Parsons-CodeDiatonische Kontur -Chromatische Kontur -Tabelle 22 - Vergleichbare Noteninformationen zwischen Intervallweitung und Originalmotiv

Die Noteninformationen des intervallgeweiteten Motivs sind in Tabelle 23 verzeichnet.

Notenname

Alteration Oktave Notenwert 1/8 1/8 1/4 1/8 1/4 1/8 1/8 1/8 1/8 1/2 Punktierung nein nein nein nein ja nein nein Nein nein nein X-tole nein nein nein nein nein nein nein Nein nein nein n→n+1 Verbindungstyp

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

n→n+1 (Parsons)

Start Up Up Up Down Down Down Up Down Down

n→n+1 (Diatonisch)

n→n+1 (Chromatisch)

Tabelle 23 - Noteninformationen der Intervallweitung

 

3.3.8 INTERVALLENGUNG

Für die Intervallengung gelten ähnliche Regeln, wie bei der Intervallweitung. Der Unterschied liegt hierbei darin, dass Intervalle bei der Intervallengung kleiner sein müssen, als die des Origi-nalmotivs. Wie bei der Intervallweitung liegen die Gemeinsamkeiten der Intervallengung zum Original in den rhythmischen Parametern Notenwert, Punktierung und X-tole sowie im Parsons-Code (siehe Tabelle 24).

 

54 

Originalmotiv Intervallengung Notenname -Alteration -Oktavlage -Notenwert NotenwertPunktierung PunktierungX-tole X-toleParsons-Code Parsons-Code Diatonische Kontur -Chromatische Kontur -Tabelle 24 - Vergleichbare Noteninformationen zwischen Intervallengung und Originalmotiv

Auffällig ist, dass auch die konkreten Noteninformationen des durch Intervallengung verarbeite-ten Originalmotivs, wie in Tabelle 25 dargestellt, sich nicht von den entsprechenden Notenin-formationen der Intervallweitung unterscheiden. Da nur diese Parameter zur Beschreibung von Notenverläufen zur Verfügung stehen, ist auch durch den Algorithmus nicht zwischen Intervallengung und Intervallweitung zu trennen. Die Frage, um welche Motivverarbeitungsform es sich handelt, ist jedoch zweitrangig. Wesentlicher ist es, dass überhaupt die Motivverarbeitun-gen im Allgemeinen gefunden werden.

Notenname

Alteration Oktave Notenwert 1/8 1/8 1/4 1/8 1/4 1/8 1/8 1/8 1/8 1/2 Punktierung nein nein nein nein ja nein nein nein nein nein X-tole nein nein nein nein nein nein nein nein nein nein n→n+1 Verbindungstyp

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

n→n+1 (Parsons)

Start Up Up Up Down Down Down Up Down Down

n→n+1 (Diatonisch)

n→n+1 (Chromatisch)

Tabelle 25 - Noteninformationen der Intervallengung

3.3.9 AUGMENTATION

Bei der Augmentation werden alle Notenwerte des Originalmotivs mit dem Faktor Zwei multi-pliziert. Alle anderen Noteninformationen bleiben mit dem Originalmotiv identisch und können in der Motivanalyse direkt verglichen werden.

 

55 

Tabelle 26 zeigt die durch den Algorithmus zu vergleichenden Noteninformationen zwischen Originalmotiv und Augmentation.

Originalmotiv AugmentationNotenname NotennameAlteration AlterationOktavlage OktavlageNotenwert Notenwert * 2Punktierung PunktierungX-tole X-toleParsons-Code Parsons-CodeDiatonische Kontur Diatonische KonturChromatische Kontur Chromatische Kontur Tabelle 26 - Vergleichbare Noteninformationen zwischen Augmentation und Originalmotiv

Wie die Noteninformationen der Augmentation des Beispielmotivs aussehen, ist in Tabelle 27 dargestellt. Da hier alle Parameter mit Noteninformationen belegt sind, kann die Augmentation eindeutig identifiziert werden. Auch ist die Analyse der Augmentation für den Algorithmus sehr einfach, da neben dem simplen Vergleich der Noteninformationen lediglich zuvor die Notenwer-te mit dem Faktor Zwei multipliziert werden müssen.

Notenname E G B D C B D E C A

Alteration 0 +1 0 0 0 0 0 0 0 0 Oktave 4 4 4 5 5 4 4 4 4 3

Notenwert 1/4 1/4 1/2 1/4 1/2 1/4 1/4 1/4 1/4 1/1 Punktierung nein nein nein nein ja nein nein nein nein nein X-tole nein nein nein nein nein nein nein nein nein nein n→n+1 Verbindungstyp

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

n→n+1 (Parsons)

Start Up Up Up Down Down Down Up Down Down

n→n+1 (Diatonisch)

Start +2 +2 +2 -1 -1 -5 +1 -2 -2

n→n+1 (Chromatisch)

Start +4 +3 +3 -2 -1 -9 +2 -4 -3

Tabelle 27 - Noteninformationen der Augmentation

 

3.3.10 DIMINUTION

Ebenso wie die Augmentation ist die Berechnung der Diminution innerhalb eines Musikwerkes einfach, da hier bis auf die Notenwerte alle Noteninformationen direkt mit dem Originalmotiv verglichen werden können. Die Notenwerte des Motivs müssen vor dem Vergleich mit dem Ori-ginalmotiv durch Zwei dividiert werden (siehe Tabelle 28).

 

56 

Originalmotiv Augmentation Notenname NotennameAlteration AlterationOktavlage OktavlageNotenwert Notenwert / 2 Punktierung PunktierungX-tole X-toleParsons-Code Parsons-Code Diatonische Kontur Diatonische Kontur Chromatische Kontur Chromatische Kontur Tabelle 28 - Vergleichbare Noteninformationen zwischen Diminution und Originalmotiv

Für die Motivanalyse der Diminution des Beispielmotivs stehen folgende Werte zum Vergleich:

Notenname E G B D C B D E C A

Alteration 0 +1 0 0 0 0 0 0 0 0 Oktave 4 4 4 5 5 4 4 4 4 3

Notenwert 1/16 1/16 1/8 1/16 1/8 1/16 1/16 1/16 1/16 1/4 Punktierung nein nein nein nein ja nein nein nein nein nein X-tole nein nein nein nein nein nein nein nein nein nein n→n+1 Verbindungstyp

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

Note → Note

n→n+1 (Parsons)

Start Up Up Up Down Down Down Up Down Down

n→n+1 (Diatonisch)

Start +2 +2 +2 -1 -1 -5 +1 -2 -2

n→n+1 (Chromatisch)

Start +4 +3 +3 -2 -1 -9 +2 -4 -3

Tabelle 29 - Noteninformationen der Diminution

3.3.11 WEITERE FORMEN

Weitere motivthematische Verarbeitungen, wie beispielsweise Abspaltung, Erweiterung, Diffe-renzierung und entwickelnde Variation sind mathematisch nicht oder nur schwer zu fassen.32 Es ist nicht auszuschließen, dass für diese Motivverarbeitungen Transformationsregeln entwickelt werden können, um eine Verbindung zum Originalmotiv herstellen zu können. Zu einem späte-ren Zeitpunkt wäre die Ausweitung des dieser Diplomarbeit zugrundeliegenden Algorithmus in Hinsicht weiterer Motivverarbeitungen denkbar.

                                                             32 vgl. Amon, R. (2005) Motiv – Motivisch-thematische Arbeit, Lexikon der Harmonielehre. Wien-München: Doblinger Metzler Verlag, 195 f.

 

57 

4 DER ALGORITHMUS

Viele Programmiersprachen stellen Module und Funktionen für die Analyse, Manipulation und Bearbeitung von XML-Dokumenten bereit. Die Programmiersprache PHP stellt gleich eine ganze Reihe an Klassen und Modulen zur XML-Bearbeitung zur Verfügung. Wichtige Klassen sind dabei DOM XML, libxml, XML-Parser, XSLT mit XSL und SimpleXML. Für diese Diplomarbeit wird daher PHP genutzt, insbesondere mit den Funktionen und Klassen von SimpleXML.

 

4.1 DAS EINLESEN UND ABSPEICHERN DER QUELLDATEN

Liegt ein zu analysierendes MusicXML-Dokument vor, muss diese Datei zunächst vollständig eingelesen werden (siehe Quelltext 3).

$musicxmldatei = “Beispiel.xml”; $this->xml = simplexml_load_file($musicxmldatei);

Quelltext 3 - Initialisierung in SimpleXML

Mit Hilfe der Funktion simplexml_load_file(string $filename) wird die gesamte MusicXML-Datei geladen und in ein Objekt umgewandelt. Im nächsten Schritt wird eine Schleife angelegt, die das gesamte Objekt parst, um die nötigen Noteninformationen für eine Motivanalyse zu extrahieren. Dabei wird dem Objekt die Funktion xpath(string $path) angehangen, die das direkte Navigieren zu MusicXML-Elementen ermöglicht (siehe Quelltext 4). So kann gezielt auf Elemente, auf deren Kindelemente oder auf ganze Bäume navigiert werden.

foreach($this->xml->xpath("/score-partwise/part") as $presentation2){ foreach($presentation2->xpath("measure") as $key_out => $presentation){ … } }

Quelltext 4 - Auslesen der Partitur mit Hilfe zweier foreach-Schleifen

 

58 

Enthält ein MusicXML-Dokument eine Partitur mit mehreren Notensystemen, so sind diese in MusicXML nacheinander innerhalb des Elements <score-partwise> angeordnet, wie in Quelltext 5 verkürzt dargestellt ist. Das Element eines Systems wird mit <part> angegeben. Die Systeme wie-derrum enthalten alle Takte. Diese werden jeweils mit <measure> angegeben.

<score-partwise> <part id="P1"> // 1. System <measure number="1"> // 1. Takt des ersten Systems <note> ... </note> </measure> <measure number="2"> // 2. Takt des ersten Systems ... </measure> ... </part> <part id="P2"> // 2. System <measure number="1"> // 1. Takt des zweiten Systems ... </measure> </part> ... </score-partwise>  

Quelltext 5 - Anordnung der Systeme innerhalb von MusicXML

Mit Hilfe der Funktion xpath kann über den Pfad „score-partwise/part“ direkt in die Präsentati-onsebene der Noten innerhalb des MusicXML-Dokuments navigiert werden. Dabei ist der Rück-gabewerte von xpath stets ein multidimensionales Array. Wie in Abbildung 27 dargestellt, navi-giert die erste foreach-Schleife (gestrichelte Linien) direkt in einzelne Notensysteme einer Parti-tur, während die innere foreach-Schleife (durchgezogene Linien) durch die einzelnen Takte eines Notensystems parst.

   

 

59 

Innere foreach-Schleife

Äußere foreach-Schleife _._ äußere foreach-Schleife ___ innere foreach-Schleife

Abbildung 27 - Anweisungsreihenfolge der foreach-Schleifen im MusicXML-Dokument

Abgespeichert werden die eingelesenen Daten in ein multidimensionales Array.

 

60 

4.1.1 EINLESEN GENERELLER INFORMATIONEN: NOTENSCHLÜSSEL, TONART UND TAKTART

Jeder neue Taktanfang ist darauf zu überprüfen, ob ein Wechsel von Notenschlüssel, Vorzeichen oder Taktart angegeben ist. Die Elemente, die hierzu aus MusicXML ausgelesen werden müssen, befinden sich als Kindelemente in der Elementverschachtelung <measure> <attributes>. Die Überprüfung an jedem Taktanfang kann erst durch die zwei ineinander geschachtelten foreach-Schleifen realisiert werden. Die folgenden Codezeilen rufen an jedem Taktanfang die Art des Notenschlüssels und seine Po-sition auf den Notenlinien auf. Beides wird im Element <clef> angegeben.

echo ‘Schlüssel: ‘.$this->presentation->attributes->clef->sign; echo ‘Schlüssel an Notenlinie: ‘.$this->presentation->attributes->clef->line;

Quelltext 6 - Zugriff auf Notenschlüssel und Schlüsselposition

Tabelle 30 zeigt eine Übersicht einiger typischer Notenschlüssel sowie deren Werte in MusicXML. <sign> gibt die Art des Notenschlüssels an (Tabelle 30, 2. Spalte). Diese wird in MusicXML wie in der Musiktheorie mit dem Buchstaben des Notennamens angegeben, welcher durch den jeweiligen Notenschlüssel auf einer bestimmten Notenlinie definiert wird. So befindet sich beispielsweise zwischen den beiden Punkten in der Darstellung des Bassschlüssels (Tabelle 30, 3. Zeile) stets die Note F. Daher wird der Bassschlüssel auch F-Schlüssel genannt und in MusicXML mit <sign>F</sign> angegeben. Dieselbe Form des Notenschlüssels kann auf jeder beliebigen Notenlinie platziert werden, wodurch sich jeweils die Zuordnung des Notennamens zur Notenlinie verändert. Welche Notenlinie der Notenschlüssel umschließt, ist in <line> (Tabelle 30, 3. Spalte) angegeben.

   

 

61 

Notenschlüssel presentation->attributes->clef->sign presentation->attributes->clef->line

 

  

G

2

 

  

C

3

 

  

F

4

 

  

A

2

 

  

F Zusatz: <clef-octave-change>-1<clef-octave-change>

4

 

  

G Zusatz: <clef-octave-change>-1<clef-octave-change>

2

Tabelle 30 - Wichtige Notenschlüssel und deren Werte in MusicXML

 

Werden Notenschlüssel um ein oder zwei Oktaven nach oben oder unten oktaviert, wird inner-halb des <clef>-Elements das zusätzliche Element <clef-octave-change> eingefügt. Übliche Werte sind hierbei -2, -1, 1 und 2. Alle Informationen im Element <clef> sind alleinig zur Darstellung des Notenschlüssels da. Sie beeinflussen jedoch keinesfalls die Noteninformationen der Noten, da diese stets absolut angege-ben werden. Werden beispielsweise Noten durch einen Notenschlüssel nach oben oder unten oktaviert, so werden vom Notationsprogramm auch die Oktavwerte der Noten im Element <octave> an die neue Oktavlage angepasst.

Weiterhin wird in jedem neuen Takt die Tonart überprüft. Werden durch Tonartwechsel Altera-tionen den Noten vorangestellt, so müssen diese Alterationen zusätzlich zur Angabe der Tonart jeder betreffenden Note innerhalb von MusicXML im Element <pitch> als Element <alter> ein-gefügt werden. Der Zugriff auf die Tonart und das Geschlecht im Element <key> erfolgt ebenfalls mit Hilfe der xpath-Funktion. Tonart und Tongeschlecht werden mit folgenden Codezeilen abgefragt: 

 

62 

echo ‘Tonart: ‘.$this->presentation->attributes->key->fifths; echo ‘Tongeschlecht: ‘.$this->presentation->attributes->key->mode;

Quelltext 7 - Zugriff auf Tonart und Tongeschlecht

<mode> gibt das Tongeschlecht an, welches die Werte major (Dur) oder minor (Moll) erlaubt. Die Tonart, die mit <fifths> angegeben wird, wird in ganzzahlige Werte kodiert, welche in der fol-genden Tabelle aufgeschlüsselt werden.

Tonart in Dur / Moll Wert im Element <fifths> F# = Gb / Ebm = D#m 6H / G#m 5E / C#m 4A / F#m 3D / Hm 2G / Em 1C / Am 0F / Dm -1B / Gm -2Eb / Cm -3Ab / Fm -4Db / Bm -5Gb = F# / Ebm = D#m -6Tabelle 31 - Tonarten und deren Wertezuordnung in MusicXML

Die letzte wichtige Information, die in MusicXML zu Beginn eines jeden neuen Taktes ausgele-sen wird, ist die Taktart. Mit den folgenden Codezeilen lässt sich die Taktart aus dem Element <time> lesen.

echo ‘Beat: ‘.$this->presentation->attributes->time->beats; echo ‘Beat-Type: ‘.$this->presentation->attributes->time->beat-type;

Quelltext 8 - Zugriff auf Beats und Beat-Type

Die Angabe der Taktart verhält sich wie ein mathematischer Bruch. Die möglichen Werte in <beats> als Zähler und <beat-type> als Nenner sind natürliche Zahlen. Die Einhaltung der richti-gen Anzahl an Notenwerten innerhalb eines Takts entsprechend der Taktart muss durch das No-tensatzprogramm selbst gewährleistet werden. So lassen es neuere Softwareversionen der meisten Notensatzprogramme gar nicht mehr zu, dass beispielsweise mehr als vier Viertelnoten in einen 4/4 Takt notiert werden.

 

63 

Abschließend sei zu erwähnen, dass die Angabe des Notenschlüssels, der Tonart und der Taktart für die Analyse rein informativen Charakter besitzt, da alle Noten stets vollständig in ihren eige-nen Elementen definiert sind.

Die folgenden Abschnitte zeigen, wie auf einzelne Noteninformationen innerhalb des Mu-sicXML-Dokuments zugegriffen wird. Dieser Schritt bildet die Basis der Motivanalyse.

4.1.2 EINLESEN DER TONHÖHE

In MusicXML sind die Noteninformationen zur Tonhöhe im Element <note> beschrieben. Da-durch, dass mit Hilfe der Funktion xpath() in der inneren foreach-Schleife bis zum Element <measure> navigiert wird, ist der Zugriff auf die darunterliegenden Elemente <note> und dessen Kindelemente problemlos möglich. 

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"> <score-partwise> <part id="P1"> <measure number="1"> <note> <pitch> <step>E</step> <octave>5</octave> <alter>-1</alter> </pitch> <accidental>flat</accidental> </note> <note> <pitch> <step>G</step> ... </pitch> </note> ... </measure> ... </part> </score-partwise>  

Quelltext 9 - MusicXML Elemente zum Beschreiben einer Note

Wie Quelltext 9 zeigt, befinden sich die Elemente zur Angabe der Tonhöhe − <step>, <octave> und <alter> − für jede Note stets in der gleichen Verschachtelungstiefe „/score-partwise/part/measure/note/pitch/“ ab der MusicXML-Dokumentenwurzel. Für die Angabe der konkreten Tonhöhe wird der Notenname aus dem Element <step>, der Alte-rationswert aus dem Element <alter> sowie der Wert für die Oktavlage aus dem Element <octave> gelesen.

 

64 

MusicXML ist ein Datenformat mit vielen Redundanzen. So werden alle Alterationen vor jeder einzelnen Note im Element <alter> angegeben, obwohl zumindest die tonartenabhängigen Alterationen bereits mit der Angabe der Tonart bekannt sind. Zusätzlich wird im Element <accidental> das Versetzungszeichen als englisches Wort angegeben. Die üblichen Werte sind sharp (Kreuz), natural (Auflösungszeichen), flat (B), double-sharp (Doppelkreuz), sharp-sharp (Kreuz-Kreuz), flat-flat (Bb), natural-sharp (Auflösungszeichen gefolgt von Kreuz) und natural-flat (Auflösungszeichen gefolgt von B).33 Diese Werte sind ergänzend zur Tonart zu lesen. Sie enthalten demnach nur tonartenunabhängige Alterationen. Das Einlesen der Werte aus dem Element <alter> erscheint daher mit den absoluten Angaben sinnvoller zur genauen Bestimmung der Tonhöhe. Dies hat den Vorteil, dass Tonartwechsel für die Motivanalyse nicht pro Takt pro-tokolliert werden müssen.

Akkorde werden auf ähnliche Art wie einzelne Noten ausgelesen. Die Noten eines Akkordes werden in MusicXML entgegen jeglicher Erwartungen nicht in einem neuen Element ineinander verschachtelt. Vielmehr wird jede einzelne Akkordnote wie eine normale Note in einem eigenen Element <note> dargestellt. Die tiefste Note im Akkord, der Basston, wird als erstes beschrieben. Alle weiteren Noten im Akkord werden innerhalb der Partitur in der Reihenfolge der Tonhöhe von unten nach oben dargestellt und erhalten zusätzlich jeweils das leere Element <chord />. Im Quelltext 10 ist die Darstellung eines Akkordes in MusicXML verkürzt dargestellt. 

<note> <pitch> <step>A</step> Basston </pitch> </note> <note> <chord/> <pitch> <step>C</step> </pitch> </note> <note> <chord/> <pitch> <step>E</step> </pitch> </note>

Quelltext 10 - Akkord bestehend aus den Tönen A, C und E (Basston ist A) in MusicXML

 

Im Basston ist das leere Element <chord/> allerdings nicht enthalten. Durch diese Struktur ent-steht das folgende Problem: Liest der Algorithmus an Notenposition n eine Note ohne dem lee-ren Element <chord/>, so ist an dieser Position noch unklar, ob die Note ein Basston eines Ak-kords oder eine einzelne Note ist. Für die Kontur zwischen zwei Notenpositionen hat diese

                                                             33 Recordare: Internet Music Publishing and Software: "MusicXML 1.0 Note DTD Module". URL: http://www.recordare.com/dtds/1.0/note.html [Stand: 1. Februar 2009]

 

65 

Problematik weitreichende Folgen, da durch Akkorde mehrere Möglichkeiten des Konturverlaufs entstehen. Daher ist es nötig, dass der Algorithmus eine bestimmte Anzahl an <note>-Elementen im Voraus lesen kann, bis eine Aussage über die möglichen Konturen zwischen zwei Notenposi-tionen getroffen werden kann.

Mehrere gleichzeitige erklingende Noten innerhalb eines Notensystems können auch als ver-schiedene Stimmen auftreten. Anwendung findet dies z.B. in vierstimmigen Chorälen, die in zwei statt vier Systemen notiert sind. Die Angabe der Stimme erfolgt in MusicXML im Element <voice>, wie der Quelltext 11 zeigt. Gebräuchlich sind die Werte von 1 bis 4. MusicXML gibt jedoch keine Einschränkungen in den Werten vor.

<note> <pitch> <step>F</step> <octave>4</octave> </pitch> <voice>1</voice> ... </note> <note> <pitch> <step>A</step> <octave>4</octave> </pitch> <voice>2</voice> ... </note>

Quelltext 11 - Die Kennzeichnung der Stimmen im Notensystem

Der Motivsuchealgorithmus wird Werte im Element <voice> ignorieren. Auf diese Weise werden der Programmieraufwand sowie die Laufzeit des Algorithmus verringert. Es ist aber darauf zu achten, dass das zu analysierende Werk nur in einer Stimme geschrieben steht. Alternativ würden Noten, die in mehreren Stimmen gleichzeitig erklingen sollen, durch den Algorithmus so gelesen werden, als wären sie nacheinander notiert. Bei einer Weiterentwicklung des Algorithmus wäre eine getrennte Analyse der Stimmen sicherlich sinnvoll.

Neben Noten und Akkorden kann die Position n mit einer Pause belegt sein. Durch das leere Element <rest/> im Element <note> wird ein Pausenzeichen angegeben (siehe Quelltext 12). Folg-lich ist das Element <pitch> nicht vertreten.

   

 

66 

<measure number="1"> <attributes> <divisions>1</divisions> </attributes> <note> <rest/> <duration>1</duration> <type>quarter</type> </note> </measure>

Quelltext 12 - Kennzeichnung einer Pause in MusicXML

Der Wert der Pause ergibt sich aus dem Wert in den Elementen <duration> und <divisions> und wird genauso wie ein Notenwert − gemäß dem folgenden Kapitel − berechnet.

 

4.1.3 EINLESEN UND BERECHNEN DER NOTEN-WERTE

Das Element <duration> beschreibt den relativen Notenwert einer Note, d.h. im Verhältnis zum Notenwert anderer Noten. Für die Berechnung des absoluten Notenwertes ist neben dem Wert in <duration> außerdem der Wert im Element <divisions> erforderlich. Das Element <divisions> steht immer im ersten Takt eines jeden Notensystems. Aber auch innerhalb eines Notensystems kann <divisions> nochmals mit einem neuen Wert auftreten. Dies kommt dann vor, wenn die Taktart gewechselt wird oder bei abrupten Wechsel von sehr kurzen Notenwerten zu sehr langen Notenwerten und umgekehrt. Dabei wird der neue Wert in <divisions> stets zu Beginn des jewei-ligen Taktes verändert. Danach beziehen sich alle Werte in <duration> auf den neuen <divisions>-Wert. Die Anordnung beider Elemente ist in Quelltext 13 dargestellt.  

<measure> <attributes> <divisions>1</divisions> </attributes> <note> <pitch> … </pitch> <duration>2</duration> … </note> </measure>

Quelltext 13 - Repräsentation des Notenwerts in MusicXML mit Hilfe Duration und Divisions

 

67 

Für die Berechnung des Notenwertes aus den Werten in <duration> und <divisions> gilt:

L = Wert in <duration> / Wert in <divisions> Notenwert Formel 1 - Berechnung des Notenwertes

Mit Hilfe dieser Rechenvorschrift wird für den Algorithmus eine Funktion programmiert, die als Eingabewerte die Elementinhalte aus <duration> und <divisions> übernimmt und die Variable L als Ausgabewert zurückgibt. In der Variablen L ist der Notenwert kodiert. Die Tabelle 32 enthält die Zuordnungen der Variable L zu den entsprechenden Notenwerten. Weiterhin zeigt sie einige Berechnungen aus möglichen Werten in <divisions> und <duration>. Zur Analyse der Notenwerte bezieht sich der Algorithmus auf diese Zuordnung zur Variablen L. Ist L=1, so entspricht dies einer Viertelnote. Dabei verhält sich die Variable L linear. Ist beispielsweise der Wert in <divisions> innerhalb eines Taktes gleich 12 und kommen darin zwei Noten mit den <duration>-Werten 12 und 24 vor, so ergibt sich daraus folgende Rechnung: L1 = 12/12, L2 = 24/12. Wie aus der Tabelle 32 zu entnehmen ist, ist die erste Note damit eine Viertelnote und die zweite eine halbe Note. 

Werte von <divisions>: 1 2 4 8 16 32 L

Notenwertbezeichnung Longa 16/1 32/2 64/4 128/8 256/16 512/32 16 Alla Breve 8/1 16/2 32/4 64/8 128/16 256/32 8Ganze Note 4/1 8/2 16/4 32/8 64/16 128/32 4Halbe Note 2/1 4/2 8/4 16/8 32/16 64/32 2Viertelnote 1/1 2/2 4/4 8/8 16/16 32/32 1Achtelnote - 1/2 2/4 4/8 8/16 16/32 0,5 16tel Note - - 1/4 2/8 4/16 8/32 0,25 32tel Note - - - 1/8 2/16 4/32 0,125 64tel Note - - - - 1/16 2/32 0,0625 128tel Note - - - - - 1/32 0,03125 Punktierte Viertelnote - 3/2 6/4 12/8 24/16 48/32 1,5 Punktierte Achtelnote - - 3/4 6/8 12/16 24/32 0,75 Tabelle 32 - Mögliche Zuordnungen der Werte in <duration> (Zähler) und <divisions> (Nenner) zur Variable L

Mit kleineren <divisions>-Werten sind nicht alle Notenwerte darstellbar. Im Allgemeinen ist fest-zuhalten, dass sehr kurze Notenwerte mit umso größeren Werten in <divisions> beschrieben werden.

Neben der Angabe des Notenwerts durch die Elemente <duration> und <divisions> wird der No-tenwert als englisches Wort im Element <type> zur Verfügung gestellt (siehe Quelltext 14).

   

 

68 

<note> <pitch> … </pitch> … <type>half</type> … </note>

Quelltext 14 - Die Angabe des Notenwertes als Wort in MusicXML

Die möglichen Elementinhalte in <type> sind: 256th, 128th, 64th, 32nd, 16th, eighth, quarter, half, whole, breve und long.

Punktierungen einer Note zur Verlängerung des Notenwertes werden in MusicXML wie in Quelltext 15 dargestellt mit Hilfe des leeren Elements <dot /> beschrieben. Zur Berechnung des Notenwertes einer einfach punktierten Note werden die Werte aus dem Element <dot /> wie bei einer nicht punktierten Note aus den Elementen <duration> und <divisions> ausgelesen.  

<note> <pitch> <step>A</step> <octave>4</octave> </pitch> <duration>2</duration> <type>quarter</type> <dot/> </note>  

Quelltext 15 - Anwendung des leeren Elements <dot /> im Element <note>

Auch X-tolen können wie alle anderen Notenwerte mit Hilfe der Formel 1 berechnet werden. Da X-tolen auf die Zählzeit verteilt ungerade Notenwerte besitzen, können als Ergebnis unter Um-ständen positiv rationale Zahlen herauskommen. Die folgende Darstellung zeigt, wie auf zwei Viertelnoten durch die Beschreibung der X-tole drei Viertelnoten an die gleiche Stelle positioniert werden.

   

 

69 

1. 5. 10. 15. 20. 25. 30. 35. 40. 45. 50. 55. 60.

<measure number="1"> <attributes> <divisions>3</divisions> ... <beats>4</beats> <beat-type>4</beat-type> ... </attributes> ... <note> <pitch> <step>A</step> <octave>4</octave> </pitch> <duration>2</duration> <voice>1</voice> <type>quarter</type> <time-modification> <actual-notes>3</actual-notes> <normal-notes>2</normal-notes> </time-modification> Erste Note <stem>up</stem> der X-tole <notations> <tuplet number="1" placement="above" type="start"/> Initialisierung </notations> der X-tole </note> <note> <pitch> <step>B</step> <octave>4</octave> </pitch> <duration>2</duration> <voice>1</voice> <type>quarter</type> <time-modification> <actual-notes>3</actual-notes> <normal-notes>2</normal-notes> Zweite Note der X-tole </time-modification> <stem>down</stem> </note> <note> <pitch> <step>E</step> <octave>5</octave> </pitch> <duration>2</duration> <voice>1</voice> <type>quarter</type> <time-modification> <actual-notes>3</actual-notes> <normal-notes>2</normal-notes> </time-modification> Letzte Note <stem>down</stem> der X-Tole <notations> <tuplet number="1" type="stop"/> Beendigung der X-tole </notations> </note> <note> ... </note> <note> ... </note> </measure>  

Quelltext 16 - Struktur einer X-tole in MusicXML

Eine X-tole besitzt eine kompliziertere Elementstruktur. Wie bei einem Akkord werden die No-ten in einer X-tole nicht ineinander verschachtelt dargestellt, sondern werden, mit weiteren Ele-menten ergänzt, einzeln im Element <note> beschrieben. Dabei sind die ergänzten Elemente ab-

 

70 

hängig von der Position der Note innerhalb der X-tole. Alle Noten einer X-tole sind versehen mit dem Element <time-modification> mit den Kindelementen <actual-notes> und <normal-notes>. Der ganzzahlige Wert im Element <actual-notes> gibt an, wie viele Noten innerhalb der X-tole platziert werden. Der ganzzahlige Wert in <normal-notes> gibt die Anzahl der Noten an, die auf die Dauer der X-tole kommen würden. Die erste Note in einer X-tole besitzt zusätzlich das Element <notations>. Dieses Element bein-haltet das Element <tuplet> mit den Attributen number, placement und type. Das Attribut num-ber besitzt den Wert 134, placement beschreibt, ob sich der Strich zur X-tole über oder unter den Noten der X-tole befindet und type gibt an, ob die X-tole in der aktuellen Note beginnt oder endet. Die Noten der X-tole, die keine Anfangs- beziehungsweise Endnote einer X-tole sind, haben bis auf <time-modification> und den dazugehörigen Kindelementen keine weiteren zusätzlichen Ele-mente. Alle Noten einer X-tole besitzen innerhalb von <time-modification> dieselben Werte. Die letzte Note der X-tole besitzt ebenfalls wie die erste Note der X-tole das zusätzliche Element <notations>. Die Angaben darin unterscheiden sich lediglich darin, dass das Attribut type im Element <tuplet> mit dem Wert „stop“ angegeben wird.

                                                             34 Das Attribut number scheint ein Identifikator für X-tolen zu sein, die zur selben Zeit im gleichen Notensystem gespielt werden. Die Dokumentation von MusicXML konnte hierzu leider keinen Aufschluss geben.

 

71 

4.2 PROBLEM- UND SONDERFÄLLE BEIM EINLESEN AUS MUSICXML

Probleme in der Motivanalyse können beispielsweise entstehen durch die schwer handhabbare Auswertung des MusicXML-Formats mit Hilfe der Programmiersprache PHP und ihrer SimpleXML-Funktionen. Zu einigen Problemen gibt es Lösungen, andere Probleme sind nur durch großen Aufwand lösbar oder müssen mit weiteren Programmiersprachen mit Hilfe gänz-lich anderer Überlegungen gelöst werden.

4.2.1 BETRACHTUNG VON AKKORDEN VOR DER KONTURANALYSE

Problematisch für die Motivanalyse ist die Behandlung von Akkorden. Die Töne eines Motivs bzw. einer Motivverarbeitung können in einem oder mehreren Akkorden eingebettet sein. Es ist jedoch zunächst nicht klar ist, welche Töne im Akkord zum Motiv gehö-ren und welche nicht. Daher müssen prinzipiell alle Akkordtöne danach abgesucht werden. Es gibt drei Möglichkeiten, in welcher Reihenfolge im Musikwerk ein Akkord in Verbindung mit einem anderen Akkord oder einer einzelnen Note in der Partitur auftaucht:

Auf eine Note folgt ein Akkord (N→A)

Auf ein Akkord folgt eine Note (A→N) Verbindungstypen

Auf ein Akkord folgt ein Akkord (A→A)

Je nach Verbindungstyp ergeben sich unterschiedlich viele Konturverläufe, die die Motivverarbei-tungen oder das Originalmotiv enthalten können.

Auf eine Note folgt ein Akkord

Um zu differenzieren, ob an Notenposition n ein Akkord oder eine Note auftritt, liest der Algo-rithmus im Voraus die nächste Note ein und prüft, ob dort das Element <chord/> auftritt. Ist das Element <chord/> vorhanden, so ist die entsprechende Note der zweite Akkordton an Notenposi-tion n mit der Positionsbezeichnung n2. Ist das Element <chord/> nicht vorhanden, muss es sich um eine neue Note an der Notenposition n+1 handeln. Nun ist weiterhin zu überprüfen, ob an

 

72 

Position n+1 ein Akkord auftritt, damit alle Konturen zwischen n und n+1 berücksichtigt werden können. So wird von Notenposition n aus zwei Noten im Voraus nach dem Element <chord/> gesucht. Tritt das Element <chord/> auf, wird die Note an dieser Stelle als zweiter Akkordton an Notenposition n+1 erkannt. Deren genaue Notenposition wird als (n+1)2 definiert. Dementspre-chend wird hier die Notenposition vor der Notenposition (n+1)2 mit (n+1)1 bezeichnet. An dieser Stelle muss sich zwangsläufig der Basston des Akkords befinden. Im selben Muster wird solange fortgefahren, bis alle Akkordtöne des Akkordes erkannt sind, d.h. bis zur Note, in der kein <chord/>-Element enthalten ist. Eine wie eben beschriebene Note zu Akkord-Verbindung (N→A) ist in Abbildung 28 dargestellt. Es müssen an Notenposition n mindestens zwei Noten im Voraus gelesen werden, um klarzustel-len, ob es sich um eine Note zu Akkord-Verbindung handelt. Dann erst kann der Algorithmus in die entsprechende Anweisung gehen, die eine (N→A)-Abfolge analysiert.

 

Abbildung 28 - Konturmöglichkeiten von Notenposition n zu Position n+1

Eine (N→A)-Verbindung enthält wie in Abbildung 28 dargestellt an Notenposition n eine Note und an Notenposition n+1 einen Akkord mit den Akkordtönen (n+1)1 bis (n+1)k. Zwischen der Notenposition n und Position n+1 mit k Akkordtönen entstehen pro Konturtyp k Konturen.

Auf einen Akkord folgt eine Note

Betrachtet wird nun die Folge Akkord zu Note (A→N), wie in Abbildung 29 dargestellt ist. Die aktuelle Leseposition befindet an Notenposition n1. Im Voraus wird die nächste Note gelesen. Da dort das Element <chord/> enthalten ist, ist die entsprechende Notenposition mit n2 zu bezeich-nen. Es wird dadurch deutlich, dass sich an Notenposition n1 ein Basston eines Akkords befindet. Es sind nun zwei Verbindungstypen möglich: nach Akkord folgt Note (A→N) oder auf Akkord folgt Akkord (A→A). Der Algorithmus analysiert die nachfolgenden Noten bis zu der Note, die als erstes kein Element <chord/> enthält. Diese Note wird mit (n+1)1 gekennzeichnet. Der Akkord an Notenposition n beinhaltet m Akkordnoten von n1 bis nm.

   

 

73 

 

Abbildung 29 - Konturmöglichkeiten von Akkord n1 zu Note (n+1)1

An Notenposition (n+1)1 ist dem Algorithmus noch immer nicht bekannt, ob an Position n+1 eine Note oder ein Akkord steht. Daher ist bis zu diesem Punkt der Analyseschritt für die Ak-kord- zu Akkord-Verbindung und die Akkord- zu Note-Verbindung identisch. Befindet sich an Notenposition n+1 eine einzelne Note, so sind m mögliche Konturverläufe pro Konturtyp zu analysieren.

Auf einen Akkord folgt ein Akkord

Erst wenn der Algorithmus die Notenposition (n+1)2 vorausliest, wird klar, ob Note (n+1)1 ein Basston eines Akkords oder eine einzelne Note ist. Im nun betrachteten Fall (siehe Abbildung 30) befindet sich an Position (n+1)2 das leere Element <chord/>. Erst wenn m+2 Noten vorausge-lesen wurden, ist für den Algorithmus klar, dass der Verbindungstyp eine Akkord- zu Akkord-Verbindung ist. Dennoch muss der Algorithmus m+k+1 Noten im Voraus lesen bis zur ersten Note ohne dem Element <chord/>, um zu prüfen, wie viele Noten zum Akkord an Position n+1 gehören. Die Position der nächsten Note ohne dem <chord/>-Element wird mit (n+2)1 bezeich-net.

 

Abbildung 30 - Konturmöglichkeiten von Akkord n zu Akkord (n+1)1

Zwischen Akkord n mit m Akkordtönen und Akkord (n+1) mit k Akkordtönen ergeben sich m*k Konturverläufe. Allgemein betrachtet resultiert daraus folgendes Problem: Ein Akkord beinhaltet mindestens drei Noten, die zeitgleich gespielt werden. Somit entstehen bei der Anwendung der Konturanalyse zwischen zwei Akkorden mit jeweils drei Noten bereits neun verschiedene Konturverläufe. Diese Konturverläufe müssen jeweils für den Parsons-Code, die diatonische und die chromatische Kontur berechnet werden. So sind bereits 27 Konturverläufe zwischen zwei Akkorden mit je-

 

74 

weils drei Noten zu berechnen. Daraus ergibt sich ein enormer Rechenaufwand, der zur Weiter-entwicklung des Programms optimiert werden könnte.

Zusätzlich besteht das Problem, dass die Noten bei einer Akkord- zu Akkord-Verbindung stets bis zur Notenposition (n+2)1 gelesen werden müssen. Dies sind bei zwei aufeinanderfolgenden Dreiklängen sechs Noten, die in einem Puffer abgespeichert werden. In einer neuen Programmversion wäre es sinnvoll, die im Puffer gespeicherten Daten besser zu nutzen, damit jede Note insgesamt nur einmal eingelesen werden muss. Innovative Algorithmen aus dem Information Retrieval und der Bioinformatik können dabei neue Aspekte im Finden eines effizienteren Algorithmus sein.

4.2.2 INSTRUMENTE MIT ZWEI SYSTEMEN IN MUSICXML

Ein MusicXML-Dokument ist sequenziell aufgebaut. Das bedeutet, dass alle Notensysteme auf-einanderfolgend beschrieben sind. Innerhalb eines Notensystems sind die Takte hintereinander geordnet. Eine Ausnahme liegt jedoch vor, wenn das dargestellte Musikinstrument aus spieltech-nischen Gründen in zwei Systemen notiert wird, wie beispielsweise das Klavier oder die Harfe. Eine Motivanalyse bei Instrumenten, die in zwei Systemen notiert sind, ist ohne eine Vorverar-beitung des MusicXML-Dokuments nicht möglich. Das folgende Beispiel mit zwei Systemen soll die Problematik verdeutlichen.

   

 

75 

1. 5. 10. 15. 20. 25. 30. 35. 40. 45. 50. 55. 60. 65.

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"> <score-partwise> <identification> <encoding> <software>Finale for Windows</software> <software>Dolet Light for Finale 2006</software> <encoding-date>1900-00-00</encoding-date> </encoding> </identification> <part-list> <score-part id="P1"> <part-name>Harfe</part-name> <score-instrument id="P1-I1"> <instrument-name>Harfe</instrument-name> </score-instrument> <midi-instrument id="P1-I1"> <midi-channel>1</midi-channel> <midi-program>47</midi-program> </midi-instrument> </score-part> </part-list> <!--=========================================================--> <part id="P1"> <measure number="1"> <attributes> <divisions>1</divisions> <key> <fifths>0</fifths> <mode>major</mode> </key> <time symbol="common"> <beats>4</beats> <beat-type>4</beat-type> </time> <staves>2</staves> <clef number="1"> <sign>G</sign> <line>2</line> </clef> Initialisierung von zwei Systemen <clef number="2"> <sign>F</sign> <line>4</line> </clef> </attributes> <sound tempo="120"/> <note> <rest/> <duration>4</duration> <voice>1</voice> <staff>1</staff> </note> <backup> <duration>4</duration> </backup> <note> <rest/> <duration>4</duration> <voice>2</voice> <staff>2</staff> </note> <barline location="right"> <bar-style>light-heavy</bar-style> </barline> </measure> </part> <!--=========================================================--> </score-partwise>  

Quelltext 17- MusicXML-Beispiel mit zwei Systemen

 

76 

In den Zeilen 37-45 erfolgt die Initialisierung eines Zweiersystems mit den Elementen <staves> und <clef>. Der Wert im Element <staves> gibt die Anzahl der Notensysteme an. Das Element <clef> legt für jedes System einen Notenschlüssel und dessen Position auf den Notenlinien an. Die erste <clef>-Definition steht für das obere System, die zweite <clef>-Definition für das unte-re System. Ein Zweiersystem wird in MusicXML stets taktweise angegeben. Durch die taktweise Reihenfolge, mit der die Noten eines Zweier-Notensystems in MusicXML beschrieben werden, ist das Auslesen einer Melodie innerhalb nur einer der beiden Stimmen erschwert. Umso kompli-zierter verhält es sich, wenn sich eine zusammenhängende Melodie bzw. Akkorde über beide Notensysteme erstrecken. Hier wäre es sinnvoll, beide Systeme zu einem System zusammenzu-fassen, wie es in Abbildung 31 von links (zwei Systeme) nach rechts (zusammengefasst zu einem System) dargestellt ist. Jedoch birgt eine solche Vorgehensweise wiederum weitere Probleme, da nun die Noten der Melodiestimme in die akkordische Begleitung integriert werden.

 

Abbildung 31 - Zweiersysteme erschweren die Motivanalyse

Beispiel 1.1 zeigt die Akkordverbindung e-Moll mit dem Quintton h im Bass. Der Note h wird durch seine Punktierung bis in den Akkord F-Dur hinein ausgehalten. Auf der halben Spielzeit des Akkords F-Dur wechselt der Basston von h nach f. Werden, wie in Beispiel 1.2, beide Notensysteme zusammengefasst, kann dies nur durch Zuhilfenahme von Überbindungen ge-währleistet werden. Aber auch Überbindungen stellen einen erhöhten Programmieraufwand dar, können aber nicht einfach wie in Bsp. 1.3 dargestellt ignoriert werden: Bsp. 1.3 und 1.1 unter-scheiden sich so deutlich voneinander, dass eine Motivanalyse in solchen Fällen wie in Abbildung 31 nicht zum korrekten Ergebnis führen würde. Lösbar ist die Problematik der getrennten Systeme für Akkorde und Melodien mit zusätzlichem Programmieraufwand. Für die Motivanalyse mithilfe der vorliegenden Programmversion wird vorausgesetzt, dass das MusicXML-Dokument nur mit Musikinstrumenten besetzt ist, die in einem System notiert sind.

 

77 

4.2.3 ÜBERBINDUNGEN

Eine Überbindung von zwei Noten auf derselben Tonhöhe wird zur Verlängerung der Tondauer benutzt. Alternativ kann die Punktierung einer Note eingesetzt werden, wenn die Regeln der Punktierung eingehalten werden. Abbildung 32 soll dies verdeutlichen.

   ½ + ¼ = punktierte halbe Note 1/1 + ½ = punktierte ganze Note     

Abbildung 32 - Zwei Beispiele von Überbindungen und deren äquivalente Darstellung als punktierte Note

Der erste dargestellte Takt des linken Beispiels in Abbildung 32 besitzt die folgende Darstellung in MusicXML:

1. 5. 10. 15. 20. 25. 30. 35.

<measure number="1"> <attributes> <divisions>1</divisions> ... <time> <beats>3</beats> <beat-type>4</beat-type> </time> ... </attributes> ... <note> <pitch> <step>G</step> <octave>4</octave> </pitch> <duration>2</duration> <tie type="start"/> erste Note aus Abbildung 32 <type>half</type> (halbe Note) <stem>up</stem> <notations> <tied type="start"/> </notations> </note> <note> <pitch> <step>G</step> <octave>4</octave> </pitch> <duration>1</duration> <tie type="stop"/> zweite Note aus Abbildung 32 <type>quarter</type> (Viertelnote) <stem>up</stem> <notations> <tied type="stop"/> </notations> </note> </measure>  

Quelltext 18 - Überbindung einer halben Note mit einer Viertelnote

 

78 

Im Element <note> der halben Note G wird ein leeres Element <tie/> eingefügt. <tie/> ist ein Anker, welcher mit Hilfe des Attributs type mit dem Wert „start“ initialisiert wird. Dass die Überbindung bei der Viertelnote G endet, wird in dem zur Endnote gehörenden Element <note> in einem <tie/>-Element mit Hilfe des Attributs type mit dem Wert „stop“ angegeben. Das Element <tie/> wird von MusicXML für die interne Repräsentation genutzt. Für die Darstel-lung der Überbindung wird das weitere Element <tied> in dem zugehörigen Elternelement <nota-tions> verwendet. 35 Damit überbundene Noten vom Algorithmus richtig bewertet werden, müssen diese Überbin-dungen zunächst ausfindig gemacht werden und zur Laufzeit alle Werte des <duration>-Elements der Noten, die zu den Überbindungen gehören, miteinander addiert werden, um den realen No-tenwert zu erhalten. Erst dann sind die überbundenen Noten rhythmisch mit dem Originalmotiv vergleichbar.

Neben den einfachen Notenüberbindungen sind auch Notenüberbindungen möglich, bei denen eine neue Note hinzugefügt wird, wie in Abbildung 33.

Abbildung 33 - Überbundene Noten mit neu hinzugefügter Note

Hier tritt neben dem Problemfall der Überbindung zusätzlich ein ähnlicher Sonderfall auf wie bei der Behandlung von akkordischen Notenverbindungen. So muss der Algorithmus zwei Kontur-verläufe analysieren: Von Notenposition n zur Position (n+1)1 und von Notenposition n zu (n+1)2. Für den Algorithmus wird vorausgesetzt, dass keine Überbindungen im zu analysierenden Mu-sikwerk auftreten.

4.2.4 PUNKTIERTE NOTEN

Durch einfache Punktierung einer Note wird der Notenwert um die Hälfte des ursprünglichen Notenwertes verlängert. Weiterhin gibt es zweifach punktierte Noten, bei denen der Notenwert um die Hälfte plus ein Viertel des eigenen Notenwertes verlängert ist. Dementsprechend verhält es sich auch bei weiteren mehrfach punktierten Noten.

                                                             35 Recordare: Internet Music Publishing and Software: "MusicXML 1.0 Alphabetical Index". URL: http://www.recordare.com/dtds/1.0/musicxml-index.html [Stand: 5. Februar 2009]

 

79 

In MusicXML kann im Element <note> eine beliebige Anzahl an leeren Elementen <dot/> einge-fügt werden. Jedes neue <dot/>-Element setzt dabei einen weiteren Punkt nach der aktuellen No-te für die Darstellung einer Punktierung. Zur Berechnung der exakten Notenlänge bei punktierten Noten in MusicXML werden zunächst die Werte der bekannten Elemente <divisions> und <duration> verwendet. Quelltext 19 zeigt die Funktion, mit Hilfe der eigentliche Notenwert aus <divisions> und <duration> plus die zusätzli-chen Notenwerte aus den Punktierungen durch Halbierung des eigentlichen Notenwertes be-rechnet werden.

function punktierte_noten($duration, $divisions, $punktierungen){ while($punktierungen>=0){ $x=$duration/$divisions; $duration=$duration/2; $y=$y+$x; $punktierungen--; } return $y; } $y = punktierte_noten(24,12,2); echo "Notenlänge: $y";  

Quelltext 19 - Algorithmus zur Berechnung der Notenlänge bei punktierten Noten

Das Element <dot/> ist ein leeres Element. Die Klasse SimpleXML von PHP ermöglicht keinen direkten Zugriff auf leere Elemente. Dieses Problem kann jedoch umgangen werden, indem der Algorithmus testet, ob das leere Element <dot/> Kindelemente besitzt. So ist beispielsweise die Implementierung zur Analyse von Akkorden mit den leeren Elementen <chord/> angelegt. Für den ersten Prototyp des Algorithmus wurde die Funktion punktierte_noten() vorbereitet, sie konnte jedoch nicht mehr rechtzeitig vollständig implementiert werden.

 

80 

4.2.5 VORSCHLAGSNOTE

Eine Vorschlagsnote zählt als Verzierung in der Notation rhythmisch nicht in den Takt. Sie weist spieltechnisch zwar eine Verkürzung der anschließenden Note an, diese wird jedoch dennoch ungeachtet der Spielpraxis voll ausgeschrieben. Die Beschreibung einer Vorschlagsnote in MusicXML geschieht auf die gleiche Weise, wie die Beschreibung einer herkömmlichen Note. Als Zusatz wird jedoch, wie in Quelltext 20 dargestellt, das leere Element <grace/> im Element <note> eingefügt.

<note> <grace/> <pitch> ... </pitch> <voice>1</voice> <type>whole</type> </note>  

Quelltext 20 - Das leere Element <grace/> zur Kennzeichnung einer Vorschlagsnote

 Die Motivanalysesoftware prüft die Existenz einer Vorschlagsnote und betrachtet diese beim Auslesen aus MusicXML als eigenständige Note. In einer weiteren Programmversion wäre es sinnvoll, Vorschlagsnoten wahlweise als eigenständige Note zu betrachten oder in der Motivana-lyse völlig unbeachtet zu lassen. Da Vorschlagsnoten als Verzierungselemente anzusehen sind, muss eine Vorschlagsnote im Originalmotiv nicht zwangsläufig in einer Motivverarbeitung wieder auftreten.

 

4.2.6 ALTERATIONEN

Die folgende Darstellung zeigt eine große Auswahl an Alterationen, die von MusicXML bereitge-stellt werden.36 Der Ton der alterierten Noten im oberen Notensystem ist jeweils darunter noch-mals in einer Darstellung mit möglichst wenigen Alterationen notiert.

                                                             36 Recordare: Internet Music Publishing and Software: "MusicXML 2.0 Note DTD Module". URL: http://www.recordare.com/dtds/note.html [Stand: 9. Februar 2009]

 

81 

Abbildung 34 - Alterierte Noten und deren klangliche Repräsentation in vereinfachter Darstellung

MusicXML erlaubt Versetzungszeichen innerhalb des Elements <alter> im ganzzahligen Werte-bereichs von -9 bis 9. Üblich sind aber nur die Werte zwischen -2 und 2. Dass es mögliche Alterationen gibt, die aber nicht sinnvoll sind, zeigt die folgende Darstellung.

Abbildung 35 - Nicht sinnvolle Anwendung von Versetzungszeichen am Beispiel der Note F

Gezeigt werden die Note F sowie deren klangliche Repräsentation in vier verschiedenen Formen mit Hilfe von Versetzungszeichen. Dabei ist der Einsatz der doppelt tiefalterierten Note G (Geses) und der einfach hochalterierten Note E (Eis) durchaus bei Anwendung in entsprechen-den musikalischen Kontexten statt der Note F möglich und sinnvoll. Die vierfach tiefalterierte Note A und die dreifach hochalterierte Note D sind von MusicXML erlaubte Alterationen, doch wird diese Darstellung im Generellen nicht angewandt.

Mehrfachalterierungen stellen in der Motivanalyse folgendes Problem dar: Bei der Erkennung von Wiederholungen werden die Werte in den Parametern Notenname, Oktavlage und Alteration mit entsprechenden Werten des Originalmotivs verglichen. Benutzt der Komponist beispielswei-se für ein Motiv eine Notendarstellung ohne jegliche Alterationen und in der Wiederholung mit vielen Alterationen, so kann der Algorithmus dies nicht mehr als Wiederholung bzw. ggf. nur noch als Sequenz erkennen. Eine mögliche Beseitigung dieses Problems könnte sein, dass der Algorithmus vorweg mehrfach alterierte Noten so ausliest, dass sie ohne bzw. mit möglichst wenigen Alterationen in das multi-dimensionale Array geschrieben werden. So könnten die alterierten Noten in Abbildung 35 auch als nichtalterierte Note F transformiert werden. Negativ würde sich diese Vorgehensweise jedoch auf die Laufzeit des Algorithmus auswirken. Angesichts dessen, dass Mehrfachalterierungen in der Praxis nur äußerst selten auftreten, wird in der Motivanalysesoftware nicht zuvor geprüft, ob für mehrfach alterierte Noten eine einfachere Darstellungen mit weniger Vorzeichen existiert.

 

82 

4.3 ERWEITERUNG DES MUSICXML-DATENBESTANDS FÜR DIE KONTURANALYSE

Die Kontur einer Notenfolge ist für den Motivanalysealgorithmus der erste und wichtigste Indi-kator, der darüber entscheidet, ob eine Notenfolge hinsichtlich weiterer Merkmale analysiert wer-den soll. Die Konturen werden aus den drei Parametern Notenname, Alteration und Oktavlage berechnet. Hierzu muss zunächst die Notenlage − die vertikale Position der Note im Notensystem − indi-ziert werden, damit der Algorithmus damit weiterarbeiten kann.

 

4.3.1 INDIZIERUNG DER NOTENLAGE

DIE CHROMATISCHE NOTENLAGE

Mehrere Notennamen können auf den gleichen Ton abgebildet werden. Dies wird in der Musik-theorie als enharmonische Verwechslung bezeichnet. So entspricht beispielsweise die Note Fes klanglich der Note E. Der Unterschied ist nur in den Noten ersichtlich. Werden doppelte Altera-tionen betrachtet, so ergeben sich noch mehr Belegungen von unterschiedlichen Notennamen auf dem gleichen Ton. Im Algorithmus werden enharmonische Verwechslungen im Rahmen von einfachen Alterationen gleichgesetzt.

Tabelle 33 zeigt die im Algorithmus verwendete interne Zuordnung der Notenlagen zu einem Index. Dargestellt ist eine von 0 aufsteigende Zahlenreihe, die die Notenlage in der Vertikalen ab der Subkontra-Oktave aufwärts repräsentiert. Beginnend ab dem C, können zur im Index mit 0 bezifferten Notenlage bereits zwei Noten zugeordnet werden. Die erste Note ist C in der Oktave 0 (Subkontra) und entspricht gleichzeitig His (B#) in der darunterliegenden Oktave. Da der Klang dieser beiden Noten jedoch identisch ist, ist der dazugehörige Index 0 eindeutig.    

 

83 

  Oktave 0 Oktave 1

Eindeutiger Index für die vertikale Notenla-ge

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 …

Alteration 0 C - D - E F - G - A - B C - D …

Alteration 1 ( m )  B# C# - D# - E# F# - G# - A# - B# C# - …

Alteration -1 ( b )  - Db - Eb Fb - Gb - Ab - Bb Cb - Db - …

Tabelle 33 - Abbildungsmöglichkeit mehrerer Notennamen auf die chromatische Notenlage

Quelltext 21 zeigt die Funktion, welche jeder chromatischen Note eine eindeutige Nummer ent-sprechend des Index in Tabelle 33 zuordnet. Eingabewerte sind die Elementinhalte der Elemente <step> (Notenname), <alter> (Alteration) und <octave> (Oktavlage), welche zu einem String zu-sammengefasst werden. Innerhalb der Funktion ist ein Array mit den Zuordnungen definiert, welches mit Hilfe der PHP-Funktion array_search(mixed $needle, array $haystack) zur Arraysu-che nach den Eingabewerten abgesucht wird. Wird eine Übereinstimmung der drei Eingabewerte mit einem Wert im Array gefunden, so wird der entsprechende Index der Notenlage als Array-schlüssel zurückgegeben. Da die Implementierung von PHP nur einen Arrayschlüssel pro Wert erlaubt, wurden drei Arrays angelegt. Der Algorithmus entscheidet je nach Alteration, welches Array durchsucht werden soll, um den Ausgabewert zu erhalten.

   

 

84 

function notenlage_c($note, $alteration, $oktave){ $note = $note; $alteration = $alteration; $oktave = $oktave; $notenkomplex = “$note,$alteration,$oktave”; $note_kreuz = array( 0 => B,1,0 //bis 1 => C,1,0 //cis 3 => D,1,0 //dis 5 => E,1,0 //eis 6 => F,1,0 //fis 8 => G,1,0 //gis 10=> A,1,0 //ais 12=> B,1,1 … ); $note_be = array( 1 => D,-1,0 //des 3 => E,-1,0 //es 4 => F,-1,0 //fes 6 => G,-1,0 //ges 8 => A,-1,0 //as 10=> B,-1,0 //bes 11=> C,-1,0 //ces 13=> D,-1,1 //des … ); $note = array( 0 => C,0,0 //c 2 => D,0,0 //d 4 => E,0,0 //e 5 => F,0,0 //f 7 => G,0,0 //g 9 => A,0,0 //a 11=> B,0,0 //b 12=> C,0,1 //c 14=> D,0,1 //d … ); if($alteration==”1”){ return array_search($notenkomplex,$note_kreuz); }elseif($alteration==”-1”){ return array_search($notenkomplex,$note_be); }else{ return array_search($notenkomplex,$note); } }

Quelltext 21 - Implementierung zum Finden der vertikalen Notenlage aus Notenname, Alteration und Oktave

Abbildung 36 zeigt die Arrayschlüssel der Notenlagen zu dem Beispielmotiv.

 

Abbildung 36 - Vertikale Notenlage für das Originalmotiv

 

85 

DIE DIATONISCHE NOTENLAGE

Für die diatonische Notenlage kann jeder Notenname eindeutig zu einer Indexziffer zugeordnet werden, da Alterationen nicht betrachtet werden müssen. Dies verdeutlicht Tabelle 34.

  Oktave 0 Oktave 1

Eindeutiger Index für die vertikale Notenla-ge

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 …

Alteration 0 C D E F G A B C D E F G A B C …Tabelle 34 - Abbildungsmöglichkeit von Notennamen auf die diatonische Notenlage

Die Funktion zur Ausgabe des Index zur diatonischen Notenlage − dargestellt in Quelltext 22− ist nach einem ähnlichen Prinzip aufgebaut wie die Funktion für die chromatische Notenlage. Enharmonische Verwechslungen müssen nicht berücksichtigt werden, sodass als Eingabewerte nur der Notenname und die Oktavlage benötigt werden.

function notenlage_d($note, $oktave){ $note = $note; $oktave = $oktave; $notenkomplex = “$note,$oktave”; $note = array( 0 => C,0 //c 1 => D,0 //d 2 => E,0 //e 3 => F,0 //f 4 => G,0 //g 5 => A,0 //a 6 => B,0 //b 7 => C,1 //c 8 => D,1 //d … ); return array_search($notenkomplex,$note); }

Quelltext 22 - Implementierung zum Finden der diatonischen Notenlage aus Notenname und Oktave

Da keine Überlappungen wie bei den enharmonischen Verwechslungen auftreten, reicht die Zu-ordnung der Werte in einem Array.

 

86 

4.3.2 IMPLEMENTIERUNG DER MUSIKALISCHEN KONTUREN

Sind die Notenlagen eines Musikwerkes indiziert, können zwischen den Notenpositionen in der horizontalen Ebene Konturverläufe gebildet werden. Ob eine Notenfolge eine Motivverarbeitung eines ausgesuchten Motivs ist, wird zuerst durch den Test auf deren Kontur analysiert. Der erste Test beruht auf den Parsons-Code. Nur wenn die Notenfolge den Parsons-Code-Test besteht, ist die Möglichkeit gegeben, dass diese Notenfolge eine Wiederholung oder eine Motivverarbeitung des ausgesuchten Motivs ist. Jedoch entspricht der Parsons-Code des Originalmotivs nicht dem der Motivverarbeitungsformen Umkehrung, Krebs und Spiegelkrebs. Daher ist bei diesen Formen eine Umrechnung des Parsons-Codes vor dem Test zu integrieren.

 

DER PARSONS-CODE

Die Implementierung des Parsons-Codes ist sehr einfach, wie Quelltext 23 zeigt. Die Erstellung des Parsons-Codes setzt voraus, dass die chromatischen Notenlagen zuvor indi-ziert wurden. Die diatonische Notenlage reicht nicht aus, da damit kein Unterschied beispielswei-se zwischen den Tönen C und Cis gemacht wird; hier würde also die Aufwärtsrichtung im Par-sons-Code nicht wiedergegeben werden können. Der Parsons-Code nimmt nun von Notenposition n zu n+1 vier mögliche Belegungen ein. Zu-nächst wird die erste Note des Musikwerkes mit dem Startzeichen S (in der eigenen Implementie-rung mit *) initialisiert. Anschließend sind die drei Werte Down (D), Up (U) und Repeat (R) möglich. Diese Werte werden für den Richtungsverlauf der Intervalle zwischen Notenposition n und n+1 an Notenposition n+1 angegeben.

-lese Notenlage von n mit Hilfe der Funktion notenlage_c -lese Notenlage von n+1 mit Hilfe der Funktion notenlage_c $x = notenlage_c(n+1) - notenlage_c(n); if($x>0){ print “Parsons-Code für n+1 ist Up (U).“; }elseif($x<0){ print “Parsons-Code für n+1 ist Down (D).“; }else{ print “Parsons-Code für n+1 ist Repeat (R).“; }  

Quelltext 23 - Pseudocode zur Implementierung des Parsons-Codes für die Werte Up, Down und Repeat

 

87 

Der Wert im Parsons-Code ergibt sich durch Subtraktion des Notenlagenindex an Position n von Notenlagenindex an Position n+1.

DIE DIATONISCHE KONTUR

Die diatonische Kontur kann auf ähnliche Weise wie der Parsons-Code berechnet werden. Grundlage für die Berechnung ist die Indizierung der diatonischen Notenlage. Wie im Quelltext 24 dargestellt ist, wird wieder durch Subtraktion der Indizes der Notenlagen an den Positionen n und n+1 das diatonische Intervall errechnet.

-lese Notenlage von n mit Hilfe der Funktion notenlage_d -lese Notenlage von n+1 mit Hilfe der Funktion notenlage_d $x = notenlage_d(n+1) - notenlage_d(n); print “Die diatonische Kontur für n+1 ist “ + $x;  

Quelltext 24 - Pseudocode zur Berechnung der diatonischen Kontur

DIE CHROMATISCHE KONTUR

Die Berechnung der chromatischen Kontur erfolgt nach demselben Prinzip wie die Berechnung der diatonischen Kontur (siehe Quelltext 25). Der einzige Unterschied ist, dass hier der Index der chromatischen Notenlagen zur Hilfe genommen wird.

-lese Notenlage von n mit Hilfe der Funktion notenlage_c -lese Notenlage von n+1 mit Hilfe der Funktion notenlage_c $x = notenlage_c(n+1) - notenlage_c(n); print “Die chromatische Kontur für n+1 ist “ + $x;  

Quelltext 25 - Berechnung der chromatischen Kontur

DIE PAUSE UND DEREN AUSWIRKUNG AUF DIE MOTIVKONTUR

Ist der Rhythmus einer Motivverarbeitung wie in Abbildung 37 zum Originalmotiv derart abge-wandelt, dass durch Pausen lediglich die Notenwerte, nicht aber die zeitlichen Notenpositionen

 

88 

verändert sind, ist der Bezug zum Originalmotiv ohne Probleme für den Hörer bzw. Leser er-kennbar. In diesem Fall ist auch eine korrekte Interpretation durch den Algorithmus möglich.

 

Abbildung 37 - Originalmotiv und mit Pausen versetztes Originalmotiv

Bei der Konturanalyse können Pausen prinzipiell überlesen werden. Die Notenlagen werden von vorhergehenden Noten oder Akkorden in einem Puffer zwischengespeichert. Somit wird gewähr-leistet, dass die Kontur pausenübergreifend berechnet wird.

 

89 

4.4 ALLGEMEINE FUNKTIONSWEISE DES MOTIVANALYSEPROGRAMMS

Der folgende Pseudocode zeigt den Algorithmus der Motivsuche und -analyse. In den ersten sieben Punkten des Algorithmus werden wichtige Variablen, Funktionen und Zustände definiert. Diese verwendet der Algorithmus im weiteren Verlauf. Vom achten bis zum zehnten Punkt wird das Musikwerk in seine Bestandteile, die Noteninformationen zerlegt. Anhand von Wiederholun-gen werden ein oder mehrere Motive aufgefunden. Von den Noteninformationen der Motive werden je Parameter die Umkehrung, der Krebs, die Krebsumkehrung, die Augmentation und die Diminution gebildet. Der elfte Punkt beinhaltet die Verkettung der Noteninformationswerte ei-nes Musikwerkes zu einem einzigen String. Auf diese Weise entsteht ein einzelner String für jeden Parameter. Die Noteninformationen, die länger als ein Zeichen sind, müssen so transformiert werden, dass sie nur noch aus einem Zeichen bestehen. Danach werden die Noteninformationen der Motive durch ein Matching-Verfahren mit den Strings der Noteninformationen des Musik-werks verglichen. Übereinstimmungen werden als Arrayposition abgespeichert. Im letzten Schritt wird an diesen gefundenen Arraypositionen verglichen, welche Kombinationen aus Noteninfor-mationen welcher Motivverarbeitung entsprechen. Die Bezeichnungen dieser Motivverarbeitun-gen werden anschließend dem Benutzer mit Taktangabe ausgegeben. Wichtige Algorithmen des Pseudocodes werden im weiteren Verlauf als PHP-Funktionen näher betrachtet, analysiert und interpretiert.

1. 5. 10.

Seien α1, α2, …, αn musikalische Motive Sei p = Position Sei arr = Array Sei u = Umkehrung Sei k = Krebs Sei A ein Musikstück Seien {α1, α2, …, αn} A Zerlege Musikwerk A in Bestandteile: Note, Alteration, Oktave, Notenlänge, X-tole, Punktie-

rung, Parsons-Code, diatonische Kontur und chromatische Kontur Finde ein Motiv anhand seiner Wiederholungen im Parsons-Code Zerlege gefunden Motive α1,α2,…,αn in Bestandteile: Note, Alteration, Oktave, Notenlänge, X-

tole, Punktierung, Parsons-Code, diatonische Kontur und chromatische Kontur Erstelle aus den Noteninformationen von allen gefundenen Motiven eine Umkehrung, einen Krebs,

eine Krebsumkehrung, eine Augmentation und eine Diminution Bereite das MusicXML-Dokument so vor, dass alle Notennamen des Musikwerks und der Motive in

einer Reihe aufgelistet werden. Verfahre auf dieselbe Weise auch mit Alterationen, Oktaven, Notenlängen, Parsons-Code, diatonischer Kontur und chromatischer Kontur. Alle einzelnen Noten-informations-Strings müssen so transformiert werden, dass sie nur noch aus einem Zeichen be-stehen.

Solange Motive α1,α2,…,αn nicht abgearbeitet { 1. Note(α1) enthalten in A  Speichere Arrayposition für Note(α1) 2. Alteration(α1) enthalten in A  Speichere Arrayposition für Alteration(α1) 3. Oktave(α1) enthalten in A  Speichere Arrayposition für Oktave(α1) 4. Notenlänge(α1) enthalten in A  Speichere Arrayposition für Notenlänge(α1) 5. Parsons-Code(α1) enthalten in A  Speichere Arrayposition für Parsons-Code(α1) 6. Diatonische Kontur(α1) enthalten in A  Speichere Arrayposition für diatonische Kon-

 

90 

12.   

tur(α1) 7. Chromatische Kontur(α1) enthalten in A  Speichere Arrayposition für chromatische

Kontur(α1) }

Solange Motive a1, a2, …, an nicht abgearbeitet { 1. p(arr(Parsons Code(a1)))=p(arr(Diatonische Kontur(a1)))

p(arr(Parsons Code(a1)))=p(arr(Chromatische Kontur(a1))) p(arr(Parsons Code(a1)))=p(arr(Notenlänge(a1))) p(arr(Parsons Code(a1)))=p(arr(Oktave(a1))) p(arr(Parsons Code(a1)))=p(arr(Alteration(a1)))  p(arr(Parsons Code(a1)))=p(arr(Note(a1))) Motiv ist ein Originalmotiv / Wiederholungsmotiv

2. p(arr(Parsons Code(a1)))=p(arr(Diatonische Kontur(a1)))

p(arr(Parsons Code(a1)))=p(arr(Notenlänge(a1))) Motiv ist eine tonale Sequenz

3. p(arr(Parsons Code(a1)))=p(arr(Diatonische Kontur(a1)))

p(arr(Parsons Code(a1)))=p(arr(Chromatische Kontur(a1))) p(arr(Parsons Code(a1)))=p(arr(Notenlänge(a1))) Motiv ist eine tonale Sequenz

4. p(arr(u(Parsons Code(a1))))=p(arr(u(Diatonische Kontur(a1))))

p(arr(u(Parsons Code(a1))))=p(arr(Notenlänge(a1))) Motiv ist eine tonale Umkehrung

5. p(arr(u(Parsons Code(a1))))=p(arr(u(Diatonische Kontur(a1))))

p(arr(u(Parsons Code(a1))))=p(arr(u(Chromatische Kontur(a1))))  p(arr(u(Parsons Code(a1))))=p(arr(Notenlänge(a1))) Motiv ist eine reale Umkehrung

6. p(arr(k(u(Parsons Code(a1)))))=p(arr(k(u(Diatonische Kontur(a1)))

p(arr(k(u(Parsons Code(a1)))))=p(arr(k(u(Chromatische Kontur(a1))) p(arr(k(u(Parsons Code(a1)))))=p(arr(k((Notenlänge(a1)))) p(arr(k(u(Parsons Code(a1)))))=p(arr(k(Oktave(a1)))) p(arr(k(u(Parsons Code(a1)))))=p(arr(k(Alteration(a1))))  p(arr(k(u(Parsons Code(a1)))))=p(arr(k(Note(a1)))) Motiv ist ein Krebs 1

7. p(arr(k(u(Parsons Code(a1)))))=p(arr(k(u(Diatonische Kontur(a1)))

p(arr(k(u(Parsons Code(a1)))))=p(arr(k(u(Chromatische Kontur(a1))) p(arr(k(u(Parsons Code(a1)))))=p(arr((Notenlänge(a1)))) p(arr(k(u(Parsons Code(a1)))))=p(arr(k(Oktave(a1)))) p(arr(k(u(Parsons Code(a1)))))=p(arr(k(Alteration(a1))))  p(arr(k(u(Parsons Code(a1)))))=p(arr(k(Note(a1)))) Motiv ist ein Krebs 2

8. p(arr(k(u(Parsons Code(a1)))))=p(arr(k(u(Diatonische Kontur(a1)))

p(arr(k(u(Parsons Code(a1)))))=p(arr(k((Notenlänge(a1)))) Motiv ist ein Spiegelkrebs

9. p(arr(Parsons Code(a1)))=p(arr(Notenlänge(a1)))

Motiv ist eine Intervallweitung

10. p(arr(Parsons Code(a1)))=p(arr(Diatonische Kontur(a1))) p(arr(Parsons Code(a1)))=p(arr(Chromatische Kontur(a1))) p(arr(Parsons Code(a1)))=p(arr(Notenlänge*2(a1))) p(arr(Parsons Code(a1)))=p(arr(Oktave(a1))) p(arr(Parsons Code(a1)))=p(arr(Alteration(a1)))  p(arr(Parsons Code(a1)))=p(arr(Note(a1))) Motiv ist ein Augmentation

11. p(arr(Parsons Code(a1)))=p(arr(Notenlänge(a1)))

Motiv ist eine Intervallengung

12. p(arr(Parsons Code(a1)))=p(arr(Diatonische Kontur(a1))) p(arr(Parsons Code(a1)))=p(arr(Chromatische Kontur(a1))) p(arr(Parsons Code(a1)))=p(arr(Notenlänge/2(a1))) p(arr(Parsons Code(a1)))=p(arr(Oktave(a1))) p(arr(Parsons Code(a1)))=p(arr(Alteration(a1)))

 

91 

p(arr(Parsons Code(a1)))=p(arr(Note(a1))) Motiv ist eine Diminution

 

Quelltext 26 - Pseudocode des Motivanalyseprogramms

Die Motivanalysesoftware ist als ein Webformular programmiert. Somit können alle, die über einen Internetanschluss, einen Internet-Browser und ein MusicXML-Dokument verfügen, dieses Programm testen. Zusätzlich kann das Programm an eine Datenbank gekoppelt werden, um da-rin Testergebnisse abzuspeichern. Die gespeicherten Daten können dazu verwendet werden, den Algorithmus effizienter zu programmieren. So kann durch die gespeicherten Testergebnisse der Such- und Analysealgorithmus verbessert werden.

Der gesamte Motivsuche- und Motivanalysealgorithmus ist in mehreren PHP-Dateien unterge-bracht. Je nach Aufgabenstellung werden die einzelnen Klassen in den jeweiligen Dateien aufge-rufen und bedienen sich ihrer Funktionen, um Teilresultate an andere Klassen weiterzuleiten. Die folgende Darstellung zeigt die Reihenfolge, in der die Dateien aufgerufen werden, beginnend mit der Datei index.php. Nachdem der Benutzer über ein Webformular die MusicXML-Datei hochge-laden und Suchkriterien für die Motivsuche ausgewählt hat, werden alle Parameter an die Datei motiv.php weitergeleitet. Von dieser Datei aus werden sequenziell die Dateien motiv.class.php mit der Klasse Motivesuche(), repeater.class.php mit der Klasse Wiederholungsfinder(), prepare.class.php mit der Klasse Vorbereitung(), motif_finder.class.php mit der Klasse Motif_Finder_prepare() und motiv_types.class.php mit der Klasse Motif_Types() aufgerufen.

index.php | *- motif.php -* | *- motiv.class.php -> Motivsuche(); | *- repeater.class.php -> Wiederholungsfinder(); | *- prepare.class.php -> Vorbereitung(); | *- prepare_motif.array.php -> Pre_Motif_Array(); | *- motif_finder.class.php -> Motif_Finder_prepare(); | *- motif_types.class.php -> Motif_Types();

Abbildung 38 - Unterteilung des Algorithmus in einzelne Klassen

Die Startdatei index.php wird über den Webbrowser aufgerufen. Im Webformular wählt der Be-nutzer zunächst eine sich lokal auf dem Rechner befindende MusicXML-Datei, die analysiert werden soll, aus. Im Weiteren gibt das Webformular drei Auswahlmöglichkeiten vor, wie ein Mo-tiv im MusicXML-Dokument gefunden werden soll. Mit Auswahl der ersten Möglichkeit wird der Software die Aufgabe übergeben, selbstständig das längste Motiv zu finden. Innerhalb des

 

92 

Algorithmus ist bestimmt, dass das Motiv mindestens fünf Noten lang sein muss. Bei der zweiten Auswahlmöglichkeit muss der Algorithmus beliebig viele Motivmengen finden. Dabei kann der Benutzer angeben, aus wie vielen Noten mindestens sowie maximal die zu findenden Motive bestehen. Die Auswahl ist dabei auf mindestens drei Noten und maximal neunzehn Noten be-schränkt. Bei der dritten Auswahlmöglichkeit kann der Benutzer selbst eine Folge von Notenna-men eingeben, die möglicherweise das Motiv darstellen. So wird die Motivsuche im Algorithmus übergangen und es werden gleich die Motivverarbeitungen im Musikwerk gesucht. Als letztes kann der Benutzer wählen, ob alle Pausen innerhalb des Musikwerkes entfernt werden sollen. Durch das Entfernen der Pausen wird die Laufzeit stark verkürzt. Diese Maßnahme ist vor allem dann sinnvoll, wenn eine Orchesterpartitur analysiert wird, die viele Passagen mit Pausen besitzt.

Nach der Übernahme der Daten aus dem Webformular wird die MusicXML-Datei sowie die Analysekriterien an die Datei motif.php übergeben. Die Datei motif.php ist die Zentralsteuerung des Algorithmus, die je nach Anweisung andere PHP-Dateien und deren Klassen bzw. Funktio-nen zur Analyse aufruft, oder Teilresultate in Empfang nimmt. Der Algorithmus beginnt mit der Extraktion aller notwendigen Informationen aus MusicXML.

4.5 EXTRAKTION DER DATEN JE NACH VERBINDUNGSTYP

Die Klasse Motivsuche() in der Datei motiv.class.php nimmt die MusicXML-Datei entgegen und gibt diese an die XML-Funktion simplexml_load_file(string $filename) weiter. Die MusicXML-Datei wird in ein XML-Objekt konvertiert und steht nun den Funktionen der SimpleXML-Bibliothek zur Verfügung. Die wichtigste Funktion ist dabei xpath(string $path),37 mit der inner-halb von XML-Dokumenten an beliebige Stellen, wie Elemente, Attribute und Werte, navigiert werden kann.38 Im Abschnitt „Das Einlesen und Abspeichern der Quelldaten“ wurde bereits auf die Notwendigkeit der Benutzung von zwei foreach-Schleifen hingewiesen. Die äußere foreach-Schleife durchläuft einzelne Systeme und die innere foreach-Schleife einzelne Takte eines Sys-tems. Innerhalb der inneren foreach-Schleife befindet sich eine komplexe if-else Anweisungsstruktur, die die derzeitige Notenposition n und die Notenposition n+1 hinsichtlich verschiedener Verbin-

                                                             37 PHP Hypertext Preprocessor: "PHP: SimpleXMLElement->xpath - Manual". URL: http://de2.php.net/manual/de/function.simplexml-element-xpath.php [Stand: 11. Februar 2009] 38 vgl. Eckstein R., Eckstein S. (2004) XML Path Language (XPath), XML und Datenmodellierung. Heidelberg: dpunkt Verlag GmbH, 65 ff.

 

93 

dungstypen untersucht und anschließend eine entsprechende Anweisung befolgt. Folgende Ver-bindungstypen sind grundlegend zu betrachten:

Note→Note (N→N)

Note→Akkord (N→A)

Note→Pause (N→P)

Akkord →Note (A→N)

Akkord→Akkord (A→A)

Akkord →Pause (A→P)

Pause→Note (P→N)

Pause→ Akkord (P→A)

Pause→Pause (P→P)

Diese Auflistung muss aus folgendem Grund jedoch noch untergliedert werden: Wird die letzte Note eines Takts gelesen, muss der Algorithmus für die Bestimmung der Kontur eine Note vo-rauslesen. Diese Note befindet sich jedoch im nächsten Takt. Hier muss die Funktion xpath() in das Elternelement <part> heraus navigieren, um in das nächste <measure> Element hinein navigie-ren zu können. Erst dann wird für den Algorithmus erkennbar, ob sich an der ersten Notenposi-tion des nächsten Takts eine Note, ein Akkord oder eine Pause befindet und welcher Konturver-lauf sich daraus ergibt. Zusätzlich sind drei weitere eigenständige Verbindungstypen zu definie-ren, die das Ende des Notensystems markieren. Diese Verbindungstypen sind notwendig, damit der Algorithmus den letzten Takt eines Notensystems erkennt. Somit wird unterbunden, dass eine Kontur zwischen der letzten Note eines Systems und der ersten Note eines neuen Systems aus einer weiteren Stimme erstellt wird. Zudem ermöglichen diese Verbindungstypen, die innere foreach-Schleife zu verlassen, um durch die äußere foreach-Schleife zum nächsten System gelan-gen zu können. Die neu eingeführten Verbindungstypen sind:

Note→Note im nächsten Takt (N→|N)

Note→Akkord im nächsten Takt (N→|A)

Note→Pause im nächsten Takt (N→|P)

Akkord→Note im nächsten Takt (A→|N)

Akkord→Akkord im nächsten Takt (A→|A)

Akkord→Pause im nächsten Takt (A→|P)

Pause→Note im nächsten Takt (P→|N)

Pause→Akkord im nächsten Takt (P→|A)

Pause→Pause im nächsten Takt (P→|P)

 

94 

Note→Systemende (N→|*)

Akkord→ Systemende (A→|*)

Pause→ Systemende (P→|*)

Das Zeichen Pipe (|) verdeutlicht den Taktstrich, während ein Asterisk (*) als „Platzhalter“ für das Ende des Systems verwendet wird.

Der folgende Quelltext 27 zeigt alle Verbindungstypen in der if-else-Anweisungsstruktur. Weiter-hin ist zu sehen, welche Funktion in welcher Verbindungstypanweisung aufgerufen wird. Die erste Funktion notenarray() ist in den Zeilen 1 bis 29 zu sehen. Diese beinhaltet das mehrdimen-sionale Array, in welches die Noteninformationen abgespeichert werden. Die maximale Dimensi-on des Arrays ist Vier. Innerhalb des Arrays gibt es an Position array[i][5] einen Platzhalter für Akkordtöne. Die besondere Struktur eines Akkordes ist in diesem multidimensionalen Array so berücksichtigt, dass alle zum Basston zugehörigen Akkordtöne in einem zusätzlichen Array in der Arrayzelle array[i][5] abgespeichert werden. Der Aufbau dieses zusätzlichen Arrays ist in der Funktion akkordarray() von Zeile 31 bis 41 zu sehen.

1. 5. 10. 15. 20. 25. 30. 35. 40.

function notenarray(){ //Einsammeln der gerade zu lesenden Note oder der gerade zu lesenden Pause array[i][0]= System; array[i][1][0]= Schlüsselname; array[i][1][1]= Schlüsselposition; array[i][1][2]= Tonart; array[i][1][3]= Tonartgeschlecht; array[i][1][4][0]= Takt-Schlag; (Zähler) array[i][1][4][1]= Takt-Schlagtyp; (Nenner) array[i][2]= Verbindungstyp; (A->A, N->A, P->A, N->N, …) array[i][3]= Notenname; array[i][4]= n-te Note innerhalb des Taktes (beginnend je mit 0) array[i][5]= NULL; //Platzhalter für Akkordtöne array[i][6]= Punktierung; array[i][7][0]= X-tole; (actual-notes) array[i][7][1]= X-tole; (normal-notes) array[i][8]= Alteration; array[i][9]= Oktave; array[i][10]= Notenlänge; (duration/divisions) array[i][11]= Stimme; array[i][12]= Notenwert; array[i][13]= Vorzeichen; array[i][14]= vertikale Notenlage chromatisch; array[i][15]= vertikale Notenlage diatonisch; array[i][16]= Konturbewegung chromatisch; n->n+1 array[i][17]= Konturbewegung diatonisch; n->n+1 array[i][18]= Konturbewegung Parsons; n->n+1 array[i][19]= Takt Nr. } function akkordarray(){ //Einsammeln der Akkordtöne, die zur gerade zu lesenden Bassnote dazugehören array[i][5][j][0]= Notenname; array[i][5][j][1]= Alteration; array[i][5][j][2]= Oktave; array[i][5][j][3]= vertikale Notenlage chromatisch; array[i][5][j][4]= vertikale Notenlage diatonisch; array[i][5][j][5][k]= Konturbewegung chromatisch; n->n+1 array[i][5][j][6][l]= Konturbewegung diatonisch; n->n+1 array[i][5][j][7][m]= Konturbewegung Parsons; n->n+1 }

 

95 

45. 50. 55. 60. 65. 70. 75. 80.

Aufrufen der Funktion Motivsuche() foreach Schleife über den XPfad score-partwise/part{ -Auslesen des aktuellen ID-Wertes im Element <part> (Notensystem) foreach Schleife über den XPfad score-partwise/part/measure{ -Auslesen der Elemente <measure> (Takte) if(N->N){ notenarray(); }elseif(N->A){ notenarray(); }elseif(N->P){ notenarray(); }elseif(A->N){ notenarray(); akkordarray(); }elseif(A->A){ notenarray(); akkordarray(); }elseif(A->P){ notenarray(); akkordarray(); }elseif(P->N){ notenarray(); }elseif(P->A){ notenarray(); }elseif(P->P){ notenarray(); }elseif(N->|N){ notenarray(); //Auslesen in den nächsten Takt hinein }elseif(N->|A){ notenarray(); //Auslesen in den nächsten Takt hinein }elseif(N->|P){ notenarray(); //Auslesen in den nächsten Takt hinein }elseif(A->|N){ notenarray(); akkordarray(); //Auslesen in den nächsten Takt hinein }elseif(A->|A){ notenarray(); akkordarray(); //Auslesen in den nächsten Takt hinein }elseif(A->|P){ notenarray(); akkordarray(); //Auslesen in den nächsten Takt hinein }elseif(P->|N){ notenarray(); //Auslesen in den nächsten Takt hinein }elseif(P->|A){ notenarray(); //Auslesen in den nächsten Takt hinein }elseif(P->|P){ notenarray(); //Auslesen in den nächsten Takt hinein }elseif(N->|*){ //letzte Pause des Systems //Voraussehen des letzten Taktes }elseif(A->|*){ //letzte Pause des Systems //Voraussehen des letzten Taktes }elseif(P->|*){ //letzte Pause des Systems //Voraussehen des letzten Taktes }else{ //Protokollierung eines unerwarteten Fehlers } } }

Quelltext 27 - Informationssammlung und Aufbereitung im MusicXML Dokument

 

Das Ende eines Takts im letzten System erkennt die äußere foreach-Schleife zum einen durch das Fehlen weiterer <measure>-Elemente. Zum anderen überprüft eine if-Anweisung die Existenz eines Schlussstrichs im letzten Takt. Der folgende Quelltext 28 zeigt die MusicXML-Struktur eines Schlussstrichs, hier beispielsweise für Takt 24 eines beliebigen Werkes.

<measure number="24"> <note> ... </note> <barline location="right"> <bar-style>light-heavy</bar-style> </barline> </measure>  

Quelltext 28 - Das Element barline markiert das Ende des Systems

Sind nach dem Einlesen alle relevanten Musikinformationen im multidimensionalen Array ge-speichert, wird dieses Array an die Klasse Wiederholungsfinder() der Datei repeater.class.php übergeben. Zusätzlich erhält die Klasse das Kriterium zum Motivfinden, das der Benutzer in der

 

96 

Weboberfläche zuvor gewählt hat.

4.6 ERSTELLUNG EINES STRINGS AUS DEM MULTIDIMENSIONALEN ARRAY

Der weitere Algorithmus wird durch die Kriterien zum Motivfinden in drei Bereiche unterteilt:

1. Hat der Benutzer eine Notenfolge fest eingegeben, wird nach dieser im Musikwerk gesucht.

2. Verlangt der Benutzer, dass das Motiv vom Algorithmus selbstständig gesucht wird, sucht der Algorithmus nach Wiederholungen von Notennamenreihen im Musikwerk. Alle Notennamen-reihen, die so viele Noten lang sind, wie zuvor vom Benutzer ausgewählt wurde, werden als Motivmenge ausgegeben.

3. Die Notennamenreihe, die mindestens einmal wiederholt wird und aus den meisten Noten besteht, wird als Motiv erkannt.

Das multidimensionale Array ist nun mit Noteninformationen gefüllt. Sofern Fall 2 oder Fall 3 vorliegt, gilt es als nächstes, in diesem Array zwei identische Notennamenreihen zu finden. Zu diesem Zweck werden alle Notennamen aus dem multidimensionalen Array extrahiert und zu einem String verbunden. Der Anfang des Strings ist der Notenname der ersten Note des ersten Systems. Der String endet mit dem Notennamen der letzten Note des letzten Systems. Liest der Algorithmus an einer Notenposition eine Pause, so wird diese durch das Charactersymbol P er-setzt. Das Zeichen P kollidiert zu keiner Zeit mit den Notennamen A, B, C, D, E, F oder G. Liest der Algorithmus an einer Notenposition einen Akkord, so wird nur der Basston dieses Ak-kords für die Suche benutzt. Für eine zukünftige Implementierung ist zu überlegen, ob der Algo-rithmus den Akkord beispielsweise hinsichtlich des Grundtons analysiert und anschließend zur Motivanalyse nur den Grundton verwendet, der den Grundklang eines Akkords ausmacht. Wird beim Parsen das Ende eines Notensystems erreicht, so wird dieses System vom anschlie-ßenden Notensystem durch den Buchstaben Z getrennt. Auch hier ist ein Buchstabe gewählt, der nicht unter den Notennamen auftritt. Durch die Markierung des Abschlusses eines Notensystems wird verhindert, dass Notennamenwiederholungen notensystemübergreifend als Motiv fehlin-terpretiert werden. Die folgenden Darstellungen zeigen die soeben beschriebenen Vorgänge. Aus den Notennamen des vierstimmigen Werkes in Abbildung 39 mit vier Takten extrahiert der Algorithmus einen String aus Notennamen (siehe Abbildung 40). Das Musikwerk in Abbildung 39 wird im Übrigen

 

97 

auch in den folgenden Betrachtungen eine entscheidende Rolle spielen, denn es enthält das Bei-spielmotiv der Diplomarbeit und einige Motivverarbeitungen.

Abbildung 39 - Partitur des Beispielwerks mit dem Beispielmotiv

EGBDCBDECADEFDCDCBEAZBBCAEGBDCEABEZGGAFCFCFGAZEDADACEGFEAZ

Abbildung 40 - Notennamen-String aus dem zusammengesetzten System

 

98 

4.7 KRITERIEN ZUM AUFFINDEN VON MOTIVEN

Bei der Motivsuche wird der Algorithmus in dieser Diplomarbeit Motive anhand der Wiederho-lung von Notennamenreihen finden. Neben dieser Verfahrensweise gibt es aber auch die Mög-lichkeit, Motive nach anderen Kriterien automatisiert zu finden. Einige Kriterien sind im Folgen-den beschrieben.

Die Wiederholung von Notennamen ist das Kriterium der Motivsuche in dieser Diplomarbeit. Hierzu werden aus dem multidimensionalen Array alle Notennamen extrahiert und als String hintereinander platziert. Nun kann ein Suchalgorithmus diesen String nach zwei identischen Teil-strings im gesamten String absuchen. Ist auf diese Art ein mögliches Motiv anhand der Noten-namen gefunden, werden die Noteninformationen aus den übrigen Parametern für diesen String aus dem multidimensionalen Array für die weitere Analyse abgefragt.

Neben einer Melodiefolge kann sich das menschliche Gedächtnis den Rhythmus am besten ein-prägen.39 Dahingehend kann ein Algorithmus gebildet werden, der gleiche Rhythmusfolgen in-nerhalb eines Musikwerkes findet. Hierzu müssen alle Notenwerte aus dem Element <type> zu einem String aneinandergereiht werden. Auch hier müssen zwei identische Rhythmusfolgen in Form von Teilstrings gefunden werden. Danach können die restlichen Noteninformationen zur Tonhöhe der Noten ergänzt werden.

Ein weiteres Kriterium zum Auffinden eines Motivs kann die Wiederholung der Noten auf be-tonten Zählzeiten sein. Jede Taktart gibt Zählzeiten vor, auf denen Noten hauptbetont, nebenbe-tont oder unbetont werden. Diese Akzente sind wichtige Merkmale in einer Melodie. Werden nur die Tonhöhen auf den betonten und nebenbetonten Zählzeiten betrachtet, so können diese Rahmenpunkte zum Finden eines Motivs genutzt werden. Der Algorithmus kann dabei in zwei Schritten vorgehen. Im ersten Schritt werden alle betonten und nebenbetonten Notennamen aneinandergereiht. Danach wird in diesem String wieder nach zwei identischen Teilstrings ge-sucht. Diese Teilstrings sind dann Ausgangspunkt der Motivanalyse.

                                                             39 vgl. De la Motte-Haber, H., Rötter, G. (2005) Prinzipien der Rhythmuswahrnehmung, Musikpsychologie. Laaber: Laaber Verlag, 233

 

99 

4.8 DIE MOTIVSUCHE

Für das Finden eines oder mehrerer Motive innerhalb eines Strings wurden zwei verschiedene Funktionen programmiert. Die erste Funktion findet innerhalb des gesamten Strings den längsten Teilstring, der mindestens zweimal im String auftaucht, also mindestens einmal wiederholt wird. Die zweite Funktion findet alle Teilstrings, die zweimal im Gesamtstring vorhanden sind und zusätzlich so lang sind, dass sie der Minimal- und Maximalnotenanzahl entsprechen, die der Be-nutzer in der Weboberfläche zuvor angegeben hat.

Der folgende Code zeigt die erste Funktion, die als Übergabewerte den Gesamtstring und seine Länge entgegennimmt. Vom Gesamtstring werden nach und nach immer kleinere Teilstrings gebildet. Anschließend wird dieser Teilstring jeweils im Gesamtstring auf mindestens zweimaliges Vorkommen gesucht. Werden zwei identische Teilstrings gefunden, so gibt die Funktion den Teilstring und dessen Erstposition innerhalb des Gesamtstrings zurück.  

private function motif_longest($string,$search_length){ $intLength =$search_length; $strSource =$string; $strTmp = null; $arrCount = array(); for( $i=$intLength-1; $i>=2; $i-- ) { for($o=0; $o < $intLength-$i; $o++ ) { $strTmp = substr($strSource, $o, $i); if( ($intCount = substr_count($strSource, $strTmp)) >= 2 ) { $arrCount[$strTmp] = $intCount; } } if( !empty($arrCount) ) { break; } } $x1=0; foreach($arrCount as $a1 => $a2){ $motiv_array[$x1][0]=$a1; $motiv_array[$x1][1]=$a2; $x1++; } return $motiv_array; }  $string=”EGBDCBDECADEFDCDCBEAZBBCAEGBDCEABEZGGAFCFCFGAZEDADACEGFEAZ”; $search_length=strlen($string); motif_longest($string,$search_length);  

Quelltext 29 - Suche nach dem längsten zweimal vorhandenen String mit Hilfe der Funktion motif_longest

Die zweite Funktion (siehe Quelltext 30) sucht ebenfalls über von Schritt zu Schritt kleineren Teilstrings nach wiederholten Notennamenketten. Lediglich die Ergebnismenge wird einge-schränkt: Es werden nur die Teilstrings in die Ergebnismenge aufgenommen, die sich im Rahmen

 

100 

der vorgegebenen Länge befinden. Somit wird der Funktion der Gesamtstring übergeben sowie deren Länge und die erlaubte Minimal- und Maximallänge des gesuchten Motivs. Als Rückgabe-wert gibt die Funktion ein Array mit allen gefundenen Strings und deren Erstposition im Ge-samtstring zurück. 

private function motif_range($string,$min,$max,$search_length){ $strSource = $string; $minlength = $min; $maxlength = $max; $int_length = $search_length; $strTmp = null; $arrCount = array(); for($o = 0; $o < $int_length; $o++ ){ if(($int_length-$o)<=$minlength){ continue; } $range_search = $int_length-$o; $sum_min_max = $minlength+$maxlength; for($i = $minlength; $i<=$range_search and $range_search<=$sum_min_max; $i++ ){ $strTmp = substr($strSource, $o, $i); $intCount = substr_count($strSource, $strTmp); if($intCount >= 2){ if(!array_key_exists($intCount,$arrCount)){ $arrCount[ $intCount ] = array(); } $arrCount[$intCount][] = $strTmp; } } } foreach($arrCount as $intCount => $arrResults ){ $arrCount[$intCount] = array_unique($arrResults); } $x1=0; foreach($arrCount as $a1 => $a2){ foreach($a2 as $b1 => $b2){ $motiv_array[$x1][0]=$arrCount[$a1][$b1]; $motiv_array[$x1][1]=$a1; $x1++; } } return $motiv_array; } $string=”EGBDCBDECADEFDCDCBEAZBBCAEGBDCEABEZGGAFCFCFGAZEDADACEGFEAZ”; $search_length=strlen($string); $min=3; $max=10; motif_range($string,$min,$max,$search_length);  

Quelltext 30 - Die Funktion motif_range zur Suche nach doppelten Strings mit Einschränkung der Länge

Die Rückgabewerte der beiden vorgestellten Motivsuche-Funktionen werden als Array an die Zentralsteuerungsdatei motif.php zurückgegeben. Dieses zweidimensionale Array besteht aus den Notennamenreihen und aus den Anfangspositionen der gefundenen Motive im Gesamtstring. Mit Hilfe der Anfangsposition des Teilstrings kann dieser im Gesamtstring wiedergefunden wer-den. Ob die Position des Motivs richtig ist, wird mit der Funktion array_search(mixed $needle, array $haystack) überprüft. Dabei sucht die Funktion den Teilstring im multidimensionalen Ar-

 

101 

ray und erhält als Rückgabewert den Schlüssel. Der Schlüssel ist von der eigenen Programmie-rung her so aufgebaut, dass er gleichzeitig auch der Anfangsposition des gesuchten Motivs im gesamten Musikwerk entspricht. Ist die richtige Position im multidimensionalen Array gefunden, können die Noteninformationen aus den restlichen Parametern dem gefundenen Motiv hinzuge-fügt werden. Alle Noteninformationen des Motivs werden in einem neuen multidimensionalen Array abgespeichert. Zusätzlich zu den Noteninformationen Notenname, Alteration, Oktave, Notenwert als Zahl, Notenwert als Wort, chromatische Kontur, diatonische Kontur und Par-sons-Code sind drei weitere strukturbedingte Informationen zu ergänzen:

1. Position der einzelnen Note des Motivs innerhalb des multidimensionalen Arrays: Wurde beispielsweise ein Motiv, das neun Noten lang ist, an Arrayposition 440 des multidi-mensionalen Arrays vom Musikwerk entdeckt, so sind die Zahlen der Notenpositionen, die im multidimensionalen Array des Motivs gespeichert werden: 4, 5, ..., 11 und 12.

2. Taktnummer des Taktes, in dem sich die betrachtete Note des Motivs im Musikwerk befindet: Diese Angabe ist für die spätere Ausgabe der Motivanalyseergebnisse wichtig, um dem Benut-zer die Information zu geben, im welchen Takt sich das gefundene Motiv befindet.

3. Angabe des Systems, in dem sich das Motiv befindet: Auch diese Information ist für die Prä-sentation der Analyseergebnisse für den Benutzer wichtig.

Alle genannten Informationen sehen für das konstruierte Beispielmotiv wie folgt aus:

Arrayposition der Note

0 1 2 3 4 5 6 7 8 9

Notenname E G B D C B D E C A Alteration 0 1 0 0 0 0 0 0 0 0 Oktavlage 4 4 4 5 5 4 4 4 4 3 Notenwert als Zahl

0.5 0.5 1 0.5 1.5 0.5 0.5 0.5 0.5 2

Notenwert als Wort

eighth eighth quarter eighth quarter eighth eighth eighth eighth half

chromatische Kontur

* 4 3 3 -2 -1 -9 2 -4 -3

diatonische Kontur

* 2 2 2 -1 -1 -5 1 -2 -2

Parsons-Code S U U U D D D U D D Taktnummer 1 1 1 1 1 2 2 2 2 2 System P1 P1 P1 P1 P1 P1 P1 P1 P1 P1

Tabelle 35 - Noteninformationen des Beispielmotivs

                                                             40 Die entspricht der 5. Stelle im Array, da im Array die Zählung bei 0 beginnt. 

 

102 

4.9 BERECHNUNG DER MOTIVVERARBEI-TUNGSFORMEN

Die bisher gesammelten Daten sind in zwei multidimensionalen Arrays abgespeichert: Zum einen in dem Array, welches die Noteninformationen des gesamten Musikwerkes enthält und zum an-deren das Array mit den Noteninformationen über die gefundenen Motive. Zur Unterscheidung der Arrays werden die beiden Bezeichnungen „Werkarray“ und „Motivarray“ eingeführt.

Derzeitig liegt das Motiv mit seinen Noteninformationen in dem Motivarray mit dem Arrayna-men Position[] vor. Von den Noteninformationen des Motivs ist nun der Krebs, die Umkeh-rung, die Krebsumkehrung, die Augmentation und die Diminution zu bilden. Es gelten hierbei die Rechnungsvorschriften von Originalmotiv zu der jeweiligen Motivverarbeitungsform, wie sie in Kapitel 3.3 „Systematischer Bezug der Motivverarbeitung zum Originalmotiv“ tabellarisch vorgestellt wurden. Motivverarbeitungsformen wie Sequenz, Intervallengung sowie Intervallwei-tung müssen nicht gebildet werden, sondern können direkt aus dem Motivarray Position[] zur Analyse herangezogen werden. Dies begründet sich darin, dass es beispielweise nicht eine einzige Intervallweitung, sondern sehr viele mögliche Intervallweitungen eines Motivs gibt. Um unnötige Rechenprozesse zu verringern, werden daher je nach Motivverarbeitungsform nicht alle Parame-ter miteinander verglichen. Des Weiteren kann eine Sequenz bereits durch den Vergleich der Konturen sowie der Notenwerte identifiziert werden. Für die übrigen Motivverarbeiten ist ein Anlegen neuer Arrays − hier als Motivverarbeitungsar-rays bezeichnet − notwendig, da hier ein oder mehrere Parameter der Noteninformationen geän-dert werden müssen.

Krebs

Das Motivarray ist für den Krebs von hinten nach vorn zu drehen. Die Noteninformationen der Konturen müssen außerdem invertiert werden. Die Inversion schließt sowohl Vorzeichenwech-sel, als auch den Symboltausch von D und U im Parsons-Code ein. Die neu geordneten Notenin-formationen werden parameterweise in einem neuen temporären Array, dem Krebsarray (Position_des_Krebs_Pattern[]), abgespeichert.

 

103 

Umkehrung

Für die Umkehrung werden alle Noteninformationen zu den Konturen im Motivarray invertiert und in einem temporären Umkehrungsarray gespeichert. Das Umkehrungsarray besitzt den Na-men Position_des_Umgekehrung_Pattern[].

Krebsumkehrung

Die Noteninformationen im Motivarray werden zunächst wie bei einer Umkehrung und an-schließend wie bei einem Krebs geordnet. Abgespeichert werden die neu geordneten Noten-informationen in ein temporäres Krebsumkehrungsarray mit dem Namen Position_des_Krebsumkehrung_Pattern[].

Augmentation

Die Notenwerte und die Werte aus <duration> werden um den Wert 2 multipliziert. Das Augmen-tationsarray besitzt den Namen Position_Augmentation_Pattern[].

Diminution

Die Notenwerte und die Werte aus <duration> werden durch den Wert 2 dividiert. Das Diminuti-onsarray besitzt den Namen Position_Diminution_Pattern[].

 

104 

4.10 REDUKTION UND TRANSFORMATION DER NOTENINFORMATIONEN

Auch das Werkarray muss nun zum Finden von Motivverarbeitungen aufbereitet werden. Hierzu wird ein temporäres Werkarray angelegt, welches nur die für die Motivanalyse selbst benötigten Informationen enthält. Hierzu werden die Zellen des temporären Werkarrays in den ersten Schritten gefüllt und in einem zweiten Schritt teilweise überschrieben. Im ersten Schritt werden die nachfolgend aufgelisteten Informationen aus dem Werkarray ausge-lesen und in das temporäre Werkarray gespeichert:

der Notenname

die Alteration

die Oktave

der Notenwert als Zahl

der Notenwert als Wort

die chromatische Kontur

die diatonische Kontur

der Parsons-Code

die Taktnummer in der sich die aktuelle Note befindet

das System in dem sich das Motiv befindet

Falls der Benutzer den entsprechenden Button in der Weboberfläche zuvor aktiviert hat, werden Pausen ebenfalls in das temporäre Array aufgenommen. Bei Akkorden wird immer nur der Basston übernommen. Dieser erste Schritt besteht also in einer Reduzierung der Daten. Alle Werte sind so zu übernehmen, dass der Index zwischen den beiden multidimensionalen Arrays gleich bleibt. Auf diese Weise kann auf beide multidimensionalen Arrays mit dem gleichen Index zugegriffen werden, wobei stets die Informationen der gleichen Note zurückgegeben wer-den. Die folgende Darstellung zeigt die Übergabe der Inhalte des Werkarrays in das temporäre Werkarray mit gleichbleibendem Index anhand eines Ausschnitts aus dem Beispielwerk aus Ab-bildung 39.

   

 

105 

Akkord an Notenposition 6 E

Werkarray (inklusive Akkordtö-ne)

C Notenname ... P A C B ...weitere Noteninformationen ... ... ... ... ... ...Oktavlage ... - 4 5 4 ...Index 4 5 6 7 8 9

Index 4 5 6 7 8 9weitere Noteninformationen ... ... ... ... ... ...

Temporäres multidimensionales Array

Oktavlage ... / 4 5 4 ...Notenname ... P A C B ...Abbildung 41 - Die Indizes zwischen dem Werkarray und des temporären Werkarrays bleiben erhalten

Die folgende Abbildung 42 zeigt die gesamten Informationen, wie sie im temporären Werkarray angeordnet sind, anhand eines Ausschnitts aus dem Beispielwerk.

... 1 2 3 4 5 6 7 ... Index

... G B D C B D E ... Notenname

... 1 0 0 0 0 0 0 ... Alteration

... 4 4 5 5 4 4 4 ... Oktavlage

... 0.5 1 0.5 1.5 0.5 0.5 0.5 ... Notenwert (Zahl)

... eighth quarter eighth quarter eighth eighth eighth ... Notenwert (Wort)

... 4 3 3 -2 -1 -9 2 ... Chromatische Kontur

... 2 2 2 -1 -1 -5 1 ... Diatonische Kontur

... U U U D D D U ... Parsons-Code

... 1 1 1 2 2 2 2 ... Taktnummer

... P1 P1 P1 P1 P1 P1 P1 ... Notensystem

Abbildung 42 - Veranschaulichung des temporären Werkarrays mit den Noteninformationen des Beispielwerkes als Ausschnitt

Im zweiten Schritt müssen die Werte der Noteninformationen aus dem temporären Werkarray, die länger als ein Zeichen sind (bspw. -3 oder quarter), so transformiert werden, dass diese Zei-chen nur noch aus einem Charactersymbol bestehen. Ziel der Transformation ist es, dass alle Einträge in der hier als senkrecht dargestellten Ebene des Arrays gleich lang sind. Im Verlauf der Motivanalyse werden die einzelnen Charactersymbole je Parameter zu einem String verkettet. Dabei müssen die Strings in allen Parametern dieselbe Länge aufweisen. Bei Übergängen von einem zum nächsten Notensystem wurde im Parameter Notenname ein Z eingefügt. Um am Ende wieder dieselbe Länge wie bei den anderen Parametern zu erreichen, müssen auch in allen anderen Parametern die Notensystemübergänge mit einem Charactersymbol markiert werden. Als Charactersymbole werden die Groß- und Kleinbuchstaben des lateinischen Alphabets ver-wendet. Es stehen demnach 26 Kleinbuchstaben und 26 Großbuchstaben als Charactersymbole

 

106 

zur Verfügung. Diese insgesamt 52 Charactersymbole ermöglichen eine String-Analyse mit den PHP-String- und Regular-Expressions-Funktionen. Die durch PHP zur Verfügung stehenden Funktionen können zwischen Groß- und Kleinschreibung unterscheiden.

Die folgenden Transformationen wurden in der Diplomarbeit realisiert.

Transformation der diatonischen Kontur

Es wird davon ausgegangen, dass zwischen zwei benachbarten Noten der Intervallab-stand nie größer als -24 oder +24 Tonschritte ist. Dies entspricht im diatonischen Raum immerhin einem Sprung von mehr als drei Oktaven. f(x) sei die Transformationsfunktion zur diatonischen Kontur mit den folgenden Werten:

f(-24) = x f(-23) = w ... f(-2) = b f(-1) = a f(0) = Z f(1) = A f(2) = B ... f(23) = W f(24) = X f(Ende des Notensystems) = Y.

Transformation der chromatischen Kontur

Hier wird ebenfalls angenommen, dass ein Intervallabstand zwischen zwei benachbarten Noten nie größer als -24 und +24 Tonschritte ist. Im chromatischen Raum entspricht dies circa zwei Oktaven. g(x) sei die Transformationsfunktion zur chromatischen Kontur mit den Werten:

g(-24) = x g(-23) = w ... g(-1) = a g(0) = Z

 

107 

g(1) = A g(2) = B ... g(23) = W g(24) = X g(Ende des Systems) = Y.

Transformation des Parsons-Codes

Der Parsons-Code muss nicht transformatiert werden, da die Symbole des Parsons-Codes nur aus S, D, U und R bestehen und somit stets nur ein Zeichen lang sind. Das Ende ei-nes Systems wird mit dem Buchstaben Y angegeben.

Transformation des Notenwertes

Hier erweist es sich als sinnvoller, den Notenwert aus der Angabe als englisches Wort herauszulesen, da der Notenwert als reelle Zahl nicht ohne Weiteres in ein diskretes Sym-bol aus dem Alphabet transformiert werden kann. In einer zukünftigen Implementierung sollte jedoch wieder auf die Werte von <duration> und <divisions> zugegriffen werden, da so feinere Abstufungen der Notenwerte insbesondere bei X-tolen dargestellt werden können. h(x) sei die Transformationsfunktion für die Notenlänge mit den folgenden Werten:

h(breve) = A h(long) = B h(whole) = C h(half) = D h(quarter) = E h(eighth) = F h(16th) = G h(32th) = H h(64th) = I h(128th) = J h(Ende des Systems) = Z.

Sind im Musikwerk größere Notenwerte als 128th, Punktierungen oder auch X-tolen vor-handen, so werden diese Werte mit dem Symbol U belegt, welches in der Motivanalyse als

 

108 

undefiniert behandelt wird.

Transformation der Oktavlagen

i(x) sei die Transformationsfunktion für Oktavlagen mit den folgenden Werten:

i(0) = J i(1) = A i(2) = B i(3) = C i(4) = D i(5) = E i(6) = F i(7) = G i(8) = H i(9) = I i(Ende des Systems) = P.

Alterationen

Für die Transformation der Alterationen wird als Ausgangswert der Wert im Element <alter> genommen. Es sind aufwärts sowie abwärts nur zwei Alterationsschritte mit unterscheidbaren Symbolen definiert, da in aller Regel größere Alterationen nicht vor-kommen. Tritt dieser Fall dennoch ein, werden die größeren Alterationswerte wieder mit dem Symbol U belegt. j(x) sei die Transformationsfunktion für Alterationen mit den Werten:

j(0) = Z j(-1) = a j(-2) = b j(1) = A j(2) = B j(Ende des Systems) = P.

 

109 

Transformation der Notennamen

Notennamen müssen nicht transformiert werden, da diese bereits aus nur einem Charactersymbol bestehen: C, D, E, F, G, A und B. Ebenfalls müssen Pausen nicht mehr transformiert werden, da diese bereits das Symbol P erhalten haben und das Ende eines Systems wird mit dem Zeichen Y belegt.

Die folgende Darstellung in Abbildung 43 soll das temporäre transformierte Werkarray veran-schaulichen mit demselben Auszug von Noteninformationen aus dem konstruierten Beispielmo-tiv wie in Abbildung 42, hier jedoch nach der Transformation.

... 1 2 3 4 5 6 7 ... Index

... G B D C B D E ... Notenname

... A Z Z Z Z Z Z ... Alteration

... D D E E D D D ... Oktavlage

... F E F E F F F ... Notenwert (Wort)

... D C C b a i B ... Chromatische Kontur

... B B B a a e A ... Diatonische Kontur

... U U U D D D U ... Parsons-Code

... 1 1 1 2 2 2 2 ... Taktnummer

... P1 P1 P1 P1 P1 P1 P1 ... Notensystem

Abbildung 43 - Veranschaulichung des temporären Werkarrays mit den Noteninformationen des Beispielwerkes als Ausschnitt nach der Transformation

Die Arrayzellen Notensystem, Taktnummer und Notenwert als Zahl werden nicht transformiert, da sie für die Motivanalyse nicht betrachtet werden müssen. Die Informationen zum Notensys-tem und zur Taktnummer sind aber noch enthalten, da sie später für die Präsentation der Motiv-verarbeitungsergebnisse relevant sind. Werden die einzelnen für die Motivanalyse relevanten Charactersymbole je Parameter aus dem temporären Werkarray als einzelne Strings zusammengesetzt, so entsteht die folgende Darstel-lung.

Index 0 10 20 30 40 50

Notenname Parsons-Code

Diatonische Kontur Chromatische Kontur

Notenwert Oktavlage Alteration

| | | | | | EGBDCBDECADEFDCDCBEAZBBCAEGBDCEABEZGGAFCFCFGAZEDADACEGFEAZ SUUUDDDUDDUUUDDUDDUDYSEUDDUUUDUUUDYSEUDDUDUUUYSDDUDUUUDDUY zBBBaaeAbbCAAbaHaaCdYzZAbcBBBaBCAdYzZAbcCcCAAYzacCcBBBaaCY zDCCbaiBdcEBAcbNbaEgYzZAceDCCbDEBgYzZAdeEeECAYzbeEeCDCbaEY FFEFEFFFFDFFFDFFFFDFZDFEDFFEFEDEDFZDFEDDDDEDFZCDDDFFEFEDFZ DDDEEDDDDCDDDDDEEDEDPCCDCCCCDDDDDDPCCCCCCCCCCPCCBCBCCCCCCP ZAZZZZZZZZZZZZZZZZZZPZZZZZAZZZZZZZPAAZZZZZZAZPZZZZZZZZZZZP

Abbildung 44 - Aneinanderreihung aller Noteninformationen des Beispielmusikwerkes als Strings

 

110 

Alle Strings besitzen die gleiche Länge. Die Länge entspricht dem Index und wird im Kopf der Abbildung dargestellt. Üblicherweise beginnt die Zählung bei einem Array bei 0. Diese Zählung wurde für die weitere Betrachtung ebenfalls übernommen.

Anschließend werden wie bei dem Werkarray auch die Arrayzellen der Motivverarbeitungsarrays in Charactersymbole transformiert. Das Array Position_Augmentation_Pattern[] enthält beispiel-weise diese Daten:

Länge 0

Notenname Parsons-Code

Diatonische Kontur Chromatische Kontur

Notenwert Oktavlage Alteration

EGBDCBDECA SUUUDDDUDD zBBBaaeAbb zDCCbaiBdc EEDEDEEEEC DDDEEDDDDC ZAZZZZZZZZ

Abbildung 45 - Aneinanderreihung aller Noteninformationen für die Augmentation des Beispielmotivs als String

4.11 DIE MOTIVANALYSEFUNKTION

Alle Informationen sind nun so aufbereitet, dass die Motivanalyse beginnen kann. Für die weitere Betrachtung wird ein Teilstring, der im Gesamtstring gesucht wird, als Pattern bezeichnet. Ein Pattern ist ein Ausdruck, in der Regel eine Zeichenkette, nach der in einer anderen Zeichenkette gesucht wird, eine Art Suchmuster. Für die Motivanalyse wurde die Funktion pregmatchall() programmiert, welche im Quelltext 31 dargestellt ist. Sie erwartet vier Parameter. Die Variable $pattern ist das Suchmuster, das in einem String gesucht werden soll. Als erstes wird der String der Notennamen des Originalmotivs der Variable $pattern übergeben. Die Variable $subject er-hält den Gesamtstring der Notennamen des Musikwerkes. Die Variable $matches speichert alle gefundenen Suchmuster und deren Position an der das Suchmuster im Gesamtstring aufgetaucht ist. Die Variable $flags mit dem Wert PREG_PATTERN_ORDER „ordnet die Ergebnisse so an, dass $treffer[0] ein Array von Übereinstimmungen mit dem kompletten Suchmuster ist, $treffer[1] ein Array von Zeichenketten, die auf das erste eingeklammerte Teilsuchmuster passen und so weiter.“ 41 Die Variable $offset mit dem Wert 0 bedeutet, dass die Suche an der nullten Position der Suchzeichenkette beginnt.

   

                                                             41 PHP Hypertext Preprocessor: "PHP: preg_match_all - Manual". URL: http://de.php.net/manual/de/function.preg-match-all.php [Stand: 4. April 2009]

 

111 

function pregmatchall($pattern,$subject,&$matches,$flags=PREG_PATTERN_ORDER,$offset=0 ){ $i = 0; $matches = array(); while( preg_match($pattern, $subject, $match, PREG_OFFSET_CAPTURE, $offset+1) ) { foreach( $match as $r => $m ) { $matches[$r][] = $m; } $offset = $match[0][1]; $i++; } return $i; }  

Quelltext 31 - Funktion, die Teilstrings im Gesamtstring matcht

Aus dem konstruierten Beispielmotiv mit der Notennamenfolge EGBDCBDECA werden hier für die Analyse als Motiv nur die ersten vier Notennamen EGBD verwendet, da so mehr Ergeb-nisse erzielt werden. Die Ergebnissemenge kann sehr unterschiedlich sein, je nachdem, wie lang das Motiv gewählt ist. Für das Notennamen-Pattern EGBD wird im Beispiel des vierstimmigen Satzes aus Abbildung 39 mit dem Notennamen-String EGBDCBDECADEFDCDCBEAZBBCAEGBDCEABEZGGAFCFCFGAZEDADACEGFEAZ das folgende Ergebnis an die Variable $matches zurückgegeben.

$matches[0][0]=“EGBD“; $matches[0][1]=0; $matches[1][0]=“EGBD“; $matches[1][1]=25;

Quelltext 32 - Beispiel für Rückgabewerte der Funktion pregmatchall()

So wie die Funktion pregmatchall() die Position findet, in der die Notennamen-Patterns im Gesamtstring auftreten, so kann die Funktion ebenfalls dafür genutzt werden, die Positionen zu finden, an denen Alterations-Patterns im Gesamtstring der Alterationen auftreten oder die Posi-tionen, an denen Oktav-Patterns im Gesamtstring der Oktavlagen auftreten. Dies gilt ebenso für die Notenwerte, die chromatische Kontur, die diatonische Kontur und den Parsons-Code.

Sind alle Patterns des Motivarrays Position[] abgearbeitet, werden die Patterns der Motivverar-beitungsarrays an die Funktion pregmatchall() übergeben. Auch hier werden alle Patterns auf Übereinstimmungen im Gesamtstring des Musikwerkes hin überprüft. Die Rückgabewerte sind wieder die Patterns selbst sowie die Positionen, an denen diese im Gesamtstring auftreten.

Die folgende Abbildung zeigt gefundene Matchings der ersten vier Noten EGBD des verkürzten Beispielmotivs im vierstimmigen Beispielmusikwerk. Dabei sind in grüner Farbe die Notenin-formationen des Motivs EGBD markiert. Die Werte in der Farbe Pink im Parsons-Code, der diatonischen Kontur und der chromatischen Kontur sind für die weitere Motivanalyse nicht rele-vant, da sie hier nur den Startpunkt markieren. Dennoch ist der Algorithmus so aufgebaut, dass

 

112 

auch die in Pink gehaltenen Charactersymbole in die Ergebnismenge aufgenommen werden, um die richtige Position für die weitere Analyse anzugeben. In gelber Farbe hinterlegt sind alle Matchings, die mit den Noteninformationen des Motivs EGBD übereinstimmen.

Index 0 10 20 30 40 50

Notenname Parsons-Code

Diatonische Kontur Chromatische Kontur

Notenwert Oktavlage Alteration

| | | | | | EGBDCBDECADEFDCDCBEAZBBCAEGBDCEABEZGGAFCFCFGAZEDADACEGFEAZ SUUUDDDUDDUUUDDUDDUDYSEUDDUUUDUUUDYSEUDDUDUUUYSDDUDUUUDDUY zBBBaaeAbbCAAbaHaaCdYzZAbcBBBaBCAdYzZAbcCcCAAYzacCcBBBaaCY zDCCbaiBdcEBAcbNbaEgYzZAceDCCbDEBgYzZAdeEeECAYzbeEeCDCbaEY FFEFEFFFFDFFFDFFFFDFZDFEDFFEFEDEDFZDFEDDDDEDFZCDDDFFEFEDFZ DDDEEDDDDCDDDDDEEDEDPCCDCCCCDDDDDDPCCCCCCCCCCPCCBCBCCCCCCP ZAZZZZZZZZZZZZZZZZZZPZZZZZAZZZZZZZPAAZZZZZZAZPZZZZZZZZZZZP

Abbildung 46 - Gefundene Matchings im vierstimmigen Beispielwerk

 

Es ist zu sehen, dass beispielsweise an Position 25 Übereinstimmungen in den Parametern No-tenname, Parsons-Code, diatonische Kontur, chromatische Kontur, Notenwert und Alteration gefunden wurden. Es ist nun zu analysieren, welcher Motivverarbeitung diese Kombinationen an Übereinstimmungen entsprechen.

 

4.12 DIE EINORDNUNG DER ERGEBNISSE ZU MÖGLICHEN MOTIVVERARBEITUNGS-FORMEN

Betrachtet wird der folgende Quelltext. Er zeigt alle Matchings, die an Position 25 im Beispielmu-sikwerk gefunden wurden.

//für das Matching der Notennamen $matches[1][0]=“EGBD“; $matches[1][1]=25; //für das Matching des Parsons-Codes $matches[1][0]=“SUUU“; $matches[1][1]=25; //für das Matching der diatonischen Kontur $matches[1][0]=“zBBB“; $matches[1][1]=25; //für das Matching der chromatischen Kontur $matches[1][0]=“zDCC“; $matches[1][1]=25; //für das Matching der Notenwerte $matches[1][0]=“FFEF“; $matches[1][1]=25; //für das Matching der Alterationen

 

113 

$matches[1][0]=“ZAZZ“; $matches[1][1]=25;

Quelltext 33 - Matchings für die Notenposition 25

Mit allen gefundenen Matchings und deren Positionen kann überprüft werden, ob an dieser Posi-tion tatsächlich eine motivthematische Verarbeitung der Notennamenfolge EGBD vorliegt. Dies ist nur gegeben, wenn bestimmte Kombinationen an Parametern ein Matching an derselben Posi-tion aufweisen. Die folgende Tabelle zeigt alle Motivverarbeitungsformen und die Parameter, in denen ein Matching notwendig ist, um die jeweilige Motivverarbeitungsform zu erkennen. Ist ein Matching in dem entsprechenden Parameter notwendig, so ist dies in der Tabelle mit „Ja“ verzeichnet. Die Tabelle ist wie eine Art Schablone zu lesen: Jede Motivverarbeitungsform benötigt in unter-schiedlichen Parametern ein Matching. Tritt beispielsweise ein Matching bei einer Notenfolge innerhalb der Konturen und des Notenwertes auf, stimmen aber die Noteninformationen bei Oktave, Alteration und Notenname nicht mit dem Pattern überein, so kann es sich nur um eine reale Sequenz handeln. Anhand der Tabelle 36 fällt auf, dass lediglich eine Intervallweitung und eine Intervallengung sich in den benötigten Matchings je Parameter nicht unterscheiden. Wird eine Intervallengung oder Intervallweitung gefunden, so muss manuell unterschieden werden, welche der beiden Motivver-arbeitungsformen vorliegen. Die Tabelle 36 ist im Algorithmus hinterlegt. Anhand der Zuordnungen in dieser Tabelle ist zu überprüfen, ob und welche Motivverarbeitungsform vorliegt.

Parameter

Motivverar-beitungsform

Parsons-Code

Diatoni-sche Kon-tur

Chromatische Kontur

Noten-wert

Oktav-lage

Alteration Notenname

Originalsequenz Ja Ja Ja Ja Ja Ja Ja Tonale Sequenz Ja Ja Nein Ja Nein Nein Nein Reale Sequenz Ja Ja Ja Ja Nein Nein Nein Tonale Umkehrung Ja (*1 Ja (*1 Nein Ja Nein Nein Nein Reale Umkehrung Ja (*1 Ja (*1 Ja (*1 Ja Nein Nein Nein Krebs I Ja (*2 Ja (*2 Ja (*2 Ja (*3 Ja (*3 Ja (*3 Ja (*3 Krebs II Ja (*2 Ja (*2 Ja (*2 Ja Ja (*3 Ja (*3 Ja (*3 Spiegelkrebs Ja (*2 Ja (*2 Nein Ja (*3 Nein Nein Nein Intervallweitung Ja Nein Nein Ja Nein Nein Nein Intervallengung Ja Nein Nein Ja Nein Nein Nein Augmentation Ja Ja Ja Ja (*4 Ja Ja Ja Diminution Ja Ja Ja Ja (*5 Ja Ja Ja *1 Eingabe ist im Gegensatz zum Originalmotiv umgekehrt (+-) *2 Eingabe ist im Gegensatz zum Originalmotiv ein Krebs () der umgekehrt (+-) wurde *3 Eingabe ist im Gegensatz zum Originalmotiv ein Krebs () *4 Eingabe ist im Gegensatz zum Originalmotiv im Notenwert verdoppelt *5 Eingabe ist im Gegensatz zum Originalmotiv im Notenwert halbiert

Tabelle 36 - Motivverarbeitungen und die dazu notwendigen Matchings je Parameter im Überblick

 

114 

Für das Beispielmusikwerk aus Abbildung 39 wurden Matchings für den Notennamen, den Par-sons-Code, die diatonische Kontur, die chromatische Kontur, die Notenwerte und die Alteration an Position 25 gefunden. Werden diese Matchings anhand der Tabelle überprüft, so kann diesen Matchings die „reale Sequenz“ zugeordnet werden. Dabei ist das Matching für die Notennamen nicht erforderlich, es tritt aber auf, da die reale Sequenz an dieser Position im Gegensatz zum Originalmotiv oktaviert ist.

Die in Tabelle 36 abgebildeten Zuordnungen werden im Motivanalysealgorithmus mit einer if-else-Anweisungsstruktur realisiert. Diese ist in Quelltext 34 dargestellt. Jede if-Anweisung testet, ob die Position, an der ein Matching gefunden wurde, in den Parametern übereinstimmt. In den if-Bedingungen werden die Positionen der Matchings miteinander verglichen. Liegen Matchings in mehreren Parametern vor, so ist an dieser Position die entsprechende Motivverarbeitungsform nach Tabelle 36 vorhanden.

//Test, ob Motivverarbeitung ein Originalmotiv oder eine Wiederholung ist if(Position[„Parsons-Code“]==Position[„Notenname“] AND Position[„Parsons-Code“]==Position[„Alteration“] AND Position[„Parsons-Code“]==Position[„Oktave“] AND Position[„Parsons-Code“]==Position[„Notenwert“] AND Position[„Parsons-Code“]==Position[„chromatische-Kontur“] AND Position[„Parsons-Code“]==Position[„diatonische-Kontur“]){ //An dieser Position befindet sich ein Originalmotiv / eine Wiederholung //Test, ob Motivverarbeitung eine tonale Sequenz ist }elseif( Position[„Parsons-Code“]==Position[„Notenwert“] AND Position[„Parsons-Code“]==Position[„diatonische-Kontur“]){ //An dieser Position befindet sich eine tonale Sequenz //Test, ob Motivverarbeitung eine reale Sequenz ist }elseif( Position[„Parsons-Code“]==Position[„Notenwert“] AND Position[„Parsons-Code“]==Position[„chromatische-Kontur“] AND Position[„Parsons-Code“]==Position[„diatonische-Kontur“]){ //An dieser Position befindet sich eine reale Sequenz //Test, ob Motivverarbeitung eine tonale Umkehrung ist }elseif( Position_des_Umgekehrung_Pattern[„Parsons-Code“]== Position[„Notenwert“] AND Position_des_Umgekehrung_Pattern[„Parsons-Code“]== Position_des_Umgekehrung_Pattern[„diatonische-Kontur“]){ //An dieser Position befindet sich eine tonale Umkehrung //Test, ob Motivverarbeitung eine reale Umkehrung ist }elseif( Position_des_Umgekehrung_Pattern[„Parsons-Code“]== Position[„Notenwert“] AND Position_des_Umgekehrung_Pattern[„Parsons-Code“]== Position_des_Umgekehrung_Pattern[„chromatische-Kontur“] AND Position_des_Umgekehrung_Pattern[„Parsons-Code“]== Position_des_Umgekehrung_Pattern[„diatonische-Kontur“]){ //An dieser Position befindet sich eine reale Umkehrung //Test, ob Motivverarbeitung ein Krebs I }elseif( Position_des_Krebsumkehrung_Pattern[„Parsons-Code“]== Position_des_Krebs_Pattern[„Notenname“] AND Position_des_Krebsumkehrung_Pattern[„Parsons-Code“]== Position_des_Krebs_Pattern[„Alteration“] AND Position_des_Krebsumkehrung_Pattern[„Parsons-Code“]== Position_des_Krebs_Pattern[„Oktave“] AND Position_des_Krebsumkehrung_Pattern[„Parsons-Code“]== Position_des_Krebs_Pattern[„Notenwert“] AND Position_des_Krebsumkehrung_Pattern[„Parsons-Code“]== Position_des_Krebsumkehrung_Pattern[„chromatische-Kontur“] AND Position_des_Krebsumkehrung_Pattern[„Parsons-Code“]== Position_des_Krebsumkehrung_Pattern[„diatonische-Kontur“]){ //An dieser Position befindet sich ein Krebs I //Test, ob Motivverarbeitung ein Krebs II }elseif( Position_des_Krebsumkehrung_Pattern[„Parsons-Code“]== Position_des_Krebs_Pattern[„Notenname“] AND Position_des_Krebsumkehrung_Pattern[„Parsons-Code“]== Position_des_Krebs_Pattern[„Alteration“] AND Position_des_Krebsumkehrung_Pattern[„Parsons-Code“]== Position_des_Krebs_Pattern[„Oktave“] AND Position_des_Krebsumkehrung_Pattern[„Parsons-Code“]== Position[„Notenwert“] AND

 

115 

Position_des_Krebsumkehrung_Pattern[„Parsons-Code“]== Position_des_Krebsumkehrung_Pattern[„chromatische-Kontur“] AND Position_des_Krebsumkehrung_Pattern[„Parsons-Code“]== Position_des_Krebsumkehrung_Pattern[„diatonische-Kontur“]){ //An dieser Position befindet sich ein Krebs I //Test, ob Motivverarbeitung ein Spiegelkrebs }elseif( Position_des_Krebsumkehrung_Pattern[„Parsons-Code“]== Position_des_Krebs_Pattern [„Notenwert“] AND Position_des_Krebsumkehrung_Pattern[„Parsons-Code“]== Position_des_Krebsumkehrung_Pattern[„diatonische-Kontur“]){ //An dieser Position befindet sich ein Spiegelkrebs //Test, ob Motivverarbeitung eine Intervallweitung ist }elseif( Position[„Parsons-Code“]==Position[„Notenwert“]){ //An dieser Position befindet sich wahrscheinlich eine Intervallweitung oder eine Intervallengung //Test, ob Motivverarbeitung ein Originalmotiv oder eine Wiederholung ist }elseif( Position[„Parsons-Code“]==Position[„Notenname“] AND Position[„Parsons-Code“]==Position[„Alteration“] AND Position[„Parsons-Code“]==Position[„Oktave“] AND Position[„Parsons-Code“]==Position_Augmentation_Pattern[„Notenwert“] AND Position[„Parsons-Code“]==Position[„chromatische-Kontur“] AND Position[„Parsons-Code“]==Position[„diatonische-Kontur“]){ //An dieser Position befindet sich eine Augmentation //Test, ob Motivverarbeitung ein Originalmotiv oder eine Wiederholung ist }elseif(Position[„Parsons-Code“]==Position[„Notenname“] AND Position[„Parsons-Code“]==Position[„Alteration“] AND Position[„Parsons-Code“]==Position[„Oktave“] AND Position[„Parsons-Code“]==Position_Diminution_Pattern[„Notenwert“] AND Position[„Parsons-Code“]==Position[„chromatische-Kontur“] AND Position[„Parsons-Code“]==Position[„diatonische-Kontur“]){ //An dieser Position befindet sich eine Diminution }

Quelltext 34 - if-else-Anweisungen zum Finden der jeweiligen Motivverarbeitung

Mit den gefundenen Positionen, die ein Matching enthalten, wird jede Bedingung der if-else-Anweisung solange durchlaufen, bis alle Positionen analysiert wurden. Alle Matchings, die eine Motivverarbeitung ergeben, werden auf die folgende Weise ausgegeben:

Angabe der Motivverarbeitungsform

Angabe der Notennamen der Motivverarbeitung

Angabe der Taktnummer

Angabe des Systems

 

116 

5 FAZIT UND AUSBLICK

Es sollte ein Algorithmus erstellt werden, der die prinzipielle Funktionsweise der automatisierten Motivsuche verdeutlicht. Die erste Version des Motivsuche und Analyseprogramms zeigt, dass die Idee durchaus funktionstüchtig ist. Für den Prototyp mussten einige Bedingungen an das zu analysierende MusicXML-Musikwerk gestellt werden, da musikalische Sonder- und Problemfälle vom Algorithmus nur bedingt berücksichtigt wurden. Testläufe haben aber gezeigt, dass der Al-gorithmus strukturell einfache Musikwerke korrekt analysiert und entsprechende Motivverarbei-tungen findet.

Zum Abschluss soll der gesamte Algorithmus im Überblick in Abbildung 47 gezeigt werden.

Abbildung 47 - Der Motivsuche- / Motivanalysealgorithmus im Überblick

Nachdem das MusicXML-Dokument eingelesen wurde, wird ein multidimensionales Werkarray aus allen benötigten Noteninformationen erstellt. Anhand der Benutzerauswahl wird eine Noten-namenfolge gewählt oder gesucht. Dieses ist der Ausgangspunkt der Analyse. Es werden vom Musikwerk und vom Motiv temporäre Arrays erstellt. Diese Arrays werden so umgewandelt, dass

Mu-sicXML

Krebsarray Jede Noteninformation wird nun durch ein einzel-nes Charactersymbol repräsentiert

EGBDCBDECADEFDCDCBEAZBBCAEGBDCEABEZGGAFCFCFGAZEDADACEGFEAZ SUUUDDDUDDUUUDDUDDUDYSEUDDUUUDUUUDYSEUDDUDUUUYSDDUDUUUDDUY zBBBaaeAbbCAAbaHaaCdYzZAbcBBBaBCAdYzZAbcCcCAAYzacCcBBBaaCY zDCCbaiBdcEBAcbNbaEgYzZAceDCCbDEBgYzZAdeEeECAYzbeEeCDCbaEY FFEFEFFFFDFFFDFFFFDFZDFEDFFEFEDEDFZDFEDDDDEDFZCDDDFFEFEDFZ

Das ausgesuchte Motiv hat die Tonfolge: GBDC. Die Alterationen für diese Notenfolge ist: 1 0 0 0. Der Rhythmus dieser Notenfolge ist 1/8 1/4 1/8 1/4 . Die Oktaven der Noten sind: 4 4 5 5. Dieses Motiv wurde gefunden in: -Takt Nr. 1; System: P1 Eine reale Sequenz G B D C mit dem Rhythmus und der chromatischen Bewegung 4 3 3 -2 ist in folgenden Takten vorhanden: -Takt Nr. 1; System: P1 Eine reale Sequenz G B D C mit dem Rhythmus und der chromatischen Bewegung 4 3 3 -2 ist in folgenden Takten vorhanden: -Takt Nr. 2; System: P2 Eine tonale Sequenz C E G F mit dem Rhythmus und der diatonischen Bewegung 2 2 2 -1 ist in folgenden Takten vorhanden: -Takt Nr. 3; System: P4

Motivarray

multidimensiona-les Werkarray

Finden von Notenna-menwiederholung(en)

Arrays für Position[] Position_des_Krebs_Pattern[] Position_des_Umgekehrung_Pattern[] Position_des_Krebsumkehrung_Pattern[] Position_Augmentation_Pattern[] Position_Diminution_Pattern[]

temporäres Werkarray

Transformation Einlesen

 

117 

jede darin enthaltene Noteninformation durch ein einzelnes Charactersymbol repräsentiert wird. Alle Noteninformationen eines Patterns werden im Musikwerk gesucht. Die Ausgabe enthält die Motivverarbeitungen und deren Position im Musikwerk. Anhand der Kombinationen der Matchings in den Parametern werden die entsprechenden Motivverarbeitungsformen ausgege-ben.

Zunächst folgen einige Punkte, für welche Zwecke die Software im jetzigen Stadium genutzt werden kann.

1. Für Komponisten ist das Motivanalyseprogramm interessant, wenn sie Rückschlüsse über ihre eigene Komposition oder auch Kompositionen ihrer musikalischen Vorbilder ziehen möch-ten. Mitunter werden motivthematische Arbeiten innerhalb des Musikwerkes von ihm ange-wandt, die durch das bloße Hinsehen nicht gleich erfasst, jedoch durch den Algorithmus ge-funden werden.

2. Für Musikwissenschaftler und Musiktheoretiker, Musikpädagogen und -schüler kann das Motivanalysprogramm eine große Hilfe sein, wenn es gilt, Musikwerke melodisch, rhythmisch und auch motivthematisch zu analysieren.

Bevor die am Anfang dieser Diplomarbeit erwähnte Idee der „Musikempfehlung“ funktionstüch-tig wird, sind noch einige Erweiterungen des Programms nötig. Auch ist es wünschenswert, dass der MusicXML-Standard zusätzlich zur derzeitigen DTD um ein XML-Schema ergänzt wird. „XML Schema ist eine Empfehlung des W3C zum Definieren von Strukturen für XML-Dokumente. Anders als bei den klassischen XML-DTDs wird die Struktur in Form eines XML-Dokuments beschrieben. Darüber hinaus wird eine große Anzahl von Datentypen unterstützt.“ 42 Durch das XML-Schema können Musik-werke schlechter manipuliert werden, da es genauere Untersuchungen durchführt, ob ein Mu-sicXML-Dokument valide ist. Weiterhin würde durch die Ergänzung um ein XML-Schema die Struktur eines MusicXML-Dokuments unabhängig von der Erstellungssoftware dahingehend vereinheitlicht werden, dass Notationsprogramme keinen eigenen XML-Code in MusicXML-Dokumente einbauen und somit die Analyse erschweren. Zusätzlich ist es empfehlenswert, die Software einem größeren Publikum zugänglich zu machen. So laden die Benutzer dieser Software unterschiedliche MusicXML-Musikwerke zur Analyse hoch, die mitunter weitere Motivverarbeitungsformen enthalten. Auch diese Motivverarbeitungs-formen können dann mathematisiert und in die Software als Update implementiert werden. Zu-dem können die Softwaretester auf Probleme der Software während der Benutzung hinweisen und aktiv an der Verbesserung der Software teilnehmen.

                                                             42 Wikipedia - Die freie Enzyklopädie: "XML Schema". URL: http://de.wikipedia.org/wiki/XML_Schema [Stand: 10. Mai 2009]  

 

118 

Wo kann der Motivsuche- und Motivanalysealgorithmus in Zukunft stehen? Werden Motive und deren Motivverarbeitungen sämtlicher bereits analysierter Musikwerke in-nerhalb einer Datenbank katalogisiert, bildet dies eine ideale Wissensbasis, um musikalische Ge-meinsamkeiten zwischen Musikwerken zu finden. Eine erste Tabelle der Datenbank, die alle Mu-sikwerke und deren Motive und Motivverarbeitungen enthält, kann zum einen die Kopfdaten eines Musikwerkes enthalten wie etwa Komponist, Entstehungsjahr, Arrangeur, Interpret und Stil. Zum anderen enthält sie sämtliche Motive und Motivverarbeitungen in Form der Notenin-formationen. Weiterhin gibt es eine zweite Tabelle, die Verbindungen zwischen unterschiedlichen Musikwerken anhand von Gemeinsamkeiten zwischen Motiven bzw. Motivverarbeitungen her-stellt. Die folgende Abbildung 48 zeigt hierzu ein Beispiel. Die erste Tabelle enthält das mit der Musikwerk-ID 1 versehene erste Musikwerk, welches vier Motive (Motiv-ID) oder auch Motiv-verarbeitungen besitzt. Hierbei ist Motiv und Motivverarbeitung als Begriff zusammengefasst, da jede Motivverarbeitung auch wieder ein neues Motiv ergibt. Das Musikwerk mit der Musikwerk-ID 2 enthält ebenfalls 4 Motive. Die Tabelle 2 schafft nun Verbindungen zwischen unterschiedli-chen Musikwerken, die gleiche oder ähnliche Motive besitzen. So sind beispielsweise zwischen Musikwerk-ID 1 und 2 zwei Gemeinsamkeiten zu sehen. Das Musikwerk mit der ID 1 besitzt das Motiv mit der Motiv-ID 1, welches gleich oder ähnlich zum Motiv mit der Motiv-ID 2 des Mu-sikwerks mit der Musikwerk-ID 2 ist.

Tabelle 1

Tabelle 2

Musikwerk-ID Motiv-ID Notenname ... Chromatische Kontur

Musikwerk-ID 1

Musikwerk-ID 2

Motiv-ID 1

Motiv-ID 2

1 1 ... ... ... 1 2 1 2

1 2 ... ... ... 1 2 2 4

1 3 ... ... ... 1 80474 1 6

1 4 ... ... ... 1 474 5 1

2 1 ... ... ... ... ... ... ...

2 2 ... ... ...

2 3 ... ... ...

2 4 ... ... ...

3 1

... ... ... ... ...

Abbildung 48 - Gemeinsamkeiten zwischen Motivverarbeitungen in unterschiedlichen Musikwerken

Zur Darstellung von Ähnlichkeiten werden die zu vergleichenden Musikwerke als „Knoten“ be-zeichnet. Stimmen zwei Motive aus den beiden Musikwerken in einem Parameter überein, so sind beide Musikwerke mit einer Kante verbunden. Je mehr Parameter gleichzeitig in zwei Musikwer-ken identische Noteninformationen aufweisen, desto mehr Kanten haben die beiden Musikwerke gemeinsam. Mit jeder neuen Kante nimmt die Ähnlichkeit zwischen den Musikwerken für das betrachtete Motiv zu. Stimmen in den Werken alle Parameter für ein Motiv überein, so ist das betrachtete Motiv identisch. Jede Kante erhält eine eindeutige Benennung. Die Benennung der Kante muss folgende Daten beinhalten:

 

119 

- die Bezeichnung des übereinstimmenden Parameters, - die Motiv-IDs aus allen betrachteten Musikwerken sowie - die Angabe der Notenposition, an der die Übereinstimmung im jeweiligen Musikwerk zu finden ist.

Die folgende Abbildung zeigt vereinfacht die beschriebene Idee.

Abbildung 49 - Kanten zwischen Musikwerken markieren Ähnlichkeiten der Motive

Durch das Schaffen von Kanten entsteht ein Netzwerk zwischen allen analysierten Musikwerken. Dieses Netzwerk kann beispielsweise zur Plagiatsuche verwendet werden. Da die Motivanalyse-software frei von subjektiven Urteilen auf rein mathematischer Basis Beziehungen zwischen Mu-sikwerken erkennt, kann der Algorithmus gerade im Urheberstreit eine große Hilfe sein.

Ein solches Netzwerk kann aber auch an einen Onlineshop angebunden werden, welcher keine subjektiven Kaufempfehlungen wie beispielsweise Pandora anbietet, sondern objektive Kaufemp-fehlungen anhand von Motivgemeinsamkeiten und -ähnlichkeiten gibt. Abbildung 50 zeigt ein solches Netzwerk, wie es dem Shop zu Grunde liegen könnte. Je mehr Parameter gleichzeitig übereinstimmen, als desto dicker wird die Kante dargestellt.

Parsons Code 

Diaton. Kontur 

Notenwert

Chromat. Kontur 

Notenname 

Alteration 

Oktave 

ID 4471 

Parsons Code

Diaton. Kontur

Notenwert 

Chromat. Kontur

Notenname

Alteration

Oktave 

ID 1281 

Parsons Code 

Diaton. Kontur 

Notenwert 

Chromat. Kontur 

Notenname

Alteration

Oktave

ID 953 

ID4471_Motiv2_Notenposition141-Notenwert-ID1281_Motiv15_ Notenposition 74

 

120 

 

Abbildung 50 - Je ähnlicher die Musikwerke sind, desto dicker ist deren Kante

Die folgende Abbildung zeigt eine Möglichkeit, wie der Motivanalysealgorithmus an eine Shop-pingseite angebunden sein kann. Dabei wird die Ähnlichkeit der Musikwerke zueinander verdeut-licht anhand von Prozentangaben, welche sich aus der Stärke der Kanten errechnen lassen.

 

121 

Abbildung 51 - Shopanbindung an den Motivanalysealgorithmus

 

In Verbindung mit einer Datenbankstruktur, in der Musikwerke anhand ihrer Ähnlichkeiten zu-einander als Netzwerk abgespeichert werden, kann der Motivanalysealgorithmus einen entschei-denden Beitrag dazu leisten, CD-Verkäufe anhand von Kaufempfehlungen auf rein objektiver Basis zu steigern.

 

122 

ANHANG 1 NOTEN DER MUSIKBEISPIELE

1.1

 

123 

 

124 

1.2

 

125 

1.3

 

126 

 

127 

 

128 

 

129 

 

130 

 

131 

 

132 

 

133 

 

134 

 

135 

 

136 

 

137 

 

138 

 

139 

 

140 

 

141 

 

142 

2 QUELLENVERZEICHNIS

2.1 LITERATUR Amon, R. (2005): Motiv – Motivisch-thematische Arbeit, in: Lexikon der Harmonielehre. Wien-

München: Doblinger Metzler Verlag, Dürr, W. (2005): Scarlatti, Pietro Alessandro Gaspare, in: Musiklexikon.

Stuttgart, Weimar: Verlag J.B. Metzler. Eckstein R., Eckstein S. (2004): XML Path Language (XPath), in: XML und Datenmodellierung.

Heidelberg: dpunkt Verlag GmbH. Erpf, H. (1967): Formenlehre heute – Form und Zeitablauf, in: Form und Struktur in der Musik.

Mainz: B. Schott’s Söhne. Ferber, R. (2003): Explizit strukturierte Elemente - XML, in: Information Retrieval.

Heidelberg: dpunkt Verlag. Flückiger, B. (2007): Leitmotive, in: Sound Design – Die virtuelle Klangwelt des Films.

Marburg: Schüren Verlag. Holst, I. (1992): Die Anfänge der Kontrapunktik, in: Das ABC der Musik.

Stuttgart: Phillip Reclam jun. GmbH. Lemacher, H., Schroeder, H. (1977): Der zweistimmige Satz, in: Lehrbuch des Kontrapunktes.

Mainz: Schott Musik International. Michels, U. (2005): Musiklehre/Form II, in: dtv-Atlas Musik,

Band 1, Systematischer Teil Musikgeschichte von den Anfängen bis zur Renaissance. München: Deutscher Taschenbuch Verlag GmbH & Co. KG.

De la Motte-Haber, H., Rötter, G. (2005): Prinzipien der Rhythmuswahrnehmung,

in: Musikpsychologie. Laaber: Laaber Verlag.

Parsons, D. (2002): The Directory of Tunes and Musical Themes.

Lübeck: Bohmeier Verlag. Spehr, G. (2007): Audio-Branding – alles neu?, in: Audio-Branding.

München: Verlag Reinhard Fischer.

 

143 

Wiehmayer, T. (1927): Grundfragen der metrischen Analyse, in: Musikalische Formenlehre in Analysen. Magdeburg: Heinrichshofen’s Verlag.

Ziegenrücker, W. (1997): Das Motiv, in: ABC Musik – Allgemeine Musiklehre.

Leipzig: Deutscher Verlag für Musik, Wiesbaden: Breitkopf & Härtel.

2.2 INTERNETQUELLEN Pandora Radio - Listen to Free Internet Radio, Find New Music: „The Music Genome Project“. URL: http://www.pandora.com/mgp.shtml [Stand: 8. März 2009] Sibelius: „Was ist neu“. URL: http://www.sibelius.com/products/sibelius/ [Stand: 1. Februar 2009] Klemm Music & Makemusic: „Notensatz und Notenschreibprogramme Finale“. URL: http://www.klemm-music.de/coda/ [Stand: 1. Februar 2009] MIDI Manufacturers Association: „General MIDI Level 1 Sound Set“. URL: http://www.midi.org/techspecs/gm1sound.php [Stand: 1. April 2009] MIDI Manufacturers Association Incorporated: „Tech Specs & Info“. URL: http://www.midi.org/techspecs/ [Stand: 1. Februar 2009] PHP Hypertext Preprocessor: „PHP: preg_match_all - Manual“. URL: http://de.php.net/manual/de/function.preg-match-all.php [Stand: 4. April 2009] PHP Hypertext Preprocessor: „PHP: SimpleXMLElement->xpath - Manual“. URL: http://de2.php.net/manual/de/function.simplexml-element-xpath.php [Stand: 11. Fe-bruar 2009] Recordare: Internet Music Publishing and Software: „MusicXML 1.0 Alphabetical Index“. URL: http://www.recordare.com/dtds/1.0/musicxml-index.html [Stand: 2. Februar 2009] Recordare: Internet Music Publishing and Software: „MusicXML 1.0 Note DTD Module“. URL: http://www.recordare.com/dtds/1.0/note.html [Stand: 1. Februar 2009] Wikipedia - Die freie Enzyklopädie: „XML Schema“. URL: http://de.wikipedia.org/wiki/XML_Schema [Stand: 10. Mai 2009]

 

144 

2.3 ABBILDUNGEN Arnold, D. (2006): Solange, in: Casino Royale. Milwaukee: Hal Leonard. United Lion Music, Inc. and

Colpix Music Inc., Sony Music Publishing LLC. Scarlatti, A. (1986): Exsultate Deo, in: Unser Kirchenchor Buch. Wien, München: Verlag L. Doblin-

ger. Sting (1994): When we dance, in: The best of Sting - Fields of gold. Milwaukee: Hal Leonard. Mag-

netic Publishing Ltd., EMI Blackwood Music Inc. Alle weiteren Abbildungen, Formeln, Quelltexte und Tabellen sind selbsterstellt.