Late last year, a first version of a Sibelius-to-MEI plug-in was released for exporting Sibelius files to the MEI format. Founded by Perry Roland of the University of Virginia, the Music Encoding Initiative (MEI) is a community-driven effort to create a commonly-accepted, digital, symbolic representation of music notation documents.
According to the MEI web site:
We strive to establish the design principles and the technological and representational requirements that will enable the discipline of musicology to take full advantage of digital technologies. We are working to provide guidelines and tools that can be widely used by libraries, museums, and individual scholars to encode musical scores for research, teaching, and preservation activities.
The MEI schema is a set of rules for recording the intellectual and physical characteristics of music notation documents so that the information contained in them may be searched, retrieved, displayed, and exchanged in a predictable and platform-independent manner. Because of its emphasis on comprehensibility and software independence, the data format defined by the schema may also serve an archival function.
Q. In general terms, what is MEI?
A. MEI is the “Music Encoding Initiative.” It’s an international community of people (scholars, librarians, music technologists, editors) who are trying to develop a comprehensive system for encoding, describing, and “marking up” music notation in a variety of ways.
We’re an open source project (our source code and bug tracker is available here) and we’re also an open community, encouraging anyone to get involved and participate in our discussions. The development of the spec is handled by the (largely volunteer) MEI Technical Team, and the community is led by an advisory council. The development of MEI is jointly run out of the University of Virginia and the Musikwissenschaftliches Seminar in Detmold, Germany.
Q. Who is it designed for?
A. MEI is designed for people who don’t just want to encode notation, but to encode information about their notation. For example, if a given passage varies between two manuscripts of the same piece, MEI can encode this variation as two readings of the source which can then be presented to the user as options for interpretation. If an editor notices that a passage has been corrected, or if a certain staff has been copied by a different person, she can mark this as well.
For my own work, I am using it to experiment with building non-visual notation software. For example, we are using MEI as the core format for searching music notation. Imagine that you are able to go to a Google Books-like interface and search for music notation. Using Optical Music Recognition, we’re looking at new ways of extracting music notation from millions of book pages and using them in search systems to allow users to search millions of pages of music. This uses the MEI format to link page images and music notation to build these search systems.
Q. How is it different than MusicXML? How is it similar?
A. To be sure, MEI and MusicXML share some similarities. Both of them encode music notation (notes, staves, rests, clefs, etc. etc.), and both of them are expressed in XML.
However, they are guided by two different philosophies. MusicXML is an interchange format that seeks to represent music notation in a way that is independent of any one particular software. Its real strength is that you can export a file from Sibelius and import it into Finale with little to no loss of information or layout.
While MEI could also be used as an interchange format, it is a superset of the functionality available in MusicXML. It contains nearly all of the same functionality in terms of notation and page layout. However, beyond this it can also encode information about the notation in a structured and systematic way.
MEI supports notation systems outside of the standard Common Western Notation. Currently MEI supports mensural notation (Renaissance-era music notation) and earlier neume notation (notation from the middle ages).
Q. What are the ways it is being used right now?
A. There are quite a few projects that are using MEI right now. A list of some of them is available here.
Q. How can people learn more about it?
A. The web site and mailing list are the primary places to find out information about MEI and ask questions. There are a number of publications and presentations available on the web site.
The MEI community is hosting its annual conference in Charlottesville, Virginia in May 2014. It concerns music encoding in general, but it’s also where the MEI community has its yearly meetings.
For practical learning, we have an online tutorial that people can go through to learn about how to encode MEI:
And, if you’re really, really interested in knowing about the guts and glory of MEI, you can download our 700+ page MEI Guidelines. The first half of the guidelines features chapters devoted to encoding best-practices. The second half is the specification, automatically generated directly from the schema (which is why it’s so long).
Q. What is the Sibelius plug-in designed to do, and how does it do it?
A. This version of the Sibelius plug-in was developed to export Sibelius files to MEI (no import… yet). It’s an open source project started by myself in July 2012, and developed further by Micah Walters this past summer. Currently the development of this plug-in is being funded by the Digital DuChemin project led by Prof. Richard Freedman of Haverford College, PA.
The biggest issue facing the MEI project is that we don’t have support in any notation editors. The Sibelius MEI plug-in was developed to allow our users to write their music notation in Sibelius and then export it to MEI, saving them from writing the XML by hand.
If you’re really interested in the nitty-gritty of the plugin’s operation:
The Sibelius MEI plugin features a basic XML Reader and Writer, written in ManuScript. As part of the libmei project, we developed a system that can read the MEI Schema and automatically generate a library (initially in C++ and Python) that features support for all of the elements. Here’s a sample snippet:
n = libmei.Note();
libmei.addAttribute(n, 'pname', ‘e’);
libmei.addAttribute(n, 'oct', ‘4');
libmei.addAttribute(n, 'dur', ‘8’);
libmei.addAttribute(n, 'dur.ges', '128p');
When exported, this snippet translates to:
<note dur="8" dur.ges="128p" oct="4" pname="e" />
Which is the basic definition of an 8th note in MEI.
The source code for the plugin is available here if you want to have a look.
We also have a very skeletal importer — currently it does nothing but read the file in, but that’s important, given that means that we have implemented a full XML reader in ManuScript. If we get time and interest in helping out from others we can then start moving the parsed structure into Sibelius objects.