Skip to content

MusicXML

MusicXML은 악보를 XML 형식으로 표기하는 오픈 포맷이다. Recordare 사에서 개발해 2004년 1월 버전 1.0이 발표된 후, 2005년 5월 버전 1.1이, 2007년 6월 버전 2.0이 발표되었다. 확장자는 .xmz이었으나 W3C개발로 .mxl (또는 .musicxml)로 바뀌었다.

많은 프로그램이 이 포맷을 지원하고 있고, 변환 플러그인이 다수 개발되었기 때문에 현재 존재하는 대부분의 음악 프로그램에서 입출력이 가능하다.

Categories

Music notation

Simple Type

Elements

자세한 내용은 MusicXML:Element 항목 참조.

Complex Type

Samples

Scripts

파일 포맷

.mxl
압축된 MusicXML 파일.
.musicxml
비압축파일 확장자로 사용하고 있다.

Terms

Music#Terms 항목 참조.

MXL Format

확장자 파일 포맷은 압축된 MusicXML에 된다. zip 파일 포맷이므로, 확장자를 .zip으로 바꾸면 압축이 풀린다.

이 파일은 JAR와 비슷한 포맷이다.

META-INF/container.xml 파일은 다음과 같다:

<?xml version="1.0" encoding="UTF-8">
<container>
  <rootfiles>
    <rootfile full-path="elite.xml"
              media-type="application/vnd.recordare.musicxml+xml"/>
    <rootfile full-path="elite.pdf"
              media-type="application/pdf"/>
  </rootfiles>
</container>

Libraries

The MusicXML Library (libmusicxml)
http://libmusicxml.sourceforge.net/
https://github.com/grame-cncm/libmusicxml
MusicXml.NET (Archived)
Quick C# parser for MusicXML
https://github.com/vdaron/MusicXml.Net
MusicXmlSchema (sightreader/musicxml-schemas)
https://github.com/sightreader/musicxml-schemas
MusicXML 2.0, 3.0, 3.1 XSD to C# autogenerated schemas with some documentation and pascal-cased names.
Dependency: XmlSchemaClassGenerator
Manufaktura Controls (Manufaktura.Controls, Manufaktura, ManufakturaLibraries)
Bitbucket - ManufakturaLibraries
http://musicengravingcontrols.com/en-US/Home/
https://www.codeproject.com/Articles/1252423/Music-Notation-in-NET
OpenSheetMusicDisplay
https://opensheetmusicdisplay.org/
Verovio
https://www.verovio.org/index.xhtml

Softwares

Example

다장조의 도 음을 표기한 경우는 아래와 같다.

  <?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>

See also

Favorite site

Documentation

Official Tutorials

References


  1. MusicXML_-tutorial-hello_world-_BGSMM.pdf 

  2. Music_Notation_Basic_Guide_-_The_Note_Music_Story.pdf