<staffDef>

Module
Attributes
aboveorder, bar.len, bar.method, bar.place, beam.color, beam.group, beam.rend, beam.rests, beam.slope, beloworder, betweenorder, class, clef.color, clef.dis, clef.dis.place, clef.line, clef.shape, clef.visible, copyof, corresp, decls, dir.dist, divisio, dur.default, dynam.dist, follows, grid.show, harm.dist, instr, key.accid, key.mode, key.pname, keysig, keysig.cancelaccid, keysig.visible, label, layerscheme, lines, lines.color, lines.visible, lyric.align, lyric.fam, lyric.name, lyric.size, lyric.style, lyric.weight, mensur.color, mensur.dot, mensur.form, mensur.loc, mensur.orient, mensur.sign, mensur.size, mensur.slash, meter.count, meter.form, meter.showchange, meter.sym, meter.unit, meter.visible, modusmaior, modusminor, multi.number, music.name, music.size, n, next, notationsubtype, notationtype, num.default, numbase.default, oct.default, ontheline, pedal.style, ppq, precedes, prev, prolatio, proport.num, proport.numbase, reh.dist, reh.enclose, resp, sameas, scale, slur.lform, slur.lwidth, spacing, synch, tab.strings, tempo.dist, tempus, text.fam, text.name, text.size, text.style, text.weight, tie.lform, tie.lwidth, trans.diat, trans.semi, tune.Hz, tune.pname, tune.temper, type, visible, xml:base, xml:id
aboveorderDescribes vertical order of items printed above a staff, from closest to farthest away from the staff. One or more values from data.STAFFITEM, separated by spaces.
bar.len(optional)States the length of bar lines in virtual units. The value must be greater than 0 and is typically equal to 2 times (the number of staff lines - 1); e.g., a value of 8 for a 5-line staff. Value is a decimal number.
bar.method(optional)Records the method of barring. Value conforms to data.BARMETHOD.
bar.place(optional)Denotes the staff location of bar lines, if the length is non-standard; that is, not equal to 2 times (the number of staff lines - 1). Value conforms to data.STAFFLOC.
beam.color(optional)Color of beams, including those associated with tuplets. Value conforms to data.COLOR.
beam.group(optional)Provides an example of how automated beaming (including secondary beams) is to be performed. Value is plain text.
beam.rend(optional)Encodes whether a beam is "feathered" and in which direction. Allowed values are: "acc" (Beam lines grow farther apart from left to right.), "rit" (Beam lines grow closer together from left to right.), "norm" (Beam lines are equally-spaced over the entire length of the beam.)
beam.rests(optional)Indicates whether automatically-drawn beams should include rests shorter than a quarter note duration. Value conforms to data.BOOLEAN.
beam.slope(optional)Captures beam slope. Value is a decimal number.
beloworderDescribes vertical order of items printed below a staff, from closest to farthest away from the staff. One or more values from data.STAFFITEM, separated by spaces.
betweenorderDescribes vertical order of items printed between staves, from top to bottom. One or more values from data.STAFFITEM, separated by spaces.
class(optional)Contains one or more URIs which denote classification terms that apply to the entity bearing this attribute. One or more values from data.URI, separated by spaces.
clef.color(optional)Describes the color of the clef. Value conforms to data.COLOR.
clef.dis(optional)Records the amount of octave displacement to be applied to the clef. Value conforms to data.OCTAVE.DIS.
clef.dis.place(optional)Records the direction of octave displacement to be applied to the clef. Value conforms to data.STAFFREL.basic.
clef.line(optional)Contains a default value for the position of the clef. 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. Value conforms to data.CLEFLINE.
clef.shape(optional)Encodes a value for the clef symbol. Value conforms to data.CLEFSHAPE.
clef.visible(optional)Determines whether the clef is to be displayed. Value conforms to data.BOOLEAN.
copyof(optional)Points to an element of which the current element is a copy. Value conforms to data.URI.
corresp(optional)Used to point to other elements that correspond to this one in a generic fashion. One or more values from data.URI, separated by spaces.
decls(optional)Identifies one or more metadata elements (other than classification terms) within the header, which are understood to apply to the element bearing this attribute and its content. One or more values from data.URI, separated by spaces.
dir.dist(optional)Records the default distance from the staff for directives. Value conforms to data.MEASUREMENTSIGNED.
divisio(optional)Describes the divisions of the breve in use in 14th-century Italy. Value conforms to data.DIVISIO.
dur.default(optional)Contains a default duration in those situations when the first note, rest, chord, etc. in a measure does not have a duration specified. Value conforms to data.DURATION.
dynam.dist(optional)Records the default distance from the staff for dynamic marks. Value conforms to data.MEASUREMENTSIGNED.
follows(optional)points to one or more events in a user-defined collection that are known to be predecessors of the current element. One or more values from data.URI, separated by spaces.
grid.show(optional)Determines whether to display guitar chord grids. Value conforms to data.BOOLEAN.
harm.dist(optional)Records the default distance from the staff of harmonic indications, such as guitar chord grids or functional labels. Value conforms to data.MEASUREMENTSIGNED.
instr(optional)Provides a way of pointing to a MIDI instrument definition. It must contain the ID of an instrDef element elsewhere in the document. Value conforms to data.URI.
key.accid(optional)Contains an accidental for the tonic key, if one is required, e.g., if key.pname equals c and key.accid equals s, then a tonic of C# is indicated. Value conforms to data.ACCIDENTAL.GESTURAL.
key.mode(optional)Indicates major, minor, or other tonality. Value conforms to data.MODE.
key.pname(optional)Holds the pitch name of the tonic key, e.g., c for the key of C. Value conforms to data.PITCHNAME.
keysig(optional)Written key signature. One or more values from data.KEYFIFTHS, separated by spaces.
keysig.cancelaccid(optional)Determines where cautionary accidentals should be displayed at a key change. Value conforms to data.CANCELACCID.
keysig.visible(optional)Determines whether the key signature is to be displayed. Value conforms to data.BOOLEAN.
label(optional)Captures text to be used to generate a label for the element to which it’s attached, a "tool tip" or prefatory text, for example. Should not be used to record document content. Value is plain text.
layerscheme(optional)Indicates the number of layers and their stem directions. Value conforms to data.LAYERSCHEME.
lines(optional)Indicates the number of staff lines. Value is a positive integer.
lines.color(optional)Captures the colors of the staff lines. One or more values from data.COLOR, separated by spaces.
lines.visible(optional)Records whether all staff lines are visible. Value conforms to data.BOOLEAN.
lyric.align(optional)Describes the alignment of lyric syllables associated with a note or chord. Value conforms to data.MEASUREMENTSIGNED.
lyric.fam(optional)Sets the font family default value for lyrics. Value conforms to data.FONTFAMILY.
lyric.name(optional)Sets the font name default value for lyrics. Value conforms to data.FONTNAME.
lyric.size(optional)Sets the default font size value for lyrics. Value conforms to data.FONTSIZE.
lyric.style(optional)Sets the default font style value for lyrics. Value conforms to data.FONTSTYLE.
lyric.weight(optional)Sets the default font weight value for lyrics. Value conforms to data.FONTWEIGHT.
mensur.color(optional)Records the color of the mensuration sign. Do not confuse this with the musical term 'color' as used in pre-CMN notation. Value conforms to data.COLOR.
mensur.dot(optional)Determines if a dot is to be added to the base symbol. Value conforms to data.BOOLEAN.
mensur.form(optional)Indicates whether the base symbol is written vertically or horizontally. Allowed values are: "horizontal" (Horizontally oriented.), "vertical" (Vertically oriented.)
mensur.loc(optional)Holds the staff location of the mensuration sign. Value conforms to data.STAFFLOC.
mensur.orient(optional)Describes the rotation or reflection of the base symbol. Value conforms to data.ORIENTATION.
mensur.sign(optional)The base symbol in the mensuration sign/time signature of mensural notation. Value conforms to data.MENSURATIONSIGN.
mensur.size(optional)Describes the relative size of the mensuration sign. Value conforms to data.FONTSIZE.
mensur.slash(optional)Indicates the number lines added to the mensuration sign. For example, one slash is added for what we now call 'alla breve'. Value is a positive integer.
meter.count(optional)Captures the number of beats in a measure, that is, the top number of the meter signature. It must contain a decimal number or an expression that evaluates to a decimal number, such as 2+3 or 3*2. Value is plain text.
meter.form(optional)Contains an indication of how the meter signature should be rendered. Value conforms to data.METERFORM.
meter.showchange(optional)Determines whether the old meter signature should be displayed when the meter signature changes. Value conforms to data.BOOLEAN.
meter.sym(optional)Indicates 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. Value conforms to data.METERSIGN.
meter.unit(optional)Contains the number indicating the beat unit, that is, the bottom number of the meter signature. Value is a decimal number.
meter.visible(optional)Determines whether the meter signature is to be displayed. Value conforms to data.BOOLEAN.
modusmaior(optional)Describes the maxima-long relationship. Value conforms to data.MODUSMAIOR.
modusminor(optional)Describes the long-breve relationship. Value conforms to data.MODUSMINOR.
multi.number(optional)Indicates whether programmatically calculated counts of multiple measures of rest (mRest) and whole measure repeats (mRpt) in parts should be rendered. Value conforms to data.BOOLEAN.
music.name(optional)Sets the default music font name. Value conforms to data.MUSICFONT.
music.size(optional)Sets the default music font size. Value conforms to data.FONTSIZE.
n(optional)Provides a numeric designation that indicates an element’s position in a sequence of similar elements. Its value must be a non-negative integer. Value is a positive integer, including 0.
next(optional)Used to point to the next event(s) in a user-defined collection. One or more values from data.URI, separated by spaces.
notationsubtype(optional)Provides any sub-classification of the notation contained or described by the element, additional to that given by its notationtype attribute. Value is a NMTOKEN.
notationtype(optional)Contains classification of the notation contained or described by the element bearing this attribute. Value conforms to data.NOTATIONTYPE.
num.default(optional)Along with numbase.default, describes the default duration as a ratio. num.default is the first value in the ratio. Value is a positive integer.
numbase.default(optional)Along with num.default, describes the default duration as a ratio. numbase.default is the second value in the ratio. Value is a positive integer.
oct.default(optional)Contains a default octave specification for use when the first note, rest, chord, etc. in a measure does not have an octave value specified. Value conforms to data.OCTAVE.
ontheline(optional)Determines the placement of notes on a 1-line staff. A value of 'true' places all notes on the line, while a value of 'false' places stems-up notes above the line and stems-down notes below the line. Value conforms to data.BOOLEAN.
pedal.style(optional)Determines whether piano pedal marks should be rendered as lines or as terms. Value conforms to data.PEDALSTYLE.
ppq(optional)Indicates the number of pulses (sometimes referred to as ticks or divisions) per quarter note. Unlike MIDI, MEI permits different values for a score and individual staves. Value is a positive integer.
precedes(optional)Points to one or more events in a user-defined collection that are known to be successors of the current element. One or more values from data.URI, separated by spaces.
prev(optional)Points to the previous event(s) in a user-defined collection. One or more values from data.URI, separated by spaces.
prolatio(optional)Describes the semibreve-minim relationship. Value conforms to data.PROLATIO.
proport.num(optional)Together, proport.num and proport.numbase specify a proportional change as a ratio, e.g., 1:3. Proport.num is for the first value in the ratio. Value is a positive integer.
proport.numbase(optional)Together, proport.num and proport.numbase specify a proportional change as a ratio, e.g., 1:3. Proport.numbase is for the second value in the ratio. Value is a positive integer.
reh.dist(optional)Records the default distance from the staff for rehearsal marks. Value conforms to data.MEASUREMENTSIGNED.
reh.enclose(optional)Describes the enclosing shape for rehearsal marks. Allowed values are: "box" (Enclosed by box.), "circle" (Enclosed by circle.), "none" (No enclosing shape.)
resp(optional)Indicates the agent(s) responsible for some aspect of the text’s transcription, editing, or encoding. Its value must point to one or more identifiers declared in the document header. One or more values from data.URI, separated by spaces.
sameas(optional)Points to an element that is the same as the current element but is not a literal copy of the current element. One or more values from data.URI, separated by spaces.
scale(optional)Scale factor to be applied to the feature to make it the desired display size. Value conforms to data.PERCENT.
slur.lform Value conforms to data.LINEFORM.
slur.lwidth Value conforms to data.LINEWIDTH.
spacing(optional)Records 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. Value conforms to data.MEASUREMENTSIGNED.
synch(optional)Points to elements that are synchronous with the current element. One or more values from data.URI, separated by spaces.
tab.strings(optional)Provides a *written* pitch and octave for each open string or course of strings. One or more values conforming to the pattern "[a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?([a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?)*".
tempo.dist(optional)Records the default distance from the staff for tempo marks. Value conforms to data.MEASUREMENTSIGNED.
tempus(optional)Describes the breve-semibreve relationship. Value conforms to data.TEMPUS.
text.fam(optional)Provides a default value for the font family name of text (other than lyrics) when this information is not provided on the individual elements. Value conforms to data.FONTFAMILY.
text.name(optional)Provides a default value for the font name of text (other than lyrics) when this information is not provided on the individual elements. Value conforms to data.FONTNAME.
text.size(optional)Provides a default value for the font size of text (other than lyrics) when this information is not provided on the individual elements. Value conforms to data.FONTSIZE.
text.style(optional)Provides a default value for the font style of text (other than lyrics) when this information is not provided on the individual elements. Value conforms to data.FONTSTYLE.
text.weight(optional)Provides a default value for the font weight for text (other than lyrics) when this information is not provided on the individual elements. Value conforms to data.FONTWEIGHT.
tie.lform Value conforms to data.LINEFORM.
tie.lwidth Value conforms to data.LINEWIDTH.
trans.diat(optional)Records the amount of diatonic pitch shift, e.g., C to C♯ = 0, C to D♭ = 1, necessary to calculate the sounded pitch from the written one. Value is an integer.
trans.semi(optional)Records the amount of pitch shift in semitones, e.g., C to C♯ = 1, C to D♭ = 1, necessary to calculate the sounded pitch from the written one. Value is an integer.
tune.Hz(optional)Holds a value for cycles per second, i.e., Hertz, for a tuning reference pitch. Value is a decimal number.
tune.pname(optional)Holds the pitch name of a tuning reference pitch, i.e., the central tone of a tuning system. Value conforms to data.PITCHNAME.
tune.temper(optional)Provides an indication of the tuning system, just, for example. Value conforms to data.TEMPERAMENT.
type(optional)Designation which characterizes the element in some sense, using any convenient classification scheme or typology that employs single-token labels. One or more values of datatype NMTOKEN, separated by spaces.
visible(optional)Indicates if a feature should be rendered when the notation is presented graphically or sounded when it is presented in an aural form. Value conforms to data.BOOLEAN.
xml:base(optional)Provides a base URI reference with which applications can resolve relative URI references into absolute URI references. Value conforms to data.URI.
xml:id(optional)Regularizes the naming of an element and thus facilitates building links between it and other resources. Each id attribute within a document must have a unique value. Value is a valid xml:id.
(MEI.shared) Attributes that form the basis of the att.common class.
xml:base(optional)Provides a base URI reference with which applications can resolve relative URI references into absolute URI references. Value conforms to data.URI.
(MEI.shared) Attributes that uniquely identify an element.
xml:id(optional)Regularizes the naming of an element and thus facilitates building links between it and other resources. Each id attribute within a document must have a unique value. Value is a valid xml:id.
(MEI.shared)
label(optional)Captures text to be used to generate a label for the element to which it’s attached, a "tool tip" or prefatory text, for example. Should not be used to record document content. Value is plain text.
(MEI.shared) Attributes that specify element-to-element relationships.
copyof(optional)Points to an element of which the current element is a copy. Value conforms to data.URI.
corresp(optional)Used to point to other elements that correspond to this one in a generic fashion. One or more values from data.URI, separated by spaces.
follows(optional)points to one or more events in a user-defined collection that are known to be predecessors of the current element. One or more values from data.URI, separated by spaces.
next(optional)Used to point to the next event(s) in a user-defined collection. One or more values from data.URI, separated by spaces.
precedes(optional)Points to one or more events in a user-defined collection that are known to be successors of the current element. One or more values from data.URI, separated by spaces.
prev(optional)Points to the previous event(s) in a user-defined collection. One or more values from data.URI, separated by spaces.
sameas(optional)Points to an element that is the same as the current element but is not a literal copy of the current element. One or more values from data.URI, separated by spaces.
synch(optional)Points to elements that are synchronous with the current element. One or more values from data.URI, separated by spaces.
(MEI.shared) Provides attributes for elements which may be associated with particular contextual elements within the header.
decls(optional)Identifies one or more metadata elements (other than classification terms) within the header, which are understood to apply to the element bearing this attribute and its content. One or more values from data.URI, separated by spaces.
(MEI.shared) Attributes used to supply an integer number designation for an element.
n(optional)Provides a numeric designation that indicates an element’s position in a sequence of similar elements. Its value must be a non-negative integer. Value is a positive integer, including 0.
(MEI.shared) Attributes capturing information regarding responsibility for some aspect of the text's creation, transcription, editing, or encoding.
resp(optional)Indicates the agent(s) responsible for some aspect of the text’s transcription, editing, or encoding. Its value must point to one or more identifiers declared in the document header. One or more values from data.URI, separated by spaces.
(MEI.shared) Attributes which can be used to classify features.
type(optional)Designation which characterizes the element in some sense, using any convenient classification scheme or typology that employs single-token labels. One or more values of datatype NMTOKEN, separated by spaces.
(MEI.shared) Attributes which can be used to classify features.
class(optional)Contains one or more URIs which denote classification terms that apply to the entity bearing this attribute. One or more values from data.URI, separated by spaces.
(MEI.shared) Logical domain attributes for staffDef.
lines(optional)Indicates the number of staff lines. Value is a positive integer.
(MEI.shared) Used by staffDef and scoreDef to provide default values for attributes in the logical domain related to clefs.
clef.shape(optional)Encodes a value for the clef symbol. Value conforms to data.CLEFSHAPE.
clef.line(optional)Contains a default value for the position of the clef. 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. Value conforms to data.CLEFLINE.
clef.dis(optional)Records the amount of octave displacement to be applied to the clef. Value conforms to data.OCTAVE.DIS.
clef.dis.place(optional)Records the direction of octave displacement to be applied to the clef. Value conforms to data.STAFFREL.basic.
(MEI.shared) Attributes that provide a durational default value.
dur.default(optional)Contains a default duration in those situations when the first note, rest, chord, etc. in a measure does not have a duration specified. Value conforms to data.DURATION.
num.default(optional)Along with numbase.default, describes the default duration as a ratio. num.default is the first value in the ratio. Value is a positive integer.
numbase.default(optional)Along with num.default, describes the default duration as a ratio. numbase.default is the second value in the ratio. Value is a positive integer.
(MEI.shared) Used by staffDef and scoreDef to provide default values for attributes in the logical domain that are related to key signatures.
keysig(optional)Written key signature. One or more values from data.KEYFIFTHS, separated by spaces.
(MEI.shared) Used by staffDef and scoreDef to provide default values for attributes in the logical domain related to meter signature.
meter.count(optional)Captures the number of beats in a measure, that is, the top number of the meter signature. It must contain a decimal number or an expression that evaluates to a decimal number, such as 2+3 or 3*2. Value is plain text.
meter.unit(optional)Contains the number indicating the beat unit, that is, the bottom number of the meter signature. Value is a decimal number.
meter.sym(optional)Indicates 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. Value conforms to data.METERSIGN.
(MEI) Attributes that provide for classification of notation.
notationtype(optional)Contains classification of the notation contained or described by the element bearing this attribute. Value conforms to data.NOTATIONTYPE.
notationsubtype(optional)Provides any sub-classification of the notation contained or described by the element, additional to that given by its notationtype attribute. Value is a NMTOKEN.
(MEI.shared) Attributes that record a default value for octave.
oct.default(optional)Contains a default octave specification for use when the first note, rest, chord, etc. in a measure does not have an octave value specified. Value conforms to data.OCTAVE.
(MEI.shared) Attributes that describe transposition.
trans.diat(optional)Records the amount of diatonic pitch shift, e.g., C to C♯ = 0, C to D♭ = 1, necessary to calculate the sounded pitch from the written one. Value is an integer.
trans.semi(optional)Records the amount of pitch shift in semitones, e.g., C to C♯ = 1, C to D♭ = 1, necessary to calculate the sounded pitch from the written one. Value is an integer.
(MEI.cmn) Logical domain attributes for staffDef in the CMN repertoire.
(MEI.cmn) Used by layerDef, staffDef, and scoreDef to provide default values for attributes in the logical domain related to beaming.
beam.group(optional)Provides an example of how automated beaming (including secondary beams) is to be performed. Value is plain text.
beam.rests(optional)Indicates whether automatically-drawn beams should include rests shorter than a quarter note duration. Value conforms to data.BOOLEAN.
(MEI.mensural) Logical domain attributes for staffDef in the mensural repertoire.
(MEI.mensural) Used by staffDef and scoreDef to provide default values for attributes in the logical domain related to mensuration. The tempus, prolatio, modusmaior, and modusminor attributes (from the att.mensural.shared class) specify the relationship between the four principle levels of note value, , the long, breve, semibreve and minim, in mensural notation. Modusminor describes the long-breve relationship, while tempus describes the breve-semibreve, and prolatio the semibreve-minim relationship, respectively. Modusmaior is for the maxima-long relationship. The proport.* attributes describe augmentation or diminution of the normal value of the notes in mensural notation.
proport.num(optional)Together, proport.num and proport.numbase specify a proportional change as a ratio, e.g., 1:3. Proport.num is for the first value in the ratio. Value is a positive integer.
proport.numbase(optional)Together, proport.num and proport.numbase specify a proportional change as a ratio, e.g., 1:3. Proport.numbase is for the second value in the ratio. Value is a positive integer.
(MEI.mensural) Shared attributes in the mensural repertoire.
modusmaior(optional)Describes the maxima-long relationship. Value conforms to data.MODUSMAIOR.
modusminor(optional)Describes the long-breve relationship. Value conforms to data.MODUSMINOR.
prolatio(optional)Describes the semibreve-minim relationship. Value conforms to data.PROLATIO.
tempus(optional)Describes the breve-semibreve relationship. Value conforms to data.TEMPUS.
divisio(optional)Describes the divisions of the breve in use in 14th-century Italy. Value conforms to data.DIVISIO.
(MEI.visual) Visual domain attributes for staffDef.
layerscheme(optional)Indicates the number of layers and their stem directions. Value conforms to data.LAYERSCHEME.
lines.color(optional)Captures the colors of the staff lines. One or more values from data.COLOR, separated by spaces.
lines.visible(optional)Records whether all staff lines are visible. Value conforms to data.BOOLEAN.
spacing(optional)Records 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. Value conforms to data.MEASUREMENTSIGNED.
(MEI.shared) Attributes that capture the placement of bar lines.
bar.len(optional)States the length of bar lines in virtual units. The value must be greater than 0 and is typically equal to 2 times (the number of staff lines - 1); e.g., a value of 8 for a 5-line staff. Value is a decimal number.
bar.method(optional)Records the method of barring. Value conforms to data.BARMETHOD.
bar.place(optional)Denotes the staff location of bar lines, if the length is non-standard; that is, not equal to 2 times (the number of staff lines - 1). Value conforms to data.STAFFLOC.
(MEI.visual) Used by staffDef and scoreDef to provide default values for attributes in the visual domain related to clefs.
clef.color(optional)Describes the color of the clef. Value conforms to data.COLOR.
clef.visible(optional)Determines whether the clef is to be displayed. Value conforms to data.BOOLEAN.
(MEI.shared) Attributes that describe distance from the staff.
dir.dist(optional)Records the default distance from the staff for directives. Value conforms to data.MEASUREMENTSIGNED.
dynam.dist(optional)Records the default distance from the staff for dynamic marks. Value conforms to data.MEASUREMENTSIGNED.
harm.dist(optional)Records the default distance from the staff of harmonic indications, such as guitar chord grids or functional labels. Value conforms to data.MEASUREMENTSIGNED.
reh.dist(optional)Records the default distance from the staff for rehearsal marks. Value conforms to data.MEASUREMENTSIGNED.
tempo.dist(optional)Records the default distance from the staff for tempo marks. Value conforms to data.MEASUREMENTSIGNED.
(MEI.visual) Visual domain attributes
grid.show(optional)Determines whether to display guitar chord grids. Value conforms to data.BOOLEAN.
(MEI.visual) Used by staffDef and scoreDef to provide default values for attributes in the visual domain related to key signatures.
keysig.cancelaccid(optional)Determines where cautionary accidentals should be displayed at a key change. Value conforms to data.CANCELACCID.
keysig.visible(optional)Determines whether the key signature is to be displayed. Value conforms to data.BOOLEAN.
(MEI.shared) Attributes that describe default typography of lyrics.
lyric.align(optional)Describes the alignment of lyric syllables associated with a note or chord. Value conforms to data.MEASUREMENTSIGNED.
lyric.fam(optional)Sets the font family default value for lyrics. Value conforms to data.FONTFAMILY.
lyric.name(optional)Sets the font name default value for lyrics. Value conforms to data.FONTNAME.
lyric.size(optional)Sets the default font size value for lyrics. Value conforms to data.FONTSIZE.
lyric.style(optional)Sets the default font style value for lyrics. Value conforms to data.FONTSTYLE.
lyric.weight(optional)Sets the default font weight value for lyrics. Value conforms to data.FONTWEIGHT.
(MEI.visual) Used by staffDef and scoreDef to provide default values for attributes in the visual domain related to meter signature.
meter.form(optional)Contains an indication of how the meter signature should be rendered. Value conforms to data.METERFORM.
meter.showchange(optional)Determines whether the old meter signature should be displayed when the meter signature changes. Value conforms to data.BOOLEAN.
meter.visible(optional)Determines whether the meter signature is to be displayed. Value conforms to data.BOOLEAN.
(MEI.shared) Attributes that indicate programmatic numbering.
multi.number(optional)Indicates whether programmatically calculated counts of multiple measures of rest (mRest) and whole measure repeats (mRpt) in parts should be rendered. Value conforms to data.BOOLEAN.
(MEI.shared) Attributes that capture music font name and size.
music.name(optional)Sets the default music font name. Value conforms to data.MUSICFONT.
music.size(optional)Sets the default music font size. Value conforms to data.FONTSIZE.
(MEI.shared) Attributes that record placement of notes on a single-line staff.
ontheline(optional)Determines the placement of notes on a 1-line staff. A value of 'true' places all notes on the line, while a value of 'false' places stems-up notes above the line and stems-down notes below the line. Value conforms to data.BOOLEAN.
(MEI.shared) Attributes that describe relative size.
scale(optional)Scale factor to be applied to the feature to make it the desired display size. Value conforms to data.PERCENT.
(MEI.shared) Attributes that describe items printed near (above, below, or between) staves
aboveorderDescribes vertical order of items printed above a staff, from closest to farthest away from the staff. One or more values from data.STAFFITEM, separated by spaces.
beloworderDescribes vertical order of items printed below a staff, from closest to farthest away from the staff. One or more values from data.STAFFITEM, separated by spaces.
betweenorderDescribes vertical order of items printed between staves, from top to bottom. One or more values from data.STAFFITEM, separated by spaces.
(MEI.shared) Attributes that describe default text typography.
text.fam(optional)Provides a default value for the font family name of text (other than lyrics) when this information is not provided on the individual elements. Value conforms to data.FONTFAMILY.
text.name(optional)Provides a default value for the font name of text (other than lyrics) when this information is not provided on the individual elements. Value conforms to data.FONTNAME.
text.size(optional)Provides a default value for the font size of text (other than lyrics) when this information is not provided on the individual elements. Value conforms to data.FONTSIZE.
text.style(optional)Provides a default value for the font style of text (other than lyrics) when this information is not provided on the individual elements. Value conforms to data.FONTSTYLE.
text.weight(optional)Provides a default value for the font weight for text (other than lyrics) when this information is not provided on the individual elements. Value conforms to data.FONTWEIGHT.
(MEI.shared) Attributes describing whether a feature should be displayed.
visible(optional)Indicates if a feature should be rendered when the notation is presented graphically or sounded when it is presented in an aural form. Value conforms to data.BOOLEAN.
(MEI.cmn) Visual domain attributes for staffDef in the CMN repertoire.
(MEI.visual) Used by layerDef, staffDef, and scoreDef to provide default values for attributes in the visual domain related to beaming.
beam.color(optional)Color of beams, including those associated with tuplets. Value conforms to data.COLOR.
beam.rend(optional)Encodes whether a beam is "feathered" and in which direction. Allowed values are: "acc" (Beam lines grow farther apart from left to right.), "rit" (Beam lines grow closer together from left to right.), "norm" (Beam lines are equally-spaced over the entire length of the beam.)
beam.slope(optional)Captures beam slope. Value is a decimal number.
(MEI.cmn) Used by scoreDef and staffDef to provide default description of piano pedal rendition.
pedal.style(optional)Determines whether piano pedal marks should be rendered as lines or as terms. Value conforms to data.PEDALSTYLE.
(MEI.cmn) Attributes used by scoreDef and staffDef to provide default information about rehearsal numbers/letters.
reh.enclose(optional)Describes the enclosing shape for rehearsal marks. Allowed values are: "box" (Enclosed by box.), "circle" (Enclosed by circle.), "none" (No enclosing shape.)
(MEI.cmn) Attributes that describe the rendition of slurs.
slur.lform Value conforms to data.LINEFORM.
slur.lwidth Value conforms to data.LINEWIDTH.
(MEI.cmn) Attributes that describe the rendition of ties.
tie.lform Value conforms to data.LINEFORM.
tie.lwidth Value conforms to data.LINEWIDTH.
(MEI.mensural) Visual domain attributes for the mensural repertoire.
(MEI.visual) Used by staffDef and scoreDef to provide default values for attributes in the visual domain related to mensuration.
mensur.color(optional)Records the color of the mensuration sign. Do not confuse this with the musical term 'color' as used in pre-CMN notation. Value conforms to data.COLOR.
mensur.dot(optional)Determines if a dot is to be added to the base symbol. Value conforms to data.BOOLEAN.
mensur.form(optional)Indicates whether the base symbol is written vertically or horizontally. Allowed values are: "horizontal" (Horizontally oriented.), "vertical" (Vertically oriented.)
mensur.loc(optional)Holds the staff location of the mensuration sign. Value conforms to data.STAFFLOC.
mensur.orient(optional)Describes the rotation or reflection of the base symbol. Value conforms to data.ORIENTATION.
mensur.sign(optional)The base symbol in the mensuration sign/time signature of mensural notation. Value conforms to data.MENSURATIONSIGN.
mensur.size(optional)Describes the relative size of the mensuration sign. Value conforms to data.FONTSIZE.
mensur.slash(optional)Indicates the number lines added to the mensuration sign. For example, one slash is added for what we now call 'alla breve'. Value is a positive integer.
(MEI.gestural) Gestural domain attributes for staffDef in the CMN repertoire.
(MEI.midi) Attributes which identify a MIDI instrument.
instr(optional)Provides a way of pointing to a MIDI instrument definition. It must contain the ID of an instrDef element elsewhere in the document. Value conforms to data.URI.
(MEI.stringtab) String tablature tuning information.
tab.strings(optional)Provides a *written* pitch and octave for each open string or course of strings. One or more values conforming to the pattern "[a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?([a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?)*".
(MEI.midi) Attributes that record time-base information.
ppq(optional)Indicates the number of pulses (sometimes referred to as ticks or divisions) per quarter note. Unlike MIDI, MEI permits different values for a score and individual staves. Value is a positive integer.
(MEI.shared) Attributes that describe tuning.
tune.Hz(optional)Holds a value for cycles per second, i.e., Hertz, for a tuning reference pitch. Value is a decimal number.
tune.pname(optional)Holds the pitch name of a tuning reference pitch, i.e., the central tone of a tuning system. Value conforms to data.PITCHNAME.
tune.temper(optional)Provides an indication of the tuning system, just, for example. Value conforms to data.TEMPERAMENT.
(MEI.analytical) Analytical domain attributes.
(MEI.analytical) Used by staffDef and scoreDef to provide default values for attributes in the analytical domain that are related to key signatures.
key.accid(optional)Contains an accidental for the tonic key, if one is required, e.g., if key.pname equals c and key.accid equals s, then a tonic of C# is indicated. Value conforms to data.ACCIDENTAL.GESTURAL.
key.mode(optional)Indicates major, minor, or other tonality. Value conforms to data.MODE.
key.pname(optional)Holds the pitch name of the tonic key, e.g., c for the key of C. Value conforms to data.PITCHNAME.
Data type definitions.
notationsubtype(optional)Provides any sub-classification of the notation contained or described by the element, additional to that given by its notationtype attribute. Value is a NMTOKEN.
notationtype(optional)Contains classification of the notation contained or described by the element bearing this attribute. Value conforms to data.NOTATIONTYPE.
Analytical component declarations.
key.accid(optional)Contains an accidental for the tonic key, if one is required, e.g., if key.pname equals c and key.accid equals s, then a tonic of C# is indicated. Value conforms to data.ACCIDENTAL.GESTURAL.
key.mode(optional)Indicates major, minor, or other tonality. Value conforms to data.MODE.
key.pname(optional)Holds the pitch name of the tonic key, e.g., c for the key of C. Value conforms to data.PITCHNAME.
Common Music Notation (CMN) repertoire component declarations.
beam.group(optional)Provides an example of how automated beaming (including secondary beams) is to be performed. Value is plain text.
beam.rests(optional)Indicates whether automatically-drawn beams should include rests shorter than a quarter note duration. Value conforms to data.BOOLEAN.
pedal.style(optional)Determines whether piano pedal marks should be rendered as lines or as terms. Value conforms to data.PEDALSTYLE.
reh.enclose(optional)Describes the enclosing shape for rehearsal marks. Allowed values are: "box" (Enclosed by box.), "circle" (Enclosed by circle.), "none" (No enclosing shape.)
slur.lform Value conforms to data.LINEFORM.
slur.lwidth Value conforms to data.LINEWIDTH.
tie.lform Value conforms to data.LINEFORM.
tie.lwidth Value conforms to data.LINEWIDTH.
Mensural repertoire component declarations.
divisio(optional)Describes the divisions of the breve in use in 14th-century Italy. Value conforms to data.DIVISIO.
modusmaior(optional)Describes the maxima-long relationship. Value conforms to data.MODUSMAIOR.
modusminor(optional)Describes the long-breve relationship. Value conforms to data.MODUSMINOR.
prolatio(optional)Describes the semibreve-minim relationship. Value conforms to data.PROLATIO.
proport.num(optional)Together, proport.num and proport.numbase specify a proportional change as a ratio, e.g., 1:3. Proport.num is for the first value in the ratio. Value is a positive integer.
proport.numbase(optional)Together, proport.num and proport.numbase specify a proportional change as a ratio, e.g., 1:3. Proport.numbase is for the second value in the ratio. Value is a positive integer.
tempus(optional)Describes the breve-semibreve relationship. Value conforms to data.TEMPUS.
MIDI component declarations.
instr(optional)Provides a way of pointing to a MIDI instrument definition. It must contain the ID of an instrDef element elsewhere in the document. Value conforms to data.URI.
ppq(optional)Indicates the number of pulses (sometimes referred to as ticks or divisions) per quarter note. Unlike MIDI, MEI permits different values for a score and individual staves. Value is a positive integer.
Component declarations that are shared between two or more modules.
aboveorderDescribes vertical order of items printed above a staff, from closest to farthest away from the staff. One or more values from data.STAFFITEM, separated by spaces.
bar.len(optional)States the length of bar lines in virtual units. The value must be greater than 0 and is typically equal to 2 times (the number of staff lines - 1); e.g., a value of 8 for a 5-line staff. Value is a decimal number.
bar.method(optional)Records the method of barring. Value conforms to data.BARMETHOD.
bar.place(optional)Denotes the staff location of bar lines, if the length is non-standard; that is, not equal to 2 times (the number of staff lines - 1). Value conforms to data.STAFFLOC.
beloworderDescribes vertical order of items printed below a staff, from closest to farthest away from the staff. One or more values from data.STAFFITEM, separated by spaces.
betweenorderDescribes vertical order of items printed between staves, from top to bottom. One or more values from data.STAFFITEM, separated by spaces.
class(optional)Contains one or more URIs which denote classification terms that apply to the entity bearing this attribute. One or more values from data.URI, separated by spaces.
clef.dis(optional)Records the amount of octave displacement to be applied to the clef. Value conforms to data.OCTAVE.DIS.
clef.dis.place(optional)Records the direction of octave displacement to be applied to the clef. Value conforms to data.STAFFREL.basic.
clef.line(optional)Contains a default value for the position of the clef. 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. Value conforms to data.CLEFLINE.
clef.shape(optional)Encodes a value for the clef symbol. Value conforms to data.CLEFSHAPE.
copyof(optional)Points to an element of which the current element is a copy. Value conforms to data.URI.
corresp(optional)Used to point to other elements that correspond to this one in a generic fashion. One or more values from data.URI, separated by spaces.
decls(optional)Identifies one or more metadata elements (other than classification terms) within the header, which are understood to apply to the element bearing this attribute and its content. One or more values from data.URI, separated by spaces.
dir.dist(optional)Records the default distance from the staff for directives. Value conforms to data.MEASUREMENTSIGNED.
dur.default(optional)Contains a default duration in those situations when the first note, rest, chord, etc. in a measure does not have a duration specified. Value conforms to data.DURATION.
dynam.dist(optional)Records the default distance from the staff for dynamic marks. Value conforms to data.MEASUREMENTSIGNED.
follows(optional)points to one or more events in a user-defined collection that are known to be predecessors of the current element. One or more values from data.URI, separated by spaces.
harm.dist(optional)Records the default distance from the staff of harmonic indications, such as guitar chord grids or functional labels. Value conforms to data.MEASUREMENTSIGNED.
keysig(optional)Written key signature. One or more values from data.KEYFIFTHS, separated by spaces.
label(optional)Captures text to be used to generate a label for the element to which it’s attached, a "tool tip" or prefatory text, for example. Should not be used to record document content. Value is plain text.
lines(optional)Indicates the number of staff lines. Value is a positive integer.
lyric.align(optional)Describes the alignment of lyric syllables associated with a note or chord. Value conforms to data.MEASUREMENTSIGNED.
lyric.fam(optional)Sets the font family default value for lyrics. Value conforms to data.FONTFAMILY.
lyric.name(optional)Sets the font name default value for lyrics. Value conforms to data.FONTNAME.
lyric.size(optional)Sets the default font size value for lyrics. Value conforms to data.FONTSIZE.
lyric.style(optional)Sets the default font style value for lyrics. Value conforms to data.FONTSTYLE.
lyric.weight(optional)Sets the default font weight value for lyrics. Value conforms to data.FONTWEIGHT.
meter.count(optional)Captures the number of beats in a measure, that is, the top number of the meter signature. It must contain a decimal number or an expression that evaluates to a decimal number, such as 2+3 or 3*2. Value is plain text.
meter.sym(optional)Indicates 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. Value conforms to data.METERSIGN.
meter.unit(optional)Contains the number indicating the beat unit, that is, the bottom number of the meter signature. Value is a decimal number.
multi.number(optional)Indicates whether programmatically calculated counts of multiple measures of rest (mRest) and whole measure repeats (mRpt) in parts should be rendered. Value conforms to data.BOOLEAN.
music.name(optional)Sets the default music font name. Value conforms to data.MUSICFONT.
music.size(optional)Sets the default music font size. Value conforms to data.FONTSIZE.
n(optional)Provides a numeric designation that indicates an element’s position in a sequence of similar elements. Its value must be a non-negative integer. Value is a positive integer, including 0.
next(optional)Used to point to the next event(s) in a user-defined collection. One or more values from data.URI, separated by spaces.
num.default(optional)Along with numbase.default, describes the default duration as a ratio. num.default is the first value in the ratio. Value is a positive integer.
numbase.default(optional)Along with num.default, describes the default duration as a ratio. numbase.default is the second value in the ratio. Value is a positive integer.
oct.default(optional)Contains a default octave specification for use when the first note, rest, chord, etc. in a measure does not have an octave value specified. Value conforms to data.OCTAVE.
ontheline(optional)Determines the placement of notes on a 1-line staff. A value of 'true' places all notes on the line, while a value of 'false' places stems-up notes above the line and stems-down notes below the line. Value conforms to data.BOOLEAN.
precedes(optional)Points to one or more events in a user-defined collection that are known to be successors of the current element. One or more values from data.URI, separated by spaces.
prev(optional)Points to the previous event(s) in a user-defined collection. One or more values from data.URI, separated by spaces.
reh.dist(optional)Records the default distance from the staff for rehearsal marks. Value conforms to data.MEASUREMENTSIGNED.
resp(optional)Indicates the agent(s) responsible for some aspect of the text’s transcription, editing, or encoding. Its value must point to one or more identifiers declared in the document header. One or more values from data.URI, separated by spaces.
sameas(optional)Points to an element that is the same as the current element but is not a literal copy of the current element. One or more values from data.URI, separated by spaces.
scale(optional)Scale factor to be applied to the feature to make it the desired display size. Value conforms to data.PERCENT.
synch(optional)Points to elements that are synchronous with the current element. One or more values from data.URI, separated by spaces.
tempo.dist(optional)Records the default distance from the staff for tempo marks. Value conforms to data.MEASUREMENTSIGNED.
text.fam(optional)Provides a default value for the font family name of text (other than lyrics) when this information is not provided on the individual elements. Value conforms to data.FONTFAMILY.
text.name(optional)Provides a default value for the font name of text (other than lyrics) when this information is not provided on the individual elements. Value conforms to data.FONTNAME.
text.size(optional)Provides a default value for the font size of text (other than lyrics) when this information is not provided on the individual elements. Value conforms to data.FONTSIZE.
text.style(optional)Provides a default value for the font style of text (other than lyrics) when this information is not provided on the individual elements. Value conforms to data.FONTSTYLE.
text.weight(optional)Provides a default value for the font weight for text (other than lyrics) when this information is not provided on the individual elements. Value conforms to data.FONTWEIGHT.
trans.diat(optional)Records the amount of diatonic pitch shift, e.g., C to C♯ = 0, C to D♭ = 1, necessary to calculate the sounded pitch from the written one. Value is an integer.
trans.semi(optional)Records the amount of pitch shift in semitones, e.g., C to C♯ = 1, C to D♭ = 1, necessary to calculate the sounded pitch from the written one. Value is an integer.
tune.Hz(optional)Holds a value for cycles per second, i.e., Hertz, for a tuning reference pitch. Value is a decimal number.
tune.pname(optional)Holds the pitch name of a tuning reference pitch, i.e., the central tone of a tuning system. Value conforms to data.PITCHNAME.
tune.temper(optional)Provides an indication of the tuning system, just, for example. Value conforms to data.TEMPERAMENT.
type(optional)Designation which characterizes the element in some sense, using any convenient classification scheme or typology that employs single-token labels. One or more values of datatype NMTOKEN, separated by spaces.
visible(optional)Indicates if a feature should be rendered when the notation is presented graphically or sounded when it is presented in an aural form. Value conforms to data.BOOLEAN.
xml:base(optional)Provides a base URI reference with which applications can resolve relative URI references into absolute URI references. Value conforms to data.URI.
xml:id(optional)Regularizes the naming of an element and thus facilitates building links between it and other resources. Each id attribute within a document must have a unique value. Value is a valid xml:id.
Tablature component declarations.
tab.strings(optional)Provides a *written* pitch and octave for each open string or course of strings. One or more values conforming to the pattern "[a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?([a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?)*".
Visual component declarations.
beam.color(optional)Color of beams, including those associated with tuplets. Value conforms to data.COLOR.
beam.rend(optional)Encodes whether a beam is "feathered" and in which direction. Allowed values are: "acc" (Beam lines grow farther apart from left to right.), "rit" (Beam lines grow closer together from left to right.), "norm" (Beam lines are equally-spaced over the entire length of the beam.)
beam.slope(optional)Captures beam slope. Value is a decimal number.
clef.color(optional)Describes the color of the clef. Value conforms to data.COLOR.
clef.visible(optional)Determines whether the clef is to be displayed. Value conforms to data.BOOLEAN.
grid.show(optional)Determines whether to display guitar chord grids. Value conforms to data.BOOLEAN.
keysig.cancelaccid(optional)Determines where cautionary accidentals should be displayed at a key change. Value conforms to data.CANCELACCID.
keysig.visible(optional)Determines whether the key signature is to be displayed. Value conforms to data.BOOLEAN.
layerscheme(optional)Indicates the number of layers and their stem directions. Value conforms to data.LAYERSCHEME.
lines.color(optional)Captures the colors of the staff lines. One or more values from data.COLOR, separated by spaces.
lines.visible(optional)Records whether all staff lines are visible. Value conforms to data.BOOLEAN.
mensur.color(optional)Records the color of the mensuration sign. Do not confuse this with the musical term 'color' as used in pre-CMN notation. Value conforms to data.COLOR.
mensur.dot(optional)Determines if a dot is to be added to the base symbol. Value conforms to data.BOOLEAN.
mensur.form(optional)Indicates whether the base symbol is written vertically or horizontally. Allowed values are: "horizontal" (Horizontally oriented.), "vertical" (Vertically oriented.)
mensur.loc(optional)Holds the staff location of the mensuration sign. Value conforms to data.STAFFLOC.
mensur.orient(optional)Describes the rotation or reflection of the base symbol. Value conforms to data.ORIENTATION.
mensur.sign(optional)The base symbol in the mensuration sign/time signature of mensural notation. Value conforms to data.MENSURATIONSIGN.
mensur.size(optional)Describes the relative size of the mensuration sign. Value conforms to data.FONTSIZE.
mensur.slash(optional)Indicates the number lines added to the mensuration sign. For example, one slash is added for what we now call 'alla breve'. Value is a positive integer.
meter.form(optional)Contains an indication of how the meter signature should be rendered. Value conforms to data.METERFORM.
meter.showchange(optional)Determines whether the old meter signature should be displayed when the meter signature changes. Value conforms to data.BOOLEAN.
meter.visible(optional)Determines whether the meter signature is to be displayed. Value conforms to data.BOOLEAN.
spacing(optional)Records 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. Value conforms to data.MEASUREMENTSIGNED.
Member of
model.staffDefLikeGroups elements that permit declaration of staff properties.
Contained By
(MEI.shared) Groups elements that permit declaration of staff properties.
endingAlternative ending for a repeated passage of music; i.e., prima volta, seconda volta, etc.
measureUnit 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.
oStaffA staff that holds an alternative passage which may be played instead of the original material.
partAn alternative visual rendition of the score from the point of view of a particular performer (or group of performers).
scoreFull score view of the musical content.
staffA 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.
staffGrpA group of bracketed or braced staves.
syllableNeume notation can be thought of as "neumed text". Therefore, the syllable element provides high-level organization in this repertoire.
(MEI.shared) Groups elements that may appear as part of a section.
abbrA generic element for 1) a shortened form of a word, including an acronym or 2) a shorthand notation.
addMarks an addition to the text.
corrContains the correct form of an apparent erroneous passage.
damageContains an area of damage to the physical medium.
delContains information deleted, marked as deleted, or otherwise indicated as superfluous or spurious in the copy text by an author, scribe, annotator, or corrector.
expanContains the expansion of an abbreviation.
lemContains the lemma, or base text, of a textual variation.
origContains material which is marked as following the original, rather than being normalized or corrected.
rdgContains a single reading within a textual variation.
regContains material which has been regularized or normalized in some sense.
restoreIndicates restoration of material to an earlier state by cancellation of an editorial or authorial marking or instruction.
sectionSegment of music data.
sicContains apparently incorrect or inaccurate material.
suppliedContains material supplied by the transcriber or editor for any reason.
unclearContains material that cannot be transcribed with certainty because it is illegible or inaudible in the source.
Common Music Notation (CMN) repertoire component declarations.
measureUnit 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.
oStaffA staff that holds an alternative passage which may be played instead of the original material.
Critical apparatus component declarations.
lemContains the lemma, or base text, of a textual variation.
rdgContains a single reading within a textual variation.
Editorial and transcriptional component declarations.
abbrA generic element for 1) a shortened form of a word, including an acronym or 2) a shorthand notation.
addMarks an addition to the text.
corrContains the correct form of an apparent erroneous passage.
damageContains an area of damage to the physical medium.
delContains information deleted, marked as deleted, or otherwise indicated as superfluous or spurious in the copy text by an author, scribe, annotator, or corrector.
expanContains the expansion of an abbreviation.
origContains material which is marked as following the original, rather than being normalized or corrected.
regContains material which has been regularized or normalized in some sense.
restoreIndicates restoration of material to an earlier state by cancellation of an editorial or authorial marking or instruction.
sicContains apparently incorrect or inaccurate material.
suppliedContains material supplied by the transcriber or editor for any reason.
unclearContains material that cannot be transcribed with certainty because it is illegible or inaudible in the source.
Neume repertoire component declarations.
syllableNeume notation can be thought of as "neumed text". Therefore, the syllable element provides high-level organization in this repertoire.
Component declarations that are shared between two or more modules.
endingAlternative ending for a repeated passage of music; i.e., prima volta, seconda volta, etc.
partAn alternative visual rendition of the score from the point of view of a particular performer (or group of performers).
scoreFull score view of the musical content.
sectionSegment of music data.
staffA 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.
staffGrpA group of bracketed or braced staves.
May Contain
ambitusRange of a voice, instrument or piece.
(MEI.shared) Groups elements used to declare a MIDI instrument.
instrDefMIDI instrument declaration.
(MEI.shared) Groups elements used to assign a label to other parts of a document.
labelA container for document text that identifies the feature to which it is attached. For a "tool tip" or other generated label, use the label attribute.
labelAbbrA label on the pages following the first.
(MEI.shared) Groups elements that permit declaration of layer properties.
layerDefContainer for layer meta-information.
(MEI.shared) Groups elements that may appear in the declaration of staff features.
clefIndication of the exact location of a particular note on the staff and, therefore, the other notes as well.
clefGrpA set of simultaneously-occurring clefs.
(MEI.mensural) Groups elements that may appear in the declaration of staff features.
mensurCollects information about the metrical relationship between a note value and the next smaller value; that is, either triple or duple.
proportDescription of note duration as arithmetic ratio.
(MEI.shared) Groups elements that have the same function as a key signature.
keySigWritten key signature.
(MEI.shared) Groups elements that represent a meter signature.
meterSigWritten meter signature.
meterSigGrpUsed to capture alternating, interchanging, mixed or other non-standard meter signatures.
Common Music Notation (CMN) repertoire component declarations.
meterSigWritten meter signature.
meterSigGrpUsed to capture alternating, interchanging, mixed or other non-standard meter signatures.
Mensural repertoire component declarations.
mensurCollects information about the metrical relationship between a note value and the next smaller value; that is, either triple or duple.
proportDescription of note duration as arithmetic ratio.
MIDI component declarations.
instrDefMIDI instrument declaration.
Component declarations that are shared between two or more modules.
ambitusRange of a voice, instrument or piece.
clefIndication of the exact location of a particular note on the staff and, therefore, the other notes as well.
clefGrpA set of simultaneously-occurring clefs.
keySigWritten key signature.
labelA container for document text that identifies the feature to which it is attached. For a "tool tip" or other generated label, use the label attribute.
labelAbbrA label on the pages following the first.
layerDefContainer for layer meta-information.
Constraints

StaffDef must have an n attribute.
Either @lines must be present or a preceding staffDef with the same value for @n and @lines must exist.
Only one clef or clefGrp is permitted.
@n must have the same value as the current staff.
Either @lines must be present or a preceding staffDef with matching @n value and @lines must exist.
The clef position must be less than or equal to the number of lines on the staff.
The clef position must be less than or equal to the number of lines on the staff.
The tab.strings attribute must have the same number of values as there are staff lines.
The tab.strings attribute must have the same number of values as there are staff lines.
The lines.color attribute must have either 1) a single value or 2) the same number of values as there are staff lines.
The lines.color attribute must have either 1) a single value or 2) the same number of values as there are staff lines.
The value of ppq must be a factor of the value of ppq on an ancestor scoreDef.
The value of ppq must be a factor of the value of ppq on a preceding scoreDef.

Declaration
<elementSpec ident="staffDef" module="MEI.shared">
<gloss versionDate="2022-05-18" xml:lang="en">staff definition</gloss>
<desc xml:lang="en">Container for staff meta-information.</desc>
<classes>
<memberOf key="att.basic"/>
<memberOf key="att.labelled"/>
<memberOf key="att.linking"/>
<memberOf key="att.metadataPointing"/>
<memberOf key="att.nInteger"/>
<memberOf key="att.responsibility"/>
<memberOf key="att.typed"/>
<memberOf key="att.staffDef.log"/>
<memberOf key="att.staffDef.vis"/>
<memberOf key="att.staffDef.ges"/>
<memberOf key="att.staffDef.anl"/>
<memberOf key="model.staffDefLike"/>
</classes>
<content>
<rng:zeroOrMore>
<rng:ref name="model.labelLike"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="model.instrDefLike"/>
<rng:ref name="model.layerDefLike"/>
<rng:ref name="model.staffDefPart"/>
</rng:choice>
</rng:zeroOrMore>
<rng:optional>
<rng:ref name="ambitus"/>
</rng:optional>
</content>
<constraintSpec ident="Check_staffDefn" scheme="schematron">
<constraint>
<sch:rule context="mei:staffDef[not(ancestor::mei:staff)]">
<sch:let name="thisstaff" value="@n"/>
<sch:assert test="@n">StaffDef must have an n attribute.</sch:assert>
<sch:assert test="@lines or preceding::mei:staffDef[@n=$thisstaff and @lines]"> Either @lines must be present or a preceding staffDef with the same value for @n and @lines must exist.</sch:assert>
<sch:assert test="count(mei:clef) + count(mei:clefGrp) < 2">Only one clef or clefGrp is permitted.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
<constraintSpec ident="Check_ancestor_staff" scheme="schematron">
<constraint>
<sch:rule context="mei:staffDef[ancestor::mei:staff and @n]">
<sch:let name="thisstaff" value="@n"/>
<sch:assert test="ancestor::mei:staff/@n eq $thisstaff">@n must have the same value as the current staff.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
<constraintSpec ident="Check_ancestor_staff_lines" scheme="schematron">
<constraint>
<sch:rule context="mei:staffDef[ancestor::mei:staff and not(@n)]">
<sch:let name="thisstaff" value="ancestor::mei:staff/@n"/>
<sch:assert test="@lines or preceding::mei:staffDef[@n=$thisstaff and @lines]"> Either @lines must be present or a preceding staffDef with matching @n value and @lines must exist.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
<constraintSpec ident="Check_clef_position_staffDef" scheme="schematron">
<constraint>
<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>
</constraint>
</constraintSpec>
<constraintSpec ident="Check_clef_position_staffDef_nolines" scheme="schematron">
<constraint>
<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>
</constraint>
</constraintSpec>
<constraintSpec ident="Check_tab_strings_lines" scheme="schematron">
<constraint>
<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 = @lines">The tab.strings attribute must have the same number of values as there are staff lines.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
<constraintSpec ident="Check_tab_strings_nolines" scheme="schematron">
<constraint>
<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 = 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>
</constraint>
</constraintSpec>
<constraintSpec ident="Check_lines_color" scheme="schematron">
<constraint>
<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>
</constraint>
</constraintSpec>
<constraintSpec ident="Check_staff_ppq_ancestor" scheme="schematron">
<constraint>
<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>
</constraint>
</constraintSpec>
<constraintSpec ident="Check_staff_ppq_preceding" scheme="schematron">
<constraint>
<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>
</constraint>
</constraintSpec>
</elementSpec>