Tido MEI Customization

ODD specification and documentation for Tido music notation

View the Project on GitHub tido/mei-customization

Welcome to Tido MEI Customization

A compact, tightly constrained, MEI customization.

This MEI customization is minimal by design and applies appropriate constraints to a select number of elements. We are starting with a small set of elements, but eventually this will reflect Tido's application profile, i.e. the MEI files that Tido software is able to handle without errors or omissions.

This is still under development! A lot more elements are needed to be documented in order to properly reflect Tido's application profile.

In its current form the documentation illustrates what kind of restrictions will be implemented for further elements. Elements that are currently not restricted are exluded from the schema for clarity.

We hope this customization can also be the starting point for a common basic MEI customization to be shared between several projects in the future. We welcome comments and suggestions through GitHub issues.

Schema and Documentation

RNG schema file

Documentation

Examples

Elements over attributes

Bad:

<staffDef key.accid="s" key.pname="f" key.mode="major">

Good:

<staffDef xml:id="d003">
 <keySig pname="f" accid="s" mode="major"
  xml:id="d004"/>
</staffDef>

Clearly defined control event behaviour

Bad:

<dynam tstamp="1" layer="1" xml:id="d019"
 place="above" staff="1 2"/>

Good:

<dynam tstamp="1" xml:id="d018" staff="1 2"/>

Node.js Test Framework

The project also contains a test environment in Node.js and available as an npm package.

In true literate-programming fashion, tests are defined directly in the ODD customization using <egXML> elements:

<egXML xmlns="http://www.tei-c.org/ns/Examples" 
       valid="true" rendition="#inLayer">
  <chord dur="4" stem.dir="up" xml:id="d008">
    <note pname="a" oct="4" xml:id="d009"/>
    <note pname="f" oct="4" xml:id="d010"/>
  </chord>
</egXML>