LilyPond program-reference: 2.1.8 FretBoards

### 2.1.8 FretBoards

(not documented)

This context creates the following layout object(s):

FretBoard, InstrumentName, StaffSpacing and VerticalAxisGroup.

This context sets the following properties:

- Set translator property `predefinedDiagramTable` to `#<hash-table 0/113>`.

This context is a ‘bottom’ context; it cannot contain other contexts.

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.

> `Font_size_engraver`

>   Put `fontSize` into `font-size` grob property.

>   Properties (read)

>   > `fontSize` (number)

>   >   The relative size of all grobs in a context.

> `Separating_line_group_engraver`

>   Generate objects for computing spacing parameters.

>   Properties (read)

>   > `createSpacing` (boolean)

>   >   Create `StaffSpacing` objects? Should be set for staves.

>   Properties (write)

>   > `hasStaffSpacing` (boolean)

>   >   True if the current `CommandColumn` contains items that will affect spacing.

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

>   StaffSpacing.

> `Fretboard_engraver`

>   Generate one or more tablature noteheads from event of type `NoteEvent`.

>   Music types accepted:

>   string-number-event and note-event

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

>   > `minimumFret` (number)

>   >   The tablature auto string-selecting mechanism selects the highest string with a fret at least `minimumFret`.

>   > `maximumFretStretch` (number)

>   >   Don’t allocate frets further than this from specified frets.

>   > `tablatureFormat` (procedure)

>   >   A function formatting a tablature note head. Called with three arguments: string number, context and event. It returns the text as a string.

>   > `highStringOne` (boolean)

>   >   Whether the first string is the string with highest pitch on the instrument. This used by the automatic string selector for tablature notation.

>   > `predefinedDiagramTable` (hash table)

>   >   The hash table of predefined fret diagrams to use in FretBoards.

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

>   FretBoard.

> `Axis_group_engraver`

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

>   Properties (read)

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

>   VerticalAxisGroup.

> `Output_property_engraver`

>   Apply a procedure to any grob acknowledged.

>   Music types accepted:

>   apply-output-event

#### Internals Reference