LilyPond Internals Reference: 3.1.113 Stem

### 3.1.113 Stem

Stem objects are created by: Span_stem_engraver and Stem_engraver.

Standard settings:

> `beamlet-default-length` (pair):

>       '(1.1 . 1.1)

>   A pair of numbers. The first number specifies the default length of a beamlet that sticks out of the left hand side of this stem; the second number specifies the default length of the beamlet to the right. The actual length of a beamlet is determined by taking either the default length or the length specified by `beamlet-max-length-proportion`, whichever is smaller.

> `beamlet-max-length-proportion` (pair):

>       '(0.75 . 0.75)

>   The maximum length of a beamlet, as a proportion of the distance between two adjacent stems.

> `default-direction` (direction):

>   `ly:stem::calc-default-direction`

>   Direction determined by note head positions.

> `details` (list):

>       '((lengths 3.5 3.5 3.5 4.25 5.0 6.0 7.0 8.0 9.0)
>         (beamed-lengths 3.26 3.5 3.6)
>         (beamed-minimum-free-lengths 1.83 1.5 1.25)
>         (beamed-extreme-minimum-free-lengths 2.0 1.25)
>         (stem-shorten 1.0 0.5 0.25))

>   Alist of parameters for detailed grob behavior. More information on the allowed parameters for a grob can be found by looking at the top of the Internals Reference page for each interface having a `details` property.

> `direction` (direction):

>   `ly:stem::calc-direction`

>   If `side-axis` is `0` (or `X`), then this property determines whether the object is placed `LEFT`, `CENTER` or `RIGHT` with respect to the other object. Otherwise, it determines whether the object is placed `UP`, `CENTER` or `DOWN`. Numerical values may also be used: `UP`=`1`, `DOWN`=`-1`, `LEFT`=`-1`, `RIGHT`=`1`, `CENTER`=`0`.

> `double-stem-separation` (number):

>   `0.5`

>   The distance between the two stems of a half note in tablature when using `\tabFullNotation`, not counting the width of the stems themselves, expressed as a multiple of the default height of a staff-space in the traditional five-line staff.

> `duration-log` (integer):

>   `stem::calc-duration-log`

>   The 2-log of the note head duration, i.e., `0` = whole note, `1` = half note, etc.

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

>   `#<unpure-pure-container #<primitive-procedure ly:stem::calc-length> #<primitive-procedure ly:stem::pure-calc-length> >`

>   User override for the stem length of unbeamed stems (each unit represents half a `staff-space`).

> `neutral-direction` (direction):

>   `-1`

>   Which direction to take in the center of the staff.

> `note-collision-threshold` (dimension, in staff space):

>   `1`

>   Simultaneous notes that are this close or closer in units of `staff-space` will be identified as vertically colliding. Used by `Stem` grobs for notes in the same voice, and `NoteCollision` grobs for notes in different voices. Default value 1.

> `stem-begin-position` (number):

>   `#<unpure-pure-container #<primitive-procedure ly:stem::calc-stem-begin-position> #<primitive-procedure ly:stem::pure-calc-stem-begin-position> >`

>   User override for the begin position of a stem.

> `stencil` (stencil):

>   `ly:stem::print`

>   The symbol to print.

> `thickness` (number):

>   `1.3`

>   For grobs made up of lines, this is the thickness of the line. For slurs and ties, this is the distance between the two arcs of the curve’s outline at its thickest point, not counting the diameter of the virtual “pen” that draws the arcs. This property is expressed as a multiple of the current staff-line thickness (i.e. the visual output is influenced by changes to `Staff.StaffSymbol.thickness`).

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

>   `ly:stem::width`

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

> `X-offset` (number):

>   `ly:stem::offset-callback`

>   The horizontal amount that this object is moved relative to its X-parent.

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

>   `#<unpure-pure-container #<primitive-procedure ly:stem::height> #<primitive-procedure ly:stem::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:staff-symbol-referencer::callback> >`

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

This object supports the following interface(s): grob-interface, item-interface and stem-interface.

#### Internals Reference v2.22.2 (stable-branch).