MEItoVexFlow

JavaScript libray to render MEI notation using VexFlow

View the Project on GitHub
TEI-Music-SIG/MEItoVexFlow

What is MEI to VexFlow?

MEI to VexFlow is a JavaScript library to render MEI encoded-music notation using VexFlow.

MEI is a community-developed format for music notation targeted at the academic community for research, teaching, and preservation.

VexFlow is an open-source online music notation rendering API. It is written completely in JavaScript and supports HTML5 Canvas and SVG.

Here's an example of MEI encoding (snippet) and its rendition via MEI to VexFlow:

<section>
        <measure n="1" xml:id="d1e136">
        <staff n="1">
        <layer n="1">
        <rest xml:id="d1e176" dur="4"/>
        <note xml:id="d1e184" pname="b" oct="4" dur="4">
        <verse>
        <syl>Auf</syl>
        </verse>
        </note>
        <note xml:id="d1e205" pname="b" oct="4" dur="4">
        <verse>
        <syl>dem</syl>
        </verse>
        </note>
        </layer>
        </staff>
        </measure>
        <measure n="2" xml:id="d1e475">
        <staff n="1">
        <layer n="1">
        <note pname="b" oct="4" dur="4" dots="1">
        <verse>
        <syl wordpos="i">Hü</syl>
        </verse>
        </note>
        <note xml:id="d1e499" pname="c" oct="5" dur="8">
        <verse>
        <syl wordpos="t">gel</syl>
        </verse>
        </note>
        <beam>
        <note xml:id="d1e518" pname="d" oct="5" dur="8">
        <verse>
        <syl>sitz</syl>
        </verse>
        </note>
        <note xml:id="d1e539" pname="e" oct="5" dur="8">
        <verse>
        <syl>ich</syl>
        </verse>
        </note>
        </beam>
        </layer>
        </staff>
        </measure>
        </section>
      

Project's history

This library was first created by Richard Lewis, then expanded as part of the Digital Du Chemin project. Most recently MEItoVexFlow has been improved on by Zoltán Kőmíves thanks to sponsorship from Google Summer of Code awarded to the Maryland Institute for Technology in the Humanities (MITH).

Why MEI?

The Music Encoding Initative (MEI) maintains an XML-based format for representing music notation. This format stands out for its ability to model ambiguity in textual transcription, which is useful for encoding and digitally preserve manuscript notated music. MEI can also represent textual variants, which are crucial to critical editing and relevant to both musicological and performing musicians communities.

Latest developments

MEI files can contain multiple variants for piece of music. Such variant readings may exists because some source materials, such as manuscripts or other documents that are considered 'authentic' supply us with different information. With our latest efforts we've tackled the task to have MEItoVexFlow understand this sort of ambiguity and process information regarding variant readings in MEI files.

meiView is sample application to showcase the abilities and potential of MEItoVexFlow in displaying variant readings of musical texts. If you want more information about the sample application please visit the meiView project page!

If you're interested to see all the different features MEItoVexFlow can display, checkout the Feature Demo page!

Recent developments in MEI-to-VexFlow are