<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. Value conforms to data.BOOLEAN.
@closed(optional)Applies to a "Rossini" hairpin, i.e., one where the normally open side is closed by a connecting line. Value conforms to data.BOOLEAN.
@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.
@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. One or more values from data.DURATION, separated by spaces.
@endho(optional)Records the horizontal adjustment of a feature’s programmatically-determined end point. Value conforms to data.MEASUREMENTSIGNED.
@endid(optional)Indicates the final element in a sequence of events to which the feature applies. Value conforms to data.URI.
@endvo(optional)Records a vertical adjustment of a feature’s programmatically-determined end point. Value conforms to data.MEASUREMENTSIGNED.
@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. Value conforms to data.MEASUREMENTSIGNED.
@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.
@layer(optional)Identifies the layer to which a feature applies. One or more values of datatype positiveInteger, separated by spaces.
@lform(optional)Describes the style of a line. Value conforms to data.LINEFORM.
@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. One or two values of datatype a positive integer no smaller than 2, separated by a space.
@lwidth(optional)Width of a line. Value conforms to data.LINEWIDTH.
@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. Value conforms to data.BOOLEAN.
@opening(optional)Specifies the distance between the lines at the open end of a hairpin dynamic mark. Value conforms to data.MEASUREMENTUNSIGNED.
@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. Value conforms to data.BOOLEAN.
@place(optional)Captures the placement of the item with respect to the staff with which it is associated. Value conforms to data.STAFFREL.
@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. One or more values from data.URI, separated by spaces.
@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.
@startho(optional)Records the horizontal adjustment of a feature’s programmatically-determined start point. Value conforms to data.MEASUREMENTSIGNED.
@startid(optional)Holds a reference to the first element in a sequence of events to which the feature applies. Value conforms to data.URI.
@startvo(optional)Records a vertical adjustment of a feature’s programmatically-determined start point. Value conforms to data.MEASUREMENTSIGNED.
@tstamp(optional)Encodes the onset time in terms of musical time, i.e., beats[.fractional beat part], as expressed in the written time signature. Value conforms to data.BEAT.
@tstamp2(optional)Encodes the ending point of an event, i.e., a count of measures plus a beat location in the ending measure. Value conforms to data.MEASUREBEAT.
@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.
@val(optional)MIDI number. Value conforms to data.MIDIVALUE.
@val2(optional)MIDI number. Value conforms to data.MIDIVALUE.
@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. Value conforms to data.MEASUREMENTSIGNED.
@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 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. 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 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.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. Value conforms to data.BOOLEAN.
(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. One or more values of datatype positiveInteger, separated by spaces.
(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. One or more values from data.URI, separated by spaces.
(MEI.shared) Attributes for identifying the staff 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. One or more values of datatype positiveInteger, separated by spaces.
(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. Value conforms to data.BEAT.
(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. One or more values from data.DURATION, separated by spaces.
(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. Value conforms to data.URI.
(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. Value conforms to data.URI.
(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. Value conforms to data.MEASUREBEAT.
(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. Value conforms to data.MEASUREMENTUNSIGNED.
@closed(optional)Applies to a "Rossini" hairpin, i.e., one where the normally open side is closed by a connecting line. Value conforms to data.BOOLEAN.
@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. Value conforms to data.BOOLEAN.
@angle.optimize(optional)Indicates that the slope of the hairpin can be adjusted to follow the content in order to optimize spacing. Value conforms to data.BOOLEAN.
(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. Value conforms to data.COLOR.
(MEI.shared) Attributes that record the basic visual rendition of lines.
@lform(optional)Describes the style of a line. Value conforms to data.LINEFORM.
@lwidth(optional)Width of a line. Value conforms to data.LINEWIDTH.
@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. One or two values of datatype a positive integer no smaller than 2, separated by a space.
(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. Value conforms to data.STAFFREL.
(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. Value conforms to data.MEASUREMENTSIGNED.
(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. Value conforms to data.MEASUREMENTSIGNED.
(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. Value conforms to data.MEASUREMENTSIGNED.
@endho(optional)Records the horizontal adjustment of a feature’s programmatically-determined end point. Value conforms to data.MEASUREMENTSIGNED.
(MEI.shared) Vertical offset attributes requiring a pair of attributes.
@startvo(optional)Records a vertical adjustment of a feature’s programmatically-determined start point. Value conforms to data.MEASUREMENTSIGNED.
@endvo(optional)Records a vertical adjustment of a feature’s programmatically-determined end point. Value conforms to data.MEASUREMENTSIGNED.
(MEI.gestural) Gestural domain attributes.
(MEI.midi) Attributes that record MIDI values.
@val(optional)MIDI number. Value conforms to data.MIDIVALUE.
(MEI.midi) Attributes that record terminal MIDI values.
@val2(optional)MIDI number. Value conforms to data.MIDIVALUE.
@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. Value conforms to data.BOOLEAN.
@val(optional)MIDI number. Value conforms to data.MIDIVALUE.
@val2(optional)MIDI number. Value conforms to data.MIDIVALUE.
@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.
@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. One or more values from data.DURATION, separated by spaces.
@endho(optional)Records the horizontal adjustment of a feature’s programmatically-determined end point. Value conforms to data.MEASUREMENTSIGNED.
@endid(optional)Indicates the final element in a sequence of events to which the feature applies. Value conforms to data.URI.
@endvo(optional)Records a vertical adjustment of a feature’s programmatically-determined end point. Value conforms to data.MEASUREMENTSIGNED.
@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. Value conforms to data.MEASUREMENTSIGNED.
@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.
@layer(optional)Identifies the layer to which a feature applies. One or more values of datatype positiveInteger, separated by spaces.
@lform(optional)Describes the style of a line. Value conforms to data.LINEFORM.
@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. One or two values of datatype a positive integer no smaller than 2, separated by a space.
@lwidth(optional)Width of a line. Value conforms to data.LINEWIDTH.
@place(optional)Captures the placement of the item with respect to the staff with which it is associated. Value conforms to data.STAFFREL.
@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. One or more values from data.URI, separated by spaces.
@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.
@startho(optional)Records the horizontal adjustment of a feature’s programmatically-determined start point. Value conforms to data.MEASUREMENTSIGNED.
@startid(optional)Holds a reference to the first element in a sequence of events to which the feature applies. Value conforms to data.URI.
@startvo(optional)Records a vertical adjustment of a feature’s programmatically-determined start point. Value conforms to data.MEASUREMENTSIGNED.
@tstamp(optional)Encodes the onset time in terms of musical time, i.e., beats[.fractional beat part], as expressed in the written time signature. Value conforms to data.BEAT.
@tstamp2(optional)Encodes the ending point of an event, i.e., a count of measures plus a beat location in the ending measure. Value conforms to data.MEASUREBEAT.
@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.
@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. Value conforms to data.MEASUREMENTSIGNED.
@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.
@angle.optimize(optional)Indicates that the slope of the hairpin can be adjusted to follow the content in order to optimize spacing. Value conforms to data.BOOLEAN.
@closed(optional)Applies to a "Rossini" hairpin, i.e., one where the normally open side is closed by a connecting line. Value conforms to data.BOOLEAN.
@opening(optional)Specifies the distance between the lines at the open end of a hairpin dynamic mark. Value conforms to data.MEASUREMENTUNSIGNED.
@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. Value conforms to data.BOOLEAN.
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.
<measure>Unit of musical time consisting of a fixed number of note values of a given type, as determined by the prevailing meter, and delimited in musical notation by bar lines.
<measure>Unit of musical time consisting of a fixed number of note values of a given type, as determined by the prevailing meter, and delimited in musical notation by bar lines.
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 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>