### 3.1.52 Hairpin

Hairpin objects are created by: Dynamic_engraver.

Standard settings:

> `after-line-breaking` (boolean):

>   `ly:spanner::kill-zero-spanned-time`

>   Dummy property, used to trigger callback for `after-line-breaking`.

> `bound-padding` (number):

>   `1.0`

>   The amount of padding to insert around spanner bounds.

> `broken-bound-padding` (number):

>   `ly:hairpin::broken-bound-padding`

>   The amount of padding to insert when a spanner is broken at a line break.

> `circled-tip` (boolean)

>   Put a circle at start/end of hairpins (al/del niente).

> `grow-direction` (direction):

>   `hairpin::calc-grow-direction`

>   Crescendo or decrescendo?

> `height` (dimension, in staff space):

>   `0.6666`

>   Height of an object in `staff-space` units.

> `minimum-length` (dimension, in staff space):

>   `2.0`

>   Try to make a spanner at least this long, normally in the horizontal direction. This requires an appropriate callback for the `springs-and-rods` property. If added to a `Tie`, this sets the minimum distance between noteheads.

> `self-alignment-Y` (number):

>   `0`

>   Like `self-alignment-X` but for the Y axis.

> `springs-and-rods` (boolean):

>   `ly:spanner::set-spacing-rods`

>   Dummy variable for triggering spacing routines.

> `stencil` (stencil):

>   `ly:hairpin::print`

>   The symbol to print.

> `thickness` (number):

>   `1.0`

>   Line thickness, generally measured in `line-thickness`.

> `to-barline` (boolean):

>   `#t`

>   If true, the spanner will stop at the bar line just before it would otherwise stop.

> `vertical-skylines` (pair of skylines):

>   `#<unpure-pure-container #<primitive-procedure ly:grob::vertical-skylines-from-stencil> #<primitive-procedure ly:grob::pure-simple-vertical-skylines-from-extents> >`

>   Two skylines, one above and one below this grob.

> `Y-extent` (pair of numbers):

>   `#<unpure-pure-container #<primitive-procedure ly:grob::stencil-height> #<primitive-procedure ly:hairpin::pure-height> >`

>   Extent (size) in the Y direction, measured in staff-space units, relative to object’s reference point.

> `Y-offset` (number):

>   `#<unpure-pure-container #<primitive-procedure ly:self-alignment-interface::y-aligned-on-self> #<primitive-procedure ly:self-alignment-interface::pure-y-aligned-on-self> >`

>   The vertical amount that this object is moved relative to its Y-parent.

This object supports the following interface(s): dynamic-interface, grob-interface, hairpin-interface, line-interface, self-alignment-interface and spanner-interface.

#### Internals Reference v2.18.2 (稳定分支).