LilyPond Internals Reference: 2.1.22 StaffGroup

### 2.1.22 StaffGroup

Groups staves while adding a bracket on the left side, grouping the staves together. The bar lines of the contained staves are connected vertically. `StaffGroup` only consists of a collection of staves, with a bracket in front and spanning bar lines.

This context creates the following layout object(s):

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

This context sets the following properties:

- Set translator property `instrumentName` to `'()`.
- Set translator property `shortInstrumentName` to `'()`.
- Set translator property `systemStartDelimiter` to `'SystemStartBracket`.
- Set translator property `topLevelAlignment` to `#f`.

Context StaffGroup can contain ChoirStaff, ChordNames, DrumStaff, FiguredBass, GrandStaff, Lyrics, PianoStaff, RhythmicStaff, Staff, StaffGroup and TabStaff.

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` (graphical (layout) object)

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

>   > `instrumentName` (markup)

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

>   > `shortInstrumentName` (markup)

>   >   See `instrumentName`.

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

> `Output_property_engraver`

>   Apply a procedure to any grob acknowledged.

>   Music types accepted:

>   apply-output-event

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

> `System_start_delimiter_engraver`

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

>   Properties (read)

>   > `currentCommandColumn` (graphical (layout) object)

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

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

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

>   SystemStartBar, SystemStartBrace, SystemStartBracket and SystemStartSquare.

> `Vertical_align_engraver`

>   Catch groups (staves, lyrics lines, etc.) and stack them vertically.

>   Properties (read)

>   > `alignAboveContext` (string)

>   >   Where to insert newly created context in vertical alignment.

>   > `alignBelowContext` (string)

>   >   Where to insert newly created context in vertical alignment.

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

>   VerticalAlignment.

#### Internals Reference