### 3.1.9 Arpeggio

Arpeggio objects are created by: Arpeggio_engraver and Span_arpeggio_engraver.

Standard settings:

> `direction` (direction):

>   `-1`

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

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

>   `0.5`

>   Add this much extra space between objects that are next to each other.

> `positions` (pair of numbers):

>   `ly:arpeggio::calc-positions`

>   Pair of staff coordinates `(left . right)`, where both left and right are in `staff-space` units of the current staff. For slurs, this value selects which slur candidate to use; if extreme positions are requested, the closest one is taken.

> `protrusion` (number):

>   `0.4`

>   In an arpeggio bracket, the length of the horizontal edges.

> `script-priority` (number):

>   `0`

>   A key for determining the order of scripts in a stack, by being added to the position of the script in the user input, the sum being the overall priority. Smaller means closer to the head.

> `side-axis` (number):

>   `0`

>   If the value is `X` (or equivalently `0`), the object is placed horizontally next to the other object. If the value is `Y` or `1`, it is placed vertically.

> `staff-position` (number):

>   `0.0`

>   Vertical position, measured in half staff spaces, counted from the middle line.

> `stencil` (stencil):

>   `ly:arpeggio::print`

>   The symbol to print.

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

>   `ly:arpeggio::width`

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

> `X-offset` (number):

>   `ly:side-position-interface::x-aligned-side`

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

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

>   `#<unpure-pure-container #<primitive-procedure ly:grob::stencil-height> #<primitive-procedure ly:arpeggio::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): arpeggio-interface, font-interface, grob-interface, item-interface, side-position-interface and staff-symbol-referencer-interface.

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