meico allows to render MEI files into audio, using high-quality MIDI libraries, and considering tempo indications, repetitions and other features

Axel Berndt (author), Benjamin W. Bohl (MEI consultant) Center of Music and Film Informatics, Detmold, Germany

Meico is a Java-based converter framework for MEI files. It parses MEI files into an intermediate format, called MSM (Musical Sequence Markup), and MIDI. There are several possibilities to use meico:

  • It implements a graphical user interface where users can drag & drop their MEI, MSM and MIDI files and work with them, listen to the music they just edited (very useful for “proof-reading”) and apply further built-in tools. Simply double-click the Jar file to start meico in window mode.
  • The command line mode is most useful for batch processing of whole MEI file collections and for integration into online services.

Meico is a Java library that can be imported and applied to other programming projects.  It implements additional useful tools such as validation against MEI schema, id generation for all note, rest, mRest, multiRest, chord, tuplet, mdiv, and reh elements, resolution of elements with a copyof attribute to automatically generate an extensive version of your MEI file, variable timing resolution (pulses per quarternote) of the MIDI rendering, an instruments dictionary that implements several string matching algorithms to map staff names to MIDI program change numbers, and if meico detects problems in the MEI encoding (e.g., ambiguity that cannot be resolved) it generates corresponding messages on the command line or in a log file that might provide useful hints for the editors. Meico doesn’t cover the full MEI specification. It is also focused on mei-CMN (common music notation). In addition, content that is related to expressive performance (tempo, dynamics, articulation, ornamentation) is currently ignored, but may be addressed by later project. The MEI file should not contain any variants (app, rdg, choice and the like). It is, of course, not meico’s purpose to guess which variants to choose when creating MIDI. A dedicated serialization tool (Sequence Editor) will be published separately. We have tested meico under Windows, Mac OS and Linux. The only prerequisite is that you have a Java 1.6 (or higher) Runtime Environment installed on your computer. We continuously develop meico. An up-to-date version can be downloaded on GitHub (find the runnable Jar file under “release”). There you can also find further documentation and license information. If new features would be helpful for your project, please send us a message and we will raise it on our to-do list. Also, visit our official project page at