<tuplet>

A group of notes with "irregular" (sometimes called "irrational") rhythmic values, for example, three notes in the time normally occupied by two or nine in the time of five.
Module MEI.cmn
Attributes
@beam.with(optional)In the case of cross-staff beams, the beam.with attribute is used to indicate which staff the beam is connected to; that is, the staff above or the staff below. Value conforms to data.OTHERSTAFF. att.beamedwith
@bracket.place(optional)Used to state where a tuplet bracket will be placed in relation to the note heads. Value conforms to data.PLACE. att.tuplet.vis
@bracket.visible(optional)States whether a bracket should be rendered with a tuplet. Value conforms to data.BOOLEAN. att.tuplet.vis
@color(optional)Used to indicate visual appearance. Do not confuse this with the musical term 'color' as used in pre-CMN notation. Value conforms to data.COLOR. att.color
@copyof(optional)Points to an element of which the current element is a copy. Value conforms to data.URI. att.common.anl
@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. att.common.anl
@dots(optional)Records the number of augmentation dots required by a dotted duration. Value conforms to data.AUGMENTDOT. att.augmentdots
@dur(optional)Records duration using optionally dotted, relative durational values provided by the data.DURATION datatype. When the duration is "irrational", as is sometimes the case with tuplets, multiple space-separated values that add up to the total duration may be used. When dotted values are present, the dots attribute must be ignored. One or more values from data.DURATION.additive, separated by spaces. att.duration.additive
@dur.ges(optional)Records performed duration information that differs from the written duration. Its value may be expressed in several forms; that is, ppq (MIDI clicks and MusicXML 'divisions'), Humdrum **recip values, beats, seconds, or mensural duration values. Value conforms to data.DURATION.gestural. att.duration.performed
@dur.visible(optional)Determines if the tuplet duration is visible. Value conforms to data.BOOLEAN. att.tuplet.vis
@endid(optional)Indicates the final element in a sequence of events to which the feature applies. Value conforms to data.URI. att.startendid
@facs(optional)Permits the current element to reference a facsimile surface or image zone which corresponds to it. One or more values from data.URI, separated by spaces. att.facsimile
@label(optional)Provides a name or label for an element. The value may be any string. Value of datatype string. att.commonPart
@layer(optional)Identifies the layer to which a feature applies. One or more values of datatype positiveInteger, separated by spaces. att.layerident
@n(optional)Provides a number-like designation for an element. Value conforms to token. att.common
@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. att.common.anl
@num(optional)Along with numbase, describes duration as a ratio. num is the first value in the ratio, while numbase is the second. Value of datatype positiveInteger. att.duration.ratio
@num.format(optional)Controls how the num:numbase ratio is to be displayed. Allowed values are: "count" (Only the num attribute is displayed, e.g., '7'.), "ratio" (Both the num and numbase attributes are displayed, e.g., '7:4'.)att.tuplet.vis
@num.place(optional)States where the tuplet number will be placed in relation to the note heads. Value conforms to data.PLACE. att.numberplacement
@num.visible(optional)Determines if the tuplet number is visible. Value conforms to data.BOOLEAN. att.numberplacement
@numbase(optional)Along with num, describes duration as a ratio. num is the first value in the ratio, while numbase is the second. Value of datatype positiveInteger. att.duration.ratio
@prev(optional)Points to the previous event(s) in a user-defined collection. One or more values from data.URI, separated by spaces. att.common.anl
@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. att.common.anl
@staff(optional)Signifies the staff on which a notated event occurs or to which a control event applies. Mandatory when applicable. One or more values of datatype positiveInteger, separated by spaces. att.staffident
@startid(optional)Holds a reference to the first element in a sequence of events to which the feature applies. Value conforms to data.URI. att.startid
@synch(optional)Points to elements that are synchronous with the current element. One or more values from data.URI, separated by spaces. att.common.anl
@tstamp(optional)Encodes the onset time in terms of musical time, i.e., beats[.fractional_beat_part]. Value conforms to data.BEAT. att.timestamp.musical
@tstamp.ges(optional)Captures performed onset time in several forms; that is, ppq (MIDI clicks and MusicXML 'divisions'), Humdrum **recip values, beats, seconds, or mensural duration values. Value conforms to data.DURATION.gestural. att.timestamp.performed
@tstamp.real(optional)Used to record the onset time in terms of ISO time. Value conforms to data.ISOTIME. att.timestamp.performed
@when(optional)Indicates the point of occurrence of this feature along a time line. Its value must be the ID of a when element elsewhere in the document. Value conforms to data.URI. att.alignment
@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. att.commonPart
@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 of datatype ID. att.id
Member of
Contained by
MEI.cmnbeam tuplet
MEI.critapplem rdg
MEI.mensuralligature
MEI.sharedlayer
May contain
Declaration
<classes>
<memberOf key="att.common"/>
<memberOf key="att.facsimile"/>
<memberOf key="att.tuplet.log"/>
<memberOf key="att.tuplet.vis"/>
<memberOf key="att.tuplet.ges"/>
<memberOf key="att.tuplet.anl"/>
<memberOf key="model.eventLike.cmn"/>
</classes>
<content>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="model.eventLike" />
<rng:ref name="model.appLike" />
<rng:ref name="model.editLike" />
<rng:ref name="model.transcriptionLike" />
</rng:choice>
</rng:zeroOrMore>
</content>
Remarks

The beam sub-element is allowed so that custom beaming may be indicated, e.g., a septuplet may be divided into a group of three plus a group of four notes. See Read, p. 187-215. The tuplet element may also used for bowed tremolo (Read, p. 394) and double, triple, or flutter tonguing (Read, p. 348-349); that is, for repetition of the same pitch. In the case of irrational durations, such as such as two quarter notes in the time of five 8th notes in a measure of 5/8 time, decimal values may be used in the dur.ges attribute. For example, the dur.ges attribute would take the value "2.5" if the midi.div attribute's value was "1". The num and numbase attributes may be used for explicit labelling of a tuplet, such as, '3' with an 8th-note triplet, '3:2' over a quarter-note triplet, etc. The rendering of the ratio, however, is dependent on the num.format attribute found in the att.vis.tuplet attribute class.

Constraint
A tuplet without a copyof attribute must have at least 2 note, rest, or chord descendants.
<sch:rule context="mei:tuplet[not(@copyof)]">
<sch:assert test="count(descendant::*[local-name()='note' or local-name()='rest' or local-name()='chord']) > 1">A tuplet without a copyof attribute must have at least 2 note, rest, or chord descendants.</sch:assert>
</sch:rule>