<classSpec rend="add" ident="att.hairpin.vis" module="MEI.visual" type="atts">
<desc xml:lang="en">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.</desc>
<classes>
<memberOf key="att.color"/>
<memberOf key="att.lineRend.base"/>
<memberOf key="att.placementRelStaff"/>
<memberOf key="att.visualOffset"/>
<memberOf key="att.visualOffset2"/>
</classes>
<attList>
<attDef ident="opening" usage="opt">
<desc xml:lang="en">Specifies the distance between the lines at the open end of a hairpin dynamic
mark.</desc>
</attDef>
<attDef ident="closed" usage="opt">
<desc xml:lang="en">Applies to a "Rossini" hairpin, i.e., one where the normally open side is closed by
a connecting line.</desc>
</attDef>
<attDef ident="opening.vertical" usage="opt">
<desc xml:lang="en">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.</desc>
</attDef>
<attDef ident="angle.optimize" usage="opt">
<desc xml:lang="en">Indicates that the slope of the hairpin can be adjusted to follow the content in order
to optimize spacing.</desc>
</attDef>
</attList>
</classSpec>