### 2.1.20 NullVoice

Non-printing context, typically used for aligning lyrics in polyphonic situations, or with `\partcombine`.

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

Staff and Voice.

This context creates the following layout object(s):

Beam, NoteColumn, NoteHead, Slur, Stem, StemTremolo, Tie and TieColumn.

This context sets the following properties:

- Set grob-property `direction` in Stem to `1`.
- Set grob-property `ignore-collision` in NoteColumn to `#t`.
- Set grob-property `length` in Stem to `0`.
- Set grob-property `positions` in Beam to `'(1 . 1)`.
- Set grob-property `stencil` in Accidental to `#f`.
- Set grob-property `stencil` in Beam to `#f`.
- Set grob-property `stencil` in Dots to `#f`.
- Set grob-property `stencil` in Flag to `#f`.
- Set grob-property `stencil` in Rest to `#f`.
- Set grob-property `stencil` in Slur to `#f`.
- Set grob-property `stencil` in Stem to `#f`.
- Set grob-property `stencil` in Tie to `#f`.
- Set grob-property `transparent` in NoteHead to `#t`.
- Set grob-property `transparent` in TabNoteHead to `#t`.
- Set grob-property `X-offset` in NoteHead to `0`.
- Set translator property `squashedPosition` to `0`.

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

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

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

>   Properties (write)

>   > `forbidBreak` (boolean)

>   >   If set to `#t`, prevent a line break at this point.

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

>   Beam.

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

> `Pitch_squash_engraver`

>   Set the vertical position of note heads to `squashedPosition`, if that property is set. This can be used to make a single-line staff demonstrating the rhythm of a melody.

>   Properties (read)

>   > `squashedPosition` (integer)

>   >   Vertical position of squashing for Pitch_squash_engraver.

> `Rhythmic_column_engraver`

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

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

>   NoteColumn.

> `Slur_engraver`

>   Build slur grobs from slur events.

>   Music types accepted:

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

> `Stem_engraver`

>   Create stems 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)

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

>   > `tremoloFlags` (integer)

>   >   The number of tremolo flags to add if no number is specified.

>   > `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 ‘`scm/bar-line.scm`’.

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

>   Stem and StemTremolo.

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

#### Internals Reference v2.18.2 (稳定分支).