musicxml

Dies ist eine alte Version des Dokuments!


MusicXML ist ein auf einer extensible markup language (dt. erweiterbare Auszeichnungssprache, kurz:XML) basierendes Dateiformat (Dateinamensendung .xml), welches explizit auf die Speicherung der musikalischen Notation ausgerichtet ist. Obwohl der userfreundlichste Weg, mit MusicXML zu interagieren, die Verwendung von einer Noteneditorsoftware (z.B. Musescore) ist, lässt auch mit Hilfe eines herkömmlichen Texteditor (z.B. den Texteditor von Windows oder Atom) aus einer MusicXML-Datei durchaus viele Informationen herauslesen.

Die Interne Struktur eines MusikXML-Files ist hierarchisch gebaut und wird durch Elements, Tags und Attribute definiert. Im folgenden Beispiel werden dies visuell hervorgehoben:

Die innerhalb der MusicXML verwendete Struktur ist weitgehend konform mit den üblichen Standards der Auszeichnungssprache und verwendet die MusicXML W3C XML schema. Eine ausführliche Übersicht dazu ist hier vorhanden. Das MEI-Format, das auch für digitale Noteneditionen verwendet wird, knüpft an das MusicXML-Format an und ist mit diesem kompatibel.

Angaben zu Werk und Komponist

Die Angaben zum Werk und Komponist werden in der Regel am Anfang einer MusicXML-Datei gespeichert und werden durch die Tags <work> sowie <creator> definiert.

Im folgenden Beispiel können wir sehen, welche Informationen in der MusicXML-Version des ersten Satzes der Missa „La sol fa re mi“ von Josquin Desprez (hier der Link dazu) enthalten sind:

Neben der innerhalb von <work> Tag enthaltenen Daten zur Bezeichnung des Werkes („Kyrie“) gibt es zusätzliche Information zum Werk, z.B. innerhalb von <movement-title> sowie als „parentTitle“-Attribut in <miscellaneous> Tags. Die auf Python basierte MusicXML-Parsingtools, wie z. B. music21, können diese Informationen für die Metadatensuche verwenden. So sieht die im Beispiel enthaltene Information nach dem Metadata-Parsing durch music21 folgendermaßen aus:

Somit definiert man durch die Verwendung von bestimmten Tags und Attributen in der MusicXML-Datei die ausgelesenen Informationen, was z.B. für den Aufbau eines Korpusses für eine Korpus-Studie entscheidend ist. Eine Übersicht der im Kontext der Metadatasuche durch music21 gelesene Tags und Attribute ist hier zu finden.

Angaben zu Stimmen und Instrumenten

In der Regel werden alle Informationen zu den in einer MusicXML-Datei enthaltenen Stimmen innerhalb des <part-list> Tags definiert. Dieser enthält nicht nur den Namen des Instruments (<part-name>), sondern auch Informationen, die lediglich zum Abspielen des Files innerhalb eines Noteneditors bereitgestellt wird (diverse Midi-Tags). In folgenden Beispiel sehen wir die komplette Beschreibung einer Stimme:

Angaben zu den Noten

Im Hauptteil der xml-Datei folgt dann gegliedert nach Stimmen (<part id>) und Taktnummern (<measure>) die Angaben zum Taktart, Notenschlüssel sowie den einzelnen Noten. Dabei ist es wichtig zu beachten, dass die viele der darin enthaltenen Daten hauptsächlich die layoutrelevanten Angaben enthalten und nur die ausgewählten Tags für die Speicherung der Information zur Tonhöhen und Dauern verwendet werden. Diese werden in der folgenden Übersicht hierarchisch dargestellt:

Neben der bereits erwähnten Unterteilung auf <part id> und <measure>, enthalten vor allem die Tags <attributes> sowie <note> alle relevanten Informationen zur Tonhöhe und Rhythmus der in dem MusicXML-File enthaltenen Notenmaterials. <attributes> enthält in der Regel alle Angaben zum Takt selbst, wie z.B. Schlüssel (<clef>), Taktangabe (<time> sowie <beats> und <beat-type>) und Vorzeichen (<key>). <divisions> enthält dabei die Information zur kleinstmöglichen rhythmischen Unterteilung des Taktes, und wird in Bruchteilen eines Viertels angegeben. Dieser Wert ist notwendig um die Dauern der jeweiligen Töne selbst bei komplexeren rhythmischen Gruppierungen exakt angeben zu können. Die exakte Formel zur Berechnung der Notenwerte in Vierteln heißt dann <duration>-Wert : <divisions>-Wert. Hier als Beispiel die erste Note aus dem bereits oben erwähnten Beispiel von Josquin:

80640 : 10080 = 8 oder 8 Viertel oder 2 Ganze. Das entspricht exakt der Brevis A in Takt 1 der ersten Stimme (Superius). Die Pitchangaben (<pitch>) werden durch Tags <step>, <alter> und <octave> definiert.

Da eine Notentext viele Takte und unzählige Noten enthalten kann, sind unkomprimierte xml-Dateien unter Umständen sehr umfangreich - bis zu einem Umfang von zig MegaByte!

  • musicxml.1636238919.txt.gz
  • Zuletzt geändert: 2021/11/06 22:48
  • von egor