DrumStaff - LilyPond program-reference
Description: LilyPond program-reference

Next: DrumVoice, Previous: Devnull, Up: Contexts

#### DrumStaff

Handles typesetting for percussion.

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

Staff

This context creates the following layout objects:

BarLine, Clef, DotColumn, InstrumentName, LedgerLineSpanner, NoteCollision, OctavateEight, RestCollision, SeparatingGroupSpanner, SeparationItem, StaffSpacing, StaffSymbol, TimeSignature, VerticalAxisGroup and VoltaBracket.

This context sets the following properties:

- Set grob-property `staff-padding` in Script to `0.75`.
- Set translator property `clefPosition` to `0`
- Set translator property `clefGlyph` to `clefs.percussion`
- Set translator property `instr` to `'()`
- Set translator property `instrument` to `'()`
- Set translator property `createSpacing` to `#t`
- Set translator property `localKeySignature` to `'()`
- Set translator property `verticalExtent` to `#f`
- Set translator property `extraVerticalExtent` to `#f`
- Set grob-property `minimum-Y-extent` in VerticalAxisGroup to `'(-4 . 4)`.

Context DrumStaff can contain DrumVoice and CueVoice

This context is built from the following engravers:

`Axis_group_engraver`
  Group all objects created in this context in a VerticalAxisGroup spanner.

  Properties (read)

  `verticalExtent` (pair of numbers)
    Hard coded vertical extent. The format is a pair of dimensions, for example, this sets the sizes of a staff to 10 (5+5) staff-spaces high.

                       \set Staff.verticalExtent = #'(-5.0 . 5.0)

    This does not work for Voice or any other context that doesn't form a vertical group.

  `minimumVerticalExtent` (pair of numbers)
    minimum vertical extent, same format as verticalExtent
  `extraVerticalExtent` (pair of numbers)
    extra vertical extent, same format as minimumVerticalExtent
  This engraver creates the following layout objects: VerticalAxisGroup.
`Instrument_name_engraver`
  Creates a system start text for instrument or vocal names.

  Properties (read)

  `vocNam` (markup)
    Name of a vocal line, short version.
  `vocalName` (markup)
    Name of a vocal line.
  `instrument` (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.
  `instr` (markup)
    See `instrument`
  `currentCommandColumn` (layout object)
    Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
  This engraver creates the following layout objects: InstrumentName.
`Rest_collision_engraver`
  Handles collisions of rests.

  This engraver creates the following layout objects: RestCollision.

`Collision_engraver`
  Collect NoteColumns, and as soon as there are two or more, put them in a NoteCollision object.

  This engraver creates the following layout objects: NoteCollision.

`Staff_symbol_engraver`
  Create the constellation of five (default) staff lines.

  Music types accepted:

  staff-span-event

  This engraver creates the following layout objects: StaffSymbol.

`Ledger_line_engraver`
  Creates the spanner to draw ledger lines, and notices objects that need ledger lines

  This engraver creates the following layout objects: LedgerLineSpanner.

`Time_signature_engraver`
  Create a TimeSignature whenever `timeSignatureFraction` changes

  This engraver creates the following layout objects: TimeSignature.

`Clef_engraver`
  Determine and set reference point for pitches

  Properties (read)

  `clefPosition` (number)
    Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
  `clefGlyph` (string)
    Name of the symbol within the music font.
  `middleCPosition` (number)
    Place of the middle C, measured in half staff-spaces. Usually determined by looking at `clefPosition` and `clefGlyph`.
  `clefOctavation` (integer)
    Add this much extra octavation. Values of 7 and -7 are common.
  `explicitClefVisibility` (vector)
    ``break-visibility`' function for clef changes.
  `forceClef` (boolean)
    Show clef symbol, even if it has not changed. Only active for the first clef after the property is set, not for the full staff.
  This engraver creates the following layout objects: Clef and OctavateEight.
`Dot_column_engraver`
  Engraves dots on dotted notes shifted to the right of the note. If omitted, then dots appear on top of the notes.

  This engraver creates the following layout objects: DotColumn.

`Separating_line_group_engraver`
  Generates objects for computing spacing parameters.

  Properties (read)

  `createSpacing` (boolean)
    Create `StaffSpacing` objects? Should be set for staves.
  Properties (write)
  `breakableSeparationItem` (layout object)
    The breakable items in this time step, for this staff.
  This engraver creates the following layout objects: SeparatingGroupSpanner, SeparationItem and StaffSpacing.
`Volta_engraver`
  Make volta brackets.

  Properties (read)

  `repeatCommands` (list)
    This property is read to find any command of the form `(volta .` x`)`, where x is a string or `#f`
  `voltaSpannerDuration` (moment)
    This specifies the maximum duration to use for the brackets printed for `\alternative`. This can be used to shrink the length of brackets in the situation where one alternative is very large.
  `stavesFound` (list of grobs)
    list of all staff-symbols found.
  This engraver creates the following layout objects: VoltaBracket.
`Font_size_engraver`
  Puts fontSize into font-size grob property.

  Properties (read)

  `fontSize` (number)
    The relative size of all grobs in a context.
`Bar_engraver`
  Create barlines. This engraver is controlled through the `whichBar` property. If it has no bar line to create, it will forbid a linebreak at this point

  Properties (read)

  `whichBar` (string)
    This property is read to determine what type of bar line to create.

    Example:

                       \set Staff.whichBar = "|:"

    This will create a start-repeat bar in this staff only. Valid values are described in bar-line-interface.

  This engraver creates the following layout objects: BarLine.
`Output_property_engraver`
  Apply a procedure to any grob acknowledged.

  Music types accepted:

  layout-instruction

This page is for LilyPond-2.8.8 (stable-branch).

Other languages: English.
Using automatic language selection.