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 is also known as:
Voice
This context creates the following layout objects:
Arpeggio, Beam, BreathingSign, ClusterSpannerBeacon, ClusterSpanner, CombineTextScript, Dots, DoublePercentRepeat, DynamicLineSpanner, DynamicText, Fingering, Glissando, Hairpin, MultiMeasureRestNumber, MultiMeasureRestText, MultiMeasureRest, NoteColumn, NoteHead, NoteSpacing, PercentRepeat, PhrasingSlur, RepeatSlash, Rest, ScriptColumn, Script, Slur, StemTremolo, Stem, TextScript, TextSpanner, TieColumn, Tie, TupletBracket and VoiceFollower.
This context sets the following properties:
- Set grob-property
edge-text
in TextSpanner to '( . )
- Set grob-property
enclose-bounds
in TextSpanner to 1
- Set grob-property
padding
in TextSpanner to 0.5
- Set grob-property
edge-height
in TextSpanner to '(0 . 0)
- Set grob-property
style
in TextSpanner to 'line
- Set translator property
autobeaming
to #f
- Set grob-property
padding
in Script to 0.5
- Set grob-property
transparent
in LigatureBracket to #t
- Set translator property
localKeySignature
to '()
This context is a `bottom' context; it can not contain other contexts.
This context is built from the following engravers:
Engraver_group_engraver
- A group of engravers taken together
Skip_event_swallow_translator
- Swallow \skip.
Music types accepted:
skip-event
Tuplet_engraver
- Catch Time_scaled_music and generate appropriate bracket
Music types accepted:
time-scaled-music
Properties (read)
tupletSpannerDuration
(moment)-
Normally a tuplet bracket is as wide as the
\times
expression that gave rise to it. By setting this
property, you can make brackets last shorter. Example
@lilypond[verbatim,fragment]
context Voice \times 2/3 {
property Voice.tupletSpannerDuration = #(ly:make-moment 1 4)
c-[8 c c-] c-[ c c-]
}
@end lilypond
.
tupletNumberFormatFunction
(procedure)- Function taking a music as input, producing a string. This function
is called to determine the text to print on a tuplet bracket.
This engraver creates the following layout objects:
TupletBracket.
Tie_engraver
- Generate ties between noteheads of equal pitch.
Music types accepted:
tie-event
Properties (read)
tieMelismaBusy
(boolean)- Signal whether a tie is present.
This engraver creates the following layout objects:
Tie and TieColumn.
Slur_engraver
- Build slurs from Slur_evs
Music types accepted:
slur-event
Properties (read)
slurMelismaBusy
(boolean)- Signal if a slur is present.
This engraver creates the following layout objects:
Slur.
Cluster_spanner_engraver
- Engraves a cluster using Spanner notation
Music types accepted:
cluster-note-event
This engraver creates the following layout objects:
ClusterSpanner and ClusterSpannerBeacon.
Phrasing_slur_engraver
- Print phrasing slurs. Similar to Slur_engraver
Music types accepted:
phrasing-slur-event
This engraver creates the following layout objects:
PhrasingSlur.
Rhythmic_column_engraver
- Generates NoteColumn, an objects that groups stems, noteheads and rests.
This engraver creates the following layout objects:
NoteColumn and NoteSpacing.
Script_column_engraver
-
This engraver creates the following layout objects:
ScriptColumn.
Script_engraver
- Handles note scripted articulations.
Music types accepted:
articulation-event and script-event
Properties (read)
scriptDefinitions
(list)- Description of scripts. This is used by
Script_engraver for typesetting note-super/subscripts. See
scm/script.scm for more information
This engraver creates the following layout objects:
Script.
Fingering_engraver
- Create fingering-scripts
Music types accepted:
fingering-event
This engraver creates the following layout objects:
Fingering.
Dynamic_engraver
- This engraver creates hairpins, dynamic texts, and their vertical
alignments. The symbols are collected onto a DynamicLineSpanner grob
which takes care of vertical positioning.
Music types accepted:
decrescendo-event, crescendo-event and absolute-dynamic-event
This engraver creates the following layout objects:
DynamicLineSpanner, DynamicText, Hairpin and TextSpanner.
Text_engraver
- Create text-scripts
Music types accepted:
text-script-event
This engraver creates the following layout objects:
TextScript.
Part_combine_engraver
- Part combine engraver for orchestral scores: Print markings a2, Solo, Solo II, and unisono
Music types accepted:
part-combine-event
Properties (read)
soloADue
(boolean)- set Solo/A due texts in the part combiner?
This engraver creates the following layout objects:
CombineTextScript.
Melisma_translator
- This translator collects melisma information about ties, beams, and user settings (
melismaBusy
, and signals it to the ddlyrics
code.
Music types accepted:
melisma-span-event and melisma-playing-event
Properties (read)
beamMelismaBusy
(boolean)- Signal if a beam is present.
tieMelismaBusy
(boolean)- Signal whether a tie is present.
slurMelismaBusy
(boolean)- Signal if a slur is present.
melismaBusyProperties
(list)- List of properties (symbols) to
determine whether a melisma is playing. Setting this property will
influence how lyrics are aligned to notes. For example, if set to
#'(melismaBusy beamMelismaBusy)
, only manual melismata and
manual beams are considered. Possible values include
melismaBusy
, slurMelismaBusy
, tieMelismaBusy
, and
beamMelismaBusy
melismaBusy
(boolean)- Signifies
whether a melisma is active. This can be used to signal melismas on
top of those automatically detected.
Slash_repeat_engraver
- Make beat repeats.
Music types accepted:
repeated-music
Properties (read)
measureLength
(moment)- Length of one
measure in the current time signature.
This engraver creates the following layout objects:
RepeatSlash.
Percent_repeat_engraver
- Make whole bar and double bar repeats.
Music types accepted:
repeated-music
Properties (read)
currentCommandColumn
(layout object)- Grob that is X-parent to all
current breakable (clef, key signature, etc.) items.
measureLength
(moment)- Length of one
measure in the current time signature.
This engraver creates the following layout objects:
DoublePercentRepeat and PercentRepeat.
Chord_tremolo_engraver
- Generates beams for tremolo repeats.
Music types accepted:
repeated-music
This engraver creates the following layout objects:
Beam.
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)- List of symbols, containing
left, right, up and/or down. This list
determines where fingerings are put relative to the chord being
fingered.
This engraver creates the following layout objects:
Fingering.
Auto_beam_engraver
- Generate beams based on measure characteristics and observed Stems. Uses beatLength, 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)
subdivideBeams
(boolean)- If set, multiple beams will be subdivided
at beat positions by only drawing one beam over the beat.
beatLength
(moment)- The length of one beat in this time signature.
autoBeamSettings
(list)- Specifies
when automatically generated beams should begin and end.
See Setting automatic beam behavior
for more information.
autoBeaming
(boolean)- If set to true then beams are generated
automatically.
This engraver creates the following layout objects:
Beam.
Grace_beam_engraver
- Handles Beam events by engraving Beams. If omitted, then notes will be printed with flags instead of beams. Only engraves beams when we are at grace points in time.
Music types accepted:
beam-event
Properties (read)
subdivideBeams
(boolean)- If set, multiple beams will be subdivided
at beat positions by only drawing one beam over the beat.
allowBeamBreak
(boolean)- If true allow line breaks for beams over bar lines.
beatLength
(moment)- The length of one beat in this time signature.
beamMelismaBusy
(boolean)- Signal if a beam is present.
This engraver creates the following layout objects:
Beam.
Beam_engraver
- Handles Beam events by engraving Beams. If omitted, then notes will be printed with flags instead of beams.
Music types accepted:
beam-event
Properties (read)
subdivideBeams
(boolean)- If set, multiple beams will be subdivided
at beat positions by only drawing one beam over the beat.
beatLength
(moment)- The length of one beat in this time signature.
beamMelismaBusy
(boolean)- Signal if a beam is present.
This engraver creates the following layout objects:
Beam.
Stem_engraver
- Create stems and single-stem tremolos. It also works together with the beam engraver for overriding beaming.
Music types accepted:
tremolo-event
Properties (read)
stemRightBeamCount
(integer)- See
stemLeftBeamCount
.
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.
tremoloFlags
(integer)- Number of tremolo flags to add if no
number is specified.
This engraver creates the following layout objects:
Stem and StemTremolo.
Rest_engraver
-
Music types accepted:
rest-event
Properties (read)
middleCPosition
(number)- Place of the middle C, measured in half
staffspaces. Usually determined by looking at
clefPosition
and
clefGlyph
.
This engraver creates the following layout objects:
Dots and Rest.
Note_heads_engraver
- Generate noteheads.
Music types accepted:
busy-playing-event and note-event
Properties (read)
middleCPosition
(number)- Place of the middle C, measured in half
staffspaces. Usually determined by looking at
clefPosition
and
clefGlyph
.
This engraver creates the following layout objects:
Dots and NoteHead.
Breathing_sign_engraver
-
Music types accepted:
breathing-event
This engraver creates the following layout objects:
BreathingSign.
Ligature_bracket_engraver
- Handles Ligature_events by engraving Ligature brackets.
Music types accepted:
ligature-event
This engraver creates the following layout objects:
TupletBracket.
Glissando_engraver
- Engrave a glissandi
Music types accepted:
glissando-event
Properties (read)
followVoice
(boolean)- if set, note heads are tracked across staff
switches by a thin line
This engraver creates the following layout objects:
Glissando.
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.
Music types accepted:
glissando-event
Properties (read)
followVoice
(boolean)- if set, note heads are tracked across staff
switches by a thin line
This engraver creates the following layout objects:
Glissando and VoiceFollower.
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)
conses. This is for internal (C++) use only. This property contains
the grobs which are still busy (e.g. note heads, spanners, etc.)
Grob_pq_engraver
- Administrate when certain grobs (eg. note heads) stop playing; this engraver is a sort-of a failure, since it doesn't handle all sorts of borderline cases very well.
Properties (read)
busyGrobs
(list)- a queue of (end-moment . GROB)
conses. 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)
conses. This is for internal (C++) use only. This property contains
the grobs which are still busy (e.g. note heads, spanners, etc.)
Text_spanner_engraver
- Create text spanner from a Music.
Music types accepted:
text-span-event
This engraver creates the following layout objects:
TextSpanner.
Multi_measure_rest_engraver
- Engraves multi-measure rests that are produced with
R
. Reads measurePosition and currentBarNumber to determine what number to print over the MultiMeasureRest. Reads measureLength to determine if it should use a whole rest or a breve rest to represent 1 measure
Music types accepted:
multi-measure-text-event and multi-measure-rest-event
Properties (read)
measureLength
(moment)- Length of one
measure in the current time signature.
measurePosition
(moment)- How much of the current measure
have we had. This can be set manually to create incomplete
measures.
currentCommandColumn
(layout object)- Grob that is X-parent to all
current breakable (clef, key signature, etc.) items.
breakableSeparationItem
(layout object)- The breakable items in this time step,
for this staff.
restNumberThreshold
(number)- If a multimeasure rest takes less
than this number of measures, no number is printed.
currentBarNumber
(integer)- Contains the current barnumber. This property is incremented at
every bar line.
This engraver creates the following layout objects:
MultiMeasureRest, MultiMeasureRestNumber and MultiMeasureRestText.
Arpeggio_engraver
- Generate an Arpeggio from a Arpeggio_req
Music types accepted:
arpeggio-event
This engraver creates the following layout objects:
Arpeggio.
Output_property_engraver
- Interpret Music of Output_property type, and apply a function to any Graphic objects that satisfies the predicate.
Music types accepted:
layout-instruction
Font_size_engraver
- Puts fontSize into font-relative-size grob property.
Properties (read)
fontSize
(number)- The relative size of all grobs in a context.