Tido Project Specific Customization of the Music Encoding Initiative Guidelines

Table of contents

1. Introduction

This document provides a minimal MEI customization in order to define a very basic subset of elements with appropriate restrictions for basic use cases. For general information about MEI, please refer to the MEI Guidelines. Please note however, that this customization builds on the development branch of the MEI project, which is more advanced than the current release. Each restriction is implemented using the TEI ODD specification language, and documented in the prose section of this document, including examples (what is valid) and counter-examples (what is invalid).

The Specifications section lists every element available in the customization and can be used as a technical reference.

2. Module Selection

This basic customization only adopts following modules:

3. Common Attributes

xml:id is mandatory on all elements, n is mandatory on:

4. Clefs, Time and Key Signatures

4.1. Time signature

Time signature must be expressed in a <meterSig/> child element of <staffDef>.

To define a time signature, the customization uses unit and count on <meterSig/>. They must occur together:

<staffDef xml:id="d001">  <meterSig count="4unit="4xml:id="d002"/> </staffDef>

Attributes for encoding time signatures on <scoreDef> and <staffDef> are excluded from the schema.

4.2. Key signature

Key signature must be expressed in a <keySig> child element of <staffDef> at this stage of development.

To define a key signature, the customization uses the pname, accid and mode attributes of <keySig>. pname and mode must occur together, accid is optional.

<staffDef xml:id="d003">  <keySig pname="faccid="smode="major"   xml:id="d004"/> </staffDef>

Attributes for encoding key signatures on <scoreDef> and <staffDef> are excluded from the schema.

4.3. Clefs

Clefs must be expressed using the <clef/> element.

To define a clef, the customization uses shape and line, which must occur together.

<staffDef lines="5xml:id="d005n="2">  <clef shape="Gline="2xml:id="d006"/> </staffDef>

Attributes for encoding clefs on <scoreDef> and <staffDef> are excluded from the schema.

5. Events

This section describes restrictions to timed events on staves, such as notes or rests.

5.1. Notes

Notes must either have an octave and a pitch name or a loc attribute. Stem direction remains optional, but is recommended. Notes within chords must not express stem information and duration

This is a typical note:

<note pname="aoct="4dur="4stem.dir="up"  xml:id="d007"/>

5.2. Duration and stem direction

The gestural duration attribute dur.ges is excluded in this customization. In addition, the specification of the dur and stem.dir attributes on events is more tightly controlled than it is in mei_all, as described in the following sections.

5.2.1. Notes

Notes must always have a duration (dur) and a stem direction (stem.dir) except when they are part of a chord.

5.2.2. Rests and spaces

<rest/> and <space/> elements must always have a duration (dur).

5.2.3. Chords

Duration and stem direction on chords must be expressed on the <chord> element. The constituent <note> elements are not allowed to express duration or stem direction.

  • Duration on chord:
    <chord dur="4stem.dir="upxml:id="d008">  <note pname="aoct="4xml:id="d009"/>  <note pname="foct="4xml:id="d010"/> </chord>
  • Durations on child notes are not allowed:
    <chord dur="4stem.dir="upxml:id="d011">  <note pname="aoct="4dur="4"   xml:id="d012"/>  <note pname="foct="4dur="4"   xml:id="d013"/> </chord>
  • Stem directions on child notes are not allowed:
    <chord dur="4stem.dir="upxml:id="d014">  <note pname="aoct="4stem.dir="up"   xml:id="d015"/>  <note pname="foct="4stem.dir="up"   xml:id="d016"/> </chord>

5.3. Control events

5.3.1. Placement relative to staves

Some control events, such as <hairpin/>, <dynam>, etc. can be placed either directly above or below a single staff or in the middle between two staves. Placement above or below a staff is indicated by the place attribute,
<dynam tstamp="1layer="1xml:id="d017"  place="belowstaff="1"/>
placement between two staves is expressed by specifying the numbers of both staves in the staff attribute.
<dynam tstamp="1xml:id="d018staff="1 2"/>
When the staff attribute has multiple values, place and layer are not allowed:
<dynam tstamp="1layer="1xml:id="d019"  place="abovestaff="1 2"/>

5.3.2. Spanning elements

5.3.2.1. Hairpins

Start and end point of <hairpin/> elements must be expressed using tstamp and tstamp2 respectively. startid and endid attributes are currently disabled on hairpins.

5.3.2.2. Slurs and Ties

In this customization, slurs and ties are always encoded as elements.

Since slurs almost always connect notes with other notes, their start and end points can nearly always be expressed using the startid and endid attributes. Only exceptions are ‘partial’ slurs, such as the ones at the boundary of <ending> elements. Such slurs need to be encoded using the tstamp or tstamp2 attributes. When the inclompete slur starts at the barline, @tstamp="0" is used, when the slur is incomplete at its end point, @tstamp2="0m+n" is applied (where n is the meter.count of the current measure plus one: 5 in 4/4, 3 in 2/4 etc. see 4.1.5 Timestamps and Durations of the MEI Guidelines). Additionally, all partial slurs have to be supplied with a curvedir attribute indicating the direction of the slur (values: above or below).

On the other hand, tstamps are not always enough to describe start and end point of slurs (think of a slur in the upper voice, while the lower voice has no slur), therefore we must allow the use of both startid/endid and tstamp/tstamp2. Since it is simply impractical to assert in which situation which encoding is expected, no asserted restrictions apply for using combinations of these attributes to describe start and end points of slurs, however, it is required that when tstamps are used, the tstamp has to be unambiguously resolved to a single note or chord event.

A typical slur:

<slur xml:id="d020startid="#n01"  endid="#n02"/>

A partial slur within a 2nd ending:

<slur xml:id="d021tstamp="0endid="#n02"/>
5.3.2.3. Pedals

<pedal/> elements are required to form consistent sequences: Each <pedal/> with a dir value of bounce or up must match its closest preceding <pedal/> element in its form attribute.

Specifications

Elements

<accessRestrict>

<accessRestrict> (access restriction) – Describes the conditions that affect the accessibility of material.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: availability
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element accessRestrict
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}
NoteMay indicate the nature of restrictions or the lack of restrictions. Do not confuse this element with <useRestrict> (usage restrictions), which captures information about limitations on the use of material, such as those afforded by copyright.
NoteThis element is modelled on an element in the Encoded Archival Description (EAD) standard.

<accid/>

<accid/> (accidental) – Records a temporary alteration to the pitch of a note.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.accid.log (@func) (att.accidental (@accid)) (att.controlevent (att.staffident.req (@staff)) (att.timestamp.musical (@tstamp)) (att.layerident (@layer)) )
Member of
Contained by
MEI.shared: note
May containEmpty element
Declaration
element accid
{
   tido_att.common.attributes,
   tido_att.accid.log.attributes,
   empty
}
NoteAn accidental may raise a pitch by one or two semitones or it may cancel a previous accidental or part of a key signature. This element provides an alternative to the accid and accid.ges attributes on the <note> element. The element may be used when specific display info, such as size or color, needs to be recorded for the accidental or when multiple accidentals occur on a single note. The func attribute can be used to differentiate between the accidental's functions, such as 'cautionary' or 'editorial'.

<acqSource>

<acqSource> (acquisition source) – Post-publication source, such as a vendor or distributor, from which access to a bibliographic item may be obtained, including electronic access.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: availability
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element acqSource
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}
NoteThis element is modelled on an element in the Encoded Archival Description (EAD) standard.

<addrLine>

<addrLine> (address line) – Single line of a postal address.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.shared: address
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element addrLine
{
   tido_att.common.attributes,
   ( text | model.textphraseLike | model.editLike | model.transcriptionLike )*
}
Note<addrLine> may be repeated as many times as necessary to enter all lines of an address.
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) and Encoded Archival Description (EAD) standards.

<address>

<address> Contains a postal address, for example of a publisher, an organization, or an individual.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
May contain
MEI.shared: addrLine
Declaration
element address { tido_att.common.attributes, addrLine+ }
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) and Encoded Archival Description (EAD) standards.

<altId>

<altId> (alternative identifier) – May contain a bibliographic identifier that does not fit within the meiHead element's id attribute, for example because the identifier does not fit the definition of an XML id or because multiple identifiers are needed.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.typed (@type, @subtype)
Contained by
MEI.header: meiHead
May contain
MEI.shared: rend
Declaration
element altId
{
   tido_att.common.attributes,
   tido_att.typed.attributes,
   ( text | model.lbLike | model.rendLike )*
}
NoteOne or the other of <altId> or the id attribute on <mei> is required when applicable.

<appInfo>

<appInfo> (application information) – Groups information about applications which have acted upon the MEI file.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: encodingDesc
May contain
MEI.header: application
Declaration
element appInfo { tido_att.common.attributes, model.headLike*, application* }
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<application>

<application> Provides information about an application which has acted upon the current document.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.typed (@type, @subtype)
versionSupplies a version number for an application, independent of its identifier or display name.
StatusOptional
Datatype
xsd:NMTOKEN
Contained by
MEI.header: appInfo
May contain
MEI.ptrref: ptr ref
MEI.shared: p
Declaration
element application
{
   tido_att.common.attributes,
   tido_att.typed.attributes,
   attribute version { xsd:NMTOKEN }?,
   name+,
   ( model.locrefLike* | model.pLike* )
}
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<audience>

<audience> Defines the class of user for which the work is intended, as defined by age group (e.g., children, young adults, adults, etc.), educational level (e.g., primary, secondary, etc.), or other categorization.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: work
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element audience
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}

<availability>

<availability> Groups elements that describe the availability of and access to a bibliographic item, including an MEI-encoded document.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: pubStmt
May contain
Declaration
element availability
{
   tido_att.common.attributes,
   tido_macro.availabilityPart
}
NoteWhen used within the <fileDesc> element, <availability> indicates access to the MEI-encoded document itself.
NoteThis element is modelled on elements in the Text Encoding Initiative (TEI) and Encoded Archival Description (EAD) standards.

<beam>

<beam> A container for a series of explicitly beamed events that begins and ends entirely within a measure.
ModuleMEI.cmn — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.cmn: beam
MEI.shared: layer
May contain
MEI.cmn: beam meterSig
Declaration
element beam
{
   tido_att.common.attributes,
   (
      model.eventLike
    | model.appLike
    | model.editLike
    | model.transcriptionLike
   )*
}
Schematron
<sch:rule context="mei:beam[not(@copyof)]"> <sch:assert test="count(descendant::*[local-name()='note' or local-name()='rest' or local-name()='chord' or local-name()='space']) > 1">A beam without a copyof attribute must have at least 2 note, rest, chord, or space descendants.</sch:assert></sch:rule>
NoteFor beams that cross the bar line, use the <beamSpan> element. Secondary beams may be broken explicitly using the breaksec attribute on the notes or chords under the beam. Automated beaming, as opposed to explicitly marked beams, may be indicated for an entire score, part or section by using the beam.group and beam.rests attributes on these elements.

<body>

<body> Contains the whole of a single musical text, excluding any front or back matter.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.shared: music
May contain
MEI.shared: mdiv
Declaration
element body { tido_att.common.attributes, model.mdivLike+ }
NoteWhen the music can be broken into high-level, discrete, linear segments, such as movements of a symphony, there may be multiple <mdiv> elements within <body>. This is the highest level indication of the structure of the music.

<byline>

<byline> Contains the primary statement of responsibility given for a work on its title page.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element byline
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited | model.respLikePart )*
}

<captureMode>

<captureMode> (capture mode) – The means used to record notation, sound, or images in the production of a source/manifestation (e.g., analogue, acoustic, electric, digital, optical etc.).
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: physDesc
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element captureMode
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}

<carrierForm>

<carrierForm> (carrier form) – The specific class of material to which the physical carrier of the source/manifestation belongs (e.g., sound cassette, videodisc, microfilm cartridge, transparency, etc.). The carrier for a manifestation comprising multiple physical components may include more than one form (e.g., a filmstrip with an accompanying booklet, a separate sound disc carrying the sound track for a film, etc.).
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: physDesc
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element carrierForm
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}

<change>

<change> Individual change within the revision description.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.typed (@type, @subtype)
Contained by
MEI.header: revisionDesc
May contain
MEI.header: changeDesc
MEI.shared: respStmt
Declaration
element change
{
   tido_att.common.attributes,
   tido_att.typed.attributes,
   respStmt?,
   tido_changeDesc,
   model.dateLike?
}
Schematron
<sch:rule context="mei:change"> <sch:assert test="@isodate or mei:date">The date of the change must be recorded in an isodate attribute or date element.</sch:assert> <sch:assert test="@resp or mei:respStmt">The person responsible for the change must be recorded in a resp attribute or respStmt element.</sch:assert></sch:rule>
NoteAdditions, deletions, and significant recoding should be noted, but not correction of minor typographical errors. It is recommended that revisions should be entered in reverse chronological order, with the most recent <change> first. The resp attribute contains a pointer to an element containing info about the person/entity responsible for change. The <edition> element can be used to designate an MEI encoding that has been so substantively changed that it constitutes a new version that supersedes earlier versions.
NoteThis element is modelled on an element in the Encoded Archival Description (EAD) standard.

<changeDesc>

<changeDesc> (change description) – Description of a revision of the MEI file.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: change
May contain
MEI.shared: p
Declaration
element changeDesc { tido_att.common.attributes, model.pLike+ }

<chord>

<chord> A simultaneous sounding of two or more notes in the same layer *with the same duration*.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.chord.log (att.duration.musical.req (@dur)) (att.event (att.timestamp.musical (@tstamp)) (att.staffident (@staff)) (att.layerident (@layer)) ) (att.articulation (@artic)) (att.augmentdots (@dots)) (att.syltext (@syl)) att.chord.vis (@cluster) (att.stemdir.req (@stem.dir)) (att.typography (@fontfam, @fontname, @fontsize, @fontstyle, @fontweight))
Member of
Contained by
MEI.cmn: beam
MEI.shared: layer
May contain
MEI.shared: note
Declaration
element chord
{
   tido_att.common.attributes,
   tido_att.chord.log.attributes,
   tido_att.chord.vis.attributes,
   ( note | artic | model.editLike | model.transcriptionLike )*
}

<classCode>

<classCode> (classification code) – Holds a citation to the source of controlled-vocabulary terms used in the <termList> element; for example, Library of Congress Subject Headings (LCSH), Library of Congress Classification (LCC), Library of Congress Name Authority File (LCNAF), or other thesaurus or ontology.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: classification
May contain
MEI.shared: rend
Declaration
element classCode
{
   tido_att.common.attributes,
   ( text | model.lbLike | model.rendLike )*
}
NoteThe citation may be provided in the authority attribute or, when additional markup is needed, as textual content of the element.
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<classification>

<classification> Groups information which describes the nature or topic of an entity.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: source work
May contain
MEI.header: classCode termList
Declaration
element classification
{
   tido_att.common.attributes,
   model.headLike*,
   ( classCode | termList )+
}
NoteAlthough the use of names and terms from locally controlled vocabularies is possible, best practice suggests that terms should come from standard national or international vocabularies whenever they are available in order to enable searches in systems that include multiple MEI documents, or MEI documents and bibliographic records from many institutions.

<clef/>

<clef/> Indication of the exact location of a particular note on the staff and, therefore, the other notes as well.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.event (att.timestamp.musical (@tstamp)) (att.staffident (@staff)) (att.layerident (@layer)) att.clef.log (@cautionary) (att.clefshape (@shape)) (att.lineloc (@line)) (att.octave (@oct))
Member of
Contained by
MEI.cmn: beam
MEI.shared: layer staffDef
May containEmpty element
Declaration
element clef
{
   tido_att.common.attributes,
   tido_att.event.attributes,
   tido_att.clef.log.attributes,
   empty
}
Schematron
<sch:rule context="mei:clef[ancestor::mei:staffDef[@lines]]"> <sch:let name="thisstaff"  value="ancestor::mei:staffDef/@n"/> <sch:assert test="number(@line) <= number(ancestor::mei:staffDef[@n=$thisstaff and @lines][1]/@lines)">The clef position must be less than or equal to the number of lines on the staff.</sch:assert></sch:rule>
Schematron
<sch:rule context="mei:clef[ancestor::mei:staffDef[not(@lines)]]"> <sch:let name="thisstaff"  value="ancestor::mei:staffDef/@n"/> <sch:assert test="number(@line) <= number(preceding::mei:staffDef[@n=$thisstaff and @lines][1]/@lines)">The clef position must be less than or equal to the number of lines on the staff.</sch:assert></sch:rule>
NoteThis element can be used as an alternative to the <staff> element's clef.* attributes. It should be used when specific display info, such as size or color, needs to be recorded for the clef or when multiple, simultaneous clefs occur on a single staff. This element may also be used within the staff context to indicate changes of clef.

<condition>

<condition> The physical condition of an item, particularly any variances between the physical make-up of the item and that of other copies of the same item (e.g., missing pages or plates, brittleness, faded images, etc.).
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: physDesc
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element condition
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}
NoteThis element is modelled on an element in the Encoded Archival Description (EAD) standard.

<contentItem>

<contentItem> Contains a single entry within a content description element.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: contents
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element contentItem
{
   tido_att.common.attributes,
   ( text | model.textphraseLike | model.editLike | model.transcriptionLike )*
}

<contents>

<contents> Description of the material contained within a resource.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: seriesStmt source work
May contain
MEI.header: contentItem
MEI.shared: p
Declaration
element contents
{
   tido_att.common.attributes,
   model.headLike*,
   ( model.pLike? | ( model.labelLike?, contentItem )+ )
}
Example
<contents>   <p>A suitable tone ; Left hand colouring ; Rhythm and accent ; Tempo ;     Flexibility ; Ornaments</p> </contents>             
Example
<contents>   <head>Contents</head>   <label>1.</label><contentItem>Sonata in D major, op. V, no. 1 /      Corelli</contentItem>   <label>2.</label><contentItem>Sonata in G minor / Purcell (with Robert Donington,      gamba)</contentItem>   <label>3.</label><contentItem>Forlane from Concert royal no. 3 /      Couperin</contentItem> </contents>             
Example
<contents target="http://www.contentProvider.org/toc/toc01.html"/>             

<context>

<context> The historical, social, intellectual, artistic, or other context within which the work was originally conceived (e.g., the 17th century restoration of the monarchy in England, the aesthetic movement of the late 19th century, etc.) or the historical, social, intellectual, artistic, or other context within which the expression was realized.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: work
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element context
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}

<corpName>

<corpName> (corporate name) – Identifies an organization or group of people that acts as a single entity.
ModuleMEI.namesdates — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.name (@nymref, @role) att.typed (@type, @subtype)
Member of
Contained by
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element corpName
{
   tido_att.common.attributes,
   tido_att.name.attributes,
   tido_att.typed.attributes,
   ( text | model.textphraseLike | model.editLike | model.transcriptionLike )*
}
NoteExamples of corporate entities include names of associations, institutions, business firms, non-profit enterprises, governments, government agencies, projects, programs, religious bodies, churches, conferences, athletic contests, exhibitions, expeditions, fairs, and ships. Secondary name parts may be encoded in <corpName> sub-elements. The name of the list from which a controlled value is taken may be recorded using the authority attribute.
NoteThis element is modelled on an element in the Encoded Archival Description (EAD) standard.

<correction>

<correction> States how and under what circumstances corrections have been made in the text.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.regularmethod (@method)
corrlevelIndicates the degree of correction applied to the text.
StatusOptional
Legal values are:
high
The text has been thoroughly checked and proofread.
medium
The text has been checked at least once.
low
The text has not been checked.
unknown
The correction status of the text is unknown.
Member of
Contained by
MEI.header: editorialDecl
May contain
MEI.shared: p
Declaration
element correction
{
   tido_att.common.attributes,
   tido_att.regularmethod.attributes,
   attribute corrlevel { text }?,
   model.pLike+
}
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<dimensions>

<dimensions> Information about the physical size of a bibliographic source; usually includes numerical data.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: physDesc
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element dimensions
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited | model.dimLike )*
}
NoteThe elements <height>, <width>, and <depth> are available for circumstances that require the capture of the individual dimensions of an object. Do not confuse this element with the <extent> element, which is used to indicate the quantity of described materials.
NoteThis element is modelled on elements in the Text Encoding Initiative (TEI) and Encoded Archival Description (EAD) standards.

<dynam>

<dynam> (dynamic) – Indication of the volume of a note, phrase, or section of music.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.dynam.log (att.controlevent (att.staffident.req (@staff)) (att.timestamp.musical (@tstamp)) (att.layerident (@layer)) ) (att.augmentdots (@dots)) (att.startendid (@endid) (att.startid (@startid)) ) (att.timestamp2.musical (@tstamp2)) att.dynam.vis (att.placement (@place)) att.typed (@type, @subtype)
Member of
Contained by
MEI.cmn: measure
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element dynam
{
   tido_att.common.attributes,
   tido_att.dynam.log.attributes,
   tido_att.dynam.vis.attributes,
   tido_att.typed.attributes,
   (
      text
    | model.textphraseLike.limited
    | model.editLike
    | model.transcriptionLike
   )*
}
Schematron
<sch:rule context="mei:dynam"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real"> Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real</sch:assert></sch:rule>
Schematron
<sch:rule context="mei:dynam[@val2]"> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">When @val2 is present, either @dur, @dur.ges, @endid, or @tstamp2 must also be present.</sch:assert></sch:rule>
NoteThis element may be used for instantaneous or continuous textual dynamics, e.g. 'p', 'mf', or 'cresc. poco a poco'. The <hairpin> element should be used for graphical, i.e., crescendo and diminuendo, dynamic markings. The starting point of the dynamic marking may be indicated by either a startid, tstamp, tstamp.ges, or tstamp.real attribute, while the ending point may be recorded by either a dur, dur.ges, endid, or tstamp2 attribute. It is a semantic error not to specify a starting point attribute. MIDI values associated with the graphical dynamic sign may be recorded in the val and val2 attributes.

<editionStmt>

<editionStmt> (edition statement) – Container for meta-data pertaining to a particular edition of the material being described.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: fileDesc source
May contain
MEI.shared: respStmt
Declaration
element editionStmt
{
   tido_att.common.attributes,
   ( model.editionLike, respStmt* )+
}
NoteThis element is modelled on elements in the Text Encoding Initiative (TEI) and Encoded Archival Description (EAD) standards.

<editorialDecl>

<editorialDecl> (editorial declaration) – Used to provide details of editorial principles and practices applied during the encoding of musical text.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: encodingDesc
May contain
Declaration
element editorialDecl
{
   tido_att.common.attributes,
   model.headLike*,
   ( model.pLike+ | ( model.editorialDeclPart+, model.pLike* ) )
}
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<encodingDesc>

<encodingDesc> (encoding description) – Documents the relationship between an electronic file and the source or sources from which it was derived as well as applications used in the encoding/editing process.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: meiHead
May contain
Declaration
element encodingDesc
{
   tido_att.common.attributes,
   tido_model.encodingPart_sequenceOptional
}
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<ending>

<ending> Alternative ending for a repeated passage of music; i.e., prima volta, seconda volta, etc.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.ending.anlatt.ending.gesatt.ending.logatt.ending.visatt.typed (@type, @subtype)
Member of
Contained by
MEI.shared: ending score section
May contain
MEI.cmn: measure
Declaration
element ending
{
   tido_att.common.attributes,
   tido_att.ending.anl.attributes,
   tido_att.ending.ges.attributes,
   tido_att.ending.log.attributes,
   tido_att.ending.vis.attributes,
   tido_att.typed.attributes,
   expansion*,
   (
      model.appLike
    | model.divLike
    | model.milestoneLike.music
    | model.annotLike
    | model.graphicprimitiveLike
    | model.editLike
    | model.transcriptionLike
    | model.sectionPart
   )*
}
NoteThe <scoreDef> element is allowed as a sub-element so that an ending may have its own meta-data without the overhead of child <section> elements. <div> sub-elements are not allowed within ending in order to avoid collisions with the brackets that are usually displayed over endings. Endings may *not* contain other ending elements.

<exhibHist>

<exhibHist> (exhibition history) – A record of public exhibitions, including dates, venues, etc.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: physDesc
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element exhibHist
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}
NoteThis element is modelled on an element in the Encoded Archival Description (EAD) standard.

<fileChar>

<fileChar> (file characteristics) – Standards or schemes used to encode the file (e.g., ASCII, SGML, etc.), physical characteristics of the file (e.g., recording density, parity, blocking, etc.), and other characteristics that have a bearing on how the file can be processed.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: physDesc
May containCharacter data only
Declaration
element fileChar { tido_att.common.attributes, text }

<fileDesc>

<fileDesc> (file description) – Contains a full bibliographic description of the MEI file.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: meiHead
May contain
Declaration
element fileDesc
{
   tido_att.common.attributes,
   tido_titleStmt,
   editionStmt?,
   extent?,
   tido_pubStmt,
   seriesStmt?,
   notesStmt?,
   sourceDesc?
}
NoteExtent in this context represents file size.
NoteThis element is modelled on elements in the Text Encoding Initiative (TEI) and Encoded Archival Description (EAD) standards.

<fingerprint>

<fingerprint> Contains a string that uniquely identifies an item, such as those constructed by combining groups of characters transcribed from specified pages of a printed item or a file's checksum.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: physDesc
May containCharacter data only
Declaration
element fingerprint { tido_att.common.attributes, text }

<geogName>

<geogName> (geographic name) – The proper noun designation for a place, natural feature, or political jurisdiction.
ModuleMEI.namesdates — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.name (@nymref, @role) att.typed (@type, @subtype)
Member of
Contained by
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element geogName
{
   tido_att.common.attributes,
   tido_att.name.attributes,
   tido_att.typed.attributes,
   ( text | model.textphraseLike | model.editLike | model.transcriptionLike )*
}
NoteExamples include Black Forest; Baltimore, Maryland; and Quartier Latin, Paris. Name sub-parts may be encoded using <geogName> sub-elements. The name of the list from which a controlled value is taken, such as the Thesaurus of Geographic Names (TGN), may be recorded using the authority attribute.
NoteThis element is modelled on an element in the Encoded Archival Description (EAD) standard.

<hairpin/>

<hairpin/> Indicates continuous dynamics expressed on the score as wedge-shaped graphics, e.g. < and >.
ModuleMEI.cmn — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.hairpin.log (@form) (att.spanning.musical.req (att.timestamp.musical.req (@tstamp)) (att.timestamp2.musical.req (@tstamp2)) (att.staffident (@staff)) (att.layerident (@layer)) ) att.hairpin.vis (@opening) (att.placement (@place)) att.typed (@type, @subtype)
Member of
Contained by
MEI.cmn: measure
May containEmpty element
Declaration
element hairpin
{
   tido_att.common.attributes,
   tido_att.hairpin.log.attributes,
   tido_att.hairpin.vis.attributes,
   tido_att.typed.attributes,
   empty
}
SchematronRequire place on <hairpin/> when staff has a single value.
<sch:rule context="mei:hairpin[not(contains(@staff, ' '))]"> <sch:assert test="exists(@place)">Must have place attribute.</sch:assert></sch:rule>
Schematron
ExampleA valid <hairpin/> with all required and optional attributes
<hairpin form="creststamp="1"  tstamp2="0m+2staff="1layer="1place="above"  xml:id="d096"/>
ExampleA valid <hairpin/> with two values in staff and no layer attribute
<hairpin form="creststamp="1"  tstamp2="0m+2staff="1 2xml:id="d097"/>
ExampleAn invalid <hairpin/> missing the staff attribute
<hairpin form="creststamp="1"  tstamp2="0m+2xml:id="d098"/>
ExampleA valid <hairpin/> with a single value in staff and multiple values in layer
<hairpin form="creststamp="1"  tstamp2="0m+2staff="1layer="1 2 3place="below"  xml:id="d099"/>
ExampleAn invalid <hairpin/> with a single value in staff missing the place attribute
<hairpin form="creststamp="1"  tstamp2="0m+2staff="1layer="1xml:id="d100"/>
ExampleAn invalid <hairpin/> missing the form attribute
<hairpin tstamp="1tstamp2="0m+2"  staff="1 2xml:id="d101"/>
ExampleAn invalid <hairpin/> using the endid attribute
<hairpin form="creststamp="1"  tstamp2="0m+2staff="1 2endid="#n02xml:id="d102"/>
ExampleAn invalid <hairpin/> using the startid attribute
<hairpin form="creststamp="1"  startid="#n01tstamp2="0m+2staff="1 2xml:id="d103"/>
ExampleAn invalid <hairpin/> missing the tstamp2 attribute
<hairpin form="creststamp="1staff="1 2"  xml:id="d104"/>
ExampleAn invalid <hairpin/> missing the tstamp attribute
<hairpin form="creststamp2="0m+2"  staff="1 2xml:id="d105"/>
ExampleAn invalid <hairpin/> with multiple values in staff and a layer attribute
<hairpin form="creststamp="1"  tstamp2="0m+2staff="1 2layer="1xml:id="d106"/>
NoteThe <hairpin> element is used for graphical, i.e., crescendo and diminuendo, dynamic markings. For instantaneous or continuous textual dynamics, such as 'p', 'mf', or 'cres. poco a poco', the <dynam> element should be used. As opposed to generic MEI, in this basic customization the start and end point of the hairpin is always encoded with tstamp, and tstamp2 attributes.

<hand>

<hand> Defines a distinct scribe or handwriting style.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.medium (@medium)
initialMarks this hand as the first one of the document.
StatusOptional
Datatype
data.BOOLEAN
Contained by
MEI.header: handList
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element hand
{
   tido_att.common.attributes,
   tido_att.medium.attributes,
   attribute initial { data.BOOLEAN }?,
   ( text | model.textphraseLike.limited )*
}
NoteThe initial attribute indicates whether this is the first or main scribe of the document. The medium attribute describes the writing medium, e.g., 'pencil', or the tint or type of ink, e.g. 'brown'. The resp attribute contains an ID reference to an element containing the name of the editor or transcriber responsible for identifying the hand. The characteristics of the hand, particularly those related to the quality of the writing, such as 'shaky', 'thick', etc. may be described within the content of the <hand> element.
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<handList>

<handList> Container for one or more hand elements.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.typed (@type, @subtype)
Member of
Contained by
MEI.header: physDesc
May contain
MEI.header: hand
Declaration
element handList
{
   tido_att.common.attributes,
   tido_att.typed.attributes,
   model.headLike*,
   ( model.labelLike?, hand )*
}
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<history>

<history> Provides a container for information about the history of a resource. To facilitate efficient data interchange, basic information about the circumstances surrounding the creation of bibliographic resources should be recorded within the creation element.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: source work
May contain
MEI.shared: p
Declaration
element history
{
   tido_att.common.attributes,
   model.headLike*,
   ( model.divLike | model.textcomponentLike )*
}

<incipCode>

<incipCode> Incipit coded in a non-XML, plain text format, such as Plaine & Easie Code.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.internetmedia (@mimetype)
formForm of the encoded incipit.
StatusOptional
Datatype
xsd:NMTOKEN
Suggested values include:
plaineAndEasie
Plaine & Easie Code.
humdrumKern
Humdrum Kern format.
parsons
Parsons code.
Contained by
May containCharacter data only
Declaration
element incipCode
{
   tido_att.common.attributes,
   tido_att.internetmedia.attributes,
   attribute form
   {
      "plaineAndEasie" | "humdrumKern" | "parsons" | xsd:NMTOKEN
   }?,
   text
}
Schematron
<sch:rule context="mei:incipCode"> <sch:assert test="@form or @mimetype">incipCode must have a form or mimetype attribute.</sch:assert></sch:rule>

<incipText>

<incipText> Opening words of a musical composition.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.internetmedia (@mimetype)
Contained by
May contain
MEI.shared: p
Declaration
element incipText
{
   tido_att.common.attributes,
   tido_att.internetmedia.attributes,
   ( model.pLike | model.lgLike )*
}

<inscription>

<inscription> An inscription added to an item, such as a bookplate, a note designating the item as a gift, and/or the author's signature.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: physDesc
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element inscription
{
   tido_att.common.attributes,
   (
      text
    | model.textphraseLike.limited
    | model.editLike
    | model.transcriptionLike
   )*
}

<interpretation>

<interpretation> Describes the scope of any analytic or interpretive information added to the transcription of the music.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: editorialDecl
May contain
MEI.shared: p
Declaration
element interpretation { tido_att.common.attributes, model.pLike+ }
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<key>

<key> Key captures information about tonal center and mode.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.keySig.log (@mode) (att.accidental (@accid)) (att.pitch (@pname))
Member of
Contained by
MEI.header: work
May containCharacter data only
Declaration
element key
{
   tido_att.common.attributes,
   tido_att.keySig.log.attributes,
   text
}
NoteThis element is used exclusively within bibliographic descriptions. Do not confuse this element with <keySig>, which is used within the body of an MEI file to record this data.

<keySig>

<keySig> (key signature) – Written key signature.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.keySig.log (@mode) (att.accidental (@accid)) (att.pitch (@pname))
Member of
Contained by
MEI.cmn: beam
MEI.shared: layer scoreDef staffDef
May containEmpty element
Declaration
element keySig
{
   tido_att.common.attributes,
   tido_att.keySig.log.attributes,
   model.keyAccidLike*
}
Schematron@pname and @mode must occur together.
<sch:rule context="mei:keySig"> <sch:report test="not(@pname and @mode)"> Key signature must be complete (both @pname and @mode are required).</sch:report></sch:rule>
ExampleA valid <keySig> with all required attributes
<staffDef n="1xml:id="d119">  <keySig xml:id="d120pname="f"   mode="major"/> </staffDef>
ExampleAn invalid <keySig> with an accid attribute
<staffDef n="1xml:id="d121">  <keySig xml:id="d122pname="faccid="s"   mode="major"/> </staffDef>
ExampleAn invalid <keySig> without the mode attribute
<staffDef n="1xml:id="d123">  <keySig xml:id="d124pname="f"/> </staffDef>
ExampleA invalid <keySig> without the pname attribute
<staffDef n="1xml:id="d125">  <keySig xml:id="d126mode="major"/> </staffDef>
NoteThis element may be used as an alternative to the key.* attributes (especially key.sig.mixed) on <scoreDef> and <staffDef>.

<langUsage>

<langUsage> (language usage) – Groups elements describing the languages, sub-languages, dialects, etc., represented within the encoded resource.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: source work
May contain
MEI.header: language
Declaration
element langUsage { tido_att.common.attributes, model.headLike*, language+ }
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<language>

<language> Description of a language used in the document.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: langUsage
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element language
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}
NoteTextual elements may be related to this element via their xml:lang attribute, which normally takes the form of a code, drawn from a coded list, such as ISO639-2b. The name and web location of the authorizing list may be encoded in the authority attribute and the authURI attribute, respectively.
NoteThis element is modelled on elements in the Text Encoding Initiative (TEI) and Encoded Archival Description (EAD) standards.

<layer>

<layer> An independent stream of events on a staff.
ModuleMEI.shared — Specifications
Attributesatt.commonPart (@label, @xml:base) (att.id (@xml:id))
nprovides a name or number designation for an element. While the value need not be unique, it is required to be a single token. Must be an integer.
StatusRequired
Datatype
xsd:positiveInteger
Member of
Contained by
MEI.shared: staff
May contain
Declaration
element layer
{
   tido_att.commonPart.attributes,
   attribute n { xsd:positiveInteger },
   (
      model.appLike
    | model.divLike
    | model.milestoneLike.music
    | model.annotLike
    | model.graphicprimitiveLike
    | model.editLike
    | model.transcriptionLike
    | model.layerPart
   )*
}
ExampleA valid layer element with a positive integer n value
<measure n="1xml:id="d071">  <staff n="1xml:id="d072">   <layer n="1xml:id="d073"/>  </staff> </measure>
ExampleAn invalid layer element missing n
<measure n="1xml:id="d074">  <staff n="1xml:id="d075">   <layer xml:id="d076"/>  </staff> </measure>
ExampleAn invalid layer element with a non-integer n
<measure n="1xml:id="d077">  <staff n="1xml:id="d078">   <layer n="s1xml:id="d079"/>  </staff> </measure>
NoteThe term 'layer' is used instead of 'voice' in order to avoid confusion between 'voice' and 'voice leading' and 'voicing'. The def attribute may be used to create a connection with a <layerDef> element where logical and visual information about the layer is recorded. Alternatively, the n attribute may be used as a reference to a <layerDef> element with the same value in its n attribute. If neither def nor n attributes are present, then encoding order of the layers is presumed to match the encoding order of the layer definitions.

<mRest/>

<mRest/> (measure rest) – Complete measure rest in any meter.
ModuleMEI.cmn — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.mRest.log (att.duration.musical (@dur)) (att.event (att.timestamp.musical (@tstamp)) (att.staffident (@staff)) (att.layerident (@layer)) ) att.mRest.vis (att.cutout (@cutout)) (att.staffloc (@loc)) (att.typography (@fontfam, @fontname, @fontsize, @fontstyle, @fontweight)) att.mRest.gesatt.mRest.anl
Member of
Contained by
MEI.shared: layer
May containEmpty element
Declaration
element mRest
{
   tido_att.common.attributes,
   tido_att.mRest.log.attributes,
   tido_att.mRest.vis.attributes,
   tido_att.mRest.ges.attributes,
   tido_att.mRest.anl.attributes,
   empty
}
NoteAutomatically-generated numbering of consecutive measures of rest may be controlled via the multi.number attribute on the <scoreDef> or <staffDef> elements.

<mdiv>

<mdiv> (musical division) – Contains a subdivision of the body of a musical text.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.typed (@type, @subtype)
Member of
Contained by
MEI.shared: body mdiv
May contain
MEI.shared: mdiv score
Declaration
element mdiv
{
   tido_att.common.attributes,
   tido_att.typed.attributes,
   ( ( model.scoreLike?, model.partsLike? ) | model.mdivLike* )
}
NoteThe <mdiv> element may contain one or both of 2 possible views of the music. The score view is the traditional full and open score while the parts view contains each performer's view of the score; that is, his part. These 2 views are necessary because it is not always possible or desirable to generate one from the other. The <score> and <parts> elements are placed here and not directly within the <body> element because score and part characteristics may change from <mdiv> to <mdiv>. For example, the 2nd movement of a symphony may require different performing forces (and therefore different score and part layout) than the other movements. The <mdiv> element may be recursively nested in order to represent music which exhibits this kind of structure. For example, an opera is normally divided into acts, which are in turn divided into scenes.

<measure>

<measure> Unit of musical time consisting of a fixed number of note-values of a given type, as determined by the prevailing meter, and delimited in musical notation by bar lines.
ModuleMEI.cmn — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.measure.log (@left, @right) (att.meterconformance.bar (@metcon, @control)) att.typed (@type, @subtype)
Member of
Contained by
MEI.shared: ending section
May contain
Declaration
element measure
{
   tido_att.common.attributes,
   tido_att.measure.log.attributes,
   tido_att.typed.attributes,
   (
      model.appLike
    | model.divLike
    | model.milestoneLike.musicmodel.staffDefLike
    | model.annotLike
    | model.graphicprimitiveLike
    | model.editLike
    | model.transcriptionLike
    | model.measurePart
   )*
}
NoteIn MEI, the <measure> element is a grouping mechanism for events and control events. Pointing attributes make it possible to connect this element to other internal or external entities, such as media objects or annotations. The width attribute may be used to capture the width of the measure for interchange with music printing systems that utilize this information for printing.

<mei>

<mei> Contains a single MEI-conformant document, consisting of an MEI header and a musical text, either in isolation or as part of an meiCorpus element.
ModuleMEI.shared — Specifications
Attributesatt.meiversion (@meiversion) att.id (@xml:id)
Contained by
May contain
MEI.header: meiHead
MEI.shared: music
Declaration
element mei
{
   tido_att.meiversion.attributes,
   tido_att.id.attributes,
   tido_meiHead,
   tido_music
}
Schematron
<sch:rule context="mei:*[@staff]"> <sch:assert test="every $i in tokenize(@staff, '\s+') satisfies $i=//mei:staffDef/@n">The values in @staff must correspond to @n attribute of a staffDef element.</sch:assert></sch:rule>
NoteThe <mei> element defines an instance of a document encoded with the MEI schema. It is the document element for a single document containing a header and data. The name of this element should not be changed by any customization in order to assure an absolute minimum level of MEI compliance.

<meiHead>

<meiHead> (MEI header) – Supplies the descriptive and declarative metadata prefixed to every MEI-conformant text.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.meiversion (@meiversion)
typeSpecifies the kind of document to which the header is attached, for example whether it is a corpus or individual text.
StatusOptional
Legal values are:
music
Header is attached to a music document.
corpus
Header is attached to a corpus.
Contained by
MEI.shared: mei
May contain
Declaration
element meiHead
{
   tido_att.common.attributes,
   tido_att.meiversion.attributes,
   attribute type { text }?,
   altId*,
   tido_fileDesc,
   tido_model.headerPart_sequenceOptional,
   revisionDesc?
}
NoteIn order to encourage uniformity in the provision of metadata across document types, this element is modelled on an element in the Text Encoding Initiative (TEI) standard. This information is often essential in a machine-readable environment. Five sub-elements must be encoded in the following order: <altId>(optional), <fileDesc>(required), <encodingDesc>(optional), <workDesc>(optional), and <revisionDesc>(optional). These elements and their sub-elements provide: a unique identifier for the MEI file, bibliographic information about the MEI file and its sources, information about the encoding process, information about the creation of the work being encoded, and statements regarding significant revisions of the file. The xml:lang attribute may be used to indicate the language in which the metadata content of the header is provided.

<mensuration>

<mensuration> Captures information about mensuration within bibliographic descriptions.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.mensur.log (@dot, @sign) (att.duration.ratio (@num, @numbase)) (att.slashcount (@slash))
Member of
Contained by
MEI.header: work
May containCharacter data only
Declaration
element mensuration
{
   tido_att.common.attributes,
   tido_att.mensur.log.attributes,
   text
}

<meter>

<meter> Captures information about the time signature within bibliographic descriptions.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.meterSig.log (@count, @sym, @unit)
Member of
Contained by
MEI.header: work
May containCharacter data only
Declaration
element meter
{
   tido_att.common.attributes,
   tido_att.meterSig.log.attributes,
   text
}
NoteThis element is used exclusively within bibliographic descriptions. Do not confuse <meter> with the <meterSig> or <meterSigGrp> or attributes used by staffDef and scoreDef to record this data within the body of an MEI file.

<meterSig/>

<meterSig/> (meter signature) – Written meter signature.
ModuleMEI.cmn — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.meterSig.log (@count, @sym, @unit)
Member of
Contained by
MEI.cmn: beam
MEI.shared: layer scoreDef staffDef
May containEmpty element
Declaration
element meterSig
{
   tido_att.common.attributes,
   tido_att.meterSig.log.attributes,
   empty
}
Schematron@count and @unit must occur together.
<sch:rule context="mei:meterSig"> <sch:report test="not(@count and @unit)">Time signature must be complete (both @count and @unit are required).</sch:report></sch:rule>
ExampleA valid <meterSig/> containing all required attributes
<staffDef n="1lines="5xml:id="d113">  <meterSig xml:id="d114count="4unit="4"/> </staffDef>
ExampleAn invalid <meterSig/> without the unit attribute
<staffDef n="1lines="5xml:id="d115">  <meterSig xml:id="d116count="4"/> </staffDef>
ExampleAn invalid <meterSig/> without the count attribute
<staffDef n="1lines="5xml:id="d117">  <meterSig xml:id="d118unit="4"/> </staffDef>

<music>

<music> Contains a single musical text of any kind, whether unitary or composite, for example, an etude, opera, song cycle, symphony, or anthology of piano solos.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.meiversion (@meiversion)
Contained by
MEI.shared: mei
May contain
MEI.shared: body
Declaration
element music
{
   tido_att.common.attributes,
   tido_att.meiversion.attributes,
   model.resourceLike*,
   tido_macro.musicPart
}

<normalization>

<normalization> Indicates the extent of normalization or regularization of the original source carried out in converting it to electronic form.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.regularmethod (@method)
Member of
Contained by
MEI.header: editorialDecl
May contain
MEI.shared: p
Declaration
element normalization
{
   tido_att.common.attributes,
   tido_att.regularmethod.attributes,
   model.pLike+
}
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<note>

<note> A single pitched event.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.note.log (att.event (att.timestamp.musical (@tstamp)) (att.staffident (@staff)) (att.layerident (@layer)) ) (att.articulation (@artic)) (att.augmentdots (@dots)) (att.duration.musical (@dur)) (att.pitched (att.pitch (@pname)) (att.octave (@oct)) ) (att.syltext (@syl)) att.note.vis (att.staffloc (@loc)) (att.stems (@stem.dir, @stem.len, @stem.mod, @stem.pos, @stem.x, @stem.y)) (att.typography (@fontfam, @fontname, @fontsize, @fontstyle, @fontweight)) att.note.ges (@oct.ges, @pname.ges, @pnum) (att.accidental.performed (@accid.ges)) (att.note.ges.cmn (@gliss) (att.graced (@grace, @grace.time)) )
Member of
Contained by
MEI.cmn: beam
MEI.shared: chord layer
May contain
MEI.shared: accid
Declaration
element note
{
   tido_att.common.attributes,
   tido_att.note.log.attributes,
   tido_att.note.vis.attributes,
   tido_att.note.ges.attributes,
   (
      model.noteModifierLike
    | model.verseLike
    | model.sylLike
    | model.appLike
    | model.editLike
    | model.transcriptionLike
   )*
}
NoteThe <accid> and <artic> sub-elements may be used instead of the note element's attributes when accid and artic represent first-class objects, e.g., when they require attributes, such as x and y location attributes. Similarly, the <syl> sub-element may be used instead of the syl attribute. The verse sub-element may be used to group text syllables by verse. The colored attribute may be used to indicate coloration. In the mensural repertoire, coloration is a temporary change in the underlying mensuration from perfect to imperfect. In the CMN repertoire, coloration is an inversion of the note head's normal rendition, that is, the note head is void when it would otherwise be filled and vice versa. Do not confuse this with visual color.

<notesStmt>

<notesStmt> (notes statement)– Collects any notes providing information about a text additional to that recorded in other parts of the bibliographic description.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: fileDesc source work
May containEmpty element
Declaration
element notesStmt
{
   tido_att.common.attributes,
   model.headLike*,
   model.annotLike+
}
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<ornam>

<ornam> An element indicating an ornament that is not a mordent, turn, or trill.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.ornam.log (att.controlevent (att.staffident.req (@staff)) (att.timestamp.musical (@tstamp)) (att.layerident (@layer)) ) (att.startendid (@endid) (att.startid (@startid)) ) (att.timestamp2.musical (@tstamp2)) att.ornam.vis (att.placement (@place)) att.typed (@type, @subtype)
Member of
Contained by
MEI.cmn: measure
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element ornam
{
   tido_att.common.attributes,
   tido_att.ornam.log.attributes,
   tido_att.ornam.vis.attributes,
   tido_att.typed.attributes,
   (
      text
    | model.textphraseLike.limited
    | model.graphicprimitiveLike
    | model.editLike
    | model.transcriptionLike
   )*
}
Schematron
<sch:rule context="mei:ornam"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real</sch:assert></sch:rule>
NoteThe glyph of the ornament may be indicated with the altsym attribute, and it is recommended to provide an expansion of the ornament on the staff content. The starting point of the ornament may be indicated by either a startid, tstamp, tstamp.ges, or tstamp.real attribute. It is a semantic error not to specify one of these attributes.

<otherChar>

<otherChar> (other distinguishing characteristic) – Any characteristic that serves to differentiate a work or expression from another.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: work
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element otherChar
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}

<p>

<p> (paragraph) – One or more text phrases that form a logical prose passage.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element p { tido_att.common.attributes, ( text | model.paracontentPart )* }
NoteA paragraph is usually typographically distinct: The text usually begins on a new line and the first letter of the content is often indented, enlarged, or both.
NoteThis element is modelled on elements in the Encoded Archival Description, Text Encoding Initiative (TEI), and HTML standards.

<pedal/>

<pedal/> Piano pedal mark.
ModuleMEI.cmn — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.pedal.log (@dir) (att.controlevent (att.staffident.req (@staff)) (att.timestamp.musical (@tstamp)) (att.layerident (@layer)) ) (att.startendid (@endid) (att.startid (@startid)) ) att.pedal.vis (@form) (att.placement (@place)) (att.typography (@fontfam, @fontname, @fontsize, @fontstyle, @fontweight)) att.typed (@type, @subtype)
Member of
Contained by
MEI.cmn: measure
May containEmpty element
Declaration
element pedal
{
   tido_att.common.attributes,
   tido_att.pedal.log.attributes,
   tido_att.pedal.vis.attributes,
   tido_att.typed.attributes,
   empty
}
Schematron
<sch:rule context="mei:pedal[@form][@dir=('bounce', 'up')]"> <sch:let name="form" value="@form"/> <sch:assert test="preceding::mei:pedal[1][@form=$form]"> Pedal styles must be consistent between pedal down and pedal up.</sch:assert></sch:rule>
Schematron
<sch:rule context="mei:pedal"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real</sch:assert></sch:rule>
ExampleA valid sequence of <pedal/> elements
<pedal place="belowlayer="1dir="down"  tstamp="1form="linestaff="1xml:id="d127"/> <pedal place="belowlayer="1dir="bounce"  tstamp="1form="linestaff="1xml:id="d128"/> <pedal place="belowlayer="1dir="up"  tstamp="2form="linestaff="1xml:id="d129"/>
ExampleAn invalid sequence of <pedal/> elements
<pedal place="belowlayer="1dir="down"  tstamp="1form="linestaff="1xml:id="d130"/> <pedal place="belowlayer="1dir="bounce"  tstamp="1form="linestaff="1xml:id="d131"/> <pedal place="belowlayer="1dir="up"  tstamp="2form="pedstarstaff="1xml:id="d132"/>
ExampleAn invalid sequence of <pedal/> elements
<pedal place="belowlayer="1dir="down"  tstamp="1form="linestaff="1xml:id="d133"/> <pedal place="belowlayer="1dir="bounce"  tstamp="1form="altpedstarstaff="1xml:id="d134"/> <pedal place="belowlayer="1dir="up"  tstamp="2form="linestaff="1xml:id="d135"/>
ExampleA valid sequence of <pedal/> elements
<pedal place="belowlayer="1dir="half"  tstamp="1form="altpedstarstaff="1xml:id="d136"/> <pedal place="belowlayer="1dir="up"  tstamp="2form="altpedstarstaff="1xml:id="d137"/>
NoteThe starting point of the pedal mark may be indicated by either a startid, tstamp, tstamp.ges, or tstamp.real attribute. It is a semantic error not to specify one of these attributes.

<perfDuration>

<perfDuration> (performance duration) – Used to express the duration of performance of printed or manuscript music or the playing time for a sound recording, videorecording, etc.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
isodurHolds a W3C duration value, e.g., "PT2H34M45.67S".
StatusOptional
Datatype
xsd:duration
Member of
Contained by
MEI.header: physDesc work
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element perfDuration
{
   tido_att.common.attributes,
   attribute isodur { xsd:duration }?,
   ( text | model.textphraseLike.limited )*
}

<perfMedium>

<perfMedium> (performance medium) – Indicates the number and character of the performing forces used in a musical composition.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: work
May contain
MEI.header: perfResList
Declaration
element perfMedium
{
   tido_att.common.attributes,
   model.headLike*,
   castList?,
   perfResList?,
   model.annotLike*
}
NoteArrangements are coded for the medium of the work being described, not for the original medium.

<perfRes>

<perfRes> (performance resource) – Name of an instrument on which a performer plays, a performer's voice range, or a standard performing ensemble designation.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
countIndicates the number of performers.
StatusOptional
Datatype
xsd:positiveInteger
soloMarks this instrument or vocal part as a soloist. Do not use this attribute for a solo instrument which is not accompanied.
StatusOptional
Datatype
data.BOOLEAN
Contained by
MEI.header: perfResList
May containCharacter data only
Declaration
element perfRes
{
   tido_att.common.attributes,
   attribute count { xsd:positiveInteger }?,
   attribute solo { data.BOOLEAN }?,
   text*
}

<perfResList>

<perfResList> Several instrumental or vocal resources treated as a group.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
countIndicates the number of performers.
StatusOptional
Datatype
xsd:positiveInteger
Contained by
May contain
MEI.header: perfRes perfResList
Declaration
element perfResList
{
   tido_att.common.attributes,
   attribute count { xsd:positiveInteger }?,
   model.headLike*,
   ( perfRes | perfResList )*
}
NoteThe function of instrumentalists or vocalists is represented by the choice of <perfRes> and <perfResList> child elements. Arrangements are coded for the medium of the work being described, not for the original medium.

<periodName>

<periodName> (period name) – A label that describes a period of time, such as 'Baroque' or '3rd Style period'.
ModuleMEI.namesdates — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.name (@nymref, @role) att.typed (@type, @subtype)
Member of
Contained by
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element periodName
{
   tido_att.common.attributes,
   tido_att.name.attributes,
   tido_att.typed.attributes,
   ( text | model.textphraseLike | model.editLike | model.transcriptionLike )*
}
NoteThe name of the list from which a controlled value is taken may be recorded using the authority attribute.

<persName>

<persName> (personal name) – Designation for an individual, including any or all of that individual's forenames, surnames, honorific titles, and added names.
ModuleMEI.namesdates — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.name (@nymref, @role) att.typed (@type, @subtype)
Member of
Contained by
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element persName
{
   tido_att.common.attributes,
   tido_att.name.attributes,
   tido_att.typed.attributes,
   ( text | model.textphraseLike | model.editLike | model.transcriptionLike )*
}
NoteName sub-parts may be recorded in <persName> sub-elements. The name of the list from which a controlled value is taken may be recorded using the authority attribute.
NoteThis element is modelled on an element in the Encoded Archival Description (EAD) standard.

<physDesc>

<physDesc> (physical description) – Container for information about the appearance, construction, or handling of physical materials, such as their dimension, quantity, color, style, and technique of creation.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: source
May contain
Declaration
element physDesc
{
   tido_att.common.attributes,
   model.pLike*,
   model.physDescPart*
}
NoteDedicatory text and title page features may also be encoded here when they are not transcribed as part of the front or back matter; i.e., when they are considered to be meta-data rather than a transcription.
NoteThis element is modelled on an element in the Encoded Archival Description (EAD) standard.

<physMedium>

<physMedium> (physical medium) – Records the physical materials used in the source, such as ink and paper.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: physDesc
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element physMedium
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}
NoteAll materials may be described in a single <physMedium> element or multiple elements may be used, one for each medium.
NoteThis element is modelled on an element in the Encoded Archival Description (EAD) standard.

<plateNum>

<plateNum> (plate number) – Designation assigned to a resource by a music publisher, usually printed at the bottom of each page, and sometimes appearing also on the title page.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: physDesc
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element plateNum
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}
NoteWhile it is often called a "plate number", it does not always contain numbers. The facs attribute may be used to record the location of the plate number in a facsimile image.

<playingSpeed>

<playingSpeed> Playing speed for a sound recording is the speed at which the carrier must be operated to produce the sound intended (e.g., 33 1/3 rpm, 19 cm/s, etc.).
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: physDesc
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element playingSpeed
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}

<price>

<price> The cost of access to a bibliographic item.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.quantity (@quantity)
currencyMonetary unit.
StatusOptional
Datatype
xsd:NMTOKEN
Member of
Contained by
MEI.header: availability
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element price
{
   tido_att.common.attributes,
   tido_att.quantity.attributes,
   attribute currency { xsd:NMTOKEN }?,
   ( text | model.textphraseLike.limited )*
}
NoteBest practice suggests the use of controlled vocabulary for the currency attribute, such as the ISO 4217 list of currency designators.

<projectDesc>

<projectDesc> (project description) – Project-level meta-data describing the aim or purpose for which the electronic file was encoded, funding agencies, etc. together with any other relevant information concerning the process by which it was assembled or collected.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: encodingDesc
May contain
MEI.shared: p
Declaration
element projectDesc
{
   tido_att.common.attributes,
   model.headLike*,
   model.pLike+
}
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<provenance>

<provenance> The record of ownership or custodianship of an item.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element provenance
{
   tido_att.common.attributes,
   ( eventList? | ( text | model.textphraseLike.limited )* )
}
NoteThis element is modelled on elements in the Encoded Archival Description (EAD) and Text Encoding Initiative (TEI) standards.

<ptr/>

<ptr/> (pointer) – Defines a pointer to another location, using only attributes to describe the destination.
ModuleMEI.ptrref — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.internetmedia (@mimetype) att.typed (@type, @subtype)
Member of
Contained by
May containEmpty element
Declaration
element ptr
{
   tido_att.common.attributes,
   tido_att.internetmedia.attributes,
   tido_att.typed.attributes,
   empty
}
NoteUnlike the <ref> element, <ptr> cannot contain text or sub-elements to describe the referenced object.
NoteThis element is modelled on elements in the Encoded Archival Description (EAD) and Text Encoding Initiative (TEI) standards.

<pubStmt>

<pubStmt> (publication statement) – Container for information regarding the publication or distribution of a bibliographic item, including the publisher's name and address, the date of publication, and other relevant details.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: fileDesc source
May contain
MEI.header: availability unpub
MEI.shared: address respStmt
Declaration
element pubStmt { tido_att.common.attributes, ( unpub? | model.pubStmtPart* ) }
NoteWhen an item is unpublished, use only the <unpub> sub-element.
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<ref>

<ref> (reference) – Defines a reference to another location that may contain text and sub-elements to describe the destination.
ModuleMEI.ptrref — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.internetmedia (@mimetype) att.typed (@type, @subtype)
Member of
Contained by
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element ref
{
   tido_att.common.attributes,
   tido_att.internetmedia.attributes,
   tido_att.typed.attributes,
   ( text | model.textphraseLike )*
}
NoteUnlike the <ptr> element, <ref> may contain text and sub-elements to describe the destination.
NoteThis element is modelled on elements in the Encoded Archival Description (EAD) and TEI standards.

<rend>

<rend> (render) – A formatting element indicating special visual rendering, e.g., bold or italicized, of a text word or phrase.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.typography (@fontfam, @fontname, @fontsize, @fontstyle, @fontweight)
altrendUsed to extend the values of the rend attribute.
StatusOptional
Datatype1–∞ occurrences of 
xsd:NMTOKEN
separated by whitespace
rendCaptures the appearance of the element's contents using MEI-defined descriptors.
StatusOptional
Datatype1–∞ occurrences of 
data.TEXTRENDITION
separated by whitespace
rotationA positive value for rotation rotates the text in a counter-clockwise fashion, while negative values produce clockwise rotation.
StatusOptional
Datatype
data.DEGREES
valignSpecifies the vertical position of the element content relative to the surrounding text.
StatusOptional
Legal values are:
top
Aligns the top of the content with the top of the surrounding text.
middle
Aligns the middle of the content with the middle of the surrounding text.
bottom
Aligns the bottom of the content with the bottom of the surrounding text.
baseline
Aligns the baseline of the content with the baseline of the surrounding text.
Member of
Contained by
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element rend
{
   tido_att.common.attributes,
   tido_att.typography.attributes,
   attribute altrend { list { xsd:NMTOKEN+ } }?,
   attribute rend { list { data.TEXTRENDITION+ } }?,
   attribute rotation { data.DEGREES }?,
   attribute valign { text }?,
   ( text | model.textphraseLike | model.editLike | model.transcriptionLike )*
}
NoteWhen an entire element should be rendered in a special way, a style sheet function should be used instead of the <rend> element.

<respStmt>

<respStmt> (responsibility statement) – Names one or more individuals, groups, or in rare cases, mechanical processes, responsible for creation or realization of the intellectual or artistic content.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
May contain
MEI.namesdates: corpName geogName persName
Declaration
element respStmt { tido_att.common.attributes, ( resp | model.nameLike )* }
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<rest/>

<rest/> A non-sounding event found in the source being transcribed.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.rest.log (att.duration.musical.req (@dur)) (att.augmentdots (@dots)) (att.event (att.timestamp.musical (@tstamp)) (att.staffident (@staff)) (att.layerident (@layer)) ) att.rest.vis (att.staffloc (@loc)) (att.typography (@fontfam, @fontname, @fontsize, @fontstyle, @fontweight))
Member of
Contained by
MEI.cmn: beam
MEI.shared: layer
May containEmpty element
Declaration
element rest
{
   tido_att.common.attributes,
   tido_att.rest.log.attributes,
   tido_att.rest.vis.attributes,
   empty
}
Schematron
<sch:rule context="mei:rest[@line]"> <sch:let name="thisstaff"  value="ancestor::mei:staff/@n"/> <sch:assert test="number(@line) <= number(preceding::mei:staffDef[@n=$thisstaff and @lines][1]/@lines)">The value of @line must be less than or equal to the number of lines on the staff.</sch:assert></sch:rule>
NoteSee (Read, p. 96-102). Do not confuse this element with the <space> element, which is used as an aid for visual alignment.

<revisionDesc>

<revisionDesc> (revision description) – Container for information about alterations that have been made to an MEI file.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: meiHead
May contain
MEI.header: change
Declaration
element revisionDesc { tido_att.common.attributes, change+ }
NoteIt is recommended that changes be recorded in reverse chronological order, with the most recent alteration first.
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<samplingDecl>

<samplingDecl> (sampling declaration) – Contains a prose description of the rationale and methods used in sampling texts in the creation of a corpus or collection.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: encodingDesc
May contain
MEI.shared: p
Declaration
element samplingDecl
{
   tido_att.common.attributes,
   model.headLike*,
   model.pLike+
}
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<score>

<score> Full score view of the musical content.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.typed (@type, @subtype)
Member of
Contained by
MEI.shared: mdiv
May contain
Declaration
element score
{
   tido_att.common.attributes,
   tido_att.typed.attributes,
   (
      model.appLike
    | model.divLike
    | model.milestoneLike.music
    | model.annotLike
    | model.graphicprimitiveLike
    | model.editLike
    | model.transcriptionLike
    | model.scorePart
   )*
}
NoteSince the <measure> element is optional, a score may consist entirely of pagebreaks, each of which points to a page image. <div> elements are allowed preceding and following sections of music data in order to accommodate blocks of explanatory text.

<scoreDef>

<scoreDef> (score definition) – Container for score meta-information.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.shared: ending score section
May contain
MEI.cmn: meterSig
MEI.shared: keySig staffGrp
Declaration
element scoreDef
{
   tido_att.common.attributes,
   model.chordTableLike?,
   model.symbolTableLike?,
   model.keySigLike?,
   model.meterSigLike?,
   pgHead?,
   pgHead2?,
   pgFoot?,
   pgFoot2?,
   instrGrp?,
   model.staffGrpLike?,
   grpSym*
}

<scoreFormat>

<scoreFormat> Describes the type of score used to represent a musical composition (e.g., short score, full score, condensed score, close score, etc.).
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: physDesc
May containCharacter data only
Declaration
element scoreFormat { tido_att.common.attributes, text }

<section>

<section> Segment of music data.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.typed (@type, @subtype)
Member of
Contained by
MEI.shared: ending score section
May contain
MEI.cmn: measure
Declaration
element section
{
   tido_att.common.attributes,
   tido_att.typed.attributes,
   expansion*,
   (
      model.appLike
    | model.divLike
    | model.milestoneLike.music
    | model.annotLike
    | model.graphicprimitiveLike
    | model.editLike
    | model.transcriptionLike
    | model.sectionPart
   )*
}
Schematron
<sch:rule context="mei:section[mei:expansion]"> <sch:assert test="descendant::mei:section|descendant::mei:ending|descendant::mei:rdg">Must have descendant section, ending, or rdg elements that can be pointed to.</sch:assert></sch:rule>
NoteThis element functions as a container for actual music data. Pointing attributes make it possible to connect this element to other internal or external entities, such as media objects or annotations.

<segmentation>

<segmentation> Describes the principles according to which the musical text has been segmented, for example into movements, sections, etc.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: editorialDecl
May contain
MEI.shared: p
Declaration
element segmentation { tido_att.common.attributes, model.pLike+ }
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<seriesStmt>

<seriesStmt> (series statement) – Groups information about the series, if any, to which a publication belongs.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
May contain
MEI.header: contents seriesStmt
MEI.shared: respStmt title
Declaration
element seriesStmt
{
   tido_att.common.attributes,
   model.titleLike+,
   ( editor | respStmt )*,
   ( model.identifierLike | biblScope | contents | seriesStmt )*
}
NoteThe <title> sub-element records the series title, the <respStmt> element records the person or group responsible for the series, and the <identifier> element contains a series identifier. The <contents> element should be used when it is necessary to enumerate the content of the series, but not describe each component. The <seriesStmt> element is provided within seriesStmt for the description of a sub-series.
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<slur>

<slur> Indication of 1) a "unified melodic idea" or 2) performance technique.
ModuleMEI.cmn — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.slur.log (att.spanning.req (att.timestamp.musical (@tstamp)) (att.timestamp2.musical (@tstamp2)) (att.startendid (@endid) (att.startid (@startid)) ) (att.staffident (@staff)) (att.layerident (@layer)) ) att.typed (@type, @subtype)
Member of
Contained by
MEI.cmn: measure
May containEmpty element
Declaration
element slur
{
   tido_att.common.attributes,
   tido_att.slur.log.attributes,
   tido_att.typed.attributes,
   curve*
}
Schematron
<sch:rule context="mei:slur"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2</sch:assert></sch:rule>
ExampleA valid <slur> with tstamp and tstamp2 attributes
<slur tstamp="1tstamp2="0m+2"  xml:id="d089"/>
ExampleA valid <slur> with startid and endid attributes
<slur startid="#n01endid="#n02"  xml:id="d090"/>
ExampleA valid <slur> with tstamp and endid attributes
<slur tstamp="1endid="#n02xml:id="d091"/>
ExampleA valid <slur> with startid and tstamp2 attributes
<slur startid="#n01tstamp2="0m+2"  xml:id="d092"/>
ExampleA valid <slur> with a single value in staff and a layer attribute
<slur xml:id="d093layer="1staff="1"  tstamp="1tstamp2="0m+2"/>
ExampleAn invalid <slur> without an attribute for the end point
<slur xml:id="d094startid="#n01"/>
ExampleAn invalid <slur> without an attribute for the start point
<slur xml:id="d095endid="#n02"/>
NoteHistorically, the term "slur" indicated two notes performed legato, while the term "phrase" was used for a "unified melodic idea". Nowadays, however, "slur" often has the same meaning as "phrase", since the visual rendition of the two concepts is the same. Generic MEI provides two distinct elements so that those users wishing to maintain a distinction for historical reasons may do so. This basic MEI customization does not maintain this distiction, and employs the more generic <slur> element.

<soundChan>

<soundChan> (sound channels) – Reflects the number of apparent sound channels in the playback of a recording (monaural, stereophonic, quadraphonic, etc.).
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
numRecords the channel configuration in numeric form.
StatusOptional
Datatype
xsd:positiveInteger
Member of
Contained by
MEI.header: physDesc
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element soundChan
{
   tido_att.common.attributes,
   attribute num { xsd:positiveInteger }?,
   ( text | model.textphraseLike.limited )*
}
NoteThe number of apparent playback channels can differ from the number of physical channels of the recording medium, i.e., 2-track monophonic recordings. In this example, the soundChan element should record the fact that there is a single output channel, while the <trackConfig> element should capture the existence of two physical tracks. This element is analogous to MARC field 344 subfield g.

<source>

<source> A bibliographic description of a source used in the creation of the electronic file.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: sourceDesc
May contain
Declaration
element source
{
   tido_att.common.attributes,
   model.identifierLike*,
   titleStmt?,
   tido_macro.bibldescPart,
   history?,
   langUsage?,
   contents?,
   biblList*,
   notesStmt?,
   classification?,
   itemList?,
   componentGrp?,
   relationList?
}
NoteMultiple <physDesc> sub-elements may be used to describe the physically separate parts of a single source. The data attribute may be used to reference one or more features that occur in this particular source. A URI referencing a description of the related item may be placed in the target attribute.
NoteThis element is modelled on elements in the Text Encoding Initiative (TEI) and Encoded Archival Description (EAD) standards.

<sourceDesc>

<sourceDesc> (source description) – A container for the descriptions of the source(s) used in the creation of the electronic file.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: fileDesc
May contain
MEI.header: source
Declaration
element sourceDesc { tido_att.common.attributes, model.headLike*, source+ }
NoteThis element is recommended where the MEI file is a transcription of existing music, but is not required when the data is originally created in MEI form.

<space/>

<space/> A placeholder used to fill an incomplete measure, layer, etc. most often so that the combined duration of the events equals the number of beats in the measure.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.space.log (att.duration.musical.req (@dur)) (att.augmentdots (@dots)) (att.event (att.timestamp.musical (@tstamp)) (att.staffident (@staff)) (att.layerident (@layer)) )
Member of
Contained by
MEI.cmn: beam
MEI.shared: layer
May containEmpty element
Declaration
element space
{
   tido_att.common.attributes,
   tido_att.space.log.attributes,
   empty
}

<specRepro>

<specRepro> (special reproduction characteristic) – The equalization system, noise reduction system, etc. used in making the recording (e.g., NAB, DBX, Dolby, etc.).
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: physDesc
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element specRepro
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}

<staff>

<staff> A group of equidistant horizontal lines on which notes are placed in order to represent pitch or a grouping element for individual 'strands' of notes, rests, etc. that may or may not actually be rendered on staff lines; that is, both diastematic and non-diastematic signs.
ModuleMEI.shared — Specifications
Attributesatt.commonPart (@label, @xml:base) (att.id (@xml:id))
nprovides a name or number designation for an element. While the value need not be unique, it is required to be a single token. Must be an integer.
StatusRequired
Datatype
xsd:positiveInteger
Member of
Contained by
MEI.cmn: measure
May contain
MEI.shared: layer
Declaration
element staff
{
   tido_att.commonPart.attributes,
   attribute n { xsd:positiveInteger },
   (
      model.appLike
    | model.divLike
    | model.milestoneLike.music
    | model.annotLike
    | model.graphicprimitiveLike
    | model.editLike
    | model.transcriptionLike
    | model.staffPart
   )*
}
ExampleA valid staff element with a positive integer n value
<measure n="1xml:id="d080">  <staff n="1xml:id="d081">   <layer n="1xml:id="d082"/>  </staff> </measure>
ExampleAn invalid staff element missing n
<measure n="1xml:id="d083">  <staff xml:id="d084">   <layer n="1xml:id="d085"/>  </staff> </measure>
ExampleAn invalid staff element with a non-integer n
<measure n="1xml:id="d086">  <staff n="s1xml:id="d087">   <layer n="1xml:id="d088"/>  </staff> </measure>
NoteThe def attribute may be used to create a connection with a <staffDef> element where logical and visual information about the staff is recorded. Alternatively, the n attribute may be used as a reference to a <staffDef> element with the same value in its n attribute. If neither def nor n attributes are present, then the encoding order of the staves is presumed to match the encoding order of the staff defintions.

<staffDef>

<staffDef> (staff definition) – Container for staff meta-information.
ModuleMEI.shared — Specifications
Attributesatt.commonPart (@label, @xml:base) (att.id (@xml:id)) att.staffDef.vis (@grid.show, @layerscheme, @lines, @lines.color, @lines.visible, @spacing)
nprovides a name or number designation for an element. While the value need not be unique, it is required to be a single token. Must be an integer.
StatusRequired
Datatype
xsd:positiveInteger
Member of
Contained by
MEI.cmn: measure
May contain
MEI.cmn: meterSig
MEI.shared: clef keySig
Declaration
element staffDef
{
   tido_att.commonPart.attributes,
   tido_att.staffDef.vis.attributes,
   attribute n { xsd:positiveInteger },
   model.labelLike*,
   ( model.instrDefLike | model.layerDefLike | model.staffDefPart )*
}
Schematron
<sch:rule context="mei:staffDef"> <sch:let name="thisstaff" value="@n"/> <sch:assert test="@n">A staffDef must have an n attribute.</sch:assert> <sch:assert test="@lines or preceding::mei:staffDef[@n=$thisstaff and @lines]">The first occurrence of a staff must declare the number of staff lines.</sch:assert> <sch:assert test="count(mei:clef) + count(mei:clefGrp) < 2">Only one clef or clefGrp is permitted.</sch:assert></sch:rule>
Schematron
<sch:rule context="mei:staffDef[ancestor::mei:staff]"> <sch:let name="thisstaff" value="@n"/> <sch:assert test="ancestor::mei:staff/@n eq $thisstaff">If a staffDef appears in a staff, it must bear the same @n than this staff.</sch:assert></sch:rule>
Schematron
<sch:rule context="mei:staffDef[@clef.line and @lines]"> <sch:assert test="number(@clef.line) <= number(@lines)">The clef position must be less than or equal to the number of lines on the staff.</sch:assert></sch:rule>
Schematron
<sch:rule context="mei:staffDef[@clef.line and not(@lines)]"> <sch:let name="thisstaff" value="@n"/> <sch:let name="stafflines"  value="preceding::mei:staffDef[@n=$thisstaff and @lines][1]/@lines"/> <sch:assert test="number(@clef.line) <= number($stafflines)">The clef position must be less than or equal to the number of lines on the staff.</sch:assert></sch:rule>
Schematron
<sch:rule context="mei:staffDef[@tab.strings and @lines]"> <sch:let name="countTokens"  value="count(tokenize(normalize-space(@tab.strings), '\s'))"/> <sch:assert test="$countTokens = 1 or $countTokens = @lines">The tab.strings attribute must have the same number of values as there are staff lines.</sch:assert></sch:rule>
Schematron
<sch:rule context="mei:staffDef[@tab.strings and not(@lines)]"> <sch:let name="countTokens"  value="count(tokenize(normalize-space(@tab.strings), '\s'))"/> <sch:let name="thisStaff" value="@n"/> <sch:assert test="$countTokens = 1 or $countTokens = preceding::mei:staffDef[@n=$thisStaff and @lines][1]/@lines">The tab.strings attribute must have the same number of values as there are staff lines.</sch:assert></sch:rule>
Schematron
<sch:pattern> <sch:rule context="mei:staffDef[@lines.color and @lines]">  <sch:let name="countTokens"   value="count(tokenize(normalize-space(@lines.color), '\s'))"/>  <sch:assert test="$countTokens = 1 or $countTokens = @lines">The lines.color attribute    must have either 1) a single value or 2) the same number of values as there are    staff lines.</sch:assert></sch:rule> <sch:rule context="mei:staffDef[@lines.color and not(@lines)]">  <sch:let name="countTokens"   value="count(tokenize(normalize-space(@lines.color), '\s'))"/>  <sch:let name="thisStaff" value="@n"/>  <sch:assert test="$countTokens = 1 or $countTokens = preceding::mei:staffDef[@n=$thisStaff and @lines][1]/@lines">The lines.color attribute must have either 1) a single value or 2) the same number    of values as there are staff lines.</sch:assert></sch:rule></sch:pattern>
Schematron
<sch:pattern> <sch:rule context="mei:staffDef[@ppq][ancestor::mei:scoreDef[@ppq]]">  <sch:let name="staffPPQ" value="@ppq"/>  <sch:let name="scorePPQ"   value="ancestor::mei:scoreDef[@ppq][1]/@ppq"/>  <sch:assert test="($scorePPQ mod $staffPPQ) = 0">The value of ppq must be a factor of    the value of ppq on an ancestor scoreDef.</sch:assert></sch:rule></sch:pattern>
Schematron
<sch:pattern> <sch:rule context="mei:staffDef[@ppq][preceding::mei:scoreDef[@ppq]]">  <sch:let name="staffPPQ" value="@ppq"/>  <sch:let name="scorePPQ"   value="preceding::mei:scoreDef[@ppq][1]/@ppq"/>  <sch:assert test="($scorePPQ mod $staffPPQ) = 0">The value of ppq must be a factor of    the value of ppq on a preceding scoreDef.</sch:assert></sch:rule></sch:pattern>
ExampleA valid <staffDef> with an n attribute
<staffDef lines="5xml:id="d107n="1"/>
ExampleAn invalid <staffDef> missing the n attribute
<staffDef lines="5xml:id="d108"/>
ExampleA valid <staffDef> containing all required attributes and a <clef/> child element
<staffDef lines="5xml:id="d109n="2">  <clef shape="Gline="2xml:id="d110"/> </staffDef>
ExampleA valid <staffDef> containing all required attributes and a <meterSig/> child element
<staffDef lines="5xml:id="d111n="3">  <meterSig count="4unit="4xml:id="d112"/> </staffDef>

<staffGrp>

<staffGrp> (staff group) – A group of bracketed or braced staves.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.staffGrp.vis (@barthru) (att.staffgroupingsym (@symbol))
Member of
Contained by
MEI.shared: scoreDef staffGrp
May contain
MEI.shared: staffDef staffGrp
Declaration
element staffGrp
{
   tido_att.common.attributes,
   tido_att.staffGrp.vis.attributes,
   grpSym*,
   model.labelLike*,
   model.instrDefLike*,
   ( model.staffGrpLike | model.staffDefLike )+,
   grpSym*
}
Schematron
<sch:rule context="mei:staffGrp"> <sch:let name="countstaves"  value="count(descendant::mei:staffDef)"/> <sch:let name="countuniqstaves"  value="count(distinct-values(descendant::mei:staffDef/@n))"/> <sch:assert test="$countstaves eq $countuniqstaves">Each staffDef must have a unique value for the n attribute.</sch:assert></sch:rule>
NoteSystem is the more proper name for this concept (Read, p. 37-38). Bracketed staff groups may contain other bracketed or braced staff groups or single staves. See Read, p. 35-38, examples p. 434, 438.

<stdVals>

<stdVals> (standard values) – Specifies the format used when standardized date or number values are supplied.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: editorialDecl
May contain
MEI.shared: p
Declaration
element stdVals { tido_att.common.attributes, model.pLike+ }
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<styleName>

<styleName> (style name) – A label for a characteristic style of writing or performance, such as 'bebop' or 'rock-n-roll'.
ModuleMEI.namesdates — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.name (@nymref, @role) att.typed (@type, @subtype)
Member of
Contained by
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element styleName
{
   tido_att.common.attributes,
   tido_att.name.attributes,
   tido_att.typed.attributes,
   ( text | model.textphraseLike | model.editLike | model.transcriptionLike )*
}
NoteDo not confuse this element with the <periodName> element. The name of the list from which a controlled value is taken may be recorded using the authority attribute.

<sysReq>

<sysReq> (system requirements) – System requirements for using the electronic item.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: availability
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element sysReq
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}

<term>

<term> Keyword or phrase which describes a resource.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.classcodeident (@classcode) att.typed (@type, @subtype)
Contained by
MEI.header: term termList
May contain
MEI.header: term
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element term
{
   tido_att.common.attributes,
   tido_att.classcodeident.attributes,
   tido_att.typed.attributes,
   ( text | term | model.textphraseLike.limited )*
}
NoteThe classcode attribute may be used to link the term to a terminological source given in a <classCode> element. The <term> element may include other <term> elements in order to allow the creation of coordinated terms; i.e., terms created from a combination of other, independent terms.
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<termList>

<termList> Collection of text phrases which describe a resource.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.classcodeident (@classcode) att.typed (@type, @subtype)
Contained by
MEI.header: classification
May contain
MEI.header: term
Declaration
element termList
{
   tido_att.common.attributes,
   tido_att.classcodeident.attributes,
   tido_att.typed.attributes,
   model.headLike*,
   ( model.labelLike?, term )*
}

<tie>

<tie> An indication that two notes of the same pitch form a single note with their combined rhythmic values.
ModuleMEI.cmn — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) ) att.tie.log (att.controlevent (att.staffident.req (@staff)) (att.timestamp.musical (@tstamp)) (att.layerident (@layer)) ) (att.startendid (@endid) (att.startid (@startid)) ) (att.timestamp2.musical (@tstamp2)) att.typed (@type, @subtype)
Member of
Contained by
MEI.cmn: measure
May containEmpty element
Declaration
element tie
{
   tido_att.common.attributes,
   tido_att.tie.log.attributes,
   tido_att.typed.attributes,
   curve*
}
Schematron
<sch:rule context="mei:tie"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2</sch:assert></sch:rule>
Schematron
<sch:rule context="mei:tie[mei:curve[@bezier or @bulge or @curvedir or @lform or @lwidth or @ho or @startho or @endho or @to or @startto or @endto or @vo or @startvo or @endvo or @x or @y or @x2 or @y2]]"> <sch:assert test="not(@bezier or @bulge or @curvedir or @lform or @lwidth or @ho or @startho or @endho or @to or @startto or @endto or @vo or @startvo or @endvo or @x or @y or @x2 or @y2)"  role="warning">The visual attributes of the tie (@bezier, @bulge, @curvedir, @lform, @lwidth, @ho, @startho, @endho, @to, @startto, @endto, @vo, @startvo, @endvo, @x, @y, @x2, and @y2) will be overridden by visual attributes of the contained curve elements.</sch:assert></sch:rule>
NoteMost often, a tie is rendered as a curved line connecting the two notes. See Read, p. 110-111, 122.

<title>

<title> Title of a bibliographic entity.
ModuleMEI.shared — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
levelIndicates the bibliographic level for a title.
StatusOptional
Legal values are:
a
Analyzed component, such as an article or chapter, within a larger bibliographic entity.
m
Monograph.
j
Journal.
s
Series.
u
Unpublished (including theses and dissertations unless published by a commercial press).
typeCharacterizes the element in some sense, using any convenient classification scheme or typology.
StatusOptional
Datatype
xsd:NMTOKEN
Suggested values include:
main
Main title.
subordinate
Subtitle or title of part.
abbreviated
Abbreviated form of title.
alternative
Alternate title by which the item is also known.
translated
Translated form of title.
uniform
Collective title.
subtypeProvide any sub-classification for the element, additional to that given by its type attribute.
StatusOptional
Datatype
xsd:NMTOKEN
Member of
Contained by
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element title
{
   tido_att.common.attributes,
   attribute level { text }?,
   attribute type
   {
      "main"
    | "subordinate"
    | "abbreviated"
    | "alternative"
    | "translated"
    | "uniform"
    | xsd:NMTOKEN
   }?,
   attribute subtype { xsd:NMTOKEN }?,
   ( text | model.textphraseLike | model.editLike | model.transcriptionLike )*
}
NoteThe type attribute may be used to classify the title according to some convenient typology. Sample values include: main (main title), subordinate (subtitle, title of part), abbreviated (abbreviated form of title), alternative (alternate title by which the work is also known), translated (translated form of title), uniform (collective title). The type attribute is provided for convenience in analysing titles and processing them according to their type; where such specialized processing is not necessary, there is no need for such analysis, and the entire title, including subtitles and any parallel titles, may be enclosed within a single <title> element. Title parts may be encoded in <title> sub-elements. The name of the list from which a controlled value is taken may be recorded using the authority attribute. The number of initial characters (such as those constituing an article or preposition) that should not be used for sorting a title or name may be indicated in the nonfiling attribute.
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<titleStmt>

<titleStmt> (title statement) – Container for title and responsibility meta-data.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: fileDesc source work
May contain
MEI.shared: respStmt title
Declaration
element titleStmt
{
   tido_att.common.attributes,
   model.titleLike+,
   model.respLike*
}
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<trackConfig>

<trackConfig> (track configuration) – Number of physical/input tracks on a sound medium (e.g., eight track, twelve track).
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
numRecords the track configuration in numeric form.
StatusOptional
Datatype
xsd:positiveInteger
Member of
Contained by
MEI.header: physDesc
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element trackConfig
{
   tido_att.common.attributes,
   attribute num { xsd:positiveInteger }?,
   ( text | model.textphraseLike.limited )*
}
NoteThe number of apparent playback channels can differ from the number of physical channels of the recording medium, i.e., 2-track monophonic recordings. In this example, the trackConfig element should record the fact that there are two physical tracks on the sound medium, while the <soundChan> element should be used to state that there is a single output channel. This element may be mapped to MARC field 344 subfield e or subfield f as appropriate.

<treatHist>

<treatHist> (treatment history) – A record of the treatment the item has undergone (e.g., de-acidification, restoration, etc.).
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: physDesc
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element treatHist
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}
NoteTreatment history may also comprise details of the treatment process (e.g., chemical solutions used, techniques applied, etc.), the date the treatment was applied, etc.
NoteThis element is modelled on an element in the Encoded Archival Description (EAD) standard.

<treatSched>

<treatSched> (treatment scheduled) – Scheduled treatment, e.g. de-acidification, restoration, etc., for an item.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: physDesc
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element treatSched
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}
NoteThis element is modelled on an element in the Encoded Archival Description (EAD) standard.

<unpub>

<unpub> (unpublished) – Used to explicitly indicate that a bibliographic resource is unpublished.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: pubStmt
May containCharacter data only
Declaration
element unpub { tido_att.common.attributes, text }
NoteA short phrase indicating the nature of or the reason for the unpublished status may be given as the element's content.

<useRestrict>

<useRestrict> (usage restrictions) – Container for information about the conditions that affect use of a bibliographic item after access has been granted.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: availability
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element useRestrict
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}
Note<useRestrict> may indicate limitations imposed by an owner, repository, or legal statute (for example, copyright law) regarding the reproduction, publication, or quotation of the item. It may also indicate the absence of restrictions, such as when rights have been ceded to the public domain. Do not confuse this element with the <accessRestrict> element, which holds information about conditions affecting the availability of the material.
NoteThis element is modelled on an element in the Encoded Archival Description (EAD) standard.

<watermark>

<watermark> Contains a description of a watermark or similar device.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: physDesc
May contain
MEI.ptrref: ptr ref
MEI.shared: address rend title
Declaration
element watermark
{
   tido_att.common.attributes,
   ( text | model.textphraseLike.limited )*
}
NoteThe facs attribute may be used to record the location of the watermark in a facsimile image.
NoteThis element is modelled on an element in the Text Encoding Initiative (TEI) standard.

<work>

<work> Provides a detailed description of a work, specifically its history, language use, and high-level musical attributes: key, tempo, meter, medium of performance, and intended duration.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Contained by
MEI.header: workDesc
May contain
Declaration
element work
{
   tido_att.common.attributes,
   model.identifierLike*,
   titleStmt?,
   model.workIdent*,
   otherChar*,
   creation?,
   history?,
   langUsage?,
   perfMedium?,
   perfDuration?,
   audience?,
   contents?,
   context?,
   biblList*,
   notesStmt?,
   classification?,
   expressionList?,
   componentGrp?,
   relationList?
}
NoteThe <perfDuration> element captures the intended duration of the work.

<workDesc>

<workDesc> (work description) – Grouping mechanism for information describing non-bibliographic aspects of a text.
ModuleMEI.header — Specifications
Attributesatt.common (@n) (att.commonPart (@label, @xml:base) (att.id (@xml:id)) )
Member of
Contained by
MEI.header: meiHead
May contain
MEI.header: work
Declaration
element workDesc { tido_att.common.attributes, work+ }

Model classes

model.addressLike

model.addressLike Groups elements used to represent a postal address.
ModuleMEI.shared — Specifications
Used by
Membersaddress

model.controleventLike

model.controleventLike Groups elements, such as dynamics, ties, phrase marks, pedal marks, etc., which depend upon other events, such as notes or rests, for their existence.
ModuleMEI.shared — Specifications
Used by
Membersmodel.controleventLike.cmn[hairpin pedal slur tie] dynam ornam

model.controleventLike.cmn

model.controleventLike.cmn Groups control events that appear in CMN.
ModuleMEI.cmn — Specifications
Used by
Membershairpin pedal slur tie

model.editorialDeclPart

model.editorialDeclPart Groups elements that may appear as part of a description of the editorial process applied to the encoding of notation.
ModuleMEI.header — Specifications
Used by
Memberscorrection interpretation normalization segmentation stdVals

model.encodingPart

model.encodingPart Groups elements that may appear as part of information regarding the encoding process.
ModuleMEI.header — Specifications
Used by
MembersappInfo editorialDecl projectDesc samplingDecl

model.endingLike

model.endingLike Groups elements that represent alternative endings.
ModuleMEI.shared — Specifications
Used by
Membersending

model.eventLike

model.eventLike Groups event elements that occur in all notational repertoires.
ModuleMEI.shared — Specifications
Used by
Membersmodel.eventLike.cmn[beam] model.keySigLike[keySig] model.meterSigLike[meterSig] chord clef note rest space

model.eventLike.cmn

model.eventLike.cmn Groups events that appear in CMN.
ModuleMEI.cmn — Specifications
Used by
Membersbeam

model.eventLike.measureFilling

model.eventLike.measureFilling Groups events that appear in CMN and that completely fill a measure.
ModuleMEI.cmn — Specifications
Used by
MembersmRest

model.headerPart

model.headerPart Groups elements that may appear as part of the MEI header.
ModuleMEI.header — Specifications
Used by
MembersencodingDesc workDesc

model.keySigLike

model.keySigLike Groups elements that have the same function as a key signature.
ModuleMEI.shared — Specifications
Used by
MemberskeySig

model.layerLike

model.layerLike Groups elements that function as notational layers within a staff.
ModuleMEI.shared — Specifications
Used by
Memberslayer

model.layerPart

model.layerPart Groups notated events that may appear at the layer level in all repertoires.
ModuleMEI.shared — Specifications
Used by
Membersmodel.eventLike[model.eventLike.cmn[beam] model.keySigLike[keySig] model.meterSigLike[meterSig] chord clef note rest space] model.layerPart.cmn[model.eventLike.measureFilling[mRest]]

model.layerPart.cmn

model.layerPart.cmn Groups notated events that may appear at the layer level in CMN.
ModuleMEI.cmn — Specifications
Used by
Membersmodel.eventLike.measureFilling[mRest]

model.locrefLike

model.locrefLike Groups elements used for purposes of location and reference.
ModuleMEI.ptrref — Specifications
Used by
Membersptr ref

model.mdivLike

model.mdivLike Groups elements used to represent generic structural divisions of music notation.
ModuleMEI.shared — Specifications
Used by
Membersmdiv

model.measureLike

model.measureLike Groups measure-like elements.
ModuleMEI.cmn — Specifications
Used by
Membersmeasure

model.measurePart

model.measurePart Groups elements that may appear as part of a measure.
ModuleMEI.cmn — Specifications
Used by
Membersmodel.controleventLike[model.controleventLike.cmn[hairpin pedal slur tie] dynam ornam] model.ossiaLike model.staffLike[staff]

model.measurementLike

model.measurementLike Groups elements that represent a measurement.
ModuleMEI.shared — Specifications
Used by
Membersmodel.numLike

model.meterSigLike

model.meterSigLike Groups elements that represent a meter signature.
ModuleMEI.shared — Specifications
Used by
MembersmeterSig

model.milestoneLike.music

model.milestoneLike.music Groups milestone-style elements found in music notation.
ModuleMEI.shared — Specifications
Used by
Membersmodel.pbLike

model.nameLike

model.nameLike Groups elements that contain names.
ModuleMEI.shared — Specifications
Used by
Membersmodel.nameLike.agent[corpName persName] model.nameLike.place[model.nameLike.geogName[geogName] model.repositoryLike]

model.nameLike.agent

model.nameLike.agent Groups elements which contain names of individuals or corporate bodies.
ModuleMEI.namesdates — Specifications
Used by
MemberscorpName persName

model.nameLike.geogName

model.nameLike.geogName Groups geographic name elements.
ModuleMEI.namesdates — Specifications
Used by
MembersgeogName

model.nameLike.label

model.nameLike.label Groups elements that serve as stylistic labels.
ModuleMEI.namesdates — Specifications
Used by
MembersperiodName styleName

model.nameLike.place

model.nameLike.place Groups place name elements.
ModuleMEI.namesdates — Specifications
Used by
Membersmodel.nameLike.geogName[geogName] model.repositoryLike

model.noteModifierLike

model.noteModifierLike Groups elements that modify note-like features.
ModuleMEI.shared — Specifications
Used by
Membersaccid

model.paracontentPart

model.paracontentPart Groups elements which may appear as part of the paragraph content model. A paragraph may contain inline elements and all the other block-level elements except lg and itself.
ModuleMEI.shared — Specifications
Used by
Membersmodel.textphraseLike[model.pbLike model.textphraseLike.limited[model.addressLike[address] model.annotLike model.biblLike model.dateLike model.editorialLike model.identifierLike model.lbLike model.locrefLike[ptr ref] model.measurementLike[model.numLike] model.nameLike[model.nameLike.agent[corpName persName] model.nameLike.place[model.nameLike.geogName[geogName] model.repositoryLike]] model.nameLike.label[periodName styleName] model.rendLike[rend] model.titleLike[title]]]

model.physDescPart

model.physDescPart Groups elements that may appear as part of the physical description of a bibliographic item.
ModuleMEI.header — Specifications
Used by
Membersmodel.frontPart captureMode carrierForm condition dimensions exhibHist fileChar fingerprint handList inscription perfDuration physMedium plateNum playingSpeed scoreFormat soundChan specRepro trackConfig treatHist treatSched watermark

model.pubStmtPart

model.pubStmtPart Groups elements that may appear as part of the publication statement for a bibliographic item.
ModuleMEI.header — Specifications
Used by
Membersmodel.addressLike[address] model.dateLike model.identifierLike availability respStmt

model.rendLike

model.rendLike Groups elements that mark typographical features.
ModuleMEI.shared — Specifications
Used by
Membersrend

model.respLike

model.respLike Groups elements that are used to indicate intellectual or other significant responsibility, for example within a bibliographic citation.
ModuleMEI.shared — Specifications
Used by
Membersmodel.respLikePart respStmt

model.scoreDefLike

model.scoreDefLike Groups elements that provide score meta-information.
ModuleMEI.shared — Specifications
Used by
MembersscoreDef

model.scoreLike

model.scoreLike Groups elements that represent a score.
ModuleMEI.shared — Specifications
Used by
Membersscore

model.scorePart

model.scorePart Groups elements that may appear as part of a score.
ModuleMEI.shared — Specifications
Used by
Membersmodel.endingLike[ending] model.scoreDefLike[scoreDef] model.sectionLike[section] model.staffDefLike[staffDef]

model.sectionLike

model.sectionLike Groups elements that represent a segment of music notation.
ModuleMEI.shared — Specifications
Used by
Memberssection

model.sectionPart

model.sectionPart Groups elements that may appear as part of a section.
ModuleMEI.shared — Specifications
Used by
Membersmodel.endingLike[ending] model.scoreDefLike[scoreDef] model.sectionLike[section] model.sectionPart.cmn[model.measureLike[measure]] model.staffDefLike[staffDef]

model.sectionPart.cmn

model.sectionPart.cmn Groups elements that may appear as part of a section.
ModuleMEI.cmn — Specifications
Used by
Membersmodel.measureLike[measure]

model.staffDefLike

model.staffDefLike Groups elements that permit declaration of staff properties.
ModuleMEI.shared — Specifications
Used by
MembersstaffDef

model.staffDefPart

model.staffDefPart Groups elements that may appear more than once in the declaration of staff features.
ModuleMEI.shared — Specifications
Used by
Membersmodel.keySigLike[keySig] model.meterSigLike[meterSig] clef

model.staffGrpLike

model.staffGrpLike Groups elements that permit declaration of staff group properties.
ModuleMEI.shared — Specifications
Used by
MembersstaffGrp

model.staffLike

model.staffLike Groups elements that function like staves.
ModuleMEI.shared — Specifications
Used by
Membersstaff

model.staffPart

model.staffPart Groups elements that are components of a staff.
ModuleMEI.shared — Specifications
Used by
Membersmodel.layerLike[layer] model.ossiaLike

model.textcomponentLike

model.textcomponentLike Groups block-level text elements.
ModuleMEI.shared — Specifications
Used by
Membersmodel.pLike[p]

model.textphraseLike

model.textphraseLike Phrase-level text elements.
ModuleMEI.shared — Specifications
Used by
Membersmodel.pbLike model.textphraseLike.limited[model.addressLike[address] model.annotLike model.biblLike model.dateLike model.editorialLike model.identifierLike model.lbLike model.locrefLike[ptr ref] model.measurementLike[model.numLike] model.nameLike[model.nameLike.agent[corpName persName] model.nameLike.place[model.nameLike.geogName[geogName] model.repositoryLike]] model.nameLike.label[periodName styleName] model.rendLike[rend] model.titleLike[title]]

model.textphraseLike.limited

model.textphraseLike.limited Groups textual elements that occur as part of the representation of the score, as opposed to the textual matter which accompanies it. This class is equivalent to the model.textphraseLike class without the pb element.
ModuleMEI.shared — Specifications
Used by
Membersmodel.addressLike[address] model.annotLike model.biblLike model.dateLike model.editorialLike model.identifierLike model.lbLike model.locrefLike[ptr ref] model.measurementLike[model.numLike] model.nameLike[model.nameLike.agent[corpName persName] model.nameLike.place[model.nameLike.geogName[geogName] model.repositoryLike]] model.nameLike.label[periodName styleName] model.rendLike[rend] model.titleLike[title]

model.titleLike

model.titleLike Groups elements that denote names of a bibliographic item.
ModuleMEI.shared — Specifications
Used by
Memberstitle

model.workIdent

model.workIdent Groups elements that assist in the identification of a work.
ModuleMEI.header — Specifications
Used by
Membersmodel.incipLike key mensuration meter

Attribute classes

att.accid.log

att.accid.log Logical domain attributes.
ModuleMEI.shared — Specifications
Membersaccid
Attributesatt.accidental (@accid) att.controlevent (att.staffident.req (@staff)) (att.timestamp.musical (@tstamp)) (att.layerident (@layer))
funcRecords the function of an accidental.
StatusOptional
Legal values are:
caution
Cautionary accidental.
edit
Editorial accidental.

att.accidental

att.accidental Attributes for capturing momentary pitch inflection.
ModuleMEI.shared — Specifications
Membersatt.accid.log[accid] att.keySig.log[key keySig]
Attributes
accidCaptures a written accidental.
StatusOptional
Datatype
data.ACCIDENTAL.EXPLICIT

att.accidental.performed

att.accidental.performed Attributes for capturing momentary pitch inflection in the gestural domain.
ModuleMEI.shared — Specifications
Membersatt.note.ges[note]
Attributes
accid.gesRecords the performed pitch inflection.
StatusOptional
Datatype
data.ACCIDENTAL.IMPLICIT

att.articulation

att.articulation Attributes for capturing the written signs that describe the method of performance.
ModuleMEI.shared — Specifications
Membersatt.chord.log[chord] att.note.log[note]
Attributes
articEncodes the written articulation(s). Articulations are normally encoded in order from the note head outward; that is, away from the stem. See additional notes at att.vis.note. Only articulations should be encoded in the artic attribute; for example, fingerings should be encoded using the <fingering> element.
StatusOptional
Datatype1–∞ occurrences of 
data.ARTICULATION
separated by whitespace

att.augmentdots

att.augmentdots Attributes that record the number of dots of augmentation.
ModuleMEI.shared — Specifications
Membersatt.chord.log[chord] att.dynam.log[dynam] att.note.log[note] att.rest.log[rest] att.space.log[space]
Attributes
dotsRecords the number of augmentation dots required by a dotted duration.
StatusOptional
Datatype
data.AUGMENTDOT
Schematron
<sch:rule context="mei:*[@dots]"> <sch:assert test="@dur">An element with a dots attribute must also have a dur attribute.</sch:assert></sch:rule>

att.chord.log

att.chord.log Logical domain attributes for chord. The artic, dots, and dur attributes encode the written articulations, augmentation dots, and duration values. The beam, fermata, lv, slur, syl, tie, and tuplet attributes may be used to indicate the attachment of these things to this chord. If visual information about these things needs to be recorded, then either the elements corresponding to these attributes or the attributes available in the att.vis.chord class should be employed.
ModuleMEI.shared — Specifications
Memberschord
Attributesatt.duration.musical.req (@dur) att.event (att.timestamp.musical (@tstamp)) (att.staffident (@staff)) (att.layerident (@layer)) att.articulation (@artic) att.augmentdots (@dots) att.syltext (@syl)

att.chord.vis

att.chord.vis Visual domain attributes for chord. The slur, slur.dir, slur.rend, tie, tie.dir, and tie.rend attributes here are syntactic sugar for these attributes on each of the chord's individual notes. The values here apply to all the notes in the chord. If some notes are slurred or tied while others aren't, then the individual note attributes must be used.
ModuleMEI.shared — Specifications
Memberschord
Attributesatt.stemdir.req (@stem.dir) att.typography (@fontfam, @fontname, @fontsize, @fontstyle, @fontweight)
clusterIndicates a single, alternative note head should be displayed instead of individual note heads. The highest and lowest notes of the chord usually indicate the upper and lower boundaries of the cluster note head.
StatusOptional
Datatype
data.CLUSTER

att.classcodeident

att.classcodeident 
ModuleMEI.shared — Specifications
Membersterm termList
Attributes
classcodeContains a reference to the controlled vocabulary from which the term is drawn. The value must match the value of an ID attribute on a classCode element given elsewhere in the document.
StatusOptional
Datatype
data.URI
Schematron
<sch:rule context="@classcode"> <sch:assert role="warning"  test="not(normalize-space(.) eq '')">@classcode attribute has no content.</sch:assert> <sch:assert role="warning"  test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:classCode/@xml:id">The value in @classcode must correspond to the @xml:id attribute of a classCode element.</sch:assert></sch:rule>

att.clef.log

att.clef.log Logical domain attributes.
ModuleMEI.shared — Specifications
Membersclef
Attributesatt.clefshape (@shape) att.lineloc (@line) att.octave (@oct)
cautionaryRecords the function of the clef. A "cautionary" clef does not change the following pitches.
StatusOptional
Datatype
data.BOOLEAN

att.clefshape

att.clefshape Attributes that record the shape of a clef.
ModuleMEI.shared — Specifications
Membersatt.clef.log[clef]
Attributes
shapeDescribes a clef's shape.
StatusRequired
Datatype
data.CLEFSHAPE

att.controlevent

att.controlevent Attributes shared by events which rely on other events for their existence. For example, a slur/phrase marking must be drawn between or over a group of notes. The slur is therefore a control event.
ModuleMEI.shared — Specifications
Membersatt.accid.log[accid] att.dynam.log[dynam] att.ornam.log[ornam] att.pedal.log[pedal] att.tie.log[tie]
Attributesatt.staffident.req (@staff) att.timestamp.musical (@tstamp) att.layerident (@layer)
SchematronRequire layer when staff has a single value and the element is not excluded from the rule.
<sch:rule context="mei:*[not(name() = ('slur', 'tie', 'accid'))][@staff][not(contains(@staff, ' '))]"> <sch:assert test="exists(@layer)">@layer must be present when @staff contains a single value.</sch:assert></sch:rule>
SchematronRequire place when staff has a single value and the element is not excluded from the rule.
<sch:rule context="mei:*[not(name() = ('slur', 'tie', 'accid'))][@staff][not(contains(@staff, ' '))]"> <sch:assert test="exists(@place)">@place must be present when @staff contains a single value.</sch:assert></sch:rule>
SchematronProhibit layer when staff has multiple values.
<sch:rule context="mei:*[@staff]"> <sch:assert test="not(contains(@staff, ' ') and @layer)">@layer must be absent when @staff contains multiple values.</sch:assert></sch:rule>
SchematronProhibit place when staff has multiple values.
<sch:rule context="mei:*[@staff]"> <sch:assert test="not(contains(@staff, ' ') and @place)">@place must be absent when @staff contains multiple values.</sch:assert></sch:rule>

att.cutout

att.cutout Attributes that indicate how to render staff lines of the measure containing an element belonging to this attribute class.
ModuleMEI.cmn — Specifications
Membersatt.mRest.vis[mRest]
Attributes
cutout"Cut-out" style indicated for this measure.
StatusOptional
Legal values are:
cutout
The staff lines should not be drawn.

att.duration.musical

att.duration.musical Attributes that express duration in musical terms.
ModuleMEI.shared — Specifications
Membersatt.mRest.log[mRest] att.note.log[note]
Attributes
durRecords the duration of a feature using the relative durational values provided by the data.DURATION datatype.
StatusOptional
Datatype
data.DURATION

att.duration.musical.req

att.duration.musical.req Required attributes that express duration in musical terms.
ModuleMEI.shared — Specifications
Membersatt.chord.log[chord] att.rest.log[rest] att.space.log[space]
Attributes
durrecords the duration of a feature using the relative durational values provided by the data.DURATION datatype.
StatusRequired
Datatype
data.DURATION

att.duration.ratio

att.duration.ratio Attributes that describe duration as a ratio.
ModuleMEI.shared — Specifications
Membersatt.mensur.log[mensuration]
Attributes
numAlong with numbase, describes duration as a ratio. num is the first value in the ratio, while numbase is the second.
StatusOptional
Datatype
xsd:positiveInteger
numbaseAlong with num, describes duration as a ratio. num is the first value in the ratio, while numbase is the second.
StatusOptional
Datatype
xsd:positiveInteger

att.dynam.log

att.dynam.log Logical domain attributes.
ModuleMEI.shared — Specifications
Membersdynam
Attributesatt.controlevent (att.staffident.req (@staff)) (att.timestamp.musical (@tstamp)) (att.layerident (@layer)) att.augmentdots (@dots) att.startendid (@endid) (att.startid (@startid)) att.timestamp2.musical (@tstamp2)

att.dynam.vis

att.dynam.vis Visual domain attributes.
ModuleMEI.shared — Specifications
Membersdynam
Attributesatt.placement (@place)

att.ending.anl

att.ending.anl Analytical domain attributes.
ModuleMEI.shared — Specifications
Membersending
Attributes

att.ending.ges

att.ending.ges Gestural domain attributes.
ModuleMEI.shared — Specifications
Membersending
Attributes

att.ending.log

att.ending.log Logical domain attributes.
ModuleMEI.shared — Specifications
Membersending
Attributes

att.ending.vis

att.ending.vis Visual domain attributes.
ModuleMEI.shared — Specifications
Membersending
Attributes

att.event

att.event Attributes that apply to all written events, e.g., note, chord, rest, etc.
ModuleMEI.shared — Specifications
Membersatt.chord.log[chord] att.mRest.log[mRest] att.note.log[note] att.rest.log[rest] att.space.log[space] clef
Attributesatt.timestamp.musical (@tstamp) att.staffident (@staff) att.layerident (@layer)

att.graced

att.graced Attributes that mark a note or chord as a "grace", how it should "steal" time, and how much time should be allotted to the grace note/chord.
ModuleMEI.cmn — Specifications
Membersatt.note.ges.cmn[att.note.ges[note]]
Attributes
graceMarks a note or chord as a "grace" (without a definitive written duration) and records from which other note/chord it should "steal" time.
StatusOptional
Datatype
data.GRACE
grace.timeRecords the amount of time to be "stolen" from a non-grace note/chord.
StatusOptional
Datatype
data.PERCENT

att.hairpin.log

att.hairpin.log Logical domain attributes.
ModuleMEI.cmn — Specifications
Membershairpin
Attributesatt.spanning.musical.req (att.timestamp.musical.req (@tstamp)) (att.timestamp2.musical.req (@tstamp2)) (att.staffident (@staff)) (att.layerident (@layer))
formcaptures the visual rendition and function of the hairpin; that is, whether it indicates an increase or a decrease in volume.
StatusRequired
Legal values are:
cres
crescendo; i.e., louder.
dim
diminuendo; i.e., softer.

att.hairpin.vis

att.hairpin.vis Visual domain attributes. The startho and startvo attributes record the horizontal and vertical offsets of the left end, endho and endvo record the horizontal and vertical offsets of the right end, and the opening attribute records the width of the opening in staff inter-line units. The x and y attributes give the absolute coordinates of the left side of the top line of the hairpin while x2 and y2 record the coordinates of the right side of the top line. The position of the end points of the bottom line can be calculated using the top line coordinates and the value of the width attribute.
ModuleMEI.cmn — Specifications
Membershairpin
Attributesatt.placement (@place)
openingSpecifies the distance between the points of the open end of a hairpin dynamic mark.
StatusOptional
Datatype
data.MEASUREMENT

att.internetmedia

att.internetmedia Attributes which record the type of an electronic resource.
ModuleMEI.shared — Specifications
MembersincipCode incipText ptr ref
Attributes
mimetypeSpecifies the applicable MIME (multimedia internet mail extension) type. The value should be a valid MIME media type defined by the Internet Engineering Task Force in RFC 2046.
StatusOptional
Datatype
string

att.keySig.log

att.keySig.log Logical domain attributes.
ModuleMEI.shared — Specifications
Memberskey keySig
Attributesatt.accidental (@accid) att.pitch (@pname)
modeIndicates major, minor, or other tonality.
StatusOptional
Datatype
data.MODE

att.layerident

att.layerident Attributes that identify the layer to which a feature applies.
ModuleMEI.shared — Specifications
Membersatt.controlevent[att.accid.log[accid] att.dynam.log[dynam] att.ornam.log[ornam] att.pedal.log[pedal] att.tie.log[tie]] att.event[att.chord.log[chord] att.mRest.log[mRest] att.note.log[note] att.rest.log[rest] att.space.log[space] clef] att.spanning.musical.req[att.hairpin.log[hairpin]] att.spanning.req[att.slur.log[slur]]
Attributes
layerIdentifies the layer to which a feature applies.
StatusOptional
Datatype1–∞ occurrences of 
xsd:positiveInteger
separated by whitespace

att.lineloc

att.lineloc Attributes for identifying the staff line with which a feature is associated.
ModuleMEI.shared — Specifications
Membersatt.clef.log[clef]
Attributes
lineIndicates the line upon which a feature stands. The value must be in the range between 1 and the number of lines on the staff. The numbering of lines starts with the lowest line of the staff.
StatusRequired
Datatype
data.CLEFLINE

att.mRest.anl

att.mRest.anl Analytical domain attributes.
ModuleMEI.cmn — Specifications
MembersmRest
Attributes

att.mRest.ges

att.mRest.ges Gestural domain attributes.
ModuleMEI.cmn — Specifications
MembersmRest
Attributes

att.mRest.log

att.mRest.log Logical domain attributes.
ModuleMEI.cmn — Specifications
MembersmRest
Attributesatt.duration.musical (@dur) att.event (att.timestamp.musical (@tstamp)) (att.staffident (@staff)) (att.layerident (@layer))

att.mRest.vis

att.mRest.vis Visual domain attributes.
ModuleMEI.cmn — Specifications
MembersmRest
Attributesatt.cutout (@cutout) att.staffloc (@loc) att.typography (@fontfam, @fontname, @fontsize, @fontstyle, @fontweight)

att.measure.log

att.measure.log Logical domain attributes. The n attribute contains a name or number associated with the measure (Read, p. 445). Often, this is an integer, but not always. For example, some measures, especially incomplete measures or those under an ending mark, may have labels that contain an integer plus a suffix, such as '12a'. Measures may even have labels, especially in editorial or analytical uses of MEI, that are entirely non-numeric strings. Measure numbers may be machine-generated instead of encoding them in the markup. However, an explicit measure number should restart numbering with the given value. The join attribute may be used to indicate another measure which metrically completes the current, incomplete one.
ModuleMEI.shared — Specifications
Membersmeasure
Attributesatt.meterconformance.bar (@metcon, @control)
leftIndicates the visual rendition of the left bar line. It is present here only for facilitation of translation from legacy encodings which use it. Usually, it can be safely ignored.
StatusOptional
Datatype
data.BARRENDITION
rightIndicates the function of the right bar line and is structurally important.
StatusOptional
Datatype
data.BARRENDITION

att.medium

att.medium Attributes describing a writing medium, such as pencil or ink.
ModuleMEI.shared — Specifications
Membershand
Attributes
mediumDescribes the writing medium.
StatusOptional
Datatype
string

att.meiversion

att.meiversion Attributes that record the version of MEI in use.
ModuleMEI.shared — Specifications
Membersmei meiHead music
Attributes
meiversionSpecifies a generic MEI version label.
StatusOptional
Legal values are:
3.0.0
This version of MEI.[Default]

att.mensur.log

att.mensur.log Logical domain attributes.
ModuleMEI.shared — Specifications
Membersmensuration
Attributesatt.duration.ratio (@num, @numbase) att.slashcount (@slash)
dotSpecifies whether a dot is to be added to the base symbol.
StatusOptional
Datatype
data.BOOLEAN
signThe base symbol in the mensuration sign/time signature of mensural notation.
StatusOptional
Datatype
data.MENSURATIONSIGN

att.meterSig.log

att.meterSig.log Logical domain attributes.
ModuleMEI.shared — Specifications
Membersmeter meterSig
Attributes
countCaptures the number of beats in a measure, that is, the top number of the meter signature. It must contain a decimal number or an additive expression that evaluates to a decimal number, such as 2+3.
StatusOptional
Datatype
string { pattern = "\d+(\.\d+)?(\s*\+\s*\d+(\.\d+)?)*" }
symIndicates the use of a meter symbol instead of a numeric meter signature, that is, 'C' for common time or 'C' with a slash for cut time.
StatusOptional
Datatype
data.METERSIGN
unitContains the number indicating the beat unit, that is, the bottom number of the meter signature.
StatusOptional
Datatype
xsd:decimal

att.meterconformance.bar

att.meterconformance.bar Attributes that provide information about a measure's conformance to the prevailing meter.
ModuleMEI.shared — Specifications
Membersatt.measure.log[measure]
Attributes
metconIndicates the relationship between the content of a measure and the prevailing meter.
StatusOptional
Datatype
data.BOOLEAN
controlIndicates whether or not a bar line is "controlling"; that is, if it indicates a point of alignment across all the parts. Bar lines within a score are usually controlling; that is, they "line up". Bar lines within parts may or may not be controlling. When applied to <measure>, this attribute indicates the nature of the right barline but not the left.
StatusOptional
Datatype
data.BOOLEAN

att.name

att.name Attributes shared by names.
ModuleMEI.shared — Specifications
MemberscorpName geogName periodName persName styleName
Attributes
nymrefUsed to record a pointer to the regularized form of the name elsewhere in the document.
StatusOptional
Datatype
data.URI
Schematron
<sch:rule context="@nymref"> <sch:assert role="warning"  test="not(normalize-space(.) eq '')">@nymref attribute has no content.</sch:assert> <sch:assert role="warning"  test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">The value in @nymref must correspond to the @xml:id attribute of an element.</sch:assert></sch:rule>
roleUsed to specify further information about the entity referenced by this name, for example, the occupation of a person or the status of a place. Use a standard value whenever possible.
StatusOptional
Datatype
text

att.note.ges

att.note.ges Gestural domain attributes.
ModuleMEI.shared — Specifications
Membersnote
Attributesatt.accidental.performed (@accid.ges) att.note.ges.cmn (@gliss) (att.graced (@grace, @grace.time))
oct.gesRecords performed octave information that differs from the written value.
StatusOptional
Datatype
data.OCTAVE
pname.gesContains a performed pitch name that differs from the written value.
StatusOptional
Datatype
data.PITCHNAME.GES
pnumHolds a pitch-to-number mapping, a base-40 or MIDI note number, for example.
StatusOptional
Datatype
data.PITCHNUMBER

att.note.ges.cmn

att.note.ges.cmn Gestural domain attributes.
ModuleMEI.cmn — Specifications
Membersatt.note.ges[note]
Attributesatt.graced (@grace, @grace.time)
glissIndicates that this element participates in a glissando.
StatusOptional
Datatype
data.GLISSANDO

att.note.log

att.note.log Logical domain attributes.
ModuleMEI.shared — Specifications
Membersnote
Attributesatt.event (att.timestamp.musical (@tstamp)) (att.staffident (@staff)) (att.layerident (@layer)) att.articulation (@artic) att.augmentdots (@dots) att.duration.musical (@dur) att.pitched (att.pitch (@pname)) (att.octave (@oct)) att.syltext (@syl)
SchematronRequire either pname and oct or loc on a note.
<sch:rule context="mei:note"> <sch:assert test="(@pname and @oct) or @loc">either @pname and @oct or @loc must be specified on a note.</sch:assert></sch:rule>
SchematronRequire dur on notes outside chords.
<sch:rule context="mei:note[not(ancestor::mei:chord)]"> <sch:assert test="exists(@dur)">Must have dur attribute.</sch:assert></sch:rule>
SchematronRequire stem.dir on notes outside chords.
<sch:rule context="mei:note[not(ancestor::mei:chord)]"> <sch:assert test="exists(@stem.dir)">Must have stem.dir attribute.</sch:assert></sch:rule>
SchematronForbid @dur on notes in chords.
<sch:rule context="mei:note[ancestor::mei:chord]"> <sch:report test="exists(@dur)">@dur attribute not permitted on notes within a chord.</sch:report></sch:rule>
SchematronForbid @stem.dir on notes in chords.
<sch:rule context="mei:note[ancestor::mei:chord]"> <sch:report test="@stem.dir">@stem.dir not permitted on notes within a chord.</sch:report></sch:rule>

att.note.vis

att.note.vis Visual domain attributes.
ModuleMEI.shared — Specifications
Membersnote
Attributesatt.staffloc (@loc) att.stems (@stem.dir, @stem.len, @stem.mod, @stem.pos, @stem.x, @stem.y) att.typography (@fontfam, @fontname, @fontsize, @fontstyle, @fontweight)

att.octave

att.octave Attributes that record written octave.
ModuleMEI.shared — Specifications
Membersatt.clef.log[clef] att.pitched[att.note.log[note]]
Attributes
octCaptures written octave information.
StatusOptional
Datatype
data.OCTAVE

att.ornam.log

att.ornam.log Logical domain attributes.
ModuleMEI.shared — Specifications
Membersornam
Attributesatt.controlevent (att.staffident.req (@staff)) (att.timestamp.musical (@tstamp)) (att.layerident (@layer)) att.startendid (@endid) (att.startid (@startid)) att.timestamp2.musical (@tstamp2)

att.ornam.vis

att.ornam.vis Visual domain attributes.
ModuleMEI.shared — Specifications
Membersornam
Attributesatt.placement (@place)

att.pedal.log

att.pedal.log Logical domain attributes.
ModuleMEI.cmn — Specifications
Memberspedal
Attributesatt.controlevent (att.staffident.req (@staff)) (att.timestamp.musical (@tstamp)) (att.layerident (@layer)) att.startendid (@endid) (att.startid (@startid))
dirRecords the position of the piano damper pedal.
StatusRequired
Legal values are:
down
Depress the pedal.
up
Release the pedal.
half
Half pedal.
bounce
Release then immediately depress the pedal.

att.pedal.vis

att.pedal.vis Visual domain attributes. The place attribute captures the placement of the pedal marking with respect to the staff with which it is associated. Modern publishing standards require the place to be 'below'; however, for transcriptions of manuscript works, this attribute class allows the full range of values.
ModuleMEI.cmn — Specifications
Memberspedal
Attributesatt.placement (@place) att.typography (@fontfam, @fontname, @fontsize, @fontstyle, @fontweight)
formDetermines whether piano pedal marks should be rendered as lines or as terms.
StatusOptional
Legal values are:
line
Continuous line with start and end positions rendered by vertical bars and bounces shown by upward-pointing "blips".
pedstar
Pedal down and half pedal rendered with "Ped.", pedal up rendered by "*", pedal "bounce" rendered with "* Ped.".
altpedstar
Pedal up and down indications same as with "pedstar", but bounce is rendered with "Ped." only.

att.pitch

att.pitch Attributes that record written pitch name.
ModuleMEI.shared — Specifications
Membersatt.keySig.log[key keySig] att.pitched[att.note.log[note]]
Attributes
pnameContains a written pitch name.
StatusOptional
Datatype
data.PITCHNAME

att.pitched

att.pitched Attributes that record written pitch name and octave number.
ModuleMEI.shared — Specifications
Membersatt.note.log[note]
Attributesatt.pitch (@pname) att.octave (@oct)

att.placement

att.placement Attributes capturing placement information.
ModuleMEI.shared — Specifications
Membersatt.dynam.vis[dynam] att.hairpin.vis[hairpin] att.ornam.vis[ornam] att.pedal.vis[pedal]
Attributes
placeCaptures the placement of the item with respect to the staff with which it is associated.
StatusOptional
Datatype
data.STAFFREL

att.quantity

att.quantity Attributes that specify a measurement in numerical terms.
ModuleMEI.shared — Specifications
Membersprice
Attributes
quantityNumeric value capturing a measurement or count. Can only be interpreted in combination with the unit or currency attribute.
StatusOptional
Datatype
xsd:decimal

att.regularmethod

att.regularmethod Attributes that describe correction and normalization methods.
ModuleMEI.header — Specifications
Memberscorrection normalization
Attributes
methodIndicates the method employed to mark corrections and normalizations.
StatusOptional
Legal values are:
silent
Corrections and normalizations made silently.
tags
Corrections and normalizations indicated using elements.

att.rest.log

att.rest.log Logical domain attributes.
ModuleMEI.shared — Specifications
Membersrest
Attributesatt.duration.musical.req (@dur) att.augmentdots (@dots) att.event (att.timestamp.musical (@tstamp)) (att.staffident (@staff)) (att.layerident (@layer))

att.rest.vis

att.rest.vis Visual domain attributes.
ModuleMEI.shared — Specifications
Membersrest
Attributesatt.staffloc (@loc) att.typography (@fontfam, @fontname, @fontsize, @fontstyle, @fontweight)

att.slashcount

att.slashcount Attributes for recording the number of slashes that accompany a feature.
ModuleMEI.shared — Specifications
Membersatt.mensur.log[mensuration]
Attributes
slashIndicates the number of slashes present.
StatusOptional
Datatype
data.SLASH

att.slur.log

att.slur.log Logical domain attributes.
ModuleMEI.cmn — Specifications
Membersslur
Attributesatt.spanning.req (att.timestamp.musical (@tstamp)) (att.timestamp2.musical (@tstamp2)) (att.startendid (@endid) (att.startid (@startid)) ) (att.staffident (@staff)) (att.layerident (@layer))

att.space.log

att.space.log Logical domain attributes.
ModuleMEI.shared — Specifications
Membersspace
Attributesatt.duration.musical.req (@dur) att.augmentdots (@dots) att.event (att.timestamp.musical (@tstamp)) (att.staffident (@staff)) (att.layerident (@layer))

att.spanning.musical.req

att.spanning.musical.req Describing attributes for spanning elements
ModuleMEI.shared — Specifications
Membersatt.hairpin.log[hairpin]
Attributesatt.timestamp.musical.req (@tstamp) att.timestamp2.musical.req (@tstamp2) att.staffident (@staff) att.layerident (@layer)

att.spanning.req

att.spanning.req Describing attributes for spanning elements
ModuleMEI.shared — Specifications
Membersatt.slur.log[slur]
Attributesatt.timestamp.musical (@tstamp) att.timestamp2.musical (@tstamp2) att.startendid (@endid) (att.startid (@startid)) att.staffident (@staff) att.layerident (@layer)
SchematronRequires that precisely one of startid or tstamp is defined
<sch:rule context="mei:slur"> <sch:assert test="(@tstamp and not(@startid)) or (not(@tstamp) and @startid)">precisely one of @tstamp or @startid must be defined</sch:assert></sch:rule>
SchematronRequires that precisely one of endid or tstamp2 is defined
<sch:rule context="mei:slur"> <sch:assert test="(@tstamp2 and not(@endid)) or (not(@tstamp2) and @endid)">precisely one of @tstamp2 or @endid must be defined</sch:assert></sch:rule>

att.staffDef.vis

att.staffDef.vis Visual domain attributes for staffDef.
ModuleMEI.shared — Specifications
MembersstaffDef
Attributes
grid.showDetermines whether to display guitar chord grids.
StatusOptional
Datatype
data.BOOLEAN
layerschemeIndicates the number of layers and their stem directions.
StatusOptional
Datatype
data.LAYERSCHEME
linesIndicates the number of staff lines.
StatusOptional
Datatype
xsd:positiveInteger
lines.colorCaptures the colors of the staff lines. The value is structured; that is, it should have the same number of space-separated RGB values as the number of lines indicated by the lines attribute. A line can be made invisible by assigning it the same RGB value as the background, usually white.
StatusOptional
Datatype1–∞ occurrences of 
data.COLOR
separated by whitespace
lines.visibleRecords whether all staff lines are visible.
StatusOptional
Datatype
data.BOOLEAN
spacingRecords the absolute distance (as opposed to the relative distances recorded in <scoreDef> elements) between this staff and the preceding one in the same system. This value is meaningless for the first staff in a system since the spacing.system attribute indicates the spacing between systems.
StatusOptional
Datatype
data.MEASUREMENT

att.staffGrp.vis

att.staffGrp.vis Visual domain attributes.
ModuleMEI.shared — Specifications
MembersstaffGrp
Attributesatt.staffgroupingsym (@symbol)
barthruIndicates whether bar lines go across the space between staves (true) or are only drawn across the lines of each staff (false).
StatusOptional
Datatype
data.BOOLEAN

att.staffgroupingsym

att.staffgroupingsym Attributes that describe the symbol used to group a set of staves.
ModuleMEI.shared — Specifications
Membersatt.staffGrp.vis[staffGrp]
Attributes
symbolSpecifies the symbol used to group a set of staves.
StatusOptional
Legal values are:
brace
Curved symbol, i.e., {.
bracket
Square symbol, i.e., [, but with curved/angled top and bottom segments.
bracketsq
Square symbol, i.e., [, with horizontal top and bottom segments.
line
Line symbol, i.e., |, (wide) line without top and bottom curved/horizontal segments.
none
Grouping symbol missing.

att.staffident

att.staffident Attributes for identifying the staff associated with the current feature.
ModuleMEI.shared — Specifications
Membersatt.event[att.chord.log[chord] att.mRest.log[mRest] att.note.log[note] att.rest.log[rest] att.space.log[space] clef] att.spanning.musical.req[att.hairpin.log[hairpin]] att.spanning.req[att.slur.log[slur]]
Attributes
staffSignifies the staff on which a notated event occurs or to which a control event applies. Mandatory when applicable.
StatusOptional
Datatype1–∞ occurrences of 
xsd:positiveInteger
separated by whitespace

att.staffident.req

att.staffident.req Make staff required
ModuleMEI.shared — Specifications
Membersatt.controlevent[att.accid.log[accid] att.dynam.log[dynam] att.ornam.log[ornam] att.pedal.log[pedal] att.tie.log[tie]]
Attributes
staff
StatusRequired
Datatype1–∞ occurrences of 
xsd:positiveInteger
separated by whitespace

att.staffloc

att.staffloc Attributes that identify location on a staff in terms of lines and spaces.
ModuleMEI.shared — Specifications
Membersatt.mRest.vis[mRest] att.note.vis[note] att.rest.vis[rest]
Attributes
locHolds the staff location of the feature.
StatusOptional
Datatype
data.STAFFLOC

att.startendid

att.startendid Attributes recording the identifiers of the first and last elements of a sequence of elements to which the current element is associated.
ModuleMEI.shared — Specifications
Membersatt.dynam.log[dynam] att.ornam.log[ornam] att.pedal.log[pedal] att.spanning.req[att.slur.log[slur]] att.tie.log[tie]
Attributesatt.startid (@startid)
endidIndicates the final element in a sequence of events to which the feature applies.
StatusOptional
Schematron
<sch:rule context="@endid"> <sch:assert role="warning"  test="not(normalize-space(.) eq '')">@endid attribute has no content.</sch:assert> <sch:assert role="warning"  test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">The value in @endid must correspond to the @xml:id attribute of an element.</sch:assert></sch:rule>
Datatype
data.URI.local

att.startid

att.startid Attributes that identify a relative starting point.
ModuleMEI.shared — Specifications
Membersatt.startendid[att.dynam.log[dynam] att.ornam.log[ornam] att.pedal.log[pedal] att.spanning.req[att.slur.log[slur]] att.tie.log[tie]]
Attributes
startidHolds a reference to the first element in a sequence of events to which the feature applies.
StatusOptional
Schematron
<sch:rule context="@startid"> <sch:assert role="warning"  test="not(normalize-space(.) eq '')">@startid attribute has no content.</sch:assert> <sch:assert role="warning"  test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">The value in @startid must correspond to the @xml:id attribute of an element.</sch:assert></sch:rule>
Datatype
data.URI.local

att.stemdir.req

att.stemdir.req 
ModuleMEI.shared — Specifications
Membersatt.chord.vis[chord]
Attributes
stem.dirDescribes the direction of a stem.
StatusRequired
Datatype
data.STEMDIRECTION

att.stems

att.stems Attributes that describe the properties of stemmed features; that is, chords and notes.
ModuleMEI.shared — Specifications
Membersatt.note.vis[note]
Attributes
stem.dirDescribes the direction of a stem.
StatusOptional
Datatype
data.STEMDIRECTION
stem.lenEncodes the stem length.
StatusOptional
Datatype
data.MEASUREMENT
stem.modEncodes any stem "modifiers"; that is, symbols rendered on the stem, such as tremolo or Sprechstimme indicators.
StatusOptional
Datatype
data.STEMMODIFIER
stem.posRecords the position of the stem in relation to the note head(s).
StatusOptional
Datatype
data.STEMPOSITION
stem.xRecords the output x coordinate of the stem's attachment point.
StatusOptional
Datatype
xsd:decimal
stem.yRecords the output y coordinate of the stem's attachment point.
StatusOptional
Datatype
xsd:decimal

att.syltext

att.syltext Attributes that hold associated sung text syllables.
ModuleMEI.shared — Specifications
Membersatt.chord.log[chord] att.note.log[note]
Attributes
sylHolds an associated sung text syllable.
StatusOptional
Datatype
string

att.tie.log

att.tie.log Logical domain attributes.
ModuleMEI.cmn — Specifications
Memberstie
Attributesatt.controlevent (att.staffident.req (@staff)) (att.timestamp.musical (@tstamp)) (att.layerident (@layer)) att.startendid (@endid) (att.startid (@startid)) att.timestamp2.musical (@tstamp2)

att.timestamp.musical

att.timestamp.musical Attributes that record a time stamp in terms of musical time, i.e., beats[.fractional beat part].
ModuleMEI.shared — Specifications
Membersatt.controlevent[att.accid.log[accid] att.dynam.log[dynam] att.ornam.log[ornam] att.pedal.log[pedal] att.tie.log[tie]] att.event[att.chord.log[chord] att.mRest.log[mRest] att.note.log[note] att.rest.log[rest] att.space.log[space] clef] att.spanning.req[att.slur.log[slur]]
Attributes
tstampEncodes the onset time in terms of musical time, i.e., beats[.fractional_beat_part].
StatusOptional
Datatype
data.BEAT

att.timestamp.musical.req

att.timestamp.musical.req Required attributes that record a time stamp in terms of musical time, i.e., beats[.fractional beat part].
ModuleMEI.shared — Specifications
Membersatt.spanning.musical.req[att.hairpin.log[hairpin]]
Attributes
tstampencodes the onset time in terms of musical time, i.e., beats[.fractional_beat_part].
StatusRequired
Datatype
data.BEAT

att.timestamp2.musical

att.timestamp2.musical Attributes that record a time stamp for the end of an event in terms of musical time.
ModuleMEI.shared — Specifications
Membersatt.dynam.log[dynam] att.ornam.log[ornam] att.spanning.req[att.slur.log[slur]] att.tie.log[tie]
Attributes
tstamp2Encodes the ending point of an event in terms of musical time, i.e., a count of measures plus a beat location.
StatusOptional
Datatype
data.MEASUREBEAT

att.timestamp2.musical.req

att.timestamp2.musical.req Required attributes that record a time stamp for the end of an event in terms of musical time.
ModuleMEI.shared — Specifications
Membersatt.spanning.musical.req[att.hairpin.log[hairpin]]
Attributes
tstamp2encodes the ending point of an event in terms of musical time, i.e., a count of measures plus a beat location.
StatusRequired
Datatype
data.MEASUREBEAT

att.typed

att.typed Attributes which can be used to classify or sub-classify features.
ModuleMEI.shared — Specifications
MembersaltId application change corpName dynam ending geogName hairpin handList mdiv measure ornam pedal periodName persName ptr ref score section slur styleName term termList tie
Attributes
typeCharacterizes the element in some sense, using any convenient classification scheme or typology.
StatusOptional
Datatype
xsd:NMTOKEN
subtypeProvide any sub-classification for the element, additional to that given by its type attribute.
StatusOptional
Datatype
xsd:NMTOKEN
Schematron
<sch:rule context="mei:*[@subtype]"> <sch:assert test="@type">An element with a subtype attribute must have a type attribute.</sch:assert></sch:rule>
NoteWhen appropriate, values from an established typology should be used. Alternatively, a typology may be defined in the associated MEI header using the <classification> element. If values are to be taken from a project-specific list, this should be defined using the <valList> element in a project-specific schema description.

att.typography

att.typography Typographical attributes.
ModuleMEI.shared — Specifications
Membersatt.chord.vis[chord] att.mRest.vis[mRest] att.note.vis[note] att.pedal.vis[pedal] att.rest.vis[rest] rend
Attributes
fontfamContains the name of a font-family.
StatusOptional
Datatype
data.FONTFAMILY
fontnameHolds the name of a font.
StatusOptional
Datatype
data.FONTNAME
fontsizeIndicates the size of a font in printers' points, i.e., 1/72nd of an inch.
StatusOptional
Datatype
xsd:decimal { minInclusive = "0.1" }
fontstyleRecords the style of a font, i.e, italic, oblique, or normal.
StatusOptional
Datatype
data.FONTSTYLE
fontweightUsed to indicate bold type.
StatusOptional
Datatype
data.FONTWEIGHT

Macros

data.ACCIDENTAL.EXPLICIT

data.ACCIDENTAL.EXPLICIT Accidental attribute values.
ModuleMEI — Specifications
Used by
Declaration
data.ACCIDENTAL.EXPLICIT = 
Note

data.ACCIDENTAL.IMPLICIT

data.ACCIDENTAL.IMPLICIT Accidental attribute values.
ModuleMEI — Specifications
Used by
Legal values are:
s
Sharp.
f
Flat.
ss
Double sharp.
ff
Double flat.
n
Natural.

data.ARTICULATION

data.ARTICULATION The following list of articulations mostly corresponds to symbols from the Western Musical Symbols portion of the Unicode Standard. The dot and stroke values may be used in cases where interpretation is difficult or undesirable.
ModuleMEI — Specifications
Used by
Declaration
data.ARTICULATION = 

data.AUGMENTDOT

data.AUGMENTDOT Dots attribute values (number of augmentation dots) (Read, 113-119, ex. 8-21).
ModuleMEI — Specifications
Used by
Declaration
data.AUGMENTDOT = xsd:nonNegativeInteger { maxInclusive = "4" }

data.BARRENDITION

data.BARRENDITION Renderings of bar lines. Some values correspond to the Western Musical Symbols portion of the Unicode Standard.
ModuleMEI — Specifications
Used by
Legal values are:
dashed
Dashed line (Unicode 1D104).
dotted
Dotted line.
dbl
(Unicode 1D101).
dbldashed
Double dashed line.
dbldotted
Double dotted line.
end
(Unicode 1D102).
invis
Bar line not rendered.
rptstart
Repeat start (Unicode 1D106).
rptboth
Repeat start and end.
rptend
Repeat end (Unicode 1D107).
single
(Unicode 1D100).

data.BEAT

data.BEAT A beat location, i.e., [0-9]+(\.?[0-9]*)? The value must fall between 0 and the numerator of the time signature + 1, where 0 represents the left bar line and the upper boundary represents the right bar line. For example, in 12/8 the value must be in the range from 0 to 13.
ModuleMEI — Specifications
Used by
Declaration
data.BEAT = xsd:decimal { minInclusive = "0" }

data.BEATRPT.REND

data.BEATRPT.REND Visual and performance information for a repeated beat symbol.
ModuleMEI — Specifications
Used by
Declaration
data.BEATRPT.REND =
   xsd:positiveInteger { pattern = "4|8|16|32|64|128" }
 | token { pattern = "mixed" }

data.BEND.AMOUNT

data.BEND.AMOUNT Either an integer value, a decimal value, or a token. Fractional values are limited to .25, .5, .75, while the token value is restricted to 'full'.
ModuleMEI — Specifications
Used by
Declaration
data.BEND.AMOUNT =
   xsd:decimal { pattern = "\.25|\.5|\.75" }
 | xsd:decimal { pattern = "[0-9](\.25|\.5|\.75)?" }
 | token { pattern = "full" }

data.BETYPE

data.BETYPE Datatypes for values in begin, end, abstype and inttype attributes.
ModuleMEI.shared — Specifications
Used by
Declaration
data.BETYPE = 

data.BOOLEAN

data.BOOLEAN Boolean attribute values.
ModuleMEI — Specifications
Used by
Element:
Legal values are:
true
false

data.CLEFLINE

data.CLEFLINE Clef line attribute values. The value must be in the range between 1 and the number of lines on the staff. The numbering of lines starts with the lowest line of the staff.
ModuleMEI — Specifications
Used by
Declaration
data.CLEFLINE = xsd:positiveInteger

data.CLEFSHAPE

data.CLEFSHAPE Clef shape attribute values (Read, p.53-56). Some values correspond to the Unicode Standard.
ModuleMEI — Specifications
Used by
Legal values are:
G
G clef (Unicode 1D11E).
GG
Double G clef.
F
F clef (Unicode 1D122).
C
C clef (Unicode 1D121).
perc
Drum clef (Unicode 1D125 or Unicode 1D126).
TAB
Tablature "clef"; i.e. usually "TAB" rendered vertically.

data.CLUSTER

data.CLUSTER Tone-cluster rendition.
ModuleMEI — Specifications
Used by
Legal values are:
white
White keys.
black
Black keys.
chromatic
Mixed black and white keys.

data.COLOR

data.COLOR A value in one of the following forms is expected: 1) hexadecimal RRGGBB, 2) hexadecimal AARRGGBB, 3) CSS RGB, 4) CSS RGBA, 5) HSL, 6) HSLA, or 7) HTML 4.01 color name.
ModuleMEI — Specifications
Used by
Declaration
data.COLOR = 

data.COLORNAMES

data.COLORNAMES List of HTML 4.01 color names.
ModuleMEI — Specifications
Used by
Legal values are:
aqua
black
blue
fuchsia
gray
green
lime
maroon
navy
olive
purple
red
silver
teal
white
yellow

data.COLORVALUES

data.COLORVALUES Parameterized color values
ModuleMEI — Specifications
Used by
Declaration
data.COLORVALUES =
   token { pattern = "#[0-9A-Fa-f]{6,6}" }
 | token { pattern = "#[0-9A-Fa-f]{8,8}" }
 | token
   {
      pattern = "rgb\((\s*(([01]?[0-9]?[0-9])|2[0-4][0-9]|25[0-5])\s*,\s*){2}([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\s*\)"
   }
 | token
   {
      pattern = "rgba\(\s*(([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\s*,\s*){3}(0(\.\d+)?|1(\.0+)?)\s*\)|rgba\(\s*(((\d{1,2})?%|100%)\s*,\s*){2}(\d{1,2}%|100%)\s*,\s*(0(\.\d+)?|1(\.0+)?)\s*\)"
   }
 | token
   {
      pattern = "hsl\(\s*((\d{1,2})|[12]\d{2}|3[0-5]\d|360)\s*,\s*(\d{1,2}%|100%)\s*,\s*(\d{1,2}%|100%)\s*\)"
   }
 | token
   {
      pattern = "hsla\(\s*(\d{1,2}|[12]\d{2}|3[0-5]\d|360)\s*,\s*(\d{1,2}%|100%)\s*,\s*(\d{1,2}%|100%)\s*,\s*(0(\.\d+)?|1(\.0+)?)\s*\)"
   }

data.DEGREES

data.DEGREES 360th-unit measure of a circle's circumference; optionally signed decimal number between -360 and 360.
ModuleMEI — Specifications
Used by
Element:
Declaration
data.DEGREES = xsd:decimal { maxInclusive = "360.0" minInclusive = "-360.0" }

data.DURATION

data.DURATION Logical, that is, written, duration attribute values.
ModuleMEI — Specifications
Used by
Declaration
data.DURATION = data.DURATION.cmn | data.DURATION.mensural

data.DURATION.cmn

data.DURATION.cmn Logical, that is, written, duration attribute values for the CMN repertoire.
ModuleMEI.cmn — Specifications
Used by
Legal values are:
long
Quadruple whole note.
breve
Double whole note.
1
Whole note.
2
Half note.
4
Quarter note.
8
8th note.
16
16th note.
32
32nd note.
64
64th note.
128
128th note.
256
256th note.
512
512th note.
1024
1024th note.
2048
2048th note.

data.DURATION.gestural.pat

data.DURATION.gestural.pat Pattern for ppq, beats, seconds, etc.
ModuleMEI — Specifications
Used by
Declaration
data.DURATION.gestural.pat = token { pattern = "[0-9]+(p|(\.[0-9]+)?(b|s))" }

data.DURATION.gestural.prop

data.DURATION.gestural.prop Beat proportion representation equivalent to Humdrum **recip.
ModuleMEI — Specifications
Used by
Declaration
data.DURATION.gestural.prop = token { pattern = "[0-9]+(\.)*r" }

data.FONTFAMILY

data.FONTFAMILY Font family (for text) attribute values. Mup-acceptable values: avantgarde, bookman, courier, helvetica, newcentury, palatino, times.
ModuleMEI — Specifications
Used by
Declaration
data.FONTFAMILY = token

data.FONTNAME

data.FONTNAME Font name (for text) attribute values. Mup-acceptable values: rom, ital, bold, boldital.
ModuleMEI — Specifications
Used by
Declaration
data.FONTNAME = token

data.FONTSTYLE

data.FONTSTYLE Font style (for text) attribute values.
ModuleMEI — Specifications
Used by
Legal values are:
italic
Text slants to right.
normal
Unadorned.
oblique
Text slants to the left.

data.FONTWEIGHT

data.FONTWEIGHT Font weight (for text) attribute values.
ModuleMEI — Specifications
Used by
Legal values are:
bold
normal

data.GLISSANDO

data.GLISSANDO Analytical glissando attribute values.
ModuleMEI — Specifications
Used by
Legal values are:
i
First note/chord in glissando.
m
Note/chord that's neither first nor last in glissando.
t
Last note in glissando.

data.GRACE

data.GRACE Do grace notes get time from the current (acc) or previous (unacc) one?.
ModuleMEI — Specifications
Used by
Legal values are:
acc
Time "stolen" from following note.
unacc
Time "stolen" from previous note.
unknown
No interpretation regarding performed value of grace note.

data.LAYERSCHEME

data.LAYERSCHEME Indicates how stems should be drawn when more than one layer is present and stem directions are not indicated on the notes/chords themselves. '1' indicates that there is only a single layer on a staff. '2o' means there are two layers with opposing stems. '2f' indicates two 'free' layers; that is, opposing stems will be drawn unless one of the layers has 'space'. In that case, stem direction in the remaining layer will be determined as if there were only one layer. '3o' and '3f' are analogous to '2o' and '2f' with three layers allowed.
ModuleMEI — Specifications
Used by
Legal values are:
1
Single layer.
2o
Two layers with opposing stems.
2f
Two layers with 'floating' stems.
3o
3f

data.LINEFORM

data.LINEFORM Visual form of a line.
ModuleMEI — Specifications
Used by
Declaration
data.LINEFORM = 

data.LINESTARTENDSYMBOL

data.LINESTARTENDSYMBOL Symbol that may begin/end a line.
ModuleMEI — Specifications
Used by
Declaration
data.LINESTARTENDSYMBOL = 

data.LINESTARTENDSYMBOLSIZE

data.LINESTARTENDSYMBOLSIZE Relative size of symbol that may begin/end a line.
ModuleMEI — Specifications
Used by
Declaration
data.LINESTARTENDSYMBOLSIZE =
   xsd:positiveInteger { minInclusive = "1" maxInclusive = "9" }

data.LINEWIDTH

data.LINEWIDTH Datatype of line width measurements.
ModuleMEI — Specifications
Used by
Declaration
data.LINEWIDTH = 

data.LINEWIDTHTERM

data.LINEWIDTHTERM Relative width of a line.
ModuleMEI — Specifications
Used by
Declaration
data.LINEWIDTHTERM = 

data.MEASUREBEAT

data.MEASUREBEAT A count of measures plus a beat location, i.e., [0-9]+m\+[0-9]+(\.?[0-9]*)?. The measure count is the number of barlines crossed by the event, while the beat location is a timestamp in the measure where the event ends. For example, dur="1m+3" indicates that the event ends in the next measure on beat 3. The measure number must be in the range of 0 to the number of remaining measures and the beat number must be in the range from 0 to the numerator of the time signature plus 1. For example, for an event starting in the first measure of a piece containing 6 measures in 6/8, the measure number must be between 0 to 5 and the beat number must be within the range from 0 to 7, e.g., "4m+3". The customization makes the measure part mandatory and disallows space characters.
ModuleMEI — Specifications
Used by
Declaration
data.MEASUREBEAT = token { pattern = "[0-9]+m\+[0-9]+(\.?[0-9]*)?" }
ExampleA valid tstamp2
<slur tstamp="1tstamp2="0m+2"  xml:id="d036"/>
ExampleAn invalid tstamp2 containing spaces
<slur tstamp="1tstamp2="0m + 2"  xml:id="d037"/>
ExampleAn invalid tstamp2 lacking a measure value
<slur tstamp="1tstamp2="2xml:id="d038"/>

data.MEASUREMENT

data.MEASUREMENT Measurement expressed in real-world (e.g., centimeters, millimeters, inches, points, picas, or pixels) or virtual units (vu). 'vu' is the default value.
ModuleMEI — Specifications
Used by
Declaration
data.MEASUREMENT =
   token { pattern = "(\+|-)?\d+(\.\d+)?(cm|mm|in|pt|pc|px|vu)?" }

data.MENSURATIONSIGN

data.MENSURATIONSIGN Mensuration attribute values.
ModuleMEI — Specifications
Used by
Legal values are:
C
Tempus imperfectum.
O
Tempus perfectum.

data.METERSIGN

data.METERSIGN Meter.sym attribute values for CMN.
ModuleMEI — Specifications
Used by
Legal values are:
common
Common time; i.e. 4/4.
cut
Cut time; i.e. 2/2.

data.MODE

data.MODE Modes.
ModuleMEI — Specifications
Used by
Legal values are:
major
minor
dorian
phrygian
lydian
mixolydian
aeolian
locrian

data.NOTATIONTYPE

data.NOTATIONTYPE Notation type and subtype
ModuleMEI — Specifications
Used by
Declaration
data.NOTATIONTYPE = 

data.NOTEHEADMODIFIER.list

data.NOTEHEADMODIFIER.list Captures any notehead "modifiers"; that is, symbols added to the notehead, such as slashes, lines, text, enclosures, etc.
ModuleMEI — Specifications
Used by
Declaration
data.NOTEHEADMODIFIER.list = 

data.NOTEHEADMODIFIER.pat

data.NOTEHEADMODIFIER.pat Captures text rendered in the center of the notehead.
ModuleMEI — Specifications
Used by
Declaration
data.NOTEHEADMODIFIER.pat =
   string { pattern = "centertext\((A|B|C|D|E|F|G)(f|♭|n|♮|s|♯)?\)" }
 | string { pattern = "centertext\(H(s|♯)?\)" }

data.OCTAVE

data.OCTAVE Oct attribute values. The default values conform to Acoustical Society of America representation. Read, p. 44.
ModuleMEI — Specifications
Used by
Declaration
data.OCTAVE = xsd:nonNegativeInteger { maxInclusive = "9" }

data.PERCENT

data.PERCENT Positive decimal number plus '%', i.e., [0-9]+(\.?[0-9]*)?\%.
ModuleMEI — Specifications
Used by
Declaration
data.PERCENT = token { pattern = "[0-9]+(\.?[0-9]*)?%" }

data.PITCHNAME

data.PITCHNAME The pitch names (gamut) used within a single octave. The default values conform to Acoustical Society of America representation.
ModuleMEI — Specifications
Used by
Declaration
data.PITCHNAME = token { pattern = "[a-g]" }

data.PITCHNAME.GES

data.PITCHNAME.GES Gestural pitch names need an additional value for when the notated pitch is not to be sounded.
ModuleMEI — Specifications
Used by
Declaration
data.PITCHNAME.GES = token { pattern = "[a-g]|none" }

data.PITCHNUMBER

data.PITCHNUMBER Pnum (pitch number, e.g. MIDI) attribute values.
ModuleMEI — Specifications
Used by
Declaration
data.PITCHNUMBER = xsd:nonNegativeInteger

data.PLACE

data.PLACE Location of symbol relative to other notational components.
ModuleMEI — Specifications
Used by
Legal values are:
above
below

data.ROTATIONDIRECTION

data.ROTATIONDIRECTION Rotation term.
ModuleMEI — Specifications
Used by
Legal values are:
none
No rotation.
down
Rotated 180 degrees.
left
Rotated 270 degrees clockwise.
ne
Rotated 45 degrees clockwise.
nw
Rotated 315 degrees clockwise.
se
Rotated 135 degrees clockwise.
sw
Rotated 225 degrees clockwise.

data.SLASH

data.SLASH The number of slashes to be rendered for tremolandi.
ModuleMEI — Specifications
Used by
Declaration
data.SLASH = xsd:positiveInteger { minInclusive = "1" maxInclusive = "6" }

data.STAFFLOC

data.STAFFLOC Staff location. The value '0' indicates the bottom line of the current staff; positive values are used for positions above the bottom line and negative values for the positions below. For example, in treble clef, 1 = F4, 2 = G4, 3 = A4, etc. and -1 = D4, -2 = C4, and so on.
ModuleMEI — Specifications
Used by
Declaration
data.STAFFLOC = xsd:integer

data.STAFFREL

data.STAFFREL Location of musical material relative to a staff.
ModuleMEI — Specifications
Used by
Legal values are:
above
Written above staff.
below
Written below staff.
within
Written on staff.

data.STEMDIRECTION

data.STEMDIRECTION Stem direction.
ModuleMEI — Specifications
Used by
Declaration
data.STEMDIRECTION = 

data.STEMDIRECTION.basic

data.STEMDIRECTION.basic Common stem directions.
ModuleMEI — Specifications
Used by
Legal values are:
up
Stem points upwards.
down
Stem points downwards.

data.STEMMODIFIER

data.STEMMODIFIER Stem modification.
ModuleMEI — Specifications
Used by
Legal values are:
none
No modifications to stem.
1slash
1 slash through stem.
2slash
2 slashes through stem.
3slash
3 slashes through stem.
4slash
4 slashes through stem.
5slash
5 slashes through stem.
6slash
6 slashes through stem.
sprech
X placed on stem.
z
Z placed on stem.

data.STEMPOSITION

data.STEMPOSITION Position of a note's stem relative to the head of the note.
ModuleMEI — Specifications
Used by
Legal values are:
left
Stem attached to left side of note head.
right
Stem attached to right side of note head.
center
Stem is originates from center of note head.

data.TEXTRENDITION

data.TEXTRENDITION Text rendition values.
ModuleMEI — Specifications
Used by
Element:
Declaration
data.TEXTRENDITION = 

data.TEXTRENDITIONLIST

data.TEXTRENDITIONLIST Closed list of text rendition values.
ModuleMEI — Specifications
Used by
Legal values are:
xx-small
Relative font size.
x-small
Relative font size.
small
Relative font size.
medium
Relative font size.
large
Relative font size.
x-large
Relative font size.
xx-large
Relative font size.
smaller
Relative font size.
larger
Relative font size.
italic
Italicized (slanted to right).
oblique
Oblique (slanted to left).
smcaps
Small capitals.
bold
Relative font weight.
bolder
Relative font weight.
lighter
Relative font weight.
box
Enclosed in box.
circle
Enclosed in ellipse/circle.
dbox
Enclosed in diamond.
tbox
Enclosed in triangle.
bslash
Struck through by '\' (back slash).
fslash
Struck through by '/' (forward slash).
line-through
Struck through by '-'; may be qualified to indicate multiple lines, e.g. line-through(2).
none
Not rendered, invisible.
overline
Line above the text; may be qualified to indicate multiple lines, e.g. overline(3).
overstrike
obscured by other text, such as 'XXXXX'
strike
Struck through by '-'; equivalent to line-through; may be qualified to indicate multiple lines, e.g. strike(3).
sub
Subscript.
sup
Superscript.
underline
Underlined; may be qualified to indicate multiple lines, e.g. underline(2).
ltr
Left-to-right (BIDI embed).
rtl
Right-to-left (BIDI embed).
lro
Left-to-right (BIDI override).
rlo
Right-to-left (BIDI override).

data.TEXTRENDITIONPAR

data.TEXTRENDITIONPAR Parameterized text rendition values.
ModuleMEI — Specifications
Used by
Declaration
data.TEXTRENDITIONPAR =
   string { pattern = "(underline|overline|line-through|strike)\(\d+\)" }
 | string { pattern = "(letter-spacing|line-height)\((\+|-)?\d+(\.\d+)?%?\)" }

data.URI

data.URI A Uniform Resource Identifier, see [RFC2396].
ModuleMEI — Specifications
Used by
Declaration
data.URI = xsd:anyURI

data.URI.local

data.URI.local A local URI starting with #
ModuleMEI — Specifications
Used by
Declaration
data.URI.local = token { pattern = "#[A-Za-z][A-Za-z0-9\-_:\.]*" }

macro.availabilityPart

macro.availabilityPart Groups elements that may appear as part of a description of the availability of and access to a bibliographic item.
ModuleMEI.header — Specifications
Used by
Declaration
macro.availabilityPart =
   ( acqSource, ( accessRestrict, price? )* )*,
   useRestrict?,
   sysReq?

macro.bibldescPart

macro.bibldescPart Groups manifestation- and item-specific elements that may appear as part of a bibliographic description.
ModuleMEI.header — Specifications
Used by
Declaration
macro.bibldescPart = editionStmt?, pubStmt?, physDesc*, physLoc*, seriesStmt*

macro.musicPart

macro.musicPart Groups elements that may appear as part of the music element.
ModuleMEI.shared — Specifications
Used by
Declaration
macro.musicPart = model.frontLike?, ( body | group )?, model.backLike?

Constraints

Schematron
<sch:ns prefix="mei"  uri="http://www.music-encoding.org/ns/mei"/>
Raffaele Viglianti, Zoltán Kőmíves and Alexander Erhard. Date: 2016-05-11