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:

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

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


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

Music types accepted:


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



Generate note heads.

Music types accepted:


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



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.


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

This engraver creates the following layout object(s):



Build slur grobs from slur events.

Music types accepted:


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



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.


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


Generate ties between note heads of equal pitch.

Music types accepted:


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.17.97 (development-branch).