MusicXML是专为乐谱数据交换设计的开放XML标准,以结构化方式精确描述音符、调号、动态标记等逻辑元素,支持partwise/timewise两种结构,广泛兼容主流制谱软件与编程库。
MusicXML是一种专为乐谱数据交换而设计的通用、开放、基于XML的文件格式标准。如果您在不同乐谱软件之间传输五线谱、吉他谱等线谱内容时遇到格式错乱或信息丢失,很可能是由于缺乏统一的数据描述规范——MusicXML正是为此类问题提供结构化解决方案的标准格式。
一、核心定义与设计目标
MusicXML由Recordare公司主导开发,后被MakeMusic公司(Finale开发者)持续维护,其根本定位是作为跨平台、跨软件的乐谱信息交换媒介。它不追求渲染效果的最终呈现,而是以精确、可扩展的方式描述音符、休止符、拍号、调号、动态标记、歌词、声部结构等全部逻辑性音乐元素。
1、采用标准XML语法,所有乐谱信息均以嵌套标签形式组织,形成清晰的树状结构;
2、支持两种文档类型定义(DTD):partwise(按声部分割,适用于多声部总谱)和timewise(按时序排列,适用于单轨MIDI式表示);
3、文件扩展名可为.xml、.musicxml或压缩后的.mxl,后者使用ZIP封装以减小体积并内嵌字体与图像资源。
二、基本结构划分
MusicXML文档可类比HTML结构划分为“头部”与“主体”两大部分:头部承载元数据与全局参数,主体承载实际乐谱内容。这种分离确保了同一份文件在不同软件中打开时,基础显示一致性得以保障。
1、头部(根元素下紧随的、、等节)记录作品名称、作曲家、版权信息、声部列表及默认排版设置;
2、主体(每个及其内部的序列)按小节顺序组织音符()、休止符()、谱号()、调号()、拍号(
3、每个节点进一步细分为(含与)、(以四分音符为单位的整数值)、(如quarter、eighth)、(升号/降号)等子元素,实现音高与时值的无歧义表达。