Musicxml

From Arnout Engelen

Jump to: navigation, search

XML format for music, including notation metadata

Contents

[edit] Editing

noteedit is a score editor that can export to musicxml (and lilypond)

[edit] Definition

MusicXML is defined as a set of DTD's. A W3C XML Schema is also available.

[edit] musicxml binders

The existing libmusicxml C++ library for parsing and generating musicxml seems outdated and non-functional.

ProxyMusic provides a binding between Java objects in memory and an XML file using the MusicXML format: https://proxymusic.dev.java.net/

See XML for some generic info on XML data binders - I was disappointed by the available binders for C++, perhaps I should just use a DOM/SAX parser directly.

[edit] Conversions

[edit] Converting to/from Finale and Sibelius

Sibelius 4/5 can export MusicXML 1.1 using Dolet 3 (commercial, $130)

Sibelius 5 can import MusicXML and Finale (?).

Finale 2000-2008 can read and write MusicXML 2.0 using Dolet 3 (commercial, $150)

Finale 2008 can natively read and write MusicXML 1.1 files, and read MusicXML 2.0.

[edit] Converting to lilypond

xml2ly is an abandoned project that converted musicxml files to lilypond. It doesn't seem to support repeats. Musicxml2ly stable is not too different from xml2ly: it performs neatly, but misses features. The development release of musicxml2ly clearly has more bugs...

I had best results with importing the musicxml file into noteedit and from there exporting lilypond

[edit] pyScore musicxml2lilypond

Might be nice to use pyScore to build a MusicXML->Lilypond converter.

There has already been quite some work done: http://www.music.mcgill.ca/~sinclair

[edit] Bugs

[edit] Repeats

'1' and '2' repeats ('alternate endings') don't seem to be supported yet.

[edit] stemDown ( ... )

Sometimes generates something like "\stemDown ( f a )", should be "( \stemDown f a )" I guess.

I made an XSL sheet to remove stem directions from MusicXML since Lilypond probably does a better job anyway.

<?xml version="1.0" encoding="iso-8859-1"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:output encoding="iso-8859-1"/>

<xsl:template match="*">
  <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates/></xsl:copy>
</xsl:template>

<xsl:template match="stem"/>

</xsl:stylesheet>

[edit] misc

[edit] MIME-type

"application/vnd.recordare.musicxml" for the compressed format, "application/vnd.recordare.musicxml+xml" for the xml, see http://www.iana.org/assignments/media-types/application/

See also:

Personal tools