Music Encoding Initiative (MEI) DTD and the OCVE
Perry RolandDigital Library Research & Development Group, Alderman Library, University of [email protected]://www.people.virginia.edu/~pdr4h
Purposes of the DTD
encoding interchange
Encoding
not necessarily an input code, but still human readable (and understandable!)
declarative – preferable to procedural representation formal – verifiable explicit – context independent flexible – allows selective feature encoding, can be
constrained, separates visual, gestural, and analytical domains
extensible – for unknown uses, future development of particular interest: musical form, text, critical apparatus
Interchange
comprehensive – generalized software independent N*(N-1) vs. N*2 translators
30 translators 12 translators
MEI
<!ELEMENT mei (meihead, work)><!ELEMENT meicorpus (meihead, mei+)><!ELEMENT meihead (meiid, filedesc, projectdesc?, editorialdecl?, profiledesc?, revisiondesc?, sourcedesc*)><!ELEMENT work (front?, (music|group), back?)><!ELEMENT group ((work|group), (work|group)*)><!ELEMENT music (mdiv+)><!ELEMENT mdiv (score?, parts?)><!ELEMENT score (div*, (section, ending*, div*)* | (measure?, (pb|sb)?)*)><!ELEMENT parts (part)+><!ELEMENT part (div*, (section, ending*, div*)* | (measure?, (pb|sb)?)*)><!ELEMENT section (div*, (section, ending*, div*)* | (measure?, (pb|sb)?)* | staff* | app*)><!ELEMENT app (rdg, rdg+)><!ELEMENT rdg (div*, (section, ending*, div*)* | (measure?,(pb|sb)?)* | staff* | app*)><!ELEMENT ending (div*, (section, ending*, div*)* | (measure?,(pb|sb)?)* | staff* | app*)><!ELEMENT measure (((staff* | (beam | beatrpt | btrem | chord | ftrem | note | pad | rest | space | tuplet)* | layer* | (msrest | msrpt | multirest | multirpt)?)), ossia*, (annot | arpeg | beam2 | bend | dir | dynam | gliss | hairpin | harm | lyrics | midi | mordent | octave | pedal | phrase | reh | slur | tempo | tie | trill | turn)*, (curve | line | symbol )*)>
Basic MEI DTD
Document element
mei (meihead, work) – encodes a single work separates document into data and meta-data parts,
allowing meta-data to be shared with other internal and external entities
name cannot be changed in order to assure an absolute minimum level of MEI compliance
Alternate document element
meicorpus (meihead, mei+) – encodes multiple mei instances where each requires a header of its own
also provides header for entire file name cannot be changed in order to assure an
absolute minimum level of MEI compliance
meihead element
encodes bibliographic (descriptive, administrative, and technical) meta-data for the file
filedesc element contains data, such as title, agent, and publication status, and access data, such as vendor, price, and rights management info, for the file
sourcedesc element contains descriptions of each source for the file. source elements employ the same bibliographic elements as filedesc, but also include physical description elements, such as medium, dimensions, provenance, inscription, condition, etc.
work element
the "thing" being encoded may include not just music notation, but also the
textual matter often found in a critical or historical edition, composer's textual notes, advertisements, etc.
name cannot be changed in order to assure an absolute minimum level of MEI compliance
Work-level text
front and back child elements provide basic logical and presentational text markup functionality
accommodating text gives control of the text and notation to MEI, which embedding notation in another markup scheme, such as TEI, will not do
music element
encodes the musical, as opposed to the textual, content of the work
contains highest-level indication of the structure of the composition – one or more discrete, linear segments, called mdiv ("musical division")
generic mdiv elements may be typed – symphonies, for example, usually consist of movements while operas are made up of acts
group element
facilitates creation of a collection of work elements that share a bibliographic header – a collection of songs by different composers issued under a single title, for example
basic meta-data for each work may be encoded in its own front matter or in source elements in the file header
use meicorpus element when a complete bibliographic header is required for each member of a collection
mdiv element
may contain one or both of two possible organizing views – score and parts
score element contains a time-oriented view of the composition – a full score
parts element contains part elements each of which represents a performer's view
mdiv element, con't.
score and parts views are intended to accommodate different methods of organizing the markup – no particular presentation is implied, software may render a collection of parts as a score or a score as a collection of parts
it is not always possible or desirable to generate one view from the other. A great deal of complexity can be eliminated by separating score and part markup.
part element
has all the encoding features of a full score – content models of score and part elements are identical
voice-leading should be recorded at the event level using the next or prev attributes
part element, cont.
use part elements when
– there is no score, only a collection of parts– parts don't share visual characteristics, such as typeface or
layout with the full score or with each other– score has non-aligning bar lines– accommodating rendering software that requires staff-by-staff
encoding
section element
score or part may be divided into linear segments or sections sections usually function as scoping mechanisms for clef signs,
key and meter signatures, and expression marks minimize the need for backward scanning to establish context
when the starting point for access is not at the beginning when a section contains sections, the expan attribute on the
outer section element may be used to encode the performance order of the inner sections
section element, con't.
may also be used for user-defined, that is, analytical or editorial, purposes
may be arbitrarily nested to any level
app and ossia elements
an app element contains at least one alternative reading
each rdg may be linked to a source description in the header
rdg may contain app so that variants of variants may be described
each rdg may be assigned an order, e.g. for selection or rendering purposes, other than the encoded order
ossia performs a similar function at the measure level, however, it represents an alternative present in the source being transcribed.
ending element
specialized form of the section element that may not be recursively nested
<section expan="a b a c">
<section id="a">
<measure>...</measure>
</section>
<ending id="b" label="1.">
<measure>...</measure>
</ending>
<ending id="c" label="2.">
<measure>...</measure>
</ending>
...
</section>
measure element
contains events, not symbols even though events have visual properties, modeling
symbols places too much emphasis on presentation and makes the markup less useful as a general "music" (as opposed to "notation") markup scheme
is a linking element that connects the MEI document to an external electronic object, i.e., image, or to another location within the current MEI instance
Control events
control events, such as dynamics, ties, phrase marks, pedal marks, etc. depend on other events
do not fit the principal hierarchy of sections, measures and staves
multiple control events of the same type, i.e., pedal indications, may be associated with the same set of events, i.e., notes
staff element
may be used to indicate division of the measure's contents into multiple data streams
<measure> <staff def="1"><note /><rest />...</staff> <staff def="2"><note /></staff> </measure> does not necessarily indicate layout! in a staff-by-staff encoding, staff may contain measure elements <staff> <measure n="1">...</measure> <measure n="2">...</measure> </staff> <staff> <measure n="1">...</measure> <measure n="2">...</measure> </staff>
Music Encoding Initiative (MEI) DTD and the OCVE
Perry RolandDigital Library Research & Development Group, Alderman Library, University of [email protected]://www.people.virginia.edu/~pdr4h