LilyPond Internals Reference: 2.1.5 CueVoice

### 2.1.5 `CueVoice`

Corresponds to a voice on a staff. This context handles the conversion of dynamic signs, stems, beams, super- and subscripts, slurs, ties, and rests.

You have to instantiate this explicitly if you want to have multiple voices on the same staff.

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

This context creates the following layout object(s): `Arpeggio`, `Beam`, `BendAfter`, `BreathingSign`, `ClusterSpanner`, `ClusterSpannerBeacon`, `CombineTextScript`, `Dots`, `DoublePercentRepeat`, `DoublePercentRepeatCounter`, `DoubleRepeatSlash`, `DynamicLineSpanner`, `DynamicText`, `DynamicTextSpanner`, `FingerGlideSpanner`, `Fingering`, `Flag`, `Glissando`, `Hairpin`, `InstrumentSwitch`, `LaissezVibrerTie`, `LaissezVibrerTieColumn`, `LigatureBracket`, `MultiMeasureRest`, `MultiMeasureRestNumber`, `MultiMeasureRestScript`, `MultiMeasureRestText`, `NoteColumn`, `NoteHead`, `NoteSpacing`, `PercentRepeat`, `PercentRepeatCounter`, `PhrasingSlur`, `RepeatSlash`, `RepeatTie`, `RepeatTieColumn`, `Rest`, `Script`, `ScriptColumn`, `Slur`, `Stem`, `StemStub`, `StemTremolo`, `StringNumber`, `StrokeFinger`, `TextScript`, `TextSpanner`, `Tie`, `TieColumn`, `TrillPitchAccidental`, `TrillPitchGroup`, `TrillPitchHead`, `TrillPitchParentheses`, `TrillSpanner`, `TupletBracket`, `TupletNumber` and `VoiceFollower`.

This context sets the following properties:

- Set context property `fontSize` to `-4`.
- Set grob property `beam-thickness` in `Beam` to `0.35`.
- Set grob property `beam-thickness` in `StemTremolo` to `0.35`.
- Set grob property `ignore-ambitus` in `NoteHead` to `#t`.
- Set grob property `length-fraction` in `Beam` to `0.6299605249474366`.
- Set grob property `length-fraction` in `Stem` to `0.6299605249474366`.

This is a ‘Bottom’ context; no contexts will be created implicitly from it.

This context cannot contain other contexts.

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

`Arpeggio_engraver`

  Generate an Arpeggio symbol.

  Music types accepted: `arpeggio-event`

  This engraver creates the following layout object(s): `Arpeggio`.

`Auto_beam_engraver`

  Generate beams based on measure characteristics and observed Stems. Uses `baseMoment`, `beatStructure`, `beamExceptions`, `measureLength`, and `measurePosition` to decide when to start and stop a beam. Overriding beaming is done through `Stem_engraver` properties `stemLeftBeamCount` and `stemRightBeamCount`.

  Music types accepted: `beam-forbid-event`

  Properties (read)

  `autoBeaming` (boolean)

    If set to true then beams are generated automatically.

  `baseMoment` (moment)

    Smallest unit of time that will stand on its own as a subdivided section.

  `beamExceptions` (list)

    An alist of exceptions to autobeam rules that normally end on beats.

  `beamHalfMeasure` (boolean)

    Whether to allow a beam to begin halfway through the measure in triple time, which could look like 6/8.

  `beatStructure` (list)

    List of `baseMoment`s that are combined to make beats.

  `subdivideBeams` (boolean)

    If set, multiple beams will be subdivided at `baseMoment` positions by only drawing one beam over the beat.

  This engraver creates the following layout object(s): `Beam`.

`Beam_engraver`

  Handle `Beam` events by engraving beams. If omitted, then notes are printed with flags instead of beams.

  Music types accepted: `beam-event`

  Properties (read)

  `baseMoment` (moment)

    Smallest unit of time that will stand on its own as a subdivided section.

  `beamMelismaBusy` (boolean)

    Signal if a beam is present.

  `beatStructure` (list)

    List of `baseMoment`s that are combined to make beats.

  `subdivideBeams` (boolean)

    If set, multiple beams will be subdivided at `baseMoment` positions by only drawing one beam over the beat.

  This engraver creates the following layout object(s): `Beam`.

`Bend_engraver`

  Create fall spanners.

  Music types accepted: `bend-after-event`

  Properties (read)

  `currentBarLine` (graphical (layout) object)

    Set to the `BarLine` that `Bar_engraver` has created in the current timestep.

  `currentCommandColumn` (graphical (layout) object)

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

  `currentMusicalColumn` (graphical (layout) object)

    Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

  This engraver creates the following layout object(s): `BendAfter`.

`Breathing_sign_engraver`

  Notate breath marks.

  Music types accepted: `breathing-event`

  Properties (read)

  `breathMarkType` (symbol)

    The type of `BreathingSign` to create at `\breathe`.

  This engraver creates the following layout object(s): `BreathingSign`.

`Chord_tremolo_engraver`

  Generate beams for tremolo repeats.

  Music types accepted: `tremolo-span-event`

  This engraver creates the following layout object(s): `Beam`.

`Cluster_spanner_engraver`

  Engrave a cluster using `Spanner` notation.

  Music types accepted: `cluster-note-event`

  This engraver creates the following layout object(s): `ClusterSpanner` and `ClusterSpannerBeacon`.

`Dots_engraver`

  Create `Dots` objects for `rhythmic-head-interface`s.

  This engraver creates the following layout object(s): `Dots`.

`Double_percent_repeat_engraver`

  Make double measure repeats.

  Music types accepted: `double-percent-event`

  Properties (read)

  `countPercentRepeats` (boolean)

    If set, produce counters for percent repeats.

  `measureLength` (moment)

    Length of one measure in the current time signature.

  `repeatCountVisibility` (procedure)

    A procedure taking as arguments an integer and context, returning whether the corresponding percent repeat number should be printed when `countPercentRepeats` is set.

  Properties (write)

  `forbidBreak` (boolean)

    If set to `#t`, prevent a line break at this point, except if explicitly requested by the user.

  This engraver creates the following layout object(s): `DoublePercentRepeat` and `DoublePercentRepeatCounter`.

`Dynamic_align_engraver`

  Align hairpins and dynamic texts on a horizontal line.

  Properties (read)

  `currentMusicalColumn` (graphical (layout) object)

    Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

  This engraver creates the following layout object(s): `DynamicLineSpanner`.

`Dynamic_engraver`

  Create hairpins, dynamic texts and dynamic text spanners.

  Music types accepted: `absolute-dynamic-event`, `break-dynamic-span-event` and `span-dynamic-event`

  Properties (read)

  `crescendoSpanner` (symbol)

    The type of spanner to be used for crescendi. Available values are ‘`hairpin`’ and ‘`text`’. If unset, a hairpin crescendo is used.

  `crescendoText` (markup)

    The text to print at start of non-hairpin crescendo, i.e., ‘`cresc.`’.

  `currentMusicalColumn` (graphical (layout) object)

    Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

  `decrescendoSpanner` (symbol)

    The type of spanner to be used for decrescendi. Available values are ‘`hairpin`’ and ‘`text`’. If unset, a hairpin decrescendo is used.

  `decrescendoText` (markup)

    The text to print at start of non-hairpin decrescendo, i.e., ‘`dim.`’.

  This engraver creates the following layout object(s): `DynamicText`, `DynamicTextSpanner` and `Hairpin`.

`Finger_glide_engraver`

  Engraver to print a line between two `Fingering` grobs.

  Music types accepted: `note-event`

  This engraver creates the following layout object(s): `FingerGlideSpanner`.

`Fingering_engraver`

  Create fingering scripts.

  Music types accepted: `fingering-event`

  This engraver creates the following layout object(s): `Fingering`.

`Font_size_engraver`

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

  Properties (read)

  `fontSize` (number)

    The relative size of all grobs in a context.

`Forbid_line_break_engraver`

  Forbid line breaks when note heads are still playing at some point.

  Properties (read)

  `busyGrobs` (list)

    A queue of `(end-moment . grob)` cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

  Properties (write)

  `forbidBreak` (boolean)

    If set to `#t`, prevent a line break at this point, except if explicitly requested by the user.

`Glissando_engraver`

  Engrave glissandi.

  Music types accepted: `glissando-event`

  Properties (read)

  `glissandoMap` (list)

    A map in the form of ’((source1 . target1) (source2 . target2) (sourcen . targetn)) showing the glissandi to be drawn for note columns. The value ’() will default to ’((0 . 0) (1 . 1) (n . n)), where n is the minimal number of note-heads in the two note columns between which the glissandi occur.

  This engraver creates the following layout object(s): `Glissando`.

`Grace_auto_beam_engraver`

  Generates one autobeam group across an entire grace phrase. As usual, any manual beaming or `\noBeam` will block autobeaming, just like setting the context property ‘`autoBeaming`’ to `##f`.

  Music types accepted: `beam-forbid-event`

  Properties (read)

  `autoBeaming` (boolean)

    If set to true then beams are generated automatically.

  This engraver creates the following layout object(s): `Beam`.

`Grace_beam_engraver`

  Handle `Beam` events by engraving beams. If omitted, then notes are printed with flags instead of beams. Only engraves beams when we are at grace points in time.

  Music types accepted: `beam-event`

  Properties (read)

  `baseMoment` (moment)

    Smallest unit of time that will stand on its own as a subdivided section.

  `beamMelismaBusy` (boolean)

    Signal if a beam is present.

  `beatStructure` (list)

    List of `baseMoment`s that are combined to make beats.

  `subdivideBeams` (boolean)

    If set, multiple beams will be subdivided at `baseMoment` positions by only drawing one beam over the beat.

  This engraver creates the following layout object(s): `Beam`.

`Grace_engraver`

  Set font size and other properties for grace notes.

  Properties (read)

  `graceSettings` (list)

    Overrides for grace notes. This property should be manipulated through the `add-grace-property` function.

`Grob_pq_engraver`

  Administrate when certain grobs (e.g., note heads) stop playing.

  Properties (read)

  `busyGrobs` (list)

    A queue of `(end-moment . grob)` cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

  Properties (write)

  `busyGrobs` (list)

    A queue of `(end-moment . grob)` cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

`Instrument_switch_engraver`

  Create a cue text for taking instrument.

  This engraver is deprecated.

  Properties (read)

  `instrumentCueName` (markup)

    The name to print if another instrument is to be taken.

    This property is deprecated

  This engraver creates the following layout object(s): `InstrumentSwitch`.

`Laissez_vibrer_engraver`

  Create laissez vibrer items.

  Music types accepted: `laissez-vibrer-event`

  This engraver creates the following layout object(s): `LaissezVibrerTie` and `LaissezVibrerTieColumn`.

`Ligature_bracket_engraver`

  Handle `Ligature_events` by engraving `Ligature` brackets.

  Music types accepted: `ligature-event`

  This engraver creates the following layout object(s): `LigatureBracket`.

`Multi_measure_rest_engraver`

  Engrave multi-measure rests that are produced with ‘`R`’. It reads `measureStartNow` and `internalBarNumber` to determine what number to print over the `MultiMeasureRest`.

  Music types accepted: `multi-measure-articulation-event`, `multi-measure-rest-event` and `multi-measure-text-event`

  Properties (read)

  `currentCommandColumn` (graphical (layout) object)

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

  `internalBarNumber` (integer)

    Contains the current barnumber. This property is used for internal timekeeping, among others by the `Accidental_engraver`.

  `measureStartNow` (boolean)

    True at the beginning of a measure.

  `restNumberThreshold` (number)

    If a multimeasure rest has more measures than this, a number is printed.

  This engraver creates the following layout object(s): `MultiMeasureRest`, `MultiMeasureRestNumber`, `MultiMeasureRestScript` and `MultiMeasureRestText`.

`New_fingering_engraver`

  Create fingering scripts for notes in a new chord. This engraver is ill-named, since it also takes care of articulations and harmonic note heads.

  Properties (read)

  `fingeringOrientations` (list)

    A list of symbols, containing ‘`left`’, ‘`right`’, ‘`up`’ and/or ‘`down`’. This list determines where fingerings are put relative to the chord being fingered.

  `harmonicDots` (boolean)

    If set, harmonic notes in dotted chords get dots.

  `stringNumberOrientations` (list)

    See `fingeringOrientations`.

  `strokeFingerOrientations` (list)

    See `fingeringOrientations`.

  This engraver creates the following layout object(s): `Fingering`, `Script`, `StringNumber` and `StrokeFinger`.

`Note_head_line_engraver`

  Engrave a line between two note heads in a staff switch if `followVoice` is set.

  Properties (read)

  `followVoice` (boolean)

    If set, note heads are tracked across staff switches by a thin line.

  This engraver creates the following layout object(s): `VoiceFollower`.

`Note_heads_engraver`

  Generate note heads.

  Music types accepted: `note-event`

  Properties (read)

  `middleCPosition` (number)

    The place of the middle C, measured in half staff-spaces. Usually determined by looking at `middleCClefPosition` and `middleCOffset`.

  `staffLineLayoutFunction` (procedure)

    Layout of staff lines, `traditional`, or `semitone`.

  This engraver creates the following layout object(s): `NoteHead`.

`Note_spacing_engraver`

  Generate `NoteSpacing`, an object linking horizontal lines for use in spacing.

  This engraver creates the following layout object(s): `NoteSpacing`.

`Output_property_engraver`

  Apply a procedure to any grob acknowledged.

  Music types accepted: `apply-output-event`

`Part_combine_engraver`

  Part combine engraver for orchestral scores: Print markings ‘a2’, ‘Solo’, ‘Solo II’, and ‘unisono’.

  Music types accepted: `note-event` and `part-combine-event`

  Properties (read)

  `aDueText` (markup)

    Text to print at a unisono passage.

  `partCombineTextsOnNote` (boolean)

    Print part-combine texts only on the next note rather than immediately on rests or skips.

  `printPartCombineTexts` (boolean)

    Set ‘Solo’ and ‘A due’ texts in the part combiner?

  `soloIIText` (markup)

    The text for the start of a solo for voice ‘two’ when part-combining.

  `soloText` (markup)

    The text for the start of a solo when part-combining.

  This engraver creates the following layout object(s): `CombineTextScript`.

`Percent_repeat_engraver`

  Make whole measure repeats.

  Music types accepted: `percent-event`

  Properties (read)

  `countPercentRepeats` (boolean)

    If set, produce counters for percent repeats.

  `currentCommandColumn` (graphical (layout) object)

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

  `repeatCountVisibility` (procedure)

    A procedure taking as arguments an integer and context, returning whether the corresponding percent repeat number should be printed when `countPercentRepeats` is set.

  This engraver creates the following layout object(s): `PercentRepeat` and `PercentRepeatCounter`.

`Phrasing_slur_engraver`

  Print phrasing slurs. Similar to `Slur_engraver`.

  Music types accepted: `note-event` and `phrasing-slur-event`

  This engraver creates the following layout object(s): `PhrasingSlur`.

`Pitched_trill_engraver`

  Print the bracketed note head after a note head with trill.

  This engraver creates the following layout object(s): `TrillPitchAccidental`, `TrillPitchGroup`, `TrillPitchHead` and `TrillPitchParentheses`.

`Repeat_tie_engraver`

  Create repeat ties.

  Music types accepted: `repeat-tie-event`

  This engraver creates the following layout object(s): `RepeatTie` and `RepeatTieColumn`.

`Rest_engraver`

  Engrave rests.

  Music types accepted: `rest-event`

  Properties (read)

  `middleCPosition` (number)

    The place of the middle C, measured in half staff-spaces. Usually determined by looking at `middleCClefPosition` and `middleCOffset`.

  This engraver creates the following layout object(s): `Rest`.

`Rhythmic_column_engraver`

  Generate `NoteColumn`, an object that groups stems, note heads, and rests.

  This engraver creates the following layout object(s): `NoteColumn`.

`Script_column_engraver`

  Find potentially colliding scripts and put them into a `ScriptColumn` object; that will fix the collisions.

  This engraver creates the following layout object(s): `ScriptColumn`.

`Script_engraver`

  Handle note scripted articulations.

  Music types accepted: `articulation-event`

  Properties (read)

  `scriptDefinitions` (list)

    The description of scripts. This is used by the `Script_engraver` for typesetting note-superscripts and subscripts. See ‘`scm/script.scm`’ for more information.

  This engraver creates the following layout object(s): `Script`.

`Slash_repeat_engraver`

  Make beat repeats.

  Music types accepted: `repeat-slash-event`

  This engraver creates the following layout object(s): `DoubleRepeatSlash` and `RepeatSlash`.

`Slur_engraver`

  Build slur grobs from slur events.

  Music types accepted: `note-event` and `slur-event`

  Properties (read)

  `doubleSlurs` (boolean)

    If set, two slurs are created for every slurred note, one above and one below the chord.

  `slurMelismaBusy` (boolean)

    Signal if a slur is present.

  This engraver creates the following layout object(s): `Slur`.

`Spanner_break_forbid_engraver`

  Forbid breaks in certain spanners.

`Stem_engraver`

  Create stems, flags and single-stem tremolos. It also works together with the beam engraver for overriding beaming.

  Music types accepted: `tremolo-event` and `tuplet-span-event`

  Properties (read)

  `currentBarLine` (graphical (layout) object)

    Set to the `BarLine` that `Bar_engraver` has created in the current timestep.

  `stemLeftBeamCount` (integer)

    Specify the number of beams to draw on the left side of the next note. Overrides automatic beaming. The value is only used once, and then it is erased.

  `stemRightBeamCount` (integer)

    See `stemLeftBeamCount`.

  This engraver creates the following layout object(s): `Flag`, `Stem`, `StemStub` and `StemTremolo`.

`Text_engraver`

  Create text scripts.

  Music types accepted: `text-script-event`

  This engraver creates the following layout object(s): `TextScript`.

`Text_spanner_engraver`

  Create text spanner from an event.

  Music types accepted: `text-span-event`

  Properties (read)

  `currentMusicalColumn` (graphical (layout) object)

    Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

  This engraver creates the following layout object(s): `TextSpanner`.

`Tie_engraver`

  Generate ties between note heads of equal pitch.

  Music types accepted: `tie-event`

  Properties (read)

  `skipTypesetting` (boolean)

    If true, no typesetting is done, speeding up the interpretation phase. Useful for debugging large scores.

  `tieWaitForNote` (boolean)

    If true, tied notes do not have to follow each other directly. This can be used for writing out arpeggios.

  Properties (write)

  `tieMelismaBusy` (boolean)

    Signal whether a tie is present.

  This engraver creates the following layout object(s): `Tie` and `TieColumn`.

`Trill_spanner_engraver`

  Create trill spanners.

  Music types accepted: `trill-span-event`

  Properties (read)

  `currentCommandColumn` (graphical (layout) object)

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

  `currentMusicalColumn` (graphical (layout) object)

    Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

  This engraver creates the following layout object(s): `TrillSpanner`.

`Tuplet_engraver`

  Catch tuplet events and generate appropriate bracket.

  Music types accepted: `tuplet-span-event`

  Properties (read)

  `tupletFullLength` (boolean)

    If set, the tuplet is printed up to the start of the next note.

  `tupletFullLengthNote` (boolean)

    If set, end at the next note, otherwise end on the matter (time signatures, etc.) before the note.

  This engraver creates the following layout object(s): `TupletBracket` and `TupletNumber`.

#### LilyPond – Internals Reference v2.24.4 (stable-branch).