ODD specification and documentation for Tido music notation
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.
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>
Bad:
<dynam tstamp="1" layer="1" xml:id="d019"
place="above" staff="1 2"/>
Good:
<dynam tstamp="1" xml:id="d018" staff="1 2"/>
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>