LilyPond Internals Reference: 3.2.99 spacing-spanner-interface

### 3.2.99 spacing-spanner-interface

The space taken by a note is dependent on its duration. Doubling a duration adds `spacing-increment` to the space. The most common shortest note gets `shortest-duration-space`. Notes that are even shorter are spaced proportonial to their duration.

Typically, the increment is the width of a black note head. In a piece with lots of 8th notes, and some 16th notes, the eighth note gets a 2 note heads width (i.e., the space following a note is a 1 note head width). A 16th note is followed by 0.5 note head width. The quarter note is followed by 3 NHW, the half by 4 NHW, etc.

#### User settable properties:

> `average-spacing-wishes` (boolean)

>   If set, the spacing wishes are averaged over staves.

> `base-shortest-duration` (moment)

>   Spacing is based on the shortest notes in a piece. Normally, pieces are spaced as if notes at least as short as this are present.

> `common-shortest-duration` (moment)

>   The most common shortest note length. This is used in spacing. Enlarging this sets the score tighter.

> `packed-spacing` (boolean)

>   If set, the notes are spaced as tightly as possible.

> `shortest-duration-space` (dimension, in staff space)

>   Start with this much space for the shortest duration. This is expressed in `spacing-increment` as unit. See also spacing-spanner-interface.

> `spacing-increment` (number)

>   Add this much space for a doubled duration. Typically, the width of a note head. See also spacing-spanner-interface.

> `strict-grace-spacing` (boolean)

>   If set, main notes are spaced normally, then grace notes are put left of the musical columns for the main notes.

> `strict-note-spacing` (boolean)

>   If set, unbroken columns with non-musical material (clefs, bar lines, etc.) are not spaced separately, but put before musical columns.

> `uniform-stretching` (boolean)

>   If set, items stretch proportionally to their durations. This looks better in complex polyphonic patterns.

This grob interface is used in the following graphical object(s): SpacingSpanner.

#### Internals Reference