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