Music Encoding Initiative (MEI) DTD and the OCVE Perry Roland Digital Library Research & Development Group, Alderman Library, University of Virginia pdr4h@virginia.edu http://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 The simplicity of a DTD allows for ready creation of differently constrained versions at different points in the document's life cycle.
Interchange 12 translators MEI 30 translators comprehensive – generalized software independent N*(N-1) vs. N*2 translators 12 translators MEI 30 translators
Basic MEI DTD <!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 )*)> after expansion of parameter entities
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 For other elements MEI allows, via architectural forms: longer, descriptive element names for new users; shorter, mnemonic ones for experienced users and reduction of storage requirements; internationalization; extension mechanism based on concept name
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. <!ELEMENT filedesc (titlestmt, editionstmt?, pubstmt, seriesstmt?, extent?, fingerprint?, notesstmt?)> <!ELEMENT source (titlestmt, editionstmt?, pubstmt, seriesstmt?, physdesc?, extent?, notesstmt?)> <!ELEMENT physdesc (extent|physmedium|dimensions|provenance|inscription|exhibithist|condition|treatmenthist|treatmentsched)+> meihead based on ISBD(G), teiHeader, and FRBR
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 front matter is usually intended for display; source is usually for machine-processing
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 In version 1.4b staff-by-staff encoding can be accomplished without resorting to parts-only markup.
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 See example under 'ending element'.
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."> </ending> <ending id="c" label="2."> ...
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>
Music Encoding Initiative (MEI) DTD and the OCVE Perry Roland Digital Library Research & Development Group, Alderman Library, University of Virginia pdr4h@virginia.edu http://www.people.virginia.edu/~pdr4h