pobierz plik referatu - BDAS

Transkrypt

pobierz plik referatu - BDAS
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
Rozdział 20
w
Zastosowanie MusicXML do wymiany danych oraz
wizualizacji partytur
w
1 Wstęp
da
.b
w
Streszczenie. W rozdziale przedstawiono krótki opis standardu MusicXML.
Pokazano możliwość jego zastosowania do wymiany danych pomiędzy bazą
danych cyfrowych dokumentów muzycznych, a innymi aplikacjami czy bibliotekami. Zwrócono uwagę na problem wizualizacji wydobytych z bazy danych partytur cyfrowych w formacie MusicXML. Wskazano możliwość wykorzystania XML-owego standardu grafiki wektorowej SVG do wizualizacji
partytur w środowisku internetu. Przedstawiono również praktyczne wykorzystanie przedstawionych koncepcji wykorzystania MusicXML w stworzonej cyfrowej bibliotece dokumentów muzycznych Moniuszko.
pl
s.
Biblioteki cyfrowe dokumentów muzycznych przechowują dorobek kulturowy wielu pokoleń. Tworzenie ich, wymiana danych z istniejącymi bibliotekami, wydobywanie informacji
nie jest prostym zadaniem i napotyka na wiele specyficznych problemów [1]. W dokumentach muzycznych, przechowywanych w bibliotece cyfrowej realizowanego projektu
Moniuszko, zawarte są różnorodne postacie muzyki oraz jej opisy [5]. Pojedynczy utwór
opisywany jest poprzez swój opis bibliograficzny (tekst), zeskanowane partytury (obraz),
nagrania utworu, czyli różnorodne jego interpretacje (nagranie dźwiękowe), partyturę cyfrową, pliki wideo z nagranymi koncertami – a więc różnorodne dane multimedialne. Dzięki
temu w bazie danych jest przechowywany i udostępniany użytkownikowi pełen obraz danego utworu muzycznego, różnorodne formy jego prezentacji. Jednym z istotnych elementów
prezentacji danych muzycznych jest cyfrowy obraz jej partytury. Stanowi on istotny element przechowywania danych muzycznych. Dzięki cyfrowej partyturze muzycznej możliwa jest interaktywna praca z dokumentami muzycznymi. Odtwarzanie brzmienia dokumentu muzycznego bezpośrednio z elektronicznej reprezentacji partytury pozwala na zapoznanie się z utworem w dowolnej aranżacji instrumentalnej. Wykorzystanie cyfrowej partytury
umożliwia wizualizowanie zapisu nutowego w postaci wektorowej. Charakterystyczna jest
tu wysoka jakość obrazu, możliwość skalowania, wykonywania przekształceń obrazu.
Można również przeprowadzać analizę semantyczną przechowywanych utworów co pozwala wyszukać podobieństwa między utworami, czy wykryć plagiaty.
Widać, że z punktu widzenia baz danych muzycznych przechowywanie i wymiana danych o partyturze cyfrowej jest bardzo istotna. W dalszej części rozdziału omówiono wykoWioleta Szwoch
Politechnika Gdańska, WETI, ul. Narutowicza 11/12, 80-952 Gdańsk, Polska
email:[email protected]
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
W. Szwoch
rzystywany w bibliotece Moniuszko format MusicXML, pokazano jego zalety jako formatu
do wymiany danych oraz przedstawiono problem wizualizacji partytury przy użyciu SVG.
2 Format MusicXML
w
Istnieje wiele formatów do przechowywania partytury w postaci cyfrowej [2], jednak
MusicXML staje się de facto obowiązującym standardem. Bazuje on na powszechnie stosowanym języku znacznikowym – XML (Extensible Markup Language). Dzięki wykorzystaniu technologii XML, format ten jest intuicyjny dla człowieka, łatwy w analizie i konstrukcji. Proste jest w nim wyszukiwanie informacji. Gramatyka MusicXML jest zapisana w plikach DTD (Document Type Definition). Pozwala to na prostą walidację poprawności zapisu
plików w tym formacie, a co za tym idzie na walidację poprawności zapisu partytury [6].
Nie można również zapominać o możliwości rozszerzania standardu, w przypadku konieczności uzupełnienia go o brakujące znaczniki.
MusicXML został stworzony jako translator tradycyjnej powszechnej notacji muzycznej
CWMN (Common Western Musical Notation). Jego składnia zapewnia możliwość przechowywania opisu tej notacji muzycznej. Nazewnictwo znaczników oraz ich atrybutów zostało
zaczerpnięte z terminologii muzycznej. Dzięki temu język ten jest czytelny i zrozumiały dla
muzyków, oraz programistów znających podstawy teorii muzyki. Umożliwiono zapisanie
notacji muzycznej zarówno dla pojedynczej partii instrumentalnej czy wokalnej, jak również dla wielu partii. Partie mogą być grupowane, do zapisu nutowego mogą być dołączone
słowa.
Dużą uwagę poświęcono w MusicXML wsparciu dla formatu MIDI. Istnieje cała grupa
znaczników przechowująca informacje potrzebne do generowania plików w tym formacie.
Pozwala to np.: na stworzenie apletu na stronie WWW potrafiącego odgrywać muzykę zapisaną w pliku MusicXML, bądź też łatwiejsze tworzenie syntezatorów i implementowanie
w nich wsparcia dla MusicXML’a.
Ponieważ pliki MusicXML są jednocześnie plikami XML, wszelkie informacje w nim
zawarte są w postaci tekstowej. Umożliwia to stosunkowo proste wyszukiwanie informacji.
Jest to kolejny atut przemawiający za stosowaniem tego formatu nie tylko do wymiany danych muzycznych, ale także do składowania i archiwizowania. Oprócz opisu samej muzyki,
MusicXML może również przechowywać metadane utworu i dokumentu. Mogą to być takie informacje jak: kompozytor, autor słów, tytuł utworu, tytuł albumu, lub większego dzieła, z którego pochodzi utwór czy też właściciel praw autorskich. Informacje o dokumencie
to między innymi nazwa programu, za pomocą którego został stworzony dokument, czy też
data jego powstania.
Za pomocą MusicXML’a można również tworzyć pełne zbiory powiązanych ze sobą
partytur. Dokument nie zawiera wtedy opisu notacji muzycznej, a jedynie odnośniki do innych dokumentów MusicXML zawierających opisy partytur. W ten sposób można tworzyć
kolekcje partytur, które składają się na pewną większą całość, np. albumy lub symfonie,
oraz zagnieżdżając je w sobie - bardziej złożone kolekcje.
MusicXML pozwala opisywać poszczególne partie instrumentalne i wokalne. Partie te
są zazwyczaj notowane na pojedynczych pięcioliniach. Istnieją jednak instrumenty, dla których wymagana jest większa liczba pięciolinii. Zostało to również przedstawione w MusicXML.
MusicXML jest ciągle rozwijany i jego możliwości cały czas się powiększają. Poniżej
przedstawiono fragment pliku zawierającego opis partytury cyfrowej w standardzie
MusicXML.
da
.b
w
w
pl
s.
252
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
Zastosowanie MusicXML do wymiany danych oraz wizualizacji partytur
w
da
.b
w
w
<?xml version="1.0" standalone="no"?>
<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0
Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise>
<movement-title>Saltarello</movement-title>
<part-list>
<score-part id="P1"><part-name> MXML Part</part-name></score-part>
</part-list>
<part id="P1">
<measure number="1">
<attributes>
<divisions>4</divisions>
<key><fifths>0</fifths><mode>major</mode></key>
<time><beats>6</beats><beat-type>8</beat-type></time>
<clef><sign>C</sign><line>3</line></clef>
</attributes>
<note>
<pitch><step>C</step><octave>4</octave></pitch>
<duration>2</duration> <voice>1</voice>
<type>eighth</type> <stem>up</stem>
<beam number="1">begin</beam>
</note>
………
</measure>
<measure number="2">
<note>
………
</measure>
………
</part>
</score-partwise>
3 Wykorzystanie MusicXML do wymiany danych muzycznych
pl
s.
Celem, jaki przyświecał twórcom tego formatu, było stworzenie przyjaznego Internetowi
formatu służącego do wymiany danych muzycznych pomiędzy programami muzycznymi
różnego typu oraz publikacji partytur muzycznych w Internecie. Muzyczna informacja zawarta w MusicXML została tak zaprojektowana, by była jak najbardziej użyteczna dla różnorodnych programów związanych z muzyką: począwszy od programów służących do zapisu notacji muzycznej, poprzez programy do analizy i wyszukiwania danych muzycznych
po programy odgrywające muzykę [6].
Po swoim pojawieniu się, MusicXML zyskał ogromną popularność wśród twórców
programów muzycznych. Obecnie istnieje około 85 aplikacji wspierających lub prowadzących prace nad zapewnieniem wsparcia dla MusicXML. Przedstawione w poprzednim podrozdziale właściwości MusicXML pokazują, że ma on olbrzymi potencjał w zakresie wymiany danych muzycznych pomiędzy bazami. Jest plikiem tekstowym, prostym i czytelnym dla człowieka, nazwy znaczników odzwierciedlają pojęcia zaczerpnięte z zapisu nutowego, pozwala na praktycznie pełne zaprezentowanie cyfrowej partytury muzycznej. Ponieważ jest to format XML pozwala wykorzystać różnorodne transformacje XSLT. Okazało się, że wymiana danych pomiędzy bazami przechowującymi partytury muzyczne czy
między aplikacjami jest najprostsza z zastosowaniem MusicXML.
253
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
W. Szwoch
3.1 Import i eksport danych MusicXML
w
W projekcie Moniuszko dane zawierające partytury cyfrowe są przechowywane z użyciem
standardu MusicXML. Aby umożliwić wprowadzanie danych do bazy oraz korzystanie
z cyfrowych partytur zawartych w bazie, stworzona została możliwość eksportu i importu
danych w formacie MusicXML. Do tworzenia cyfrowych partytur muzycznych w projekcie
zastosowano podejście wykorzystujące program do rozpoznawania drukowanej notacji muzycznej OMR [3].
Na rys. 1 przedstawiono elementy formatu MusicXML obsługiwane przez procedurę
eksportu (węzły oraz liście zaznaczone grubą szarą obwódką).
da
.b
w
w
pl
s.
Rys. 1. Elementy formatu MusicXML obsługiwane przez procedurę eksportu
254
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
Zastosowanie MusicXML do wymiany danych oraz wizualizacji partytur
4 Wizualizacja danych zapisanych w formacie MusicXML
w
Wydobyte z bazy danych w formacie MusicXML partytury muszą zostać przedstawione
użytkownikowi w czytelnej dla niego formie. Ponieważ ludzie czytają partytury używając
współczesnej notacji muzycznej CWMN (Common Western Musical Notation), istnieje potrzeba przekształcenia pliku MusicXML na graficzny obraz partytury. Umożliwi to zaprezentowanie użytkownikowi wydobytej z bazy informacji.
Generalnie istnieją dwa różne podejścia do zagadnienia prezentacji graficznej partytur
w Internecie. Pierwszym z nich jest prezentowanie oryginalnych partytur drukowanych (zeskanowanych lub sfotografowanych) i umieszczaniu ich obrazów na stronach WWW. Należy jednak pamiętać, że zeskanowane obrazy nigdy nie będą idealne. Często będą wymagały
dodatkowych korekt w programach graficznych, a nawet ponownego skanowania, jeśli zostanie wykryty poważniejszy błąd. Jest to więc proces czasochłonny i nie gwarantuje najwyższej jakości obrazu partytury. W projekcie Moniuszko istnieje możliwość wyświetlenia
partytury przy przeglądaniu danych muzycznych związanych z wybranym utworem. Jeśli
istnieje bitmapa oryginalnej partytury, użytkownik może ją obejrzeć.
Drugą metodą jest wykorzystanie cyfrowych partytur do wygenerowania obrazu. Obraz
tak wygenerowanej partytury jest dużo wyższej jakości niż bitmapa i zapewnia np. możliwość skalowania bez utraty jakości. Dodatkowym atutem jest także możliwość odegrania
takiej partytury.
Do publikacji obrazów partytur w Internecie można wykorzystać jeden z istniejących
popularnych formatów graficznych. Najczęściej spotykanymi formatami na stronach
WWW są JPEG, PNG oraz GIF. Możliwe jest wykorzystanie formatu PDF czy DjVu.
Obrazy partytur mogą być również publikowane jako grafika wektorowa w technologii
Flash lub SVG. Istnieją wtyczki do komercyjnych programów (np. Sibelius Scorch) pozwalające prezentować, odtwarzać i drukować partytury. Wadą są często wysokie koszty środowisk komercyjnych, dlatego coraz częściej do wizualizacji partytur wykorzystywane są otwarte formaty np. SVG. Wykorzystywanie SVG do wizualizacji partytur jest na etapie rozwoju i prezentowane jest głównie przez środowiska akademickie [8].
da
.b
w
w
4.1 Standard SVG
pl
s.
SVG (Scalable Vector Graphics) jest językiem opisującym dwuwymiarową grafikę za pomocą XML [7]. Dzięki wykorzystaniu SVG możemy prezentować grafikę wektorową.
SVG składa się z dwóch części: formatu pliku opartego na XML oraz API dla aplikacji graficznych. Składnia SVG pozwala na wykorzystanie trzech typów obiektów graficznych:
kształtów opisanych wektorowo, obrazów rastrowych i tekstu. Obiekty te mogą być grupowane, modelowane i transformowane. Oprócz linii i standardowych kształtów, jak prostokąty, elipsy, wielokąty, w SVG można również opisać efekty specjalne, takie jak: filtry,
maski przezroczystości, wypełnienia gradientowe. Rysunki SVG mogą być również interaktywne i dynamiczne. Obiektowy model dokumentu (Document Object Model - DOM) dla
SVG pozwala na bezpośrednie i efektywne generowanie animacji poprzez języki skryptowe
zgodne ze specyfikacją ECMAScript. Zawiera on w sobie również pełny obiektowy model
dokumentu XML. Różnorodne zdarzenia mogą zostać przypisane do jakiegokolwiek graficznego obiektu SVG [7].
SVG jest wykorzystywane w wielu dziedzinach, począwszy od prezentacji grafiki na
stronach WWW, poprzez animacje, interfejsy użytkownika, wymianę wektorowych plików
graficznych pomiędzy aplikacjami, po mobilne aplikacje i wysokiej jakości projektowanie.
Z uwagi na otwartość standardu jest on coraz częściej i chętniej stosowany.
255
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
W. Szwoch
W tabeli 1 przedstawiono zwizualizowane wybrane kształty i odpowiadające im fragmenty kodu SVG.
Tabela 1. Wizualizacja wybranych kształtów oraz odpowiadające im fragmenty kodu SVG
kształt
kod w SVG
w
<line x1="900" y1="300" x2="1100" y2="100" strokewidth="25" />
<polygon fill="red" stroke="black" stroke-width="10"
points="850,75 958,137.5 958,262.5
850,325 742,262.6 742,137.5" />
w
w
<ellipse transform=" rotate(-30)" rx="250" ry="100"
fill="none" stroke="blue" stroke-width="20" />
da
.b
Ponieważ, jak wspomniano, pojawił się problem wizualizacji partytur pobranych z bazy
w standardzie MusicXML. Z uwagi na brak oprogramowania pozwalającego realizować to
zadanie, zwrócono uwagę na zalety formatu SVG. Postanowiono wykorzystać go do publikacji partytur cyfrowych w formacie wektorowym. Stworzony został moduł umożliwiający
przekształcenie pliku w standardzie MusicXML na plik SVG umożliwiający wyświetlenie
partytur cyfrowych [4]. Moduł o nazwie mts został stworzony w języku Java z wykorzystaniem środowiska programistycznego NetBeans 5.0. Całość projektu została stworzona przy
wykorzystaniu JDK w wersji 1.5.0. Poniżej pokazano fragment kodu SVG uzyskanego
z przekształcenia pliku MusicXML.
pl
s.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="861" height="729" xmlns="http://www.w3.org/2000/svg">
<g>
<g> <desc>measure 1</desc>
<g><desc>staff</desc>
<line x1="37" y1="94" x2="279" y2="94" style="stroke:
black;"/>
……….
</g>
<g><path d="M 41,94 l 5.46E+00,0 l -4.33E-02,30.9459638 l 5.41E+00,0.030508" style="fill: black;"/>
<path d="M 49.100175,94 l 5.17E-03,30.9459638 l 1.91E+00,0.000621 l 0.00E+00,-15.452651 c 2.42E+00,-…….. 1.91E+00,-0.0006234 l
-2.39E-02,0.0235353 l -1.32E-02,0 z " style="fill: black;"/>
<text x="88" y="109" style="font-size: 18; font-family: Arial;
font-weight: bold; text-anchor: middle;">6</text>
……….
<ellipse cx="111" cy="109" rx="4" ry="3"
transform="rotate(315,111, 109)" style="fill: black;"/>
<ellipse cx="141" cy="113" rx="4" ry="3"
transform="rotate(315,141, 113)" style="fill: black;"/>
……….
</g>
</svg>
256
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
Zastosowanie MusicXML do wymiany danych oraz wizualizacji partytur
Na rys. 2 widoczny jest efekt wyświetlenia w przeglądarce pliku SVG uzyskanego
z przekształcenia pliku MusicXML, zawierającego fragment partytury.
w
w
Rys. 2. Efekt wyświetlenia pliku SVG przekształconego z MusicXML, zawierającego
fragment partytury
4.2 Zalety i problemy wizualizacji z wykorzystaniem SVG
w
pl
s.
5 Zakończenie
da
.b
Podczas prac nad wizualizacją partytur z użyciem SVG, okazało się, że nie jest to zadanie
trywialne. Złożona jest zarówno sama notacja muzyczna jak i struktura MusicXML,
a w związku z tym prawidłowe rozmieszczenie elementów notacji na partyturze nastręcza
trudności. Z wieloma problemami udało się jednak już uporać.
Grafika wektorowa uzyskiwana przy użyciu SVG jest skalowalna, zapewnia lepszą jakość niż skanowane bitmapy. Mniejsza jest objętość plików, przeglądanie partytur może
odbywać się on-line w czasie rzeczywistym.
Możliwość zawarcia kodu opisującego grafikę wektorową z użyciem SVG w innych plikach XML, pozwala skorzystać z dodatkowych udogodnień, np. wykorzystanie w dokumencie standardu XSL FO (XSL Formating Objects) daje możliwość stworzenia wysokiej
jakości wydruków.
W dalszej perspektywie przewidywane jest poszerzenie funkcjonalności o tworzenie animacji odgrywania partytury.
W rozdziale przedstawiono MusicXML. Przedstawione zalety formatu pozwalają używać
go do przechowywania i wymiany danych. Skorzystano z niego w realizowanym projekcie
Moniuszko - cyfrowej bibliotece dokumentów muzycznych. MusicXML okazał się dobrym
formatem do przechowywania partytury muzycznej i wymiany danych. Wymianę danych
ułatwia stworzona opcja pozwalająca na eksport i import danych z biblioteki cyfrowej dokumentów muzycznych Moniuszko. Problemem okazało się przedstawienie wybranych
z bazy w formacie MusicXML partytur cyfrowych. Zaprezentowano więc sposób wizualizacji tych partytur w środowisku Internetu z wykorzystaniem standardu SVG.
Podsumowując, format MusicXML dobrze sprawdza się w bibliotece Moniuszko zarówno jako format przechowywania cyfrowych partytur muzycznych, oraz wymiany danych.
Używany jest we wspomnianej bibliotece jako format wejściowy bazy. Wykorzystanie
działania komponentu odpowiedzialnego za wizualizację partytur w środowisku Internetu,
umożliwia zaprezentowanie użytkownikom zawartych w bazie utworów w obowiązującej
powszechnie notacji muzycznej w postaci wysokiej jakości grafiki wektorowej. Wykorzystanie do tego celu SVG pozwoliło na uzyskanie dobrej jakości wizualizacji partytur. Ponie257
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008
W. Szwoch
waż są one wizualizowane jako grafika wektorowa, zajmują mało miejsca oraz pozwalają
na różnorodne operacje na partyturze (translacje, powiększenia itp.) bez utraty jej jakości.
Poszerzenie funkcjonalności komponentu pozwoli na wykorzystanie animacji do wizualizowania odgrywania partytury.
Literatura
w
1.
2.
3.
4.
5.
da
.b
6.
7.
8.
w
w
Szwoch M.: Cyfrowa biblioteka dokumentów muzycznych, Zeszyty naukowe WETI PG,
Konferencja Technologie Informacyjne, Gdańsk 2006.
Szwoch M., Szwoch W.: Formaty zapisu cyfrowych dokumentów muzycznych, Zeszyty
naukowe WETI PG, Konferencja Technologie Informacyjne, Gdańsk 2005.
Szwoch M.: Guido: a musical score recognition system. The International Conference on
Document Analysis and Recognition ICDAR, Brasil, IEEE Computer Society, 2007.
Szwoch M.: Wizualizacja partytur w środowisku Internetu. Zeszyty naukowe WETI PG,
Konferencja Technologie Informacyjne, Gdańsk, 2007.
Szwoch W.: Wykorzystanie XML do reprezentacji cyfrowych dokumentów muzycznych. Praca
zbiorowa pod redakcją S. Kozielskiego: Bazy danych: nowe technologie. Wydawnictwa
Komunikacji i Łączności, Warszawa, 2007.
Standard MusicXML: http://www.musicxml.org/xml.html
Standard SVG: W3C Recommendation http://www.w3.org/TR/2003/REC-SVG11-20030114/
Bays G., Zhu Y.: ScoreSVG A Web-Based Music Editor for Creating Scores in SVG,
Proceedings SVGOpen2005 Conference, Entschede, Netherlands, 2005.
pl
s.
258
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008