Musicxml
From Arnout Engelen
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:
