LilyPond Internals Reference: 3.1.49 Hairpin

### 3.1.49 Hairpin

Hairpin objects are created by: Dynamic_engraver and New_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.

> `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.

> `Y-offset` (number):

>   `ly:self-alignment-interface::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