#### TabStaff

Context for generating tablature. [DOCME]

This context is also known as:

Staff

This context creates the following layout objects:

BarLine, Clef, DotColumn, InstrumentName, NoteCollision, OctavateEight, OttavaBracket, RestCollision, SeparatingGroupSpanner, SeparationItem, SostenutoPedalLineSpanner, SostenutoPedal, StaffSpacing, StaffSymbol, SustainPedalLineSpanner, SustainPedal, TimeSignature, UnaCordaPedalLineSpanner, UnaCordaPedal, VerticalAxisGroup and VoltaBracket.

This context sets the following properties:

- Set translator property `clefPosition` to `0`
- Set translator property `clefGlyph` to `clefs-tab`
- Set grob-property `avoid-note-head` in Stem to `#t`
- Set grob-property `staff-space` in StaffSymbol to `1.5`
- 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 translator property `minimumVerticalExtent` to `'(-6 . 6)`

Context TabStaff can contain TabVoice

This context is built from the following engravers:

`Engraver_group_engraver`
  A group of engravers taken together
`Tab_staff_symbol_engraver`
  Create a staff-symbol, but look at stringTunings for the number of lines.staff lines.

  Properties (read)

  `stringTunings` (list)
    The tablature strings tuning. It is a list of the pitch (in semitones) of each string (starting with the lower one).
  This engraver creates the following layout objects: StaffSymbol.
`Instrument_name_engraver`
  Prints the name of the instrument (specified by `Staff.instrument` and `Staff.instr`) at the left of the staff.

  Properties (read)

  `instr` (markup)
    See `instrument`
  `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.
  This engraver creates the following layout objects: InstrumentName.
`Piano_pedal_engraver`
  Engrave piano pedal symbols and brackets.

  Music types accepted:

  pedal-event

  Properties (read)

  `pedalUnaCordaStyle` (symbol)
    see `pedalSustainStyle`.
  `pedalSustainStyle` (symbol)
    A symbol that indicates how to print sustain pedals: `text`, `bracket` or `mixed` (both).
  `pedalSostenutoStyle` (symbol)
    see `pedalSustainStyle`.
  `pedalUnaCordaStrings` (list)
    See `pedalSustainStrings`.
  `pedalSustainStrings` (list)
    List of string to print for sustain-pedal. Format is (up updown down), where each of the three is the string to print when this is done with the pedal.
  `pedalSostenutoStrings` (list)
    See `pedalSustainStrings`.
  `currentCommandColumn` (layout object)
    Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
  This engraver creates the following layout objects: SostenutoPedal, SostenutoPedalLineSpanner, SustainPedal, SustainPedalLineSpanner, UnaCordaPedal and UnaCordaPedalLineSpanner.
`Rest_collision_engraver`
  Handles collisions of rests.

  This engraver creates the following layout objects: RestCollision.

`Collision_engraver`

  This engraver creates the following layout objects: NoteCollision.

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

  `explicitClefVisibility` (procedure)
    break-visibility function for clef changes.
  `clefOctavation` (integer)
    Add this much extra octavation. Values of 7 and -7 are common.
  `middleCPosition` (number)
    Place of the middle C, measured in half staffspaces. Usually determined by looking at `clefPosition` and `clefGlyph`.
  `clefGlyph` (string)
    Name of the symbol within the music font.
  `clefPosition` (number)
    Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
  This engraver creates the following layout objects: Clef and OctavateEight.
`Ottava_spanner_engraver`
  Create a text spanner when the ottavation property changes..

  Properties (read)

  `ottavation` (string)
    If set, the text for an ottava spanner. Changing this creates a new text spanner.
  This engraver creates the following layout objects: OttavaBracket.
`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)

  `stavesFound` (list of grobs)
    list of all staff-symbols found.
  `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.
  `repeatCommands` (list)
    This property is read to find any command of the form `(volta .` x`)`, where x is a string or `#f`
  This engraver creates the following layout objects: VoltaBracket.
`Font_size_engraver`
  Puts fontSize into font-relative-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`
  Interpret Music of Output_property type, and apply a function to any Graphic objects that satisfies the predicate.

  Music types accepted:

  layout-instruction

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

  Properties (read)

  `extraVerticalExtent` (pair of numbers)
    extra vertical extent, same format as minimumVerticalExtent
  `minimumVerticalExtent` (pair of numbers)
    minimum vertical extent, same format as verticalExtent
  `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) staffspaces 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.

  This engraver creates the following layout objects: VerticalAxisGroup.

Read comments on this page, or add one. This page is for LilyPond-2.2.5 (stable-branch).