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 Allegro、Finale PrintMusic、Finale SongWriter和Finale NotePad;Recordare公司的 Dolet 4 for Finale ;Guitar 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>
如果用五线谱表示它就是这样的: 