Skip to content
Switch branches/tags
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


MEI Lilypond Engraving Refinement


mei2ly.xsl transforms MEI to LilyPond and supports already many music elements from MEI and works for checking encoding errors. Basic layout features are implemented for global staff size and page layout.

Check the available options and the list of supported elements and attributes.

For now it uses XSLT 2.0. A possible goal for a later branch is to have an pure XSLT 1.0 version to put on a website, where you can generate a lilypond engraved rendering of a MEI edition on the fly.

And of course you'll need LilyPond for engraving your output. For custom headers and footers you should check and edit ly/


Along comes silly.xsl which Strips Individual Layout for LilyPond. It basically removes layout instructions from your MEI (e.g. stem directions) so LilyPond can do it's job. Using this will give you a fine clean LilyPond code with mei2ly.xsl.


If you want to prevent a MIDI output by LilyPond (which gets triggered by the presence of MIDI attributes) use remidial.xsl to REmove MIDI Attributes for Lilypond. It is called ReMIDIAL because it performs a remedial action. (Yes, it's a bad pun.)

Example ouput

for Debussy_Golliwogg'sCakewalk.mei: Example page

(See more tests here.)


Have a look at our Poster: MEILER – create beautifully engraved notation for print from MEI DOI