| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Identical to StaffGroup except that the
contained staves are not connected vertically.
This context creates the following layout object(s):
InstrumentName, SystemStartBar, SystemStartBrace, SystemStartBracket, SystemStartSquare and VerticalAlignment.
This context sets the following properties:
instrumentName to
'().
localAlterations to
'().
shortInstrumentName to
'().
shortVocalName to
'().
systemStartDelimiter to
'SystemStartBracket.
topLevelAlignment to
#f.
vocalName to
'().
This is not a ‘Bottom’ context; search for such a one will commence after creating an implicit context of type Staff.
Context ChoirStaff can contain ChoirStaff, ChordNames, DrumStaff, Dynamics, FiguredBass, GrandStaff, Lyrics, OneStaff, PianoStaff, RhythmicStaff, Staff and StaffGroup.
This context is built from the following engraver(s):
Instrument_name_engraverCreate a system start text for instrument or vocal names.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
instrumentName(markup)The name to print left of a staff. The
instrumentNameproperty labels the staff in the first system, and theshortInstrumentNameproperty labels following lines.shortInstrumentName(markup)See
instrumentName.shortVocalName(markup)Name of a vocal line, short version.
vocalName(markup)Name of a vocal line.
This engraver creates the following layout object(s):
System_start_delimiter_engraverCreate a system start delimiter (i.e., a
SystemStartBar,SystemStartBrace,SystemStartBracketorSystemStartSquarespanner).Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
systemStartDelimiter(symbol)Which grob to make for the start of the system/staff? Set to
SystemStartBrace,SystemStartBracketorSystemStartBar.systemStartDelimiterHierarchy(pair)A nested list, indicating the nesting of a start delimiters.
This engraver creates the following layout object(s):
SystemStartBar, SystemStartBrace, SystemStartBracket and SystemStartSquare.
Vertical_align_engraverCatch groups (staves, lyrics lines, etc.) and stack them vertically.
Properties (read)
alignAboveContext(string)Where to insert newly created context in vertical alignment.
alignBelowContext(string)Where to insert newly created context in vertical alignment.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Typesets chord names.
This context also accepts commands for the following context(s):
Staff.
This context creates the following layout object(s):
ChordName, StaffSpacing and VerticalAxisGroup.
This context sets the following properties:
font-size in ParenthesesItem to
1.5.
nonstaff-nonstaff-spacing.padding in VerticalAxisGroup to
0.5.
nonstaff-relatedstaff-spacing.padding in VerticalAxisGroup to
0.5.
remove-empty in VerticalAxisGroup to
#t.
remove-first in VerticalAxisGroup to
#t.
staff-affinity in VerticalAxisGroup to
-1.
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):
Axis_group_engraverGroup all objects created in this context in a
VerticalAxisGroupspanner.Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
keepAliveInterfaces(list)A list of symbols, signifying grob interfaces that are worth keeping a staff with
remove-emptyset around for.Properties (write)
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
Chord_name_engraverCatch note and rest events and generate the appropriate chordname.
Music types accepted:
note-event and rest-event
Properties (read)
chordChanges(boolean)Only show changes in chords scheme?
chordNameExceptions(list)An alist of chord exceptions. Contains
(chord . markup)entries.chordNameExceptions(list)An alist of chord exceptions. Contains
(chord . markup)entries.chordNameFunction(procedure)The function that converts lists of pitches to chord names.
chordNoteNamer(procedure)A function that converts from a pitch object to a text markup. Used for single pitches.
chordRootNamer(procedure)A function that converts from a pitch object to a text markup. Used for chords.
lastChord(markup)Last chord, used for detecting chord changes.
majorSevenSymbol(markup)How should the major 7th be formatted in a chord name?
noChordSymbol(markup)Markup to be displayed for rests in a ChordNames context.
Properties (write)
lastChord(markup)Last chord, used for detecting chord changes.
This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Separating_line_group_engraverGenerate objects for computing spacing parameters.
Properties (read)
createSpacing(boolean)Create
StaffSpacingobjects? Should be set for staves.Properties (write)
hasStaffSpacing(boolean)True if the current
CommandColumncontains items that will affect spacing.This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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, 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, TrillSpanner, TupletBracket, TupletNumber and VoiceFollower.
This context sets the following properties:
beam-thickness in Beam to
0.35.
beam-thickness in StemTremolo to
0.35.
ignore-ambitus in NoteHead to
#t.
length-fraction in Beam to
0.629960524947437.
length-fraction in Stem to
0.629960524947437.
fontSize to
-4.
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_engraverGenerate an Arpeggio symbol.
Music types accepted:
This engraver creates the following layout object(s):
Auto_beam_engraverGenerate beams based on measure characteristics and observed Stems. Uses
baseMoment,beatStructure,beamExceptions,measureLength, andmeasurePositionto decide when to start and stop a beam. Overriding beaming is done through Stem_engraver propertiesstemLeftBeamCountandstemRightBeamCount.Music types accepted:
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
baseMomentpositions by only drawing one beam over the beat.This engraver creates the following layout object(s):
Beam.
Beam_engraverHandle
Beamevents 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
baseMomentpositions 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_engraverCreate fall spanners.
Music types accepted:
This engraver creates the following layout object(s):
Breathing_sign_engraverCreate a breathing sign.
Music types accepted:
This engraver creates the following layout object(s):
Chord_tremolo_engraverGenerate beams for tremolo repeats.
Music types accepted:
This engraver creates the following layout object(s):
Beam.
Cluster_spanner_engraverEngrave a cluster using
Spannernotation.Music types accepted:
This engraver creates the following layout object(s):
Dots_engraverCreate Dots objects for rhythmic-head-interfaces.
This engraver creates the following layout object(s):
Dots.
Double_percent_repeat_engraverMake double measure repeats.
Music types accepted:
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
countPercentRepeatsis set.Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Dynamic_align_engraverAlign 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):
Dynamic_engraverCreate 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):
Fingering_engraverCreate fingering scripts.
Music types accepted:
This engraver creates the following layout object(s):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Forbid_line_break_engraverForbid 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_engraverEngrave glissandi.
Music types accepted:
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):
Grace_auto_beam_engraverGenerates one autobeam group across an entire grace phrase. As usual, any manual beaming or
\noBeamwill block autobeaming, just like setting the context property ‘autoBeaming’ to##f.Music types accepted:
Properties (read)
autoBeaming(boolean)If set to true then beams are generated automatically.
This engraver creates the following layout object(s):
Beam.
Grace_beam_engraverHandle
Beamevents 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:
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
baseMomentpositions by only drawing one beam over the beat.This engraver creates the following layout object(s):
Beam.
Grace_engraverSet 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-propertyfunction.Grob_pq_engraverAdministrate 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_engraverCreate 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):
Laissez_vibrer_engraverCreate laissez vibrer items.
Music types accepted:
This engraver creates the following layout object(s):
Ligature_bracket_engraverHandle
Ligature_eventsby engravingLigaturebrackets.Music types accepted:
This engraver creates the following layout object(s):
Multi_measure_rest_engraverEngrave multi-measure rests that are produced with ‘R’. It reads
measurePositionandinternalBarNumberto 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 (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.
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):
MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript and MultiMeasureRestText.
New_fingering_engraverCreate 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_engraverEngrave a line between two note heads in a staff switch if
followVoiceis 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):
Note_heads_engraverGenerate 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
middleCClefPositionandmiddleCOffset.staffLineLayoutFunction(procedure)Layout of staff lines,
traditional, orsemitone.This engraver creates the following layout object(s):
Note_spacing_engraverGenerate
NoteSpacing, an object linking horizontal lines for use in spacing.This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Part_combine_engraverPart 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):
Percent_repeat_engraverMake whole measure repeats.
Music types accepted:
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
countPercentRepeatsis set.This engraver creates the following layout object(s):
Phrasing_slur_engraverPrint phrasing slurs. Similar to Slur_engraver.
Music types accepted:
note-event and phrasing-slur-event
This engraver creates the following layout object(s):
Pitched_trill_engraverPrint the bracketed note head after a note head with trill.
This engraver creates the following layout object(s):
Repeat_tie_engraverCreate repeat ties.
Music types accepted:
This engraver creates the following layout object(s):
RepeatTie and RepeatTieColumn.
Rest_engraverEngrave rests.
Music types accepted:
Properties (read)
middleCPosition(number)The place of the middle C, measured in half staff-spaces. Usually determined by looking at
middleCClefPositionandmiddleCOffset.This engraver creates the following layout object(s):
Rest.
Rhythmic_column_engraverGenerate
NoteColumn, an object that groups stems, note heads, and rests.This engraver creates the following layout object(s):
Script_column_engraverFind potentially colliding scripts and put them into a
ScriptColumnobject; that will fix the collisions.This engraver creates the following layout object(s):
Script_engraverHandle note scripted articulations.
Music types accepted:
Properties (read)
scriptDefinitions(list)The description of scripts. This is used by the
Script_engraverfor typesetting note-superscripts and subscripts. See ‘scm/script.scm’ for more information.This engraver creates the following layout object(s):
Slash_repeat_engraverMake beat repeats.
Music types accepted:
This engraver creates the following layout object(s):
Slur_engraverBuild 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_engraverForbid breaks in certain spanners.
Stem_engraverCreate 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)
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.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):
Flag, Stem, StemStub and StemTremolo.
Text_engraverCreate text scripts.
Music types accepted:
This engraver creates the following layout object(s):
Text_spanner_engraverCreate text spanner from an event.
Music types accepted:
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):
Tie_engraverGenerate 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):
Trill_spanner_engraverCreate trill spanner from an event.
Music types accepted:
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):
Tuplet_engraverCatch tuplet events and generate appropriate bracket.
Music types accepted:
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):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Silently discards all musical information given to this context.
This context also accepts commands for the following context(s):
Staff and Voice.
This context creates the following layout object(s):
none.
This is a ‘Bottom’ context; no contexts will be created implicitly from it.
This context cannot contain other contexts.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Handles typesetting for percussion.
This context also accepts commands for the following context(s):
Staff.
This context creates the following layout object(s):
BarLine, BassFigure, BassFigureAlignment, BassFigureAlignmentPositioning, BassFigureBracket, BassFigureContinuation, BassFigureLine, Clef, ClefModifier, CueClef, CueEndClef, DotColumn, FingeringColumn, InstrumentName, LedgerLineSpanner, NoteCollision, RestCollision, ScriptRow, SostenutoPedalLineSpanner, StaffSpacing, StaffSymbol, SustainPedalLineSpanner, TimeSignature, UnaCordaPedalLineSpanner and VerticalAxisGroup.
This context sets the following properties:
staff-padding in Script to
0.75.
clefGlyph to
"clefs.percussion".
clefPosition to
0.
createSpacing to
#t.
ignoreFiguredBassRest to
#f.
instrumentName to
'().
localAlterations to
'().
ottavationMarkups to:
'((4 . "29") (3 . "22") (2 . "15") (1 . "8") (-1 . "8") (-2 . "15") (-3 . "22") (-4 . "29"))
shortInstrumentName to
'().
This is not a ‘Bottom’ context; search for such a one will commence after creating an implicit context of type DrumVoice.
Context DrumStaff can contain CueVoice, DrumVoice and NullVoice.
This context is built from the following engraver(s):
Axis_group_engraverGroup all objects created in this context in a
VerticalAxisGroupspanner.Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
keepAliveInterfaces(list)A list of symbols, signifying grob interfaces that are worth keeping a staff with
remove-emptyset around for.Properties (write)
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
Bar_engraverCreate barlines. This engraver is controlled through the
whichBarproperty. If it has no bar line to create, it will forbid a linebreak at this point. This engraver is required to trigger the creation of clefs at the start of systems.Properties (read)
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’.
Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Clef_engraverDetermine and set reference point for pitches.
Properties (read)
clefGlyph(string)Name of the symbol within the music font.
clefPosition(number)Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
clefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
clefTranspositionStyle(symbol)Determines the way the ClefModifier grob is displayed. Possible values are ‘default’, ‘parenthesized’ and ‘bracketed’.
explicitClefVisibility(vector)‘break-visibility’ function for clef changes.
forceClef(boolean)Show clef symbol, even if it has not changed. Only active for the first clef after the property is set, not for the full staff.
This engraver creates the following layout object(s):
Clef and ClefModifier.
Collision_engraverCollect
NoteColumns, and as soon as there are two or more, put them in aNoteCollisionobject.This engraver creates the following layout object(s):
Cue_clef_engraverDetermine and set reference point for pitches in cued voices.
Properties (read)
clefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
cueClefGlyph(string)Name of the symbol within the music font.
cueClefPosition(number)Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
cueClefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
cueClefTranspositionStyle(symbol)Determines the way the ClefModifier grob is displayed. Possible values are ‘default’, ‘parenthesized’ and ‘bracketed’.
explicitCueClefVisibility(vector)‘break-visibility’ function for cue clef changes.
middleCCuePosition(number)The position of the middle C, as determined only by the clef of the cue notes. This can be calculated by looking at
cueClefPositionandcueClefGlyph.This engraver creates the following layout object(s):
ClefModifier, CueClef and CueEndClef.
Dot_column_engraverEngrave dots on dotted notes shifted to the right of the note. If omitted, then dots appear on top of the notes.
This engraver creates the following layout object(s):
Figured_bass_engraverMake figured bass numbers.
Music types accepted:
bass-figure-event and rest-event
Properties (read)
figuredBassAlterationDirection(direction)Where to put alterations relative to the main figure.
figuredBassCenterContinuations(boolean)Whether to vertically center pairs of extender lines. This does not work with three or more lines.
figuredBassFormatter(procedure)A routine generating a markup for a bass figure.
ignoreFiguredBassRest(boolean)Don’t swallow rest events.
implicitBassFigures(list)A list of bass figures that are not printed as numbers, but only as extender lines.
useBassFigureExtenders(boolean)Whether to use extender lines for repeated bass figures.
This engraver creates the following layout object(s):
BassFigure, BassFigureAlignment, BassFigureBracket, BassFigureContinuation and BassFigureLine.
Figured_bass_position_engraverPosition figured bass alignments over notes.
This engraver creates the following layout object(s):
Fingering_column_engraverFind potentially colliding scripts and put them into a
FingeringColumnobject; that will fix the collisions.This engraver creates the following layout object(s):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Grob_pq_engraverAdministrate 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_name_engraverCreate a system start text for instrument or vocal names.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
instrumentName(markup)The name to print left of a staff. The
instrumentNameproperty labels the staff in the first system, and theshortInstrumentNameproperty labels following lines.shortInstrumentName(markup)See
instrumentName.shortVocalName(markup)Name of a vocal line, short version.
vocalName(markup)Name of a vocal line.
This engraver creates the following layout object(s):
Ledger_line_engraverCreate the spanner to draw ledger lines, and notices objects that need ledger lines.
This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Piano_pedal_align_engraverAlign piano pedal symbols and brackets.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
This engraver creates the following layout object(s):
SostenutoPedalLineSpanner, SustainPedalLineSpanner and UnaCordaPedalLineSpanner.
Pure_from_neighbor_engraverCoordinates items that get their pure heights from their neighbors.
Rest_collision_engraverHandle collisions of rests.
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.).This engraver creates the following layout object(s):
Script_row_engraverDetermine order in horizontal side position elements.
This engraver creates the following layout object(s):
Separating_line_group_engraverGenerate objects for computing spacing parameters.
Properties (read)
createSpacing(boolean)Create
StaffSpacingobjects? Should be set for staves.Properties (write)
hasStaffSpacing(boolean)True if the current
CommandColumncontains items that will affect spacing.This engraver creates the following layout object(s):
Staff_collecting_engraverMaintain the
stavesFoundvariable.Properties (read)
stavesFound(list of grobs)A list of all staff-symbols found.
Properties (write)
stavesFound(list of grobs)A list of all staff-symbols found.
Staff_symbol_engraverCreate the constellation of five (default) staff lines.
Music types accepted:
This engraver creates the following layout object(s):
Time_signature_engraverCreate a TimeSignature whenever
timeSignatureFractionchanges.Music types accepted:
Properties (read)
initialTimeSignatureVisibility(vector)break visibility for the initial time signature.
partialBusy(boolean)Signal that \partial acts at the current timestep.
timeSignatureFraction(fraction, as pair)A pair of numbers, signifying the time signature. For example,
'(4 . 4)is a 4/4 time signature.This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
A voice on a percussion staff.
This context also accepts commands for the following context(s):
Voice.
This context creates the following layout object(s):
Beam, BendAfter, BreathingSign, CombineTextScript, Dots, DoublePercentRepeat, DoublePercentRepeatCounter, DoubleRepeatSlash, DynamicLineSpanner, DynamicText, DynamicTextSpanner, Flag, Hairpin, InstrumentSwitch, LaissezVibrerTie, LaissezVibrerTieColumn, MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript, MultiMeasureRestText, NoteColumn, NoteHead, NoteSpacing, PercentRepeat, PercentRepeatCounter, PhrasingSlur, RepeatSlash, RepeatTie, RepeatTieColumn, Rest, Script, ScriptColumn, Slur, Stem, StemStub, StemTremolo, TextScript, TextSpanner, Tie, TieColumn, TrillPitchAccidental, TrillPitchGroup, TrillPitchHead, TrillSpanner, TupletBracket and TupletNumber.
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):
Auto_beam_engraverGenerate beams based on measure characteristics and observed Stems. Uses
baseMoment,beatStructure,beamExceptions,measureLength, andmeasurePositionto decide when to start and stop a beam. Overriding beaming is done through Stem_engraver propertiesstemLeftBeamCountandstemRightBeamCount.Music types accepted:
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
baseMomentpositions by only drawing one beam over the beat.This engraver creates the following layout object(s):
Beam.
Beam_engraverHandle
Beamevents 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
baseMomentpositions 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_engraverCreate fall spanners.
Music types accepted:
This engraver creates the following layout object(s):
Breathing_sign_engraverCreate a breathing sign.
Music types accepted:
This engraver creates the following layout object(s):
Chord_tremolo_engraverGenerate beams for tremolo repeats.
Music types accepted:
This engraver creates the following layout object(s):
Beam.
Dots_engraverCreate Dots objects for rhythmic-head-interfaces.
This engraver creates the following layout object(s):
Dots.
Double_percent_repeat_engraverMake double measure repeats.
Music types accepted:
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
countPercentRepeatsis set.Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Drum_notes_engraverGenerate drum note heads.
Music types accepted:
Properties (read)
drumStyleTable(hash table)A hash table which maps drums to layout settings. Predefined values: ‘drums-style’, ‘agostini-drums-style’, ‘timbales-style’, ‘congas-style’, ‘bongos-style’, and ‘percussion-style’.
The layout style is a hash table, containing the drum-pitches (e.g., the symbol ‘hihat’) as keys, and a list
(notehead-style script vertical-position)as values.This engraver creates the following layout object(s):
Dynamic_align_engraverAlign 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):
Dynamic_engraverCreate 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):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Forbid_line_break_engraverForbid 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.Grace_auto_beam_engraverGenerates one autobeam group across an entire grace phrase. As usual, any manual beaming or
\noBeamwill block autobeaming, just like setting the context property ‘autoBeaming’ to##f.Music types accepted:
Properties (read)
autoBeaming(boolean)If set to true then beams are generated automatically.
This engraver creates the following layout object(s):
Beam.
Grace_beam_engraverHandle
Beamevents 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:
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
baseMomentpositions by only drawing one beam over the beat.This engraver creates the following layout object(s):
Beam.
Grace_engraverSet 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-propertyfunction.Grob_pq_engraverAdministrate 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.).Grob_pq_engraverAdministrate 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_engraverCreate 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):
Laissez_vibrer_engraverCreate laissez vibrer items.
Music types accepted:
This engraver creates the following layout object(s):
Multi_measure_rest_engraverEngrave multi-measure rests that are produced with ‘R’. It reads
measurePositionandinternalBarNumberto 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 (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.
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):
MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript and MultiMeasureRestText.
Note_spacing_engraverGenerate
NoteSpacing, an object linking horizontal lines for use in spacing.This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Part_combine_engraverPart 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):
Percent_repeat_engraverMake whole measure repeats.
Music types accepted:
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
countPercentRepeatsis set.This engraver creates the following layout object(s):
Phrasing_slur_engraverPrint phrasing slurs. Similar to Slur_engraver.
Music types accepted:
note-event and phrasing-slur-event
This engraver creates the following layout object(s):
Pitched_trill_engraverPrint the bracketed note head after a note head with trill.
This engraver creates the following layout object(s):
Repeat_tie_engraverCreate repeat ties.
Music types accepted:
This engraver creates the following layout object(s):
RepeatTie and RepeatTieColumn.
Rest_engraverEngrave rests.
Music types accepted:
Properties (read)
middleCPosition(number)The place of the middle C, measured in half staff-spaces. Usually determined by looking at
middleCClefPositionandmiddleCOffset.This engraver creates the following layout object(s):
Rest.
Rhythmic_column_engraverGenerate
NoteColumn, an object that groups stems, note heads, and rests.This engraver creates the following layout object(s):
Script_column_engraverFind potentially colliding scripts and put them into a
ScriptColumnobject; that will fix the collisions.This engraver creates the following layout object(s):
Script_engraverHandle note scripted articulations.
Music types accepted:
Properties (read)
scriptDefinitions(list)The description of scripts. This is used by the
Script_engraverfor typesetting note-superscripts and subscripts. See ‘scm/script.scm’ for more information.This engraver creates the following layout object(s):
Slash_repeat_engraverMake beat repeats.
Music types accepted:
This engraver creates the following layout object(s):
Slur_engraverBuild 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_engraverForbid breaks in certain spanners.
Stem_engraverCreate 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)
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.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):
Flag, Stem, StemStub and StemTremolo.
Text_engraverCreate text scripts.
Music types accepted:
This engraver creates the following layout object(s):
Text_spanner_engraverCreate text spanner from an event.
Music types accepted:
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):
Tie_engraverGenerate 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):
Trill_spanner_engraverCreate trill spanner from an event.
Music types accepted:
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):
Tuplet_engraverCatch tuplet events and generate appropriate bracket.
Music types accepted:
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):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Holds a single line of dynamics, which will be centered between the staves surrounding this context.
This context also accepts commands for the following context(s):
Voice.
This context creates the following layout object(s):
BarLine, DynamicLineSpanner, DynamicText, DynamicTextSpanner, Hairpin, PianoPedalBracket, Script, SostenutoPedal, SustainPedal, TextScript, TextSpanner, UnaCordaPedal and VerticalAxisGroup.
This context sets the following properties:
font-shape in TextScript to
'italic.
nonstaff-relatedstaff-spacing in VerticalAxisGroup to:
'((basic-distance . 5) (padding . 0.5))
outside-staff-priority in DynamicLineSpanner to
#f.
outside-staff-priority in DynamicText to
#f.
outside-staff-priority in Hairpin to
#f.
staff-affinity in VerticalAxisGroup to
0.
Y-offset in DynamicLineSpanner to
0.
pedalSustainStrings to:
'("Ped." "*Ped." "*")
pedalUnaCordaStrings to:
'("una corda" "" "tre corde")
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):
Axis_group_engraverGroup all objects created in this context in a
VerticalAxisGroupspanner.Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
keepAliveInterfaces(list)A list of symbols, signifying grob interfaces that are worth keeping a staff with
remove-emptyset around for.Properties (write)
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
Bar_engraverCreate barlines. This engraver is controlled through the
whichBarproperty. If it has no bar line to create, it will forbid a linebreak at this point. This engraver is required to trigger the creation of clefs at the start of systems.Properties (read)
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’.
Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Dynamic_align_engraverAlign 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):
Dynamic_engraverCreate 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):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Piano_pedal_engraverEngrave piano pedal symbols and brackets.
Music types accepted:
sostenuto-event, sustain-event and una-corda-event
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
pedalSostenutoStrings(list)See
pedalSustainStrings.pedalSostenutoStyle(symbol)See
pedalSustainStyle.pedalSustainStrings(list)A list of strings to print for sustain-pedal. Format is
(up updown down), where each of the three is the string to print when this is done with the pedal.pedalSustainStyle(symbol)A symbol that indicates how to print sustain pedals:
text,bracketormixed(both).pedalUnaCordaStrings(list)See
pedalSustainStrings.pedalUnaCordaStyle(symbol)See
pedalSustainStyle.This engraver creates the following layout object(s):
PianoPedalBracket, SostenutoPedal, SustainPedal and UnaCordaPedal.
Script_engraverHandle note scripted articulations.
Music types accepted:
Properties (read)
scriptDefinitions(list)The description of scripts. This is used by the
Script_engraverfor typesetting note-superscripts and subscripts. See ‘scm/script.scm’ for more information.This engraver creates the following layout object(s):
Text_engraverCreate text scripts.
Music types accepted:
This engraver creates the following layout object(s):
Text_spanner_engraverCreate text spanner from an event.
Music types accepted:
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):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
A context for printing a figured bass line.
This context creates the following layout object(s):
BassFigure, BassFigureAlignment, BassFigureBracket, BassFigureContinuation, BassFigureLine, StaffSpacing and VerticalAxisGroup.
This context sets the following properties:
nonstaff-nonstaff-spacing.padding in VerticalAxisGroup to
0.5.
nonstaff-relatedstaff-spacing.padding in VerticalAxisGroup to
0.5.
remove-empty in VerticalAxisGroup to
#t.
remove-first in VerticalAxisGroup to
#t.
staff-affinity in VerticalAxisGroup to
1.
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):
Axis_group_engraverGroup all objects created in this context in a
VerticalAxisGroupspanner.Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
keepAliveInterfaces(list)A list of symbols, signifying grob interfaces that are worth keeping a staff with
remove-emptyset around for.Properties (write)
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
Figured_bass_engraverMake figured bass numbers.
Music types accepted:
bass-figure-event and rest-event
Properties (read)
figuredBassAlterationDirection(direction)Where to put alterations relative to the main figure.
figuredBassCenterContinuations(boolean)Whether to vertically center pairs of extender lines. This does not work with three or more lines.
figuredBassFormatter(procedure)A routine generating a markup for a bass figure.
ignoreFiguredBassRest(boolean)Don’t swallow rest events.
implicitBassFigures(list)A list of bass figures that are not printed as numbers, but only as extender lines.
useBassFigureExtenders(boolean)Whether to use extender lines for repeated bass figures.
This engraver creates the following layout object(s):
BassFigure, BassFigureAlignment, BassFigureBracket, BassFigureContinuation and BassFigureLine.
Separating_line_group_engraverGenerate objects for computing spacing parameters.
Properties (read)
createSpacing(boolean)Create
StaffSpacingobjects? Should be set for staves.Properties (write)
hasStaffSpacing(boolean)True if the current
CommandColumncontains items that will affect spacing.This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
A context for displaying fret diagrams.
This context also accepts commands for the following context(s):
Staff.
This context creates the following layout object(s):
FretBoard, InstrumentName, StaffSpacing and VerticalAxisGroup.
This context sets the following properties:
handleNegativeFrets to
'recalculate.
instrumentName to
'().
predefinedDiagramTable to
#<hash-table 0/113>.
restrainOpenStrings to
#f.
shortInstrumentName to
'().
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):
Axis_group_engraverGroup all objects created in this context in a
VerticalAxisGroupspanner.Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
keepAliveInterfaces(list)A list of symbols, signifying grob interfaces that are worth keeping a staff with
remove-emptyset around for.Properties (write)
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Fretboard_engraverGenerate fret diagram from one or more events of type
NoteEvent.Music types accepted:
fingering-event, note-event and string-number-event
Properties (read)
chordChanges(boolean)Only show changes in chords scheme?
defaultStrings(list)A list of strings to use in calculating frets for tablatures and fretboards if no strings are provided in the notes for the current moment.
highStringOne(boolean)Whether the first string is the string with highest pitch on the instrument. This used by the automatic string selector for tablature notation.
maximumFretStretch(number)Don’t allocate frets further than this from specified frets.
minimumFret(number)The tablature auto string-selecting mechanism selects the highest string with a fret at least
minimumFret.noteToFretFunction(procedure)Convert list of notes and list of defined strings to full list of strings and fret numbers. Parameters: The context, a list of note events, a list of tabstring events, and the fretboard grob if a fretboard is desired.
predefinedDiagramTable(hash table)The hash table of predefined fret diagrams to use in FretBoards.
stringTunings(list)The tablature strings tuning. It is a list of the pitches of each string (starting with the lowest numbered one).
tablatureFormat(procedure)A function formatting a tablature note head. Called with three arguments: context, string number and, fret number. It returns the text as a markup.
This engraver creates the following layout object(s):
Instrument_name_engraverCreate a system start text for instrument or vocal names.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
instrumentName(markup)The name to print left of a staff. The
instrumentNameproperty labels the staff in the first system, and theshortInstrumentNameproperty labels following lines.shortInstrumentName(markup)See
instrumentName.shortVocalName(markup)Name of a vocal line, short version.
vocalName(markup)Name of a vocal line.
This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Separating_line_group_engraverGenerate objects for computing spacing parameters.
Properties (read)
createSpacing(boolean)Create
StaffSpacingobjects? Should be set for staves.Properties (write)
hasStaffSpacing(boolean)True if the current
CommandColumncontains items that will affect spacing.This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Hard coded entry point for LilyPond. Cannot be tuned.
This context creates the following layout object(s):
none.
This is not a ‘Bottom’ context; search for such a one will commence after creating an implicit context of type Score.
Context Global can contain Score.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
A group of staves, with a brace on the left side, grouping the staves together. The bar lines of the contained staves are connected vertically.
This context creates the following layout object(s):
Arpeggio, InstrumentName, SpanBar, SpanBarStub, SystemStartBar, SystemStartBrace, SystemStartBracket, SystemStartSquare and VerticalAlignment.
This context sets the following properties:
extra-spacing-width in DynamicText to
#f.
instrumentName to
'().
localAlterations to
'().
shortInstrumentName to
'().
systemStartDelimiter to
'SystemStartBrace.
topLevelAlignment to
#f.
This is not a ‘Bottom’ context; search for such a one will commence after creating an implicit context of type Staff.
Context GrandStaff can contain ChordNames, DrumStaff, Dynamics, FiguredBass, Lyrics, RhythmicStaff, Staff and TabStaff.
This context is built from the following engraver(s):
Instrument_name_engraverCreate a system start text for instrument or vocal names.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
instrumentName(markup)The name to print left of a staff. The
instrumentNameproperty labels the staff in the first system, and theshortInstrumentNameproperty labels following lines.shortInstrumentName(markup)See
instrumentName.shortVocalName(markup)Name of a vocal line, short version.
vocalName(markup)Name of a vocal line.
This engraver creates the following layout object(s):
Span_arpeggio_engraverMake arpeggios that span multiple staves.
Properties (read)
connectArpeggios(boolean)If set, connect arpeggios across piano staff.
This engraver creates the following layout object(s):
Span_bar_engraverMake cross-staff bar lines: It catches all normal bar lines and draws a single span bar across them.
This engraver creates the following layout object(s):
Span_bar_stub_engraverMake stubs for span bars in all contexts that the span bars cross.
This engraver creates the following layout object(s):
System_start_delimiter_engraverCreate a system start delimiter (i.e., a
SystemStartBar,SystemStartBrace,SystemStartBracketorSystemStartSquarespanner).Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
systemStartDelimiter(symbol)Which grob to make for the start of the system/staff? Set to
SystemStartBrace,SystemStartBracketorSystemStartBar.systemStartDelimiterHierarchy(pair)A nested list, indicating the nesting of a start delimiters.
This engraver creates the following layout object(s):
SystemStartBar, SystemStartBrace, SystemStartBracket and SystemStartSquare.
Vertical_align_engraverCatch groups (staves, lyrics lines, etc.) and stack them vertically.
Properties (read)
alignAboveContext(string)Where to insert newly created context in vertical alignment.
alignBelowContext(string)Where to insert newly created context in vertical alignment.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Handles clefs, bar lines, keys, accidentals. It can contain
Voice contexts.
This context also accepts commands for the following context(s):
Staff.
This context creates the following layout object(s):
Accidental, AccidentalCautionary, AccidentalPlacement, AccidentalSuggestion, BarLine, BassFigure, BassFigureAlignment, BassFigureAlignmentPositioning, BassFigureBracket, BassFigureContinuation, BassFigureLine, Clef, ClefModifier, CueClef, CueEndClef, DotColumn, FingeringColumn, InstrumentName, KeyCancellation, KeySignature, LedgerLineSpanner, NoteCollision, OttavaBracket, PianoPedalBracket, RestCollision, ScriptRow, SostenutoPedal, SostenutoPedalLineSpanner, StaffSpacing, StaffSymbol, SustainPedal, SustainPedalLineSpanner, TimeSignature, UnaCordaPedal, UnaCordaPedalLineSpanner and VerticalAxisGroup.
This context sets the following properties:
transparent in BarLine to
#t.
createSpacing to
#t.
ignoreFiguredBassRest to
#f.
instrumentName to
'().
localAlterations to
'().
ottavationMarkups to:
'((4 . "29") (3 . "22") (2 . "15") (1 . "8") (-1 . "8") (-2 . "15") (-3 . "22") (-4 . "29"))
shortInstrumentName to
'().
This is not a ‘Bottom’ context; search for such a one will commence after creating an implicit context of type GregorianTranscriptionVoice.
Context GregorianTranscriptionStaff can contain CueVoice, GregorianTranscriptionVoice and NullVoice.
This context is built from the following engraver(s):
Accidental_engraverMake accidentals. Catch note heads, ties and notices key-change events. This engraver usually lives at Staff level, but reads the settings for Accidental at
Voicelevel, so you can\overridethem atVoice.Properties (read)
accidentalGrouping(symbol)If set to
'voice, accidentals on the same note in different octaves may be horizontally staggered if in different voices.autoAccidentals(list)List of different ways to typeset an accidental.
For determining when to print an accidental, several different rules are tried. The rule that gives the highest number of accidentals is used.
Each entry in the list is either a symbol or a procedure.
- symbol
The symbol is the name of the context in which the following rules are to be applied. For example, if context is (internals)Score section ‘Score’ in Internals Reference then all staves share accidentals, and if context is (internals)Staff section ‘Staff’ in Internals Reference then all voices in the same staff share accidentals, but staves do not.
- procedure
The procedure represents an accidental rule to be applied to the previously specified context.
The procedure takes the following arguments:
contextThe current context to which the rule should be applied.
pitchThe pitch of the note to be evaluated.
barnumThe current bar number.
measureposThe current measure position.
The procedure returns a pair of booleans. The first states whether an extra natural should be added. The second states whether an accidental should be printed.
(#t . #f)does not make sense.autoCautionaries(list)List similar to
autoAccidentals, but it controls cautionary accidentals rather than normal ones. Both lists are tried, and the one giving the most accidentals wins. In case of draw, a normal accidental is typeset.extraNatural(boolean)Whether to typeset an extra natural sign before accidentals that reduce the effect of a previous alteration.
harmonicAccidentals(boolean)If set, harmonic notes in chords get accidentals.
internalBarNumber(integer)Contains the current barnumber. This property is used for internal timekeeping, among others by the
Accidental_engraver.keyAlterations(list)The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).localAlterations(list)The key signature at this point in the measure. The format is the same as for
keyAlterations, but can also contain((octave . name) . (alter barnumber . measureposition))pairs.Properties (write)
localAlterations(list)The key signature at this point in the measure. The format is the same as for
keyAlterations, but can also contain((octave . name) . (alter barnumber . measureposition))pairs.This engraver creates the following layout object(s):
Accidental, AccidentalCautionary, AccidentalPlacement and AccidentalSuggestion.
Axis_group_engraverGroup all objects created in this context in a
VerticalAxisGroupspanner.Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
keepAliveInterfaces(list)A list of symbols, signifying grob interfaces that are worth keeping a staff with
remove-emptyset around for.Properties (write)
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
Bar_engraverCreate barlines. This engraver is controlled through the
whichBarproperty. If it has no bar line to create, it will forbid a linebreak at this point. This engraver is required to trigger the creation of clefs at the start of systems.Properties (read)
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’.
Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Clef_engraverDetermine and set reference point for pitches.
Properties (read)
clefGlyph(string)Name of the symbol within the music font.
clefPosition(number)Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
clefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
clefTranspositionStyle(symbol)Determines the way the ClefModifier grob is displayed. Possible values are ‘default’, ‘parenthesized’ and ‘bracketed’.
explicitClefVisibility(vector)‘break-visibility’ function for clef changes.
forceClef(boolean)Show clef symbol, even if it has not changed. Only active for the first clef after the property is set, not for the full staff.
This engraver creates the following layout object(s):
Clef and ClefModifier.
Collision_engraverCollect
NoteColumns, and as soon as there are two or more, put them in aNoteCollisionobject.This engraver creates the following layout object(s):
Cue_clef_engraverDetermine and set reference point for pitches in cued voices.
Properties (read)
clefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
cueClefGlyph(string)Name of the symbol within the music font.
cueClefPosition(number)Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
cueClefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
cueClefTranspositionStyle(symbol)Determines the way the ClefModifier grob is displayed. Possible values are ‘default’, ‘parenthesized’ and ‘bracketed’.
explicitCueClefVisibility(vector)‘break-visibility’ function for cue clef changes.
middleCCuePosition(number)The position of the middle C, as determined only by the clef of the cue notes. This can be calculated by looking at
cueClefPositionandcueClefGlyph.This engraver creates the following layout object(s):
ClefModifier, CueClef and CueEndClef.
Dot_column_engraverEngrave dots on dotted notes shifted to the right of the note. If omitted, then dots appear on top of the notes.
This engraver creates the following layout object(s):
Figured_bass_engraverMake figured bass numbers.
Music types accepted:
bass-figure-event and rest-event
Properties (read)
figuredBassAlterationDirection(direction)Where to put alterations relative to the main figure.
figuredBassCenterContinuations(boolean)Whether to vertically center pairs of extender lines. This does not work with three or more lines.
figuredBassFormatter(procedure)A routine generating a markup for a bass figure.
ignoreFiguredBassRest(boolean)Don’t swallow rest events.
implicitBassFigures(list)A list of bass figures that are not printed as numbers, but only as extender lines.
useBassFigureExtenders(boolean)Whether to use extender lines for repeated bass figures.
This engraver creates the following layout object(s):
BassFigure, BassFigureAlignment, BassFigureBracket, BassFigureContinuation and BassFigureLine.
Figured_bass_position_engraverPosition figured bass alignments over notes.
This engraver creates the following layout object(s):
Fingering_column_engraverFind potentially colliding scripts and put them into a
FingeringColumnobject; that will fix the collisions.This engraver creates the following layout object(s):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Grob_pq_engraverAdministrate 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_name_engraverCreate a system start text for instrument or vocal names.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
instrumentName(markup)The name to print left of a staff. The
instrumentNameproperty labels the staff in the first system, and theshortInstrumentNameproperty labels following lines.shortInstrumentName(markup)See
instrumentName.shortVocalName(markup)Name of a vocal line, short version.
vocalName(markup)Name of a vocal line.
This engraver creates the following layout object(s):
Key_engraverEngrave a key signature.
Music types accepted:
Properties (read)
createKeyOnClefChange(boolean)Print a key signature whenever the clef is changed.
explicitKeySignatureVisibility(vector)‘break-visibility’ function for explicit key changes. ‘\override’ of the
break-visibilityproperty will set the visibility for normal (i.e., at the start of the line) key signatures.extraNatural(boolean)Whether to typeset an extra natural sign before accidentals that reduce the effect of a previous alteration.
keyAlterationOrder(list)An alist that defines in what order alterations should be printed. The format is
(step . alter), where step is a number from 0 to 6 and alter from -2 (sharp) to 2 (flat).keyAlterations(list)The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).lastKeyAlterations(list)Last key signature before a key signature change.
middleCClefPosition(number)The position of the middle C, as determined only by the clef. This can be calculated by looking at
clefPositionandclefGlyph.printKeyCancellation(boolean)Print restoration alterations before a key signature change.
Properties (write)
keyAlterations(list)The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).lastKeyAlterations(list)Last key signature before a key signature change.
tonic(pitch)The tonic of the current scale.
This engraver creates the following layout object(s):
Ledger_line_engraverCreate the spanner to draw ledger lines, and notices objects that need ledger lines.
This engraver creates the following layout object(s):
Ottava_spanner_engraverCreate a text spanner when the ottavation property changes.
Properties (read)
currentMusicalColumn(graphical (layout) object)Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).
middleCOffset(number)The offset of middle C from the position given by
middleCClefPositionThis is used for ottava brackets.ottavation(markup)If set, the text for an ottava spanner. Changing this creates a new text spanner.
This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Piano_pedal_align_engraverAlign piano pedal symbols and brackets.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
This engraver creates the following layout object(s):
SostenutoPedalLineSpanner, SustainPedalLineSpanner and UnaCordaPedalLineSpanner.
Piano_pedal_engraverEngrave piano pedal symbols and brackets.
Music types accepted:
sostenuto-event, sustain-event and una-corda-event
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
pedalSostenutoStrings(list)See
pedalSustainStrings.pedalSostenutoStyle(symbol)See
pedalSustainStyle.pedalSustainStrings(list)A list of strings to print for sustain-pedal. Format is
(up updown down), where each of the three is the string to print when this is done with the pedal.pedalSustainStyle(symbol)A symbol that indicates how to print sustain pedals:
text,bracketormixed(both).pedalUnaCordaStrings(list)See
pedalSustainStrings.pedalUnaCordaStyle(symbol)See
pedalSustainStyle.This engraver creates the following layout object(s):
PianoPedalBracket, SostenutoPedal, SustainPedal and UnaCordaPedal.
Pure_from_neighbor_engraverCoordinates items that get their pure heights from their neighbors.
Rest_collision_engraverHandle collisions of rests.
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.).This engraver creates the following layout object(s):
Script_row_engraverDetermine order in horizontal side position elements.
This engraver creates the following layout object(s):
Separating_line_group_engraverGenerate objects for computing spacing parameters.
Properties (read)
createSpacing(boolean)Create
StaffSpacingobjects? Should be set for staves.Properties (write)
hasStaffSpacing(boolean)True if the current
CommandColumncontains items that will affect spacing.This engraver creates the following layout object(s):
Staff_collecting_engraverMaintain the
stavesFoundvariable.Properties (read)
stavesFound(list of grobs)A list of all staff-symbols found.
Properties (write)
stavesFound(list of grobs)A list of all staff-symbols found.
Staff_symbol_engraverCreate the constellation of five (default) staff lines.
Music types accepted:
This engraver creates the following layout object(s):
Time_signature_engraverCreate a TimeSignature whenever
timeSignatureFractionchanges.Music types accepted:
Properties (read)
initialTimeSignatureVisibility(vector)break visibility for the initial time signature.
partialBusy(boolean)Signal that \partial acts at the current timestep.
timeSignatureFraction(fraction, as pair)A pair of numbers, signifying the time signature. For example,
'(4 . 4)is a 4/4 time signature.This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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, 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, TrillSpanner, TupletBracket, TupletNumber and VoiceFollower.
This context sets the following properties:
padding in Script to
0.5.
transparent in LigatureBracket to
#t.
autoBeaming to
#f.
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_engraverGenerate an Arpeggio symbol.
Music types accepted:
This engraver creates the following layout object(s):
Auto_beam_engraverGenerate beams based on measure characteristics and observed Stems. Uses
baseMoment,beatStructure,beamExceptions,measureLength, andmeasurePositionto decide when to start and stop a beam. Overriding beaming is done through Stem_engraver propertiesstemLeftBeamCountandstemRightBeamCount.Music types accepted:
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
baseMomentpositions by only drawing one beam over the beat.This engraver creates the following layout object(s):
Beam.
Beam_engraverHandle
Beamevents 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
baseMomentpositions 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_engraverCreate fall spanners.
Music types accepted:
This engraver creates the following layout object(s):
Breathing_sign_engraverCreate a breathing sign.
Music types accepted:
This engraver creates the following layout object(s):
Chord_tremolo_engraverGenerate beams for tremolo repeats.
Music types accepted:
This engraver creates the following layout object(s):
Beam.
Cluster_spanner_engraverEngrave a cluster using
Spannernotation.Music types accepted:
This engraver creates the following layout object(s):
Dots_engraverCreate Dots objects for rhythmic-head-interfaces.
This engraver creates the following layout object(s):
Dots.
Double_percent_repeat_engraverMake double measure repeats.
Music types accepted:
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
countPercentRepeatsis set.Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Dynamic_align_engraverAlign 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):
Dynamic_engraverCreate 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):
Episema_engraverCreate an Editio Vaticana-style episema line.
Music types accepted:
This engraver creates the following layout object(s):
Fingering_engraverCreate fingering scripts.
Music types accepted:
This engraver creates the following layout object(s):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Forbid_line_break_engraverForbid 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_engraverEngrave glissandi.
Music types accepted:
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):
Grace_auto_beam_engraverGenerates one autobeam group across an entire grace phrase. As usual, any manual beaming or
\noBeamwill block autobeaming, just like setting the context property ‘autoBeaming’ to##f.Music types accepted:
Properties (read)
autoBeaming(boolean)If set to true then beams are generated automatically.
This engraver creates the following layout object(s):
Beam.
Grace_beam_engraverHandle
Beamevents 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:
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
baseMomentpositions by only drawing one beam over the beat.This engraver creates the following layout object(s):
Beam.
Grace_engraverSet 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-propertyfunction.Grob_pq_engraverAdministrate 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_engraverCreate 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):
Laissez_vibrer_engraverCreate laissez vibrer items.
Music types accepted:
This engraver creates the following layout object(s):
Ligature_bracket_engraverHandle
Ligature_eventsby engravingLigaturebrackets.Music types accepted:
This engraver creates the following layout object(s):
Multi_measure_rest_engraverEngrave multi-measure rests that are produced with ‘R’. It reads
measurePositionandinternalBarNumberto 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 (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.
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):
MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript and MultiMeasureRestText.
New_fingering_engraverCreate 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_engraverEngrave a line between two note heads in a staff switch if
followVoiceis 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):
Note_heads_engraverGenerate 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
middleCClefPositionandmiddleCOffset.staffLineLayoutFunction(procedure)Layout of staff lines,
traditional, orsemitone.This engraver creates the following layout object(s):
Note_spacing_engraverGenerate
NoteSpacing, an object linking horizontal lines for use in spacing.This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Part_combine_engraverPart 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):
Percent_repeat_engraverMake whole measure repeats.
Music types accepted:
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
countPercentRepeatsis set.This engraver creates the following layout object(s):
Phrasing_slur_engraverPrint phrasing slurs. Similar to Slur_engraver.
Music types accepted:
note-event and phrasing-slur-event
This engraver creates the following layout object(s):
Pitched_trill_engraverPrint the bracketed note head after a note head with trill.
This engraver creates the following layout object(s):
Repeat_tie_engraverCreate repeat ties.
Music types accepted:
This engraver creates the following layout object(s):
RepeatTie and RepeatTieColumn.
Rest_engraverEngrave rests.
Music types accepted:
Properties (read)
middleCPosition(number)The place of the middle C, measured in half staff-spaces. Usually determined by looking at
middleCClefPositionandmiddleCOffset.This engraver creates the following layout object(s):
Rest.
Rhythmic_column_engraverGenerate
NoteColumn, an object that groups stems, note heads, and rests.This engraver creates the following layout object(s):
Script_column_engraverFind potentially colliding scripts and put them into a
ScriptColumnobject; that will fix the collisions.This engraver creates the following layout object(s):
Script_engraverHandle note scripted articulations.
Music types accepted:
Properties (read)
scriptDefinitions(list)The description of scripts. This is used by the
Script_engraverfor typesetting note-superscripts and subscripts. See ‘scm/script.scm’ for more information.This engraver creates the following layout object(s):
Slash_repeat_engraverMake beat repeats.
Music types accepted:
This engraver creates the following layout object(s):
Slur_engraverBuild 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_engraverForbid breaks in certain spanners.
Stem_engraverCreate 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)
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.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):
Flag, Stem, StemStub and StemTremolo.
Text_engraverCreate text scripts.
Music types accepted:
This engraver creates the following layout object(s):
Text_spanner_engraverCreate text spanner from an event.
Music types accepted:
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):
Tie_engraverGenerate 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):
Trill_spanner_engraverCreate trill spanner from an event.
Music types accepted:
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):
Tuplet_engraverCatch tuplet events and generate appropriate bracket.
Music types accepted:
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):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Same as Staff context, except that it is
accommodated for typesetting a piece in Kievan style.
This context also accepts commands for the following context(s):
Staff.
This context creates the following layout object(s):
Accidental, AccidentalCautionary, AccidentalPlacement, AccidentalSuggestion, BarLine, BassFigure, BassFigureAlignment, BassFigureAlignmentPositioning, BassFigureBracket, BassFigureContinuation, BassFigureLine, Clef, ClefModifier, CueClef, CueEndClef, DotColumn, FingeringColumn, InstrumentName, KeyCancellation, KeySignature, LedgerLineSpanner, NoteCollision, OttavaBracket, PianoPedalBracket, RestCollision, ScriptRow, SostenutoPedal, SostenutoPedalLineSpanner, StaffSpacing, StaffSymbol, SustainPedal, SustainPedalLineSpanner, UnaCordaPedal, UnaCordaPedalLineSpanner and VerticalAxisGroup.
This context sets the following properties:
autoAccidentals to:
'(Staff #<procedure #f (context pitch barnum measurepos)>
#<procedure neo-modern-accidental-rule (context pitch barnum measurepos)>)
autoCautionaries to
'().
clefGlyph to
"clefs.kievan.do".
clefPosition to
0.
clefTransposition to
0.
createSpacing to
#t.
extraNatural to
#f.
ignoreFiguredBassRest to
#f.
instrumentName to
'().
localAlterations to
'().
middleCClefPosition to
0.
middleCPosition to
0.
ottavationMarkups to:
'((4 . "29") (3 . "22") (2 . "15") (1 . "8") (-1 . "8") (-2 . "15") (-3 . "22") (-4 . "29"))
printKeyCancellation to
#f.
shortInstrumentName to
'().
This is not a ‘Bottom’ context; search for such a one will commence after creating an implicit context of type KievanVoice.
Context KievanStaff can contain CueVoice, KievanVoice and NullVoice.
This context is built from the following engraver(s):
Accidental_engraverMake accidentals. Catch note heads, ties and notices key-change events. This engraver usually lives at Staff level, but reads the settings for Accidental at
Voicelevel, so you can\overridethem atVoice.Properties (read)
accidentalGrouping(symbol)If set to
'voice, accidentals on the same note in different octaves may be horizontally staggered if in different voices.autoAccidentals(list)List of different ways to typeset an accidental.
For determining when to print an accidental, several different rules are tried. The rule that gives the highest number of accidentals is used.
Each entry in the list is either a symbol or a procedure.
- symbol
The symbol is the name of the context in which the following rules are to be applied. For example, if context is (internals)Score section ‘Score’ in Internals Reference then all staves share accidentals, and if context is (internals)Staff section ‘Staff’ in Internals Reference then all voices in the same staff share accidentals, but staves do not.
- procedure
The procedure represents an accidental rule to be applied to the previously specified context.
The procedure takes the following arguments:
contextThe current context to which the rule should be applied.
pitchThe pitch of the note to be evaluated.
barnumThe current bar number.
measureposThe current measure position.
The procedure returns a pair of booleans. The first states whether an extra natural should be added. The second states whether an accidental should be printed.
(#t . #f)does not make sense.autoCautionaries(list)List similar to
autoAccidentals, but it controls cautionary accidentals rather than normal ones. Both lists are tried, and the one giving the most accidentals wins. In case of draw, a normal accidental is typeset.extraNatural(boolean)Whether to typeset an extra natural sign before accidentals that reduce the effect of a previous alteration.
harmonicAccidentals(boolean)If set, harmonic notes in chords get accidentals.
internalBarNumber(integer)Contains the current barnumber. This property is used for internal timekeeping, among others by the
Accidental_engraver.keyAlterations(list)The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).localAlterations(list)The key signature at this point in the measure. The format is the same as for
keyAlterations, but can also contain((octave . name) . (alter barnumber . measureposition))pairs.Properties (write)
localAlterations(list)The key signature at this point in the measure. The format is the same as for
keyAlterations, but can also contain((octave . name) . (alter barnumber . measureposition))pairs.This engraver creates the following layout object(s):
Accidental, AccidentalCautionary, AccidentalPlacement and AccidentalSuggestion.
Axis_group_engraverGroup all objects created in this context in a
VerticalAxisGroupspanner.Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
keepAliveInterfaces(list)A list of symbols, signifying grob interfaces that are worth keeping a staff with
remove-emptyset around for.Properties (write)
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
Bar_engraverCreate barlines. This engraver is controlled through the
whichBarproperty. If it has no bar line to create, it will forbid a linebreak at this point. This engraver is required to trigger the creation of clefs at the start of systems.Properties (read)
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’.
Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Clef_engraverDetermine and set reference point for pitches.
Properties (read)
clefGlyph(string)Name of the symbol within the music font.
clefPosition(number)Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
clefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
clefTranspositionStyle(symbol)Determines the way the ClefModifier grob is displayed. Possible values are ‘default’, ‘parenthesized’ and ‘bracketed’.
explicitClefVisibility(vector)‘break-visibility’ function for clef changes.
forceClef(boolean)Show clef symbol, even if it has not changed. Only active for the first clef after the property is set, not for the full staff.
This engraver creates the following layout object(s):
Clef and ClefModifier.
Collision_engraverCollect
NoteColumns, and as soon as there are two or more, put them in aNoteCollisionobject.This engraver creates the following layout object(s):
Cue_clef_engraverDetermine and set reference point for pitches in cued voices.
Properties (read)
clefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
cueClefGlyph(string)Name of the symbol within the music font.
cueClefPosition(number)Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
cueClefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
cueClefTranspositionStyle(symbol)Determines the way the ClefModifier grob is displayed. Possible values are ‘default’, ‘parenthesized’ and ‘bracketed’.
explicitCueClefVisibility(vector)‘break-visibility’ function for cue clef changes.
middleCCuePosition(number)The position of the middle C, as determined only by the clef of the cue notes. This can be calculated by looking at
cueClefPositionandcueClefGlyph.This engraver creates the following layout object(s):
ClefModifier, CueClef and CueEndClef.
Dot_column_engraverEngrave dots on dotted notes shifted to the right of the note. If omitted, then dots appear on top of the notes.
This engraver creates the following layout object(s):
Figured_bass_engraverMake figured bass numbers.
Music types accepted:
bass-figure-event and rest-event
Properties (read)
figuredBassAlterationDirection(direction)Where to put alterations relative to the main figure.
figuredBassCenterContinuations(boolean)Whether to vertically center pairs of extender lines. This does not work with three or more lines.
figuredBassFormatter(procedure)A routine generating a markup for a bass figure.
ignoreFiguredBassRest(boolean)Don’t swallow rest events.
implicitBassFigures(list)A list of bass figures that are not printed as numbers, but only as extender lines.
useBassFigureExtenders(boolean)Whether to use extender lines for repeated bass figures.
This engraver creates the following layout object(s):
BassFigure, BassFigureAlignment, BassFigureBracket, BassFigureContinuation and BassFigureLine.
Figured_bass_position_engraverPosition figured bass alignments over notes.
This engraver creates the following layout object(s):
Fingering_column_engraverFind potentially colliding scripts and put them into a
FingeringColumnobject; that will fix the collisions.This engraver creates the following layout object(s):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Grob_pq_engraverAdministrate 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_name_engraverCreate a system start text for instrument or vocal names.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
instrumentName(markup)The name to print left of a staff. The
instrumentNameproperty labels the staff in the first system, and theshortInstrumentNameproperty labels following lines.shortInstrumentName(markup)See
instrumentName.shortVocalName(markup)Name of a vocal line, short version.
vocalName(markup)Name of a vocal line.
This engraver creates the following layout object(s):
Key_engraverEngrave a key signature.
Music types accepted:
Properties (read)
createKeyOnClefChange(boolean)Print a key signature whenever the clef is changed.
explicitKeySignatureVisibility(vector)‘break-visibility’ function for explicit key changes. ‘\override’ of the
break-visibilityproperty will set the visibility for normal (i.e., at the start of the line) key signatures.extraNatural(boolean)Whether to typeset an extra natural sign before accidentals that reduce the effect of a previous alteration.
keyAlterationOrder(list)An alist that defines in what order alterations should be printed. The format is
(step . alter), where step is a number from 0 to 6 and alter from -2 (sharp) to 2 (flat).keyAlterations(list)The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).lastKeyAlterations(list)Last key signature before a key signature change.
middleCClefPosition(number)The position of the middle C, as determined only by the clef. This can be calculated by looking at
clefPositionandclefGlyph.printKeyCancellation(boolean)Print restoration alterations before a key signature change.
Properties (write)
keyAlterations(list)The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).lastKeyAlterations(list)Last key signature before a key signature change.
tonic(pitch)The tonic of the current scale.
This engraver creates the following layout object(s):
Ledger_line_engraverCreate the spanner to draw ledger lines, and notices objects that need ledger lines.
This engraver creates the following layout object(s):
Ottava_spanner_engraverCreate a text spanner when the ottavation property changes.
Properties (read)
currentMusicalColumn(graphical (layout) object)Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).
middleCOffset(number)The offset of middle C from the position given by
middleCClefPositionThis is used for ottava brackets.ottavation(markup)If set, the text for an ottava spanner. Changing this creates a new text spanner.
This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Piano_pedal_align_engraverAlign piano pedal symbols and brackets.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
This engraver creates the following layout object(s):
SostenutoPedalLineSpanner, SustainPedalLineSpanner and UnaCordaPedalLineSpanner.
Piano_pedal_engraverEngrave piano pedal symbols and brackets.
Music types accepted:
sostenuto-event, sustain-event and una-corda-event
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
pedalSostenutoStrings(list)See
pedalSustainStrings.pedalSostenutoStyle(symbol)See
pedalSustainStyle.pedalSustainStrings(list)A list of strings to print for sustain-pedal. Format is
(up updown down), where each of the three is the string to print when this is done with the pedal.pedalSustainStyle(symbol)A symbol that indicates how to print sustain pedals:
text,bracketormixed(both).pedalUnaCordaStrings(list)See
pedalSustainStrings.pedalUnaCordaStyle(symbol)See
pedalSustainStyle.This engraver creates the following layout object(s):
PianoPedalBracket, SostenutoPedal, SustainPedal and UnaCordaPedal.
Pure_from_neighbor_engraverCoordinates items that get their pure heights from their neighbors.
Rest_collision_engraverHandle collisions of rests.
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.).This engraver creates the following layout object(s):
Script_row_engraverDetermine order in horizontal side position elements.
This engraver creates the following layout object(s):
Separating_line_group_engraverGenerate objects for computing spacing parameters.
Properties (read)
createSpacing(boolean)Create
StaffSpacingobjects? Should be set for staves.Properties (write)
hasStaffSpacing(boolean)True if the current
CommandColumncontains items that will affect spacing.This engraver creates the following layout object(s):
Staff_collecting_engraverMaintain the
stavesFoundvariable.Properties (read)
stavesFound(list of grobs)A list of all staff-symbols found.
Properties (write)
stavesFound(list of grobs)A list of all staff-symbols found.
Staff_symbol_engraverCreate the constellation of five (default) staff lines.
Music types accepted:
This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Same as Voice context, except that it is
accommodated for typesetting a piece in Kievan style.
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, Fingering, Flag, Glissando, Hairpin, InstrumentSwitch, KievanLigature, LaissezVibrerTie, LaissezVibrerTieColumn, 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, TrillSpanner, TupletBracket, TupletNumber and VoiceFollower.
This context sets the following properties:
duration-log in NoteHead to
note-head::calc-kievan-duration-log.
glyph-name-alist in Accidental to:
'((-1/2 . "accidentals.kievanM1") (1/2 . "accidentals.kievan1"))
length in Stem to
0.0.
positions in Beam to
beam::get-kievan-positions.
quantized-positions in Beam to
beam::get-kievan-quantized-positions.
stencil in Flag to
#f.
stencil in Slur to
#f.
stencil in Stem to
#f.
style in Dots to
'kievan.
style in NoteHead to
'kievan.
style in Rest to
'mensural.
X-offset in Stem to
stem::kievan-offset-callback.
autoBeaming to
#f.
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_engraverGenerate an Arpeggio symbol.
Music types accepted:
This engraver creates the following layout object(s):
Auto_beam_engraverGenerate beams based on measure characteristics and observed Stems. Uses
baseMoment,beatStructure,beamExceptions,measureLength, andmeasurePositionto decide when to start and stop a beam. Overriding beaming is done through Stem_engraver propertiesstemLeftBeamCountandstemRightBeamCount.Music types accepted:
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
baseMomentpositions by only drawing one beam over the beat.This engraver creates the following layout object(s):
Beam.
Beam_engraverHandle
Beamevents 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
baseMomentpositions 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_engraverCreate fall spanners.
Music types accepted:
This engraver creates the following layout object(s):
Breathing_sign_engraverCreate a breathing sign.
Music types accepted:
This engraver creates the following layout object(s):
Chord_tremolo_engraverGenerate beams for tremolo repeats.
Music types accepted:
This engraver creates the following layout object(s):
Beam.
Cluster_spanner_engraverEngrave a cluster using
Spannernotation.Music types accepted:
This engraver creates the following layout object(s):
Dots_engraverCreate Dots objects for rhythmic-head-interfaces.
This engraver creates the following layout object(s):
Dots.
Double_percent_repeat_engraverMake double measure repeats.
Music types accepted:
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
countPercentRepeatsis set.Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Dynamic_align_engraverAlign 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):
Dynamic_engraverCreate 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):
Fingering_engraverCreate fingering scripts.
Music types accepted:
This engraver creates the following layout object(s):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Forbid_line_break_engraverForbid 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_engraverEngrave glissandi.
Music types accepted:
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):
Grace_auto_beam_engraverGenerates one autobeam group across an entire grace phrase. As usual, any manual beaming or
\noBeamwill block autobeaming, just like setting the context property ‘autoBeaming’ to##f.Music types accepted:
Properties (read)
autoBeaming(boolean)If set to true then beams are generated automatically.
This engraver creates the following layout object(s):
Beam.
Grace_beam_engraverHandle
Beamevents 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:
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
baseMomentpositions by only drawing one beam over the beat.This engraver creates the following layout object(s):
Beam.
Grace_engraverSet 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-propertyfunction.Grob_pq_engraverAdministrate 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_engraverCreate 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):
Kievan_ligature_engraverHandle
Kievan_ligature_eventsby glueing Kievan heads together.Music types accepted:
This engraver creates the following layout object(s):
Laissez_vibrer_engraverCreate laissez vibrer items.
Music types accepted:
This engraver creates the following layout object(s):
Multi_measure_rest_engraverEngrave multi-measure rests that are produced with ‘R’. It reads
measurePositionandinternalBarNumberto 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 (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.
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):
MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript and MultiMeasureRestText.
New_fingering_engraverCreate 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_engraverEngrave a line between two note heads in a staff switch if
followVoiceis 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):
Note_heads_engraverGenerate 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
middleCClefPositionandmiddleCOffset.staffLineLayoutFunction(procedure)Layout of staff lines,
traditional, orsemitone.This engraver creates the following layout object(s):
Note_spacing_engraverGenerate
NoteSpacing, an object linking horizontal lines for use in spacing.This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Part_combine_engraverPart 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):
Percent_repeat_engraverMake whole measure repeats.
Music types accepted:
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
countPercentRepeatsis set.This engraver creates the following layout object(s):
Phrasing_slur_engraverPrint phrasing slurs. Similar to Slur_engraver.
Music types accepted:
note-event and phrasing-slur-event
This engraver creates the following layout object(s):
Pitched_trill_engraverPrint the bracketed note head after a note head with trill.
This engraver creates the following layout object(s):
Repeat_tie_engraverCreate repeat ties.
Music types accepted:
This engraver creates the following layout object(s):
RepeatTie and RepeatTieColumn.
Rest_engraverEngrave rests.
Music types accepted:
Properties (read)
middleCPosition(number)The place of the middle C, measured in half staff-spaces. Usually determined by looking at
middleCClefPositionandmiddleCOffset.This engraver creates the following layout object(s):
Rest.
Rhythmic_column_engraverGenerate
NoteColumn, an object that groups stems, note heads, and rests.This engraver creates the following layout object(s):
Script_column_engraverFind potentially colliding scripts and put them into a
ScriptColumnobject; that will fix the collisions.This engraver creates the following layout object(s):
Script_engraverHandle note scripted articulations.
Music types accepted:
Properties (read)
scriptDefinitions(list)The description of scripts. This is used by the
Script_engraverfor typesetting note-superscripts and subscripts. See ‘scm/script.scm’ for more information.This engraver creates the following layout object(s):
Slash_repeat_engraverMake beat repeats.
Music types accepted:
This engraver creates the following layout object(s):
Slur_engraverBuild 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_engraverForbid breaks in certain spanners.
Stem_engraverCreate 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)
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.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):
Flag, Stem, StemStub and StemTremolo.
Text_engraverCreate text scripts.
Music types accepted:
This engraver creates the following layout object(s):
Text_spanner_engraverCreate text spanner from an event.
Music types accepted:
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):
Tie_engraverGenerate 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):
Trill_spanner_engraverCreate trill spanner from an event.
Music types accepted:
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):
Tuplet_engraverCatch tuplet events and generate appropriate bracket.
Music types accepted:
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):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Corresponds to a voice with lyrics. Handles the printing of a single line of lyrics.
This context creates the following layout object(s):
InstrumentName, LyricExtender, LyricHyphen, LyricSpace, LyricText, StanzaNumber, VerticalAxisGroup and VowelTransition.
This context sets the following properties:
bar-extent in BarLine to:
'(-0.05 . 0.05)
font-size in InstrumentName to
1.0.
nonstaff-nonstaff-spacing in VerticalAxisGroup to:
'((basic-distance . 0) (minimum-distance . 2.8) (padding . 0.2) (stretchability . 0))
nonstaff-relatedstaff-spacing in VerticalAxisGroup to:
'((basic-distance . 5.5) (padding . 0.5) (stretchability . 1))
nonstaff-unrelatedstaff-spacing.padding in VerticalAxisGroup to
1.5.
remove-empty in VerticalAxisGroup to
#t.
remove-first in VerticalAxisGroup to
#t.
self-alignment-Y in InstrumentName to
#f.
staff-affinity in VerticalAxisGroup to
1.
instrumentName to
'().
searchForVoice to
#f.
shortInstrumentName to
'().
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):
Axis_group_engraverGroup all objects created in this context in a
VerticalAxisGroupspanner.Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
keepAliveInterfaces(list)A list of symbols, signifying grob interfaces that are worth keeping a staff with
remove-emptyset around for.Properties (write)
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
Extender_engraverCreate lyric extenders.
Music types accepted:
completize-extender-event and extender-event
Properties (read)
extendersOverRests(boolean)Whether to continue extenders as they cross a rest.
This engraver creates the following layout object(s):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Hyphen_engraverCreate lyric hyphens, vowel transitions and distance constraints between words.
Music types accepted:
hyphen-event and vowel-transition-event
This engraver creates the following layout object(s):
Instrument_name_engraverCreate a system start text for instrument or vocal names.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
instrumentName(markup)The name to print left of a staff. The
instrumentNameproperty labels the staff in the first system, and theshortInstrumentNameproperty labels following lines.shortInstrumentName(markup)See
instrumentName.shortVocalName(markup)Name of a vocal line, short version.
vocalName(markup)Name of a vocal line.
This engraver creates the following layout object(s):
Lyric_engraverEngrave text for lyrics.
Music types accepted:
Properties (read)
ignoreMelismata(boolean)Ignore melismata for this (internals)Lyrics section ‘Lyrics’ in Internals Reference line.
lyricMelismaAlignment(number)Alignment to use for a melisma syllable.
searchForVoice(boolean)Signal whether a search should be made of all contexts in the context hierarchy for a voice to provide rhythms for the lyrics.
This engraver creates the following layout object(s):
Pure_from_neighbor_engraverCoordinates items that get their pure heights from their neighbors.
Stanza_number_engraverEngrave stanza numbers.
Properties (read)
stanza(markup)Stanza ‘number’ to print before the start of a verse. Use in
Lyricscontext.This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Same as Staff context, except that it is
accommodated for typesetting a piece in mensural style.
This context also accepts commands for the following context(s):
Staff.
This context creates the following layout object(s):
Accidental, AccidentalCautionary, AccidentalPlacement, AccidentalSuggestion, BarLine, BassFigure, BassFigureAlignment, BassFigureAlignmentPositioning, BassFigureBracket, BassFigureContinuation, BassFigureLine, Clef, ClefModifier, CueClef, CueEndClef, Custos, DotColumn, FingeringColumn, InstrumentName, KeyCancellation, KeySignature, LedgerLineSpanner, NoteCollision, OttavaBracket, PianoPedalBracket, RestCollision, ScriptRow, SostenutoPedal, SostenutoPedalLineSpanner, StaffSpacing, StaffSymbol, SustainPedal, SustainPedalLineSpanner, TimeSignature, UnaCordaPedal, UnaCordaPedalLineSpanner and VerticalAxisGroup.
This context sets the following properties:
glyph-name-alist in AccidentalSuggestion to:
'((-1/2 . "accidentals.mensuralM1") (0 . "accidentals.vaticana0") (1/2 . "accidentals.mensural1"))
glyph-name-alist in Accidental to:
'((-1/2 . "accidentals.mensuralM1") (0 . "accidentals.vaticana0") (1/2 . "accidentals.mensural1"))
glyph-name-alist in KeySignature to:
'((-1/2 . "accidentals.mensuralM1") (0 . "accidentals.vaticana0") (1/2 . "accidentals.mensural1"))
neutral-direction in Custos to
-1.
neutral-position in Custos to
3.
style in Custos to
'mensural.
style in TimeSignature to
'mensural.
thickness in StaffSymbol to
0.6.
transparent in BarLine to
#t.
autoAccidentals to:
'(Staff #<procedure #f (context pitch barnum measurepos)>)
autoCautionaries to
'().
clefGlyph to
"clefs.mensural.g".
clefPosition to
-2.
clefTransposition to
0.
createSpacing to
#t.
extraNatural to
#f.
ignoreFiguredBassRest to
#f.
instrumentName to
'().
localAlterations to
'().
middleCClefPosition to
-6.
middleCPosition to
-6.
ottavationMarkups to:
'((4 . "29") (3 . "22") (2 . "15") (1 . "8") (-1 . "8") (-2 . "15") (-3 . "22") (-4 . "29"))
printKeyCancellation to
#f.
shortInstrumentName to
'().
This is not a ‘Bottom’ context; search for such a one will commence after creating an implicit context of type MensuralVoice.
Context MensuralStaff can contain CueVoice, MensuralVoice and NullVoice.
This context is built from the following engraver(s):
Accidental_engraverMake accidentals. Catch note heads, ties and notices key-change events. This engraver usually lives at Staff level, but reads the settings for Accidental at
Voicelevel, so you can\overridethem atVoice.Properties (read)
accidentalGrouping(symbol)If set to
'voice, accidentals on the same note in different octaves may be horizontally staggered if in different voices.autoAccidentals(list)List of different ways to typeset an accidental.
For determining when to print an accidental, several different rules are tried. The rule that gives the highest number of accidentals is used.
Each entry in the list is either a symbol or a procedure.
- symbol
The symbol is the name of the context in which the following rules are to be applied. For example, if context is (internals)Score section ‘Score’ in Internals Reference then all staves share accidentals, and if context is (internals)Staff section ‘Staff’ in Internals Reference then all voices in the same staff share accidentals, but staves do not.
- procedure
The procedure represents an accidental rule to be applied to the previously specified context.
The procedure takes the following arguments:
contextThe current context to which the rule should be applied.
pitchThe pitch of the note to be evaluated.
barnumThe current bar number.
measureposThe current measure position.
The procedure returns a pair of booleans. The first states whether an extra natural should be added. The second states whether an accidental should be printed.
(#t . #f)does not make sense.autoCautionaries(list)List similar to
autoAccidentals, but it controls cautionary accidentals rather than normal ones. Both lists are tried, and the one giving the most accidentals wins. In case of draw, a normal accidental is typeset.extraNatural(boolean)Whether to typeset an extra natural sign before accidentals that reduce the effect of a previous alteration.
harmonicAccidentals(boolean)If set, harmonic notes in chords get accidentals.
internalBarNumber(integer)Contains the current barnumber. This property is used for internal timekeeping, among others by the
Accidental_engraver.keyAlterations(list)The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).localAlterations(list)The key signature at this point in the measure. The format is the same as for
keyAlterations, but can also contain((octave . name) . (alter barnumber . measureposition))pairs.Properties (write)
localAlterations(list)The key signature at this point in the measure. The format is the same as for
keyAlterations, but can also contain((octave . name) . (alter barnumber . measureposition))pairs.This engraver creates the following layout object(s):
Accidental, AccidentalCautionary, AccidentalPlacement and AccidentalSuggestion.
Axis_group_engraverGroup all objects created in this context in a
VerticalAxisGroupspanner.Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
keepAliveInterfaces(list)A list of symbols, signifying grob interfaces that are worth keeping a staff with
remove-emptyset around for.Properties (write)
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
Bar_engraverCreate barlines. This engraver is controlled through the
whichBarproperty. If it has no bar line to create, it will forbid a linebreak at this point. This engraver is required to trigger the creation of clefs at the start of systems.Properties (read)
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’.
Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Clef_engraverDetermine and set reference point for pitches.
Properties (read)
clefGlyph(string)Name of the symbol within the music font.
clefPosition(number)Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
clefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
clefTranspositionStyle(symbol)Determines the way the ClefModifier grob is displayed. Possible values are ‘default’, ‘parenthesized’ and ‘bracketed’.
explicitClefVisibility(vector)‘break-visibility’ function for clef changes.
forceClef(boolean)Show clef symbol, even if it has not changed. Only active for the first clef after the property is set, not for the full staff.
This engraver creates the following layout object(s):
Clef and ClefModifier.
Collision_engraverCollect
NoteColumns, and as soon as there are two or more, put them in aNoteCollisionobject.This engraver creates the following layout object(s):
Cue_clef_engraverDetermine and set reference point for pitches in cued voices.
Properties (read)
clefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
cueClefGlyph(string)Name of the symbol within the music font.
cueClefPosition(number)Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
cueClefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
cueClefTranspositionStyle(symbol)Determines the way the ClefModifier grob is displayed. Possible values are ‘default’, ‘parenthesized’ and ‘bracketed’.
explicitCueClefVisibility(vector)‘break-visibility’ function for cue clef changes.
middleCCuePosition(number)The position of the middle C, as determined only by the clef of the cue notes. This can be calculated by looking at
cueClefPositionandcueClefGlyph.This engraver creates the following layout object(s):
ClefModifier, CueClef and CueEndClef.
Custos_engraverEngrave custodes.
This engraver creates the following layout object(s):
Dot_column_engraverEngrave dots on dotted notes shifted to the right of the note. If omitted, then dots appear on top of the notes.
This engraver creates the following layout object(s):
Figured_bass_engraverMake figured bass numbers.
Music types accepted:
bass-figure-event and rest-event
Properties (read)
figuredBassAlterationDirection(direction)Where to put alterations relative to the main figure.
figuredBassCenterContinuations(boolean)Whether to vertically center pairs of extender lines. This does not work with three or more lines.
figuredBassFormatter(procedure)A routine generating a markup for a bass figure.
ignoreFiguredBassRest(boolean)Don’t swallow rest events.
implicitBassFigures(list)A list of bass figures that are not printed as numbers, but only as extender lines.
useBassFigureExtenders(boolean)Whether to use extender lines for repeated bass figures.
This engraver creates the following layout object(s):
BassFigure, BassFigureAlignment, BassFigureBracket, BassFigureContinuation and BassFigureLine.
Figured_bass_position_engraverPosition figured bass alignments over notes.
This engraver creates the following layout object(s):
Fingering_column_engraverFind potentially colliding scripts and put them into a
FingeringColumnobject; that will fix the collisions.This engraver creates the following layout object(s):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Grob_pq_engraverAdministrate 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_name_engraverCreate a system start text for instrument or vocal names.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
instrumentName(markup)The name to print left of a staff. The
instrumentNameproperty labels the staff in the first system, and theshortInstrumentNameproperty labels following lines.shortInstrumentName(markup)See
instrumentName.shortVocalName(markup)Name of a vocal line, short version.
vocalName(markup)Name of a vocal line.
This engraver creates the following layout object(s):
Key_engraverEngrave a key signature.
Music types accepted:
Properties (read)
createKeyOnClefChange(boolean)Print a key signature whenever the clef is changed.
explicitKeySignatureVisibility(vector)‘break-visibility’ function for explicit key changes. ‘\override’ of the
break-visibilityproperty will set the visibility for normal (i.e., at the start of the line) key signatures.extraNatural(boolean)Whether to typeset an extra natural sign before accidentals that reduce the effect of a previous alteration.
keyAlterationOrder(list)An alist that defines in what order alterations should be printed. The format is
(step . alter), where step is a number from 0 to 6 and alter from -2 (sharp) to 2 (flat).keyAlterations(list)The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).lastKeyAlterations(list)Last key signature before a key signature change.
middleCClefPosition(number)The position of the middle C, as determined only by the clef. This can be calculated by looking at
clefPositionandclefGlyph.printKeyCancellation(boolean)Print restoration alterations before a key signature change.
Properties (write)
keyAlterations(list)The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).lastKeyAlterations(list)Last key signature before a key signature change.
tonic(pitch)The tonic of the current scale.
This engraver creates the following layout object(s):
Ledger_line_engraverCreate the spanner to draw ledger lines, and notices objects that need ledger lines.
This engraver creates the following layout object(s):
Ottava_spanner_engraverCreate a text spanner when the ottavation property changes.
Properties (read)
currentMusicalColumn(graphical (layout) object)Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).
middleCOffset(number)The offset of middle C from the position given by
middleCClefPositionThis is used for ottava brackets.ottavation(markup)If set, the text for an ottava spanner. Changing this creates a new text spanner.
This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Piano_pedal_align_engraverAlign piano pedal symbols and brackets.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
This engraver creates the following layout object(s):
SostenutoPedalLineSpanner, SustainPedalLineSpanner and UnaCordaPedalLineSpanner.
Piano_pedal_engraverEngrave piano pedal symbols and brackets.
Music types accepted:
sostenuto-event, sustain-event and una-corda-event
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
pedalSostenutoStrings(list)See
pedalSustainStrings.pedalSostenutoStyle(symbol)See
pedalSustainStyle.pedalSustainStrings(list)A list of strings to print for sustain-pedal. Format is
(up updown down), where each of the three is the string to print when this is done with the pedal.pedalSustainStyle(symbol)A symbol that indicates how to print sustain pedals:
text,bracketormixed(both).pedalUnaCordaStrings(list)See
pedalSustainStrings.pedalUnaCordaStyle(symbol)See
pedalSustainStyle.This engraver creates the following layout object(s):
PianoPedalBracket, SostenutoPedal, SustainPedal and UnaCordaPedal.
Pure_from_neighbor_engraverCoordinates items that get their pure heights from their neighbors.
Rest_collision_engraverHandle collisions of rests.
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.).This engraver creates the following layout object(s):
Script_row_engraverDetermine order in horizontal side position elements.
This engraver creates the following layout object(s):
Separating_line_group_engraverGenerate objects for computing spacing parameters.
Properties (read)
createSpacing(boolean)Create
StaffSpacingobjects? Should be set for staves.Properties (write)
hasStaffSpacing(boolean)True if the current
CommandColumncontains items that will affect spacing.This engraver creates the following layout object(s):
Staff_collecting_engraverMaintain the
stavesFoundvariable.Properties (read)
stavesFound(list of grobs)A list of all staff-symbols found.
Properties (write)
stavesFound(list of grobs)A list of all staff-symbols found.
Staff_symbol_engraverCreate the constellation of five (default) staff lines.
Music types accepted:
This engraver creates the following layout object(s):
Time_signature_engraverCreate a TimeSignature whenever
timeSignatureFractionchanges.Music types accepted:
Properties (read)
initialTimeSignatureVisibility(vector)break visibility for the initial time signature.
partialBusy(boolean)Signal that \partial acts at the current timestep.
timeSignatureFraction(fraction, as pair)A pair of numbers, signifying the time signature. For example,
'(4 . 4)is a 4/4 time signature.This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Same as Voice context, except that it is
accommodated for typesetting a piece in mensural style.
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, Fingering, Flag, Glissando, Hairpin, InstrumentSwitch, LaissezVibrerTie, LaissezVibrerTieColumn, MensuralLigature, MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript, MultiMeasureRestText, NoteColumn, NoteHead, NoteSpacing, PercentRepeat, PercentRepeatCounter, PhrasingSlur, RepeatSlash, RepeatTie, RepeatTieColumn, Rest, Script, ScriptColumn, Stem, StemStub, StemTremolo, StringNumber, StrokeFinger, TextScript, TextSpanner, Tie, TieColumn, TrillPitchAccidental, TrillPitchGroup, TrillPitchHead, TrillSpanner, TupletBracket, TupletNumber and VoiceFollower.
This context sets the following properties:
style in Flag to
'mensural.
style in NoteHead to
'mensural.
style in Rest to
'mensural.
autoBeaming to
#f.
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_engraverGenerate an Arpeggio symbol.
Music types accepted:
This engraver creates the following layout object(s):
Auto_beam_engraverGenerate beams based on measure characteristics and observed Stems. Uses
baseMoment,beatStructure,beamExceptions,measureLength, andmeasurePositionto decide when to start and stop a beam. Overriding beaming is done through Stem_engraver propertiesstemLeftBeamCountandstemRightBeamCount.Music types accepted:
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
baseMomentpositions by only drawing one beam over the beat.This engraver creates the following layout object(s):
Beam.
Beam_engraverHandle
Beamevents 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
baseMomentpositions 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_engraverCreate fall spanners.
Music types accepted:
This engraver creates the following layout object(s):
Breathing_sign_engraverCreate a breathing sign.
Music types accepted:
This engraver creates the following layout object(s):
Chord_tremolo_engraverGenerate beams for tremolo repeats.
Music types accepted:
This engraver creates the following layout object(s):
Beam.
Cluster_spanner_engraverEngrave a cluster using
Spannernotation.Music types accepted:
This engraver creates the following layout object(s):
Dots_engraverCreate Dots objects for rhythmic-head-interfaces.
This engraver creates the following layout object(s):
Dots.
Double_percent_repeat_engraverMake double measure repeats.
Music types accepted:
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
countPercentRepeatsis set.Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Dynamic_align_engraverAlign 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):
Dynamic_engraverCreate 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):
Fingering_engraverCreate fingering scripts.
Music types accepted:
This engraver creates the following layout object(s):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Forbid_line_break_engraverForbid 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_engraverEngrave glissandi.
Music types accepted:
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):
Grace_auto_beam_engraverGenerates one autobeam group across an entire grace phrase. As usual, any manual beaming or
\noBeamwill block autobeaming, just like setting the context property ‘autoBeaming’ to##f.Music types accepted:
Properties (read)
autoBeaming(boolean)If set to true then beams are generated automatically.
This engraver creates the following layout object(s):
Beam.
Grace_beam_engraverHandle
Beamevents 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:
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
baseMomentpositions by only drawing one beam over the beat.This engraver creates the following layout object(s):
Beam.
Grace_engraverSet 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-propertyfunction.Grob_pq_engraverAdministrate 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_engraverCreate 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):
Laissez_vibrer_engraverCreate laissez vibrer items.
Music types accepted:
This engraver creates the following layout object(s):
Mensural_ligature_engraverHandle
Mensural_ligature_eventsby glueing special ligature heads together.Music types accepted:
This engraver creates the following layout object(s):
Multi_measure_rest_engraverEngrave multi-measure rests that are produced with ‘R’. It reads
measurePositionandinternalBarNumberto 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 (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.
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):
MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript and MultiMeasureRestText.
New_fingering_engraverCreate 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_engraverEngrave a line between two note heads in a staff switch if
followVoiceis 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):
Note_heads_engraverGenerate 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
middleCClefPositionandmiddleCOffset.staffLineLayoutFunction(procedure)Layout of staff lines,
traditional, orsemitone.This engraver creates the following layout object(s):
Note_spacing_engraverGenerate
NoteSpacing, an object linking horizontal lines for use in spacing.This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Part_combine_engraverPart 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):
Percent_repeat_engraverMake whole measure repeats.
Music types accepted:
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
countPercentRepeatsis set.This engraver creates the following layout object(s):
Phrasing_slur_engraverPrint phrasing slurs. Similar to Slur_engraver.
Music types accepted:
note-event and phrasing-slur-event
This engraver creates the following layout object(s):
Pitched_trill_engraverPrint the bracketed note head after a note head with trill.
This engraver creates the following layout object(s):
Repeat_tie_engraverCreate repeat ties.
Music types accepted:
This engraver creates the following layout object(s):
RepeatTie and RepeatTieColumn.
Rest_engraverEngrave rests.
Music types accepted:
Properties (read)
middleCPosition(number)The place of the middle C, measured in half staff-spaces. Usually determined by looking at
middleCClefPositionandmiddleCOffset.This engraver creates the following layout object(s):
Rest.
Rhythmic_column_engraverGenerate
NoteColumn, an object that groups stems, note heads, and rests.This engraver creates the following layout object(s):
Script_column_engraverFind potentially colliding scripts and put them into a
ScriptColumnobject; that will fix the collisions.This engraver creates the following layout object(s):
Script_engraverHandle note scripted articulations.
Music types accepted:
Properties (read)
scriptDefinitions(list)The description of scripts. This is used by the
Script_engraverfor typesetting note-superscripts and subscripts. See ‘scm/script.scm’ for more information.This engraver creates the following layout object(s):
Slash_repeat_engraverMake beat repeats.
Music types accepted:
This engraver creates the following layout object(s):
Spanner_break_forbid_engraverForbid breaks in certain spanners.
Stem_engraverCreate 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)
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.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):
Flag, Stem, StemStub and StemTremolo.
Text_engraverCreate text scripts.
Music types accepted:
This engraver creates the following layout object(s):
Text_spanner_engraverCreate text spanner from an event.
Music types accepted:
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):
Tie_engraverGenerate 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):
Trill_spanner_engraverCreate trill spanner from an event.
Music types accepted:
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):
Tuplet_engraverCatch tuplet events and generate appropriate bracket.
Music types accepted:
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):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
A context for printing the names of notes.
This context also accepts commands for the following context(s):
Staff.
This context creates the following layout object(s):
NoteName, StaffSpacing, Tie, TieColumn and VerticalAxisGroup.
This context sets the following properties:
nonstaff-nonstaff-spacing in VerticalAxisGroup to:
'((basic-distance . 0) (minimum-distance . 2.8) (padding . 0.2) (stretchability . 0))
nonstaff-relatedstaff-spacing in VerticalAxisGroup to:
'((basic-distance . 5.5) (padding . 0.5) (stretchability . 1))
nonstaff-unrelatedstaff-spacing.padding in VerticalAxisGroup to
1.5.
staff-affinity in VerticalAxisGroup to
1.
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):
Axis_group_engraverGroup all objects created in this context in a
VerticalAxisGroupspanner.Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
keepAliveInterfaces(list)A list of symbols, signifying grob interfaces that are worth keeping a staff with
remove-emptyset around for.Properties (write)
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
Note_name_engraverPrint pitches as words.
Music types accepted:
Properties (read)
noteNameFunction(procedure)Function used to convert pitches into strings and markups.
noteNameSeparator(string)String used to separate simultaneous NoteName objects.
printAccidentalNames(boolean or symbol)Print accidentals in the
NoteNamescontext.printNotesLanguage(string)Use a specific language in the
NoteNamescontext.printOctaveNames(boolean or symbol)Print octave marks in the
NoteNamescontext.This engraver creates the following layout object(s):
Separating_line_group_engraverGenerate objects for computing spacing parameters.
Properties (read)
createSpacing(boolean)Create
StaffSpacingobjects? Should be set for staves.Properties (write)
hasStaffSpacing(boolean)True if the current
CommandColumncontains items that will affect spacing.This engraver creates the following layout object(s):
Tie_engraverGenerate 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):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
For aligning lyrics without printing notes
This context also accepts commands for the following context(s):
Staff and Voice.
This context creates the following layout object(s):
Beam, NoteHead, Slur, Tie and TieColumn.
This context sets the following properties:
no-ledgers in NoteHead to
#t.
stencil in Beam to
#f.
stencil in NoteHead to
#f.
stencil in Slur to
#f.
stencil in Tie to
#f.
X-extent in NoteHead to
#<procedure #f (g)>.
nullAccidentals to
#t.
squashedPosition to
0.
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):
Beam_engraverHandle
Beamevents 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
baseMomentpositions 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.
Grob_pq_engraverAdministrate 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.).Note_heads_engraverGenerate 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
middleCClefPositionandmiddleCOffset.staffLineLayoutFunction(procedure)Layout of staff lines,
traditional, orsemitone.This engraver creates the following layout object(s):
Pitch_squash_engraverSet 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 (internals)Pitch_squash_engraver section ‘Pitch_squash_engraver’ in Internals Reference.
Slur_engraverBuild 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.
Tie_engraverGenerate 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):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Provides a common axis for the contained staves,
making all of them appear in the same vertical space. This can be
useful for typesetting staves of different types in immediate succession
or for temporarily changing the character of one staff or overlaying
it with a different one. Often used with \stopStaff and
\startStaff for best results.
This context creates the following layout object(s):
This is not a ‘Bottom’ context; search for such a one will commence after creating an implicit context of type Staff.
Context OneStaff can contain ChordNames, DrumStaff, Dynamics, FiguredBass, FretBoards, GregorianTranscriptionStaff, KievanStaff, Lyrics, MensuralStaff, NoteNames, PetrucciStaff, RhythmicStaff, Staff, TabStaff and VaticanaStaff.
This context is built from the following engraver(s):
Axis_group_engraverGroup all objects created in this context in a
VerticalAxisGroupspanner.Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
keepAliveInterfaces(list)A list of symbols, signifying grob interfaces that are worth keeping a staff with
remove-emptyset around for.Properties (write)
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Same as Staff context, except that it is
accommodated for typesetting a piece in Petrucci style.
This context also accepts commands for the following context(s):
Staff.
This context creates the following layout object(s):
Accidental, AccidentalCautionary, AccidentalPlacement, AccidentalSuggestion, BarLine, BassFigure, BassFigureAlignment, BassFigureAlignmentPositioning, BassFigureBracket, BassFigureContinuation, BassFigureLine, Clef, ClefModifier, CueClef, CueEndClef, Custos, DotColumn, FingeringColumn, InstrumentName, KeyCancellation, KeySignature, LedgerLineSpanner, NoteCollision, OttavaBracket, PianoPedalBracket, RestCollision, ScriptRow, SostenutoPedal, SostenutoPedalLineSpanner, StaffSpacing, StaffSymbol, SustainPedal, SustainPedalLineSpanner, TimeSignature, UnaCordaPedal, UnaCordaPedalLineSpanner and VerticalAxisGroup.
This context sets the following properties:
neutral-direction in Custos to
-1.
neutral-position in Custos to
3.
style in Custos to
'mensural.
thickness in StaffSymbol to
1.3.
autoAccidentals to:
'(Staff #<procedure #f (context pitch barnum measurepos)>
#<procedure neo-modern-accidental-rule (context pitch barnum measurepos)>)
autoCautionaries to
'().
clefGlyph to
"clefs.petrucci.g".
clefPosition to
-2.
clefTransposition to
0.
createSpacing to
#t.
extraNatural to
#f.
ignoreFiguredBassRest to
#f.
instrumentName to
'().
localAlterations to
'().
middleCClefPosition to
-6.
middleCPosition to
-6.
ottavationMarkups to:
'((4 . "29") (3 . "22") (2 . "15") (1 . "8") (-1 . "8") (-2 . "15") (-3 . "22") (-4 . "29"))
printKeyCancellation to
#f.
shortInstrumentName to
'().
This is not a ‘Bottom’ context; search for such a one will commence after creating an implicit context of type PetrucciVoice.
Context PetrucciStaff can contain CueVoice, NullVoice and PetrucciVoice.
This context is built from the following engraver(s):
Accidental_engraverMake accidentals. Catch note heads, ties and notices key-change events. This engraver usually lives at Staff level, but reads the settings for Accidental at
Voicelevel, so you can\overridethem atVoice.Properties (read)
accidentalGrouping(symbol)If set to
'voice, accidentals on the same note in different octaves may be horizontally staggered if in different voices.autoAccidentals(list)List of different ways to typeset an accidental.
For determining when to print an accidental, several different rules are tried. The rule that gives the highest number of accidentals is used.
Each entry in the list is either a symbol or a procedure.
- symbol
The symbol is the name of the context in which the following rules are to be applied. For example, if context is (internals)Score section ‘Score’ in Internals Reference then all staves share accidentals, and if context is (internals)Staff section ‘Staff’ in Internals Reference then all voices in the same staff share accidentals, but staves do not.
- procedure
The procedure represents an accidental rule to be applied to the previously specified context.
The procedure takes the following arguments:
contextThe current context to which the rule should be applied.
pitchThe pitch of the note to be evaluated.
barnumThe current bar number.
measureposThe current measure position.
The procedure returns a pair of booleans. The first states whether an extra natural should be added. The second states whether an accidental should be printed.
(#t . #f)does not make sense.autoCautionaries(list)List similar to
autoAccidentals, but it controls cautionary accidentals rather than normal ones. Both lists are tried, and the one giving the most accidentals wins. In case of draw, a normal accidental is typeset.extraNatural(boolean)Whether to typeset an extra natural sign before accidentals that reduce the effect of a previous alteration.
harmonicAccidentals(boolean)If set, harmonic notes in chords get accidentals.
internalBarNumber(integer)Contains the current barnumber. This property is used for internal timekeeping, among others by the
Accidental_engraver.keyAlterations(list)The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).localAlterations(list)The key signature at this point in the measure. The format is the same as for
keyAlterations, but can also contain((octave . name) . (alter barnumber . measureposition))pairs.Properties (write)
localAlterations(list)The key signature at this point in the measure. The format is the same as for
keyAlterations, but can also contain((octave . name) . (alter barnumber . measureposition))pairs.This engraver creates the following layout object(s):
Accidental, AccidentalCautionary, AccidentalPlacement and AccidentalSuggestion.
Axis_group_engraverGroup all objects created in this context in a
VerticalAxisGroupspanner.Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
keepAliveInterfaces(list)A list of symbols, signifying grob interfaces that are worth keeping a staff with
remove-emptyset around for.Properties (write)
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
Bar_engraverCreate barlines. This engraver is controlled through the
whichBarproperty. If it has no bar line to create, it will forbid a linebreak at this point. This engraver is required to trigger the creation of clefs at the start of systems.Properties (read)
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’.
Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Clef_engraverDetermine and set reference point for pitches.
Properties (read)
clefGlyph(string)Name of the symbol within the music font.
clefPosition(number)Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
clefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
clefTranspositionStyle(symbol)Determines the way the ClefModifier grob is displayed. Possible values are ‘default’, ‘parenthesized’ and ‘bracketed’.
explicitClefVisibility(vector)‘break-visibility’ function for clef changes.
forceClef(boolean)Show clef symbol, even if it has not changed. Only active for the first clef after the property is set, not for the full staff.
This engraver creates the following layout object(s):
Clef and ClefModifier.
Collision_engraverCollect
NoteColumns, and as soon as there are two or more, put them in aNoteCollisionobject.This engraver creates the following layout object(s):
Cue_clef_engraverDetermine and set reference point for pitches in cued voices.
Properties (read)
clefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
cueClefGlyph(string)Name of the symbol within the music font.
cueClefPosition(number)Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
cueClefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
cueClefTranspositionStyle(symbol)Determines the way the ClefModifier grob is displayed. Possible values are ‘default’, ‘parenthesized’ and ‘bracketed’.
explicitCueClefVisibility(vector)‘break-visibility’ function for cue clef changes.
middleCCuePosition(number)The position of the middle C, as determined only by the clef of the cue notes. This can be calculated by looking at
cueClefPositionandcueClefGlyph.This engraver creates the following layout object(s):
ClefModifier, CueClef and CueEndClef.
Custos_engraverEngrave custodes.
This engraver creates the following layout object(s):
Dot_column_engraverEngrave dots on dotted notes shifted to the right of the note. If omitted, then dots appear on top of the notes.
This engraver creates the following layout object(s):
Figured_bass_engraverMake figured bass numbers.
Music types accepted:
bass-figure-event and rest-event
Properties (read)
figuredBassAlterationDirection(direction)Where to put alterations relative to the main figure.
figuredBassCenterContinuations(boolean)Whether to vertically center pairs of extender lines. This does not work with three or more lines.
figuredBassFormatter(procedure)A routine generating a markup for a bass figure.
ignoreFiguredBassRest(boolean)Don’t swallow rest events.
implicitBassFigures(list)A list of bass figures that are not printed as numbers, but only as extender lines.
useBassFigureExtenders(boolean)Whether to use extender lines for repeated bass figures.
This engraver creates the following layout object(s):
BassFigure, BassFigureAlignment, BassFigureBracket, BassFigureContinuation and BassFigureLine.
Figured_bass_position_engraverPosition figured bass alignments over notes.
This engraver creates the following layout object(s):
Fingering_column_engraverFind potentially colliding scripts and put them into a
FingeringColumnobject; that will fix the collisions.This engraver creates the following layout object(s):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Grob_pq_engraverAdministrate 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_name_engraverCreate a system start text for instrument or vocal names.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
instrumentName(markup)The name to print left of a staff. The
instrumentNameproperty labels the staff in the first system, and theshortInstrumentNameproperty labels following lines.shortInstrumentName(markup)See
instrumentName.shortVocalName(markup)Name of a vocal line, short version.
vocalName(markup)Name of a vocal line.
This engraver creates the following layout object(s):
Key_engraverEngrave a key signature.
Music types accepted:
Properties (read)
createKeyOnClefChange(boolean)Print a key signature whenever the clef is changed.
explicitKeySignatureVisibility(vector)‘break-visibility’ function for explicit key changes. ‘\override’ of the
break-visibilityproperty will set the visibility for normal (i.e., at the start of the line) key signatures.extraNatural(boolean)Whether to typeset an extra natural sign before accidentals that reduce the effect of a previous alteration.
keyAlterationOrder(list)An alist that defines in what order alterations should be printed. The format is
(step . alter), where step is a number from 0 to 6 and alter from -2 (sharp) to 2 (flat).keyAlterations(list)The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).lastKeyAlterations(list)Last key signature before a key signature change.
middleCClefPosition(number)The position of the middle C, as determined only by the clef. This can be calculated by looking at
clefPositionandclefGlyph.printKeyCancellation(boolean)Print restoration alterations before a key signature change.
Properties (write)
keyAlterations(list)The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).lastKeyAlterations(list)Last key signature before a key signature change.
tonic(pitch)The tonic of the current scale.
This engraver creates the following layout object(s):
Ledger_line_engraverCreate the spanner to draw ledger lines, and notices objects that need ledger lines.
This engraver creates the following layout object(s):
Ottava_spanner_engraverCreate a text spanner when the ottavation property changes.
Properties (read)
currentMusicalColumn(graphical (layout) object)Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).
middleCOffset(number)The offset of middle C from the position given by
middleCClefPositionThis is used for ottava brackets.ottavation(markup)If set, the text for an ottava spanner. Changing this creates a new text spanner.
This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Piano_pedal_align_engraverAlign piano pedal symbols and brackets.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
This engraver creates the following layout object(s):
SostenutoPedalLineSpanner, SustainPedalLineSpanner and UnaCordaPedalLineSpanner.
Piano_pedal_engraverEngrave piano pedal symbols and brackets.
Music types accepted:
sostenuto-event, sustain-event and una-corda-event
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
pedalSostenutoStrings(list)See
pedalSustainStrings.pedalSostenutoStyle(symbol)See
pedalSustainStyle.pedalSustainStrings(list)A list of strings to print for sustain-pedal. Format is
(up updown down), where each of the three is the string to print when this is done with the pedal.pedalSustainStyle(symbol)A symbol that indicates how to print sustain pedals:
text,bracketormixed(both).pedalUnaCordaStrings(list)See
pedalSustainStrings.pedalUnaCordaStyle(symbol)See
pedalSustainStyle.This engraver creates the following layout object(s):
PianoPedalBracket, SostenutoPedal, SustainPedal and UnaCordaPedal.
Pure_from_neighbor_engraverCoordinates items that get their pure heights from their neighbors.
Rest_collision_engraverHandle collisions of rests.
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.).This engraver creates the following layout object(s):
Script_row_engraverDetermine order in horizontal side position elements.
This engraver creates the following layout object(s):
Separating_line_group_engraverGenerate objects for computing spacing parameters.
Properties (read)
createSpacing(boolean)Create
StaffSpacingobjects? Should be set for staves.Properties (write)
hasStaffSpacing(boolean)True if the current
CommandColumncontains items that will affect spacing.This engraver creates the following layout object(s):
Staff_collecting_engraverMaintain the
stavesFoundvariable.Properties (read)
stavesFound(list of grobs)A list of all staff-symbols found.
Properties (write)
stavesFound(list of grobs)A list of all staff-symbols found.
Staff_symbol_engraverCreate the constellation of five (default) staff lines.
Music types accepted:
This engraver creates the following layout object(s):
Time_signature_engraverCreate a TimeSignature whenever
timeSignatureFractionchanges.Music types accepted:
Properties (read)
initialTimeSignatureVisibility(vector)break visibility for the initial time signature.
partialBusy(boolean)Signal that \partial acts at the current timestep.
timeSignatureFraction(fraction, as pair)A pair of numbers, signifying the time signature. For example,
'(4 . 4)is a 4/4 time signature.This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Same as Voice context, except that it is
accommodated for typesetting a piece in Petrucci style.
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, Fingering, Flag, Glissando, Hairpin, InstrumentSwitch, LaissezVibrerTie, LaissezVibrerTieColumn, MensuralLigature, 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, TrillSpanner, TupletBracket, TupletNumber and VoiceFollower.
This context sets the following properties:
length in Stem to
5.
style in NoteHead to
'petrucci.
style in Rest to
'mensural.
thickness in Stem to
1.7.
autoBeaming to
#f.
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_engraverGenerate an Arpeggio symbol.
Music types accepted:
This engraver creates the following layout object(s):
Auto_beam_engraverGenerate beams based on measure characteristics and observed Stems. Uses
baseMoment,beatStructure,beamExceptions,measureLength, andmeasurePositionto decide when to start and stop a beam. Overriding beaming is done through Stem_engraver propertiesstemLeftBeamCountandstemRightBeamCount.Music types accepted:
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
baseMomentpositions by only drawing one beam over the beat.This engraver creates the following layout object(s):
Beam.
Beam_engraverHandle
Beamevents 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
baseMomentpositions 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_engraverCreate fall spanners.
Music types accepted:
This engraver creates the following layout object(s):
Breathing_sign_engraverCreate a breathing sign.
Music types accepted:
This engraver creates the following layout object(s):
Chord_tremolo_engraverGenerate beams for tremolo repeats.
Music types accepted:
This engraver creates the following layout object(s):
Beam.
Cluster_spanner_engraverEngrave a cluster using
Spannernotation.Music types accepted:
This engraver creates the following layout object(s):
Dots_engraverCreate Dots objects for rhythmic-head-interfaces.
This engraver creates the following layout object(s):
Dots.
Double_percent_repeat_engraverMake double measure repeats.
Music types accepted:
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
countPercentRepeatsis set.Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Dynamic_align_engraverAlign 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):
Dynamic_engraverCreate 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):
Fingering_engraverCreate fingering scripts.
Music types accepted:
This engraver creates the following layout object(s):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Forbid_line_break_engraverForbid 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_engraverEngrave glissandi.
Music types accepted:
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):
Grace_auto_beam_engraverGenerates one autobeam group across an entire grace phrase. As usual, any manual beaming or
\noBeamwill block autobeaming, just like setting the context property ‘autoBeaming’ to##f.Music types accepted:
Properties (read)
autoBeaming(boolean)If set to true then beams are generated automatically.
This engraver creates the following layout object(s):
Beam.
Grace_beam_engraverHandle
Beamevents 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:
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
baseMomentpositions by only drawing one beam over the beat.This engraver creates the following layout object(s):
Beam.
Grace_engraverSet 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-propertyfunction.Grob_pq_engraverAdministrate 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_engraverCreate 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):
Laissez_vibrer_engraverCreate laissez vibrer items.
Music types accepted:
This engraver creates the following layout object(s):
Mensural_ligature_engraverHandle
Mensural_ligature_eventsby glueing special ligature heads together.Music types accepted:
This engraver creates the following layout object(s):
Multi_measure_rest_engraverEngrave multi-measure rests that are produced with ‘R’. It reads
measurePositionandinternalBarNumberto 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 (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.
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):
MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript and MultiMeasureRestText.
New_fingering_engraverCreate 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_engraverEngrave a line between two note heads in a staff switch if
followVoiceis 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):
Note_heads_engraverGenerate 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
middleCClefPositionandmiddleCOffset.staffLineLayoutFunction(procedure)Layout of staff lines,
traditional, orsemitone.This engraver creates the following layout object(s):
Note_spacing_engraverGenerate
NoteSpacing, an object linking horizontal lines for use in spacing.This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Part_combine_engraverPart 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):
Percent_repeat_engraverMake whole measure repeats.
Music types accepted:
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
countPercentRepeatsis set.This engraver creates the following layout object(s):
Phrasing_slur_engraverPrint phrasing slurs. Similar to Slur_engraver.
Music types accepted:
note-event and phrasing-slur-event
This engraver creates the following layout object(s):
Pitched_trill_engraverPrint the bracketed note head after a note head with trill.
This engraver creates the following layout object(s):
Repeat_tie_engraverCreate repeat ties.
Music types accepted:
This engraver creates the following layout object(s):
RepeatTie and RepeatTieColumn.
Rest_engraverEngrave rests.
Music types accepted:
Properties (read)
middleCPosition(number)The place of the middle C, measured in half staff-spaces. Usually determined by looking at
middleCClefPositionandmiddleCOffset.This engraver creates the following layout object(s):
Rest.
Rhythmic_column_engraverGenerate
NoteColumn, an object that groups stems, note heads, and rests.This engraver creates the following layout object(s):
Script_column_engraverFind potentially colliding scripts and put them into a
ScriptColumnobject; that will fix the collisions.This engraver creates the following layout object(s):
Script_engraverHandle note scripted articulations.
Music types accepted:
Properties (read)
scriptDefinitions(list)The description of scripts. This is used by the
Script_engraverfor typesetting note-superscripts and subscripts. See ‘scm/script.scm’ for more information.This engraver creates the following layout object(s):
Slash_repeat_engraverMake beat repeats.
Music types accepted:
This engraver creates the following layout object(s):
Slur_engraverBuild 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_engraverForbid breaks in certain spanners.
Stem_engraverCreate 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)
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.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):
Flag, Stem, StemStub and StemTremolo.
Text_engraverCreate text scripts.
Music types accepted:
This engraver creates the following layout object(s):
Text_spanner_engraverCreate text spanner from an event.
Music types accepted:
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):
Tie_engraverGenerate 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):
Trill_spanner_engraverCreate trill spanner from an event.
Music types accepted:
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):
Tuplet_engraverCatch tuplet events and generate appropriate bracket.
Music types accepted:
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):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Just like GrandStaff, but the staves are only removed
together, never separately.
This context also accepts commands for the following context(s):
GrandStaff.
This context creates the following layout object(s):
Arpeggio, InstrumentName, SpanBar, SpanBarStub, SystemStartBar, SystemStartBrace, SystemStartBracket, SystemStartSquare and VerticalAlignment.
This context sets the following properties:
extra-spacing-width in DynamicText to
#f.
instrumentName to
'().
instrumentName to
'().
localAlterations to
'().
shortInstrumentName to
'().
shortInstrumentName to
'().
systemStartDelimiter to
'SystemStartBrace.
topLevelAlignment to
#f.
topLevelAlignment to
#f.
This is not a ‘Bottom’ context; search for such a one will commence after creating an implicit context of type Staff.
Context PianoStaff can contain ChordNames, DrumStaff, Dynamics, FiguredBass, Lyrics, RhythmicStaff, Staff and TabStaff.
This context is built from the following engraver(s):
Instrument_name_engraverCreate a system start text for instrument or vocal names.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
instrumentName(markup)The name to print left of a staff. The
instrumentNameproperty labels the staff in the first system, and theshortInstrumentNameproperty labels following lines.shortInstrumentName(markup)See
instrumentName.shortVocalName(markup)Name of a vocal line, short version.
vocalName(markup)Name of a vocal line.
This engraver creates the following layout object(s):
Keep_alive_together_engraverThis engraver collects all
Hara_kiri_group_spanners that are created in contexts at or below its own. These spanners are then tied together so that one will be removed only if all are removed. For example, if aStaffGroupuses this engraver, then the staves in the group will all be visible as long as there is a note in at least one of them.Span_arpeggio_engraverMake arpeggios that span multiple staves.
Properties (read)
connectArpeggios(boolean)If set, connect arpeggios across piano staff.
This engraver creates the following layout object(s):
Span_bar_engraverMake cross-staff bar lines: It catches all normal bar lines and draws a single span bar across them.
This engraver creates the following layout object(s):
Span_bar_stub_engraverMake stubs for span bars in all contexts that the span bars cross.
This engraver creates the following layout object(s):
System_start_delimiter_engraverCreate a system start delimiter (i.e., a
SystemStartBar,SystemStartBrace,SystemStartBracketorSystemStartSquarespanner).Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
systemStartDelimiter(symbol)Which grob to make for the start of the system/staff? Set to
SystemStartBrace,SystemStartBracketorSystemStartBar.systemStartDelimiterHierarchy(pair)A nested list, indicating the nesting of a start delimiters.
This engraver creates the following layout object(s):
SystemStartBar, SystemStartBrace, SystemStartBracket and SystemStartSquare.
Vertical_align_engraverCatch groups (staves, lyrics lines, etc.) and stack them vertically.
Properties (read)
alignAboveContext(string)Where to insert newly created context in vertical alignment.
alignBelowContext(string)Where to insert newly created context in vertical alignment.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
Vertical_align_engraverCatch groups (staves, lyrics lines, etc.) and stack them vertically.
Properties (read)
alignAboveContext(string)Where to insert newly created context in vertical alignment.
alignBelowContext(string)Where to insert newly created context in vertical alignment.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
A context like Staff but for printing rhythms.
Pitches are ignored; the notes are printed on one line.
This context also accepts commands for the following context(s):
Staff.
This context creates the following layout object(s):
BarLine, DotColumn, InstrumentName, LedgerLineSpanner, StaffSpacing, StaffSymbol, TimeSignature and VerticalAxisGroup.
This context sets the following properties:
line-count in StaffSymbol to
1.
neutral-direction in Beam to
1.
neutral-direction in Stem to
1.
staff-padding in VoltaBracket to
3.
createSpacing to
#t.
instrumentName to
'().
localAlterations to
'().
shortInstrumentName to
'().
squashedPosition to
0.
This is not a ‘Bottom’ context; search for such a one will commence after creating an implicit context of type Voice.
Context RhythmicStaff can contain CueVoice, NullVoice and Voice.
This context is built from the following engraver(s):
Axis_group_engraverGroup all objects created in this context in a
VerticalAxisGroupspanner.Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
keepAliveInterfaces(list)A list of symbols, signifying grob interfaces that are worth keeping a staff with
remove-emptyset around for.Properties (write)
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
Bar_engraverCreate barlines. This engraver is controlled through the
whichBarproperty. If it has no bar line to create, it will forbid a linebreak at this point. This engraver is required to trigger the creation of clefs at the start of systems.Properties (read)
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’.
Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Dot_column_engraverEngrave dots on dotted notes shifted to the right of the note. If omitted, then dots appear on top of the notes.
This engraver creates the following layout object(s):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Instrument_name_engraverCreate a system start text for instrument or vocal names.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
instrumentName(markup)The name to print left of a staff. The
instrumentNameproperty labels the staff in the first system, and theshortInstrumentNameproperty labels following lines.shortInstrumentName(markup)See
instrumentName.shortVocalName(markup)Name of a vocal line, short version.
vocalName(markup)Name of a vocal line.
This engraver creates the following layout object(s):
Ledger_line_engraverCreate the spanner to draw ledger lines, and notices objects that need ledger lines.
This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Pitch_squash_engraverSet 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 (internals)Pitch_squash_engraver section ‘Pitch_squash_engraver’ in Internals Reference.
Separating_line_group_engraverGenerate objects for computing spacing parameters.
Properties (read)
createSpacing(boolean)Create
StaffSpacingobjects? Should be set for staves.Properties (write)
hasStaffSpacing(boolean)True if the current
CommandColumncontains items that will affect spacing.This engraver creates the following layout object(s):
Staff_symbol_engraverCreate the constellation of five (default) staff lines.
Music types accepted:
This engraver creates the following layout object(s):
Time_signature_engraverCreate a TimeSignature whenever
timeSignatureFractionchanges.Music types accepted:
Properties (read)
initialTimeSignatureVisibility(vector)break visibility for the initial time signature.
partialBusy(boolean)Signal that \partial acts at the current timestep.
timeSignatureFraction(fraction, as pair)A pair of numbers, signifying the time signature. For example,
'(4 . 4)is a 4/4 time signature.This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This is the top level notation context. No
other context can contain a Score context. This context
handles the administration of time signatures. It also makes sure
that items such as clefs, time signatures, and key-signatures are
aligned across staves.
You cannot explicitly instantiate a Score context (since it
is not contained in any other context). It is instantiated
automatically when an output definition (a \score or
\layout block) is processed.
This context also accepts commands for the following context(s):
Timing.
This context creates the following layout object(s):
BarNumber, BreakAlignGroup, BreakAlignment, FootnoteItem, FootnoteSpanner, GraceSpacing, LeftEdge, MetronomeMark, NonMusicalPaperColumn, PaperColumn, ParenthesesItem, RehearsalMark, SpacingSpanner, SystemStartBar, SystemStartBrace, SystemStartBracket, SystemStartSquare, VerticalAlignment, VoltaBracket and VoltaBracketSpanner.
This context sets the following properties:
additionalPitchPrefix to
"".
aDueText to
"a2".
alternativeRestores to:
'(measurePosition measureLength lastChord)
associatedVoiceType to
'Voice.
autoAccidentals to:
'(Staff #<procedure #f (context pitch barnum measurepos)>)
autoBeamCheck to
default-auto-beam-check.
autoBeaming to
#t.
autoCautionaries to
'().
automaticBars to
#t.
barCheckSynchronize to
#f.
barNumberFormatter to
robust-bar-number-function.
barNumberVisibility to
first-bar-number-invisible-and-no-parenthesized-bar-numbers.
beamHalfMeasure to
#t.
chordNameExceptions to:
'(((#<Pitch e' > #<Pitch gis' >)
#<procedure line-markup (layout props args)>
("+"))
((#<Pitch ees' > #<Pitch ges' >)
#<procedure line-markup (layout props args)>
((#<procedure line-markup (layout props args)>
((#<procedure fontsize-markup (layout props increment arg)>
2
"°")))))
((#<Pitch ees' > #<Pitch ges' > #<Pitch bes' >)
#<procedure line-markup (layout props args)>
((#<procedure super-markup (layout props arg)>
"ø")))
((#<Pitch ees' > #<Pitch ges' > #<Pitch beses' >)
#<procedure concat-markup (layout props args)>
((#<procedure line-markup (layout props args)>
((#<procedure fontsize-markup (layout props increment arg)>
2
"°")))
(#<procedure super-markup (layout props arg)>
"7")))
((#<Pitch e' >
#<Pitch g' >
#<Pitch b' >
#<Pitch fis'' >)
#<procedure line-markup (layout props args)>
((#<procedure super-markup (layout props arg)>
"lyd")))
((#<Pitch e' >
#<Pitch g' >
#<Pitch bes' >
#<Pitch des'' >
#<Pitch ees'' >
#<Pitch fis'' >
#<Pitch aes'' >)
#<procedure line-markup (layout props args)>
((#<procedure super-markup (layout props arg)>
"alt")))
((#<Pitch g' >)
#<procedure line-markup (layout props args)>
((#<procedure super-markup (layout props arg)>
"5")))
((#<Pitch g' > #<Pitch c'' >)
#<procedure line-markup (layout props args)>
((#<procedure super-markup (layout props arg)>
"5"))))
chordNameFunction to
ignatzek-chord-names.
chordNameLowercaseMinor to
#f.
chordNameSeparator to:
'(#<procedure hspace-markup (layout props amount)> 0.5)
chordNoteNamer to
'().
chordPrefixSpacer to
0.
chordRootNamer to
note-name->markup.
clefGlyph to
"clefs.G".
clefPosition to
-2.
clefTranspositionFormatter to
clef-transposition-markup.
completionFactor to
unity-if-multimeasure.
crescendoSpanner to
'hairpin.
cueClefTranspositionFormatter to
clef-transposition-markup.
decrescendoSpanner to
'hairpin.
defaultBarType to
"|".
doubleRepeatType to
":..:".
drumStyleTable to
#<hash-table 29/61>.
endRepeatType to
":|.".
explicitClefVisibility to:
#(#t #t #t)
explicitCueClefVisibility to:
#(#f #t #t)
explicitKeySignatureVisibility to:
#(#t #t #t)
extendersOverRests to
#t.
extraNatural to
#t.
figuredBassFormatter to
format-bass-figure.
fingeringOrientations to:
'(up down)
firstClef to
#t.
graceSettings to:
'((Voice Stem direction 1) (Voice Slur direction -1) (Voice Stem font-size -3) (Voice Flag font-size -3) (Voice NoteHead font-size -3) (Voice TabNoteHead font-size -4) (Voice Dots font-size -3) (Voice Stem length-fraction 0.8) (Voice Stem no-stem-extend #t) (Voice Beam beam-thickness 0.384) (Voice Beam length-fraction 0.8) (Voice Accidental font-size -4) (Voice AccidentalCautionary font-size -4) (Voice Script font-size -3) (Voice Fingering font-size -8) (Voice StringNumber font-size -8))
harmonicAccidentals to
#t.
highStringOne to
#t.
initialTimeSignatureVisibility to:
#(#f #t #t)
instrumentTransposition to
#<Pitch c' >.
keepAliveInterfaces to:
'(bass-figure-interface chord-name-interface cluster-beacon-interface dynamic-interface fret-diagram-interface lyric-syllable-interface note-head-interface tab-note-head-interface lyric-interface percent-repeat-item-interface percent-repeat-interface stanza-number-interface)
keyAlterationOrder to:
'((6 . -1/2) (2 . -1/2) (5 . -1/2) (1 . -1/2) (4 . -1/2) (0 . -1/2) (3 . -1/2) (3 . 1/2) (0 . 1/2) (4 . 1/2) (1 . 1/2) (5 . 1/2) (2 . 1/2) (6 . 1/2) (6 . -1) (2 . -1) (5 . -1) (1 . -1) (4 . -1) (0 . -1) (3 . -1) (3 . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1))
lyricMelismaAlignment to
-1.
majorSevenSymbol to:
'(#<procedure line-markup (layout props args)>
((#<procedure fontsize-markup (layout props increment arg)>
-3
(#<procedure triangle-markup (layout props filled)>
#f))))
markFormatter to
format-mark-letters.
melismaBusyProperties to:
'(melismaBusy slurMelismaBusy tieMelismaBusy beamMelismaBusy completionBusy)
metronomeMarkFormatter to
format-metronome-markup.
middleCClefPosition to
-6.
middleCPosition to
-6.
minorChordModifier to:
'(#<procedure simple-markup (layout props str)> "m")
noChordSymbol to:
'(#<procedure simple-markup (layout props str)> "N.C.")
noteNameFunction to
note-name-markup.
noteNameSeparator to
"/".
noteToFretFunction to
determine-frets.
partCombineTextsOnNote to
#t.
pedalSostenutoStrings to:
'("Sost. Ped." "*Sost. Ped." "*")
pedalSostenutoStyle to
'mixed.
pedalSustainStrings to:
'("Ped." "*Ped." "*")
pedalSustainStyle to
'text.
pedalUnaCordaStrings to:
'("una corda" "" "tre corde")
pedalUnaCordaStyle to
'text.
predefinedDiagramTable to
#f.
printAccidentalNames to
#t.
printKeyCancellation to
#t.
printOctaveNames to
#f.
printPartCombineTexts to
#t.
quotedCueEventTypes to:
'(note-event rest-event tie-event beam-event tuplet-span-event tremolo-event)
quotedEventTypes to:
'(StreamEvent)
rehearsalMark to
1.
repeatCountVisibility to
all-repeat-counts-visible.
restNumberThreshold to
1.
scriptDefinitions to:
'(("accent"
(avoid-slur . around)
(padding . 0.2)
(script-stencil feta "sforzato" . "sforzato")
(side-relative-direction . -1))
("accentus"
(script-stencil feta "uaccentus" . "uaccentus")
(side-relative-direction . -1)
(avoid-slur . ignore)
(padding . 0.2)
(quantize-position . #t)
(script-priority . -100)
(direction . 1))
("circulus"
(script-stencil feta "circulus" . "circulus")
(side-relative-direction . -1)
(avoid-slur . ignore)
(padding . 0.2)
(quantize-position . #t)
(script-priority . -100)
(direction . 1))
("coda"
(script-stencil feta "coda" . "coda")
(padding . 0.2)
(avoid-slur . outside)
(direction . 1))
("comma"
(script-stencil feta "lcomma" . "rcomma")
(quantize-position . #t)
(padding . 0.2)
(avoid-slur . ignore)
(direction . 1))
("downbow"
(script-stencil feta "downbow" . "downbow")
(padding . 0.2)
(skyline-horizontal-padding . 0.2)
(avoid-slur . around)
(direction . 1)
(script-priority . 150))
("downmordent"
(script-stencil
feta
"downmordent"
.
"downmordent")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("downprall"
(script-stencil feta "downprall" . "downprall")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("espressivo"
(avoid-slur . around)
(padding . 0.2)
(script-stencil feta "espr" . "espr")
(side-relative-direction . -1))
("fermata"
(script-stencil feta "dfermata" . "ufermata")
(padding . 0.2)
(avoid-slur . around)
(script-priority . 4000)
(direction . 1))
("flageolet"
(script-stencil feta "flageolet" . "flageolet")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("halfopen"
(avoid-slur . outside)
(padding . 0.2)
(script-stencil feta "halfopen" . "halfopen")
(direction . 1))
("halfopenvertical"
(avoid-slur . outside)
(padding . 0.2)
(script-stencil
feta
"halfopenvertical"
.
"halfopenvertical")
(direction . 1))
("haydnturn"
(script-stencil feta "haydnturn" . "haydnturn")
(padding . 0.2)
(avoid-slur . inside)
(direction . 1))
("henzelongfermata"
(script-stencil
feta
"dhenzelongfermata"
.
"uhenzelongfermata")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("henzeshortfermata"
(script-stencil
feta
"dhenzeshortfermata"
.
"uhenzeshortfermata")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("ictus"
(script-stencil feta "ictus" . "ictus")
(side-relative-direction . -1)
(quantize-position . #t)
(avoid-slur . ignore)
(padding . 0.2)
(script-priority . -100)
(direction . -1))
("lheel"
(script-stencil feta "upedalheel" . "upedalheel")
(padding . 0.2)
(avoid-slur . around)
(direction . -1))
("lineprall"
(script-stencil feta "lineprall" . "lineprall")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("longfermata"
(script-stencil
feta
"dlongfermata"
.
"ulongfermata")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("ltoe"
(script-stencil feta "upedaltoe" . "upedaltoe")
(padding . 0.2)
(avoid-slur . around)
(direction . -1))
("marcato"
(script-stencil feta "dmarcato" . "umarcato")
(padding . 0.2)
(avoid-slur . inside)
(quantize-position . #t)
(side-relative-direction . -1))
("mordent"
(script-stencil feta "mordent" . "mordent")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("open"
(avoid-slur . outside)
(padding . 0.2)
(script-stencil feta "open" . "open")
(direction . 1))
("portato"
(script-stencil feta "uportato" . "dportato")
(avoid-slur . around)
(padding . 0.45)
(side-relative-direction . -1))
("prall"
(script-stencil feta "prall" . "prall")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("pralldown"
(script-stencil feta "pralldown" . "pralldown")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("prallmordent"
(script-stencil
feta
"prallmordent"
.
"prallmordent")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("prallprall"
(script-stencil feta "prallprall" . "prallprall")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("prallup"
(script-stencil feta "prallup" . "prallup")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("reverseturn"
(script-stencil
feta
"reverseturn"
.
"reverseturn")
(padding . 0.2)
(avoid-slur . inside)
(direction . 1))
("rheel"
(script-stencil feta "dpedalheel" . "dpedalheel")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("rtoe"
(script-stencil feta "dpedaltoe" . "dpedaltoe")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("segno"
(script-stencil feta "segno" . "segno")
(padding . 0.2)
(avoid-slur . outside)
(direction . 1))
("semicirculus"
(script-stencil
feta
"dsemicirculus"
.
"dsemicirculus")
(side-relative-direction . -1)
(quantize-position . #t)
(avoid-slur . ignore)
(padding . 0.2)
(script-priority . -100)
(direction . 1))
("shortfermata"
(script-stencil
feta
"dshortfermata"
.
"ushortfermata")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("signumcongruentiae"
(script-stencil
feta
"dsignumcongruentiae"
.
"usignumcongruentiae")
(padding . 0.2)
(avoid-slur . outside)
(direction . 1))
("slashturn"
(script-stencil feta "slashturn" . "slashturn")
(padding . 0.2)
(avoid-slur . inside)
(direction . 1))
("snappizzicato"
(script-stencil
feta
"snappizzicato"
.
"snappizzicato")
(padding . 0.2)
(avoid-slur . outside)
(direction . 1))
("staccatissimo"
(avoid-slur . inside)
(quantize-position . #t)
(script-stencil
feta
"dstaccatissimo"
.
"ustaccatissimo")
(padding . 0.2)
(skyline-horizontal-padding . 0.1)
(side-relative-direction . -1)
(toward-stem-shift . 1.0)
(toward-stem-shift-in-column . 0.0))
("staccato"
(script-stencil feta "staccato" . "staccato")
(side-relative-direction . -1)
(quantize-position . #t)
(avoid-slur . inside)
(toward-stem-shift . 1.0)
(toward-stem-shift-in-column . 0.0)
(padding . 0.2)
(skyline-horizontal-padding . 0.1)
(script-priority . -100))
("stopped"
(script-stencil feta "stopped" . "stopped")
(avoid-slur . inside)
(padding . 0.2)
(direction . 1))
("tenuto"
(script-stencil feta "tenuto" . "tenuto")
(quantize-position . #t)
(avoid-slur . inside)
(padding . 0.2)
(side-relative-direction . -1))
("trill"
(script-stencil feta "trill" . "trill")
(direction . 1)
(padding . 0.2)
(avoid-slur . outside)
(script-priority . 2000))
("turn"
(script-stencil feta "turn" . "turn")
(avoid-slur . inside)
(padding . 0.2)
(direction . 1))
("upbow"
(script-stencil feta "upbow" . "upbow")
(avoid-slur . around)
(padding . 0.2)
(direction . 1)
(script-priority . 150))
("upmordent"
(script-stencil feta "upmordent" . "upmordent")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("upprall"
(script-stencil feta "upprall" . "upprall")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("varcoda"
(script-stencil feta "varcoda" . "varcoda")
(padding . 0.2)
(avoid-slur . outside)
(direction . 1))
("varcomma"
(script-stencil feta "lvarcomma" . "rvarcomma")
(quantize-position . #t)
(padding . 0.2)
(avoid-slur . ignore)
(direction . 1))
("verylongfermata"
(script-stencil
feta
"dverylongfermata"
.
"uverylongfermata")
(padding . 0.2)
(avoid-slur . around)
(direction . 1))
("veryshortfermata"
(script-stencil
feta
"dveryshortfermata"
.
"uveryshortfermata")
(padding . 0.2)
(avoid-slur . around)
(direction . 1)))
slashChordSeparator to:
'(#<procedure simple-markup (layout props str)> "/")
soloIIText to
"Solo II".
soloText to
"Solo".
startRepeatType to
".|:".
stringNumberOrientations to:
'(up down)
stringOneTopmost to
#t.
stringTunings to:
'(#<Pitch e' > #<Pitch b > #<Pitch g > #<Pitch d > #<Pitch a, > #<Pitch e, >)
strokeFingerOrientations to:
'(right)
subdivideBeams to
#f.
systemStartDelimiter to
'SystemStartBar.
tablatureFormat to
fret-number-tablature-format.
tabStaffLineLayoutFunction to
tablature-position-on-lines.
tieWaitForNote to
#f.
timeSignatureFraction to:
'(4 . 4)
timeSignatureSettings to:
'(((2 . 2) (beamExceptions (end (1/32 8 8 8 8))))
((3 . 2)
(beamExceptions (end (1/32 8 8 8 8 8 8))))
((3 . 4)
(beamExceptions (end (1/8 6) (1/12 3 3 3))))
((3 . 8) (beamExceptions (end (1/8 3))))
((4 . 2)
(beamExceptions (end (1/16 4 4 4 4 4 4 4 4))))
((4 . 4)
(beamExceptions (end (1/8 4 4) (1/12 3 3 3 3))))
((4 . 8) (beatStructure 2 2))
((6 . 4)
(beamExceptions (end (1/16 4 4 4 4 4 4))))
((9 . 4)
(beamExceptions (end (1/32 8 8 8 8 8 8 8 8))))
((12 . 4)
(beamExceptions
(end (1/32 8 8 8 8 8 8 8 8 8 8 8 8))))
((5 . 8) (beatStructure 3 2))
((8 . 8) (beatStructure 3 3 2)))
timing to
#t.
topLevelAlignment to
#t.
This is not a ‘Bottom’ context; search for such a one will commence after creating an implicit context of type Staff.
Context Score can contain ChoirStaff, ChordNames, Devnull, DrumStaff, Dynamics, FiguredBass, FretBoards, GrandStaff, GregorianTranscriptionStaff, KievanStaff, Lyrics, MensuralStaff, NoteNames, OneStaff, PetrucciStaff, PianoStaff, RhythmicStaff, Staff, StaffGroup, TabStaff and VaticanaStaff.
This context is built from the following engraver(s):
Bar_number_engraverA bar number is created whenever
measurePositionis zero and when there is a bar line (i.e., whenwhichBaris set). It is put on top of all staves, and appears only at the left side of the staff. The staves are taken fromstavesFound, which is maintained by Staff_collecting_engraver.Music types accepted:
Properties (read)
alternativeNumberingStyle(symbol)The style of an alternative’s bar numbers. Can be
numbersfor going back to the same number ornumbers-with-lettersfor going back to the same number with letter suffixes. No setting will not go back in measure-number time.barNumberFormatter(procedure)A procedure that takes a bar number, measure position, and alternative number and returns a markup of the bar number to print.
barNumberVisibility(procedure)A procedure that takes a bar number and a measure position and returns whether the corresponding bar number should be printed. Note that the actual print-out of bar numbers is controlled with the
break-visibilityproperty.The following procedures are predefined:
all-bar-numbers-visibleEnable bar numbers for all bars, including the first one and broken bars (which get bar numbers in parentheses).
first-bar-number-invisibleEnable bar numbers for all bars (including broken bars) except the first one. If the first bar is broken, it doesn’t get a bar number either.
first-bar-number-invisible-save-broken-barsEnable bar numbers for all bars (including broken bars) except the first one. A broken first bar gets a bar number.
first-bar-number-invisible-and-no-parenthesized-bar-numbersEnable bar numbers for all bars except the first bar and broken bars. This is the default.
(every-nth-bar-number-visible n)Assuming n is value 2, for example, this enables bar numbers for bars 2, 4, 6, etc.
(modulo-bar-number-visible n m)If bar numbers 1, 4, 7, etc., should be enabled, n (the modulo) must be set to 3 and m (the division remainder) to 1.
currentBarNumber(integer)Contains the current barnumber. This property is incremented at every bar line.
stavesFound(list of grobs)A list of all staff-symbols found.
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’.
Properties (write)
currentBarNumber(integer)Contains the current barnumber. This property is incremented at every bar line.
This engraver creates the following layout object(s):
Beam_collision_engraverHelp beams avoid colliding with notes and clefs in other voices.
Break_align_engraverAlign grobs with corresponding
break-align-symbolsinto groups, and order the groups according tobreakAlignOrder. The left edge of the alignment gets a separate group, with a symbolleft-edge.This engraver creates the following layout object(s):
Concurrent_hairpin_engraverCollect concurrent hairpins.
Default_bar_line_engraverThis engraver determines what kind of automatic bar lines should be produced, and sets
whichBaraccordingly. It should be at the same level as Timing_translator.Properties (read)
automaticBars(boolean)If set to false then bar lines will not be printed automatically; they must be explicitly created with a
\barcommand. Unlike the\cadenzaOnkeyword, measures are still counted. Bar line generation will resume according to that count if this property is unset.barAlways(boolean)If set to true a bar line is drawn after each note.
defaultBarType(string)Set the default type of bar line. See
whichBarfor information on available bar types.This variable is read by (internals)Timing_translator section ‘Timing_translator’ in Internals Reference at (internals)Score section ‘Score’ in Internals Reference level.
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.
timing(boolean)Keep administration of measure length, position, bar number, etc.? Switch off for cadenzas.
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’.
Footnote_engraverCreate footnote texts.
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):
Grace_spacing_engraverBookkeeping of shortest starting and playing notes in grace note runs.
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):
Mark_engraverCreate
RehearsalMarkobjects. It puts them on top of all staves (which is taken from the propertystavesFound). If moving this engraver to a different context, Staff_collecting_engraver must move along, otherwise all marks end up on the same Y location.Music types accepted:
Properties (read)
markFormatter(procedure)A procedure taking as arguments the context and the rehearsal mark. It should return the formatted mark as a markup object.
rehearsalMark(integer)The last rehearsal mark printed.
stavesFound(list of grobs)A list of all staff-symbols found.
This engraver creates the following layout object(s):
Metronome_mark_engraverEngrave metronome marking. This delegates the formatting work to the function in the
metronomeMarkFormatterproperty. The mark is put over all staves. The staves are taken from thestavesFoundproperty, which is maintained by Staff_collecting_engraver.Music types accepted:
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.).
metronomeMarkFormatter(procedure)How to produce a metronome markup. Called with two arguments: a
TempoChangeEventand context.stavesFound(list of grobs)A list of all staff-symbols found.
tempoHideNote(boolean)Hide the note = count in tempo marks.
This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Paper_column_engraverTake care of generating columns.
This engraver decides whether a column is breakable. The default is that a column is always breakable. However, every
Bar_engraverthat does not have a barline at a certain point will setforbidBreaksin the score context to stop line breaks. In practice, this means that you can make a break point by creating a bar line (assuming that there are no beams or notes that prevent a break point).Music types accepted:
Properties (read)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.Properties (write)
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.).
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Parenthesis_engraverParenthesize objects whose music cause has the
parenthesizeproperty.This engraver creates the following layout object(s):
Repeat_acknowledge_engraverAcknowledge repeated music, and convert the contents of
repeatCommandsinto an appropriate setting forwhichBar.Properties (read)
doubleRepeatSegnoType(string)Set the default bar line for the combinations double repeat with segno. Default is ‘:|.S.|:’.
doubleRepeatType(string)Set the default bar line for double repeats.
endRepeatSegnoType(string)Set the default bar line for the combinations ending of repeat with segno. Default is ‘:|.S’.
endRepeatType(string)Set the default bar line for the ending of repeats.
repeatCommands(list)This property is a list of commands of the form
(list 'volta x), where x is a string or#f.'end-repeatis also accepted as a command.segnoType(string)Set the default bar line for a requested segno. Default is ‘S’.
startRepeatSegnoType(string)Set the default bar line for the combinations beginning of repeat with segno. Default is ‘S.|:’.
startRepeatType(string)Set the default bar line for the beginning of repeats.
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’.
Spacing_engraverMake a
SpacingSpannerand do bookkeeping of shortest starting and playing notes.Music types accepted:
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.).
proportionalNotationDuration(moment)Global override for shortest-playing duration. This is used for switching on proportional notation.
This engraver creates the following layout object(s):
Staff_collecting_engraverMaintain the
stavesFoundvariable.Properties (read)
stavesFound(list of grobs)A list of all staff-symbols found.
Properties (write)
stavesFound(list of grobs)A list of all staff-symbols found.
Stanza_number_align_engraverThis engraver ensures that stanza numbers are neatly aligned.
System_start_delimiter_engraverCreate a system start delimiter (i.e., a
SystemStartBar,SystemStartBrace,SystemStartBracketorSystemStartSquarespanner).Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
systemStartDelimiter(symbol)Which grob to make for the start of the system/staff? Set to
SystemStartBrace,SystemStartBracketorSystemStartBar.systemStartDelimiterHierarchy(pair)A nested list, indicating the nesting of a start delimiters.
This engraver creates the following layout object(s):
SystemStartBar, SystemStartBrace, SystemStartBracket and SystemStartSquare.
Timing_translatorThis engraver adds the alias
Timingto its containing context. Responsible for synchronizing timing information from staves. Normally inScore. In order to create polyrhythmic music, this engraver should be removed fromScoreand placed inStaff.Properties (read)
baseMoment(moment)Smallest unit of time that will stand on its own as a subdivided section.
currentBarNumber(integer)Contains the current barnumber. This property is incremented at every bar line.
internalBarNumber(integer)Contains the current barnumber. This property is used for internal timekeeping, among others by the
Accidental_engraver.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.
timeSignatureFraction(fraction, as pair)A pair of numbers, signifying the time signature. For example,
'(4 . 4)is a 4/4 time signature.Properties (write)
baseMoment(moment)Smallest unit of time that will stand on its own as a subdivided section.
currentBarNumber(integer)Contains the current barnumber. This property is incremented at every bar line.
internalBarNumber(integer)Contains the current barnumber. This property is used for internal timekeeping, among others by the
Accidental_engraver.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.
timeSignatureFraction(fraction, as pair)A pair of numbers, signifying the time signature. For example,
'(4 . 4)is a 4/4 time signature.Tweak_engraverRead the
tweaksproperty from the originating event, and set properties.Vertical_align_engraverCatch groups (staves, lyrics lines, etc.) and stack them vertically.
Properties (read)
alignAboveContext(string)Where to insert newly created context in vertical alignment.
alignBelowContext(string)Where to insert newly created context in vertical alignment.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
Volta_engraverMake volta brackets.
Properties (read)
repeatCommands(list)This property is a list of commands of the form
(list 'volta x), where x is a string or#f.'end-repeatis also accepted as a command.stavesFound(list of grobs)A list of all staff-symbols found.
voltaSpannerDuration(moment)This specifies the maximum duration to use for the brackets printed for
\alternative. This can be used to shrink the length of brackets in the situation where one alternative is very large.This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Handles clefs, bar lines, keys, accidentals. It can contain
Voice contexts.
This context creates the following layout object(s):
Accidental, AccidentalCautionary, AccidentalPlacement, AccidentalSuggestion, BarLine, BassFigure, BassFigureAlignment, BassFigureAlignmentPositioning, BassFigureBracket, BassFigureContinuation, BassFigureLine, Clef, ClefModifier, CueClef, CueEndClef, DotColumn, FingeringColumn, InstrumentName, KeyCancellation, KeySignature, LedgerLineSpanner, NoteCollision, OttavaBracket, PianoPedalBracket, RestCollision, ScriptRow, SostenutoPedal, SostenutoPedalLineSpanner, StaffSpacing, StaffSymbol, SustainPedal, SustainPedalLineSpanner, TimeSignature, UnaCordaPedal, UnaCordaPedalLineSpanner and VerticalAxisGroup.
This context sets the following properties:
createSpacing to
#t.
ignoreFiguredBassRest to
#f.
instrumentName to
'().
localAlterations to
'().
ottavationMarkups to:
'((4 . "29") (3 . "22") (2 . "15") (1 . "8") (-1 . "8") (-2 . "15") (-3 . "22") (-4 . "29"))
shortInstrumentName to
'().
This is not a ‘Bottom’ context; search for such a one will commence after creating an implicit context of type Voice.
Context Staff can contain CueVoice, NullVoice and Voice.
This context is built from the following engraver(s):
Accidental_engraverMake accidentals. Catch note heads, ties and notices key-change events. This engraver usually lives at Staff level, but reads the settings for Accidental at
Voicelevel, so you can\overridethem atVoice.Properties (read)
accidentalGrouping(symbol)If set to
'voice, accidentals on the same note in different octaves may be horizontally staggered if in different voices.autoAccidentals(list)List of different ways to typeset an accidental.
For determining when to print an accidental, several different rules are tried. The rule that gives the highest number of accidentals is used.
Each entry in the list is either a symbol or a procedure.
- symbol
The symbol is the name of the context in which the following rules are to be applied. For example, if context is (internals)Score section ‘Score’ in Internals Reference then all staves share accidentals, and if context is (internals)Staff section ‘Staff’ in Internals Reference then all voices in the same staff share accidentals, but staves do not.
- procedure
The procedure represents an accidental rule to be applied to the previously specified context.
The procedure takes the following arguments:
contextThe current context to which the rule should be applied.
pitchThe pitch of the note to be evaluated.
barnumThe current bar number.
measureposThe current measure position.
The procedure returns a pair of booleans. The first states whether an extra natural should be added. The second states whether an accidental should be printed.
(#t . #f)does not make sense.autoCautionaries(list)List similar to
autoAccidentals, but it controls cautionary accidentals rather than normal ones. Both lists are tried, and the one giving the most accidentals wins. In case of draw, a normal accidental is typeset.extraNatural(boolean)Whether to typeset an extra natural sign before accidentals that reduce the effect of a previous alteration.
harmonicAccidentals(boolean)If set, harmonic notes in chords get accidentals.
internalBarNumber(integer)Contains the current barnumber. This property is used for internal timekeeping, among others by the
Accidental_engraver.keyAlterations(list)The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).localAlterations(list)The key signature at this point in the measure. The format is the same as for
keyAlterations, but can also contain((octave . name) . (alter barnumber . measureposition))pairs.Properties (write)
localAlterations(list)The key signature at this point in the measure. The format is the same as for
keyAlterations, but can also contain((octave . name) . (alter barnumber . measureposition))pairs.This engraver creates the following layout object(s):
Accidental, AccidentalCautionary, AccidentalPlacement and AccidentalSuggestion.
Axis_group_engraverGroup all objects created in this context in a
VerticalAxisGroupspanner.Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
keepAliveInterfaces(list)A list of symbols, signifying grob interfaces that are worth keeping a staff with
remove-emptyset around for.Properties (write)
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
Bar_engraverCreate barlines. This engraver is controlled through the
whichBarproperty. If it has no bar line to create, it will forbid a linebreak at this point. This engraver is required to trigger the creation of clefs at the start of systems.Properties (read)
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’.
Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Clef_engraverDetermine and set reference point for pitches.
Properties (read)
clefGlyph(string)Name of the symbol within the music font.
clefPosition(number)Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
clefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
clefTranspositionStyle(symbol)Determines the way the ClefModifier grob is displayed. Possible values are ‘default’, ‘parenthesized’ and ‘bracketed’.
explicitClefVisibility(vector)‘break-visibility’ function for clef changes.
forceClef(boolean)Show clef symbol, even if it has not changed. Only active for the first clef after the property is set, not for the full staff.
This engraver creates the following layout object(s):
Clef and ClefModifier.
Collision_engraverCollect
NoteColumns, and as soon as there are two or more, put them in aNoteCollisionobject.This engraver creates the following layout object(s):
Cue_clef_engraverDetermine and set reference point for pitches in cued voices.
Properties (read)
clefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
cueClefGlyph(string)Name of the symbol within the music font.
cueClefPosition(number)Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
cueClefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
cueClefTranspositionStyle(symbol)Determines the way the ClefModifier grob is displayed. Possible values are ‘default’, ‘parenthesized’ and ‘bracketed’.
explicitCueClefVisibility(vector)‘break-visibility’ function for cue clef changes.
middleCCuePosition(number)The position of the middle C, as determined only by the clef of the cue notes. This can be calculated by looking at
cueClefPositionandcueClefGlyph.This engraver creates the following layout object(s):
ClefModifier, CueClef and CueEndClef.
Dot_column_engraverEngrave dots on dotted notes shifted to the right of the note. If omitted, then dots appear on top of the notes.
This engraver creates the following layout object(s):
Figured_bass_engraverMake figured bass numbers.
Music types accepted:
bass-figure-event and rest-event
Properties (read)
figuredBassAlterationDirection(direction)Where to put alterations relative to the main figure.
figuredBassCenterContinuations(boolean)Whether to vertically center pairs of extender lines. This does not work with three or more lines.
figuredBassFormatter(procedure)A routine generating a markup for a bass figure.
ignoreFiguredBassRest(boolean)Don’t swallow rest events.
implicitBassFigures(list)A list of bass figures that are not printed as numbers, but only as extender lines.
useBassFigureExtenders(boolean)Whether to use extender lines for repeated bass figures.
This engraver creates the following layout object(s):
BassFigure, BassFigureAlignment, BassFigureBracket, BassFigureContinuation and BassFigureLine.
Figured_bass_position_engraverPosition figured bass alignments over notes.
This engraver creates the following layout object(s):
Fingering_column_engraverFind potentially colliding scripts and put them into a
FingeringColumnobject; that will fix the collisions.This engraver creates the following layout object(s):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Grob_pq_engraverAdministrate 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_name_engraverCreate a system start text for instrument or vocal names.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
instrumentName(markup)The name to print left of a staff. The
instrumentNameproperty labels the staff in the first system, and theshortInstrumentNameproperty labels following lines.shortInstrumentName(markup)See
instrumentName.shortVocalName(markup)Name of a vocal line, short version.
vocalName(markup)Name of a vocal line.
This engraver creates the following layout object(s):
Key_engraverEngrave a key signature.
Music types accepted:
Properties (read)
createKeyOnClefChange(boolean)Print a key signature whenever the clef is changed.
explicitKeySignatureVisibility(vector)‘break-visibility’ function for explicit key changes. ‘\override’ of the
break-visibilityproperty will set the visibility for normal (i.e., at the start of the line) key signatures.extraNatural(boolean)Whether to typeset an extra natural sign before accidentals that reduce the effect of a previous alteration.
keyAlterationOrder(list)An alist that defines in what order alterations should be printed. The format is
(step . alter), where step is a number from 0 to 6 and alter from -2 (sharp) to 2 (flat).keyAlterations(list)The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).lastKeyAlterations(list)Last key signature before a key signature change.
middleCClefPosition(number)The position of the middle C, as determined only by the clef. This can be calculated by looking at
clefPositionandclefGlyph.printKeyCancellation(boolean)Print restoration alterations before a key signature change.
Properties (write)
keyAlterations(list)The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).lastKeyAlterations(list)Last key signature before a key signature change.
tonic(pitch)The tonic of the current scale.
This engraver creates the following layout object(s):
Ledger_line_engraverCreate the spanner to draw ledger lines, and notices objects that need ledger lines.
This engraver creates the following layout object(s):
Ottava_spanner_engraverCreate a text spanner when the ottavation property changes.
Properties (read)
currentMusicalColumn(graphical (layout) object)Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).
middleCOffset(number)The offset of middle C from the position given by
middleCClefPositionThis is used for ottava brackets.ottavation(markup)If set, the text for an ottava spanner. Changing this creates a new text spanner.
This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Piano_pedal_align_engraverAlign piano pedal symbols and brackets.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
This engraver creates the following layout object(s):
SostenutoPedalLineSpanner, SustainPedalLineSpanner and UnaCordaPedalLineSpanner.
Piano_pedal_engraverEngrave piano pedal symbols and brackets.
Music types accepted:
sostenuto-event, sustain-event and una-corda-event
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
pedalSostenutoStrings(list)See
pedalSustainStrings.pedalSostenutoStyle(symbol)See
pedalSustainStyle.pedalSustainStrings(list)A list of strings to print for sustain-pedal. Format is
(up updown down), where each of the three is the string to print when this is done with the pedal.pedalSustainStyle(symbol)A symbol that indicates how to print sustain pedals:
text,bracketormixed(both).pedalUnaCordaStrings(list)See
pedalSustainStrings.pedalUnaCordaStyle(symbol)See
pedalSustainStyle.This engraver creates the following layout object(s):
PianoPedalBracket, SostenutoPedal, SustainPedal and UnaCordaPedal.
Pure_from_neighbor_engraverCoordinates items that get their pure heights from their neighbors.
Rest_collision_engraverHandle collisions of rests.
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.).This engraver creates the following layout object(s):
Script_row_engraverDetermine order in horizontal side position elements.
This engraver creates the following layout object(s):
Separating_line_group_engraverGenerate objects for computing spacing parameters.
Properties (read)
createSpacing(boolean)Create
StaffSpacingobjects? Should be set for staves.Properties (write)
hasStaffSpacing(boolean)True if the current
CommandColumncontains items that will affect spacing.This engraver creates the following layout object(s):
Staff_collecting_engraverMaintain the
stavesFoundvariable.Properties (read)
stavesFound(list of grobs)A list of all staff-symbols found.
Properties (write)
stavesFound(list of grobs)A list of all staff-symbols found.
Staff_symbol_engraverCreate the constellation of five (default) staff lines.
Music types accepted:
This engraver creates the following layout object(s):
Time_signature_engraverCreate a TimeSignature whenever
timeSignatureFractionchanges.Music types accepted:
Properties (read)
initialTimeSignatureVisibility(vector)break visibility for the initial time signature.
partialBusy(boolean)Signal that \partial acts at the current timestep.
timeSignatureFraction(fraction, as pair)A pair of numbers, signifying the time signature. For example,
'(4 . 4)is a 4/4 time signature.This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Groups staves while adding a bracket on the left
side, grouping the staves together. The bar lines of the contained
staves are connected vertically. StaffGroup only consists of
a collection of staves, with a bracket in front and spanning bar lines.
This context creates the following layout object(s):
Arpeggio, InstrumentName, SpanBar, SpanBarStub, SystemStartBar, SystemStartBrace, SystemStartBracket, SystemStartSquare and VerticalAlignment.
This context sets the following properties:
extra-spacing-width in DynamicText to
#f.
instrumentName to
'().
shortInstrumentName to
'().
systemStartDelimiter to
'SystemStartBracket.
topLevelAlignment to
#f.
This is not a ‘Bottom’ context; search for such a one will commence after creating an implicit context of type Staff.
Context StaffGroup can contain ChoirStaff, ChordNames, DrumStaff, FiguredBass, FretBoards, GrandStaff, Lyrics, OneStaff, PianoStaff, RhythmicStaff, Staff, StaffGroup and TabStaff.
This context is built from the following engraver(s):
Instrument_name_engraverCreate a system start text for instrument or vocal names.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
instrumentName(markup)The name to print left of a staff. The
instrumentNameproperty labels the staff in the first system, and theshortInstrumentNameproperty labels following lines.shortInstrumentName(markup)See
instrumentName.shortVocalName(markup)Name of a vocal line, short version.
vocalName(markup)Name of a vocal line.
This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Span_arpeggio_engraverMake arpeggios that span multiple staves.
Properties (read)
connectArpeggios(boolean)If set, connect arpeggios across piano staff.
This engraver creates the following layout object(s):
Span_bar_engraverMake cross-staff bar lines: It catches all normal bar lines and draws a single span bar across them.
This engraver creates the following layout object(s):
Span_bar_stub_engraverMake stubs for span bars in all contexts that the span bars cross.
This engraver creates the following layout object(s):
System_start_delimiter_engraverCreate a system start delimiter (i.e., a
SystemStartBar,SystemStartBrace,SystemStartBracketorSystemStartSquarespanner).Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
systemStartDelimiter(symbol)Which grob to make for the start of the system/staff? Set to
SystemStartBrace,SystemStartBracketorSystemStartBar.systemStartDelimiterHierarchy(pair)A nested list, indicating the nesting of a start delimiters.
This engraver creates the following layout object(s):
SystemStartBar, SystemStartBrace, SystemStartBracket and SystemStartSquare.
Vertical_align_engraverCatch groups (staves, lyrics lines, etc.) and stack them vertically.
Properties (read)
alignAboveContext(string)Where to insert newly created context in vertical alignment.
alignBelowContext(string)Where to insert newly created context in vertical alignment.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Context for generating tablature. It accepts only TabVoice
contexts and handles the line spacing, the tablature clef etc. properly.
This context also accepts commands for the following context(s):
Staff.
This context creates the following layout object(s):
BarLine, BassFigure, BassFigureAlignment, BassFigureAlignmentPositioning, BassFigureBracket, BassFigureContinuation, BassFigureLine, Clef, ClefModifier, CueClef, CueEndClef, DotColumn, FingeringColumn, InstrumentName, LedgerLineSpanner, NoteCollision, PianoPedalBracket, RestCollision, ScriptRow, SostenutoPedal, SostenutoPedalLineSpanner, StaffSpacing, StaffSymbol, SustainPedal, SustainPedalLineSpanner, TimeSignature, UnaCordaPedal, UnaCordaPedalLineSpanner and VerticalAxisGroup.
This context sets the following properties:
after-line-breaking in RepeatTie to
repeat-tie::handle-tab-note-head.
after-line-breaking in Tie to
tie::handle-tab-note-head.
avoid-note-head in Stem to
#t.
beam-thickness in Beam to
0.32.
beam-thickness in StemTremolo to
0.32.
beam-width in StemTremolo to
stem-tremolo::calc-tab-width.
bound-details.left in Glissando to:
'((attach-dir . 1) (padding . 0.3))
bound-details.right in Glissando to:
'((attach-dir . -1) (padding . 0.3))
details in Stem to:
'((lengths 0 0 0 0 0 0) (beamed-lengths 0 0 0) (beamed-minimum-free-lengths 0 0 0) (beamed-extreme-minimum-free-lengths 0 0) (stem-shorten 0 0))
extra-dy in Glissando to
glissando::calc-tab-extra-dy.
glyph-name in TabNoteHead to
tab-note-head::calc-glyph-name.
ignore-collision in NoteColumn to
#t.
length-fraction in Beam to
0.62.
length-fraction in StemTremolo to
#<procedure #f (grob)>.
no-stem-extend in Stem to
#t.
staff-space in StaffSymbol to
1.5.
stencil in Arpeggio to
#f.
stencil in Beam to
#f.
stencil in Clef to
clef::print-modern-tab-if-set.
stencil in Dots to
#f.
stencil in DynamicTextSpanner to
#f.
stencil in DynamicText to
#f.
stencil in Flag to
#f.
stencil in Glissando to
glissando::draw-tab-glissando.
stencil in Hairpin to
#f.
stencil in LaissezVibrerTie to
#f.
stencil in MultiMeasureRestNumber to
#f.
stencil in MultiMeasureRestScript to
#f.
stencil in MultiMeasureRestText to
#f.
stencil in MultiMeasureRest to
#f.
stencil in PhrasingSlur to
#f.
stencil in RepeatTie to
#f.
stencil in Rest to
#f.
stencil in Script to
#f.
stencil in Slur to
slur::draw-tab-slur.
stencil in StemTremolo to
#f.
stencil in Stem to
#f.
stencil in TabNoteHead to
tab-note-head::whiteout-if-style-set.
stencil in TextScript to
#f.
stencil in TextSpanner to
#f.
stencil in Tie to
#f.
stencil in TimeSignature to
#f.
stencil in TupletBracket to
#f.
stencil in TupletNumber to
#f.
style in Flag to
'no-flag.
autoBeaming to
#f.
clefGlyph to
"clefs.tab".
clefPosition to
0.
createSpacing to
#t.
handleNegativeFrets to
'recalculate.
ignoreFiguredBassRest to
#f.
instrumentName to
'().
localAlterations to
'().
ottavationMarkups to:
'((4 . "29") (3 . "22") (2 . "15") (1 . "8") (-1 . "8") (-2 . "15") (-3 . "22") (-4 . "29"))
restrainOpenStrings to
#f.
shortInstrumentName to
'().
This is not a ‘Bottom’ context; search for such a one will commence after creating an implicit context of type TabVoice.
Context TabStaff can contain CueVoice, NullVoice and TabVoice.
This context is built from the following engraver(s):
Axis_group_engraverGroup all objects created in this context in a
VerticalAxisGroupspanner.Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
keepAliveInterfaces(list)A list of symbols, signifying grob interfaces that are worth keeping a staff with
remove-emptyset around for.Properties (write)
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
Bar_engraverCreate barlines. This engraver is controlled through the
whichBarproperty. If it has no bar line to create, it will forbid a linebreak at this point. This engraver is required to trigger the creation of clefs at the start of systems.Properties (read)
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’.
Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Clef_engraverDetermine and set reference point for pitches.
Properties (read)
clefGlyph(string)Name of the symbol within the music font.
clefPosition(number)Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
clefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
clefTranspositionStyle(symbol)Determines the way the ClefModifier grob is displayed. Possible values are ‘default’, ‘parenthesized’ and ‘bracketed’.
explicitClefVisibility(vector)‘break-visibility’ function for clef changes.
forceClef(boolean)Show clef symbol, even if it has not changed. Only active for the first clef after the property is set, not for the full staff.
This engraver creates the following layout object(s):
Clef and ClefModifier.
Collision_engraverCollect
NoteColumns, and as soon as there are two or more, put them in aNoteCollisionobject.This engraver creates the following layout object(s):
Cue_clef_engraverDetermine and set reference point for pitches in cued voices.
Properties (read)
clefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
cueClefGlyph(string)Name of the symbol within the music font.
cueClefPosition(number)Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
cueClefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
cueClefTranspositionStyle(symbol)Determines the way the ClefModifier grob is displayed. Possible values are ‘default’, ‘parenthesized’ and ‘bracketed’.
explicitCueClefVisibility(vector)‘break-visibility’ function for cue clef changes.
middleCCuePosition(number)The position of the middle C, as determined only by the clef of the cue notes. This can be calculated by looking at
cueClefPositionandcueClefGlyph.This engraver creates the following layout object(s):
ClefModifier, CueClef and CueEndClef.
Dot_column_engraverEngrave dots on dotted notes shifted to the right of the note. If omitted, then dots appear on top of the notes.
This engraver creates the following layout object(s):
Figured_bass_engraverMake figured bass numbers.
Music types accepted:
bass-figure-event and rest-event
Properties (read)
figuredBassAlterationDirection(direction)Where to put alterations relative to the main figure.
figuredBassCenterContinuations(boolean)Whether to vertically center pairs of extender lines. This does not work with three or more lines.
figuredBassFormatter(procedure)A routine generating a markup for a bass figure.
ignoreFiguredBassRest(boolean)Don’t swallow rest events.
implicitBassFigures(list)A list of bass figures that are not printed as numbers, but only as extender lines.
useBassFigureExtenders(boolean)Whether to use extender lines for repeated bass figures.
This engraver creates the following layout object(s):
BassFigure, BassFigureAlignment, BassFigureBracket, BassFigureContinuation and BassFigureLine.
Figured_bass_position_engraverPosition figured bass alignments over notes.
This engraver creates the following layout object(s):
Fingering_column_engraverFind potentially colliding scripts and put them into a
FingeringColumnobject; that will fix the collisions.This engraver creates the following layout object(s):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Grob_pq_engraverAdministrate 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_name_engraverCreate a system start text for instrument or vocal names.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
instrumentName(markup)The name to print left of a staff. The
instrumentNameproperty labels the staff in the first system, and theshortInstrumentNameproperty labels following lines.shortInstrumentName(markup)See
instrumentName.shortVocalName(markup)Name of a vocal line, short version.
vocalName(markup)Name of a vocal line.
This engraver creates the following layout object(s):
Ledger_line_engraverCreate the spanner to draw ledger lines, and notices objects that need ledger lines.
This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Piano_pedal_align_engraverAlign piano pedal symbols and brackets.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
This engraver creates the following layout object(s):
SostenutoPedalLineSpanner, SustainPedalLineSpanner and UnaCordaPedalLineSpanner.
Piano_pedal_engraverEngrave piano pedal symbols and brackets.
Music types accepted:
sostenuto-event, sustain-event and una-corda-event
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
pedalSostenutoStrings(list)See
pedalSustainStrings.pedalSostenutoStyle(symbol)See
pedalSustainStyle.pedalSustainStrings(list)A list of strings to print for sustain-pedal. Format is
(up updown down), where each of the three is the string to print when this is done with the pedal.pedalSustainStyle(symbol)A symbol that indicates how to print sustain pedals:
text,bracketormixed(both).pedalUnaCordaStrings(list)See
pedalSustainStrings.pedalUnaCordaStyle(symbol)See
pedalSustainStyle.This engraver creates the following layout object(s):
PianoPedalBracket, SostenutoPedal, SustainPedal and UnaCordaPedal.
Pure_from_neighbor_engraverCoordinates items that get their pure heights from their neighbors.
Rest_collision_engraverHandle collisions of rests.
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.).This engraver creates the following layout object(s):
Script_row_engraverDetermine order in horizontal side position elements.
This engraver creates the following layout object(s):
Separating_line_group_engraverGenerate objects for computing spacing parameters.
Properties (read)
createSpacing(boolean)Create
StaffSpacingobjects? Should be set for staves.Properties (write)
hasStaffSpacing(boolean)True if the current
CommandColumncontains items that will affect spacing.This engraver creates the following layout object(s):
Staff_collecting_engraverMaintain the
stavesFoundvariable.Properties (read)
stavesFound(list of grobs)A list of all staff-symbols found.
Properties (write)
stavesFound(list of grobs)A list of all staff-symbols found.
Staff_symbol_engraverCreate the constellation of five (default) staff lines.
Music types accepted:
This engraver creates the following layout object(s):
Tab_staff_symbol_engraverCreate a tablature staff symbol, but look at
stringTuningsfor the number of lines.Properties (read)
stringTunings(list)The tablature strings tuning. It is a list of the pitches of each string (starting with the lowest numbered one).
This engraver creates the following layout object(s):
Time_signature_engraverCreate a TimeSignature whenever
timeSignatureFractionchanges.Music types accepted:
Properties (read)
initialTimeSignatureVisibility(vector)break visibility for the initial time signature.
partialBusy(boolean)Signal that \partial acts at the current timestep.
timeSignatureFraction(fraction, as pair)A pair of numbers, signifying the time signature. For example,
'(4 . 4)is a 4/4 time signature.This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Context for drawing notes in a Tab 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, Flag, Glissando, Hairpin, InstrumentSwitch, LaissezVibrerTie, LaissezVibrerTieColumn, LigatureBracket, MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript, MultiMeasureRestText, NoteColumn, NoteSpacing, PercentRepeat, PercentRepeatCounter, PhrasingSlur, RepeatSlash, RepeatTie, RepeatTieColumn, Rest, Script, ScriptColumn, Slur, Stem, StemStub, StemTremolo, TabNoteHead, TextScript, TextSpanner, Tie, TieColumn, TrillSpanner, TupletBracket, TupletNumber and VoiceFollower.
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_engraverGenerate an Arpeggio symbol.
Music types accepted:
This engraver creates the following layout object(s):
Auto_beam_engraverGenerate beams based on measure characteristics and observed Stems. Uses
baseMoment,beatStructure,beamExceptions,measureLength, andmeasurePositionto decide when to start and stop a beam. Overriding beaming is done through Stem_engraver propertiesstemLeftBeamCountandstemRightBeamCount.Music types accepted:
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
baseMomentpositions by only drawing one beam over the beat.This engraver creates the following layout object(s):
Beam.
Beam_engraverHandle
Beamevents 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
baseMomentpositions 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_engraverCreate fall spanners.
Music types accepted:
This engraver creates the following layout object(s):
Breathing_sign_engraverCreate a breathing sign.
Music types accepted:
This engraver creates the following layout object(s):
Chord_tremolo_engraverGenerate beams for tremolo repeats.
Music types accepted:
This engraver creates the following layout object(s):
Beam.
Cluster_spanner_engraverEngrave a cluster using
Spannernotation.Music types accepted:
This engraver creates the following layout object(s):
Dots_engraverCreate Dots objects for rhythmic-head-interfaces.
This engraver creates the following layout object(s):
Dots.
Double_percent_repeat_engraverMake double measure repeats.
Music types accepted:
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
countPercentRepeatsis set.Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Dynamic_align_engraverAlign 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):
Dynamic_engraverCreate 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):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Forbid_line_break_engraverForbid 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_engraverEngrave glissandi.
Music types accepted:
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):
Grace_auto_beam_engraverGenerates one autobeam group across an entire grace phrase. As usual, any manual beaming or
\noBeamwill block autobeaming, just like setting the context property ‘autoBeaming’ to##f.Music types accepted:
Properties (read)
autoBeaming(boolean)If set to true then beams are generated automatically.
This engraver creates the following layout object(s):
Beam.
Grace_beam_engraverHandle
Beamevents 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:
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
baseMomentpositions by only drawing one beam over the beat.This engraver creates the following layout object(s):
Beam.
Grace_engraverSet 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-propertyfunction.Grob_pq_engraverAdministrate 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_engraverCreate 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):
Laissez_vibrer_engraverCreate laissez vibrer items.
Music types accepted:
This engraver creates the following layout object(s):
Ligature_bracket_engraverHandle
Ligature_eventsby engravingLigaturebrackets.Music types accepted:
This engraver creates the following layout object(s):
Multi_measure_rest_engraverEngrave multi-measure rests that are produced with ‘R’. It reads
measurePositionandinternalBarNumberto 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 (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.
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):
MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript and MultiMeasureRestText.
Note_head_line_engraverEngrave a line between two note heads in a staff switch if
followVoiceis 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):
Note_spacing_engraverGenerate
NoteSpacing, an object linking horizontal lines for use in spacing.This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Part_combine_engraverPart 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):
Percent_repeat_engraverMake whole measure repeats.
Music types accepted:
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
countPercentRepeatsis set.This engraver creates the following layout object(s):
Phrasing_slur_engraverPrint phrasing slurs. Similar to Slur_engraver.
Music types accepted:
note-event and phrasing-slur-event
This engraver creates the following layout object(s):
Repeat_tie_engraverCreate repeat ties.
Music types accepted:
This engraver creates the following layout object(s):
RepeatTie and RepeatTieColumn.
Rest_engraverEngrave rests.
Music types accepted:
Properties (read)
middleCPosition(number)The place of the middle C, measured in half staff-spaces. Usually determined by looking at
middleCClefPositionandmiddleCOffset.This engraver creates the following layout object(s):
Rest.
Rhythmic_column_engraverGenerate
NoteColumn, an object that groups stems, note heads, and rests.This engraver creates the following layout object(s):
Script_column_engraverFind potentially colliding scripts and put them into a
ScriptColumnobject; that will fix the collisions.This engraver creates the following layout object(s):
Script_engraverHandle note scripted articulations.
Music types accepted:
Properties (read)
scriptDefinitions(list)The description of scripts. This is used by the
Script_engraverfor typesetting note-superscripts and subscripts. See ‘scm/script.scm’ for more information.This engraver creates the following layout object(s):
Slash_repeat_engraverMake beat repeats.
Music types accepted:
This engraver creates the following layout object(s):
Slur_engraverBuild 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_engraverForbid breaks in certain spanners.
Stem_engraverCreate 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)
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.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):
Flag, Stem, StemStub and StemTremolo.
Tab_note_heads_engraverGenerate one or more tablature note heads from event of type
NoteEvent.Music types accepted:
fingering-event, note-event and string-number-event
Properties (read)
defaultStrings(list)A list of strings to use in calculating frets for tablatures and fretboards if no strings are provided in the notes for the current moment.
fretLabels(list)A list of strings or Scheme-formatted markups containing, in the correct order, the labels to be used for lettered frets in tablature.
highStringOne(boolean)Whether the first string is the string with highest pitch on the instrument. This used by the automatic string selector for tablature notation.
maximumFretStretch(number)Don’t allocate frets further than this from specified frets.
middleCPosition(number)The place of the middle C, measured in half staff-spaces. Usually determined by looking at
middleCClefPositionandmiddleCOffset.minimumFret(number)The tablature auto string-selecting mechanism selects the highest string with a fret at least
minimumFret.noteToFretFunction(procedure)Convert list of notes and list of defined strings to full list of strings and fret numbers. Parameters: The context, a list of note events, a list of tabstring events, and the fretboard grob if a fretboard is desired.
stringOneTopmost(boolean)Whether the first string is printed on the top line of the tablature.
stringTunings(list)The tablature strings tuning. It is a list of the pitches of each string (starting with the lowest numbered one).
tablatureFormat(procedure)A function formatting a tablature note head. Called with three arguments: context, string number and, fret number. It returns the text as a markup.
tabStaffLineLayoutFunction(procedure)A function determining the staff position of a tablature note head. Called with two arguments: the context and the string.
This engraver creates the following layout object(s):
Tab_tie_follow_engraverAdjust TabNoteHead properties when a tie is followed by a slur or glissando.
Text_engraverCreate text scripts.
Music types accepted:
This engraver creates the following layout object(s):
Text_spanner_engraverCreate text spanner from an event.
Music types accepted:
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):
Tie_engraverGenerate 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):
Trill_spanner_engraverCreate trill spanner from an event.
Music types accepted:
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):
Tuplet_engraverCatch tuplet events and generate appropriate bracket.
Music types accepted:
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):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Same as Staff context, except that it is
accommodated for typesetting Gregorian Chant in the notational style
of Editio Vaticana.
This context also accepts commands for the following context(s):
Staff.
This context creates the following layout object(s):
Accidental, AccidentalCautionary, AccidentalPlacement, AccidentalSuggestion, BarLine, BassFigure, BassFigureAlignment, BassFigureAlignmentPositioning, BassFigureBracket, BassFigureContinuation, BassFigureLine, Clef, ClefModifier, CueClef, CueEndClef, Custos, DotColumn, FingeringColumn, InstrumentName, KeyCancellation, KeySignature, LedgerLineSpanner, NoteCollision, OttavaBracket, PianoPedalBracket, RestCollision, ScriptRow, SostenutoPedal, SostenutoPedalLineSpanner, StaffSpacing, StaffSymbol, SustainPedal, SustainPedalLineSpanner, UnaCordaPedal, UnaCordaPedalLineSpanner and VerticalAxisGroup.
This context sets the following properties:
glyph-name-alist in Accidental to:
'((-1/2 . "accidentals.vaticanaM1") (0 . "accidentals.vaticana0") (1/2 . "accidentals.mensural1"))
glyph-name-alist in KeySignature to:
'((-1/2 . "accidentals.vaticanaM1") (0 . "accidentals.vaticana0") (1/2 . "accidentals.mensural1"))
line-count in StaffSymbol to
4.
neutral-direction in Custos to
-1.
neutral-position in Custos to
3.
style in Custos to
'vaticana.
style in Dots to
'vaticana.
thickness in StaffSymbol to
0.6.
transparent in BarLine to
#t.
clefGlyph to
"clefs.vaticana.do".
clefPosition to
1.
clefTransposition to
0.
createSpacing to
#t.
ignoreFiguredBassRest to
#f.
instrumentName to
'().
localAlterations to
'().
middleCClefPosition to
1.
middleCPosition to
1.
ottavationMarkups to:
'((4 . "29") (3 . "22") (2 . "15") (1 . "8") (-1 . "8") (-2 . "15") (-3 . "22") (-4 . "29"))
shortInstrumentName to
'().
This is not a ‘Bottom’ context; search for such a one will commence after creating an implicit context of type VaticanaVoice.
Context VaticanaStaff can contain CueVoice, NullVoice and VaticanaVoice.
This context is built from the following engraver(s):
Accidental_engraverMake accidentals. Catch note heads, ties and notices key-change events. This engraver usually lives at Staff level, but reads the settings for Accidental at
Voicelevel, so you can\overridethem atVoice.Properties (read)
accidentalGrouping(symbol)If set to
'voice, accidentals on the same note in different octaves may be horizontally staggered if in different voices.autoAccidentals(list)List of different ways to typeset an accidental.
For determining when to print an accidental, several different rules are tried. The rule that gives the highest number of accidentals is used.
Each entry in the list is either a symbol or a procedure.
- symbol
The symbol is the name of the context in which the following rules are to be applied. For example, if context is (internals)Score section ‘Score’ in Internals Reference then all staves share accidentals, and if context is (internals)Staff section ‘Staff’ in Internals Reference then all voices in the same staff share accidentals, but staves do not.
- procedure
The procedure represents an accidental rule to be applied to the previously specified context.
The procedure takes the following arguments:
contextThe current context to which the rule should be applied.
pitchThe pitch of the note to be evaluated.
barnumThe current bar number.
measureposThe current measure position.
The procedure returns a pair of booleans. The first states whether an extra natural should be added. The second states whether an accidental should be printed.
(#t . #f)does not make sense.autoCautionaries(list)List similar to
autoAccidentals, but it controls cautionary accidentals rather than normal ones. Both lists are tried, and the one giving the most accidentals wins. In case of draw, a normal accidental is typeset.extraNatural(boolean)Whether to typeset an extra natural sign before accidentals that reduce the effect of a previous alteration.
harmonicAccidentals(boolean)If set, harmonic notes in chords get accidentals.
internalBarNumber(integer)Contains the current barnumber. This property is used for internal timekeeping, among others by the
Accidental_engraver.keyAlterations(list)The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).localAlterations(list)The key signature at this point in the measure. The format is the same as for
keyAlterations, but can also contain((octave . name) . (alter barnumber . measureposition))pairs.Properties (write)
localAlterations(list)The key signature at this point in the measure. The format is the same as for
keyAlterations, but can also contain((octave . name) . (alter barnumber . measureposition))pairs.This engraver creates the following layout object(s):
Accidental, AccidentalCautionary, AccidentalPlacement and AccidentalSuggestion.
Axis_group_engraverGroup all objects created in this context in a
VerticalAxisGroupspanner.Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
hasAxisGroup(boolean)True if the current context is contained in an axis group.
keepAliveInterfaces(list)A list of symbols, signifying grob interfaces that are worth keeping a staff with
remove-emptyset around for.Properties (write)
hasAxisGroup(boolean)True if the current context is contained in an axis group.
This engraver creates the following layout object(s):
Bar_engraverCreate barlines. This engraver is controlled through the
whichBarproperty. If it has no bar line to create, it will forbid a linebreak at this point. This engraver is required to trigger the creation of clefs at the start of systems.Properties (read)
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’.
Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Clef_engraverDetermine and set reference point for pitches.
Properties (read)
clefGlyph(string)Name of the symbol within the music font.
clefPosition(number)Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
clefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
clefTranspositionStyle(symbol)Determines the way the ClefModifier grob is displayed. Possible values are ‘default’, ‘parenthesized’ and ‘bracketed’.
explicitClefVisibility(vector)‘break-visibility’ function for clef changes.
forceClef(boolean)Show clef symbol, even if it has not changed. Only active for the first clef after the property is set, not for the full staff.
This engraver creates the following layout object(s):
Clef and ClefModifier.
Collision_engraverCollect
NoteColumns, and as soon as there are two or more, put them in aNoteCollisionobject.This engraver creates the following layout object(s):
Cue_clef_engraverDetermine and set reference point for pitches in cued voices.
Properties (read)
clefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
cueClefGlyph(string)Name of the symbol within the music font.
cueClefPosition(number)Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
cueClefTransposition(integer)Add this much extra transposition. Values of 7 and -7 are common.
cueClefTranspositionStyle(symbol)Determines the way the ClefModifier grob is displayed. Possible values are ‘default’, ‘parenthesized’ and ‘bracketed’.
explicitCueClefVisibility(vector)‘break-visibility’ function for cue clef changes.
middleCCuePosition(number)The position of the middle C, as determined only by the clef of the cue notes. This can be calculated by looking at
cueClefPositionandcueClefGlyph.This engraver creates the following layout object(s):
ClefModifier, CueClef and CueEndClef.
Custos_engraverEngrave custodes.
This engraver creates the following layout object(s):
Dot_column_engraverEngrave dots on dotted notes shifted to the right of the note. If omitted, then dots appear on top of the notes.
This engraver creates the following layout object(s):
Figured_bass_engraverMake figured bass numbers.
Music types accepted:
bass-figure-event and rest-event
Properties (read)
figuredBassAlterationDirection(direction)Where to put alterations relative to the main figure.
figuredBassCenterContinuations(boolean)Whether to vertically center pairs of extender lines. This does not work with three or more lines.
figuredBassFormatter(procedure)A routine generating a markup for a bass figure.
ignoreFiguredBassRest(boolean)Don’t swallow rest events.
implicitBassFigures(list)A list of bass figures that are not printed as numbers, but only as extender lines.
useBassFigureExtenders(boolean)Whether to use extender lines for repeated bass figures.
This engraver creates the following layout object(s):
BassFigure, BassFigureAlignment, BassFigureBracket, BassFigureContinuation and BassFigureLine.
Figured_bass_position_engraverPosition figured bass alignments over notes.
This engraver creates the following layout object(s):
Fingering_column_engraverFind potentially colliding scripts and put them into a
FingeringColumnobject; that will fix the collisions.This engraver creates the following layout object(s):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Grob_pq_engraverAdministrate 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_name_engraverCreate a system start text for instrument or vocal names.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
instrumentName(markup)The name to print left of a staff. The
instrumentNameproperty labels the staff in the first system, and theshortInstrumentNameproperty labels following lines.shortInstrumentName(markup)See
instrumentName.shortVocalName(markup)Name of a vocal line, short version.
vocalName(markup)Name of a vocal line.
This engraver creates the following layout object(s):
Key_engraverEngrave a key signature.
Music types accepted:
Properties (read)
createKeyOnClefChange(boolean)Print a key signature whenever the clef is changed.
explicitKeySignatureVisibility(vector)‘break-visibility’ function for explicit key changes. ‘\override’ of the
break-visibilityproperty will set the visibility for normal (i.e., at the start of the line) key signatures.extraNatural(boolean)Whether to typeset an extra natural sign before accidentals that reduce the effect of a previous alteration.
keyAlterationOrder(list)An alist that defines in what order alterations should be printed. The format is
(step . alter), where step is a number from 0 to 6 and alter from -2 (sharp) to 2 (flat).keyAlterations(list)The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).lastKeyAlterations(list)Last key signature before a key signature change.
middleCClefPosition(number)The position of the middle C, as determined only by the clef. This can be calculated by looking at
clefPositionandclefGlyph.printKeyCancellation(boolean)Print restoration alterations before a key signature change.
Properties (write)
keyAlterations(list)The current key signature. This is an alist containing
(step . alter)or((octave . step) . alter), where step is a number in the range 0 to 6 and alter a fraction, denoting alteration. For alterations, use symbols, e.g.keyAlterations = #`((6 . ,FLAT)).lastKeyAlterations(list)Last key signature before a key signature change.
tonic(pitch)The tonic of the current scale.
This engraver creates the following layout object(s):
Ledger_line_engraverCreate the spanner to draw ledger lines, and notices objects that need ledger lines.
This engraver creates the following layout object(s):
Ottava_spanner_engraverCreate a text spanner when the ottavation property changes.
Properties (read)
currentMusicalColumn(graphical (layout) object)Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).
middleCOffset(number)The offset of middle C from the position given by
middleCClefPositionThis is used for ottava brackets.ottavation(markup)If set, the text for an ottava spanner. Changing this creates a new text spanner.
This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Piano_pedal_align_engraverAlign piano pedal symbols and brackets.
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
This engraver creates the following layout object(s):
SostenutoPedalLineSpanner, SustainPedalLineSpanner and UnaCordaPedalLineSpanner.
Piano_pedal_engraverEngrave piano pedal symbols and brackets.
Music types accepted:
sostenuto-event, sustain-event and una-corda-event
Properties (read)
currentCommandColumn(graphical (layout) object)Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
pedalSostenutoStrings(list)See
pedalSustainStrings.pedalSostenutoStyle(symbol)See
pedalSustainStyle.pedalSustainStrings(list)A list of strings to print for sustain-pedal. Format is
(up updown down), where each of the three is the string to print when this is done with the pedal.pedalSustainStyle(symbol)A symbol that indicates how to print sustain pedals:
text,bracketormixed(both).pedalUnaCordaStrings(list)See
pedalSustainStrings.pedalUnaCordaStyle(symbol)See
pedalSustainStyle.This engraver creates the following layout object(s):
PianoPedalBracket, SostenutoPedal, SustainPedal and UnaCordaPedal.
Pure_from_neighbor_engraverCoordinates items that get their pure heights from their neighbors.
Rest_collision_engraverHandle collisions of rests.
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.).This engraver creates the following layout object(s):
Script_row_engraverDetermine order in horizontal side position elements.
This engraver creates the following layout object(s):
Separating_line_group_engraverGenerate objects for computing spacing parameters.
Properties (read)
createSpacing(boolean)Create
StaffSpacingobjects? Should be set for staves.Properties (write)
hasStaffSpacing(boolean)True if the current
CommandColumncontains items that will affect spacing.This engraver creates the following layout object(s):
Staff_collecting_engraverMaintain the
stavesFoundvariable.Properties (read)
stavesFound(list of grobs)A list of all staff-symbols found.
Properties (write)
stavesFound(list of grobs)A list of all staff-symbols found.
Staff_symbol_engraverCreate the constellation of five (default) staff lines.
Music types accepted:
This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Same as Voice context, except that it is
accommodated for typesetting Gregorian Chant in the notational style
of Editio Vaticana.
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, DotColumn, Dots, DoublePercentRepeat, DoublePercentRepeatCounter, DoubleRepeatSlash, DynamicLineSpanner, DynamicText, DynamicTextSpanner, Episema, Fingering, Glissando, Hairpin, InstrumentSwitch, LaissezVibrerTie, LaissezVibrerTieColumn, MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript, MultiMeasureRestText, NoteColumn, NoteHead, NoteSpacing, PercentRepeat, PercentRepeatCounter, PhrasingSlur, RepeatSlash, RepeatTie, RepeatTieColumn, Rest, Script, ScriptColumn, StringNumber, StrokeFinger, TextScript, Tie, TieColumn, TrillPitchAccidental, TrillPitchGroup, TrillPitchHead, TrillSpanner, TupletBracket, TupletNumber, VaticanaLigature and VoiceFollower.
This context sets the following properties:
padding in Script to
0.5.
style in NoteHead to
'vaticana.punctum.
autoBeaming to
#f.
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_engraverGenerate an Arpeggio symbol.
Music types accepted:
This engraver creates the following layout object(s):
Auto_beam_engraverGenerate beams based on measure characteristics and observed Stems. Uses
baseMoment,beatStructure,beamExceptions,measureLength, andmeasurePositionto decide when to start and stop a beam. Overriding beaming is done through Stem_engraver propertiesstemLeftBeamCountandstemRightBeamCount.Music types accepted:
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
baseMomentpositions by only drawing one beam over the beat.This engraver creates the following layout object(s):
Beam.
Beam_engraverHandle
Beamevents 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
baseMomentpositions 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_engraverCreate fall spanners.
Music types accepted:
This engraver creates the following layout object(s):
Breathing_sign_engraverCreate a breathing sign.
Music types accepted:
This engraver creates the following layout object(s):
Chord_tremolo_engraverGenerate beams for tremolo repeats.
Music types accepted:
This engraver creates the following layout object(s):
Beam.
Cluster_spanner_engraverEngrave a cluster using
Spannernotation.Music types accepted:
This engraver creates the following layout object(s):
Dots_engraverCreate Dots objects for rhythmic-head-interfaces.
This engraver creates the following layout object(s):
Dots.
Double_percent_repeat_engraverMake double measure repeats.
Music types accepted:
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
countPercentRepeatsis set.Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Dynamic_align_engraverAlign 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):
Dynamic_engraverCreate 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):
Episema_engraverCreate an Editio Vaticana-style episema line.
Music types accepted:
This engraver creates the following layout object(s):
Fingering_engraverCreate fingering scripts.
Music types accepted:
This engraver creates the following layout object(s):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Forbid_line_break_engraverForbid 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_engraverEngrave glissandi.
Music types accepted:
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):
Grace_auto_beam_engraverGenerates one autobeam group across an entire grace phrase. As usual, any manual beaming or
\noBeamwill block autobeaming, just like setting the context property ‘autoBeaming’ to##f.Music types accepted:
Properties (read)
autoBeaming(boolean)If set to true then beams are generated automatically.
This engraver creates the following layout object(s):
Beam.
Grace_beam_engraverHandle
Beamevents 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:
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
baseMomentpositions by only drawing one beam over the beat.This engraver creates the following layout object(s):
Beam.
Grace_engraverSet 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-propertyfunction.Grob_pq_engraverAdministrate 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_engraverCreate 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):
Laissez_vibrer_engraverCreate laissez vibrer items.
Music types accepted:
This engraver creates the following layout object(s):
Multi_measure_rest_engraverEngrave multi-measure rests that are produced with ‘R’. It reads
measurePositionandinternalBarNumberto 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 (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.
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):
MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript and MultiMeasureRestText.
New_fingering_engraverCreate 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_engraverEngrave a line between two note heads in a staff switch if
followVoiceis 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):
Note_heads_engraverGenerate 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
middleCClefPositionandmiddleCOffset.staffLineLayoutFunction(procedure)Layout of staff lines,
traditional, orsemitone.This engraver creates the following layout object(s):
Note_spacing_engraverGenerate
NoteSpacing, an object linking horizontal lines for use in spacing.This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Part_combine_engraverPart 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):
Percent_repeat_engraverMake whole measure repeats.
Music types accepted:
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
countPercentRepeatsis set.This engraver creates the following layout object(s):
Phrasing_slur_engraverPrint phrasing slurs. Similar to Slur_engraver.
Music types accepted:
note-event and phrasing-slur-event
This engraver creates the following layout object(s):
Pitched_trill_engraverPrint the bracketed note head after a note head with trill.
This engraver creates the following layout object(s):
Repeat_tie_engraverCreate repeat ties.
Music types accepted:
This engraver creates the following layout object(s):
RepeatTie and RepeatTieColumn.
Rest_engraverEngrave rests.
Music types accepted:
Properties (read)
middleCPosition(number)The place of the middle C, measured in half staff-spaces. Usually determined by looking at
middleCClefPositionandmiddleCOffset.This engraver creates the following layout object(s):
Rest.
Rhythmic_column_engraverGenerate
NoteColumn, an object that groups stems, note heads, and rests.This engraver creates the following layout object(s):
Script_column_engraverFind potentially colliding scripts and put them into a
ScriptColumnobject; that will fix the collisions.This engraver creates the following layout object(s):
Script_engraverHandle note scripted articulations.
Music types accepted:
Properties (read)
scriptDefinitions(list)The description of scripts. This is used by the
Script_engraverfor typesetting note-superscripts and subscripts. See ‘scm/script.scm’ for more information.This engraver creates the following layout object(s):
Slash_repeat_engraverMake beat repeats.
Music types accepted:
This engraver creates the following layout object(s):
Spanner_break_forbid_engraverForbid breaks in certain spanners.
Text_engraverCreate text scripts.
Music types accepted:
This engraver creates the following layout object(s):
Tie_engraverGenerate 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):
Trill_spanner_engraverCreate trill spanner from an event.
Music types accepted:
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):
Tuplet_engraverCatch tuplet events and generate appropriate bracket.
Music types accepted:
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):
Vaticana_ligature_engraverHandle ligatures by glueing special ligature heads together.
Music types accepted:
ligature-event and pes-or-flexa-event
This engraver creates the following layout object(s):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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 creates the following layout object(s):
Arpeggio, Beam, BendAfter, BreathingSign, ClusterSpanner, ClusterSpannerBeacon, CombineTextScript, Dots, DoublePercentRepeat, DoublePercentRepeatCounter, DoubleRepeatSlash, DynamicLineSpanner, DynamicText, DynamicTextSpanner, 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, TrillSpanner, TupletBracket, TupletNumber and VoiceFollower.
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_engraverGenerate an Arpeggio symbol.
Music types accepted:
This engraver creates the following layout object(s):
Auto_beam_engraverGenerate beams based on measure characteristics and observed Stems. Uses
baseMoment,beatStructure,beamExceptions,measureLength, andmeasurePositionto decide when to start and stop a beam. Overriding beaming is done through Stem_engraver propertiesstemLeftBeamCountandstemRightBeamCount.Music types accepted:
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
baseMomentpositions by only drawing one beam over the beat.This engraver creates the following layout object(s):
Beam.
Beam_engraverHandle
Beamevents 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
baseMomentpositions 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_engraverCreate fall spanners.
Music types accepted:
This engraver creates the following layout object(s):
Breathing_sign_engraverCreate a breathing sign.
Music types accepted:
This engraver creates the following layout object(s):
Chord_tremolo_engraverGenerate beams for tremolo repeats.
Music types accepted:
This engraver creates the following layout object(s):
Beam.
Cluster_spanner_engraverEngrave a cluster using
Spannernotation.Music types accepted:
This engraver creates the following layout object(s):
Dots_engraverCreate Dots objects for rhythmic-head-interfaces.
This engraver creates the following layout object(s):
Dots.
Double_percent_repeat_engraverMake double measure repeats.
Music types accepted:
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
countPercentRepeatsis set.Properties (write)
forbidBreak(boolean)If set to
#t, prevent a line break at this point.This engraver creates the following layout object(s):
Dynamic_align_engraverAlign 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):
Dynamic_engraverCreate 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):
Fingering_engraverCreate fingering scripts.
Music types accepted:
This engraver creates the following layout object(s):
Font_size_engraverPut
fontSizeintofont-sizegrob property.Properties (read)
fontSize(number)The relative size of all grobs in a context.
Forbid_line_break_engraverForbid 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_engraverEngrave glissandi.
Music types accepted:
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):
Grace_auto_beam_engraverGenerates one autobeam group across an entire grace phrase. As usual, any manual beaming or
\noBeamwill block autobeaming, just like setting the context property ‘autoBeaming’ to##f.Music types accepted:
Properties (read)
autoBeaming(boolean)If set to true then beams are generated automatically.
This engraver creates the following layout object(s):
Beam.
Grace_beam_engraverHandle
Beamevents 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:
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
baseMomentpositions by only drawing one beam over the beat.This engraver creates the following layout object(s):
Beam.
Grace_engraverSet 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-propertyfunction.Grob_pq_engraverAdministrate 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_engraverCreate 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):
Laissez_vibrer_engraverCreate laissez vibrer items.
Music types accepted:
This engraver creates the following layout object(s):
Ligature_bracket_engraverHandle
Ligature_eventsby engravingLigaturebrackets.Music types accepted:
This engraver creates the following layout object(s):
Multi_measure_rest_engraverEngrave multi-measure rests that are produced with ‘R’. It reads
measurePositionandinternalBarNumberto 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 (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.
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):
MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript and MultiMeasureRestText.
New_fingering_engraverCreate 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_engraverEngrave a line between two note heads in a staff switch if
followVoiceis 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):
Note_heads_engraverGenerate 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
middleCClefPositionandmiddleCOffset.staffLineLayoutFunction(procedure)Layout of staff lines,
traditional, orsemitone.This engraver creates the following layout object(s):
Note_spacing_engraverGenerate
NoteSpacing, an object linking horizontal lines for use in spacing.This engraver creates the following layout object(s):
Output_property_engraverApply a procedure to any grob acknowledged.
Music types accepted:
Part_combine_engraverPart 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):
Percent_repeat_engraverMake whole measure repeats.
Music types accepted:
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
countPercentRepeatsis set.This engraver creates the following layout object(s):
Phrasing_slur_engraverPrint phrasing slurs. Similar to Slur_engraver.
Music types accepted:
note-event and phrasing-slur-event
This engraver creates the following layout object(s):
Pitched_trill_engraverPrint the bracketed note head after a note head with trill.
This engraver creates the following layout object(s):
Repeat_tie_engraverCreate repeat ties.
Music types accepted:
This engraver creates the following layout object(s):
RepeatTie and RepeatTieColumn.
Rest_engraverEngrave rests.
Music types accepted:
Properties (read)
middleCPosition(number)The place of the middle C, measured in half staff-spaces. Usually determined by looking at
middleCClefPositionandmiddleCOffset.This engraver creates the following layout object(s):
Rest.
Rhythmic_column_engraverGenerate
NoteColumn, an object that groups stems, note heads, and rests.This engraver creates the following layout object(s):
Script_column_engraverFind potentially colliding scripts and put them into a
ScriptColumnobject; that will fix the collisions.This engraver creates the following layout object(s):
Script_engraverHandle note scripted articulations.
Music types accepted:
Properties (read)
scriptDefinitions(list)The description of scripts. This is used by the
Script_engraverfor typesetting note-superscripts and subscripts. See ‘scm/script.scm’ for more information.This engraver creates the following layout object(s):
Slash_repeat_engraverMake beat repeats.
Music types accepted:
This engraver creates the following layout object(s):
Slur_engraverBuild 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_engraverForbid breaks in certain spanners.
Stem_engraverCreate 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)
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.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):
Flag, Stem, StemStub and StemTremolo.
Text_engraverCreate text scripts.
Music types accepted:
This engraver creates the following layout object(s):
Text_spanner_engraverCreate text spanner from an event.
Music types accepted:
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):
Tie_engraverGenerate 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):
Trill_spanner_engraverCreate trill spanner from an event.
Music types accepted:
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):
Tuplet_engraverCatch tuplet events and generate appropriate bracket.
Music types accepted:
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):
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated by gub on July 13, 2020 using texi2html 1.82.