att.stems

Attributes that describe the properties of stemmed features; that is, chords and notes.
Module
MEI.shared
Attributes
stem.dir, stem.form, stem.len, stem.mod, stem.pos, stem.sameas, stem.visible, stem.with, stem.x, stem.y
stem.dir(optional)Describes the direction of a stem. Value conforms to data.STEMDIRECTION.
stem.form(optional)Records the form of the stem. Value conforms to data.STEMFORM.mensural.
stem.len(optional)Encodes the stem length. Value conforms to data.MEASUREMENTABS.
stem.mod(optional)Encodes any stem "modifiers"; that is, symbols rendered on the stem, such as tremolo or Sprechstimme indicators. Value conforms to data.STEMMODIFIER.
stem.pos(optional)Records the position of the stem in relation to the note head(s). Value conforms to data.STEMPOSITION.
stem.sameas(optional)Points to a note element in a different layer whose stem is shared. The linked notes should be rendered like a chord though they are part of different layers. Value conforms to data.URI.
stem.visible(optional)Determines whether a stem should be displayed. Value conforms to data.BOOLEAN.
stem.with(optional)Contains an indication of which staff a note or chord that logically belongs to the current staff should be visually placed on; that is, the one above or the one below. Value conforms to data.OTHERSTAFF.
stem.x(optional)Records the output x coordinate of the stem's attachment point. Value is a decimal number.
stem.y(optional)Records the output y coordinate of the stem's attachment point. Value is a decimal number.
stem.dir(optional)Describes the direction of a stem. Value conforms to data.STEMDIRECTION.
stem.len(optional)Encodes the stem length. Value conforms to data.MEASUREMENTABS.
stem.mod(optional)Encodes any stem "modifiers"; that is, symbols rendered on the stem, such as tremolo or Sprechstimme indicators. Value conforms to data.STEMMODIFIER.
stem.pos(optional)Records the position of the stem in relation to the note head(s). Value conforms to data.STEMPOSITION.
stem.sameas(optional)Points to a note element in a different layer whose stem is shared. The linked notes should be rendered like a chord though they are part of different layers. Value conforms to data.URI.
stem.visible(optional)Determines whether a stem should be displayed. Value conforms to data.BOOLEAN.
stem.x(optional)Records the output x coordinate of the stem's attachment point. Value is a decimal number.
stem.y(optional)Records the output y coordinate of the stem's attachment point. Value is a decimal number.
(MEI.cmn) Attributes that describe the properties of stemmed features; that is, chords and notes.
stem.with(optional)Contains an indication of which staff a note or chord that logically belongs to the current staff should be visually placed on; that is, the one above or the one below. Value conforms to data.OTHERSTAFF.
(MEI.mensural) Attributes that describe the properties of stemmed features specific to mensural repertoires.
stem.form(optional)Records the form of the stem. Value conforms to data.STEMFORM.mensural.
Common Music Notation (CMN) repertoire component declarations.
stem.with(optional)Contains an indication of which staff a note or chord that logically belongs to the current staff should be visually placed on; that is, the one above or the one below. Value conforms to data.OTHERSTAFF.
Mensural repertoire component declarations.
stem.form(optional)Records the form of the stem. Value conforms to data.STEMFORM.mensural.
Component declarations that are shared between two or more modules.
stem.dir(optional)Describes the direction of a stem. Value conforms to data.STEMDIRECTION.
stem.len(optional)Encodes the stem length. Value conforms to data.MEASUREMENTABS.
stem.mod(optional)Encodes any stem "modifiers"; that is, symbols rendered on the stem, such as tremolo or Sprechstimme indicators. Value conforms to data.STEMMODIFIER.
stem.pos(optional)Records the position of the stem in relation to the note head(s). Value conforms to data.STEMPOSITION.
stem.sameas(optional)Points to a note element in a different layer whose stem is shared. The linked notes should be rendered like a chord though they are part of different layers. Value conforms to data.URI.
stem.visible(optional)Determines whether a stem should be displayed. Value conforms to data.BOOLEAN.
stem.x(optional)Records the output x coordinate of the stem's attachment point. Value is a decimal number.
stem.y(optional)Records the output y coordinate of the stem's attachment point. Value is a decimal number.
Available at
ambNoteHighest or lowest pitch in a score, staff, or layer.
chordA simultaneous sounding of two or more notes in the same layer *with the same duration*.
noteA single pitched event.
Component declarations that are shared between two or more modules.
ambNoteHighest or lowest pitch in a score, staff, or layer.
chordA simultaneous sounding of two or more notes in the same layer *with the same duration*.
noteA single pitched event.
Constraints

@stem.sameas attribute should have content.
The value in @stem.sameas should correspond to the @xml:id attribute of the linked note element of a different layer.
The linked notes by @stem.sameas should have the same @dur values.

Declaration
<classSpec ident="att.stems" module="MEI.shared" type="atts">
<desc>Attributes that describe the properties of stemmed features; that is, chords and notes.</desc>
<classes>
<memberOf key="att.stems.cmn"/>
<memberOf key="att.stems.mensural"/>
</classes>
<attList>
<attDef ident="stem.dir" usage="opt">
<desc>Describes the direction of a stem.</desc>
<datatype>
<rng:ref name="data.STEMDIRECTION"/>
</datatype>
</attDef>
<attDef ident="stem.len" usage="opt">
<desc>Encodes the stem length.</desc>
<datatype>
<rng:ref name="data.MEASUREMENTABS"/>
</datatype>
</attDef>
<attDef ident="stem.mod" usage="opt">
<desc>Encodes any stem "modifiers"; that is, symbols rendered on the stem, such as tremolo or Sprechstimme indicators.</desc>
<datatype>
<rng:ref name="data.STEMMODIFIER"/>
</datatype>
</attDef>
<attDef ident="stem.pos" usage="opt">
<desc>Records the position of the stem in relation to the note head(s).</desc>
<datatype>
<rng:ref name="data.STEMPOSITION"/>
</datatype>
</attDef>
<attDef ident="stem.sameas" usage="opt">
<desc>Points to a note element in a different layer whose stem is shared. The linked notes should be rendered like a chord though they are part of different layers. </desc>
<datatype maxOccurs="1">
<rng:ref name="data.URI"/>
</datatype>
<constraintSpec ident="check_stem.sameasTarget" scheme="isoschematron">
<constraint>
<sch:rule context="@stem.sameas">
<sch:let name="layer.n" value="self::node()/ancestor::mei:layer/@n"/>
<sch:let name="ref.id" value="substring(.,2)"/>
<sch:assert role="warning" test="not(normalize-space(.) eq '')">@stem.sameas attribute should have content.</sch:assert>
<sch:assert role="warning" test="substring(.,2)=//mei:note[not(ancestor::mei:layer/@n=$layer.n)]/@xml:id"> The value in @stem.sameas should correspond to the @xml:id attribute of the linked note element of a different layer.</sch:assert>
<sch:assert role="warning" test="../@dur=//mei:note[@xml:id=$ref.id]/@dur"> The linked notes by @stem.sameas should have the same @dur values. </sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
</attDef>
<attDef ident="stem.visible" usage="opt">
<desc>Determines whether a stem should be displayed.</desc>
<datatype>
<rng:ref name="data.BOOLEAN"/>
</datatype>
</attDef>
<attDef ident="stem.x" usage="opt">
<desc>Records the output x coordinate of the stem's attachment point.</desc>
<datatype>
<rng:data type="decimal"/>
</datatype>
</attDef>
<attDef ident="stem.y" usage="opt">
<desc>Records the output y coordinate of the stem's attachment point.</desc>
<datatype>
<rng:data type="decimal"/>
</datatype>
</attDef>
</attList>
</classSpec>