LilyPond program-reference: 2.1.17 PianoStaff

### 2.1.17 PianoStaff

Just like `GrandStaff` but with support for instrument names at the start of each system.

This context also accepts commands for the following context(s):

GrandStaff.

This context creates the following layout object(s):

Arpeggio, InstrumentName, SpanBar, SystemStartBar, SystemStartBrace, SystemStartBracket and SystemStartSquare.

This context sets the following properties:

- Set translator property `shortInstrumentName` to `'()`.
- Set translator property `instrumentName` to `'()`.
- Set translator property `systemStartDelimiter` to `'SystemStartBrace`.
- Set translator property `localKeySignature` to `'()`.

Context PianoStaff can contain Staff and FiguredBass.

This context is built from the following engraver(s):

> `Instrument_name_engraver`

>   Create a system start text for instrument or vocal names.

>   Properties (read)

>   > `currentCommandColumn` (layout object)

>   >   Grob that is X-parent to all current breakable (clef, key signature, etc.) items.

>   > `shortInstrumentName` (markup)

>   >   See `instrument`.

>   > `instrumentName` (markup)

>   >   The name to print left of a staff. The `instrument` property labels the staff in the first system, and the `instr` property labels following lines.

>   > `shortVocalName` (markup)

>   >   Name of a vocal line, short version.

>   > `vocalName` (markup)

>   >   Name of a vocal line.

>   This engraver creates the following layout object(s):

>   InstrumentName.

> `System_start_delimiter_engraver`

>   Create a system start delimiter (i.e., a `SystemStartBar`, `SystemStartBrace`, `SystemStartBracket` or `SystemStartSquare` spanner).

>   Properties (read)

>   > `systemStartDelimiter` (symbol)

>   >   Which grob to make for the start of the system/staff? Set to `SystemStartBrace`, `SystemStartBracket` or `SystemStartBar`.

>   > `systemStartDelimiterHierarchy` (pair)

>   >   A nested list, indicating the nesting of a start delimiters.

>   > `currentCommandColumn` (layout object)

>   >   Grob that is X-parent to all current breakable (clef, key signature, etc.) items.

>   This engraver creates the following layout object(s):

>   SystemStartBar, SystemStartBrace, SystemStartBracket and SystemStartSquare.

> `Span_arpeggio_engraver`

>   Make arpeggios that span multiple staves.

>   Properties (read)

>   > `connectArpeggios` (boolean)

>   >   If set, connect arpeggios across piano staff.

>   This engraver creates the following layout object(s):

>   Arpeggio.

> `Span_bar_engraver`

>   Make cross-staff bar lines: It catches all normal bar lines and draws a single span bar across them.

>   This engraver creates the following layout object(s):

>   SpanBar.

#### Internals Reference