LilyPond – Internals Reference

This manual is a technical reference for all internal elements used by LilyPond version 2.25.19 and all Scheme functions it provides. This information can be used to create tweaks and extensions, from simple output settings to advanced Scheme programming.

For more information about how this manual fits with the other documentation, or to read this manual in other formats, see Manuals.

If you are missing any manuals, the complete documentation can be found at https://lilypond.org/.

This document is also available as a PDF and as a HTML indexed multiple pages.


1 Music definitions


1.1 Music expressions


1.1.1 AbsoluteDynamicEvent

Create a dynamic mark.

Syntax: note\x, where \x is a dynamic mark like \ppp or \sfz. A complete list is in file ly/dynamic-scripts-init.ly.

Event classes: absolute-dynamic-event, dynamic-event, music-event and StreamEvent.

Accepted by: Dynamic_engraver and Dynamic_performer.

Properties:

name (symbol):

'AbsoluteDynamicEvent

Name of this music object.

types (list):
'(post-event
   event
   dynamic-event
   absolute-dynamic-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.2 AdHocJumpEvent

Insert a JumpScript.

Syntax: \jump markup

Example: \jump "Gavotte I D.C."

Event classes: ad-hoc-jump-event, music-event and StreamEvent.

Accepted by: Bar_engraver and Jump_engraver.

Properties:

name (symbol):

'AdHocJumpEvent

Name of this music object.

types (list):
'(ad-hoc-jump-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.3 AdHocMarkEvent

Insert markup as a rehearsal mark without advancing the rehearsal mark sequence.

Syntax: \mark markup

Example: \mark "A"

Event classes: ad-hoc-mark-event, mark-event, music-event and StreamEvent.

Accepted by: Mark_tracking_translator.

Properties:

name (symbol):

'AdHocMarkEvent

Name of this music object.

types (list):
'(ad-hoc-mark-event mark-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.4 AlternativeEvent

Create an alternative event.

Event classes: alternative-event, music-event, StreamEvent and structural-event.

Accepted by: Timing_translator.

Properties:

name (symbol):

'AlternativeEvent

Name of this music object.

types (list):
'(alternative-event structural-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.5 AnnotateOutputEvent

Print an annotation of an output element.

Event classes: annotate-output-event, music-event and StreamEvent.

Accepted by: Balloon_engraver.

Properties:

name (symbol):

'AnnotateOutputEvent

Name of this music object.

types (list):
'(event annotate-output-event post-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.6 ApplyContext

Call the argument with the current context during interpreting phase.

Properties:

iterator-ctor (procedure):

ly:apply-context-iterator::constructor

Function to construct a music-event-iterator object for this music.

name (symbol):

'ApplyContext

Name of this music object.

types (list):
'(apply-context)

The types of this music object; determines by what engraver this music expression is processed.


1.1.7 ApplyOutputEvent

Call the argument with all current grobs during interpreting phase.

Syntax: \applyOutput #'context func

Arguments to func are 1. the grob, 2. the originating context, and 3. the context where func is called.

Event classes: apply-output-event, layout-instruction-event, music-event and StreamEvent.

Accepted by: Output_property_engraver.

Properties:

name (symbol):

'ApplyOutputEvent

Name of this music object.

types (list):
'(event apply-output-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.8 ArpeggioEvent

Make an arpeggio on this note.

Syntax: note-\arpeggio

Event classes: arpeggio-event, music-event and StreamEvent.

Accepted by: Arpeggio_engraver.

Properties:

name (symbol):

'ArpeggioEvent

Name of this music object.

types (list):
'(post-event arpeggio-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.9 ArticulationEvent

Add an articulation marking to a note.

Syntax: notexy, where x is a direction (^ for up or _ for down), or LilyPond’s choice (no direction specified), and where y is an articulation (such as -., ->, \tenuto, \downbow). See the Notation Reference for details.

Event classes: articulation-event, music-event, script-event and StreamEvent.

Accepted by: Beat_engraver, Beat_performer, Drum_note_performer, Note_performer and Script_engraver.

Properties:

name (symbol):

'ArticulationEvent

Name of this music object.

types (list):
'(post-event
   event
   articulation-event
   script-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.10 BarCheckEvent

Check whether this music coincides with the start of the measure.

Event classes: bar-check-event, music-event and StreamEvent.

Accepted by: Timing_translator.

Properties:

name (symbol):

'BarCheckEvent

Name of this music object.

types (list):
'(bar-check-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.11 BarEvent

Force a bar line.

Syntax: \bar type

Example: \bar "!"

Event classes: bar-event, music-event and StreamEvent.

Accepted by: Timing_translator.

Properties:

name (symbol):

'BarEvent

Name of this music object.

types (list):
'(bar-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.12 BassFigureEvent

Print a bass-figure text.

Event classes: bass-figure-event, music-event, rhythmic-event and StreamEvent.

Accepted by: Figured_bass_engraver.

Properties:

name (symbol):

'BassFigureEvent

Name of this music object.

types (list):
'(event rhythmic-event bass-figure-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.13 BeamEvent

Start or stop a beam.

Syntax for manual control: c8-[ c c-] c8

Event classes: beam-event, music-event, span-event and StreamEvent.

Accepted by: Beam_engraver, Beam_performer and Grace_beam_engraver.

Properties:

name (symbol):

'BeamEvent

Name of this music object.

types (list):
'(post-event event beam-event span-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.14 BeamForbidEvent

Specify that a note may not auto-beamed.

Event classes: beam-forbid-event, music-event and StreamEvent.

Accepted by: Auto_beam_engraver and Grace_auto_beam_engraver.

Properties:

name (symbol):

'BeamForbidEvent

Name of this music object.

types (list):
'(post-event event beam-forbid-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.15 BendAfterEvent

A drop/fall/doit jazz articulation.

Event classes: bend-after-event, music-event and StreamEvent.

Accepted by: Bend_engraver.

Properties:

name (symbol):

'BendAfterEvent

Name of this music object.

types (list):
'(post-event bend-after-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.16 BendSpanEvent

Used to signal where a bend spanner starts and stops.

Event classes: bend-span-event, music-event, span-event and StreamEvent.

Accepted by: Bend_spanner_engraver.

Properties:

name (symbol):

'BendSpanEvent

Name of this music object.

types (list):
'(bend-span-event post-event span-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.17 BreakDynamicSpanEvent

End an alignment spanner for dynamics here.

Event classes: break-dynamic-span-event, break-span-event, music-event and StreamEvent.

Accepted by: Dynamic_engraver.

Properties:

name (symbol):

'BreakDynamicSpanEvent

Name of this music object.

types (list):
'(post-event
   break-span-event
   break-dynamic-span-event
   event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.18 BreathingEvent

A short span of silence that shortens the previous note.

Syntax: note\breathe

Event classes: breathing-event, music-event and StreamEvent.

Accepted by: Breathing_sign_engraver and Note_performer.

Properties:

midi-length (procedure):

breathe::midi-length

Function to determine how long to play a note in MIDI. It should take a moment (the written length of the note) and a context, and return a moment (the length to play the note).

name (symbol):

'BreathingEvent

Name of this music object.

types (list):
'(event breathing-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.19 CaesuraEvent

A short span of silence that does not shorten the previous note.

Syntax: note\caesura

Event classes: caesura-event, music-event and StreamEvent.

Accepted by: Bar_engraver, Caesura_engraver and Divisio_engraver.

Properties:

name (symbol):

'CaesuraEvent

Name of this music object.

types (list):
'(caesura-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.20 ClusterNoteEvent

A note that is part of a cluster.

Event classes: cluster-note-event, melodic-event, music-event, rhythmic-event and StreamEvent.

Accepted by: Cluster_spanner_engraver.

Properties:

iterator-ctor (procedure):

ly:rhythmic-music-iterator::constructor

Function to construct a music-event-iterator object for this music.

name (symbol):

'ClusterNoteEvent

Name of this music object.

types (list):
'(cluster-note-event
   melodic-event
   rhythmic-event
   event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.21 CodaMarkEvent

Add a coda mark.

Event classes: coda-mark-event, music-event, StreamEvent and structural-event.

Accepted by: Bar_engraver and Mark_tracking_translator.

Properties:

name (symbol):

'CodaMarkEvent

Name of this music object.

types (list):
'(coda-mark-event structural-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.22 CompletizeExtenderEvent

Used internally to signal the end of a lyrics block to ensure extenders are completed correctly when a Lyrics context ends before its associated Voice context.

Event classes: completize-extender-event, music-event and StreamEvent.

Accepted by: Extender_engraver.

Properties:

name (symbol):

'CompletizeExtenderEvent

Name of this music object.

types (list):
'(completize-extender-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.23 ContextChange

Change staves in Piano staff.

Syntax: \change Staff = new-id

Properties:

iterator-ctor (procedure):

ly:change-iterator::constructor

Function to construct a music-event-iterator object for this music.

name (symbol):

'ContextChange

Name of this music object.

types (list):
'(translator-change-instruction)

The types of this music object; determines by what engraver this music expression is processed.


1.1.24 ContextSpeccedMusic

Interpret the argument music within a specific context.

Properties:

iterator-ctor (procedure):

ly:context-specced-music-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:music-wrapper::length-callback

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'ContextSpeccedMusic

Name of this music object.

start-callback (procedure):

ly:music-wrapper::start-callback

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

types (list):
'(context-specification music-wrapper-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.25 CrescendoEvent

Begin or end a crescendo.

Syntax: note\<note\!

An alternative syntax is note\crnote\endcr.

Event classes: crescendo-event, music-event, span-dynamic-event, span-event and StreamEvent.

Accepted by: Dynamic_engraver and Dynamic_performer.

Properties:

name (symbol):

'CrescendoEvent

Name of this music object.

types (list):
'(post-event
   span-event
   span-dynamic-event
   crescendo-event
   event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.26 DalSegnoEvent

Add a D.S. or similar instruction.

Event classes: dal-segno-event, music-event, StreamEvent and structural-event.

Accepted by: Bar_engraver, Jump_engraver and Volta_engraver.

Properties:

name (symbol):

'DalSegnoEvent

Name of this music object.

types (list):
'(dal-segno-event structural-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.27 DecrescendoEvent

Begin or end a decrescendo.

Syntax: note\>note\!

An alternative syntax is note\decrnote\enddecr.

Event classes: decrescendo-event, music-event, span-dynamic-event, span-event and StreamEvent.

Accepted by: Dynamic_engraver and Dynamic_performer.

Properties:

name (symbol):

'DecrescendoEvent

Name of this music object.

types (list):
'(post-event
   span-event
   span-dynamic-event
   decrescendo-event
   event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.28 DoublePercentEvent

Used internally to signal double percent repeats.

Event classes: double-percent-event, music-event, rhythmic-event and StreamEvent.

Accepted by: Double_percent_repeat_engraver.

Properties:

name (symbol):

'DoublePercentEvent

Name of this music object.

types (list):
'(event double-percent-event rhythmic-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.29 DurationLineEvent

Initiate a duration line.

Syntax: note\-

Event classes: duration-line-event, music-event and StreamEvent.

Accepted by: Duration_line_engraver.

Properties:

name (symbol):

'DurationLineEvent

Name of this music object.

types (list):
'(duration-line-event post-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.30 EpisemaEvent

Begin or end an episema.

Event classes: episema-event, music-event, span-event and StreamEvent.

Accepted by: Episema_engraver.

Properties:

name (symbol):

'EpisemaEvent

Name of this music object.

types (list):
'(post-event span-event event episema-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.31 Event

Atomic music event.

Properties:

name (symbol):

'Event

Name of this music object.

types (list):
'(event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.32 EventChord

Explicitly entered chords.

When iterated, elements are converted to events at the current timestep, followed by any articulations. Per-chord postevents attached by the parser just follow any rhythmic events in elements instead of utilizing articulations.

An unexpanded chord repetition ‘q’ is recognizable by having its duration stored in duration.

Properties:

iterator-ctor (procedure):

ly:event-chord-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:music-sequence::event-chord-length-callback

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'EventChord

Name of this music object.

to-relative-callback (procedure):

ly:music-sequence::event-chord-relative-callback

How to transform a piece of music to relative pitches.

types (list):
'(event-chord simultaneous-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.33 ExtenderEvent

Extend lyrics.

Event classes: extender-event, music-event and StreamEvent.

Accepted by: Extender_engraver.

Properties:

name (symbol):

'ExtenderEvent

Name of this music object.

types (list):
'(post-event extender-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.34 FineEvent

End the performance, not necessarily at the written end of the music.

Event classes: fine-event, music-event, StreamEvent and structural-event.

Accepted by: Bar_engraver, Divisio_engraver, Jump_engraver, Timing_translator and Volta_engraver.

Properties:

iterator-ctor (procedure):

ly:fine-iterator::constructor

Function to construct a music-event-iterator object for this music.

name (symbol):

'FineEvent

Name of this music object.

types (list):
'(fine-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.35 FingerGlideEvent

Initiate a line connecting two equal fingerings. This line represents a finger gliding on a string.

Syntax: note\glide-finger

Event classes: finger-glide-event, music-event, span-event and StreamEvent.

Not accepted by any engraver or performer.

Properties:

name (symbol):

'FingerGlideEvent

Name of this music object.

types (list):
'(finger-glide-event post-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.36 FingeringEvent

Specify what finger to use for this note.

Event classes: fingering-event, music-event and StreamEvent.

Accepted by: Fingering_engraver, Fretboard_engraver and Tab_note_heads_engraver.

Properties:

name (symbol):

'FingeringEvent

Name of this music object.

types (list):
'(post-event fingering-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.37 FootnoteEvent

Footnote a grob.

Event classes: footnote-event, music-event and StreamEvent.

Not accepted by any engraver or performer.

Properties:

name (symbol):

'FootnoteEvent

Name of this music object.

types (list):
'(event footnote-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.38 GlissandoEvent

Start a glissando on this note.

Event classes: glissando-event, music-event and StreamEvent.

Accepted by: Glissando_engraver.

Properties:

name (symbol):

'GlissandoEvent

Name of this music object.

types (list):
'(post-event glissando-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.39 GraceMusic

Interpret the argument as grace notes.

Properties:

iterator-ctor (procedure):

ly:grace-iterator::constructor

Function to construct a music-event-iterator object for this music.

length (moment):

#<Mom 0>

The endpoint of this music. This property is unhappily named in that it does not account for any initial grace notes: the full length of the music is length minus the start time. A value of INF-MOMENT indicates indefinite length.

name (symbol):

'GraceMusic

Name of this music object.

start-callback (procedure):

ly:grace-music::start-callback

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

types (list):
'(grace-music music-wrapper-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.40 HarmonicEvent

Mark a note as harmonic.

Event classes: harmonic-event, music-event and StreamEvent.

Not accepted by any engraver or performer.

Properties:

name (symbol):

'HarmonicEvent

Name of this music object.

types (list):
'(post-event event harmonic-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.41 HyphenEvent

A hyphen between lyric syllables.

Event classes: hyphen-event, music-event and StreamEvent.

Accepted by: Hyphen_engraver.

Properties:

name (symbol):

'HyphenEvent

Name of this music object.

types (list):
'(post-event hyphen-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.42 InitialContextMusic

Enter the initial context of the argument and ignore the rest of it.

Syntax: \initialContextFrom music

Properties:

iterator-ctor (procedure):

ly:initial-context-music-iterator::constructor

Function to construct a music-event-iterator object for this music.

length (moment):

#<Mom 0>

The endpoint of this music. This property is unhappily named in that it does not account for any initial grace notes: the full length of the music is length minus the start time. A value of INF-MOMENT indicates indefinite length.

name (symbol):

'InitialContextMusic

Name of this music object.

to-relative-callback (procedure):

ly:relative-octave-music::no-relative-callback

How to transform a piece of music to relative pitches.

types (list):
'(initial-context-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.43 KeyChangeEvent

Change the key signature.

Syntax: \key name scale

Event classes: key-change-event, music-event and StreamEvent.

Accepted by: Key_engraver and Key_performer.

Properties:

name (symbol):

'KeyChangeEvent

Name of this music object.

to-relative-callback (procedure):

#<procedure at lily/define-music-types.scm:337:33 (x p)>

How to transform a piece of music to relative pitches.

types (list):
'(key-change-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.44 LabelEvent

Place a bookmarking label.

Event classes: label-event, music-event and StreamEvent.

Accepted by: Paper_column_engraver.

Properties:

name (symbol):

'LabelEvent

Name of this music object.

types (list):
'(label-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.45 LaissezVibrerEvent

Don’t damp this chord.

Syntax: note\laissezVibrer

Event classes: laissez-vibrer-event, music-event and StreamEvent.

Accepted by: Laissez_vibrer_engraver.

Properties:

name (symbol):

'LaissezVibrerEvent

Name of this music object.

types (list):
'(post-event event laissez-vibrer-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.46 LigatureEvent

Start or end a ligature.

Event classes: ligature-event, music-event, span-event and StreamEvent.

Accepted by: Kievan_ligature_engraver, Ligature_bracket_engraver, Mensural_ligature_engraver and Vaticana_ligature_engraver.

Properties:

name (symbol):

'LigatureEvent

Name of this music object.

types (list):
'(span-event ligature-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.47 LineBreakEvent

Allow, forbid or force a line break.

Event classes: break-event, line-break-event, music-event and StreamEvent.

Accepted by: Page_turn_engraver and Paper_column_engraver.

Properties:

name (symbol):

'LineBreakEvent

Name of this music object.

types (list):
'(line-break-event break-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.48 LyricCombineMusic

Align lyrics to the start of notes.

Syntax: \lyricsto voicename lyrics

Properties:

iterator-ctor (procedure):

ly:lyric-combine-music-iterator::constructor

Function to construct a music-event-iterator object for this music.

length (moment):

#<Mom infinity>

The endpoint of this music. This property is unhappily named in that it does not account for any initial grace notes: the full length of the music is length minus the start time. A value of INF-MOMENT indicates indefinite length.

name (symbol):

'LyricCombineMusic

Name of this music object.

types (list):
'(lyric-combine-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.49 LyricEvent

A lyric syllable. Must be entered in lyrics mode, i.e., \lyrics { twinkle4 twinkle4 } .

Event classes: lyric-event, music-event, rhythmic-event and StreamEvent.

Accepted by: Lyric_engraver and Lyric_performer.

Properties:

iterator-ctor (procedure):

ly:rhythmic-music-iterator::constructor

Function to construct a music-event-iterator object for this music.

name (symbol):

'LyricEvent

Name of this music object.

types (list):
'(rhythmic-event lyric-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.50 MeasureCounterEvent

Used to signal the start and end of a measure count.

Event classes: measure-counter-event, music-event, span-event and StreamEvent.

Accepted by: Measure_counter_engraver.

Properties:

name (symbol):

'MeasureCounterEvent

Name of this music object.

types (list):
'(measure-counter-event span-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.51 MeasureSpannerEvent

Used to signal the start and end of a measure spanner.

Event classes: measure-spanner-event, music-event, span-event and StreamEvent.

Accepted by: Measure_spanner_engraver.

Properties:

name (symbol):

'MeasureSpannerEvent

Name of this music object.

types (list):
'(measure-spanner-event span-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.52 MultiMeasureArticulationEvent

Articulations on multi-measure rests.

Event classes: multi-measure-articulation-event, music-event and StreamEvent.

Accepted by: Multi_measure_rest_engraver.

Properties:

name (symbol):

'MultiMeasureArticulationEvent

Name of this music object.

types (list):
'(post-event
   event
   multi-measure-articulation-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.53 MultiMeasureRestEvent

Used internally by MultiMeasureRestMusic to signal rests.

Event classes: general-rest-event, multi-measure-rest-event, music-event, rhythmic-event and StreamEvent.

Accepted by: Current_chord_text_engraver and Multi_measure_rest_engraver.

Properties:

iterator-ctor (procedure):

ly:rhythmic-music-iterator::constructor

Function to construct a music-event-iterator object for this music.

name (symbol):

'MultiMeasureRestEvent

Name of this music object.

types (list):
'(event rhythmic-event
        general-rest-event
        multi-measure-rest-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.54 MultiMeasureRestMusic

Rests that may be compressed into multi-measure rests.

Syntax: R2.*4 for 4 measures in 3/4 time.

Properties:

elements-callback (procedure):

mm-rest-child-list

Return a list of children, for use by a sequential iterator. Takes a single music parameter.

iterator-ctor (procedure):

ly:sequential-iterator::constructor

Function to construct a music-event-iterator object for this music.

name (symbol):

'MultiMeasureRestMusic

Name of this music object.

types (list):
'(multi-measure-rest)

The types of this music object; determines by what engraver this music expression is processed.


1.1.55 MultiMeasureTextEvent

Texts on multi-measure rests.

Syntax: R-\markup { "bla" }

Event classes: multi-measure-text-event, music-event and StreamEvent.

Accepted by: Multi_measure_rest_engraver.

Properties:

name (symbol):

'MultiMeasureTextEvent

Name of this music object.

types (list):
'(post-event event multi-measure-text-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.56 Music

Generic type for music expressions.

Properties:

name (symbol):

'Music

Name of this music object.

types (list):

'()

The types of this music object; determines by what engraver this music expression is processed.


1.1.57 NoteEvent

A note.

Outside of chords, any events in articulations with a listener are broadcast like chord articulations, the others are retained.

For iteration inside of chords, See EventChord.

Event classes: melodic-event, music-event, note-event, rhythmic-event and StreamEvent.

Accepted by: Beat_engraver, Beat_performer, Bend_spanner_engraver, Completion_heads_engraver, Current_chord_text_engraver, Drum_note_performer, Drum_notes_engraver, Finger_glide_engraver, Fretboard_engraver, Note_heads_engraver, Note_name_engraver, Note_performer, Part_combine_engraver, Phrasing_slur_engraver, Slur_engraver and Tab_note_heads_engraver.

Properties:

iterator-ctor (procedure):

ly:rhythmic-music-iterator::constructor

Function to construct a music-event-iterator object for this music.

name (symbol):

'NoteEvent

Name of this music object.

types (list):
'(event note-event rhythmic-event melodic-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.58 NoteGroupingEvent

Start or stop grouping brackets.

Event classes: music-event, note-grouping-event and StreamEvent.

Accepted by: Horizontal_bracket_engraver.

Properties:

name (symbol):

'NoteGroupingEvent

Name of this music object.

types (list):
'(post-event event note-grouping-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.59 OttavaEvent

Start or stop an ottava bracket.

Event classes: music-event, ottava-event and StreamEvent.

Accepted by: Ottava_spanner_engraver.

Properties:

name (symbol):

'OttavaEvent

Name of this music object.

types (list):
'(ottava-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.60 OverrideProperty

Extend the definition of a graphical object.

Syntax: \override [ context . ] object property = value

Properties:

iterator-ctor (procedure):

ly:push-property-iterator::constructor

Function to construct a music-event-iterator object for this music.

name (symbol):

'OverrideProperty

Name of this music object.

types (list):
'(layout-instruction-event
   override-property-event)

The types of this music object; determines by what engraver this music expression is processed.

untransposable (boolean):

#t

If set, this music is not transposed.


1.1.61 PageBreakEvent

Allow, forbid or force a page break.

Event classes: break-event, music-event, page-break-event and StreamEvent.

Accepted by: Page_turn_engraver and Paper_column_engraver.

Properties:

name (symbol):

'PageBreakEvent

Name of this music object.

types (list):
'(break-event page-break-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.62 PageTurnEvent

Allow, forbid or force a page turn.

Event classes: break-event, music-event, page-turn-event and StreamEvent.

Accepted by: Page_turn_engraver and Paper_column_engraver.

Properties:

name (symbol):

'PageTurnEvent

Name of this music object.

types (list):
'(break-event page-turn-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.63 PartCombineMusic

Combine two parts on a staff, either merged or as separate voices.

Properties:

iterator-ctor (procedure):

ly:part-combine-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:music-sequence::maximum-length-callback

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'PartCombineMusic

Name of this music object.

start-callback (procedure):

ly:music-sequence::minimum-start-callback

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

types (list):
'(part-combine-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.64 PartialEvent

An event announcing a partial measure.

Event classes: music-event, partial-event and StreamEvent.

Accepted by: Timing_translator.

Properties:

name (symbol):

'PartialEvent

Name of this music object.

types (list):
'(partial-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.65 PartialSet

Create an anacrusis or upbeat (partial measure).

Properties:

elements-callback (procedure):

make-partial-set

Return a list of children, for use by a sequential iterator. Takes a single music parameter.

iterator-ctor (procedure):

ly:sequential-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:music-sequence::cumulative-length-callback

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'PartialSet

Name of this music object.

types (list):
'(partial-set)

The types of this music object; determines by what engraver this music expression is processed.


1.1.66 PercentEvent

Used internally to signal percent repeats.

Event classes: music-event, percent-event and StreamEvent.

Accepted by: Percent_repeat_engraver.

Properties:

name (symbol):

'PercentEvent

Name of this music object.

types (list):
'(event percent-event rhythmic-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.67 PercentRepeatedMusic

Repeats encoded by percents and slashes.

Properties:

elements-callback (procedure):

make-percent-set

Return a list of children, for use by a sequential iterator. Takes a single music parameter.

iterator-ctor (procedure):

ly:percent-repeat-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:calculated-sequential-music::length

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'PercentRepeatedMusic

Name of this music object.

start-callback (procedure):

ly:calculated-sequential-music::start

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

types (list):
'(repeated-music percent-repeated-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.68 PesOrFlexaEvent

Within a ligature, mark the previous and the following note to form a pes (if melody goes up) or a flexa (if melody goes down).

Event classes: music-event, pes-or-flexa-event and StreamEvent.

Accepted by: Vaticana_ligature_engraver.

Properties:

name (symbol):

'PesOrFlexaEvent

Name of this music object.

types (list):
'(pes-or-flexa-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.69 PhrasingSlurEvent

Start or end phrasing slur.

Syntax: note\( and note\)

Event classes: music-event, phrasing-slur-event, span-event and StreamEvent.

Accepted by: Phrasing_slur_engraver.

Properties:

name (symbol):

'PhrasingSlurEvent

Name of this music object.

types (list):
'(post-event span-event event phrasing-slur-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.70 PostEvents

Container for several postevents.

This can be used to package several events into a single one. Should not be seen outside of the parser.

Properties:

name (symbol):

'PostEvents

Name of this music object.

types (list):
'(post-event post-event-wrapper)

The types of this music object; determines by what engraver this music expression is processed.


1.1.71 PropertySet

Set a context property.

Syntax: \set context.prop = scheme-val

Properties:

iterator-ctor (procedure):

ly:property-iterator::constructor

Function to construct a music-event-iterator object for this music.

name (symbol):

'PropertySet

Name of this music object.

types (list):
'(layout-instruction-event)

The types of this music object; determines by what engraver this music expression is processed.

untransposable (boolean):

#t

If set, this music is not transposed.


1.1.72 PropertyUnset

Restore the default setting for a context property. See PropertySet.

Syntax: \unset context.prop

Properties:

iterator-ctor (procedure):

ly:property-unset-iterator::constructor

Function to construct a music-event-iterator object for this music.

name (symbol):

'PropertyUnset

Name of this music object.

types (list):
'(layout-instruction-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.73 QuoteMusic

Quote preprocessed snippets of music.

Properties:

iterator-ctor (procedure):

ly:music-wrapper-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:music-wrapper::length-callback

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'QuoteMusic

Name of this music object.

start-callback (procedure):

ly:music-wrapper::start-callback

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

types (list):
'(music-wrapper-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.74 RehearsalMarkEvent

Insert a rehearsal mark.

Syntax: \mark marker

Example: \mark 3

Event classes: mark-event, music-event, rehearsal-mark-event and StreamEvent.

Accepted by: Mark_tracking_translator.

Properties:

name (symbol):

'RehearsalMarkEvent

Name of this music object.

types (list):
'(rehearsal-mark-event mark-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.75 RelativeOctaveCheck

Check if a pitch is in the correct octave.

Properties:

name (symbol):

'RelativeOctaveCheck

Name of this music object.

to-relative-callback (procedure):

ly:relative-octave-check::relative-callback

How to transform a piece of music to relative pitches.

types (list):
'(relative-octave-check)

The types of this music object; determines by what engraver this music expression is processed.


1.1.76 RelativeOctaveMusic

Music in which the assignment of octaves is complete.

Properties:

iterator-ctor (procedure):

ly:music-wrapper-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:music-wrapper::length-callback

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'RelativeOctaveMusic

Name of this music object.

start-callback (procedure):

ly:music-wrapper::start-callback

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

to-relative-callback (procedure):

ly:relative-octave-music::relative-callback

How to transform a piece of music to relative pitches.

types (list):
'(music-wrapper-music relative-octave-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.77 RepeatSlashEvent

Used internally to signal beat repeats.

Event classes: music-event, repeat-slash-event, rhythmic-event and StreamEvent.

Accepted by: Slash_repeat_engraver.

Properties:

name (symbol):

'RepeatSlashEvent

Name of this music object.

types (list):
'(event repeat-slash-event rhythmic-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.78 RepeatTieEvent

Ties for starting a second volta bracket.

Event classes: music-event, repeat-tie-event and StreamEvent.

Accepted by: Repeat_tie_engraver.

Properties:

name (symbol):

'RepeatTieEvent

Name of this music object.

types (list):
'(post-event event repeat-tie-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.79 RestEvent

A Rest.

Syntax: r4 for a quarter rest.

Event classes: general-rest-event, music-event, rest-event, rhythmic-event and StreamEvent.

Accepted by: Completion_rest_engraver, Current_chord_text_engraver, Figured_bass_engraver and Rest_engraver.

Properties:

iterator-ctor (procedure):

ly:rhythmic-music-iterator::constructor

Function to construct a music-event-iterator object for this music.

name (symbol):

'RestEvent

Name of this music object.

types (list):
'(event rhythmic-event
        general-rest-event
        rest-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.80 RevertProperty

The opposite of OverrideProperty: remove a previously added property from a graphical object definition.

Properties:

iterator-ctor (procedure):

ly:pop-property-iterator::constructor

Function to construct a music-event-iterator object for this music.

name (symbol):

'RevertProperty

Name of this music object.

types (list):
'(layout-instruction-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.81 ScriptEvent

Add an articulation mark to a note.

Event classes: music-event, script-event and StreamEvent.

Not accepted by any engraver or performer.

Properties:

name (symbol):

'ScriptEvent

Name of this music object.

types (list):
'(event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.82 SectionEvent

Add a section division, which is typically written as a thin double bar line.

Event classes: music-event, section-event, StreamEvent and structural-event.

Accepted by: Bar_engraver and Divisio_engraver.

Properties:

name (symbol):

'SectionEvent

Name of this music object.

types (list):
'(section-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.83 SectionLabelEvent

Mark the beginning of a named passage. Does not imply a section division.

Event classes: music-event, section-label-event and StreamEvent.

Accepted by: Mark_tracking_translator.

Properties:

name (symbol):

'SectionLabelEvent

Name of this music object.

types (list):
'(section-label-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.84 SegnoMarkEvent

Add a segno mark or bar line.

Event classes: music-event, segno-mark-event, StreamEvent and structural-event.

Accepted by: Bar_engraver and Mark_tracking_translator.

Properties:

name (symbol):

'SegnoMarkEvent

Name of this music object.

types (list):
'(segno-mark-event structural-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.85 SegnoRepeatedMusic

Repeats with alternatives placed sequentially and marked with segno, Coda, D.C., etc.

Properties:

elements-callback (procedure):

make-volta-set

Return a list of children, for use by a sequential iterator. Takes a single music parameter.

iterator-ctor (procedure):

ly:volta-repeat-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:calculated-sequential-music::length

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'SegnoRepeatedMusic

Name of this music object.

start-callback (procedure):

ly:calculated-sequential-music::start

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

types (list):
'(segno-repeated-music
   folded-repeated-music
   repeated-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.86 SequentialAlternativeMusic

Repeat alternatives in sequence.

Syntax: \alternative { alternatives }

Properties:

elements-callback (procedure):

#<procedure at lily/define-music-types.scm:636:30 (m)>

Return a list of children, for use by a sequential iterator. Takes a single music parameter.

iterator-ctor (procedure):

ly:alternative-sequence-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:music-sequence::cumulative-length-callback

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'SequentialAlternativeMusic

Name of this music object.

start-callback (procedure):

ly:music-sequence::first-start-callback

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

types (list):
'(sequential-music sequential-alternative-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.87 SequentialMusic

Music expressions concatenated.

Syntax: \sequential { … } or simply { … }

Properties:

elements-callback (procedure):

#<procedure at lily/define-music-types.scm:649:30 (m)>

Return a list of children, for use by a sequential iterator. Takes a single music parameter.

iterator-ctor (procedure):

ly:sequential-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:music-sequence::cumulative-length-callback

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'SequentialMusic

Name of this music object.

start-callback (procedure):

ly:music-sequence::first-start-callback

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

types (list):
'(sequential-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.88 SimultaneousMusic

Music playing together.

Syntax: \simultaneous { … } or << … >>

Properties:

iterator-ctor (procedure):

ly:simultaneous-music-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:music-sequence::maximum-length-callback

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'SimultaneousMusic

Name of this music object.

start-callback (procedure):

ly:music-sequence::minimum-start-callback

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

to-relative-callback (procedure):

ly:music-sequence::simultaneous-relative-callback

How to transform a piece of music to relative pitches.

types (list):
'(simultaneous-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.89 SkipEvent

Filler that takes up duration, but does not print anything.

Syntax: s4 for a skip equivalent to a quarter rest.

Event classes: music-event, rhythmic-event, skip-event and StreamEvent.

Not accepted by any engraver or performer.

Properties:

iterator-ctor (procedure):

ly:rhythmic-music-iterator::constructor

Function to construct a music-event-iterator object for this music.

name (symbol):

'SkipEvent

Name of this music object.

types (list):
'(event rhythmic-event skip-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.90 SkipMusic

Filler that takes up duration, does not print anything, and also does not create staves or voices implicitly.

Syntax: \skip duration

Properties:

iterator-ctor (procedure):

ly:simple-music-iterator::constructor

Function to construct a music-event-iterator object for this music.

name (symbol):

'SkipMusic

Name of this music object.

types (list):
'(event skip-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.91 SkippedMusic

Filler that takes up duration, does not print anything, and also does not create staves or voices implicitly.

Syntax: \skip music

Properties:

iterator-ctor (procedure):

ly:simple-music-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:music-wrapper::length-callback

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'SkippedMusic

Name of this music object.

start-callback (procedure):

ly:music-wrapper::start-callback

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

types (list):
'(skipped-music music-wrapper-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.92 SlurEvent

Start or end slur.

Syntax: note( and note)

Event classes: music-event, slur-event, span-event and StreamEvent.

Accepted by: Slur_engraver and Slur_performer.

Properties:

name (symbol):

'SlurEvent

Name of this music object.

types (list):
'(post-event span-event event slur-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.93 SoloOneEvent

Print ‘Solo 1’.

Event classes: music-event, part-combine-event, solo-one-event and StreamEvent.

Accepted by: Part_combine_engraver.

Properties:

name (symbol):

'SoloOneEvent

Name of this music object.

part-combine-status (symbol):

'solo1

Change to what kind of state? Options are solo1, solo2 and unisono.

types (list):
'(event part-combine-event solo-one-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.94 SoloTwoEvent

Print ‘Solo 2’.

Event classes: music-event, part-combine-event, solo-two-event and StreamEvent.

Accepted by: Part_combine_engraver.

Properties:

name (symbol):

'SoloTwoEvent

Name of this music object.

part-combine-status (symbol):

'solo2

Change to what kind of state? Options are solo1, solo2 and unisono.

types (list):
'(event part-combine-event solo-two-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.95 SostenutoEvent

Depress or release sostenuto pedal.

Event classes: music-event, pedal-event, sostenuto-event, span-event and StreamEvent.

Accepted by: Piano_pedal_engraver and Piano_pedal_performer.

Properties:

name (symbol):

'SostenutoEvent

Name of this music object.

types (list):
'(post-event event pedal-event sostenuto-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.96 SpacingSectionEvent

Start a new spacing section.

Event classes: music-event, spacing-section-event and StreamEvent.

Accepted by: Spacing_engraver.

Properties:

name (symbol):

'SpacingSectionEvent

Name of this music object.

types (list):
'(event spacing-section-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.97 SpanEvent

Event for anything that is started at a different time than stopped.

Event classes: music-event, span-event and StreamEvent.

Not accepted by any engraver or performer.

Properties:

name (symbol):

'SpanEvent

Name of this music object.

types (list):
'(event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.98 StaffHighlightEvent

Start or stop a staff highlight.

Syntax: \staffHighlight, \stopStaffHighlight.

Event classes: music-event, span-event, staff-highlight-event and StreamEvent.

Accepted by: Staff_highlight_engraver.

Properties:

name (symbol):

'StaffHighlightEvent

Name of this music object.

types (list):
'(staff-highlight-event span-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.99 StaffSpanEvent

Start or stop a staff symbol.

Event classes: music-event, span-event, staff-span-event and StreamEvent.

Accepted by: Staff_symbol_engraver.

Properties:

name (symbol):

'StaffSpanEvent

Name of this music object.

types (list):
'(event span-event staff-span-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.100 StringNumberEvent

Specify on which string to play this note.

Syntax: \number

Event classes: music-event, StreamEvent and string-number-event.

Accepted by: Bend_spanner_engraver, Fretboard_engraver and Tab_note_heads_engraver.

Properties:

name (symbol):

'StringNumberEvent

Name of this music object.

types (list):
'(post-event string-number-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.101 StrokeFingerEvent

Specify with which finger to pluck a string.

Syntax: \rightHandFinger text

Event classes: music-event, StreamEvent and stroke-finger-event.

Not accepted by any engraver or performer.

Properties:

name (symbol):

'StrokeFingerEvent

Name of this music object.

types (list):
'(post-event stroke-finger-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.102 SustainEvent

Depress or release sustain pedal.

Event classes: music-event, pedal-event, span-event, StreamEvent and sustain-event.

Accepted by: Piano_pedal_engraver and Piano_pedal_performer.

Properties:

name (symbol):

'SustainEvent

Name of this music object.

types (list):
'(post-event event pedal-event sustain-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.103 TempoChangeEvent

A metronome mark or tempo indication.

Event classes: music-event, StreamEvent and tempo-change-event.

Accepted by: Metronome_mark_engraver.

Properties:

name (symbol):

'TempoChangeEvent

Name of this music object.

types (list):
'(event tempo-change-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.104 TextMarkEvent

A textual mark.

Syntax: \textMark markup or \textEndMark markup.

Event classes: music-event, StreamEvent and text-mark-event.

Accepted by: Text_mark_engraver.

Properties:

name (symbol):

'TextMarkEvent

Name of this music object.

types (list):
'(text-mark-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.105 TextScriptEvent

Print text.

Event classes: music-event, script-event, StreamEvent and text-script-event.

Accepted by: Text_engraver.

Properties:

name (symbol):

'TextScriptEvent

Name of this music object.

types (list):
'(post-event script-event text-script-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.106 TextSpanEvent

Start a text spanner, for example, an octavation.

Event classes: music-event, span-event, StreamEvent and text-span-event.

Accepted by: Text_spanner_engraver.

Properties:

name (symbol):

'TextSpanEvent

Name of this music object.

types (list):
'(post-event span-event event text-span-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.107 TieEvent

A tie.

Syntax: note-~

Event classes: music-event, StreamEvent and tie-event.

Accepted by: Drum_note_performer, Note_performer, Tie_engraver and Tie_performer.

Properties:

name (symbol):

'TieEvent

Name of this music object.

types (list):
'(post-event tie-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.108 TimeScaledMusic

Multiply durations, as in tuplets.

Syntax: \times fraction music, e.g., \times 2/3 { … } for triplets.

Properties:

iterator-ctor (procedure):

ly:tuplet-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:music-wrapper::length-callback

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'TimeScaledMusic

Name of this music object.

start-callback (procedure):

ly:music-wrapper::start-callback

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

types (list):
'(time-scaled-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.109 TimeSignatureEvent

An event created when setting a new time signature

Event classes: music-event, StreamEvent and time-signature-event.

Accepted by: Time_signature_engraver and Time_signature_performer.

Properties:

name (symbol):

'TimeSignatureEvent

Name of this music object.

types (list):
'(event time-signature-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.110 TimeSignatureMusic

Set a new time signature

Properties:

elements-callback (procedure):

make-time-signature-set

Return a list of children, for use by a sequential iterator. Takes a single music parameter.

iterator-ctor (procedure):

ly:sequential-iterator::constructor

Function to construct a music-event-iterator object for this music.

name (symbol):

'TimeSignatureMusic

Name of this music object.

types (list):
'(time-signature-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.111 TransposedMusic

Music that has been transposed.

Properties:

iterator-ctor (procedure):

ly:music-wrapper-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:music-wrapper::length-callback

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'TransposedMusic

Name of this music object.

start-callback (procedure):

ly:music-wrapper::start-callback

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

to-relative-callback (procedure):

ly:relative-octave-music::no-relative-callback

How to transform a piece of music to relative pitches.

types (list):
'(music-wrapper-music transposed-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.112 TremoloEvent

Unmeasured tremolo.

Event classes: music-event, StreamEvent and tremolo-event.

Accepted by: Stem_engraver.

Properties:

name (symbol):

'TremoloEvent

Name of this music object.

types (list):
'(post-event event tremolo-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.113 TremoloRepeatedMusic

Repeated notes denoted by tremolo beams.

Properties:

elements-callback (procedure):

make-tremolo-set

Return a list of children, for use by a sequential iterator. Takes a single music parameter.

iterator-ctor (procedure):

ly:sequential-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:calculated-sequential-music::length

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'TremoloRepeatedMusic

Name of this music object.

start-callback (procedure):

ly:calculated-sequential-music::start

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

types (list):
'(repeated-music tremolo-repeated-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.114 TremoloSpanEvent

Tremolo over two stems.

Event classes: music-event, span-event, StreamEvent and tremolo-span-event.

Accepted by: Chord_tremolo_engraver.

Properties:

name (symbol):

'TremoloSpanEvent

Name of this music object.

types (list):
'(event span-event tremolo-span-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.115 TrillSpanEvent

Start a trill spanner.

Event classes: music-event, span-event, StreamEvent and trill-span-event.

Accepted by: Trill_spanner_engraver.

Properties:

name (symbol):

'TrillSpanEvent

Name of this music object.

types (list):
'(post-event span-event event trill-span-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.116 TupletSpanEvent

Used internally to signal where tuplet brackets start and stop.

Event classes: music-event, span-event, StreamEvent and tuplet-span-event.

Accepted by: Tuplet_engraver.

Properties:

name (symbol):

'TupletSpanEvent

Name of this music object.

types (list):
'(tuplet-span-event span-event event post-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.117 UnaCordaEvent

Depress or release una-corda pedal.

Event classes: music-event, pedal-event, span-event, StreamEvent and una-corda-event.

Accepted by: Piano_pedal_engraver and Piano_pedal_performer.

Properties:

name (symbol):

'UnaCordaEvent

Name of this music object.

types (list):
'(post-event event pedal-event una-corda-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.118 UnfoldedRepeatedMusic

Repeated music which is fully written (and played) out.

Properties:

elements-callback (procedure):

make-unfolded-set

Return a list of children, for use by a sequential iterator. Takes a single music parameter.

iterator-ctor (procedure):

ly:sequential-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:calculated-sequential-music::length

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'UnfoldedRepeatedMusic

Name of this music object.

start-callback (procedure):

ly:calculated-sequential-music::start

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

types (list):
'(repeated-music unfolded-repeated-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.119 UnfoldedSpeccedMusic

Music that appears once repeated music is unfolded.

Properties:

iterator-ctor (procedure):

ly:music-iterator::constructor

Function to construct a music-event-iterator object for this music.

length (moment):

#<Mom 0>

The endpoint of this music. This property is unhappily named in that it does not account for any initial grace notes: the full length of the music is length minus the start time. A value of INF-MOMENT indicates indefinite length.

name (symbol):

'UnfoldedSpeccedMusic

Name of this music object.

types (list):
'(unfolded-specification music-wrapper-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.120 UnisonoEvent

Print ‘a 2’.

Event classes: music-event, part-combine-event, StreamEvent and unisono-event.

Accepted by: Part_combine_engraver.

Properties:

name (symbol):

'UnisonoEvent

Name of this music object.

part-combine-status (symbol):

'unisono

Change to what kind of state? Options are solo1, solo2 and unisono.

types (list):
'(event part-combine-event unisono-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.121 UnrelativableMusic

Music that cannot be converted from relative to absolute notation. For example, transposed music.

Properties:

iterator-ctor (procedure):

ly:music-wrapper-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:music-wrapper::length-callback

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'UnrelativableMusic

Name of this music object.

start-callback (procedure):

ly:music-wrapper::start-callback

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

to-relative-callback (procedure):

ly:relative-octave-music::no-relative-callback

How to transform a piece of music to relative pitches.

types (list):
'(music-wrapper-music unrelativable-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.122 VoiceSeparator

Separate polyphonic voices in simultaneous music.

Syntax: \\

Properties:

name (symbol):

'VoiceSeparator

Name of this music object.

types (list):
'(separator)

The types of this music object; determines by what engraver this music expression is processed.


1.1.123 VoltaRepeatEndEvent

Signal the end of a volta-style repeat. Multiple end events per start event can be expected when there are alternative endings.

Event classes: music-event, StreamEvent, structural-event and volta-repeat-end-event.

Accepted by: Divisio_engraver, Lyric_repeat_count_engraver, Repeat_acknowledge_engraver and Signum_repetitionis_engraver.

Properties:

name (symbol):

'VoltaRepeatEndEvent

Name of this music object.

types (list):
'(volta-repeat-end-event structural-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.124 VoltaRepeatStartEvent

Signal the start of a volta-style repeat.

Event classes: music-event, StreamEvent, structural-event and volta-repeat-start-event.

Accepted by: Divisio_engraver and Repeat_acknowledge_engraver.

Properties:

name (symbol):

'VoltaRepeatStartEvent

Name of this music object.

types (list):
'(volta-repeat-start-event structural-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.125 VoltaRepeatedMusic

Repeats with alternatives placed sequentially.

Properties:

elements-callback (procedure):

make-volta-set

Return a list of children, for use by a sequential iterator. Takes a single music parameter.

iterator-ctor (procedure):

ly:volta-repeat-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:calculated-sequential-music::length

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'VoltaRepeatedMusic

Name of this music object.

start-callback (procedure):

ly:calculated-sequential-music::start

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

types (list):
'(volta-repeated-music
   folded-repeated-music
   repeated-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.126 VoltaSpanEvent

Used internally to signal where volta brackets start and stop.

Event classes: music-event, span-event, StreamEvent and volta-span-event.

Accepted by: Volta_engraver.

Properties:

name (symbol):

'VoltaSpanEvent

Name of this music object.

types (list):
'(volta-span-event span-event event post-event)

The types of this music object; determines by what engraver this music expression is processed.


1.1.127 VoltaSpeccedMusic

Music for a specific volta within repeated music.

Properties:

iterator-ctor (procedure):

ly:volta-specced-music-iterator::constructor

Function to construct a music-event-iterator object for this music.

length-callback (procedure):

ly:music-wrapper::length-callback

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

name (symbol):

'VoltaSpeccedMusic

Name of this music object.

start-callback (procedure):

ly:music-wrapper::start-callback

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

types (list):
'(volta-specification music-wrapper-music)

The types of this music object; determines by what engraver this music expression is processed.


1.1.128 VowelTransitionEvent

A vowel transition between lyric syllables.

Event classes: music-event, StreamEvent and vowel-transition-event.

Accepted by: Hyphen_engraver.

Properties:

name (symbol):

'VowelTransitionEvent

Name of this music object.

types (list):
'(post-event vowel-transition-event event)

The types of this music object; determines by what engraver this music expression is processed.


1.2 Music classes


1.2.1 absolute-dynamic-event

Music event type absolute-dynamic-event is in music objects of type AbsoluteDynamicEvent.

Accepted by: Dynamic_engraver and Dynamic_performer.


1.2.2 ad-hoc-jump-event

Music event type ad-hoc-jump-event is in music objects of type AdHocJumpEvent.

Accepted by: Bar_engraver and Jump_engraver.


1.2.3 ad-hoc-mark-event

Music event type ad-hoc-mark-event is in music objects of type AdHocMarkEvent.

Accepted by: Mark_tracking_translator.


1.2.4 alternative-event

Music event type alternative-event is in music objects of type AlternativeEvent.

Accepted by: Timing_translator.


1.2.5 annotate-output-event

Music event type annotate-output-event is in music objects of type AnnotateOutputEvent.

Accepted by: Balloon_engraver.


1.2.6 apply-output-event

Music event type apply-output-event is in music objects of type ApplyOutputEvent.

Accepted by: Output_property_engraver.


1.2.7 arpeggio-event

Music event type arpeggio-event is in music objects of type ArpeggioEvent.

Accepted by: Arpeggio_engraver.


1.2.8 articulation-event

Music event type articulation-event is in music objects of type ArticulationEvent.

Accepted by: Beat_engraver, Beat_performer, Drum_note_performer, Note_performer and Script_engraver.


1.2.9 bar-check-event

Music event type bar-check-event is in music objects of type BarCheckEvent.

Accepted by: Timing_translator.


1.2.10 bar-event

Music event type bar-event is in music objects of type BarEvent.

Accepted by: Timing_translator.


1.2.11 bass-figure-event

Music event type bass-figure-event is in music objects of type BassFigureEvent.

Accepted by: Figured_bass_engraver.


1.2.12 beam-event

Music event type beam-event is in music objects of type BeamEvent.

Accepted by: Beam_engraver, Beam_performer and Grace_beam_engraver.


1.2.13 beam-forbid-event

Music event type beam-forbid-event is in music objects of type BeamForbidEvent.

Accepted by: Auto_beam_engraver and Grace_auto_beam_engraver.


1.2.14 bend-after-event

Music event type bend-after-event is in music objects of type BendAfterEvent.

Accepted by: Bend_engraver.


1.2.15 bend-span-event

Music event type bend-span-event is in music objects of type BendSpanEvent.

Accepted by: Bend_spanner_engraver.


1.2.16 break-dynamic-span-event

Music event type break-dynamic-span-event is in music objects of type BreakDynamicSpanEvent.

Accepted by: Dynamic_engraver.


1.2.18 break-span-event

Music event type break-span-event is in music objects of type BreakDynamicSpanEvent.

Not accepted by any engraver or performer.


1.2.19 breathing-event

Music event type breathing-event is in music objects of type BreathingEvent.

Accepted by: Breathing_sign_engraver and Note_performer.


1.2.20 caesura-event

Music event type caesura-event is in music objects of type CaesuraEvent.

Accepted by: Bar_engraver, Caesura_engraver and Divisio_engraver.


1.2.21 cluster-note-event

Music event type cluster-note-event is in music objects of type ClusterNoteEvent.

Accepted by: Cluster_spanner_engraver.


1.2.22 coda-mark-event

Music event type coda-mark-event is in music objects of type CodaMarkEvent.

Accepted by: Bar_engraver and Mark_tracking_translator.


1.2.23 completize-extender-event

Music event type completize-extender-event is in music objects of type CompletizeExtenderEvent.

Accepted by: Extender_engraver.


1.2.24 crescendo-event

Music event type crescendo-event is in music objects of type CrescendoEvent.

Accepted by: Dynamic_performer.


1.2.25 dal-segno-event

Music event type dal-segno-event is in music objects of type DalSegnoEvent.

Accepted by: Bar_engraver, Jump_engraver and Volta_engraver.


1.2.26 decrescendo-event

Music event type decrescendo-event is in music objects of type DecrescendoEvent.

Accepted by: Dynamic_performer.


1.2.27 double-percent-event

Music event type double-percent-event is in music objects of type DoublePercentEvent.

Accepted by: Double_percent_repeat_engraver.


1.2.28 duration-line-event

Music event type duration-line-event is in music objects of type DurationLineEvent.

Accepted by: Duration_line_engraver.


1.2.29 dynamic-event

Music event type dynamic-event is in music objects of type AbsoluteDynamicEvent.

Not accepted by any engraver or performer.


1.2.30 episema-event

Music event type episema-event is in music objects of type EpisemaEvent.

Accepted by: Episema_engraver.


1.2.31 extender-event

Music event type extender-event is in music objects of type ExtenderEvent.

Accepted by: Extender_engraver.


1.2.33 finger-glide-event

Music event type finger-glide-event is in music objects of type FingerGlideEvent.

Not accepted by any engraver or performer.


1.2.34 fingering-event

Music event type fingering-event is in music objects of type FingeringEvent.

Accepted by: Fingering_engraver, Fretboard_engraver and Tab_note_heads_engraver.


1.2.35 footnote-event

Music event type footnote-event is in music objects of type FootnoteEvent.

Not accepted by any engraver or performer.


1.2.36 general-rest-event

Music event type general-rest-event is in music objects of type MultiMeasureRestEvent and RestEvent.

Accepted by: Current_chord_text_engraver.


1.2.37 glissando-event

Music event type glissando-event is in music objects of type GlissandoEvent.

Accepted by: Glissando_engraver.


1.2.38 harmonic-event

Music event type harmonic-event is in music objects of type HarmonicEvent.

Not accepted by any engraver or performer.


1.2.39 hyphen-event

Music event type hyphen-event is in music objects of type HyphenEvent.

Accepted by: Hyphen_engraver.


1.2.40 key-change-event

Music event type key-change-event is in music objects of type KeyChangeEvent.

Accepted by: Key_engraver and Key_performer.


1.2.41 label-event

Music event type label-event is in music objects of type LabelEvent.

Accepted by: Paper_column_engraver.


1.2.42 laissez-vibrer-event

Music event type laissez-vibrer-event is in music objects of type LaissezVibrerEvent.

Accepted by: Laissez_vibrer_engraver.


1.2.43 layout-instruction-event

Music event type layout-instruction-event is in music objects of type ApplyOutputEvent.

Not accepted by any engraver or performer.


1.2.45 line-break-event

Music event type line-break-event is in music objects of type LineBreakEvent.

Not accepted by any engraver or performer.


1.2.46 lyric-event

Music event type lyric-event is in music objects of type LyricEvent.

Accepted by: Lyric_engraver and Lyric_performer.


1.2.47 mark-event

Music event type mark-event is in music objects of type AdHocMarkEvent and RehearsalMarkEvent.

Not accepted by any engraver or performer.


1.2.48 measure-counter-event

Music event type measure-counter-event is in music objects of type MeasureCounterEvent.

Accepted by: Measure_counter_engraver.


1.2.49 measure-spanner-event

Music event type measure-spanner-event is in music objects of type MeasureSpannerEvent.

Accepted by: Measure_spanner_engraver.


1.2.50 melodic-event

Music event type melodic-event is in music objects of type ClusterNoteEvent and NoteEvent.

Not accepted by any engraver or performer.


1.2.51 multi-measure-articulation-event

Music event type multi-measure-articulation-event is in music objects of type MultiMeasureArticulationEvent.

Accepted by: Multi_measure_rest_engraver.


1.2.52 multi-measure-rest-event

Music event type multi-measure-rest-event is in music objects of type MultiMeasureRestEvent.

Accepted by: Multi_measure_rest_engraver.


1.2.53 multi-measure-text-event

Music event type multi-measure-text-event is in music objects of type MultiMeasureTextEvent.

Accepted by: Multi_measure_rest_engraver.


1.2.54 music-event

Music event type music-event is in music objects of type AbsoluteDynamicEvent, AdHocJumpEvent, AdHocMarkEvent, AlternativeEvent, AnnotateOutputEvent, ApplyOutputEvent, ArpeggioEvent, ArticulationEvent, BarCheckEvent, BarEvent, BassFigureEvent, BeamEvent, BeamForbidEvent, BendAfterEvent, BendSpanEvent, BreakDynamicSpanEvent, BreathingEvent, CaesuraEvent, ClusterNoteEvent, CodaMarkEvent, CompletizeExtenderEvent, CrescendoEvent, DalSegnoEvent, DecrescendoEvent, DoublePercentEvent, DurationLineEvent, EpisemaEvent, ExtenderEvent, FineEvent, FingerGlideEvent, FingeringEvent, FootnoteEvent, GlissandoEvent, HarmonicEvent, HyphenEvent, KeyChangeEvent, LabelEvent, LaissezVibrerEvent, LigatureEvent, LineBreakEvent, LyricEvent, MeasureCounterEvent, MeasureSpannerEvent, MultiMeasureArticulationEvent, MultiMeasureRestEvent, MultiMeasureTextEvent, NoteEvent, NoteGroupingEvent, OttavaEvent, PageBreakEvent, PageTurnEvent, PartialEvent, PercentEvent, PesOrFlexaEvent, PhrasingSlurEvent, RehearsalMarkEvent, RepeatSlashEvent, RepeatTieEvent, RestEvent, ScriptEvent, SectionEvent, SectionLabelEvent, SegnoMarkEvent, SkipEvent, SlurEvent, SoloOneEvent, SoloTwoEvent, SostenutoEvent, SpacingSectionEvent, SpanEvent, StaffHighlightEvent, StaffSpanEvent, StringNumberEvent, StrokeFingerEvent, SustainEvent, TempoChangeEvent, TextMarkEvent, TextScriptEvent, TextSpanEvent, TieEvent, TimeSignatureEvent, TremoloEvent, TremoloSpanEvent, TrillSpanEvent, TupletSpanEvent, UnaCordaEvent, UnisonoEvent, VoltaRepeatEndEvent, VoltaRepeatStartEvent, VoltaSpanEvent and VowelTransitionEvent.

Not accepted by any engraver or performer.


1.2.56 note-grouping-event

Music event type note-grouping-event is in music objects of type NoteGroupingEvent.

Accepted by: Horizontal_bracket_engraver.


1.2.57 ottava-event

Music event type ottava-event is in music objects of type OttavaEvent.

Accepted by: Ottava_spanner_engraver.


1.2.58 page-break-event

Music event type page-break-event is in music objects of type PageBreakEvent.

Not accepted by any engraver or performer.


1.2.59 page-turn-event

Music event type page-turn-event is in music objects of type PageTurnEvent.

Not accepted by any engraver or performer.


1.2.60 part-combine-event

Music event type part-combine-event is in music objects of type SoloOneEvent, SoloTwoEvent and UnisonoEvent.

Accepted by: Part_combine_engraver.


1.2.61 partial-event

Music event type partial-event is in music objects of type PartialEvent.

Accepted by: Timing_translator.


1.2.62 pedal-event

Music event type pedal-event is in music objects of type SostenutoEvent, SustainEvent and UnaCordaEvent.

Not accepted by any engraver or performer.


1.2.63 percent-event

Music event type percent-event is in music objects of type PercentEvent.

Accepted by: Percent_repeat_engraver.


1.2.64 pes-or-flexa-event

Music event type pes-or-flexa-event is in music objects of type PesOrFlexaEvent.

Accepted by: Vaticana_ligature_engraver.


1.2.65 phrasing-slur-event

Music event type phrasing-slur-event is in music objects of type PhrasingSlurEvent.

Accepted by: Phrasing_slur_engraver.


1.2.66 rehearsal-mark-event

Music event type rehearsal-mark-event is in music objects of type RehearsalMarkEvent.

Accepted by: Mark_tracking_translator.


1.2.67 repeat-slash-event

Music event type repeat-slash-event is in music objects of type RepeatSlashEvent.

Accepted by: Slash_repeat_engraver.


1.2.68 repeat-tie-event

Music event type repeat-tie-event is in music objects of type RepeatTieEvent.

Accepted by: Repeat_tie_engraver.


1.2.70 rhythmic-event

Music event type rhythmic-event is in music objects of type BassFigureEvent, ClusterNoteEvent, DoublePercentEvent, LyricEvent, MultiMeasureRestEvent, NoteEvent, RepeatSlashEvent, RestEvent and SkipEvent.

Not accepted by any engraver or performer.


1.2.71 script-event

Music event type script-event is in music objects of type ArticulationEvent, ScriptEvent and TextScriptEvent.

Not accepted by any engraver or performer.


1.2.72 section-event

Music event type section-event is in music objects of type SectionEvent.

Accepted by: Bar_engraver and Divisio_engraver.


1.2.73 section-label-event

Music event type section-label-event is in music objects of type SectionLabelEvent.

Accepted by: Mark_tracking_translator.


1.2.74 segno-mark-event

Music event type segno-mark-event is in music objects of type SegnoMarkEvent.

Accepted by: Bar_engraver and Mark_tracking_translator.


1.2.75 skip-event

Music event type skip-event is in music objects of type SkipEvent.

Not accepted by any engraver or performer.


1.2.76 slur-event

Music event type slur-event is in music objects of type SlurEvent.

Accepted by: Slur_engraver and Slur_performer.


1.2.77 solo-one-event

Music event type solo-one-event is in music objects of type SoloOneEvent.

Not accepted by any engraver or performer.


1.2.78 solo-two-event

Music event type solo-two-event is in music objects of type SoloTwoEvent.

Not accepted by any engraver or performer.


1.2.79 sostenuto-event

Music event type sostenuto-event is in music objects of type SostenutoEvent.

Accepted by: Piano_pedal_engraver and Piano_pedal_performer.


1.2.80 spacing-section-event

Music event type spacing-section-event is in music objects of type SpacingSectionEvent.

Accepted by: Spacing_engraver.


1.2.81 span-dynamic-event

Music event type span-dynamic-event is in music objects of type CrescendoEvent and DecrescendoEvent.

Accepted by: Dynamic_engraver.


1.2.83 staff-highlight-event

Music event type staff-highlight-event is in music objects of type StaffHighlightEvent.

Accepted by: Staff_highlight_engraver.


1.2.84 staff-span-event

Music event type staff-span-event is in music objects of type StaffSpanEvent.

Accepted by: Staff_symbol_engraver.


1.2.85 StreamEvent

Music event type StreamEvent is in music objects of type AbsoluteDynamicEvent, AdHocJumpEvent, AdHocMarkEvent, AlternativeEvent, AnnotateOutputEvent, ApplyOutputEvent, ArpeggioEvent, ArticulationEvent, BarCheckEvent, BarEvent, BassFigureEvent, BeamEvent, BeamForbidEvent, BendAfterEvent, BendSpanEvent, BreakDynamicSpanEvent, BreathingEvent, CaesuraEvent, ClusterNoteEvent, CodaMarkEvent, CompletizeExtenderEvent, CrescendoEvent, DalSegnoEvent, DecrescendoEvent, DoublePercentEvent, DurationLineEvent, EpisemaEvent, ExtenderEvent, FineEvent, FingerGlideEvent, FingeringEvent, FootnoteEvent, GlissandoEvent, HarmonicEvent, HyphenEvent, KeyChangeEvent, LabelEvent, LaissezVibrerEvent, LigatureEvent, LineBreakEvent, LyricEvent, MeasureCounterEvent, MeasureSpannerEvent, MultiMeasureArticulationEvent, MultiMeasureRestEvent, MultiMeasureTextEvent, NoteEvent, NoteGroupingEvent, OttavaEvent, PageBreakEvent, PageTurnEvent, PartialEvent, PercentEvent, PesOrFlexaEvent, PhrasingSlurEvent, RehearsalMarkEvent, RepeatSlashEvent, RepeatTieEvent, RestEvent, ScriptEvent, SectionEvent, SectionLabelEvent, SegnoMarkEvent, SkipEvent, SlurEvent, SoloOneEvent, SoloTwoEvent, SostenutoEvent, SpacingSectionEvent, SpanEvent, StaffHighlightEvent, StaffSpanEvent, StringNumberEvent, StrokeFingerEvent, SustainEvent, TempoChangeEvent, TextMarkEvent, TextScriptEvent, TextSpanEvent, TieEvent, TimeSignatureEvent, TremoloEvent, TremoloSpanEvent, TrillSpanEvent, TupletSpanEvent, UnaCordaEvent, UnisonoEvent, VoltaRepeatEndEvent, VoltaRepeatStartEvent, VoltaSpanEvent and VowelTransitionEvent.

Not accepted by any engraver or performer.


1.2.86 string-number-event

Music event type string-number-event is in music objects of type StringNumberEvent.

Accepted by: Bend_spanner_engraver, Fretboard_engraver and Tab_note_heads_engraver.


1.2.87 stroke-finger-event

Music event type stroke-finger-event is in music objects of type StrokeFingerEvent.

Not accepted by any engraver or performer.


1.2.88 structural-event

Music event type structural-event is in music objects of type AlternativeEvent, CodaMarkEvent, DalSegnoEvent, FineEvent, SectionEvent, SegnoMarkEvent, VoltaRepeatEndEvent and VoltaRepeatStartEvent.

Not accepted by any engraver or performer.


1.2.89 sustain-event

Music event type sustain-event is in music objects of type SustainEvent.

Accepted by: Piano_pedal_engraver and Piano_pedal_performer.


1.2.90 tempo-change-event

Music event type tempo-change-event is in music objects of type TempoChangeEvent.

Accepted by: Metronome_mark_engraver.


1.2.91 text-mark-event

Music event type text-mark-event is in music objects of type TextMarkEvent.

Accepted by: Text_mark_engraver.


1.2.92 text-script-event

Music event type text-script-event is in music objects of type TextScriptEvent.

Accepted by: Text_engraver.


1.2.93 text-span-event

Music event type text-span-event is in music objects of type TextSpanEvent.

Accepted by: Text_spanner_engraver.


1.2.95 time-signature-event

Music event type time-signature-event is in music objects of type TimeSignatureEvent.

Accepted by: Time_signature_engraver and Time_signature_performer.


1.2.96 tremolo-event

Music event type tremolo-event is in music objects of type TremoloEvent.

Accepted by: Stem_engraver.


1.2.97 tremolo-span-event

Music event type tremolo-span-event is in music objects of type TremoloSpanEvent.

Accepted by: Chord_tremolo_engraver.


1.2.98 trill-span-event

Music event type trill-span-event is in music objects of type TrillSpanEvent.

Accepted by: Trill_spanner_engraver.


1.2.99 tuplet-span-event

Music event type tuplet-span-event is in music objects of type TupletSpanEvent.

Accepted by: Tuplet_engraver.


1.2.100 una-corda-event

Music event type una-corda-event is in music objects of type UnaCordaEvent.

Accepted by: Piano_pedal_engraver and Piano_pedal_performer.


1.2.101 unisono-event

Music event type unisono-event is in music objects of type UnisonoEvent.

Not accepted by any engraver or performer.


1.2.103 volta-repeat-start-event

Music event type volta-repeat-start-event is in music objects of type VoltaRepeatStartEvent.

Accepted by: Divisio_engraver and Repeat_acknowledge_engraver.


1.2.104 volta-span-event

Music event type volta-span-event is in music objects of type VoltaSpanEvent.

Accepted by: Volta_engraver.


1.2.105 vowel-transition-event

Music event type vowel-transition-event is in music objects of type VowelTransitionEvent.

Accepted by: Hyphen_engraver.


1.3 Music properties

absolute-octave (integer)

The absolute octave for an octave check note.

alteration (number)

Alteration for figured bass.

alteration-bracket (boolean)

Put brackets around bass figure alteration.

alternative-dir (direction)

Indicates that an alternative-event is the first (-1), middle (0), or last (1) of group of alternate endings.

alternative-number (non-negative, exact integer)

The index of the current \alternative element, starting from one.

articulation-type (symbol)

Key for script definitions alist.

articulations (list of music objects)

Articulation events specifically for this note.

associated-context (string)

Name of the context associated with this \lyricsto section.

associated-context-type (symbol)

Type of the context associated with this \lyricsto section.

augmented (boolean)

This figure is for an augmented figured bass (with + sign).

augmented-slash (boolean)

This figure is for an augmented figured bass (back-slashed number).

automatically-numbered (boolean)

Should a footnote be automatically numbered?

autosplit-end (boolean)

Duration of event was truncated by automatic splitting in Completion_heads_engraver.

bar-type (string)

The type of bar line to create, e.g., "|"

bass (boolean)

Set if this note is a bass note in a chord.

beat-structure (list)

A beatStructure to be used in autobeaming.

bracket-start (boolean)

Start a bracket here.

TODO: Use SpanEvents?

bracket-stop (boolean)

Stop a bracket here.

break-penalty (number)

Penalty for line break hint.

break-permission (symbol)

Whether to allow, forbid or force a line break.

cautionary (boolean)

If set, this alteration needs a cautionary accidental.

change-tag (symbol)

Tag identifying the musical scope of a context change. The change applies to the nearest enclosing music with this tag.

change-to-id (string)

Name of the context to change to.

change-to-type (symbol)

Type of the context to change to.

class (symbol)

The class name of an event class.

color (color)

The color of a highlight.

context (context)

The context to which an event is sent.

context-id (string)

Name of context.

context-type (symbol)

Type of context.

create-new (boolean)

Create a fresh context.

delta-step (number)

How much should a fall change pitch?

denominator (integer)

Denominator in a time signature.

digit (non-negative, exact integer)

Digit for fingering.

diminished (boolean)

This bass figure should be slashed.

direction (direction)

Print this up or down?

drum-type (symbol)

Which percussion instrument to play this note on.

duration (duration)

Duration of this note or lyric.

element (music)

The single child of a Music_wrapper music object, or the body of a repeat.

elements (list of music objects)

A list of elements for sequential of simultaneous music, or the alternatives of repeated music.

elements-callback (procedure)

Return a list of children, for use by a sequential iterator. Takes a single music parameter.

error-found (boolean)

If true, a parsing error was found in this expression.

figure (integer)

A bass figure.

fine-folded (boolean)

True in a fine-event that is issued from within a folded repeat (segno or volta).

footnote-text (markup)

Text to appear in a footnote.

force-accidental (boolean)

If set, a cautionary accidental should always be printed on this note.

grob-property (symbol)

The symbol of the grob property to set.

grob-property-path (list)

A list of symbols, locating a nested grob property, e.g., (beamed-lengths details).

grob-value (any type)

The value of the grob property to set.

horizontal-direction (direction)

This is RIGHT for \textMark, and LEFT for \textEndMark.

id (index or symbol)

The ID of an event.

input-tag (any type)

Arbitrary marker to relate input and output.

inversion (boolean)

If set, this chord note is inverted.

iterator-ctor (procedure)

Function to construct a music-event-iterator object for this music.

label (non-negative, exact integer)

Sequence number of a mark. 1 is first.

last-pitch (pitch)

The last pitch after relativization.

length (moment)

The endpoint of this music. This property is unhappily named in that it does not account for any initial grace notes: the full length of the music is length minus the start time. A value of INF-MOMENT indicates indefinite length.

length-callback (procedure)

How to compute the duration of this music. This property can only be defined as initializer in scm/define-music-types.scm.

line-break-permission (symbol)

When the music is at top-level, whether to allow, forbid or force a line break.

metronome-count (number or pair)

How many beats in a minute?

midi-extra-velocity (integer)

How much louder or softer should this note be in MIDI output? The default is 0.

midi-length (procedure)

Function to determine how long to play a note in MIDI. It should take a moment (the written length of the note) and a context, and return a moment (the length to play the note).

moment (moment)

The moment at which an event happens.

music-cause (music)

The music object that is the cause of an event.

name (symbol)

Name of this music object.

no-continuation (boolean)

If set, disallow continuation lines.

numerator (integer)

Numerator of a time signature.

octavation (integer)

This pitch was octavated by how many octaves? For chord inversions, this is negative.

once (boolean)

Apply this operation only during one time step?

ops (any type)

The operations to apply during the creation of a context.

origin (input location)

Where was this piece of music defined?

ottava-number (integer)

The octavation for \ottava.

page-break-permission (symbol)

When the music is at top-level, whether to allow, forbid or force a page break.

page-label (symbol)

The label of a page marker.

page-marker (boolean)

If true, and the music expression is found at top-level, a page marker object is instanciated instead of a score.

page-turn-permission (symbol)

When the music is at top-level, whether to allow, forbid or force a page turn.

part-combine-status (symbol)

Change to what kind of state? Options are solo1, solo2 and unisono.

pitch (pitch)

The pitch of this note.

pitch-alist (list)

A list of pitches jointly forming the scale of a key signature.

pop-first (boolean)

Do a revert before we try to do an override on some grob property.

procedure (procedure)

The function to run with \applycontext. It must take a single argument, being the context.

property-operations (list)

Do these operations for instantiating the context.

property-path (symbol)

The path of a property.

quoted-context-id (string)

The ID of the context to direct quotes to, e.g., cue.

quoted-context-type (symbol)

The name of the context to direct quotes to, e.g., Voice.

quoted-events (vector)

A vector of with moment and event-list entries.

quoted-music-clef (string)

The clef of the voice to quote.

quoted-music-name (string)

The name of the voice to quote.

quoted-transposition (pitch)

The pitch used for the quote, overriding \transposition.

quoted-voice-direction (direction)

Should the quoted voice be up-stem or down-stem?

repeat-body-start-moment (moment)

In a D.S. event, the moment of the segno.

repeat-count (non-negative, exact integer)

The number of times to perform a \repeat.

return-count (non-negative, exact integer)

The number of times to perform a D.S.

search-direction (direction)

Limits the scope of \context searches.

slash-count (integer)

The number of slashes in a single-beat repeat. If zero, signals a beat containing varying durations.

span-direction (direction)

Does this start or stop a spanner?

span-text (markup)

The displayed text for dynamic text spanners (e.g., cresc.).

span-type (symbol)

What kind of dynamic spanner should be created? Options are 'text and 'hairpin.

spanner-id (index or symbol)

Identifier to distinguish concurrent spanners.

start-callback (procedure)

Function to compute the negative length of starting grace notes. This property can only be defined as initializer in scm/define-music-types.scm.

string-number (integer)

The number of the string in a StringNumberEvent.

symbol (symbol)

Grob name to perform an override or revert on.

tags (list)

List of symbols that for denoting extra details, e.g., \tag #'part … could tag a piece of music as only being active in a part.

tempo-unit (duration)

The unit for the metronome count.

text (markup)

Markup expression to be printed.

to-relative-callback (procedure)

How to transform a piece of music to relative pitches.

tonic (pitch)

Base of the scale.

tremolo-type (integer)

Speed of tremolo, e.g., 16 for c4:16.

trill-pitch (pitch)

Pitch of other note of the trill.

tweaks (list)

An alist of properties to override in the backend for the grob made of this event.

type (symbol)

The type of this music object. Determines iteration in some cases.

types (list)

The types of this music object; determines by what engraver this music expression is processed.

untransposable (boolean)

If set, this music is not transposed.

value (any type)

Assignment value for a translation property.

void (boolean)

If this property is #t, then the music expression is to be discarded by the toplevel music handler.

volta-depth (non-negative, exact integer)

The depth in the repeat structure.

volta-numbers (number list)

Volte to which this music applies.

what (symbol)

What to change for auto-change.

FIXME: Naming.

X-offset (number)

Offset of resulting grob; only used for balloon texts.

Y-offset (number)

Offset of resulting grob; only used for balloon texts.


2 Translation


2.1 Contexts


2.1.1 ChoirStaff

Identical to StaffGroup except that the contained staves are not connected vertically.

This context creates the following layout object(s): Arpeggio, InstrumentName, SpanBarStub, StaffGrouper, SystemStartBar, SystemStartBrace, SystemStartBracket, SystemStartSquare and VerticalAlignment.

This context sets the following properties:

  • Revert grob property extra-spacing-width in DynamicText
  • Set context property instrumentName to '().
  • Set context property localAlterations to #f.
  • Set context property localAlterations to '().
  • Set context property shortInstrumentName to '().
  • Set context property systemStartDelimiter to 'SystemStartBracket.
  • Set context property topLevelAlignment to #f.
  • Set grob property extra-spacing-width in DynamicText to #f.

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, Devnull, DrumStaff, Dynamics, FiguredBass, FretBoards, GrandStaff, GregorianTranscriptionLyrics, GregorianTranscriptionStaff, KievanStaff, Lyrics, MensuralStaff, NoteNames, OneStaff, PetrucciStaff, PianoStaff, RhythmicStaff, Staff, StaffGroup, TabStaff, VaticanaLyrics and VaticanaStaff.

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

Instrument_name_engraver

Create a system start text for instrument or vocal names.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

instrumentName (markup)

The name to print left of a staff. The instrumentName property labels the staff in the first system, and the shortInstrumentName property 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): InstrumentName.

Output_property_engraver

Apply a procedure to any grob acknowledged.

Music types accepted: apply-output-event

Span_arpeggio_engraver

Make arpeggios that span multiple staves.

Properties (read)

connectArpeggios (boolean)

If set, connect arpeggios across piano staff.

This engraver creates the following layout object(s): Arpeggio.

Span_bar_stub_engraver

Make stubs for span bars in all contexts that the span bars cross.

This engraver creates the following layout object(s): SpanBarStub.

System_start_delimiter_engraver

Create a system start delimiter (i.e., a SystemStartBar, SystemStartBrace, SystemStartBracket or SystemStartSquare spanner).

Properties (read)

currentCommandColumn (graphical (layout) object)

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

systemStartDelimiter (symbol)

Which grob to make for the start of the system/staff? Set to SystemStartBrace, SystemStartBracket or SystemStartBar.

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_engraver

Catch 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): StaffGrouper and VerticalAlignment.


2.1.2 ChordGrid

Creates chord grid notation. This context is always part of a ChordGridScore context.

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

This context creates the following layout object(s): BarLine, ChordSquare, DoublePercentRepeat, DoublePercentRepeatCounter, GridChordName, PercentRepeat, PercentRepeatCounter, StaffSymbol, SystemStartBar, SystemStartBrace, SystemStartBracket, SystemStartSquare and VerticalAxisGroup.

This context sets the following properties:

  • Set grob property font-size in BarLine to 3.
  • Set grob property hair-thickness in BarLine to 2.
  • Set grob property kern in BarLine to 5.
  • Set grob property line-positions in StaffSymbol to :
    '(-13.5 13.5)
    
  • Set grob property thickness in StaffSymbol to 2.
  • Set grob property thickness in SystemStartBar to 2.

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

Alteration_glyph_engraver

Set the glyph-name-alist of all grobs having the accidental-switch-interface to the value of the context’s alterationGlyphs property, when defined.

Properties (read)

alterationGlyphs (list)

Alist mapping alterations to accidental glyphs. Alterations are given as exact numbers, e.g., -1/2 for flat. This applies to all grobs that can print accidentals.

Axis_group_engraver

Group all objects created in this context in a VerticalAxisGroup spanner.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

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-empty set 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): VerticalAxisGroup.

Bar_engraver

Create bar lines for various commands, including \\bar.

If forbidBreakBetweenBarLines is true, allow line breaks at bar lines only.

Music types accepted: ad-hoc-jump-event, caesura-event, coda-mark-event, dal-segno-event, fine-event, section-event and segno-mark-event

Properties (read)

caesuraType (list)

An alist

((bar-line . bar-type)
 (breath . breath-type)
 (scripts . script-type…)
 (underlying-bar-line . bar-type))

specifying which breath mark, bar line, and scripts to create at \caesura. All entries are optional.

bar-line has higher priority than a measure bar line and underlying-bar-line has lower priority than a measure bar line.

caesuraTypeTransform (procedure)

An engraver callback taking three arguments and returning an alist of the same kind as caesuraType.

The first argument is the context.

The second argument is the value of caesuraType with an additional entry (articulations . symbol-list) identifying the articulations attached to the caesura in the music. If the transform function returns this second argument unmodified, it is as if no transform function were set; the function is free to return a different value. The transform function can remove articulations, but any added articulations are ignored.

The third argument is a symbol-list identifying certain things the engraver has observed. bar-line indicates that the engraver has observed a BarLine at the current moment.

doubleRepeatBarType (string)

Bar line to insert where the end of one \repeat volta coincides with the start of another. The default is ‘:..:’.

doubleRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the end of one \repeat volta and the beginning of another. The default is ‘:|.S.|:’.

endRepeatBarType (string)

Bar line to insert at the end of a \repeat volta. The default is ‘:|.’.

endRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the end of a \repeat volta. The default is ‘:|.S’.

fineBarType (string)

Bar line to insert at \fine. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘|.’.

fineSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with \fine. The default is ‘|.S’.

fineStartRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with \fine and the start of a \repeat volta. The default is ‘|.S.|:’.

forbidBreakBetweenBarLines (boolean)

If set to #t, Bar_engraver forbids line breaks where there is no bar line.

measureBarType (string)

Bar line to insert at a measure boundary.

printInitialRepeatBar (boolean)

Use a special bar line at the start of a volta repeat even at the beginning of the piece.

printTrivialVoltaRepeats (boolean)

Notate volta-style repeats even when the repeat count is 1.

repeatCommands (list)

A list of commands related to volta-style repeats. In general, each element is a list, '(command args…), but a command with no arguments may be abbreviated to a symbol; e.g., '((start-repeat)) may be given as '(start-repeat).

end-repeat return-count

End a repeated section. return-count is the number of times to go back from this point to the beginning of the section.

start-repeat repeat-count

Start a repeated section. repeat-count is the number of times to perform this section.

volta text

If text is markup, start a volta bracket with that label; if text is #f, end a volta bracket.

sectionBarType (string)

Bar line to insert at \section. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘||’.

segnoBarType (string)

Bar line to insert at an in-staff segno. The default is ‘S’.

segnoStyle (symbol)

A symbol that indicates how to print a segno: bar-line or mark.

startRepeatBarType (string)

Bar line to insert at the start of a \repeat volta. The default is ‘.|:’.

startRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the start of a \repeat volta. The default is ‘S.|:’.

underlyingRepeatBarType (string)

Bar line to insert at points of repetition or departure where no bar line would normally appear, for example at the end of a system broken in mid measure where the next system begins with a segno. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘||’.

whichBar (string)

The current bar line type, or '() if there is no bar line. Setting this explicitly in user code is deprecated. Use \bar or related commands to set it.

Properties (write)

currentBarLine (graphical (layout) object)

Set to the BarLine that Bar_engraver has created in the current timestep.

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

This engraver creates the following layout object(s): BarLine.

Chord_square_engraver

Engrave chord squares in chord grids.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

This engraver creates the following layout object(s): ChordSquare.

Current_chord_text_engraver

Catch note and rest events and generate the appropriate chord text using chordNameFunction. Actually creating a chord name grob is left to other engravers.

Music types accepted: general-rest-event and note-event

Properties (read)

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.

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)

currentChordCause (stream event)

Event cause of the chord that should be created in this time step (if any).

currentChordText (markup)

In contexts printing chord names, this is at any point of time the markup that will be put in the chord name.

Double_percent_repeat_engraver

Make double measure repeats.

Music types accepted: double-percent-event

Properties (read)

countPercentRepeats (boolean)

If set, produce counters for percent repeats.

measureLength (positive moment with no grace part)

Length of one measure in the current time signature.

repeatCountVisibility (procedure)

A procedure taking as arguments an integer and context, returning whether the corresponding percent repeat number should be printed when countPercentRepeats is set.

Properties (write)

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

This engraver creates the following layout object(s): DoublePercentRepeat and DoublePercentRepeatCounter.

Grid_chord_name_engraver

Read currentChordText to create chord names adapted for typesetting within a chord grid.

Properties (read)

currentChordCause (stream event)

Event cause of the chord that should be created in this time step (if any).

currentChordText (markup)

In contexts printing chord names, this is at any point of time the markup that will be put in the chord name.

currentCommandColumn (graphical (layout) object)

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

This engraver creates the following layout object(s): GridChordName.

Output_property_engraver

Apply a procedure to any grob acknowledged.

Music types accepted: apply-output-event

Percent_repeat_engraver

Make whole measure repeats.

Music types accepted: percent-event

Properties (read)

countPercentRepeats (boolean)

If set, produce counters for percent repeats.

currentCommandColumn (graphical (layout) object)

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

repeatCountVisibility (procedure)

A procedure taking as arguments an integer and context, returning whether the corresponding percent repeat number should be printed when countPercentRepeats is set.

This engraver creates the following layout object(s): PercentRepeat and PercentRepeatCounter.

Staff_symbol_engraver

Create the constellation of five (default) staff lines.

Music types accepted: staff-span-event

This engraver creates the following layout object(s): StaffSymbol.

System_start_delimiter_engraver

Create a system start delimiter (i.e., a SystemStartBar, SystemStartBrace, SystemStartBracket or SystemStartSquare spanner).

Properties (read)

currentCommandColumn (graphical (layout) object)

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

systemStartDelimiter (symbol)

Which grob to make for the start of the system/staff? Set to SystemStartBrace, SystemStartBracket or SystemStartBar.

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.


2.1.3 ChordGridScore

Top-level context replacing Score in chord grid notation. Compared to Score, it uses proportional notation, and has a few other settings like removing bar numbers.

This context also accepts commands for the following context(s): Score and Timing.

This context creates the following layout object(s): BreakAlignGroup, BreakAlignment, CenteredBarNumberLineSpanner, CodaMark, ControlPoint, ControlPolygon, Footnote, GraceSpacing, JumpScript, LeftEdge, MetronomeMark, NonMusicalPaperColumn, PaperColumn, Parentheses, RehearsalMark, SectionLabel, SegnoMark, SpacingSpanner, StaffGrouper, TextMark, VerticalAlignment, VoltaBracket and VoltaBracketSpanner.

This context sets the following properties:

  • Set context property additionalPitchPrefix to "".
  • Set context property aDueText to "a2".
  • Set context property alterationGlyphs to #f.
  • Set context property alternativeRestores to:
    '(measurePosition
       measureLength
       measureStartNow
       lastChord)
    
  • Set context property associatedVoiceType to 'Voice.
  • Set context property autoAccidentals to:
    '(Staff #<procedure at lily/music-functions.scm:1716:0 (context pitch barnum)>)
    
  • Set context property autoBeamCheck to default-auto-beam-check.
  • Set context property autoBeaming to #t.
  • Set context property autoCautionaries to '().
  • Set context property barCheckSynchronize to #f.
  • Set context property barNumberFormatter to robust-bar-number-function.
  • Set context property barNumberVisibility to first-bar-number-invisible-and-no-parenthesized-bar-numbers.
  • Set context property beamHalfMeasure to #t.
  • Set context property breathMarkDefinitions to:
    '((altcomma
        (text #<procedure musicglyph-markup (layout props glyph-name)>
              "scripts.raltcomma"))
      (caesura
        (text #<procedure musicglyph-markup (layout props glyph-name)>
              "scripts.caesura.straight"))
      (chantdoublebar
        (extra-spacing-width -1.0 . 0.0)
        (stencil
          .
          #<procedure ly:breathing-sign::finalis (_)>)
        (Y-offset . 0.0))
      (chantfullbar
        (extra-spacing-width -1.0 . 0.0)
        (stencil
          .
          #<procedure ly:breathing-sign::divisio-maxima (_)>)
        (Y-offset . 0.0))
      (chanthalfbar
        (extra-spacing-height
          .
          #<procedure item::extra-spacing-height-including-staff (grob)>)
        (extra-spacing-width -1.0 . 0.0)
        (stencil
          .
          #<procedure ly:breathing-sign::divisio-maior (_)>)
        (Y-offset . 0.0))
      (chantquarterbar
        (extra-spacing-height
          .
          #<procedure item::extra-spacing-height-including-staff (grob)>)
        (extra-spacing-width -1.0 . 0.0)
        (stencil
          .
          #<procedure ly:breathing-sign::divisio-minima (_)>))
      (comma (text #<procedure musicglyph-markup (layout props glyph-name)>
                   "scripts.rcomma"))
      (curvedcaesura
        (text #<procedure musicglyph-markup (layout props glyph-name)>
              "scripts.caesura.curved"))
      (outsidecomma
        (outside-staff-priority . 40)
        (text #<procedure musicglyph-markup (layout props glyph-name)>
              "scripts.rcomma"))
      (spacer
        (text #<procedure null-markup (layout props)>))
      (tickmark
        (outside-staff-priority . 40)
        (text #<procedure musicglyph-markup (layout props glyph-name)>
              "scripts.tickmark"))
      (upbow (outside-staff-priority . 40)
             (text #<procedure musicglyph-markup (layout props glyph-name)>
                   "scripts.uupbow"))
      (varcomma
        (text #<procedure musicglyph-markup (layout props glyph-name)>
              "scripts.rvarcomma")))
    
  • Set context property breathMarkType to 'comma.
  • Set context property caesuraType to:
    '((breath . caesura))
    
  • Set context property centerBarNumbers to #f.
  • Set context property 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"))))
    
  • Set context property chordNameFunction to ignatzek-chord-names.
  • Set context property chordNameLowercaseMinor to #f.
  • Set context property chordNameSeparator to:
    '(#<procedure hspace-markup (layout props amount)>
      0.5)
    
  • Set context property chordNoteNamer to '().
  • Set context property chordPrefixSpacer to 0.
  • Set context property chordRootNamer to note-name->markup.
  • Set context property clefGlyph to "clefs.G".
  • Set context property clefPosition to -2.
  • Set context property clefTranspositionFormatter to clef-transposition-markup.
  • Set context property codaMarkFormatter to #<procedure at lily/translation-functions.scm:222:4 (number context)>.
  • Set context property completionFactor to unity-if-multimeasure.
  • Set context property crescendoSpanner to 'hairpin.
  • Set context property cueClefTranspositionFormatter to clef-transposition-markup.
  • Set context property dalSegnoTextFormatter to format-dal-segno-text.
  • Set context property decrescendoSpanner to 'hairpin.
  • Set context property doubleRepeatBarType to ":..:".
  • Set context property doubleRepeatSegnoBarType to ":|.S.|:".
  • Set context property drumStyleTable to #<hash-table>.
  • Set context property endRepeatBarType to ":|.".
  • Set context property endRepeatSegnoBarType to ":|.S".
  • Set context property explicitClefVisibility to:
    #(#t #t #t)
    
  • Set context property explicitCueClefVisibility to:
    #(#f #t #t)
    
  • Set context property explicitKeySignatureVisibility to:
    #(#t #t #t)
    
  • Set context property extendersOverRests to #t.
  • Set context property extraNatural to #t.
  • Set context property figuredBassAlterationDirection to -1.
  • Set context property figuredBassFormatter to format-bass-figure.
  • Set context property figuredBassLargeNumberAlignment to 0.
  • Set context property figuredBassPlusDirection to -1.
  • Set context property figuredBassPlusStrokedAlist to:
    '((2 . "figbass.twoplus")
      (4 . "figbass.fourplus")
      (5 . "figbass.fiveplus")
      (6 . "figbass.sixstroked")
      (7 . "figbass.sevenstroked")
      (9 . "figbass.ninestroked"))
    
  • Set context property fineBarType to "|.".
  • Set context property fineSegnoBarType to "|.S".
  • Set context property fineStartRepeatSegnoBarType to "|.S.|:".
  • Set context property fineText to "Fine".
  • Set context property fingeringOrientations to:
    '(up down)
    
  • Set context property firstClef to #t.
  • Set context property forbidBreakBetweenBarLines to #t.
  • Set context property 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))
    
  • Set context property harmonicAccidentals to #t.
  • Set context property highStringOne to #t.
  • Set context property initialTimeSignatureVisibility to:
    #(#f #t #t)
    
  • Set context property instrumentTransposition to #<Pitch c' >.
  • Set context property 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-interface
       stanza-number-interface)
    
  • Set context property 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))
    
  • Set context property lyricMelismaAlignment to -1.
  • Set context property majorSevenSymbol to:
    '(#<procedure line-markup (layout props args)>
      ((#<procedure fontsize-markup (layout props increment arg)>
        -3
        (#<procedure triangle-markup (layout props filled)>
         #f))))
    
  • Set context property measureBarType to "|".
  • Set context property melismaBusyProperties to:
    '(melismaBusy
       slurMelismaBusy
       tieMelismaBusy
       beamMelismaBusy
       completionBusy)
    
  • Set context property metronomeMarkFormatter to format-metronome-markup.
  • Set context property middleCClefPosition to -6.
  • Set context property middleCPosition to -6.
  • Set context property minorChordModifier to "m".
  • Set context property noChordSymbol to "N.C.".
  • Set context property noteNameFunction to note-name-markup.
  • Set context property noteNameSeparator to "/".
  • Set context property noteToFretFunction to determine-frets.
  • Set context property partCombineTextsOnNote to #t.
  • Set context property pedalSostenutoStrings to:
    '("Sost. Ped." "*Sost. Ped." "*")
    
  • Set context property pedalSostenutoStyle to 'mixed.
  • Set context property pedalSustainStrings to:
    '("Ped." "*Ped." "*")
    
  • Set context property pedalSustainStyle to 'text.
  • Set context property pedalUnaCordaStrings to:
    '("una corda" "" "tre corde")
    
  • Set context property pedalUnaCordaStyle to 'text.
  • Set context property predefinedDiagramTable to #f.
  • Set context property printAccidentalNames to #t.
  • Set context property printInitialRepeatBar to #t.
  • Set context property printKeyCancellation to #t.
  • Set context property printOctaveNames to #f.
  • Set context property printPartCombineTexts to #t.
  • Set context property printTrivialVoltaRepeats to #f.
  • Set context property proportionalNotationDuration to #<Mom 1/4>.
  • Set context property quotedCueEventTypes to:
    '(note-event
       rest-event
       tie-event
       beam-event
       tuplet-span-event
       tremolo-event)
    
  • Set context property quotedEventTypes to:
    '(StreamEvent)
    
  • Set context property rehearsalMarkFormatter to #<procedure at lily/translation-functions.scm:222:4 (number context)>.
  • Set context property rehearsalMark to 1.
  • Set context property repeatCountVisibility to all-repeat-counts-visible.
  • Set context property restNumberThreshold to 1.
  • Set context property 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))
      (altcomma
        (script-stencil feta "laltcomma" . "raltcomma")
        (quantize-position . #t)
        (padding . 0.2)
        (avoid-slur . ignore)
        (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 "ddownbow" . "udownbow")
        (padding . 0.2)
        (skyline-horizontal-padding . 0.2)
        (avoid-slur . around)
        (direction . 1)
        (script-priority . 180))
      (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.4)
        (avoid-slur . around)
        (outside-staff-priority . 75)
        (script-priority . 175)
        (direction . 1))
      (flageolet
        (script-stencil feta "flageolet" . "flageolet")
        (padding . 0.2)
        (avoid-slur . around)
        (direction . 1)
        (script-priority . 50))
      (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.4)
        (avoid-slur . around)
        (outside-staff-priority . 75)
        (script-priority . 175)
        (direction . 1))
      (henzeshortfermata
        (script-stencil
          feta
          "dhenzeshortfermata"
          .
          "uhenzeshortfermata")
        (padding . 0.4)
        (avoid-slur . around)
        (outside-staff-priority . 75)
        (script-priority . 175)
        (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.4)
        (avoid-slur . around)
        (outside-staff-priority . 75)
        (script-priority . 175)
        (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))
      (outsidecomma
        (avoid-slur . around)
        (direction . 1)
        (padding . 0.2)
        (script-stencil feta "lcomma" . "rcomma"))
      (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.4)
        (avoid-slur . around)
        (outside-staff-priority . 75)
        (script-priority . 175)
        (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)
        (script-priority . -50)
        (side-relative-direction . -1))
      (trill (script-stencil feta "trill" . "trill")
             (direction . 1)
             (padding . 0.2)
             (avoid-slur . outside)
             (script-priority . 150))
      (turn (script-stencil feta "turn" . "turn")
            (avoid-slur . inside)
            (padding . 0.2)
            (direction . 1))
      (upbow (script-stencil feta "dupbow" . "uupbow")
             (avoid-slur . around)
             (padding . 0.2)
             (direction . 1)
             (script-priority . 180))
      (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.4)
        (avoid-slur . around)
        (outside-staff-priority . 75)
        (script-priority . 175)
        (direction . 1))
      (veryshortfermata
        (script-stencil
          feta
          "dveryshortfermata"
          .
          "uveryshortfermata")
        (padding . 0.4)
        (avoid-slur . around)
        (outside-staff-priority . 75)
        (script-priority . 175)
        (direction . 1)))
    
  • Set context property sectionBarType to "||".
  • Set context property segnoBarType to "S".
  • Set context property segnoMarkFormatter to format-segno-mark-considering-bar-lines.
  • Set context property segnoStyle to 'mark.
  • Set context property slashChordSeparator to "/".
  • Set context property soloIIText to "Solo II".
  • Set context property soloText to "Solo".
  • Set context property startRepeatBarType to ".|:".
  • Set context property startRepeatSegnoBarType to "S.|:".
  • Set context property stringNumberOrientations to:
    '(up down)
    
  • Set context property stringOneTopmost to #t.
  • Set context property stringTunings to:
    '(#<Pitch e' >
      #<Pitch b >
      #<Pitch g >
      #<Pitch d >
      #<Pitch a, >
      #<Pitch e, >)
    
  • Set context property strokeFingerOrientations to:
    '(right)
    
  • Set context property subdivideBeams to #f.
  • Set context property suspendMelodyDecisions to #f.
  • Set context property systemStartDelimiter to 'SystemStartBar.
  • Set context property tablatureFormat to fret-number-tablature-format.
  • Set context property tabStaffLineLayoutFunction to tablature-position-on-lines.
  • Set context property tieWaitForNote to #f.
  • Set context property timeSignatureFraction to:
    '(4 . 4)
    
  • Set context property 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)))
    
  • Set context property timing to #t.
  • Set context property topLevelAlignment to #t.
  • Set context property underlyingRepeatBarType to "||".

This is not a ‘Bottom’ context; search for such a one will commence after creating an implicit context of type Staff.

Context ChordGridScore can contain ChoirStaff, ChordGrid, ChordNames, Devnull, DrumStaff, Dynamics, FiguredBass, FretBoards, GrandStaff, GregorianTranscriptionLyrics, GregorianTranscriptionStaff, KievanStaff, Lyrics, MensuralStaff, NoteNames, OneStaff, PetrucciStaff, PianoStaff, RhythmicStaff, Staff, StaffGroup, TabStaff, VaticanaLyrics and VaticanaStaff.

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

Beam_collision_engraver

Help beams avoid colliding with notes and clefs in other voices.

Break_align_engraver

Align grobs with corresponding break-align-symbols into groups, and order the groups according to breakAlignOrder. The left edge of the alignment gets a separate group, with a symbol left-edge.

This engraver creates the following layout object(s): BreakAlignGroup, BreakAlignment and LeftEdge.

Centered_bar_number_align_engraver

Group measure-centered bar numbers in a CenteredBarNumberLineSpanner so they end up on the same vertical position.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

This engraver creates the following layout object(s): CenteredBarNumberLineSpanner.

Concurrent_hairpin_engraver

Collect concurrent hairpins.

Footnote_engraver

Create footnote texts.

This engraver creates the following layout object(s): Footnote.

Grace_spacing_engraver

Bookkeeping 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): GraceSpacing.

Jump_engraver

This engraver creates instructions such as D.C. and Fine, placing them vertically outside the set of staves given in the stavesFound context property.

If Jump_engraver is added or moved to another context, Staff_collecting_engraver also needs to be there so that marks appear at the intended Y location.

Music types accepted: ad-hoc-jump-event, dal-segno-event and fine-event

Properties (read)

codaMarkCount (non-negative, exact integer)

Updated at the end of each timestep in which a coda mark appears: not set during the first timestep, 0 up to the first coda mark, 1 from the first to the second, 2 from the second to the third, etc.

codaMarkFormatter (procedure)

A procedure that creates a coda mark (which in conventional D.S. al Coda form indicates the start of the alternative endings), taking as arguments the mark sequence number and the context. It should return a markup object.

dalSegnoTextFormatter (procedure)

Format a jump instruction such as D.S.

The first argument is the context.

The second argument is the number of times the instruction is performed.

The third argument is a list of three markups: start-markup, end-markup, and next-markup.

If start-markup is #f, the form is da capo; otherwise the form is dal segno and start-markup is the sign at the start of the repeated section.

If end-markup is not #f, it is either the sign at the end of the main body of the repeat, or it is a Fine instruction. When it is a Fine instruction, next-markup is #f.

If next-markup is not #f, it is the mark to be jumped to after performing the body of the repeat, e.g., Coda.

finalFineTextVisibility (boolean)

Whether \fine at the written end of the music should create a Fine instruction.

fineText (markup)

The text to print at \fine.

segnoMarkCount (non-negative, exact integer)

Updated at the end of each timestep in which a segno appears: not set during the first timestep, 0 up to the first segno, 1 from the first to the second segno, 2 from the second to the third segno, etc.

segnoMarkFormatter (procedure)

A procedure that creates a segno (which conventionally indicates the start of a repeated section), taking as arguments the mark sequence number and the context. It should return a markup object.

stavesFound (list of grobs)

A list of all staff-symbols found.

This engraver creates the following layout object(s): JumpScript.

Mark_engraver

This engraver creates rehearsal marks, segno and coda marks, and section labels.

Mark_engraver creates marks, formats them, and places them vertically outside the set of staves given in the stavesFound context property.

If Mark_engraver is added or moved to another context, Staff_collecting_engraver also needs to be there so that marks appear at the intended Y location.

By default, Mark_engravers in multiple contexts create a common sequence of marks chosen by the Score-level Mark_tracking_translator. If independent sequences are desired, multiple Mark_tracking_translators must be used.

Properties (read)

codaMarkFormatter (procedure)

A procedure that creates a coda mark (which in conventional D.S. al Coda form indicates the start of the alternative endings), taking as arguments the mark sequence number and the context. It should return a markup object.

currentPerformanceMarkEvent (stream event)

The coda, section, or segno mark event selected by Mark_tracking_translator for engraving by Mark_engraver.

currentRehearsalMarkEvent (stream event)

The ad-hoc or rehearsal mark event selected by Mark_tracking_translator for engraving by Mark_engraver.

rehearsalMarkFormatter (procedure)

A procedure taking as arguments the context and the sequence number of the rehearsal mark. It should return the formatted mark as a markup object.

segnoMarkFormatter (procedure)

A procedure that creates a segno (which conventionally indicates the start of a repeated section), taking as arguments the mark sequence number and the context. It should return a markup object.

stavesFound (list of grobs)

A list of all staff-symbols found.

This engraver creates the following layout object(s): CodaMark, RehearsalMark, SectionLabel and SegnoMark.

Mark_tracking_translator

This translator chooses which marks Mark_engraver should engrave.

Music types accepted: ad-hoc-mark-event, coda-mark-event, rehearsal-mark-event, section-label-event and segno-mark-event

Properties (read)

codaMarkCount (non-negative, exact integer)

Updated at the end of each timestep in which a coda mark appears: not set during the first timestep, 0 up to the first coda mark, 1 from the first to the second, 2 from the second to the third, etc.

rehearsalMark (integer)

The next rehearsal mark to print.

segnoMarkCount (non-negative, exact integer)

Updated at the end of each timestep in which a segno appears: not set during the first timestep, 0 up to the first segno, 1 from the first to the second segno, 2 from the second to the third segno, etc.

Properties (write)

codaMarkCount (non-negative, exact integer)

Updated at the end of each timestep in which a coda mark appears: not set during the first timestep, 0 up to the first coda mark, 1 from the first to the second, 2 from the second to the third, etc.

currentPerformanceMarkEvent (stream event)

The coda, section, or segno mark event selected by Mark_tracking_translator for engraving by Mark_engraver.

currentRehearsalMarkEvent (stream event)

The ad-hoc or rehearsal mark event selected by Mark_tracking_translator for engraving by Mark_engraver.

rehearsalMark (integer)

The next rehearsal mark to print.

segnoMarkCount (non-negative, exact integer)

Updated at the end of each timestep in which a segno appears: not set during the first timestep, 0 up to the first segno, 1 from the first to the second segno, 2 from the second to the third segno, etc.

Metronome_mark_engraver

Engrave metronome marking. This delegates the formatting work to the function in the metronomeMarkFormatter property. The mark is put over all staves. The staves are taken from the stavesFound property, which is maintained by Staff_collecting_engraver.

Music types accepted: tempo-change-event

Properties (read)

currentCommandColumn (graphical (layout) object)

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

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 TempoChangeEvent and 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): MetronomeMark.

Output_property_engraver

Apply a procedure to any grob acknowledged.

Music types accepted: apply-output-event

Paper_column_engraver

Take care of generating columns.

This engraver decides whether a column is breakable. The default is that a column is always breakable. However, every Bar_engraver that does not have a barline at a certain point will set forbidBreaks in 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: break-event and label-event

Properties (read)

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

Properties (write)

currentCommandColumn (graphical (layout) object)

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

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, except if explicitly requested by the user.

forceBreak (boolean)

Set to #t when an event forcing a line break was heard.

This engraver creates the following layout object(s): NonMusicalPaperColumn and PaperColumn.

Parenthesis_engraver

Parenthesize objects whose parenthesize property is #t.

This engraver creates the following layout object(s): Parentheses.

Repeat_acknowledge_engraver

This translator adds entries to repeatCommands for events generated by \\repeat volta.

Music types accepted: volta-repeat-end-event and volta-repeat-start-event

Properties (write)

repeatCommands (list)

A list of commands related to volta-style repeats. In general, each element is a list, '(command args…), but a command with no arguments may be abbreviated to a symbol; e.g., '((start-repeat)) may be given as '(start-repeat).

end-repeat return-count

End a repeated section. return-count is the number of times to go back from this point to the beginning of the section.

start-repeat repeat-count

Start a repeated section. repeat-count is the number of times to perform this section.

volta text

If text is markup, start a volta bracket with that label; if text is #f, end a volta bracket.

Show_control_points_engraver

Create grobs to visualize control points of Bézier curves (ties and slurs) for ease of tweaking.

This engraver creates the following layout object(s): ControlPoint and ControlPolygon.

Spacing_engraver

Make a SpacingSpanner and do bookkeeping of shortest starting and playing notes.

Music types accepted: spacing-section-event

Properties (read)

currentCommandColumn (graphical (layout) object)

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

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

Spanner_tracking_engraver

Helper for creating spanners attached to other spanners. If a spanner has the sticky-grob-interface, the engraver tracks the spanner contained in its sticky-host object. When the host ends, the sticky spanner attached to it has its end announced too.

Staff_collecting_engraver

Maintain the stavesFound variable.

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_engraver

This engraver ensures that stanza numbers are neatly aligned.

Text_mark_engraver

Engraves arbitrary textual marks.

Music types accepted: text-mark-event

Properties (read)

stavesFound (list of grobs)

A list of all staff-symbols found.

This engraver creates the following layout object(s): TextMark.

Timing_translator

This engraver adds the alias Timing to its containing context. Responsible for synchronizing timing information from staves. Normally in Score. In order to create polyrhythmic music, this engraver should be removed from Score and placed in Staff.

Music types accepted: alternative-event, bar-check-event, bar-event, fine-event and partial-event

Properties (read)

alternativeNumberingStyle (symbol)

The scheme and style for numbering bars in repeat alternatives. If not set (the default), bar numbers continue through alternatives. Can be set to numbers to reset the bar number at each alternative, or set to numbers-with-letters to reset and also include letter suffixes.

baseMoment (positive moment with no grace part)

Smallest unit of time that will stand on its own as a subdivided section.

currentBarNumber (integer)

Contains the current bar number. This property is incremented at every bar line.

internalBarNumber (integer)

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

measureLength (positive moment with no grace part)

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 (positive, finite fraction, as pair)

A pair of numbers, signifying the time signature. For example, '(4 . 4) is a 4/4 time signature.

Properties (write)

alternativeNumber (non-negative, exact integer)

When set, the index of the current \alternative element, starting from one. Not set outside of alternatives. Note the distinction from volta number: an alternative may pertain to multiple volte.

baseMoment (positive moment with no grace part)

Smallest unit of time that will stand on its own as a subdivided section.

currentBarNumber (integer)

Contains the current bar number. This property is incremented at every bar line.

internalBarNumber (integer)

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

measureLength (positive moment with no grace part)

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.

measureStartNow (boolean)

True at the beginning of a measure.

timeSignatureFraction (positive, finite fraction, as pair)

A pair of numbers, signifying the time signature. For example, '(4 . 4) is a 4/4 time signature.

Tweak_engraver

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

Vertical_align_engraver

Catch 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): StaffGrouper and VerticalAlignment.

Volta_engraver

Make volta brackets.

Music types accepted: dal-segno-event, fine-event and volta-span-event

Properties (read)

currentCommandColumn (graphical (layout) object)

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

printTrivialVoltaRepeats (boolean)

Notate volta-style repeats even when the repeat count is 1.

repeatCommands (list)

A list of commands related to volta-style repeats. In general, each element is a list, '(command args…), but a command with no arguments may be abbreviated to a symbol; e.g., '((start-repeat)) may be given as '(start-repeat).

end-repeat return-count

End a repeated section. return-count is the number of times to go back from this point to the beginning of the section.

start-repeat repeat-count

Start a repeated section. repeat-count is the number of times to perform this section.

volta text

If text is markup, start a volta bracket with that label; if text is #f, end a volta bracket.

stavesFound (list of grobs)

A list of all staff-symbols found.

voltaSpannerDuration (non-negative moment with no grace part)

The maximum musical length of a VoltaBracket when its musical-length property is not set.

This property is deprecated; overriding the musical-length property of VoltaBracket is recommended.

This engraver creates the following layout object(s): VoltaBracket and VoltaBracketSpanner.


2.1.4 ChordNames

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:

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

Alteration_glyph_engraver

Set the glyph-name-alist of all grobs having the accidental-switch-interface to the value of the context’s alterationGlyphs property, when defined.

Properties (read)

alterationGlyphs (list)

Alist mapping alterations to accidental glyphs. Alterations are given as exact numbers, e.g., -1/2 for flat. This applies to all grobs that can print accidentals.

Axis_group_engraver

Group all objects created in this context in a VerticalAxisGroup spanner.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

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-empty set 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): VerticalAxisGroup.

Chord_name_engraver

Read currentChordText to create chord names.

Properties (read)

chordChanges (boolean)

Only show changes in chords scheme?

currentChordCause (stream event)

Event cause of the chord that should be created in this time step (if any).

currentChordText (markup)

In contexts printing chord names, this is at any point of time the markup that will be put in the chord name.

lastChord (markup)

Last chord, used for detecting chord changes.

Properties (write)

lastChord (markup)

Last chord, used for detecting chord changes.

This engraver creates the following layout object(s): ChordName.

Current_chord_text_engraver

Catch note and rest events and generate the appropriate chord text using chordNameFunction. Actually creating a chord name grob is left to other engravers.

Music types accepted: general-rest-event and note-event

Properties (read)

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.

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)

currentChordCause (stream event)

Event cause of the chord that should be created in this time step (if any).

currentChordText (markup)

In contexts printing chord names, this is at any point of time the markup that will be put in the chord name.

Output_property_engraver

Apply a procedure to any grob acknowledged.

Music types accepted: apply-output-event

Pure_from_neighbor_engraver

Coordinates items that get their pure heights from their neighbors.

Separating_line_group_engraver

Generate objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)

Create StaffSpacing objects? Should be set for staves.

Properties (write)

hasStaffSpacing (boolean)

True if currentCommandColumn contains items that will affect spacing.

This engraver creates the following layout object(s): StaffSpacing.


2.1.5 CueVoice

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, FingerGlideSpanner, 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, TrillPitchParentheses, TrillSpanner, TupletBracket, TupletNumber and VoiceFollower.

This context sets the following properties:

  • Set context property fontSize to -4.
  • Set grob property beam-thickness in Beam to 0.35.
  • Set grob property beam-thickness in StemTremolo to 0.35.
  • Set grob property ignore-ambitus in NoteHead to #t.
  • Set grob property length-fraction in Beam to 0.6299605249474366.
  • Set grob property length-fraction in Stem to 0.6299605249474366.

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_engraver

Generate an Arpeggio symbol.

Music types accepted: arpeggio-event

This engraver creates the following layout object(s): Arpeggio.

Auto_beam_engraver

Generate beams based on measure characteristics and observed Stems. Uses baseMoment, beatStructure, beamExceptions, measureLength, and measurePosition to decide when to start and stop a beam. Overriding beaming is done through Stem_engraver properties stemLeftBeamCount and stemRightBeamCount.

Music types accepted: beam-forbid-event

Properties (read)

autoBeaming (boolean)

If set to #t then beams are generated automatically. If set to #f, auto-beaming is switched off as soon as the current beam (if any) is finished according to the auto-beaming rules.

baseMoment (positive moment with no grace part)

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, beams of mulitple stems may be subdivided by omitting a number of beamlets, dependent on maxSubdivideInterval, between beats at mulitiples of minSubdivideInterval.

This engraver creates the following layout object(s): Beam.

Beam_engraver

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

Music types accepted: beam-event

Properties (read)

baseMoment (positive moment with no grace part)

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, beams of mulitple stems may be subdivided by omitting a number of beamlets, dependent on maxSubdivideInterval, between beats at mulitiples of minSubdivideInterval.

This engraver creates the following layout object(s): Beam.

Bend_engraver

Create fall spanners.

Music types accepted: bend-after-event

Properties (read)

currentBarLine (graphical (layout) object)

Set to the BarLine that Bar_engraver has created in the current timestep.

currentCommandColumn (graphical (layout) object)

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

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

Breathing_sign_engraver

Notate breath marks.

Music types accepted: breathing-event

Properties (read)

breathMarkType (symbol)

The type of BreathingSign to create at \breathe.

This engraver creates the following layout object(s): BreathingSign.

Chord_tremolo_engraver

Generate beams for tremolo repeats.

Music types accepted: tremolo-span-event

This engraver creates the following layout object(s): Beam.

Cluster_spanner_engraver

Engrave a cluster using Spanner notation.

Music types accepted: cluster-note-event

This engraver creates the following layout object(s): ClusterSpanner and ClusterSpannerBeacon.

Dots_engraver

Create Dots objects for rhythmic-head-interfaces.

This engraver creates the following layout object(s): Dots.

Double_percent_repeat_engraver

Make double measure repeats.

Music types accepted: double-percent-event

Properties (read)

countPercentRepeats (boolean)

If set, produce counters for percent repeats.

measureLength (positive moment with no grace part)

Length of one measure in the current time signature.

repeatCountVisibility (procedure)

A procedure taking as arguments an integer and context, returning whether the corresponding percent repeat number should be printed when countPercentRepeats is set.

Properties (write)

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

This engraver creates the following layout object(s): DoublePercentRepeat and DoublePercentRepeatCounter.

Dynamic_align_engraver

Align hairpins and dynamic texts on a horizontal line.

Properties (read)

currentMusicalColumn (graphical (layout) object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

This engraver creates the following layout object(s): DynamicLineSpanner.

Dynamic_engraver

Create hairpins, dynamic texts and dynamic text spanners.

Music types accepted: absolute-dynamic-event, break-dynamic-span-event and span-dynamic-event

Properties (read)

crescendoSpanner (symbol)

The type of spanner to be used for crescendi. Available values are ‘hairpin’ and ‘text’. If unset, a hairpin crescendo is used.

crescendoText (markup)

The text to print at start of non-hairpin crescendo, i.e., ‘cresc.’.

currentMusicalColumn (graphical (layout) object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

decrescendoSpanner (symbol)

The type of spanner to be used for decrescendi. Available values are ‘hairpin’ and ‘text’. If unset, a hairpin decrescendo is used.

decrescendoText (markup)

The text to print at start of non-hairpin decrescendo, i.e., ‘dim.’.

This engraver creates the following layout object(s): DynamicText, DynamicTextSpanner and Hairpin.

Finger_glide_engraver

Engraver to print a line between two Fingering grobs.

Music types accepted: note-event

This engraver creates the following layout object(s): FingerGlideSpanner.

Fingering_engraver

Create fingering scripts.

Music types accepted: fingering-event

This engraver creates the following layout object(s): Fingering.

Font_size_engraver

Put fontSize into font-size grob property.

Properties (read)

fontSize (number)

The relative size of all grobs in a context.

Forbid_line_break_engraver

Forbid line breaks when note heads are still playing at some point.

Properties (read)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Properties (write)

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

Glissando_engraver

Engrave glissandi.

Music types accepted: glissando-event

Properties (read)

glissandoMap (list)

A map in the form of ’((source1 . target1) (source2 . target2) (sourcen . targetn)) showing the glissandi to be drawn for note columns. The value ’() will default to ’((0 . 0) (1 . 1) (n . n)), where n is the minimal number of note-heads in the two note columns between which the glissandi occur.

This engraver creates the following layout object(s): Glissando.

Grace_auto_beam_engraver

Generates one autobeam group across an entire grace phrase. As usual, any manual beaming or \noBeam will block autobeaming, just like setting the context property ‘autoBeaming’ to ##f.

Music types accepted: beam-forbid-event

Properties (read)

autoBeaming (boolean)

If set to #t then beams are generated automatically. If set to #f, auto-beaming is switched off as soon as the current beam (if any) is finished according to the auto-beaming rules.

This engraver creates the following layout object(s): Beam.

Grace_beam_engraver

Handle Beam events by engraving beams. If omitted, then notes are printed with flags instead of beams. Only engraves beams when we are at grace points in time.

Music types accepted: beam-event

Properties (read)

baseMoment (positive moment with no grace part)

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, beams of mulitple stems may be subdivided by omitting a number of beamlets, dependent on maxSubdivideInterval, between beats at mulitiples of minSubdivideInterval.

This engraver creates the following layout object(s): Beam.

Grace_engraver

Set font size and other properties for grace notes.

Properties (read)

graceSettings (list)

Overrides for grace notes. This property should be manipulated through the add-grace-property function.

Grob_pq_engraver

Administrate when certain grobs (e.g., note heads) stop playing.

Properties (read)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Properties (write)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Instrument_switch_engraver

Create a cue text for taking instrument.

This engraver is deprecated.

Properties (read)

instrumentCueName (markup)

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

This property is deprecated

This engraver creates the following layout object(s): InstrumentSwitch.

Laissez_vibrer_engraver

Create laissez vibrer items.

Music types accepted: laissez-vibrer-event

This engraver creates the following layout object(s): LaissezVibrerTie and LaissezVibrerTieColumn.

Ligature_bracket_engraver

Handle Ligature_events by engraving Ligature brackets.

Music types accepted: ligature-event

This engraver creates the following layout object(s): LigatureBracket.

Multi_measure_rest_engraver

Engrave multi-measure rests that are produced with ‘R’. It reads measureStartNow and internalBarNumber to 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 items (clef, key signature, etc.).

internalBarNumber (integer)

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

measureStartNow (boolean)

True at the beginning of a measure.

restNumberThreshold (number)

If a multimeasure rest has more measures than this, a number is printed.

This engraver creates the following layout object(s): MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript and MultiMeasureRestText.

New_fingering_engraver

Create fingering scripts for notes in a new chord. This engraver is ill-named, since it also takes care of articulations and harmonic note heads.

Properties (read)

fingeringOrientations (list)

A list of symbols, containing ‘left’, ‘right’, ‘up’ and/or ‘down’. This list determines where fingerings are put relative to the chord being fingered.

harmonicDots (boolean)

If set, harmonic notes in dotted chords get dots.

stringNumberOrientations (list)

See fingeringOrientations.

strokeFingerOrientations (list)

See fingeringOrientations.

This engraver creates the following layout object(s): Fingering, Script, StringNumber and StrokeFinger.

Note_head_line_engraver

Engrave a line between two note heads in a staff switch if followVoice is 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): VoiceFollower.

Note_heads_engraver

Generate note heads.

Music types accepted: note-event

Properties (read)

middleCPosition (number)

The place of the middle C, measured in half staff-spaces. Usually determined by looking at middleCClefPosition and middleCOffset.

staffLineLayoutFunction (procedure)

Layout of staff lines, traditional, or semitone.

This engraver creates the following layout object(s): NoteHead.

Note_spacing_engraver

Generate NoteSpacing, an object linking horizontal lines for use in spacing.

This engraver creates the following layout object(s): NoteSpacing.

Output_property_engraver

Apply a procedure to any grob acknowledged.

Music types accepted: apply-output-event

Part_combine_engraver

Part combine engraver for orchestral scores: Print markings ‘a2’, ‘Solo’, ‘Solo II’, and ‘unisono’.

Music types accepted: note-event and part-combine-event

Properties (read)

aDueText (markup)

Text to print at a unisono passage.

partCombineTextsOnNote (boolean)

Print part-combine texts only on the next note rather than immediately on rests or skips.

printPartCombineTexts (boolean)

Set ‘Solo’ and ‘A due’ texts in the part combiner?

soloIIText (markup)

The text for the start of a solo for voice ‘two’ when part-combining.

soloText (markup)

The text for the start of a solo when part-combining.

This engraver creates the following layout object(s): CombineTextScript.

Percent_repeat_engraver

Make whole measure repeats.

Music types accepted: percent-event

Properties (read)

countPercentRepeats (boolean)

If set, produce counters for percent repeats.

currentCommandColumn (graphical (layout) object)

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

repeatCountVisibility (procedure)

A procedure taking as arguments an integer and context, returning whether the corresponding percent repeat number should be printed when countPercentRepeats is set.

This engraver creates the following layout object(s): PercentRepeat and PercentRepeatCounter.

Phrasing_slur_engraver

Print phrasing slurs. Similar to Slur_engraver.

Music types accepted: note-event and phrasing-slur-event

This engraver creates the following layout object(s): PhrasingSlur.

Pitched_trill_engraver

Print the bracketed note head after a note head with trill.

This engraver creates the following layout object(s): TrillPitchAccidental, TrillPitchGroup, TrillPitchHead and TrillPitchParentheses.

Repeat_tie_engraver

Create repeat ties.

Music types accepted: repeat-tie-event

This engraver creates the following layout object(s): RepeatTie and RepeatTieColumn.

Rest_engraver

Engrave rests.

Music types accepted: rest-event

Properties (read)

middleCPosition (number)

The place of the middle C, measured in half staff-spaces. Usually determined by looking at middleCClefPosition and middleCOffset.

This engraver creates the following layout object(s): Rest.

Rhythmic_column_engraver

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

This engraver creates the following layout object(s): NoteColumn.

Script_column_engraver

Find potentially colliding scripts and put them into a ScriptColumn object; that will fix the collisions.

This engraver creates the following layout object(s): ScriptColumn.

Script_engraver

Handle note scripted articulations.

Music types accepted: articulation-event

Properties (read)

scriptDefinitions (list)

The description of scripts. This is used by the Script_engraver for typesetting note-superscripts and subscripts. See scm/script.scm for more information.

This engraver creates the following layout object(s): Script.

Slash_repeat_engraver

Make beat repeats.

Music types accepted: repeat-slash-event

This engraver creates the following layout object(s): DoubleRepeatSlash and RepeatSlash.

Slur_engraver

Build slur grobs from slur events.

Music types accepted: 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_engraver

Forbid breaks in certain spanners.

Stem_engraver

Create stems, flags and single-stem tremolos. It also works together with the beam engraver for overriding beaming.

Music types accepted: tremolo-event

Properties (read)

currentBarLine (graphical (layout) object)

Set to the BarLine that Bar_engraver has created in the current timestep.

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.

This engraver creates the following layout object(s): Flag, Stem, StemStub and StemTremolo.

Text_engraver

Create text scripts.

Music types accepted: text-script-event

This engraver creates the following layout object(s): TextScript.

Text_spanner_engraver

Create text spanner from an event.

Music types accepted: text-span-event

Properties (read)

currentMusicalColumn (graphical (layout) object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

This engraver creates the following layout object(s): TextSpanner.

Tie_engraver

Generate ties between note heads of equal pitch.

Music types accepted: tie-event

Properties (read)

skipTypesetting (boolean)

If true, no typesetting is done, speeding up the interpretation phase. Useful for debugging large scores.

tieWaitForNote (boolean)

If true, tied notes do not have to follow each other directly. This can be used for writing out arpeggios.

Properties (write)

tieMelismaBusy (boolean)

Signal whether a tie is present.

This engraver creates the following layout object(s): Tie and TieColumn.

Trill_spanner_engraver

Create trill spanners.

Music types accepted: trill-span-event

Properties (read)

currentCommandColumn (graphical (layout) object)

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

currentMusicalColumn (graphical (layout) object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

This engraver creates the following layout object(s): TrillSpanner.

Tuplet_engraver

Catch tuplet events and generate appropriate bracket.

Music types accepted: tuplet-span-event

Properties (read)

tupletFullLength (boolean)

If set, the tuplet is printed up to the start of the next note.

tupletFullLengthNote (boolean)

If set, end at the next note, otherwise end on the matter (time signatures, etc.) before the note.

This engraver creates the following layout object(s): TupletBracket and TupletNumber.


2.1.6 Devnull

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.


2.1.7 DrumStaff

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, BreathingSign, CaesuraScript, Clef, ClefModifier, CueClef, CueEndClef, DotColumn, FingeringColumn, InstrumentName, LedgerLineSpanner, NoteCollision, RestCollision, ScriptColumn, ScriptRow, SostenutoPedalLineSpanner, StaffEllipsis, StaffHighlight, StaffSpacing, StaffSymbol, SustainPedalLineSpanner, TimeSignature, UnaCordaPedalLineSpanner and VerticalAxisGroup.

This context sets the following properties:

  • Set context property clefGlyph to "clefs.percussion".
  • Set context property clefPosition to 0.
  • Set context property createSpacing to #t.
  • Set context property ignoreFiguredBassRest to #f.
  • Set context property instrumentName to '().
  • Set context property localAlterations to '().
  • Set context property ottavationMarkups to:
    '((4 . "29")
      (3 . "22")
      (2 . "15")
      (1 . "8")
      (-1 . "8")
      (-2 . "15")
      (-3 . "22")
      (-4 . "29"))
    
  • Set context property shortInstrumentName to '().
  • Set grob property staff-padding in Script to 0.75.

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

Alteration_glyph_engraver

Set the glyph-name-alist of all grobs having the accidental-switch-interface to the value of the context’s alterationGlyphs property, when defined.

Properties (read)

alterationGlyphs (list)

Alist mapping alterations to accidental glyphs. Alterations are given as exact numbers, e.g., -1/2 for flat. This applies to all grobs that can print accidentals.

Axis_group_engraver

Group all objects created in this context in a VerticalAxisGroup spanner.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

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-empty set 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): VerticalAxisGroup.

Bar_engraver

Create bar lines for various commands, including \\bar.

If forbidBreakBetweenBarLines is true, allow line breaks at bar lines only.

Music types accepted: ad-hoc-jump-event, caesura-event, coda-mark-event, dal-segno-event, fine-event, section-event and segno-mark-event

Properties (read)

caesuraType (list)

An alist

((bar-line . bar-type)
 (breath . breath-type)
 (scripts . script-type…)
 (underlying-bar-line . bar-type))

specifying which breath mark, bar line, and scripts to create at \caesura. All entries are optional.

bar-line has higher priority than a measure bar line and underlying-bar-line has lower priority than a measure bar line.

caesuraTypeTransform (procedure)

An engraver callback taking three arguments and returning an alist of the same kind as caesuraType.

The first argument is the context.

The second argument is the value of caesuraType with an additional entry (articulations . symbol-list) identifying the articulations attached to the caesura in the music. If the transform function returns this second argument unmodified, it is as if no transform function were set; the function is free to return a different value. The transform function can remove articulations, but any added articulations are ignored.

The third argument is a symbol-list identifying certain things the engraver has observed. bar-line indicates that the engraver has observed a BarLine at the current moment.

doubleRepeatBarType (string)

Bar line to insert where the end of one \repeat volta coincides with the start of another. The default is ‘:..:’.

doubleRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the end of one \repeat volta and the beginning of another. The default is ‘:|.S.|:’.

endRepeatBarType (string)

Bar line to insert at the end of a \repeat volta. The default is ‘:|.’.

endRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the end of a \repeat volta. The default is ‘:|.S’.

fineBarType (string)

Bar line to insert at \fine. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘|.’.

fineSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with \fine. The default is ‘|.S’.

fineStartRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with \fine and the start of a \repeat volta. The default is ‘|.S.|:’.

forbidBreakBetweenBarLines (boolean)

If set to #t, Bar_engraver forbids line breaks where there is no bar line.

measureBarType (string)

Bar line to insert at a measure boundary.

printInitialRepeatBar (boolean)

Use a special bar line at the start of a volta repeat even at the beginning of the piece.

printTrivialVoltaRepeats (boolean)

Notate volta-style repeats even when the repeat count is 1.

repeatCommands (list)

A list of commands related to volta-style repeats. In general, each element is a list, '(command args…), but a command with no arguments may be abbreviated to a symbol; e.g., '((start-repeat)) may be given as '(start-repeat).

end-repeat return-count

End a repeated section. return-count is the number of times to go back from this point to the beginning of the section.

start-repeat repeat-count

Start a repeated section. repeat-count is the number of times to perform this section.

volta text

If text is markup, start a volta bracket with that label; if text is #f, end a volta bracket.

sectionBarType (string)

Bar line to insert at \section. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘||’.

segnoBarType (string)

Bar line to insert at an in-staff segno. The default is ‘S’.

segnoStyle (symbol)

A symbol that indicates how to print a segno: bar-line or mark.

startRepeatBarType (string)

Bar line to insert at the start of a \repeat volta. The default is ‘.|:’.

startRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the start of a \repeat volta. The default is ‘S.|:’.

underlyingRepeatBarType (string)

Bar line to insert at points of repetition or departure where no bar line would normally appear, for example at the end of a system broken in mid measure where the next system begins with a segno. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘||’.

whichBar (string)

The current bar line type, or '() if there is no bar line. Setting this explicitly in user code is deprecated. Use \bar or related commands to set it.

Properties (write)

currentBarLine (graphical (layout) object)

Set to the BarLine that Bar_engraver has created in the current timestep.

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

This engraver creates the following layout object(s): BarLine.

Caesura_engraver

Notate a short break in sound that does not shorten the previous note.

Depending on the result of passing the value of caesuraType through caesuraTypeTransform, this engraver may create a BreathingSign with CaesuraScript grobs aligned to it, or it may create CaesuraScript grobs and align them to a BarLine.

If this engraver observes a BarLine, it calls caesuraTypeTransform again with the new information, and if necessary, recreates its grobs.

Music types accepted: caesura-event

Properties (read)

breathMarkDefinitions (list)

The description of breath marks. This is used by the Breathing_sign_engraver. See scm/breath.scm for more information.

caesuraType (list)

An alist

((bar-line . bar-type)
 (breath . breath-type)
 (scripts . script-type…)
 (underlying-bar-line . bar-type))

specifying which breath mark, bar line, and scripts to create at \caesura. All entries are optional.

bar-line has higher priority than a measure bar line and underlying-bar-line has lower priority than a measure bar line.

caesuraTypeTransform (procedure)

An engraver callback taking three arguments and returning an alist of the same kind as caesuraType.

The first argument is the context.

The second argument is the value of caesuraType with an additional entry (articulations . symbol-list) identifying the articulations attached to the caesura in the music. If the transform function returns this second argument unmodified, it is as if no transform function were set; the function is free to return a different value. The transform function can remove articulations, but any added articulations are ignored.

The third argument is a symbol-list identifying certain things the engraver has observed. bar-line indicates that the engraver has observed a BarLine at the current moment.

scriptDefinitions (list)

The description of scripts. This is used by the Script_engraver for typesetting note-superscripts and subscripts. See scm/script.scm for more information.

This engraver creates the following layout object(s): BreathingSign and CaesuraScript.

Clef_engraver

Determine 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 to a clef. Values of 7 and -7 are common.

clefTranspositionStyle (symbol)

Determines the way the ClefModifier grob of a clef is displayed. Possible values are 'default, 'parenthesized, and 'bracketed.

explicitClefVisibility (vector)

break-visibility’ function for clef changes.

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

forceBreak (boolean)

Set to #t when an event forcing a line break was heard.

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_engraver

Collect NoteColumns, and as soon as there are two or more, put them in a NoteCollision object.

This engraver creates the following layout object(s): NoteCollision.

Cue_clef_engraver

Determine and set reference point for pitches in cued voices.

Properties (read)

clefTransposition (integer)

Add this much extra transposition to a clef. 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 to a cue clef. Values of 7 and -7 are common.

cueClefTranspositionStyle (symbol)

Determines the way the ClefModifier grob of a cue clef is displayed. Possible values are 'default, 'parenthesized, and 'bracketed.

explicitCueClefVisibility (vector)

break-visibility’ function for cue clef changes.

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

forceBreak (boolean)

Set to #t when an event forcing a line break was heard.

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 cueClefPosition and cueClefGlyph.

This engraver creates the following layout object(s): ClefModifier, CueClef and CueEndClef.

Dot_column_engraver

Engrave 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): DotColumn.

Figured_bass_engraver

Make 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_engraver

Position figured bass alignments over notes.

This engraver creates the following layout object(s): BassFigureAlignmentPositioning.

Fingering_column_engraver

Find potentially colliding scripts and put them into a FingeringColumn object; that will fix the collisions.

This engraver creates the following layout object(s): FingeringColumn.

Font_size_engraver

Put fontSize into font-size grob property.

Properties (read)

fontSize (number)

The relative size of all grobs in a context.

Grob_pq_engraver

Administrate when certain grobs (e.g., note heads) stop playing.

Properties (read)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Properties (write)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Instrument_name_engraver

Create a system start text for instrument or vocal names.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

instrumentName (markup)

The name to print left of a staff. The instrumentName property labels the staff in the first system, and the shortInstrumentName property 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): InstrumentName.

Ledger_line_engraver

Create the spanner to draw ledger lines, and notices objects that need ledger lines.

This engraver creates the following layout object(s): LedgerLineSpanner.

Merge_mmrest_numbers_engraver

Engraver to merge multi-measure rest numbers in multiple voices.

This works by gathering all multi-measure rest numbers at a time step. If they all have the same text and there are at least two only the first one is retained and the others are hidden.

Non_musical_script_column_engraver

Find potentially colliding non-musical scripts and put them into a ScriptColumn object; that will fix the collisions.

This engraver creates the following layout object(s): ScriptColumn.

Output_property_engraver

Apply a procedure to any grob acknowledged.

Music types accepted: apply-output-event

Piano_pedal_align_engraver

Align piano pedal symbols and brackets.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

This engraver creates the following layout object(s): SostenutoPedalLineSpanner, SustainPedalLineSpanner and UnaCordaPedalLineSpanner.

Pure_from_neighbor_engraver

Coordinates items that get their pure heights from their neighbors.

Rest_collision_engraver

Handle 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): RestCollision.

Script_row_engraver

Determine order in horizontal side position elements.

This engraver creates the following layout object(s): ScriptRow.

Separating_line_group_engraver

Generate objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)

Create StaffSpacing objects? Should be set for staves.

Properties (write)

hasStaffSpacing (boolean)

True if currentCommandColumn contains items that will affect spacing.

This engraver creates the following layout object(s): StaffSpacing.

Skip_typesetting_engraver

Create a StaffEllipsis when skipTypesetting is used.

Properties (read)

skipTypesetting (boolean)

If true, no typesetting is done, speeding up the interpretation phase. Useful for debugging large scores.

This engraver creates the following layout object(s): StaffEllipsis.

Staff_collecting_engraver

Maintain the stavesFound variable.

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_highlight_engraver

Highlights music passages.

Music types accepted: staff-highlight-event

Properties (read)

currentCommandColumn (graphical (layout) object)

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

This engraver creates the following layout object(s): StaffHighlight.

Staff_symbol_engraver

Create the constellation of five (default) staff lines.

Music types accepted: staff-span-event

This engraver creates the following layout object(s): StaffSymbol.

Time_signature_engraver

Create a TimeSignature whenever timeSignatureFraction changes.

Music types accepted: time-signature-event

Properties (read)

initialTimeSignatureVisibility (vector)

break visibility for the initial time signature.

partialBusy (boolean)

Signal that \partial acts at the current timestep.

timeSignatureFraction (positive, finite 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): TimeSignature.


2.1.8 DrumVoice

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, FingerGlideSpanner, 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, TrillPitchParentheses, 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_engraver

Generate beams based on measure characteristics and observed Stems. Uses baseMoment, beatStructure, beamExceptions, measureLength, and measurePosition to decide when to start and stop a beam. Overriding beaming is done through Stem_engraver properties stemLeftBeamCount and stemRightBeamCount.

Music types accepted: beam-forbid-event

Properties (read)

autoBeaming (boolean)

If set to #t then beams are generated automatically. If set to #f, auto-beaming is switched off as soon as the current beam (if any) is finished according to the auto-beaming rules.

baseMoment (positive moment with no grace part)

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, beams of mulitple stems may be subdivided by omitting a number of beamlets, dependent on maxSubdivideInterval, between beats at mulitiples of minSubdivideInterval.

This engraver creates the following layout object(s): Beam.

Beam_engraver

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

Music types accepted: beam-event

Properties (read)

baseMoment (positive moment with no grace part)

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, beams of mulitple stems may be subdivided by omitting a number of beamlets, dependent on maxSubdivideInterval, between beats at mulitiples of minSubdivideInterval.

This engraver creates the following layout object(s): Beam.

Bend_engraver

Create fall spanners.

Music types accepted: bend-after-event

Properties (read)

currentBarLine (graphical (layout) object)

Set to the BarLine that Bar_engraver has created in the current timestep.

currentCommandColumn (graphical (layout) object)

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

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

Breathing_sign_engraver

Notate breath marks.

Music types accepted: breathing-event

Properties (read)

breathMarkType (symbol)

The type of BreathingSign to create at \breathe.

This engraver creates the following layout object(s): BreathingSign.

Chord_tremolo_engraver

Generate beams for tremolo repeats.

Music types accepted: tremolo-span-event

This engraver creates the following layout object(s): Beam.

Dots_engraver

Create Dots objects for rhythmic-head-interfaces.

This engraver creates the following layout object(s): Dots.

Double_percent_repeat_engraver

Make double measure repeats.

Music types accepted: double-percent-event

Properties (read)

countPercentRepeats (boolean)

If set, produce counters for percent repeats.

measureLength (positive moment with no grace part)

Length of one measure in the current time signature.

repeatCountVisibility (procedure)

A procedure taking as arguments an integer and context, returning whether the corresponding percent repeat number should be printed when countPercentRepeats is set.

Properties (write)

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

This engraver creates the following layout object(s): DoublePercentRepeat and DoublePercentRepeatCounter.

Drum_notes_engraver

Generate drum note heads.

Music types accepted: note-event

Properties (read)

drumStyleTable (hash table)

A hash table which maps drums to layout settings. Predefined values: ‘drums-style’, ‘agostini-drums-style’, ‘weinberg-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): NoteHead and Script.

Dynamic_align_engraver

Align hairpins and dynamic texts on a horizontal line.

Properties (read)

currentMusicalColumn (graphical (layout) object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

This engraver creates the following layout object(s): DynamicLineSpanner.

Dynamic_engraver

Create hairpins, dynamic texts and dynamic text spanners.

Music types accepted: absolute-dynamic-event, break-dynamic-span-event and span-dynamic-event

Properties (read)

crescendoSpanner (symbol)

The type of spanner to be used for crescendi. Available values are ‘hairpin’ and ‘text’. If unset, a hairpin crescendo is used.

crescendoText (markup)

The text to print at start of non-hairpin crescendo, i.e., ‘cresc.’.

currentMusicalColumn (graphical (layout) object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

decrescendoSpanner (symbol)

The type of spanner to be used for decrescendi. Available values are ‘hairpin’ and ‘text’. If unset, a hairpin decrescendo is used.

decrescendoText (markup)

The text to print at start of non-hairpin decrescendo, i.e., ‘dim.’.

This engraver creates the following layout object(s): DynamicText, DynamicTextSpanner and Hairpin.

Finger_glide_engraver

Engraver to print a line between two Fingering grobs.

Music types accepted: note-event

This engraver creates the following layout object(s): FingerGlideSpanner.

Font_size_engraver

Put fontSize into font-size grob property.

Properties (read)

fontSize (number)

The relative size of all grobs in a context.

Forbid_line_break_engraver

Forbid line breaks when note heads are still playing at some point.

Properties (read)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Properties (write)

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

Grace_auto_beam_engraver

Generates one autobeam group across an entire grace phrase. As usual, any manual beaming or \noBeam will block autobeaming, just like setting the context property ‘autoBeaming’ to ##f.

Music types accepted: beam-forbid-event

Properties (read)

autoBeaming (boolean)

If set to #t then beams are generated automatically. If set to #f, auto-beaming is switched off as soon as the current beam (if any) is finished according to the auto-beaming rules.

This engraver creates the following layout object(s): Beam.

Grace_beam_engraver

Handle Beam events by engraving beams. If omitted, then notes are printed with flags instead of beams. Only engraves beams when we are at grace points in time.

Music types accepted: beam-event

Properties (read)

baseMoment (positive moment with no grace part)

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, beams of mulitple stems may be subdivided by omitting a number of beamlets, dependent on maxSubdivideInterval, between beats at mulitiples of minSubdivideInterval.

This engraver creates the following layout object(s): Beam.

Grace_engraver

Set font size and other properties for grace notes.

Properties (read)

graceSettings (list)

Overrides for grace notes. This property should be manipulated through the add-grace-property function.

Grob_pq_engraver

Administrate when certain grobs (e.g., note heads) stop playing.

Properties (read)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Properties (write)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Instrument_switch_engraver

Create a cue text for taking instrument.

This engraver is deprecated.

Properties (read)

instrumentCueName (markup)

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

This property is deprecated

This engraver creates the following layout object(s): InstrumentSwitch.

Laissez_vibrer_engraver

Create laissez vibrer items.

Music types accepted: laissez-vibrer-event

This engraver creates the following layout object(s): LaissezVibrerTie and LaissezVibrerTieColumn.

Multi_measure_rest_engraver

Engrave multi-measure rests that are produced with ‘R’. It reads measureStartNow and internalBarNumber to 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 items (clef, key signature, etc.).

internalBarNumber (integer)

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

measureStartNow (boolean)

True at the beginning of a measure.

restNumberThreshold (number)

If a multimeasure rest has more measures than this, a number is printed.

This engraver creates the following layout object(s): MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript and MultiMeasureRestText.

Note_spacing_engraver

Generate NoteSpacing, an object linking horizontal lines for use in spacing.

This engraver creates the following layout object(s): NoteSpacing.

Output_property_engraver

Apply a procedure to any grob acknowledged.

Music types accepted: apply-output-event

Part_combine_engraver

Part combine engraver for orchestral scores: Print markings ‘a2’, ‘Solo’, ‘Solo II’, and ‘unisono’.

Music types accepted: note-event and part-combine-event

Properties (read)

aDueText (markup)

Text to print at a unisono passage.

partCombineTextsOnNote (boolean)

Print part-combine texts only on the next note rather than immediately on rests or skips.

printPartCombineTexts (boolean)

Set ‘Solo’ and ‘A due’ texts in the part combiner?

soloIIText (markup)

The text for the start of a solo for voice ‘two’ when part-combining.

soloText (markup)

The text for the start of a solo when part-combining.

This engraver creates the following layout object(s): CombineTextScript.

Percent_repeat_engraver

Make whole measure repeats.

Music types accepted: percent-event

Properties (read)

countPercentRepeats (boolean)

If set, produce counters for percent repeats.

currentCommandColumn (graphical (layout) object)

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

repeatCountVisibility (procedure)

A procedure taking as arguments an integer and context, returning whether the corresponding percent repeat number should be printed when countPercentRepeats is set.

This engraver creates the following layout object(s): PercentRepeat and PercentRepeatCounter.

Phrasing_slur_engraver

Print phrasing slurs. Similar to Slur_engraver.

Music types accepted: note-event and phrasing-slur-event

This engraver creates the following layout object(s): PhrasingSlur.

Pitched_trill_engraver

Print the bracketed note head after a note head with trill.

This engraver creates the following layout object(s): TrillPitchAccidental, TrillPitchGroup, TrillPitchHead and TrillPitchParentheses.

Repeat_tie_engraver

Create repeat ties.

Music types accepted: repeat-tie-event

This engraver creates the following layout object(s): RepeatTie and RepeatTieColumn.

Rest_engraver

Engrave rests.

Music types accepted: rest-event

Properties (read)

middleCPosition (number)

The place of the middle C, measured in half staff-spaces. Usually determined by looking at middleCClefPosition and middleCOffset.

This engraver creates the following layout object(s): Rest.

Rhythmic_column_engraver

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

This engraver creates the following layout object(s): NoteColumn.

Script_column_engraver

Find potentially colliding scripts and put them into a ScriptColumn object; that will fix the collisions.

This engraver creates the following layout object(s): ScriptColumn.

Script_engraver

Handle note scripted articulations.

Music types accepted: articulation-event

Properties (read)

scriptDefinitions (list)

The description of scripts. This is used by the Script_engraver for typesetting note-superscripts and subscripts. See scm/script.scm for more information.

This engraver creates the following layout object(s): Script.

Slash_repeat_engraver

Make beat repeats.

Music types accepted: repeat-slash-event

This engraver creates the following layout object(s): DoubleRepeatSlash and RepeatSlash.

Slur_engraver

Build slur grobs from slur events.

Music types accepted: 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_engraver

Forbid breaks in certain spanners.

Stem_engraver

Create stems, flags and single-stem tremolos. It also works together with the beam engraver for overriding beaming.

Music types accepted: tremolo-event

Properties (read)

currentBarLine (graphical (layout) object)

Set to the BarLine that Bar_engraver has created in the current timestep.

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.

This engraver creates the following layout object(s): Flag, Stem, StemStub and StemTremolo.

Text_engraver

Create text scripts.

Music types accepted: text-script-event

This engraver creates the following layout object(s): TextScript.

Text_spanner_engraver

Create text spanner from an event.

Music types accepted: text-span-event

Properties (read)

currentMusicalColumn (graphical (layout) object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

This engraver creates the following layout object(s): TextSpanner.

Tie_engraver

Generate ties between note heads of equal pitch.

Music types accepted: tie-event

Properties (read)

skipTypesetting (boolean)

If true, no typesetting is done, speeding up the interpretation phase. Useful for debugging large scores.

tieWaitForNote (boolean)

If true, tied notes do not have to follow each other directly. This can be used for writing out arpeggios.

Properties (write)

tieMelismaBusy (boolean)

Signal whether a tie is present.

This engraver creates the following layout object(s): Tie and TieColumn.

Trill_spanner_engraver

Create trill spanners.

Music types accepted: trill-span-event

Properties (read)

currentCommandColumn (graphical (layout) object)

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

currentMusicalColumn (graphical (layout) object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

This engraver creates the following layout object(s): TrillSpanner.

Tuplet_engraver

Catch tuplet events and generate appropriate bracket.

Music types accepted: tuplet-span-event

Properties (read)

tupletFullLength (boolean)

If set, the tuplet is printed up to the start of the next note.

tupletFullLengthNote (boolean)

If set, end at the next note, otherwise end on the matter (time signatures, etc.) before the note.

This engraver creates the following layout object(s): TupletBracket and TupletNumber.


2.1.9 Dynamics

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

  • Set context property pedalSustainStrings to:
    '("Ped." "*Ped." "*")
    
  • Set context property pedalUnaCordaStrings to:
    '("una corda" "" "tre corde")
    
  • Set grob property font-shape in TextScript to 'italic.
  • Set grob property nonstaff-relatedstaff-spacing in VerticalAxisGroup to :
    '((basic-distance . 5) (padding . 0.5))
    
  • Set grob property outside-staff-priority in DynamicLineSpanner to #f.
  • Set grob property outside-staff-priority in DynamicText to #f.
  • Set grob property outside-staff-priority in Hairpin to #f.
  • Set grob property staff-affinity in VerticalAxisGroup to 0.
  • Set grob property Y-offset in DynamicLineSpanner 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):

Axis_group_engraver

Group all objects created in this context in a VerticalAxisGroup spanner.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

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-empty set 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): VerticalAxisGroup.

Bar_engraver

Create bar lines for various commands, including \\bar.

If forbidBreakBetweenBarLines is true, allow line breaks at bar lines only.

Music types accepted: ad-hoc-jump-event, caesura-event, coda-mark-event, dal-segno-event, fine-event, section-event and segno-mark-event

Properties (read)

caesuraType (list)

An alist

((bar-line . bar-type)
 (breath . breath-type)
 (scripts . script-type…)
 (underlying-bar-line . bar-type))

specifying which breath mark, bar line, and scripts to create at \caesura. All entries are optional.

bar-line has higher priority than a measure bar line and underlying-bar-line has lower priority than a measure bar line.

caesuraTypeTransform (procedure)

An engraver callback taking three arguments and returning an alist of the same kind as caesuraType.

The first argument is the context.

The second argument is the value of caesuraType with an additional entry (articulations . symbol-list) identifying the articulations attached to the caesura in the music. If the transform function returns this second argument unmodified, it is as if no transform function were set; the function is free to return a different value. The transform function can remove articulations, but any added articulations are ignored.

The third argument is a symbol-list identifying certain things the engraver has observed. bar-line indicates that the engraver has observed a BarLine at the current moment.

doubleRepeatBarType (string)

Bar line to insert where the end of one \repeat volta coincides with the start of another. The default is ‘:..:’.

doubleRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the end of one \repeat volta and the beginning of another. The default is ‘:|.S.|:’.

endRepeatBarType (string)

Bar line to insert at the end of a \repeat volta. The default is ‘:|.’.

endRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the end of a \repeat volta. The default is ‘:|.S’.

fineBarType (string)

Bar line to insert at \fine. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘|.’.

fineSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with \fine. The default is ‘|.S’.

fineStartRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with \fine and the start of a \repeat volta. The default is ‘|.S.|:’.

forbidBreakBetweenBarLines (boolean)

If set to #t, Bar_engraver forbids line breaks where there is no bar line.

measureBarType (string)

Bar line to insert at a measure boundary.

printInitialRepeatBar (boolean)

Use a special bar line at the start of a volta repeat even at the beginning of the piece.

printTrivialVoltaRepeats (boolean)

Notate volta-style repeats even when the repeat count is 1.

repeatCommands (list)

A list of commands related to volta-style repeats. In general, each element is a list, '(command args…), but a command with no arguments may be abbreviated to a symbol; e.g., '((start-repeat)) may be given as '(start-repeat).

end-repeat return-count

End a repeated section. return-count is the number of times to go back from this point to the beginning of the section.

start-repeat repeat-count

Start a repeated section. repeat-count is the number of times to perform this section.

volta text

If text is markup, start a volta bracket with that label; if text is #f, end a volta bracket.

sectionBarType (string)

Bar line to insert at \section. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘||’.

segnoBarType (string)

Bar line to insert at an in-staff segno. The default is ‘S’.

segnoStyle (symbol)

A symbol that indicates how to print a segno: bar-line or mark.

startRepeatBarType (string)

Bar line to insert at the start of a \repeat volta. The default is ‘.|:’.

startRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the start of a \repeat volta. The default is ‘S.|:’.

underlyingRepeatBarType (string)

Bar line to insert at points of repetition or departure where no bar line would normally appear, for example at the end of a system broken in mid measure where the next system begins with a segno. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘||’.

whichBar (string)

The current bar line type, or '() if there is no bar line. Setting this explicitly in user code is deprecated. Use \bar or related commands to set it.

Properties (write)

currentBarLine (graphical (layout) object)

Set to the BarLine that Bar_engraver has created in the current timestep.

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

This engraver creates the following layout object(s): BarLine.

Dynamic_align_engraver

Align hairpins and dynamic texts on a horizontal line.

Properties (read)

currentMusicalColumn (graphical (layout) object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

This engraver creates the following layout object(s): DynamicLineSpanner.

Dynamic_engraver

Create hairpins, dynamic texts and dynamic text spanners.

Music types accepted: absolute-dynamic-event, break-dynamic-span-event and span-dynamic-event

Properties (read)

crescendoSpanner (symbol)

The type of spanner to be used for crescendi. Available values are ‘hairpin’ and ‘text’. If unset, a hairpin crescendo is used.

crescendoText (markup)

The text to print at start of non-hairpin crescendo, i.e., ‘cresc.’.

currentMusicalColumn (graphical (layout) object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

decrescendoSpanner (symbol)

The type of spanner to be used for decrescendi. Available values are ‘hairpin’ and ‘text’. If unset, a hairpin decrescendo is used.

decrescendoText (markup)

The text to print at start of non-hairpin decrescendo, i.e., ‘dim.’.

This engraver creates the following layout object(s): DynamicText, DynamicTextSpanner and Hairpin.

Font_size_engraver

Put fontSize into font-size grob property.

Properties (read)

fontSize (number)

The relative size of all grobs in a context.

Output_property_engraver

Apply a procedure to any grob acknowledged.

Music types accepted: apply-output-event

Piano_pedal_engraver

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

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, bracket or mixed (both).

pedalUnaCordaStrings (list)

See pedalSustainStrings.

pedalUnaCordaStyle (symbol)

See pedalSustainStyle.

This engraver creates the following layout object(s): PianoPedalBracket, SostenutoPedal, SustainPedal and UnaCordaPedal.

Script_engraver

Handle note scripted articulations.

Music types accepted: articulation-event

Properties (read)

scriptDefinitions (list)

The description of scripts. This is used by the Script_engraver for typesetting note-superscripts and subscripts. See scm/script.scm for more information.

This engraver creates the following layout object(s): Script.

Text_engraver

Create text scripts.

Music types accepted: text-script-event

This engraver creates the following layout object(s): TextScript.

Text_spanner_engraver

Create text spanner from an event.

Music types accepted: text-span-event

Properties (read)

currentMusicalColumn (graphical (layout) object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

This engraver creates the following layout object(s): TextSpanner.


2.1.10 FiguredBass

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:

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_engraver

Group all objects created in this context in a VerticalAxisGroup spanner.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

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-empty set 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): VerticalAxisGroup.

Figured_bass_engraver

Make 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_engraver

Generate objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)

Create StaffSpacing objects? Should be set for staves.

Properties (write)

hasStaffSpacing (boolean)

True if currentCommandColumn contains items that will affect spacing.

This engraver creates the following layout object(s): StaffSpacing.


2.1.11 FretBoards

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:

  • Set context property handleNegativeFrets to 'recalculate.
  • Set context property instrumentName to '().
  • Set context property predefinedDiagramTable to #<hash-table>.
  • Set context property restrainOpenStrings to #f.
  • Set context property 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_engraver

Group all objects created in this context in a VerticalAxisGroup spanner.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

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-empty set 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): VerticalAxisGroup.

Font_size_engraver

Put fontSize into font-size grob property.

Properties (read)

fontSize (number)

The relative size of all grobs in a context.

Fretboard_engraver

Generate 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): FretBoard.

Instrument_name_engraver

Create a system start text for instrument or vocal names.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

instrumentName (markup)

The name to print left of a staff. The instrumentName property labels the staff in the first system, and the shortInstrumentName property 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): InstrumentName.

Output_property_engraver

Apply a procedure to any grob acknowledged.

Music types accepted: apply-output-event

Separating_line_group_engraver

Generate objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)

Create StaffSpacing objects? Should be set for staves.

Properties (write)

hasStaffSpacing (boolean)

True if currentCommandColumn contains items that will affect spacing.

This engraver creates the following layout object(s): StaffSpacing.


2.1.12 Global

Hard coded entry point for LilyPond. Usually not meant to be modified directly.

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 ChordGridScore, Score, StandaloneRhythmScore and VaticanaScore.


2.1.13 GrandStaff

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, StaffGrouper, SystemStartBar, SystemStartBrace, SystemStartBracket, SystemStartSquare and VerticalAlignment.

This context sets the following properties:

  • Set context property instrumentName to '().
  • Set context property localAlterations to #f.
  • Set context property localAlterations to '().
  • Set context property localAlterations to '().
  • Set context property shortInstrumentName to '().
  • Set context property systemStartDelimiter to 'SystemStartBrace.
  • Set context property systemStartDelimiter to 'SystemStartBracket.
  • Set context property topLevelAlignment to #f.
  • Set grob property extra-spacing-width in DynamicText 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 ChoirStaff, ChordNames, Devnull, DrumStaff, Dynamics, FiguredBass, FretBoards, GrandStaff, GregorianTranscriptionLyrics, GregorianTranscriptionStaff, KievanStaff, Lyrics, MensuralStaff, NoteNames, OneStaff, PetrucciStaff, PianoStaff, RhythmicStaff, Staff, StaffGroup, TabStaff, VaticanaLyrics and VaticanaStaff.

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

Instrument_name_engraver

Create a system start text for instrument or vocal names.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

instrumentName (markup)

The name to print left of a staff. The instrumentName property labels the staff in the first system, and the shortInstrumentName property 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): InstrumentName.

Output_property_engraver

Apply a procedure to any grob acknowledged.

Music types accepted: apply-output-event

Span_arpeggio_engraver

Make arpeggios that span multiple staves.

Properties (read)

connectArpeggios (boolean)

If set, connect arpeggios across piano staff.

This engraver creates the following layout object(s): Arpeggio.

Span_bar_engraver

Make 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): SpanBar.

Span_bar_stub_engraver

Make stubs for span bars in all contexts that the span bars cross.

This engraver creates the following layout object(s): SpanBarStub.

System_start_delimiter_engraver

Create a system start delimiter (i.e., a SystemStartBar, SystemStartBrace, SystemStartBracket or SystemStartSquare spanner).

Properties (read)

currentCommandColumn (graphical (layout) object)

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

systemStartDelimiter (symbol)

Which grob to make for the start of the system/staff? Set to SystemStartBrace, SystemStartBracket or SystemStartBar.

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_engraver

Catch 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): StaffGrouper and VerticalAlignment.


2.1.14 GregorianTranscriptionLyrics

A lyrics context for notating Gregorian chant in modern style.

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

This context creates the following layout object(s): InstrumentName, LyricExtender, LyricHyphen, LyricRepeatCount, LyricSpace, LyricText, StanzaNumber, VerticalAxisGroup and VowelTransition.

This context sets the following properties:

  • Set context property instrumentName to '().
  • Set context property lyricRepeatCountFormatter to #<procedure at lily/translation-functions.scm:208:4 (context repeat-count)>.
  • Set context property searchForVoice to #f.
  • Set context property shortInstrumentName to '().
  • Set grob property bar-extent in BarLine to :
    '(-0.05 . 0.05)
    
  • Set grob property font-size in InstrumentName to 1.0.
  • Set grob property nonstaff-nonstaff-spacing in VerticalAxisGroup to :
    '((basic-distance . 0)
      (minimum-distance . 2.8)
      (padding . 0.2)
      (stretchability . 0))
    
  • Set grob property nonstaff-relatedstaff-spacing in VerticalAxisGroup to :
    '((basic-distance . 5.5)
      (padding . 0.5)
      (stretchability . 1))
    
  • Set grob property nonstaff-unrelatedstaff-spacing.padding in VerticalAxisGroup to 1.5.
  • Set grob property parent-alignment-X in LyricRepeatCount to 1.
  • Set grob property remove-empty in VerticalAxisGroup to #t.
  • Set grob property remove-first in VerticalAxisGroup to #t.
  • Set grob property self-alignment-Y in InstrumentName to #f.
  • Set grob property short-bar-extent in BarLine to :
    '(-0.05 . 0.05)
    
  • Set grob property 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_engraver

Group all objects created in this context in a VerticalAxisGroup spanner.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

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-empty set 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): VerticalAxisGroup.

Extender_engraver

Create 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): LyricExtender.

Font_size_engraver

Put fontSize into font-size grob property.

Properties (read)

fontSize (number)

The relative size of all grobs in a context.

Hyphen_engraver

Create 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): LyricHyphen, LyricSpace and VowelTransition.

Instrument_name_engraver

Create a system start text for instrument or vocal names.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

instrumentName (markup)

The name to print left of a staff. The instrumentName property labels the staff in the first system, and the shortInstrumentName property 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): InstrumentName.

Lyric_engraver

Engrave text for lyrics.

Music types accepted: lyric-event

Properties (read)

ignoreMelismata (boolean)

Ignore melismata for this Lyrics 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): LyricText.

Lyric_repeat_count_engraver

Create repeat counts within lyrics for modern transcriptions of Gregorian chant.

Music types accepted: volta-repeat-end-event

Properties (read)

lyricRepeatCountFormatter (procedure)

A procedure taking as arguments the context and the numeric repeat count. It should return the formatted repeat count as markup. If it does not return markup, no grob is created.

This engraver creates the following layout object(s): LyricRepeatCount.

Pure_from_neighbor_engraver

Coordinates items that get their pure heights from their neighbors.

Stanza_number_engraver

Engrave stanza numbers.

Properties (read)

stanza (markup)

Stanza ‘number’ to print before the start of a verse. Use in Lyrics context.

This engraver creates the following layout object(s): StanzaNumber.


2.1.15 GregorianTranscriptionStaff

A staff for notating Gregorian chant in modern 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, Divisio, DotColumn, FingeringColumn, InstrumentName, KeyCancellation, KeySignature, LedgerLineSpanner, NoteCollision, OttavaBracket, PianoPedalBracket, RestCollision, ScriptColumn, ScriptRow, SostenutoPedal, SostenutoPedalLineSpanner, StaffEllipsis, StaffHighlight, StaffSpacing, StaffSymbol, SustainPedal, SustainPedalLineSpanner, UnaCordaPedal, UnaCordaPedalLineSpanner and VerticalAxisGroup.

This context sets the following properties:

  • Set context property autoAccidentals to:
    '(Staff #<procedure at lily/music-functions.scm:1716:0 (context pitch barnum)>)
    
  • Set context property autoCautionaries to '().
  • Set context property caesuraTypeTransform to caesura-to-bar-line-or-divisio.
  • Set context property caesuraType to:
    '((breath . varcomma))
    
  • Set context property createSpacing to #t.
  • Set context property doubleRepeatBarType to "||".
  • Set context property doubleRepeatSegnoBarType to "S-||".
  • Set context property endRepeatBarType to "||".
  • Set context property endRepeatSegnoBarType to "S-||".
  • Set context property extraNatural to #f.
  • Set context property fineBarType to "||".
  • Set context property fineSegnoBarType to "S-||".
  • Set context property fineStartRepeatSegnoBarType to "S-||".
  • Set context property forbidBreakBetweenBarLines to #f.
  • Set context property ignoreFiguredBassRest to #f.
  • Set context property instrumentName to '().
  • Set context property localAlterations to '().
  • Set context property measureBarType to '().
  • Set context property ottavationMarkups to:
    '((4 . "29")
      (3 . "22")
      (2 . "15")
      (1 . "8")
      (-1 . "8")
      (-2 . "15")
      (-3 . "22")
      (-4 . "29"))
    
  • Set context property printKeyCancellation to #f.
  • Set context property printTrivialVoltaRepeats to #t.
  • Set context property sectionBarType to "||".
  • Set context property segnoBarType to "S-||".
  • Set context property shortInstrumentName to '().
  • Set context property startRepeatBarType to "||".
  • Set context property startRepeatSegnoBarType to "S-||".
  • Set context property underlyingRepeatBarType to "||".
  • Set grob property extra-spacing-height in BreathingSign to item::extra-spacing-height-including-staff.
  • Set grob property extra-spacing-width in BreathingSign to :
    '(-1.0 . 0.0)
    

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_engraver

Make accidentals. Catch note heads, ties and notices key-change events. This engraver usually lives at Staff level, but reads the settings for Accidental at Voice level, so you can \override them at Voice.

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 Score then all staves share accidentals, and if context is Staff 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:

context

The current context to which the rule should be applied.

pitch

The pitch of the note to be evaluated.

barnum

The current bar number.

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

Alteration_glyph_engraver

Set the glyph-name-alist of all grobs having the accidental-switch-interface to the value of the context’s alterationGlyphs property, when defined.

Properties (read)

alterationGlyphs (list)

Alist mapping alterations to accidental glyphs. Alterations are given as exact numbers, e.g., -1/2 for flat. This applies to all grobs that can print accidentals.

Axis_group_engraver

Group all objects created in this context in a VerticalAxisGroup spanner.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

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-empty set 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): VerticalAxisGroup.

Bar_engraver

Create bar lines for various commands, including \\bar.

If forbidBreakBetweenBarLines is true, allow line breaks at bar lines only.

Music types accepted: ad-hoc-jump-event, caesura-event, coda-mark-event, dal-segno-event, fine-event, section-event and segno-mark-event

Properties (read)

caesuraType (list)

An alist

((bar-line . bar-type)
 (breath . breath-type)
 (scripts . script-type…)
 (underlying-bar-line . bar-type))

specifying which breath mark, bar line, and scripts to create at \caesura. All entries are optional.

bar-line has higher priority than a measure bar line and underlying-bar-line has lower priority than a measure bar line.

caesuraTypeTransform (procedure)

An engraver callback taking three arguments and returning an alist of the same kind as caesuraType.

The first argument is the context.

The second argument is the value of caesuraType with an additional entry (articulations . symbol-list) identifying the articulations attached to the caesura in the music. If the transform function returns this second argument unmodified, it is as if no transform function were set; the function is free to return a different value. The transform function can remove articulations, but any added articulations are ignored.

The third argument is a symbol-list identifying certain things the engraver has observed. bar-line indicates that the engraver has observed a BarLine at the current moment.

doubleRepeatBarType (string)

Bar line to insert where the end of one \repeat volta coincides with the start of another. The default is ‘:..:’.

doubleRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the end of one \repeat volta and the beginning of another. The default is ‘:|.S.|:’.

endRepeatBarType (string)

Bar line to insert at the end of a \repeat volta. The default is ‘:|.’.

endRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the end of a \repeat volta. The default is ‘:|.S’.

fineBarType (string)

Bar line to insert at \fine. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘|.’.

fineSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with \fine. The default is ‘|.S’.

fineStartRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with \fine and the start of a \repeat volta. The default is ‘|.S.|:’.

forbidBreakBetweenBarLines (boolean)

If set to #t, Bar_engraver forbids line breaks where there is no bar line.

measureBarType (string)

Bar line to insert at a measure boundary.

printInitialRepeatBar (boolean)

Use a special bar line at the start of a volta repeat even at the beginning of the piece.

printTrivialVoltaRepeats (boolean)

Notate volta-style repeats even when the repeat count is 1.

repeatCommands (list)

A list of commands related to volta-style repeats. In general, each element is a list, '(command args…), but a command with no arguments may be abbreviated to a symbol; e.g., '((start-repeat)) may be given as '(start-repeat).

end-repeat return-count

End a repeated section. return-count is the number of times to go back from this point to the beginning of the section.

start-repeat repeat-count

Start a repeated section. repeat-count is the number of times to perform this section.

volta text

If text is markup, start a volta bracket with that label; if text is #f, end a volta bracket.

sectionBarType (string)

Bar line to insert at \section. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘||’.

segnoBarType (string)

Bar line to insert at an in-staff segno. The default is ‘S’.

segnoStyle (symbol)

A symbol that indicates how to print a segno: bar-line or mark.

startRepeatBarType (string)

Bar line to insert at the start of a \repeat volta. The default is ‘.|:’.

startRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the start of a \repeat volta. The default is ‘S.|:’.

underlyingRepeatBarType (string)

Bar line to insert at points of repetition or departure where no bar line would normally appear, for example at the end of a system broken in mid measure where the next system begins with a segno. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘||’.

whichBar (string)

The current bar line type, or '() if there is no bar line. Setting this explicitly in user code is deprecated. Use \bar or related commands to set it.

Properties (write)

currentBarLine (graphical (layout) object)

Set to the BarLine that Bar_engraver has created in the current timestep.

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

This engraver creates the following layout object(s): BarLine.

Clef_engraver

Determine 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 to a clef. Values of 7 and -7 are common.

clefTranspositionStyle (symbol)

Determines the way the ClefModifier grob of a clef is displayed. Possible values are 'default, 'parenthesized, and 'bracketed.

explicitClefVisibility (vector)

break-visibility’ function for clef changes.

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

forceBreak (boolean)

Set to #t when an event forcing a line break was heard.

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_engraver

Collect NoteColumns, and as soon as there are two or more, put them in a NoteCollision object.

This engraver creates the following layout object(s): NoteCollision.

Cue_clef_engraver

Determine and set reference point for pitches in cued voices.

Properties (read)

clefTransposition (integer)

Add this much extra transposition to a clef. 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 to a cue clef. Values of 7 and -7 are common.

cueClefTranspositionStyle (symbol)

Determines the way the ClefModifier grob of a cue clef is displayed. Possible values are 'default, 'parenthesized, and 'bracketed.

explicitCueClefVisibility (vector)

break-visibility’ function for cue clef changes.

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

forceBreak (boolean)

Set to #t when an event forcing a line break was heard.

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 cueClefPosition and cueClefGlyph.

This engraver creates the following layout object(s): ClefModifier, CueClef and CueEndClef.

Divisio_engraver

Create divisiones: chant notation for points of breathing or caesura.

Music types accepted: caesura-event, fine-event, section-event, volta-repeat-end-event and volta-repeat-start-event

Properties (read)

caesuraType (list)

An alist

((bar-line . bar-type)
 (breath . breath-type)
 (scripts . script-type…)
 (underlying-bar-line . bar-type))

specifying which breath mark, bar line, and scripts to create at \caesura. All entries are optional.

bar-line has higher priority than a measure bar line and underlying-bar-line has lower priority than a measure bar line.

caesuraTypeTransform (procedure)

An engraver callback taking three arguments and returning an alist of the same kind as caesuraType.

The first argument is the context.

The second argument is the value of caesuraType with an additional entry (articulations . symbol-list) identifying the articulations attached to the caesura in the music. If the transform function returns this second argument unmodified, it is as if no transform function were set; the function is free to return a different value. The transform function can remove articulations, but any added articulations are ignored.

The third argument is a symbol-list identifying certain things the engraver has observed. bar-line indicates that the engraver has observed a BarLine at the current moment.

This engraver creates the following layout object(s): Divisio.

Dot_column_engraver

Engrave 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): DotColumn.

Figured_bass_engraver

Make 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_engraver

Position figured bass alignments over notes.

This engraver creates the following layout object(s): BassFigureAlignmentPositioning.

Fingering_column_engraver

Find potentially colliding scripts and put them into a FingeringColumn object; that will fix the collisions.

This engraver creates the following layout object(s): FingeringColumn.

Font_size_engraver

Put fontSize into font-size grob property.

Properties (read)

fontSize (number)

The relative size of all grobs in a context.

Grob_pq_engraver

Administrate when certain grobs (e.g., note heads) stop playing.

Properties (read)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Properties (write)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Instrument_name_engraver

Create a system start text for instrument or vocal names.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

instrumentName (markup)

The name to print left of a staff. The instrumentName property labels the staff in the first system, and the shortInstrumentName property 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): InstrumentName.

Key_engraver

Engrave a key signature.

Music types accepted: key-change-event

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

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

forceBreak (boolean)

Set to #t when an event forcing a line break was heard.

keyAlterationOrder (list)

A list of pairs that defines in what order alterations should be printed. The format of an entry is (step . alter), where step is a number from 0 to 6 and alter from -1 (double flat) to 1 (double sharp), with exact rationals for alterations in between, e.g., 1/2 for sharp.

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 clefPosition and clefGlyph.

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): KeyCancellation and KeySignature.

Ledger_line_engraver

Create the spanner to draw ledger lines, and notices objects that need ledger lines.

This engraver creates the following layout object(s): LedgerLineSpanner.

Merge_mmrest_numbers_engraver

Engraver to merge multi-measure rest numbers in multiple voices.

This works by gathering all multi-measure rest numbers at a time step. If they all have the same text and there are at least two only the first one is retained and the others are hidden.

Non_musical_script_column_engraver

Find potentially colliding non-musical scripts and put them into a ScriptColumn object; that will fix the collisions.

This engraver creates the following layout object(s): ScriptColumn.

Ottava_spanner_engraver

Create a text spanner when the ottavation property changes.

Music types accepted: ottava-event

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 middleCClefPosition This 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): OttavaBracket.

Output_property_engraver

Apply a procedure to any grob acknowledged.

Music types accepted: apply-output-event

Piano_pedal_align_engraver

Align piano pedal symbols and brackets.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

This engraver creates the following layout object(s): SostenutoPedalLineSpanner, SustainPedalLineSpanner and UnaCordaPedalLineSpanner.

Piano_pedal_engraver

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

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, bracket or mixed (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_engraver

Coordinates items that get their pure heights from their neighbors.

Rest_collision_engraver

Handle 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): RestCollision.

Script_row_engraver

Determine order in horizontal side position elements.

This engraver creates the following layout object(s): ScriptRow.

Separating_line_group_engraver

Generate objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)

Create StaffSpacing objects? Should be set for staves.

Properties (write)

hasStaffSpacing (boolean)

True if currentCommandColumn contains items that will affect spacing.

This engraver creates the following layout object(s): StaffSpacing.

Skip_typesetting_engraver

Create a StaffEllipsis when skipTypesetting is used.

Properties (read)

skipTypesetting (boolean)

If true, no typesetting is done, speeding up the interpretation phase. Useful for debugging large scores.

This engraver creates the following layout object(s): StaffEllipsis.

Staff_collecting_engraver

Maintain the stavesFound variable.

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_highlight_engraver

Highlights music passages.

Music types accepted: staff-highlight-event

Properties (read)

currentCommandColumn (graphical (layout) object)

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

This engraver creates the following layout object(s): StaffHighlight.

Staff_symbol_engraver

Create the constellation of five (default) staff lines.

Music types accepted: staff-span-event

This engraver creates the following layout object(s): StaffSymbol.


2.1.16 GregorianTranscriptionVoice

Corresponds to a voice on a staff. This context handles the conversion of dynamic signs, stems, beams, super- and subscripts, slurs, ties, and rests.

You have to instantiate this explicitly if you want to have multiple voices on the same staff.

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

This context creates the following layout object(s): Arpeggio, Beam, BendAfter, BreathingSign, ClusterSpanner, ClusterSpannerBeacon, CombineTextScript, Dots, DoublePercentRepeat, DoublePercentRepeatCounter, DoubleRepeatSlash, DynamicLineSpanner, DynamicText, DynamicTextSpanner, Episema, FingerGlideSpanner, Fingering, Glissando, Hairpin, InstrumentSwitch, LaissezVibrerTie, LaissezVibrerTieColumn, MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript, MultiMeasureRestText, NoteColumn, NoteHead, NoteSpacing, PercentRepeat, PercentRepeatCounter, PhrasingSlur, RepeatSlash, RepeatTie, RepeatTieColumn, Rest, Script, ScriptColumn, Slur, StringNumber, StrokeFinger, TextScript, TextSpanner, Tie, TieColumn, TrillPitchAccidental, TrillPitchGroup, TrillPitchHead, TrillPitchParentheses, TrillSpanner, TupletBracket, TupletNumber and VoiceFollower.

This context sets the following properties:

  • Set context property 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_engraver

Generate an Arpeggio symbol.

Music types accepted: arpeggio-event

This engraver creates the following layout object(s): Arpeggio.

Auto_beam_engraver

Generate beams based on measure characteristics and observed Stems. Uses baseMoment, beatStructure, beamExceptions, measureLength, and measurePosition to decide when to start and stop a beam. Overriding beaming is done through Stem_engraver properties stemLeftBeamCount and stemRightBeamCount.

Music types accepted: beam-forbid-event

Properties (read)

autoBeaming (boolean)

If set to #t then beams are generated automatically. If set to #f, auto-beaming is switched off as soon as the current beam (if any) is finished according to the auto-beaming rules.

baseMoment (positive moment with no grace part)

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, beams of mulitple stems may be subdivided by omitting a number of beamlets, dependent on maxSubdivideInterval, between beats at mulitiples of minSubdivideInterval.

This engraver creates the following layout object(s): Beam.

Beam_engraver

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

Music types accepted: beam-event

Properties (read)

baseMoment (positive moment with no grace part)

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, beams of mulitple stems may be subdivided by omitting a number of beamlets, dependent on maxSubdivideInterval, between beats at mulitiples of minSubdivideInterval.

This engraver creates the following layout object(s): Beam.

Bend_engraver

Create fall spanners.

Music types accepted: bend-after-event

Properties (read)

currentBarLine (graphical (layout) object)

Set to the BarLine that Bar_engraver has created in the current timestep.

currentCommandColumn (graphical (layout) object)

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

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

Breathing_sign_engraver

Notate breath marks.

Music types accepted: breathing-event

Properties (read)

breathMarkType (symbol)

The type of BreathingSign to create at \breathe.

This engraver creates the following layout object(s): BreathingSign.

Chord_tremolo_engraver

Generate beams for tremolo repeats.

Music types accepted: tremolo-span-event

This engraver creates the following layout object(s): Beam.

Cluster_spanner_engraver

Engrave a cluster using Spanner notation.

Music types accepted: cluster-note-event

This engraver creates the following layout object(s): ClusterSpanner and ClusterSpannerBeacon.

Dots_engraver

Create Dots objects for rhythmic-head-interfaces.

This engraver creates the following layout object(s): Dots.

Double_percent_repeat_engraver

Make double measure repeats.

Music types accepted: double-percent-event

Properties (read)

countPercentRepeats (boolean)

If set, produce counters for percent repeats.

measureLength (positive moment with no grace part)

Length of one measure in the current time signature.

repeatCountVisibility (procedure)

A procedure taking as arguments an integer and context, returning whether the corresponding percent repeat number should be printed when countPercentRepeats is set.

Properties (write)

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

This engraver creates the following layout object(s): DoublePercentRepeat and DoublePercentRepeatCounter.

Dynamic_align_engraver

Align hairpins and dynamic texts on a horizontal line.

Properties (read)

currentMusicalColumn (graphical (layout) object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

This engraver creates the following layout object(s): DynamicLineSpanner.

Dynamic_engraver

Create hairpins, dynamic texts and dynamic text spanners.

Music types accepted: absolute-dynamic-event, break-dynamic-span-event and span-dynamic-event

Properties (read)

crescendoSpanner (symbol)

The type of spanner to be used for crescendi. Available values are ‘hairpin’ and ‘text’. If unset, a hairpin crescendo is used.

crescendoText (markup)

The text to print at start of non-hairpin crescendo, i.e., ‘cresc.’.

currentMusicalColumn (graphical (layout) object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

decrescendoSpanner (symbol)

The type of spanner to be used for decrescendi. Available values are ‘hairpin’ and ‘text’. If unset, a hairpin decrescendo is used.

decrescendoText (markup)

The text to print at start of non-hairpin decrescendo, i.e., ‘dim.’.

This engraver creates the following layout object(s): DynamicText, DynamicTextSpanner and Hairpin.

Episema_engraver

Create an Editio Vaticana-style episema line.

Music types accepted: episema-event

This engraver creates the following layout object(s): Episema.

Finger_glide_engraver

Engraver to print a line between two Fingering grobs.

Music types accepted: note-event

This engraver creates the following layout object(s): FingerGlideSpanner.

Fingering_engraver

Create fingering scripts.

Music types accepted: fingering-event

This engraver creates the following layout object(s): Fingering.

Font_size_engraver

Put fontSize into font-size grob property.

Properties (read)

fontSize (number)

The relative size of all grobs in a context.

Forbid_line_break_engraver

Forbid line breaks when note heads are still playing at some point.

Properties (read)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Properties (write)

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

Glissando_engraver

Engrave glissandi.

Music types accepted: glissando-event

Properties (read)

glissandoMap (list)

A map in the form of ’((source1 . target1) (source2 . target2) (sourcen . targetn)) showing the glissandi to be drawn for note columns. The value ’() will default to ’((0 . 0) (1 . 1) (n . n)), where n is the minimal number of note-heads in the two note columns between which the glissandi occur.

This engraver creates the following layout object(s): Glissando.

Grace_auto_beam_engraver

Generates one autobeam group across an entire grace phrase. As usual, any manual beaming or \noBeam will block autobeaming, just like setting the context property ‘autoBeaming’ to ##f.

Music types accepted: beam-forbid-event

Properties (read)

autoBeaming (boolean)

If set to #t then beams are generated automatically. If set to #f, auto-beaming is switched off as soon as the current beam (if any) is finished according to the auto-beaming rules.

This engraver creates the following layout object(s): Beam.

Grace_beam_engraver

Handle Beam events by engraving beams. If omitted, then notes are printed with flags instead of beams. Only engraves beams when we are at grace points in time.

Music types accepted: beam-event

Properties (read)

baseMoment (positive moment with no grace part)

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, beams of mulitple stems may be subdivided by omitting a number of beamlets, dependent on maxSubdivideInterval, between beats at mulitiples of minSubdivideInterval.

This engraver creates the following layout object(s): Beam.

Grace_engraver

Set font size and other properties for grace notes.

Properties (read)

graceSettings (list)

Overrides for grace notes. This property should be manipulated through the add-grace-property function.

Grob_pq_engraver

Administrate when certain grobs (e.g., note heads) stop playing.

Properties (read)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Properties (write)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Instrument_switch_engraver

Create a cue text for taking instrument.

This engraver is deprecated.

Properties (read)

instrumentCueName (markup)

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

This property is deprecated

This engraver creates the following layout object(s): InstrumentSwitch.

Laissez_vibrer_engraver

Create laissez vibrer items.

Music types accepted: laissez-vibrer-event

This engraver creates the following layout object(s): LaissezVibrerTie and LaissezVibrerTieColumn.

Multi_measure_rest_engraver

Engrave multi-measure rests that are produced with ‘R’. It reads measureStartNow and internalBarNumber to 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 items (clef, key signature, etc.).

internalBarNumber (integer)

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

measureStartNow (boolean)

True at the beginning of a measure.

restNumberThreshold (number)

If a multimeasure rest has more measures than this, a number is printed.

This engraver creates the following layout object(s): MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript and MultiMeasureRestText.

New_fingering_engraver

Create fingering scripts for notes in a new chord. This engraver is ill-named, since it also takes care of articulations and harmonic note heads.

Properties (read)

fingeringOrientations (list)

A list of symbols, containing ‘left’, ‘right’, ‘up’ and/or ‘down’. This list determines where fingerings are put relative to the chord being fingered.

harmonicDots (boolean)

If set, harmonic notes in dotted chords get dots.

stringNumberOrientations (list)

See fingeringOrientations.

strokeFingerOrientations (list)

See fingeringOrientations.

This engraver creates the following layout object(s): Fingering, Script, StringNumber and StrokeFinger.

Note_head_line_engraver

Engrave a line between two note heads in a staff switch if followVoice is 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): VoiceFollower.

Note_heads_engraver

Generate note heads.

Music types accepted: note-event

Properties (read)

middleCPosition (number)

The place of the middle C, measured in half staff-spaces. Usually determined by looking at middleCClefPosition and middleCOffset.

staffLineLayoutFunction (procedure)

Layout of staff lines, traditional, or semitone.

This engraver creates the following layout object(s): NoteHead.

Note_spacing_engraver

Generate NoteSpacing, an object linking horizontal lines for use in spacing.

This engraver creates the following layout object(s): NoteSpacing.

Output_property_engraver

Apply a procedure to any grob acknowledged.

Music types accepted: apply-output-event

Part_combine_engraver

Part combine engraver for orchestral scores: Print markings ‘a2’, ‘Solo’, ‘Solo II’, and ‘unisono’.

Music types accepted: note-event and part-combine-event

Properties (read)

aDueText (markup)

Text to print at a unisono passage.

partCombineTextsOnNote (boolean)

Print part-combine texts only on the next note rather than immediately on rests or skips.

printPartCombineTexts (boolean)

Set ‘Solo’ and ‘A due’ texts in the part combiner?

soloIIText (markup)

The text for the start of a solo for voice ‘two’ when part-combining.

soloText (markup)

The text for the start of a solo when part-combining.

This engraver creates the following layout object(s): CombineTextScript.

Percent_repeat_engraver

Make whole measure repeats.

Music types accepted: percent-event

Properties (read)

countPercentRepeats (boolean)

If set, produce counters for percent repeats.

currentCommandColumn (graphical (layout) object)

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

repeatCountVisibility (procedure)

A procedure taking as arguments an integer and context, returning whether the corresponding percent repeat number should be printed when countPercentRepeats is set.

This engraver creates the following layout object(s): PercentRepeat and PercentRepeatCounter.

Phrasing_slur_engraver

Print phrasing slurs. Similar to Slur_engraver.

Music types accepted: note-event and phrasing-slur-event

This engraver creates the following layout object(s): PhrasingSlur.

Pitched_trill_engraver

Print the bracketed note head after a note head with trill.

This engraver creates the following layout object(s): TrillPitchAccidental, TrillPitchGroup, TrillPitchHead and TrillPitchParentheses.

Repeat_tie_engraver

Create repeat ties.

Music types accepted: repeat-tie-event

This engraver creates the following layout object(s): RepeatTie and RepeatTieColumn.

Rest_engraver

Engrave rests.

Music types accepted: rest-event

Properties (read)

middleCPosition (number)

The place of the middle C, measured in half staff-spaces. Usually determined by looking at middleCClefPosition and middleCOffset.

This engraver creates the following layout object(s): Rest.

Rhythmic_column_engraver

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

This engraver creates the following layout object(s): NoteColumn.

Script_column_engraver

Find potentially colliding scripts and put them into a ScriptColumn object; that will fix the collisions.

This engraver creates the following layout object(s): ScriptColumn.

Script_engraver

Handle note scripted articulations.

Music types accepted: articulation-event

Properties (read)

scriptDefinitions (list)

The description of scripts. This is used by the Script_engraver for typesetting note-superscripts and subscripts. See scm/script.scm for more information.

This engraver creates the following layout object(s): Script.

Slash_repeat_engraver

Make beat repeats.

Music types accepted: repeat-slash-event

This engraver creates the following layout object(s): DoubleRepeatSlash and RepeatSlash.

Slur_engraver

Build slur grobs from slur events.

Music types accepted: 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_engraver

Forbid breaks in certain spanners.

Text_engraver

Create text scripts.

Music types accepted: text-script-event

This engraver creates the following layout object(s): TextScript.

Text_spanner_engraver

Create text spanner from an event.

Music types accepted: text-span-event

Properties (read)

currentMusicalColumn (graphical (layout) object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

This engraver creates the following layout object(s): TextSpanner.

Tie_engraver

Generate ties between note heads of equal pitch.

Music types accepted: tie-event

Properties (read)

skipTypesetting (boolean)

If true, no typesetting is done, speeding up the interpretation phase. Useful for debugging large scores.

tieWaitForNote (boolean)

If true, tied notes do not have to follow each other directly. This can be used for writing out arpeggios.

Properties (write)

tieMelismaBusy (boolean)

Signal whether a tie is present.

This engraver creates the following layout object(s): Tie and TieColumn.

Trill_spanner_engraver

Create trill spanners.

Music types accepted: trill-span-event

Properties (read)

currentCommandColumn (graphical (layout) object)

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

currentMusicalColumn (graphical (layout) object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

This engraver creates the following layout object(s): TrillSpanner.

Tuplet_engraver

Catch tuplet events and generate appropriate bracket.

Music types accepted: tuplet-span-event

Properties (read)

tupletFullLength (boolean)

If set, the tuplet is printed up to the start of the next note.

tupletFullLengthNote (boolean)

If set, end at the next note, otherwise end on the matter (time signatures, etc.) before the note.

This engraver creates the following layout object(s): TupletBracket and TupletNumber.


2.1.17 InternalGregorianStaff

A kind of Staff with settings shared by multiple variants of Gregorian chant notation.

This context creates the following layout object(s): Accidental, AccidentalCautionary, AccidentalPlacement, AccidentalSuggestion, BarLine, BassFigure, BassFigureAlignment, BassFigureAlignmentPositioning, BassFigureBracket, BassFigureContinuation, BassFigureLine, Clef, ClefModifier, CueClef, CueEndClef, Divisio, DotColumn, FingeringColumn, InstrumentName, KeyCancellation, KeySignature, LedgerLineSpanner, NoteCollision, OttavaBracket, PianoPedalBracket, RestCollision, ScriptColumn, ScriptRow, SostenutoPedal, SostenutoPedalLineSpanner, StaffEllipsis, StaffHighlight, StaffSpacing, StaffSymbol, SustainPedal, SustainPedalLineSpanner, TimeSignature, UnaCordaPedal, UnaCordaPedalLineSpanner and VerticalAxisGroup.

This context sets the following properties:

  • Set context property autoAccidentals to:
    '(Staff #<procedure at lily/music-functions.scm:1716:0 (context pitch barnum)>)
    
  • Set context property autoCautionaries to '().
  • Set context property caesuraTypeTransform to caesura-to-bar-line-or-divisio.
  • Set context property caesuraType to:
    '((breath . varcomma))
    
  • Set context property createSpacing to #t.
  • Set context property doubleRepeatBarType to "||".
  • Set context property doubleRepeatSegnoBarType to "S-||".
  • Set context property endRepeatBarType to "||".
  • Set context property endRepeatSegnoBarType to "S-||".
  • Set context property extraNatural to #f.
  • Set context property fineBarType to "||".
  • Set context property fineSegnoBarType to "S-||".
  • Set context property fineStartRepeatSegnoBarType to "S-||".
  • Set context property forbidBreakBetweenBarLines to #f.
  • Set context property ignoreFiguredBassRest to #f.
  • Set context property instrumentName to '().
  • Set context property localAlterations to '().
  • Set context property measureBarType to '().
  • Set context property ottavationMarkups to:
    '((4 . "29")
      (3 . "22")
      (2 . "15")
      (1 . "8")
      (-1 . "8")
      (-2 . "15")
      (-3 . "22")
      (-4 . "29"))
    
  • Set context property printKeyCancellation to #f.
  • Set context property printTrivialVoltaRepeats to #t.
  • Set context property sectionBarType to "||".
  • Set context property segnoBarType to "S-||".
  • Set context property shortInstrumentName to '().
  • Set context property startRepeatBarType to "||".
  • Set context property startRepeatSegnoBarType to "S-||".
  • Set context property underlyingRepeatBarType to "||".
  • Set grob property extra-spacing-height in BreathingSign to item::extra-spacing-height-including-staff.
  • Set grob property extra-spacing-width in BreathingSign to :
    '(-1.0 . 0.0)
    

This is a ‘Bottom’ context; no contexts will be created implicitly from it.

Context InternalGregorianStaff can contain CueVoice and NullVoice.

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

Accidental_engraver

Make accidentals. Catch note heads, ties and notices key-change events. This engraver usually lives at Staff level, but reads the settings for Accidental at Voice level, so you can \override them at Voice.

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 Score then all staves share accidentals, and if context is Staff 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:

context

The current context to which the rule should be applied.

pitch

The pitch of the note to be evaluated.

barnum

The current bar number.

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

Alteration_glyph_engraver

Set the glyph-name-alist of all grobs having the accidental-switch-interface to the value of the context’s alterationGlyphs property, when defined.

Properties (read)

alterationGlyphs (list)

Alist mapping alterations to accidental glyphs. Alterations are given as exact numbers, e.g., -1/2 for flat. This applies to all grobs that can print accidentals.

Axis_group_engraver

Group all objects created in this context in a VerticalAxisGroup spanner.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

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-empty set 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): VerticalAxisGroup.

Bar_engraver

Create bar lines for various commands, including \\bar.

If forbidBreakBetweenBarLines is true, allow line breaks at bar lines only.

Music types accepted: ad-hoc-jump-event, caesura-event, coda-mark-event, dal-segno-event, fine-event, section-event and segno-mark-event

Properties (read)

caesuraType (list)

An alist

((bar-line . bar-type)
 (breath . breath-type)
 (scripts . script-type…)
 (underlying-bar-line . bar-type))

specifying which breath mark, bar line, and scripts to create at \caesura. All entries are optional.

bar-line has higher priority than a measure bar line and underlying-bar-line has lower priority than a measure bar line.

caesuraTypeTransform (procedure)

An engraver callback taking three arguments and returning an alist of the same kind as caesuraType.

The first argument is the context.

The second argument is the value of caesuraType with an additional entry (articulations . symbol-list) identifying the articulations attached to the caesura in the music. If the transform function returns this second argument unmodified, it is as if no transform function were set; the function is free to return a different value. The transform function can remove articulations, but any added articulations are ignored.

The third argument is a symbol-list identifying certain things the engraver has observed. bar-line indicates that the engraver has observed a BarLine at the current moment.

doubleRepeatBarType (string)

Bar line to insert where the end of one \repeat volta coincides with the start of another. The default is ‘:..:’.

doubleRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the end of one \repeat volta and the beginning of another. The default is ‘:|.S.|:’.

endRepeatBarType (string)

Bar line to insert at the end of a \repeat volta. The default is ‘:|.’.

endRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the end of a \repeat volta. The default is ‘:|.S’.

fineBarType (string)

Bar line to insert at \fine. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘|.’.

fineSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with \fine. The default is ‘|.S’.

fineStartRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with \fine and the start of a \repeat volta. The default is ‘|.S.|:’.

forbidBreakBetweenBarLines (boolean)

If set to #t, Bar_engraver forbids line breaks where there is no bar line.

measureBarType (string)

Bar line to insert at a measure boundary.

printInitialRepeatBar (boolean)

Use a special bar line at the start of a volta repeat even at the beginning of the piece.

printTrivialVoltaRepeats (boolean)

Notate volta-style repeats even when the repeat count is 1.

repeatCommands (list)

A list of commands related to volta-style repeats. In general, each element is a list, '(command args…), but a command with no arguments may be abbreviated to a symbol; e.g., '((start-repeat)) may be given as '(start-repeat).

end-repeat return-count

End a repeated section. return-count is the number of times to go back from this point to the beginning of the section.

start-repeat repeat-count

Start a repeated section. repeat-count is the number of times to perform this section.

volta text

If text is markup, start a volta bracket with that label; if text is #f, end a volta bracket.

sectionBarType (string)

Bar line to insert at \section. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘||’.

segnoBarType (string)

Bar line to insert at an in-staff segno. The default is ‘S’.

segnoStyle (symbol)

A symbol that indicates how to print a segno: bar-line or mark.

startRepeatBarType (string)

Bar line to insert at the start of a \repeat volta. The default is ‘.|:’.

startRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the start of a \repeat volta. The default is ‘S.|:’.

underlyingRepeatBarType (string)

Bar line to insert at points of repetition or departure where no bar line would normally appear, for example at the end of a system broken in mid measure where the next system begins with a segno. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘||’.

whichBar (string)

The current bar line type, or '() if there is no bar line. Setting this explicitly in user code is deprecated. Use \bar or related commands to set it.

Properties (write)

currentBarLine (graphical (layout) object)

Set to the BarLine that Bar_engraver has created in the current timestep.

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

This engraver creates the following layout object(s): BarLine.

Clef_engraver

Determine 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 to a clef. Values of 7 and -7 are common.

clefTranspositionStyle (symbol)

Determines the way the ClefModifier grob of a clef is displayed. Possible values are 'default, 'parenthesized, and 'bracketed.

explicitClefVisibility (vector)

break-visibility’ function for clef changes.

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

forceBreak (boolean)

Set to #t when an event forcing a line break was heard.

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_engraver

Collect NoteColumns, and as soon as there are two or more, put them in a NoteCollision object.

This engraver creates the following layout object(s): NoteCollision.

Cue_clef_engraver

Determine and set reference point for pitches in cued voices.

Properties (read)

clefTransposition (integer)

Add this much extra transposition to a clef. 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 to a cue clef. Values of 7 and -7 are common.

cueClefTranspositionStyle (symbol)

Determines the way the ClefModifier grob of a cue clef is displayed. Possible values are 'default, 'parenthesized, and 'bracketed.

explicitCueClefVisibility (vector)

break-visibility’ function for cue clef changes.

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

forceBreak (boolean)

Set to #t when an event forcing a line break was heard.

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 cueClefPosition and cueClefGlyph.

This engraver creates the following layout object(s): ClefModifier, CueClef and CueEndClef.

Divisio_engraver

Create divisiones: chant notation for points of breathing or caesura.

Music types accepted: caesura-event, fine-event, section-event, volta-repeat-end-event and volta-repeat-start-event

Properties (read)

caesuraType (list)

An alist

((bar-line . bar-type)
 (breath . breath-type)
 (scripts . script-type…)
 (underlying-bar-line . bar-type))

specifying which breath mark, bar line, and scripts to create at \caesura. All entries are optional.

bar-line has higher priority than a measure bar line and underlying-bar-line has lower priority than a measure bar line.

caesuraTypeTransform (procedure)

An engraver callback taking three arguments and returning an alist of the same kind as caesuraType.

The first argument is the context.

The second argument is the value of caesuraType with an additional entry (articulations . symbol-list) identifying the articulations attached to the caesura in the music. If the transform function returns this second argument unmodified, it is as if no transform function were set; the function is free to return a different value. The transform function can remove articulations, but any added articulations are ignored.

The third argument is a symbol-list identifying certain things the engraver has observed. bar-line indicates that the engraver has observed a BarLine at the current moment.

This engraver creates the following layout object(s): Divisio.

Dot_column_engraver

Engrave 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): DotColumn.

Figured_bass_engraver

Make 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_engraver

Position figured bass alignments over notes.

This engraver creates the following layout object(s): BassFigureAlignmentPositioning.

Fingering_column_engraver

Find potentially colliding scripts and put them into a FingeringColumn object; that will fix the collisions.

This engraver creates the following layout object(s): FingeringColumn.

Font_size_engraver

Put fontSize into font-size grob property.

Properties (read)

fontSize (number)

The relative size of all grobs in a context.

Grob_pq_engraver

Administrate when certain grobs (e.g., note heads) stop playing.

Properties (read)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Properties (write)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Instrument_name_engraver

Create a system start text for instrument or vocal names.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

instrumentName (markup)

The name to print left of a staff. The instrumentName property labels the staff in the first system, and the shortInstrumentName property 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): InstrumentName.

Key_engraver

Engrave a key signature.

Music types accepted: key-change-event

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

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

forceBreak (boolean)

Set to #t when an event forcing a line break was heard.

keyAlterationOrder (list)

A list of pairs that defines in what order alterations should be printed. The format of an entry is (step . alter), where step is a number from 0 to 6 and alter from -1 (double flat) to 1 (double sharp), with exact rationals for alterations in between, e.g., 1/2 for sharp.

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 clefPosition and clefGlyph.

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): KeyCancellation and KeySignature.

Ledger_line_engraver

Create the spanner to draw ledger lines, and notices objects that need ledger lines.

This engraver creates the following layout object(s): LedgerLineSpanner.

Merge_mmrest_numbers_engraver

Engraver to merge multi-measure rest numbers in multiple voices.

This works by gathering all multi-measure rest numbers at a time step. If they all have the same text and there are at least two only the first one is retained and the others are hidden.

Non_musical_script_column_engraver

Find potentially colliding non-musical scripts and put them into a ScriptColumn object; that will fix the collisions.

This engraver creates the following layout object(s): ScriptColumn.

Ottava_spanner_engraver

Create a text spanner when the ottavation property changes.

Music types accepted: ottava-event

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 middleCClefPosition This 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): OttavaBracket.

Output_property_engraver

Apply a procedure to any grob acknowledged.

Music types accepted: apply-output-event

Piano_pedal_align_engraver

Align piano pedal symbols and brackets.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

This engraver creates the following layout object(s): SostenutoPedalLineSpanner, SustainPedalLineSpanner and UnaCordaPedalLineSpanner.

Piano_pedal_engraver

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

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, bracket or mixed (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_engraver

Coordinates items that get their pure heights from their neighbors.

Rest_collision_engraver

Handle 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): RestCollision.

Script_row_engraver

Determine order in horizontal side position elements.

This engraver creates the following layout object(s): ScriptRow.

Separating_line_group_engraver

Generate objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)

Create StaffSpacing objects? Should be set for staves.

Properties (write)

hasStaffSpacing (boolean)

True if currentCommandColumn contains items that will affect spacing.

This engraver creates the following layout object(s): StaffSpacing.

Skip_typesetting_engraver

Create a StaffEllipsis when skipTypesetting is used.

Properties (read)

skipTypesetting (boolean)

If true, no typesetting is done, speeding up the interpretation phase. Useful for debugging large scores.

This engraver creates the following layout object(s): StaffEllipsis.

Staff_collecting_engraver

Maintain the stavesFound variable.

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_highlight_engraver

Highlights music passages.

Music types accepted: staff-highlight-event

Properties (read)

currentCommandColumn (graphical (layout) object)

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

This engraver creates the following layout object(s): StaffHighlight.

Staff_symbol_engraver

Create the constellation of five (default) staff lines.

Music types accepted: staff-span-event

This engraver creates the following layout object(s): StaffSymbol.

Time_signature_engraver

Create a TimeSignature whenever timeSignatureFraction changes.

Music types accepted: time-signature-event

Properties (read)

initialTimeSignatureVisibility (vector)

break visibility for the initial time signature.

partialBusy (boolean)

Signal that \partial acts at the current timestep.

timeSignatureFraction (positive, finite 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): TimeSignature.


2.1.18 InternalMensuralStaff

An kind of Staff with settings shared by multiple variants of mensural notation.

This context creates the following layout object(s): Accidental, AccidentalCautionary, AccidentalPlacement, AccidentalSuggestion, BarLine, BassFigure, BassFigureAlignment, BassFigureAlignmentPositioning, BassFigureBracket, BassFigureContinuation, BassFigureLine, BreathingSign, CaesuraScript, Clef, ClefModifier, CueClef, CueEndClef, Custos, DotColumn, FingeringColumn, InstrumentName, KeyCancellation, KeySignature, LedgerLineSpanner, NoteCollision, OttavaBracket, PianoPedalBracket, RestCollision, ScriptColumn, ScriptRow, SignumRepetitionis, SostenutoPedal, SostenutoPedalLineSpanner, StaffEllipsis, StaffHighlight, StaffSpacing, StaffSymbol, SustainPedal, SustainPedalLineSpanner, TimeSignature, UnaCordaPedal, UnaCordaPedalLineSpanner and VerticalAxisGroup.

This context sets the following properties:

  • Set context property alterationGlyphs to:
    '((-1/2 . "accidentals.mensuralM1")
      (0 . "accidentals.vaticana0")
      (1/2 . "accidentals.mensural1"))
    
  • Set context property autoAccidentals to:
    '(Staff #<procedure at lily/music-functions.scm:1716:0 (context pitch barnum)>)
    
  • Set context property autoCautionaries to '().
  • Set context property caesuraType to:
    '((bar-line . "|"))
    
  • Set context property createSpacing to #t.
  • Set context property doubleRepeatBarType to '().
  • Set context property doubleRepeatSegnoBarType to "S".
  • Set context property endRepeatBarType to '().
  • Set context property endRepeatSegnoBarType to "S".
  • Set context property extraNatural to #f.
  • Set context property fineSegnoBarType to "|.S".
  • Set context property fineStartRepeatSegnoBarType to "|.S".
  • Set context property ignoreFiguredBassRest to #f.
  • Set context property instrumentName to '().
  • Set context property localAlterations to '().
  • Set context property ottavationMarkups to:
    '((4 . "29")
      (3 . "22")
      (2 . "15")
      (1 . "8")
      (-1 . "8")
      (-2 . "15")
      (-3 . "22")
      (-4 . "29"))
    
  • Set context property printKeyCancellation to #f.
  • Set context property segnoBarType to "S".
  • Set context property shortInstrumentName to '().
  • Set context property startRepeatBarType to "|".
  • Set context property startRepeatSegnoBarType to "S".
  • Set context property underlyingRepeatBarType to '().
  • Set grob property neutral-direction in Custos to -1.
  • Set grob property neutral-position in Custos to 3.
  • Set grob property style in Custos to 'mensural.
  • Set grob property style in TimeSignature to 'mensural.

This is a ‘Bottom’ context; no contexts will be created implicitly from it.

Context InternalMensuralStaff can contain CueVoice and NullVoice.

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

Accidental_engraver

Make accidentals. Catch note heads, ties and notices key-change events. This engraver usually lives at Staff level, but reads the settings for Accidental at Voice level, so you can \override them at Voice.

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 Score then all staves share accidentals, and if context is Staff 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:

context

The current context to which the rule should be applied.

pitch

The pitch of the note to be evaluated.

barnum

The current bar number.

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

Alteration_glyph_engraver

Set the glyph-name-alist of all grobs having the accidental-switch-interface to the value of the context’s alterationGlyphs property, when defined.

Properties (read)

alterationGlyphs (list)

Alist mapping alterations to accidental glyphs. Alterations are given as exact numbers, e.g., -1/2 for flat. This applies to all grobs that can print accidentals.

Axis_group_engraver

Group all objects created in this context in a VerticalAxisGroup spanner.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

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-empty set 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): VerticalAxisGroup.

Bar_engraver

Create bar lines for various commands, including \\bar.

If forbidBreakBetweenBarLines is true, allow line breaks at bar lines only.

Music types accepted: ad-hoc-jump-event, caesura-event, coda-mark-event, dal-segno-event, fine-event, section-event and segno-mark-event

Properties (read)

caesuraType (list)

An alist

((bar-line . bar-type)
 (breath . breath-type)
 (scripts . script-type…)
 (underlying-bar-line . bar-type))

specifying which breath mark, bar line, and scripts to create at \caesura. All entries are optional.

bar-line has higher priority than a measure bar line and underlying-bar-line has lower priority than a measure bar line.

caesuraTypeTransform (procedure)

An engraver callback taking three arguments and returning an alist of the same kind as caesuraType.

The first argument is the context.

The second argument is the value of caesuraType with an additional entry (articulations . symbol-list) identifying the articulations attached to the caesura in the music. If the transform function returns this second argument unmodified, it is as if no transform function were set; the function is free to return a different value. The transform function can remove articulations, but any added articulations are ignored.

The third argument is a symbol-list identifying certain things the engraver has observed. bar-line indicates that the engraver has observed a BarLine at the current moment.

doubleRepeatBarType (string)

Bar line to insert where the end of one \repeat volta coincides with the start of another. The default is ‘:..:’.

doubleRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the end of one \repeat volta and the beginning of another. The default is ‘:|.S.|:’.

endRepeatBarType (string)

Bar line to insert at the end of a \repeat volta. The default is ‘:|.’.

endRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the end of a \repeat volta. The default is ‘:|.S’.

fineBarType (string)

Bar line to insert at \fine. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘|.’.

fineSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with \fine. The default is ‘|.S’.

fineStartRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with \fine and the start of a \repeat volta. The default is ‘|.S.|:’.

forbidBreakBetweenBarLines (boolean)

If set to #t, Bar_engraver forbids line breaks where there is no bar line.

measureBarType (string)

Bar line to insert at a measure boundary.

printInitialRepeatBar (boolean)

Use a special bar line at the start of a volta repeat even at the beginning of the piece.

printTrivialVoltaRepeats (boolean)

Notate volta-style repeats even when the repeat count is 1.

repeatCommands (list)

A list of commands related to volta-style repeats. In general, each element is a list, '(command args…), but a command with no arguments may be abbreviated to a symbol; e.g., '((start-repeat)) may be given as '(start-repeat).

end-repeat return-count

End a repeated section. return-count is the number of times to go back from this point to the beginning of the section.

start-repeat repeat-count

Start a repeated section. repeat-count is the number of times to perform this section.

volta text

If text is markup, start a volta bracket with that label; if text is #f, end a volta bracket.

sectionBarType (string)

Bar line to insert at \section. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘||’.

segnoBarType (string)

Bar line to insert at an in-staff segno. The default is ‘S’.

segnoStyle (symbol)

A symbol that indicates how to print a segno: bar-line or mark.

startRepeatBarType (string)

Bar line to insert at the start of a \repeat volta. The default is ‘.|:’.

startRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the start of a \repeat volta. The default is ‘S.|:’.

underlyingRepeatBarType (string)

Bar line to insert at points of repetition or departure where no bar line would normally appear, for example at the end of a system broken in mid measure where the next system begins with a segno. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘||’.

whichBar (string)

The current bar line type, or '() if there is no bar line. Setting this explicitly in user code is deprecated. Use \bar or related commands to set it.

Properties (write)

currentBarLine (graphical (layout) object)

Set to the BarLine that Bar_engraver has created in the current timestep.

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

This engraver creates the following layout object(s): BarLine.

Caesura_engraver

Notate a short break in sound that does not shorten the previous note.

Depending on the result of passing the value of caesuraType through caesuraTypeTransform, this engraver may create a BreathingSign with CaesuraScript grobs aligned to it, or it may create CaesuraScript grobs and align them to a BarLine.

If this engraver observes a BarLine, it calls caesuraTypeTransform again with the new information, and if necessary, recreates its grobs.

Music types accepted: caesura-event

Properties (read)

breathMarkDefinitions (list)

The description of breath marks. This is used by the Breathing_sign_engraver. See scm/breath.scm for more information.

caesuraType (list)

An alist

((bar-line . bar-type)
 (breath . breath-type)
 (scripts . script-type…)
 (underlying-bar-line . bar-type))

specifying which breath mark, bar line, and scripts to create at \caesura. All entries are optional.

bar-line has higher priority than a measure bar line and underlying-bar-line has lower priority than a measure bar line.

caesuraTypeTransform (procedure)

An engraver callback taking three arguments and returning an alist of the same kind as caesuraType.

The first argument is the context.

The second argument is the value of caesuraType with an additional entry (articulations . symbol-list) identifying the articulations attached to the caesura in the music. If the transform function returns this second argument unmodified, it is as if no transform function were set; the function is free to return a different value. The transform function can remove articulations, but any added articulations are ignored.

The third argument is a symbol-list identifying certain things the engraver has observed. bar-line indicates that the engraver has observed a BarLine at the current moment.

scriptDefinitions (list)

The description of scripts. This is used by the Script_engraver for typesetting note-superscripts and subscripts. See scm/script.scm for more information.

This engraver creates the following layout object(s): BreathingSign and CaesuraScript.

Clef_engraver

Determine 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 to a clef. Values of 7 and -7 are common.

clefTranspositionStyle (symbol)

Determines the way the ClefModifier grob of a clef is displayed. Possible values are 'default, 'parenthesized, and 'bracketed.

explicitClefVisibility (vector)

break-visibility’ function for clef changes.

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

forceBreak (boolean)

Set to #t when an event forcing a line break was heard.

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_engraver

Collect NoteColumns, and as soon as there are two or more, put them in a NoteCollision object.

This engraver creates the following layout object(s): NoteCollision.

Cue_clef_engraver

Determine and set reference point for pitches in cued voices.

Properties (read)

clefTransposition (integer)

Add this much extra transposition to a clef. 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 to a cue clef. Values of 7 and -7 are common.

cueClefTranspositionStyle (symbol)

Determines the way the ClefModifier grob of a cue clef is displayed. Possible values are 'default, 'parenthesized, and 'bracketed.

explicitCueClefVisibility (vector)

break-visibility’ function for cue clef changes.

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

forceBreak (boolean)

Set to #t when an event forcing a line break was heard.

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 cueClefPosition and cueClefGlyph.

This engraver creates the following layout object(s): ClefModifier, CueClef and CueEndClef.

Custos_engraver

Engrave custodes.

Properties (read)

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

forceBreak (boolean)

Set to #t when an event forcing a line break was heard.

This engraver creates the following layout object(s): Custos.

Dot_column_engraver

Engrave 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): DotColumn.

Figured_bass_engraver

Make 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_engraver

Position figured bass alignments over notes.

This engraver creates the following layout object(s): BassFigureAlignmentPositioning.

Fingering_column_engraver

Find potentially colliding scripts and put them into a FingeringColumn object; that will fix the collisions.

This engraver creates the following layout object(s): FingeringColumn.

Font_size_engraver

Put fontSize into font-size grob property.

Properties (read)

fontSize (number)

The relative size of all grobs in a context.

Grob_pq_engraver

Administrate when certain grobs (e.g., note heads) stop playing.

Properties (read)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Properties (write)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Instrument_name_engraver

Create a system start text for instrument or vocal names.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

instrumentName (markup)

The name to print left of a staff. The instrumentName property labels the staff in the first system, and the shortInstrumentName property 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): InstrumentName.

Key_engraver

Engrave a key signature.

Music types accepted: key-change-event

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

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

forceBreak (boolean)

Set to #t when an event forcing a line break was heard.

keyAlterationOrder (list)

A list of pairs that defines in what order alterations should be printed. The format of an entry is (step . alter), where step is a number from 0 to 6 and alter from -1 (double flat) to 1 (double sharp), with exact rationals for alterations in between, e.g., 1/2 for sharp.

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 clefPosition and clefGlyph.

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): KeyCancellation and KeySignature.

Ledger_line_engraver

Create the spanner to draw ledger lines, and notices objects that need ledger lines.

This engraver creates the following layout object(s): LedgerLineSpanner.

Merge_mmrest_numbers_engraver

Engraver to merge multi-measure rest numbers in multiple voices.

This works by gathering all multi-measure rest numbers at a time step. If they all have the same text and there are at least two only the first one is retained and the others are hidden.

Non_musical_script_column_engraver

Find potentially colliding non-musical scripts and put them into a ScriptColumn object; that will fix the collisions.

This engraver creates the following layout object(s): ScriptColumn.

Ottava_spanner_engraver

Create a text spanner when the ottavation property changes.

Music types accepted: ottava-event

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 middleCClefPosition This 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): OttavaBracket.

Output_property_engraver

Apply a procedure to any grob acknowledged.

Music types accepted: apply-output-event

Piano_pedal_align_engraver

Align piano pedal symbols and brackets.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

This engraver creates the following layout object(s): SostenutoPedalLineSpanner, SustainPedalLineSpanner and UnaCordaPedalLineSpanner.

Piano_pedal_engraver

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

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, bracket or mixed (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_engraver

Coordinates items that get their pure heights from their neighbors.

Rest_collision_engraver

Handle 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): RestCollision.

Script_row_engraver

Determine order in horizontal side position elements.

This engraver creates the following layout object(s): ScriptRow.

Separating_line_group_engraver

Generate objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)

Create StaffSpacing objects? Should be set for staves.

Properties (write)

hasStaffSpacing (boolean)

True if currentCommandColumn contains items that will affect spacing.

This engraver creates the following layout object(s): StaffSpacing.

Signum_repetitionis_engraver

Create a SignumRepetitionis at the end of a \repeat volta section.

Music types accepted: volta-repeat-end-event

This engraver creates the following layout object(s): SignumRepetitionis.

Skip_typesetting_engraver

Create a StaffEllipsis when skipTypesetting is used.

Properties (read)

skipTypesetting (boolean)

If true, no typesetting is done, speeding up the interpretation phase. Useful for debugging large scores.

This engraver creates the following layout object(s): StaffEllipsis.

Staff_collecting_engraver

Maintain the stavesFound variable.

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_highlight_engraver

Highlights music passages.

Music types accepted: staff-highlight-event

Properties (read)

currentCommandColumn (graphical (layout) object)

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

This engraver creates the following layout object(s): StaffHighlight.

Staff_symbol_engraver

Create the constellation of five (default) staff lines.

Music types accepted: staff-span-event

This engraver creates the following layout object(s): StaffSymbol.

Time_signature_engraver

Create a TimeSignature whenever timeSignatureFraction changes.

Music types accepted: time-signature-event

Properties (read)

initialTimeSignatureVisibility (vector)

break visibility for the initial time signature.

partialBusy (boolean)

Signal that \partial acts at the current timestep.

timeSignatureFraction (positive, finite 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): TimeSignature.


2.1.19 KievanStaff

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, BreathingSign, CaesuraScript, Clef, ClefModifier, CueClef, CueEndClef, DotColumn, FingeringColumn, InstrumentName, KeyCancellation, KeySignature, LedgerLineSpanner, NoteCollision, OttavaBracket, PianoPedalBracket, RestCollision, ScriptColumn, ScriptRow, SostenutoPedal, SostenutoPedalLineSpanner, StaffEllipsis, StaffHighlight, StaffSpacing, StaffSymbol, SustainPedal, SustainPedalLineSpanner, UnaCordaPedal, UnaCordaPedalLineSpanner and VerticalAxisGroup.

This context sets the following properties:

  • Set context property alterationGlyphs to:
    '((-1/2 . "accidentals.kievanM1")
      (1/2 . "accidentals.kievan1"))
    
  • Set context property autoAccidentals to:
    '(Staff #<procedure at lily/music-functions.scm:1716:0 (context pitch barnum)>)
    
  • Set context property autoCautionaries to '().
  • Set context property caesuraType to:
    '((bar-line . "."))
    
  • Set context property clefGlyph to "clefs.kievan.do".
  • Set context property clefPosition to 0.
  • Set context property clefTransposition to 0.
  • Set context property createSpacing to #t.
  • Set context property doubleRepeatBarType to "k".
  • Set context property endRepeatBarType to "k".
  • Set context property extraNatural to #f.
  • Set context property fineBarType to "k".
  • Set context property forbidBreakBetweenBarLines to #f.
  • Set context property ignoreFiguredBassRest to #f.
  • Set context property instrumentName to '().
  • Set context property localAlterations to '().
  • Set context property measureBarType to '().
  • Set context property middleCClefPosition to 0.
  • Set context property middleCPosition to 0.
  • Set context property ottavationMarkups to:
    '((4 . "29")
      (3 . "22")
      (2 . "15")
      (1 . "8")
      (-1 . "8")
      (-2 . "15")
      (-3 . "22")
      (-4 . "29"))
    
  • Set context property printKeyCancellation to #f.
  • Set context property sectionBarType to "k".
  • Set context property shortInstrumentName to '().
  • Set context property startRepeatBarType to "k".
  • Set context property underlyingRepeatBarType to "k".
  • Set grob property thick-thickness in BarLine to 3.

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_engraver

Make accidentals. Catch note heads, ties and notices key-change events. This engraver usually lives at Staff level, but reads the settings for Accidental at Voice level, so you can \override them at Voice.

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 Score then all staves share accidentals, and if context is Staff 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:

context

The current context to which the rule should be applied.

pitch

The pitch of the note to be evaluated.

barnum

The current bar number.

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

Alteration_glyph_engraver

Set the glyph-name-alist of all grobs having the accidental-switch-interface to the value of the context’s alterationGlyphs property, when defined.

Properties (read)

alterationGlyphs (list)

Alist mapping alterations to accidental glyphs. Alterations are given as exact numbers, e.g., -1/2 for flat. This applies to all grobs that can print accidentals.

Axis_group_engraver

Group all objects created in this context in a VerticalAxisGroup spanner.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

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-empty set 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): VerticalAxisGroup.

Bar_engraver

Create bar lines for various commands, including \\bar.

If forbidBreakBetweenBarLines is true, allow line breaks at bar lines only.

Music types accepted: ad-hoc-jump-event, caesura-event, coda-mark-event, dal-segno-event, fine-event, section-event and segno-mark-event

Properties (read)

caesuraType (list)

An alist

((bar-line . bar-type)
 (breath . breath-type)
 (scripts . script-type…)
 (underlying-bar-line . bar-type))

specifying which breath mark, bar line, and scripts to create at \caesura. All entries are optional.

bar-line has higher priority than a measure bar line and underlying-bar-line has lower priority than a measure bar line.

caesuraTypeTransform (procedure)

An engraver callback taking three arguments and returning an alist of the same kind as caesuraType.

The first argument is the context.

The second argument is the value of caesuraType with an additional entry (articulations . symbol-list) identifying the articulations attached to the caesura in the music. If the transform function returns this second argument unmodified, it is as if no transform function were set; the function is free to return a different value. The transform function can remove articulations, but any added articulations are ignored.

The third argument is a symbol-list identifying certain things the engraver has observed. bar-line indicates that the engraver has observed a BarLine at the current moment.

doubleRepeatBarType (string)

Bar line to insert where the end of one \repeat volta coincides with the start of another. The default is ‘:..:’.

doubleRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the end of one \repeat volta and the beginning of another. The default is ‘:|.S.|:’.

endRepeatBarType (string)

Bar line to insert at the end of a \repeat volta. The default is ‘:|.’.

endRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the end of a \repeat volta. The default is ‘:|.S’.

fineBarType (string)

Bar line to insert at \fine. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘|.’.

fineSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with \fine. The default is ‘|.S’.

fineStartRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with \fine and the start of a \repeat volta. The default is ‘|.S.|:’.

forbidBreakBetweenBarLines (boolean)

If set to #t, Bar_engraver forbids line breaks where there is no bar line.

measureBarType (string)

Bar line to insert at a measure boundary.

printInitialRepeatBar (boolean)

Use a special bar line at the start of a volta repeat even at the beginning of the piece.

printTrivialVoltaRepeats (boolean)

Notate volta-style repeats even when the repeat count is 1.

repeatCommands (list)

A list of commands related to volta-style repeats. In general, each element is a list, '(command args…), but a command with no arguments may be abbreviated to a symbol; e.g., '((start-repeat)) may be given as '(start-repeat).

end-repeat return-count

End a repeated section. return-count is the number of times to go back from this point to the beginning of the section.

start-repeat repeat-count

Start a repeated section. repeat-count is the number of times to perform this section.

volta text

If text is markup, start a volta bracket with that label; if text is #f, end a volta bracket.

sectionBarType (string)

Bar line to insert at \section. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘||’.

segnoBarType (string)

Bar line to insert at an in-staff segno. The default is ‘S’.

segnoStyle (symbol)

A symbol that indicates how to print a segno: bar-line or mark.

startRepeatBarType (string)

Bar line to insert at the start of a \repeat volta. The default is ‘.|:’.

startRepeatSegnoBarType (string)

Bar line to insert where an in-staff segno coincides with the start of a \repeat volta. The default is ‘S.|:’.

underlyingRepeatBarType (string)

Bar line to insert at points of repetition or departure where no bar line would normally appear, for example at the end of a system broken in mid measure where the next system begins with a segno. Where there is also a repeat bar line, the repeat bar line takes precedence and this value is appended to it as an annotation. The default is ‘||’.

whichBar (string)

The current bar line type, or '() if there is no bar line. Setting this explicitly in user code is deprecated. Use \bar or related commands to set it.

Properties (write)

currentBarLine (graphical (layout) object)

Set to the BarLine that Bar_engraver has created in the current timestep.

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

This engraver creates the following layout object(s): BarLine.

Caesura_engraver

Notate a short break in sound that does not shorten the previous note.

Depending on the result of passing the value of caesuraType through caesuraTypeTransform, this engraver may create a BreathingSign with CaesuraScript grobs aligned to it, or it may create CaesuraScript grobs and align them to a BarLine.

If this engraver observes a BarLine, it calls caesuraTypeTransform again with the new information, and if necessary, recreates its grobs.

Music types accepted: caesura-event

Properties (read)

breathMarkDefinitions (list)

The description of breath marks. This is used by the Breathing_sign_engraver. See scm/breath.scm for more information.

caesuraType (list)

An alist

((bar-line . bar-type)
 (breath . breath-type)
 (scripts . script-type…)
 (underlying-bar-line . bar-type))

specifying which breath mark, bar line, and scripts to create at \caesura. All entries are optional.

bar-line has higher priority than a measure bar line and underlying-bar-line has lower priority than a measure bar line.

caesuraTypeTransform (procedure)

An engraver callback taking three arguments and returning an alist of the same kind as caesuraType.

The first argument is the context.

The second argument is the value of caesuraType with an additional entry (articulations . symbol-list) identifying the articulations attached to the caesura in the music. If the transform function returns this second argument unmodified, it is as if no transform function were set; the function is free to return a different value. The transform function can remove articulations, but any added articulations are ignored.

The third argument is a symbol-list identifying certain things the engraver has observed. bar-line indicates that the engraver has observed a BarLine at the current moment.

scriptDefinitions (list)

The description of scripts. This is used by the Script_engraver for typesetting note-superscripts and subscripts. See scm/script.scm for more information.

This engraver creates the following layout object(s): BreathingSign and CaesuraScript.

Clef_engraver

Determine 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 to a clef. Values of 7 and -7 are common.

clefTranspositionStyle (symbol)

Determines the way the ClefModifier grob of a clef is displayed. Possible values are 'default, 'parenthesized, and 'bracketed.

explicitClefVisibility (vector)

break-visibility’ function for clef changes.

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

forceBreak (boolean)

Set to #t when an event forcing a line break was heard.

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_engraver

Collect NoteColumns, and as soon as there are two or more, put them in a NoteCollision object.

This engraver creates the following layout object(s): NoteCollision.

Cue_clef_engraver

Determine and set reference point for pitches in cued voices.

Properties (read)

clefTransposition (integer)

Add this much extra transposition to a clef. 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 to a cue clef. Values of 7 and -7 are common.

cueClefTranspositionStyle (symbol)

Determines the way the ClefModifier grob of a cue clef is displayed. Possible values are 'default, 'parenthesized, and 'bracketed.

explicitCueClefVisibility (vector)

break-visibility’ function for cue clef changes.

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

forceBreak (boolean)

Set to #t when an event forcing a line break was heard.

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 cueClefPosition and cueClefGlyph.

This engraver creates the following layout object(s): ClefModifier, CueClef and CueEndClef.

Dot_column_engraver

Engrave 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): DotColumn.

Figured_bass_engraver

Make 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_engraver

Position figured bass alignments over notes.

This engraver creates the following layout object(s): BassFigureAlignmentPositioning.

Fingering_column_engraver

Find potentially colliding scripts and put them into a FingeringColumn object; that will fix the collisions.

This engraver creates the following layout object(s): FingeringColumn.

Font_size_engraver

Put fontSize into font-size grob property.

Properties (read)

fontSize (number)

The relative size of all grobs in a context.

Grob_pq_engraver

Administrate when certain grobs (e.g., note heads) stop playing.

Properties (read)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Properties (write)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Instrument_name_engraver

Create a system start text for instrument or vocal names.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

instrumentName (markup)

The name to print left of a staff. The instrumentName property labels the staff in the first system, and the shortInstrumentName property 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): InstrumentName.

Key_engraver

Engrave a key signature.

Music types accepted: key-change-event

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

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

forceBreak (boolean)

Set to #t when an event forcing a line break was heard.

keyAlterationOrder (list)

A list of pairs that defines in what order alterations should be printed. The format of an entry is (step . alter), where step is a number from 0 to 6 and alter from -1 (double flat) to 1 (double sharp), with exact rationals for alterations in between, e.g., 1/2 for sharp.

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 clefPosition and clefGlyph.

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): KeyCancellation and KeySignature.

Ledger_line_engraver

Create the spanner to draw ledger lines, and notices objects that need ledger lines.

This engraver creates the following layout object(s): LedgerLineSpanner.

Merge_mmrest_numbers_engraver

Engraver to merge multi-measure rest numbers in multiple voices.

This works by gathering all multi-measure rest numbers at a time step. If they all have the same text and there are at least two only the first one is retained and the others are hidden.

Non_musical_script_column_engraver

Find potentially colliding non-musical scripts and put them into a ScriptColumn object; that will fix the collisions.

This engraver creates the following layout object(s): ScriptColumn.

Ottava_spanner_engraver

Create a text spanner when the ottavation property changes.

Music types accepted: ottava-event

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 middleCClefPosition This 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): OttavaBracket.

Output_property_engraver

Apply a procedure to any grob acknowledged.

Music types accepted: apply-output-event

Piano_pedal_align_engraver

Align piano pedal symbols and brackets.

Properties (read)

currentCommandColumn (graphical (layout) object)

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

This engraver creates the following layout object(s): SostenutoPedalLineSpanner, SustainPedalLineSpanner and UnaCordaPedalLineSpanner.

Piano_pedal_engraver

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

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, bracket or mixed (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_engraver

Coordinates items that get their pure heights from their neighbors.

Rest_collision_engraver

Handle 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): RestCollision.

Script_row_engraver

Determine order in horizontal side position elements.

This engraver creates the following layout object(s): ScriptRow.

Separating_line_group_engraver

Generate objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)

Create StaffSpacing objects? Should be set for staves.

Properties (write)

hasStaffSpacing (boolean)

True if currentCommandColumn contains items that will affect spacing.

This engraver creates the following layout object(s): StaffSpacing.

Skip_typesetting_engraver

Create a StaffEllipsis when skipTypesetting is used.

Properties (read)

skipTypesetting (boolean)

If true, no typesetting is done, speeding up the interpretation phase. Useful for debugging large scores.

This engraver creates the following layout object(s): StaffEllipsis.

Staff_collecting_engraver

Maintain the stavesFound variable.

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_highlight_engraver

Highlights music passages.

Music types accepted: staff-highlight-event

Properties (read)

currentCommandColumn (graphical (layout) object)

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

This engraver creates the following layout object(s): StaffHighlight.

Staff_symbol_engraver

Create the constellation of five (default) staff lines.

Music types accepted: staff-span-event

This engraver creates the following layout object(s): StaffSymbol.


2.1.20 KievanVoice

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, FingerGlideSpanner, 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, TrillPitchParentheses, TrillSpanner, TupletBracket, TupletNumber and VoiceFollower.

This context sets the following properties:

  • Set context property autoBeaming to #f.
  • Set grob property duration-log in NoteHead to note-head::calc-kievan-duration-log.
  • Set grob property length in Stem to 0.0.
  • Set grob property positions in Beam to beam::get-kievan-positions.
  • Set grob property quantized-positions in Beam to beam::get-kievan-quantized-positions.
  • Set grob property stencil in Flag to #f.
  • Set grob property stencil in Slur to #f.
  • Set grob property stencil in Stem to #f.
  • Set grob property style in Dots to 'kievan.
  • Set grob property style in NoteHead to 'kievan.
  • Set grob property style in Rest to 'mensural.
  • Set grob property X-offset in Stem to stem::kievan-offset-callback.

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_engraver

Generate an Arpeggio symbol.

Music types accepted: arpeggio-event

This engraver creates the following layout object(s): Arpeggio.

Auto_beam_engraver

Generate beams based on measure characteristics and observed Stems. Uses baseMoment, beatStructure, beamExceptions, measureLength, and measurePosition to decide when to start and stop a beam. Overriding beaming is done through Stem_engraver properties stemLeftBeamCount and stemRightBeamCount.

Music types accepted: beam-forbid-event

Properties (read)

autoBeaming (boolean)

If set to #t then beams are generated automatically. If set to #f, auto-beaming is switched off as soon as the current beam (if any) is finished according to the auto-beaming rules.

baseMoment (positive moment with no grace part)

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, beams of mulitple stems may be subdivided by omitting a number of beamlets, dependent on maxSubdivideInterval, between beats at mulitiples of minSubdivideInterval.

This engraver creates the following layout object(s): Beam.

Beam_engraver

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

Music types accepted: beam-event

Properties (read)

baseMoment (positive moment with no grace part)

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, beams of mulitple stems may be subdivided by omitting a number of beamlets, dependent on maxSubdivideInterval, between beats at mulitiples of minSubdivideInterval.

This engraver creates the following layout object(s): Beam.

Bend_engraver

Create fall spanners.

Music types accepted: bend-after-event

Properties (read)

currentBarLine (graphical (layout) object)

Set to the BarLine that Bar_engraver has created in the current timestep.

currentCommandColumn (graphical (layout) object)

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

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

Breathing_sign_engraver

Notate breath marks.

Music types accepted: breathing-event

Properties (read)

breathMarkType (symbol)

The type of BreathingSign to create at \breathe.

This engraver creates the following layout object(s): BreathingSign.

Chord_tremolo_engraver

Generate beams for tremolo repeats.

Music types accepted: tremolo-span-event

This engraver creates the following layout object(s): Beam.

Cluster_spanner_engraver

Engrave a cluster using Spanner notation.

Music types accepted: cluster-note-event

This engraver creates the following layout object(s): ClusterSpanner and ClusterSpannerBeacon.

Dots_engraver

Create Dots objects for rhythmic-head-interfaces.

This engraver creates the following layout object(s): Dots.

Double_percent_repeat_engraver

Make double measure repeats.

Music types accepted: double-percent-event

Properties (read)

countPercentRepeats (boolean)

If set, produce counters for percent repeats.

measureLength (positive moment with no grace part)

Length of one measure in the current time signature.

repeatCountVisibility (procedure)

A procedure taking as arguments an integer and context, returning whether the corresponding percent repeat number should be printed when countPercentRepeats is set.

Properties (write)

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

This engraver creates the following layout object(s): DoublePercentRepeat and DoublePercentRepeatCounter.

Dynamic_align_engraver

Align hairpins and dynamic texts on a horizontal line.

Properties (read)

currentMusicalColumn (graphical (layout) object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

This engraver creates the following layout object(s): DynamicLineSpanner.

Dynamic_engraver

Create hairpins, dynamic texts and dynamic text spanners.

Music types accepted: absolute-dynamic-event, break-dynamic-span-event and span-dynamic-event

Properties (read)

crescendoSpanner (symbol)

The type of spanner to be used for crescendi. Available values are ‘hairpin’ and ‘text’. If unset, a hairpin crescendo is used.

crescendoText (markup)

The text to print at start of non-hairpin crescendo, i.e., ‘cresc.’.

currentMusicalColumn (graphical (layout) object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

decrescendoSpanner (symbol)

The type of spanner to be used for decrescendi. Available values are ‘hairpin’ and ‘text’. If unset, a hairpin decrescendo is used.

decrescendoText (markup)

The text to print at start of non-hairpin decrescendo, i.e., ‘dim.’.

This engraver creates the following layout object(s): DynamicText, DynamicTextSpanner and Hairpin.

Finger_glide_engraver

Engraver to print a line between two Fingering grobs.

Music types accepted: note-event

This engraver creates the following layout object(s): FingerGlideSpanner.

Fingering_engraver

Create fingering scripts.

Music types accepted: fingering-event

This engraver creates the following layout object(s): Fingering.

Font_size_engraver

Put fontSize into font-size grob property.

Properties (read)

fontSize (number)

The relative size of all grobs in a context.

Forbid_line_break_engraver

Forbid line breaks when note heads are still playing at some point.

Properties (read)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Properties (write)

forbidBreak (boolean)

If set to #t, prevent a line break at this point, except if explicitly requested by the user.

Glissando_engraver

Engrave glissandi.

Music types accepted: glissando-event

Properties (read)

glissandoMap (list)

A map in the form of ’((source1 . target1) (source2 . target2) (sourcen . targetn)) showing the glissandi to be drawn for note columns. The value ’() will default to ’((0 . 0) (1 . 1) (n . n)), where n is the minimal number of note-heads in the two note columns between which the glissandi occur.

This engraver creates the following layout object(s): Glissando.

Grace_auto_beam_engraver

Generates one autobeam group across an entire grace phrase. As usual, any manual beaming or \noBeam will block autobeaming, just like setting the context property ‘autoBeaming’ to ##f.

Music types accepted: beam-forbid-event

Properties (read)

autoBeaming (boolean)

If set to #t then beams are generated automatically. If set to #f, auto-beaming is switched off as soon as the current beam (if any) is finished according to the auto-beaming rules.

This engraver creates the following layout object(s): Beam.

Grace_beam_engraver

Handle Beam events by engraving beams. If omitted, then notes are printed with flags instead of beams. Only engraves beams when we are at grace points in time.

Music types accepted: beam-event

Properties (read)

baseMoment (positive moment with no grace part)

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, beams of mulitple stems may be subdivided by omitting a number of beamlets, dependent on maxSubdivideInterval, between beats at mulitiples of minSubdivideInterval.

This engraver creates the following layout object(s): Beam.

Grace_engraver

Set font size and other properties for grace notes.

Properties (read)

graceSettings (list)

Overrides for grace notes. This property should be manipulated through the add-grace-property function.

Grob_pq_engraver

Administrate when certain grobs (e.g., note heads) stop playing.

Properties (read)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Properties (write)

busyGrobs (list)

A queue of (end-moment . grob) cons cells. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g., note heads, spanners, etc.).

Instrument_switch_engraver

Create a cue text for taking instrument.

This engraver is deprecated.

Properties (read)

instrumentCueName (markup)

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

This property is deprecated

This engraver creates the following layout object(s): InstrumentSwitch.

Kievan_ligature_engraver

Handle Kievan_ligature_events by glueing Kievan heads together.

Music types accepted: ligature-event

This engraver creates the following layout object(s): KievanLigature.

Laissez_vibrer_engraver

Create laissez vibrer items.

Music types accepted: laissez-vibrer-event

This engraver creates the following layout object(s): LaissezVibrerTie and LaissezVibrerTieColumn.

Multi_measure_rest_engraver

Engrave multi-measure rests that are produced with ‘R’. It reads measureStartNow and internalBarNumber to 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 items (clef, key signature, etc.).

internalBarNumber (integer)

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

measureStartNow (boolean)

True at the beginning of a measure.

restNumberThreshold (number)

If a multimeasure rest has more measures than this, a number is printed.

This engraver creates the following layout object(s): MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestScript and MultiMeasureRestText.

New_fingering_engraver

Create fingering scripts for notes in a new chord. This engraver is ill-named, since it also takes care of articulations and harmonic note heads.

Properties (read)

fingeringOrientations (list)

A list of symbols, containing ‘left’, ‘right’, ‘up’ and/or ‘down’. This list determines where fingerings are put relative to the chord being fingered.

harmonicDots (boolean)

If set, harmonic notes in dotted chords get dots.

stringNumberOrientations (list)

See fingeringOrientations.

strokeFingerOrientations (list)

See fingeringOrientations.

This engraver creates the following layout object(s): Fingering, Script, StringNumber and StrokeFinger.

Note_head_line_engraver

Engrave a line between two note heads in a staff switch if followVoice is 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): VoiceFollower.

Note_heads_engraver

Generate note heads.

Music types accepted: note-event

Properties (read)

middleCPosition (number)

The place of the middle C, measured in half staff-spaces. Usually determined by looking at middleCClefPosition and middleCOffset.

staffLineLayoutFunction (procedure)

Layout of staff lines, traditional, or semitone.

This engraver creates the following layout object(s): NoteHead.

Note_spacing_engraver

Generate NoteSpacing, an object linking horizontal lines for use in spacing.

This engraver creates the following layout object(s): NoteSpacing.

Output_property_engraver

Apply a procedure to any grob acknowledged.

Music types accepted: apply-output-event

Part_combine_engraver

Part combine engraver for orchestral scores: Print markings ‘a2’, ‘Solo’, ‘Solo II’, and ‘unisono’.

Music types accepted: note-event and part-combine-event

Properties (read)

aDueText (markup)

Text to print at a unisono passage.

partCombineTextsOnNote (boolean)

Print part-combine texts only on the next note rather than immediately on rests or skips.

printPartCombineTexts (boolean)

Set ‘Solo’ and ‘A due’ texts in the part combiner?

soloIIText (markup)

The text for the start of a solo for voice ‘two’ when part-combining.

soloText (markup)

The text for the start of a solo when part-combining.

This engraver creates the following layout object(s): CombineTextScript.

Percent_repeat_engraver

Make whole measure repeats.

Music types accepted: percent-event

Properties (read)

countPercentRepeats (boolean)

If set, produce counters for percent repeats.

currentCommandColumn (graphical (layout) object)

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

repeatCountVisibility (procedure)

A procedure taking as arguments an integer and context, returning whether the corresponding percent repeat number should be printed when countPercentRepeats is set.

This engraver creates the following layout object(s): PercentRepeat and PercentRepeatCounter