Musik in XML

Werbung
Musik in XML
Ausarbeitung von Kristin Hübner
Inhalt
Seite
Titel
1
Allgemeines zu XML
2
Beweggründe für XML
3
Exkurs : Unicode
4
Code-Beispiel
5-9
Funktionsweise des Codes am Beispiel
I. Allgemeines
Da es sich bei «XML» um eine Abkürzung handelt, ist es zunächst wichtig, deren Bedeutung zu
kennen. «XML» steht für den enlgischen Begriff «Extensible Markup Language» (zu deutsch
«erweiterbare Auszeichnungssprache»), also eine Sprache zur Beschreibung eines
Dokumenteninhalts. XML wird vielseitig eingesetz, zum Besipiel zum Austausch und Verbreiten
von digitaler Musik. Ziel hierbei ist vorallem die Nutzungsmöglichkeit in möglichst vielen
verschiedenen Programmen, damit bei Verwendung von mehreren Programmen keine
Komplikationen auftreten. Ähnlich wurde dieses Problem bei Tonaufnahmen mit dem MP3-Format
gelöst.
Die erste Spezifikation bezüglich XML wurde 1998 vom Wolrd Wide Web Cosortium (auch W3C
genannt) herausgegeben. Aktuell liegt die fünfte Ausgabe, welche 2008 erschien, vor.
Damit XML auch weltweit genutzt werden kann, ist XML im Unicode [s. Seite 3] verfasst.
Inspiriert wurde XML zum einen vom Muse-Data-Format und zum anderen von dessen
Weiterentwicklung, dem Humdrum-Format.
II. Beweggründe
Es stellt sich die Frage, wieso man sich trotz bereits vorhandenen Formaten wie MIDI, NIFF
(Notation Interchange File Format) oder SMDL(Standard Music Description Language) noch ein
weiteres Format wünschte. Ein Grund war zum Beispiel die Tatsache, dass keines der bereits
existierenden Formate von einer Vielzahl von Programmen verarbeitet werden kann. Somit konnten
die Vorteile einzelner Programme nicht ohne größeren Aufwand in Kombination genutzt werden.
Dies soll sich durch XML ändern. Zudem weist jedes vorherige Format individuelle Fehler
beziehungsweise Nachteile auf. So ist MIDI zum Beispiel sehr gut für das praktische Bearbeiten
von Musik nutzbar, aber es tauchen vermehrt Probleme auf, wenn es um die Notation von Musik
geht. Da Notation und Bearbeitung aber Hand in Hand gehen, sollte das neue Format beide Aspekte
zufriedenstellend darbieten. Ähnliche Probleme wie bei MIDI traten auch bei NIFF auf, da Musik in
diesem Format ausschließlich graphisch dargestellt wurde. Somit war NIFF für seine
Hauptzielgruppe, also Scanner, gut geeignet war, aber nicht allgemein nutzbar.
Bei SMDL hingegen lag der Fehler an einer ganz anderen Stelle. Die Entwickler wollten, dass
SMDL noch möglichst lange Zeit nutzbar bleibt und versuchten daher, alle Möglichkeiten, die auch
in der Zukunft noch auftreten könnten, abzudecken, was das Format für den täglichen Gebrauch viel
zu kompliziert machte. Hinzu kamen noch zahlreiche Programmierfehler, welche die Verwendung
zusätzlich erschwerten.
Es wird also ersichtlich, dass keines der bis dato größten Musikformate die für XML angestrebten
Ziele erfüllte. Der Fokus bei der Musikverbreitung sollte mehr auf dem «was» liegen und nicht
mehr auf dem «wie».
III. Exkurs: Unicode
Der erste Versuch eines weltweit einheitlichen Zeichensatzes wurde 1988 von einem Mitarbeiter der
Xenox Corporation geschrieben. Heute gib es mit Unicode ein Zeichensatzsystem, dass alle
Schriftkulturen vereint. Obwohl es schon voll funkitonstüchtig ist, wird Unicode wie jede Sprache
stets im Wandel bleiben und sich immer weiterentwickeln. Damit ein Computer Unicode übersetzen
kann, muss das verwendete Programm natürlich Unicode-kompatibel sein, was bei den meisten
heutigen Programmen aber der Fall ist. Jedes Zeichen ist einzlenen Kategorien zugeordnert und
besitzt einen Zahlencode, der es im Unicode representiert. Auch Sonderzeichen wie erzwungene
Absätze oder Silbentrennung haben eine Codierung. Zudem gibt es auch Zahlenfolgen für
Teilzeichen, wie etwa die Doppelpunkte über den deutschen Umlauten. Diese Umlaute werden dann
als Kombination aus dem Ausgangsbuchstaben und dem Doppelpunkt angegeben. Zusätzlich zur
«Adresse» des Zeichens in der Übersetzungstabelle werden aber auch andere Eigenschaften wie
zum Beispiel die Schreibrichtung bei arabischen Zeichen angegeben. Die Erstellung eines solchen
Einheitscodes muss also zahlreiche sprachwissenschaftliche Probleme betrachten und bedenken. Zu
diesem Zweck wurde 19991 das Unicode-Konsortium aus Linguisten und anderen Fachleuten
gegründet. Diese legen unter anderem auch fest, welche Zeichen neu in die Codierungstabelle
aufgenommen werden. Die angegeben Zeichencodes sind verbindlich und seit der zweiten Auflage
auch mit der internationalen Norm ISO 10646 synchron, was besonders wichtig ist, da zum Beispiel
auch XML damit synchronisiert ist.
IV.Code-Vorlage
Der folgende Code beschreibt eines der einfachsten Beispiele der Musik, eine ganze Note C im 4/4
Takt :
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE score-partwise PUBLIC
"-//Recordare//DTD MusicXML 3.0 Partwise//EN"
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="3.0">
<part-list>
<score-part id="P1">
<part-name>Music</part-name>
</score-part>
</part-list>
<part id="P1">
<measure number="1">
<attributes>
<divisions>1</divisions>
<key>
<fifths>0</fifths>
</key>
<time>
<beats>4</beats>
<beat-type>4</beat-type>
</time>
<clef>
<sign>G</sign>
<line>2</line>
</clef>
</attributes>
<note>
<pitch>
<step>C</step>
<octave>4</octave>
</pitch>
<duration>4</duration>
<type>whole</type>
</note>
</measure>
</part>
</score-partwise>
V. Funktionsweise des Code-Beispiels
Im Folgenden wird das Code-Beispiel Zeile für Zeile erklärt.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
Diese Zeile des Codes wird für jedes XML-Dokument benötigt, egal, ob es sich um ein Musikstück
oder etwas anderes handelt. Zunächst wird die verwendete XML-Version angegeben. «UTF-8»
beschreibt die Unicode-Version die genutzt wird. «Standalone 'no'» bedeutet, dass das erstellte
Dokument in mehreren Ordnern verankert wird.
<!DOCTYPE score-partwise PUBLIC
"-//Recordare//DTD MusicXML 3.0 Partwise//EN"
"http://www.musicxml.org/dtds/partwise.dtd">
Mit diesen Zeilen wird festgelegt, dass XML zum Erstellen eines Musik-Dokuments benuttzt wird.
Außerdem wird das Stück in einzelne Parts unterteilt. Der URL ist eine Referenz, da DTDs nicht
zwangsweise installiert werden müssen, sondern auch über das Internet bezogen werden können.
<score-partwise version="3.0">
Bei XML wird zwischen «timewise» und «partwise» unterschieden. Wird partwise gearbeitet, dann
wird die Größe der Takte vorgegeben, bei timewise besteht ein Takt immer aus einer festgelegten
Anzahl von Noten.
<part-list>
<score-part id="P1">
<part-name>Music</part-name>
</score-part>
</part-list>
<part id="P1">
<measure number="1">
<attributes>
Diese Zeilen sind ein Standart-Header, welcher bei jeder Unterteilung benötigt wird.
<attributes> öffnet die Angabe einzelner Eigenschaften des Musikstücks.
<divisions>1</divisions>
Für jede Note gibt es ein Dauerelement, welches von der Maßeinheit in Bezug auf ViertelnotenDivision abhängig ist. In diesem Fall (4/4-Takt) ergibt es also 1.
<key>
<fifths>0</fifths>
</key>
Die <Key>-Angabe entspricht der Tonart im Quintenzirkel. In diesem Fall ist die Tonart C-Dur,
besitzt also keine Vorzeichen, was mit der 0 angegeben wird.
«Time» bezeichnet nocheinmal, ähnlich wie die «Divisions»-Angabe den Takt an (in diesem
Beispiel 4/4).
<clef>
<sign>G</sign>
<line>2</line>
</clef>
Die <clef>- Angaben beziehen sich auf den verwendeten Notenschlüssel, wobei G2 für die Linie
steht, an der der Notenschlüssel beginnt. G2 ist der Violinennotenschlüssel, der am häufigsten
verwendet wird.
Erst mit <note> beginnen die Angaben zur eigentlichen Note.
<pitch>
<step>C</step>
<octave>4</octave>
</pitch>
<pitch> eröffnet die Informationen zum Oktaven- und Schrittelement der Note. In diesem Beispiel
beginnt die vierte Oktave mit einem mittleren C, daraus folgt, dass dieses mittlere C dargestellt
wird.
<duration>4</duration>
Die <duration> gibt ganz ähnlich wie die <division> die Divisionen pro Viertelnote an ( im Beispiel
eine). Da das Stpck im 4/4 Takt geschrieben ist, wird also eine ganze Note erstellt.
<type>whole</type>
Unter <tpye> wird die zu erstellende Notenart nocheinmal direkt angegeben, was dem Leser des
Codes das Ermitteln des Notentyps erleichtern soll. In unserem Fall wird, wie bereits erwähnt, eine
ganze Note dargestelllt.
</note>
</measure>
</part>
</score-partwise>
Mit </note> beispielsweise werden die Angaben zur Note geschlossen. Allgemein schließen
Ausdrücke mit einem « / » bestimmte Abschnitte des Dokuments.
Auch Besonderheiten wie etwa Triolen können angegeben werden. Wie man Triolen in XML
darstellt, sieht man hier :
<time modification>
<actual-notes>3</actual-notes>
<normal-notes>2</normal-notes>
</time modification>
All diese Angaben sind zur Erstellung einer Klavierpartitur. Allerdings kann man mit XML auch
Musik-Dokumente für Gitarrenakkorde oder andere Musikdarstellungsmethoden schreiben.
Ein einfacher G6- Akkord sieht in XML wie folgt aus :
<harmony default-y= «100»>
<root>
<root-step>G</root-step>
</root>
<kind-halign= «center» text = «6» > majo-sixth
</kind>
<bass>
<bass-step>D</bass-step>
</bass>
</harmony>
Zusätzlich können auch Percussion-Parts sowohl hö- als auch sichtbar dargestelllt werden. Dies ist
besonders kompliziert, da bei derartigen Instrumenten keine wirklichen Töne angegeben werden
können. Deshalb werden statt wirklicher Noten solche wie die, die im hier eingefügten Bild zu
sehen sind, benutzt, um Einsätze zu markieren.
Insgesamt kann XML Musik also sehr vielseitig darstellen und bietet nahezu eine Vielzahl von
Möglichkeiten, ein Stück zu komponieren.
Quellenangaben
–
MusicXMLtutorial.pdf
–
http://de.selfhtml.org/inter/unicode.htm
–
http://de.selfhtml.org/xml/dtd/allgemeines.htm
Herunterladen