MusicXML
MusicXML – znacznikowy format prezentacji graficznej notacji muzycznej oparty na wzorcach dokumentowych DTD (ang. Document Type Definition). Został zaprojektowany dla reprezentacji muzyki nutowej, szczególnie odpowiedniej dla zachodniej notacji muzycznej mającej początki w XVII wieku[1].
Jest wymienny, łatwy w analizie, wyszukiwanie informacji w nim jest proste – bazuje na powszechnie stosowanym formacie XML – jasny w zrozumieniu i łatwy w konstrukcji. Dzięki temu użytkownik ma łatwość w manipulacji i organizacji danych.
MusicXML został oparty na dwóch akademickich, badawczych formatach muzycznych:
- MuseData, opracowany przez Waltera Hewletta w Center for Computer Assisted Research in the Humanities (CCARH), znajdującym się na Uniwersytecie Stanforda;
- Humdrum, opracowany przez Davida Hurona, rezydującym na Ohio State University.
MusicXML to głównie przeróbka MuseData do postaci XML z dodaniem kilku kluczowych koncepcji z HumDrum[2].
Ponieważ oba formaty były używane głównie do pracy z muzyką poważną i folkową, MusicXML postawił za cel wyjść poza tę granicę i objąć także nowoczesną muzykę popularną.
Spis treści |
Struktura MusicXML a XML [edytuj]
XML został zaprojektowany, aby rozwiązać typowe problemy, z którymi spotykali się programiści, m.in. twórcy oprogramowania muzycznego – problem zgodności, wymiany i jednolitości formatu.
Ponieważ XML jest formatem hierarchicznym, nie można w nim bezpośrednio opisać muzyki. W zamian stworzono dwa wysokopoziomowe formaty dokumentowe:
- partwise.dtd – reprezentuje nuty wg partii/instrumentu
- timewise.dtd – reprezentuje nuty wg ścieżki czasowej/miary.
Nuty w zapisie DTD partwise i timewise reprezentują kolejne pojedyncze ruchy (zagrania) w muzyce przez poszczególne instrumenty. Wielokrotne ruchy również są możliwe i zostały opisane w innym pliku DTD (opus.dtd, opus – dzieło muzyczne), występują w nim odwołania do plików z opisem pojedynczych instrumentów[3].
Przykład pliku XML z wewnętrzną deklaracja DTD dla obiektu "note" (nuta).
<?XML version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (pitch, duration, voice, type, stem, lyric)
<!ELEMENT pitch (#PCDATA)>
<!ELEMENT duration (#PCDATA)>
<!ELEMENT voice (#PCDATA)>
<!ELEMENT type (#PCDATA)>
<!ELEMENT stem (#PCDATA)>
<!ELEMENT lyric (#PCDATA)>
]>
<note>
<pitch> …</pitch>
<duration>2</duration>
<voice>1</voice>
<type>quarter</type>
<stem>up</stem>
<lyric number="1">…</lyric>
</note>
Przykładowa informacja muzyczna w pliku xml [edytuj]
MusicXML jest formatem opisowym, dlatego z poprawnie zdefiniowanego pliku możemy uzyskać znacznie bogatszy zbiór informacji niż z pliku MIDI.
Przykładowo informacja o ścieżkach muzycznych utworu zawiera ich nazwę, użyty instrument, definicję programu i kanału MIDI, zaś poszczególna ścieżka posiada takie atrybuty jak tempo, rozmiar, tonację, metrum, klucz itp. Zagłębiając się coraz bardziej w strukturze hierarchicznej, możemy osiągnąć opis liryczny, towarzyszący poszczególnej nucie utworu[2][4].
<measure number=”1” > <atrributes>…atrybuty miary…</atrributes> <note> <pitch> <step>C</step> <octave>4</octave> </pitch> <duration>96</duration> <type>whole</type> </note> </measure>
Przypisy
- ↑ STUART CUNNINGHAM, Suitability of MusicXML as a format for computer music notation and interchange, CAIR University of Wales.
- ↑ 2,0 2,1 STUART CUNNINGHAM, Music File Formats and Project XEMO; MSc Multimedia Communications, University of Paisley, 2002/2003.
- ↑ MICHAEL GOOD, MusicXML: An Internet-Friendly Format for Sheet Music, Recordare LLC.
- ↑ HUGO SANTANA, MÁRCIO DAHIA, ERNESTO LIMA, GEBER RAMALHO, VExPat: An Analysis Tool for the Discovery of Musical Patterns, Centro de Informática – Universidade Federal de Pernambuco.