2.1.13 GregorianTranscriptionVoice

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, Episema, Fingering, Glissando, Hairpin, InstrumentSwitch, LaissezVibrerTie, LaissezVibrerTieColumn, LigatureBracket, MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestText, NoteColumn, NoteHead, NoteSpacing, PercentRepeat, PercentRepeatCounter, PhrasingSlur, RepeatSlash, RepeatTie, RepeatTieColumn, Rest, Script, ScriptColumn, Slur, Stem, StemTremolo, StringNumber, StrokeFinger, TextScript, TextSpanner, Tie, TieColumn, TrillPitchAccidental, TrillPitchGroup, TrillPitchHead, TrillSpanner, TupletBracket, TupletNumber and VoiceFollower.

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

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

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

Beam.

Bend_engraver

Create fall spanners.

Music types accepted:

bend-after-event

This engraver creates the following layout object(s):

BendAfter.

Breathing_sign_engraver

Create a breathing sign.

Music types accepted:

breathing-event

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

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.

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.

Episema_engraver

Create an Editio Vaticana-style episema line.

Music types accepted:

episema-event

This engraver creates the following layout object(s):

Episema.

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.

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

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.

Properties (read)

instrumentCueName (markup)

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

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 measurePosition and internalBarNumber to determine what number to print over the MultiMeasureRest.

Music types accepted:

multi-measure-rest-event and multi-measure-text-event

Properties (read)

currentCommandColumn (graphical (layout) object)

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

internalBarNumber (integer)

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

measurePosition (moment)

How much of the current measure have we had. This can be set manually to create incomplete measures.

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

New_dynamic_engraver

Create hairpins, dynamic texts and dynamic text spanners.

Music types accepted:

absolute-dynamic-event, break-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.

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, for example a glissando. If followVoice is set, staff switches also generate a line.

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

Glissando and 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 (clef, key signature, etc.) items.

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:

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

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:

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 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 bar-line-interface.

This engraver creates the following layout object(s):

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

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 spanner from an event.

Music types accepted:

trill-span-event

Properties (read)

currentCommandColumn (graphical (layout) object)

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

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.

Tweak_engraver

Read the tweaks property from the originating event, and set properties.


Internals Reference