<hairpin>

Indicates continuous dynamics expressed on the score as wedge-shaped graphics, e.g., < and >.
Module
Attributes
@angle.optimize, @closed, @color, @dur, @endho, @endid, @endvo, @form, @ho, @label, @layer, @lform, @lsegs, @lwidth, @niente, @opening, @opening.vertical, @place, @plist, @staff, @startho, @startid, @startvo, @tstamp, @tstamp2, @type, @val, @val2, @vo, @xml:id
@angle.optimize(optional)Indicates that the slope of the hairpin can be adjusted to follow the content in order to optimize spacing.
@closed(optional)Applies to a "Rossini" hairpin, i.e., one where the normally open side is closed by a connecting line.
@color(optional)Used to indicate visual appearance. Do not confuse this with the musical term 'color' as used in pre-CMN notation.
@dur(optional)When a duration cannot be represented as a single power-of-two value, multiple space-separated values that add up to the total duration may be used.
@endho(optional)Records the horizontal adjustment of a feature’s programmatically-determined end point.
@endid(optional)Indicates the final element in a sequence of events to which the feature applies.
@endvo(optional)Records a vertical adjustment of a feature’s programmatically-determined end point.
@form(required)Captures the visual rendition and function of the hairpin; that is, whether it indicates an increase or a decrease in volume. Allowed values are: "cres" (Crescendo; , louder.), "dim" (Diminuendo; , softer.)
@ho(optional)Records a horizontal adjustment to a feature’s programmatically-determined location in terms of staff interline distance; that is, in units of 1/2 the distance between adjacent staff lines.
@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.
@layer(optional)Identifies the layer to which a feature applies.
@lform(optional)Describes the style of a line.
@lsegs(optional)Describes the number of segments into which a dashed or dotted line may be divided, or the number of "peaks" of a wavy line; a pair of space-separated values (minimum and maximum, respectively) provides a range between which a rendering system-supplied value may fall, while a single value indicates a fixed amount of space; that is, the minimum and maximum values are equal.
@lwidth(optional)Width of a line.
@niente(optional)Indicates that the hairpin starts from or ends in silence. Often rendered as a small circle attached to the closed end of the hairpin. See Gould, p. 108.
@opening(optional)Specifies the distance between the lines at the open end of a hairpin dynamic mark.
@opening.vertical(optional)Indicates that the opening points are aligned with an imaginary line that is always 90° perpendicular to the horizontal plane, regardless of any angle or start/end adjustments, including when the hairpin is angled with @angle.optimize or through @endvo/@startvo adjustments.
@place(optional)Captures the placement of the item with respect to the staff with which it is associated.
@plist(optional)When the target attribute is present, plist identifies the active participants; that is, those entities pointed "from", in a relationship with the specified target(s). When the target attribute is not present, it identifies participants in a mutual relationship.
@staff(optional)Signifies the staff on which a notated event occurs or to which a control event applies. Mandatory when applicable.
@startho(optional)Records the horizontal adjustment of a feature’s programmatically-determined start point.
@startid(optional)Holds a reference to the first element in a sequence of events to which the feature applies.
@startvo(optional)Records a vertical adjustment of a feature’s programmatically-determined start point.
@tstamp(optional)Encodes the onset time in terms of musical time, i.e., beats[.fractional beat part], as expressed in the written time signature.
@tstamp2(optional)Encodes the ending point of an event, i.e., a count of measures plus a beat location in the ending measure.
@type(optional)Designation which characterizes the element in some sense, using any convenient classification scheme or typology that employs single-token labels.
@val(optional)MIDI number.
@val2(optional)MIDI number.
@vo(optional)Records the vertical adjustment of a feature’s programmatically-determined location in terms of staff interline distance; that is, in units of 1/2 the distance between adjacent staff lines.
@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.
(MEI.shared) Attributes common to many elements.
(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.
(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.
(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.
(MEI.cmn) Logical domain attributes.
@form(required)Captures the visual rendition and function of the hairpin; that is, whether it indicates an increase or a decrease in volume. Allowed values are: "cres" (Crescendo; , louder.), "dim" (Diminuendo; , softer.)
@niente(optional)Indicates that the hairpin starts from or ends in silence. Often rendered as a small circle attached to the closed end of the hairpin. See Gould, p. 108.
(MEI.shared) 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.
(MEI.shared) Attributes that identify the layer to which a feature applies.
@layer(optional)Identifies the layer to which a feature applies.
(MEI.shared) Attributes listing the active participants in a user-defined collection.
@plist(optional)When the target attribute is present, plist identifies the active participants; that is, those entities pointed "from", in a relationship with the specified target(s). When the target attribute is not present, it identifies participants in a mutual relationship.
(MEI.shared) Attributes for identifying the staff or staff group associated with the current feature.
@staff(optional)Signifies the staff on which a notated event occurs or to which a control event applies. Mandatory when applicable.
(MEI.shared) Attributes that record a time stamp in terms of musical time, , beats[.fractional beat part].
@tstamp(optional)Encodes the onset time in terms of musical time, i.e., beats[.fractional beat part], as expressed in the written time signature.
(MEI.shared) Attributes that permit total duration to be represented by multiple values.
@dur(optional)When a duration cannot be represented as a single power-of-two value, multiple space-separated values that add up to the total duration may be used.
(MEI.shared) Attributes recording the identifiers of the first and last elements of a sequence of elements to which the current element is associated.
@endid(optional)Indicates the final element in a sequence of events to which the feature applies.
(MEI.shared) Attributes that identify a relative starting point.
@startid(optional)Holds a reference to the first element in a sequence of events to which the feature applies.
(MEI.shared) Attributes that record a time stamp for the end of an event in terms of musical time.
@tstamp2(optional)Encodes the ending point of an event, i.e., a count of measures plus a beat location in the ending measure.
(MEI.visual) 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 end point, and x2 and y2 the right end point, of an imaginary line that defines the length of the hairpin and horizontally bifurcates it. The so-called "pitch" of hairpin may be controlled by use of the startho, endho, startvo, and endvo attributes, while the placement of the entire rendered mark may be controlled by use of the ho and vo attributes.
@opening(optional)Specifies the distance between the lines at the open end of a hairpin dynamic mark.
@closed(optional)Applies to a "Rossini" hairpin, i.e., one where the normally open side is closed by a connecting line.
@opening.vertical(optional)Indicates that the opening points are aligned with an imaginary line that is always 90° perpendicular to the horizontal plane, regardless of any angle or start/end adjustments, including when the hairpin is angled with @angle.optimize or through @endvo/@startvo adjustments.
@angle.optimize(optional)Indicates that the slope of the hairpin can be adjusted to follow the content in order to optimize spacing.
(MEI.shared) Visual color attributes.
@color(optional)Used to indicate visual appearance. Do not confuse this with the musical term 'color' as used in pre-CMN notation.
(MEI.shared) Attributes that record the basic visual rendition of lines.
@lform(optional)Describes the style of a line.
@lwidth(optional)Width of a line.
@lsegs(optional)Describes the number of segments into which a dashed or dotted line may be divided, or the number of "peaks" of a wavy line; a pair of space-separated values (minimum and maximum, respectively) provides a range between which a rendering system-supplied value may fall, while a single value indicates a fixed amount of space; that is, the minimum and maximum values are equal.
(MEI.shared) Attributes capturing placement information with respect to the staff.
@place(optional)Captures the placement of the item with respect to the staff with which it is associated.
(MEI.shared) Visual offset attributes. Some items may have their location recorded in terms of offsets from their programmatically-determined location. The ho attribute records the horizontal offset while vo records the vertical. The to attribute holds a timestamp offset, the most common use of which is as an alternative to the ho attribute.
(MEI.shared) Horizontal offset attributes.
@ho(optional)Records a horizontal adjustment to a feature’s programmatically-determined location in terms of staff interline distance; that is, in units of 1/2 the distance between adjacent staff lines.
(MEI.shared) Vertical offset attributes.
@vo(optional)Records the vertical adjustment of a feature’s programmatically-determined location in terms of staff interline distance; that is, in units of 1/2 the distance between adjacent staff lines.
(MEI.shared) Visual offset attributes. Some items may have their location recorded in terms of pairs of offsets from their programmatically-determined location. The startho and endho attributes record the horizontal offsets of the start and end points of the item, respectively. Similarly, the startvo and endvo attributes record the vertical offsets of the start and end points of the item. The startto and endto attributes hold timestamp offsets, the most common use of which is as alternatives to the ho attributes.
(MEI.shared) Horizontal offset requiring a pair of attributes.
@startho(optional)Records the horizontal adjustment of a feature’s programmatically-determined start point.
@endho(optional)Records the horizontal adjustment of a feature’s programmatically-determined end point.
(MEI.shared) Vertical offset attributes requiring a pair of attributes.
@startvo(optional)Records a vertical adjustment of a feature’s programmatically-determined start point.
@endvo(optional)Records a vertical adjustment of a feature’s programmatically-determined end point.
(MEI.gestural) Gestural domain attributes.
(MEI.midi) Attributes that record MIDI values.
@val(optional)MIDI number.
(MEI.midi) Attributes that record terminal MIDI values.
@val2(optional)MIDI number.
@form(required)Captures the visual rendition and function of the hairpin; that is, whether it indicates an increase or a decrease in volume. Allowed values are: "cres" (Crescendo; , louder.), "dim" (Diminuendo; , softer.)
@niente(optional)Indicates that the hairpin starts from or ends in silence. Often rendered as a small circle attached to the closed end of the hairpin. See Gould, p. 108.
@val(optional)MIDI number.
@val2(optional)MIDI number.
@color(optional)Used to indicate visual appearance. Do not confuse this with the musical term 'color' as used in pre-CMN notation.
@dur(optional)When a duration cannot be represented as a single power-of-two value, multiple space-separated values that add up to the total duration may be used.
@endho(optional)Records the horizontal adjustment of a feature’s programmatically-determined end point.
@endid(optional)Indicates the final element in a sequence of events to which the feature applies.
@endvo(optional)Records a vertical adjustment of a feature’s programmatically-determined end point.
@ho(optional)Records a horizontal adjustment to a feature’s programmatically-determined location in terms of staff interline distance; that is, in units of 1/2 the distance between adjacent staff lines.
@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.
@layer(optional)Identifies the layer to which a feature applies.
@lform(optional)Describes the style of a line.
@lsegs(optional)Describes the number of segments into which a dashed or dotted line may be divided, or the number of "peaks" of a wavy line; a pair of space-separated values (minimum and maximum, respectively) provides a range between which a rendering system-supplied value may fall, while a single value indicates a fixed amount of space; that is, the minimum and maximum values are equal.
@lwidth(optional)Width of a line.
@place(optional)Captures the placement of the item with respect to the staff with which it is associated.
@plist(optional)When the target attribute is present, plist identifies the active participants; that is, those entities pointed "from", in a relationship with the specified target(s). When the target attribute is not present, it identifies participants in a mutual relationship.
@staff(optional)Signifies the staff on which a notated event occurs or to which a control event applies. Mandatory when applicable.
@startho(optional)Records the horizontal adjustment of a feature’s programmatically-determined start point.
@startid(optional)Holds a reference to the first element in a sequence of events to which the feature applies.
@startvo(optional)Records a vertical adjustment of a feature’s programmatically-determined start point.
@tstamp(optional)Encodes the onset time in terms of musical time, i.e., beats[.fractional beat part], as expressed in the written time signature.
@tstamp2(optional)Encodes the ending point of an event, i.e., a count of measures plus a beat location in the ending measure.
@type(optional)Designation which characterizes the element in some sense, using any convenient classification scheme or typology that employs single-token labels.
@vo(optional)Records the vertical adjustment of a feature’s programmatically-determined location in terms of staff interline distance; that is, in units of 1/2 the distance between adjacent staff lines.
@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.
@angle.optimize(optional)Indicates that the slope of the hairpin can be adjusted to follow the content in order to optimize spacing.
@closed(optional)Applies to a "Rossini" hairpin, i.e., one where the normally open side is closed by a connecting line.
@opening(optional)Specifies the distance between the lines at the open end of a hairpin dynamic mark.
@opening.vertical(optional)Indicates that the opening points are aligned with an imaginary line that is always 90° perpendicular to the horizontal plane, regardless of any angle or start/end adjustments, including when the hairpin is angled with @angle.optimize or through @endvo/@startvo adjustments.
Member of
model.controlEventLike.cmnGroups control events that appear in CMN.
Contained By
(MEI.cmn) Groups control events that appear in CMN.
(MEI.cmn) Groups elements that may appear within a CMN measure.
May Contain
– (<hairpin> may not have child elements)
Remarks

The <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. The starting point of the hairpin 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 one starting and one ending type of attribute. MIDI values associated with the graphical dynamic sign may be recorded in the @val and @val2 attributes.

Constraints

Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.
Must have one of the attributes: dur, dur.ges, endid, or tstamp2.

Declaration
<elementSpec xmlns="http://www.tei-c.org/ns/1.0" rend="add" ident="hairpin" module="MEI.cmn">
<desc xml:lang="en">Indicates continuous dynamics expressed on the score as wedge-shaped graphics,
<abbr>e.g.</abbr>
, < and >.</desc>
<classes>
<memberOf key="att.common"/>
<memberOf key="att.hairpin.log"/>
<memberOf key="att.hairpin.vis"/>
<memberOf key="att.hairpin.ges"/>
<memberOf key="model.controlEventLike.cmn"/>
</classes>
<content>
<empty/>
</content>
<constraintSpec ident="hairpin_start-_and_end-type_attributes_required" scheme="schematron">
<constraint>
<sch:rule context="mei:hairpin">
<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>
</constraint>
</constraintSpec>
<remarks xml:lang="en">
<p>The <gi scheme="MEI">hairpin</gi> element is used for <emph>graphical</emph>,
<abbr>i.e.</abbr>
, crescendo and diminuendo, dynamic markings. For instantaneous or continuous <emph>textual</emph> dynamics, such as 'p', 'mf', or 'cres. poco a poco', the <gi scheme="MEI">dynam</gi> element should be used. The starting point of the hairpin marking may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute, while the ending point may be recorded by either a <att>dur</att>, <att>dur.ges</att>, <att>endid</att>, or <att>tstamp2</att> attribute. It is a semantic error not to specify one starting and one ending type of attribute. MIDI values associated with the graphical dynamic sign may be recorded in the <att>val</att> and <att>val2</att> attributes.</p>
</remarks>
</elementSpec>