MusicXML

維基百科,自由的百科全書
跳到: 導覽搜尋

MusicXML(Music Extensible Markup Language 音樂擴展標記語言)是一個開放的基於XML音樂符號文件格式,由Reccordare 公司開發,該技術源於幾個現有的基於學術上的關鍵技術和想法,比如Walter Hewlett 的MuseData 和David Huron 的Humdrum,他被設計用來做為樂譜信息的交換格式,特別是在不同的樂譜顯示軟件的之間進行交換。MusicXML 將整體樂曲元素和屬性信息表示為一份XML 文檔,他克服了另外兩種格式----NIFF 格式(基於圖片)和SMDL 格式(過於龐大)的兼容性差,結構複雜等許多缺點,目前他已經被很多應用軟件的支持。

MusicXML的發展[編輯]

對於音樂的記載,在遠古時期,人類使用的是口頭方式,一首曲調,要靠世世代代的傳唱來傳承。後來人們認識到音樂的規律,對音樂有了進一步的了解後,慢慢發展出了音樂理論,並使用一些特殊的符號文字來記錄音樂。漸漸形成了現代的音樂體系和記錄方法。

進入計算機時代。音樂的製作和表現發生了很大的變化。在1981年,MIDI(Musical Instrument Digital Interface音樂設備數碼化接口)標準由工程師戴夫·史密斯在他的一篇論文中首次提出,而MIDI 規範 1.0 的發佈則在1983年 8月。MIDI在電子音樂的發展上由其特殊的地位。而且基於MIDI的各種應用也很成熟,但是我們所要求的要更多,由於在MIDI中,一些音樂結構信息,比如音樂中的小節(Measure)、重複(Repeat)、連奏(Slurs),以及其他一些對音樂的表現比較重要的信息,像C的升半音和D的降半音的區分 等都不能表現。而且對於同一首MIDI音樂使用各種應用程式播放的聲音可能是一樣的 ,但是還原出來的樂譜卻有很大差別。

在1994年2月,由多家音樂軟件提供商共同提出了NIFF(Notation Interchange File Format 音樂符號交換文件格式)。可以說是彌補MIDI的一些不足,他更能體現音樂的結構性,並能描述出音樂的各個元素在樂譜中的表現形式。但是由於NIFF是二進制格式,它結構複雜,不便應用,所以在2006年2月,也就是它的十二周歲時NIFF項目網站被關閉。一些以前對NIFF提供支持的音樂軟件提供商都放棄了NIFF,轉而對另外一種格式MusicXML提供支持。

MusicXML的1.0版 由Recordare 公司在2004年1月發佈。在2005年5月發佈1.1版,在2007年6月發佈了2.0版。MusicXML的最大優點是它基於成熟的XML技術,非常便於在網絡交換,閱讀方便,結構清晰,而且對於音樂信息的記錄非常全面,規範,MusicXML技術在出現後的這幾年,發展非常迅速,目前,MusicXML已經被超過100多種音樂應用程式所支持,比較知名的也有很多,如美國MakeMusic公司的Finale系列,包含Finale AllegroFinale PrintMusicFinale SongWriterFinale NotePad;Recordare公司的 Dolet 4 for FinaleGuitar Pro 等,其中MusicXML在開源社區也很活躍,很多技術愛好者都加入到MusicXML的開發中來,如著名的JFugue 就是一個基於Java API 和MIDI的開源項目。由此可見相比於其他格式,MusicXML的優勢不容置疑。

一個簡單的MusicXML例子[編輯]

下面是MusicXML官方站點提供的一個例子.他表示的是一小段五線譜, 根據各個節點的信息可知他是一個C大調,G譜號,4/4的拍子,包含一個全音符。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE score-partwise PUBLIC
    "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
    "http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="2.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>

如果用五線譜表示它就是這樣的:

連結[編輯]