GNU LilyPond – Internals Reference
This document is also available as a PDF and as one big page.
This is the Internals Reference (IR) for version 2.11.65 of LilyPond, the GNU music typesetter.
| 1. Music definitions | Definition of the input data structures. | |
| 2. Translation | From music to layout. | |
| 3. Backend | Reference for the layout engine. | |
| 4. Scheme functions | Primitive functions exported by LilyPond. | |
| A. Indices |
1. Music definitions
| 1.1 Music expressions | Objects that represent music. | |
| 1.2 Music classes | ||
| 1.3 Music properties | All music properties, including descriptions. |
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, Dynamic_performer and New_dynamic_engraver.
Properties:
name(symbol):
'AbsoluteDynamicEventName of this music object.
types(list):
'(general-music event dynamic-event absolute-dynamic-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.2 AnnotateOutputEvent
Print an annotation of an output element.
Event classes: annotate-output-event, music-event and StreamEvent.
Accepted by: Balloon_engraver.
Properties:
name(symbol):
'AnnotateOutputEventName of this music object.
types(list):
'(general-music event annotate-output-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.3 ApplyContext
Call the argument with the current context during interpreting phase.
Properties:
name(symbol):
'ApplyContextName of this music object.
types(list):
'(general-music apply-context)The types of this music object; determines by what engraver this music expression is processed.
iterator-ctor(procedure):
ly:apply-context-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.
1.1.4 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):
'ApplyOutputEventName of this music object.
types(list):
'(general-music event apply-output-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.5 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):
'ArpeggioEventName of this music object.
types(list):
'(general-music arpeggio-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.6 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, script-event, music-event and StreamEvent.
Accepted by: Script_engraver.
Properties:
name(symbol):
'ArticulationEventName of this music object.
types(list):
'(general-music event articulation-event script-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.7 AutoChangeMusic
Used for making voices that switch between piano staves automatically.
Properties:
name(symbol):
'AutoChangeMusicName of this music object.
iterator-ctor(procedure):
ly:auto-change-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.start-callback(procedure):
ly:music-wrapper::start-callbackFunction to compute the negative length of starting grace notes. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
length-callback(procedure):
ly:music-wrapper::length-callbackHow to compute the duration of this music. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
types(list):
'(general-music music-wrapper-music auto-change-instruction)The types of this music object; determines by what engraver this music expression is processed.
1.1.8 BarCheck
Check whether this music coincides with the start of the measure.
Properties:
name(symbol):
'BarCheckName of this music object.
types(list):
'(general-music bar-check)The types of this music object; determines by what engraver this music expression is processed.
iterator-ctor(procedure):
ly:bar-check-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.
1.1.9 BassFigureEvent
Print a bass-figure text.
Event classes: bass-figure-event, rhythmic-event, music-event and StreamEvent.
Accepted by: Figured_bass_engraver.
Properties:
name(symbol):
'BassFigureEventName of this music object.
types(list):
'(general-music event rhythmic-event bass-figure-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.10 BeamEvent
Start or stop a beam.
Syntax for manual control: c8-[ c c-] c8
Event classes: beam-event, span-event, music-event and StreamEvent.
Accepted by: Beam_engraver, Beam_performer and Grace_beam_engraver.
Properties:
name(symbol):
'BeamEventName of this music object.
types(list):
'(general-music event beam-event span-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.11 BeamForbidEvent
Specify that a note may not auto-beamed.
Event classes: beam-forbid-event, music-event and StreamEvent.
Accepted by: Auto_beam_engraver.
Properties:
name(symbol):
'BeamForbidEventName of this music object.
types(list):
'(general-music event beam-forbid-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.12 BendAfterEvent
A drop/fall/doit jazz articulation.
Event classes: bend-after-event, music-event and StreamEvent.
Accepted by: Bend_engraver.
Properties:
name(symbol):
'BendAfterEventName of this music object.
types(list):
'(general-music bend-after-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.13 BreathingEvent
Create a ‘breath mark’ or ‘comma’.
Syntax: note\breathe
Event classes: breathing-event, music-event and StreamEvent.
Accepted by: Breathing_sign_engraver.
Properties:
name(symbol):
'BreathingEventName of this music object.
types(list):
'(general-music event breathing-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.14 ClusterNoteEvent
A note that is part of a cluster.
Event classes: cluster-note-event, melodic-event, rhythmic-event, music-event and StreamEvent.
Accepted by: Cluster_spanner_engraver.
Properties:
name(symbol):
'ClusterNoteEventName of this music object.
types(list):
'(general-music 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.15 ContextChange
Change staves in Piano staff.
Syntax: \change Staff = new-id
Properties:
name(symbol):
'ContextChangeName of this music object.
iterator-ctor(procedure):
ly:change-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.types(list):
'(general-music translator-change-instruction)The types of this music object; determines by what engraver this music expression is processed.
1.1.16 ContextSpeccedMusic
Interpret the argument music within a specific context.
Properties:
name(symbol):
'ContextSpeccedMusicName of this music object.
iterator-ctor(procedure):
ly:context-specced-music-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.length-callback(procedure):
ly:music-wrapper::length-callbackHow to compute the duration of this music. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
start-callback(procedure):
ly:music-wrapper::start-callbackFunction 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 general-music music-wrapper-music)The types of this music object; determines by what engraver this music expression is processed.
1.1.17 CrescendoEvent
Begin or end a crescendo.
Syntax: note\cr … note\rc
You can also use \<, \!, \cresc, and
\endcresc. See the Notation Reference for details.
Event classes: crescendo-event, span-dynamic-event, span-event, music-event and StreamEvent.
Accepted by: Dynamic_engraver, Dynamic_performer and New_dynamic_engraver.
Properties:
name(symbol):
'CrescendoEventName of this music object.
types(list):
'(general-music 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.18 DecrescendoEvent
See CrescendoEvent.
Event classes: decrescendo-event, span-dynamic-event, span-event, music-event and StreamEvent.
Accepted by: Dynamic_engraver, Dynamic_performer and New_dynamic_engraver.
Properties:
name(symbol):
'DecrescendoEventName of this music object.
types(list):
'(general-music 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.19 Event
Atomic music event.
Properties:
name(symbol):
'EventName of this music object.
types(list):
'(general-music event)The types of this music object; determines by what engraver this music expression is processed.
1.1.20 EventChord
Internally used to group a set of events.
Properties:
name(symbol):
'EventChordName of this music object.
iterator-ctor(procedure):
ly:event-chord-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.length-callback(procedure):
ly:music-sequence::maximum-length-callbackHow to compute the duration of this music. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
to-relative-callback(procedure):
ly:music-sequence::event-chord-relative-callbackHow to transform a piece of music to relative pitches.
types(list):
'(general-music event-chord simultaneous-music)The types of this music object; determines by what engraver this music expression is processed.
1.1.21 ExtenderEvent
Extend lyrics.
Event classes: extender-event, music-event and StreamEvent.
Accepted by: Extender_engraver.
Properties:
name(symbol):
'ExtenderEventName of this music object.
types(list):
'(general-music extender-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.22 FingeringEvent
Specify what finger to use for this note.
Event classes: fingering-event, music-event and StreamEvent.
Accepted by: Fingering_engraver.
Properties:
name(symbol):
'FingeringEventName of this music object.
types(list):
'(general-music fingering-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.23 GlissandoEvent
Start a glissando on this note.
Event classes: glissando-event, music-event and StreamEvent.
Accepted by: Glissando_engraver.
Properties:
name(symbol):
'GlissandoEventName of this music object.
types(list):
'(general-music glissando-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.24 GraceMusic
Interpret the argument as grace notes.
Properties:
name(symbol):
'GraceMusicName of this music object.
start-callback(procedure):
ly:grace-music::start-callbackFunction to compute the negative length of starting grace notes. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
length(moment):
#<Mom 0>The duration of this music.
iterator-ctor(procedure):
ly:grace-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.types(list):
'(grace-music music-wrapper-music general-music)The types of this music object; determines by what engraver this music expression is processed.
1.1.25 HarmonicEvent
Mark a note as harmonic.
Event classes: harmonic-event, music-event and StreamEvent.
Not accepted by any engraver or performer.
Properties:
name(symbol):
'HarmonicEventName of this music object.
types(list):
'(general-music event harmonic-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.26 HyphenEvent
A hyphen between lyric syllables.
Event classes: hyphen-event, music-event and StreamEvent.
Accepted by: Hyphen_engraver.
Properties:
name(symbol):
'HyphenEventName of this music object.
types(list):
'(general-music hyphen-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.27 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):
'KeyChangeEventName of this music object.
to-relative-callback(procedure):
#<procedure #f (x p)>How to transform a piece of music to relative pitches.
types(list):
'(general-music key-change-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.28 LabelEvent
Place a bookmarking label.
Event classes: label-event, music-event and StreamEvent.
Accepted by: Paper_column_engraver.
Properties:
name(symbol):
'LabelEventName of this music object.
types(list):
'(general-music label-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.29 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):
'LaissezVibrerEventName of this music object.
types(list):
'(general-music event laissez-vibrer-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.30 LigatureEvent
Start or end a ligature.
Event classes: ligature-event, span-event, music-event and StreamEvent.
Accepted by: Ligature_bracket_engraver, Mensural_ligature_engraver and Vaticana_ligature_engraver.
Properties:
name(symbol):
'LigatureEventName of this music object.
span-type(string):
'ligatureWhat kind of spanner should be created?
TODO: Consider making type into symbol.
types(list):
'(general-music span-event ligature-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.31 LineBreakEvent
Allow, forbid or force a line break.
Event classes: line-break-event, break-event, music-event and StreamEvent.
Accepted by: Page_turn_engraver and Paper_column_engraver.
Properties:
name(symbol):
'LineBreakEventName of this music object.
types(list):
'(general-music line-break-event break-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.32 LyricCombineMusic
Align lyrics to the start of notes.
Syntax: \lyricsto voicename lyrics
Properties:
name(symbol):
'LyricCombineMusicName of this music object.
length(moment):
#<Mom 0>The duration of this music.
types(list):
'(general-music lyric-combine-music)The types of this music object; determines by what engraver this music expression is processed.
iterator-ctor(procedure):
ly:lyric-combine-music-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.
1.1.33 LyricEvent
A lyric syllable. Must be entered in lyrics mode,
i.e., \lyrics { twinkle4 twinkle4 } .
Event classes: lyric-event, rhythmic-event, music-event and StreamEvent.
Accepted by: Lyric_engraver and Lyric_performer.
Properties:
name(symbol):
'LyricEventName of this music object.
types(list):
'(general-music rhythmic-event lyric-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.34 MarkEvent
Insert a rehearsal mark.
Syntax: \mark marker
Example: \mark "A"
Event classes: mark-event, music-event and StreamEvent.
Accepted by: Mark_engraver.
Properties:
name(symbol):
'MarkEventName of this music object.
types(list):
'(general-music mark-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.35 MultiMeasureRestEvent
Used internally by MultiMeasureRestMusic
to signal rests.
Event classes: multi-measure-rest-event, rhythmic-event, music-event and StreamEvent.
Accepted by: Multi_measure_rest_engraver.
Properties:
name(symbol):
'MultiMeasureRestEventName of this music object.
types(list):
'(general-music event rhythmic-event multi-measure-rest-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.36 MultiMeasureRestMusic
Rests that may be compressed into Multi rests.
Syntax: R2.*4 for 4 measures in 3/4 time.
Properties:
name(symbol):
'MultiMeasureRestMusicName of this music object.
iterator-ctor(procedure):
ly:sequential-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.elements-callback(procedure):
mm-rest-child-listReturn a list of children, for use by a sequential iterator. Takes a single music parameter.
types(list):
'(general-music multi-measure-rest)The types of this music object; determines by what engraver this music expression is processed.
1.1.37 MultiMeasureTextEvent
Texts on multi measure rests.
Syntax: R-\markup { \roman "bla" }
Note the explicit font switch.
Event classes: multi-measure-text-event, music-event and StreamEvent.
Accepted by: Multi_measure_rest_engraver.
Properties:
name(symbol):
'MultiMeasureTextEventName of this music object.
types(list):
'(general-music event multi-measure-text-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.38 Music
Generic type for music expressions.
Properties:
name(symbol):
'MusicName of this music object.
types(list):
'(general-music)The types of this music object; determines by what engraver this music expression is processed.
1.1.39 NoteEvent
A note.
Event classes: note-event, melodic-event, rhythmic-event, music-event and StreamEvent.
Accepted by: Chord_name_engraver, Completion_heads_engraver, Drum_note_performer, Drum_notes_engraver, Fretboard_engraver, Note_heads_engraver, Note_name_engraver, Note_performer and Tab_note_heads_engraver.
Properties:
name(symbol):
'NoteEventName of this music object.
types(list):
'(general-music event note-event rhythmic-event melodic-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.40 NoteGroupingEvent
Start or stop grouping brackets.
Event classes: note-grouping-event, music-event and StreamEvent.
Accepted by: Horizontal_bracket_engraver.
Properties:
name(symbol):
'NoteGroupingEventName of this music object.
types(list):
'(general-music event note-grouping-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.41 OverrideProperty
Extend the definition of a graphical object.
Syntax: \override [ context . ]
object property = value
Properties:
name(symbol):
'OverridePropertyName of this music object.
types(list):
'(general-music layout-instruction-event override-property-event)The types of this music object; determines by what engraver this music expression is processed.
iterator-ctor(procedure):
ly:push-property-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.
1.1.42 PageBreakEvent
Allow, forbid or force a page break.
Event classes: page-break-event, break-event, music-event and StreamEvent.
Accepted by: Page_turn_engraver and Paper_column_engraver.
Properties:
name(symbol):
'PageBreakEventName of this music object.
types(list):
'(general-music break-event page-break-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.43 PageTurnEvent
Allow, forbid or force a page turn.
Event classes: page-turn-event, break-event, music-event and StreamEvent.
Accepted by: Page_turn_engraver and Paper_column_engraver.
Properties:
name(symbol):
'PageTurnEventName of this music object.
types(list):
'(general-music break-event page-turn-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.44 PartCombineMusic
Combine two parts on a staff, either merged or as separate voices.
Properties:
name(symbol):
'PartCombineMusicName of this music object.
length-callback(procedure):
ly:music-sequence::maximum-length-callbackHow to compute the duration of this music. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
start-callback(procedure):
ly:music-sequence::minimum-start-callbackFunction 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):
'(general-music part-combine-music)The types of this music object; determines by what engraver this music expression is processed.
iterator-ctor(procedure):
ly:part-combine-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.
1.1.45 PercentEvent
Used internally to signal percent repeats.
Event classes: percent-event, rhythmic-event, music-event and StreamEvent.
Accepted by: Percent_repeat_engraver and Slash_repeat_engraver.
Properties:
name(symbol):
'PercentEventName of this music object.
types(list):
'(general-music event percent-event rhythmic-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.46 PercentRepeatedMusic
Repeats encoded by percents.
Properties:
name(symbol):
'PercentRepeatedMusicName of this music object.
iterator-ctor(procedure):
ly:percent-repeat-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.start-callback(procedure):
ly:repeated-music::first-startFunction to compute the negative length of starting grace notes. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
length-callback(procedure):
ly:repeated-music::unfolded-music-lengthHow to compute the duration of this music. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
types(list):
'(general-music repeated-music percent-repeated-music)The types of this music object; determines by what engraver this music expression is processed.
1.1.47 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: pes-or-flexa-event, music-event and StreamEvent.
Accepted by: Vaticana_ligature_engraver.
Properties:
name(symbol):
'PesOrFlexaEventName of this music object.
types(list):
'(general-music pes-or-flexa-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.48 PhrasingSlurEvent
Start or end phrasing slur.
Syntax: note\( and note\)
Event classes: phrasing-slur-event, span-event, music-event and StreamEvent.
Accepted by: Phrasing_slur_engraver.
Properties:
name(symbol):
'PhrasingSlurEventName of this music object.
types(list):
'(general-music span-event event phrasing-slur-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.49 PropertySet
Set a context property.
Syntax: \property context.prop = scheme-val
Properties:
name(symbol):
'PropertySetName of this music object.
types(list):
'(layout-instruction-event general-music)The types of this music object; determines by what engraver this music expression is processed.
iterator-ctor(procedure):
ly:property-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.
1.1.50 PropertyUnset
Remove the definition of a context
\property.
Properties:
name(symbol):
'PropertyUnsetName of this music object.
types(list):
'(layout-instruction-event general-music)The types of this music object; determines by what engraver this music expression is processed.
iterator-ctor(procedure):
ly:property-unset-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.
1.1.51 QuoteMusic
Quote preprocessed snippets of music.
Properties:
name(symbol):
'QuoteMusicName of this music object.
iterator-ctor(procedure):
ly:music-wrapper-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.length-callback(procedure):
ly:music-wrapper::length-callbackHow to compute the duration of this music. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
start-callback(procedure):
ly:music-wrapper::start-callbackFunction 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):
'(general-music music-wrapper-music)The types of this music object; determines by what engraver this music expression is processed.
1.1.52 RelativeOctaveCheck
Check if a pitch is in the correct octave.
Properties:
name(symbol):
'RelativeOctaveCheckName of this music object.
to-relative-callback(procedure):
ly:relative-octave-check::relative-callbackHow to transform a piece of music to relative pitches.
types(list):
'(general-music relative-octave-check)The types of this music object; determines by what engraver this music expression is processed.
1.1.53 RelativeOctaveMusic
Music that was entered in relative octave notation.
Properties:
name(symbol):
'RelativeOctaveMusicName of this music object.
to-relative-callback(procedure):
ly:relative-octave-music::relative-callbackHow to transform a piece of music to relative pitches.
iterator-ctor(procedure):
ly:music-wrapper-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.length-callback(procedure):
ly:music-wrapper::length-callbackHow to compute the duration of this music. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
start-callback(procedure):
ly:music-wrapper::start-callbackFunction 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 general-music relative-octave-music)The types of this music object; determines by what engraver this music expression is processed.
1.1.54 RepeatTieEvent
Ties for starting a second volta bracket.
Event classes: repeat-tie-event, music-event and StreamEvent.
Accepted by: Repeat_tie_engraver.
Properties:
name(symbol):
'RepeatTieEventName of this music object.
types(list):
'(general-music event repeat-tie-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.55 RepeatedMusic
Repeat music in different ways.
Properties:
name(symbol):
'RepeatedMusicName of this music object.
types(list):
'(general-music repeated-music)The types of this music object; determines by what engraver this music expression is processed.
1.1.56 RestEvent
A Rest.
Syntax: r4 for a quarter rest.
Event classes: rest-event, rhythmic-event, music-event and StreamEvent.
Accepted by: Figured_bass_engraver and Rest_engraver.
Properties:
name(symbol):
'RestEventName of this music object.
types(list):
'(general-music event rhythmic-event rest-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.57 RevertProperty
The opposite of OverrideProperty: remove a previously added property from a graphical object definition.
Properties:
name(symbol):
'RevertPropertyName of this music object.
types(list):
'(general-music layout-instruction-event)The types of this music object; determines by what engraver this music expression is processed.
iterator-ctor(procedure):
ly:pop-property-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.
1.1.58 ScriptEvent
Add an articulation mark to a note.
Event classes: script-event, music-event and StreamEvent.
Not accepted by any engraver or performer.
Properties:
name(symbol):
'ScriptEventName of this music object.
types(list):
'(general-music event)The types of this music object; determines by what engraver this music expression is processed.
1.1.59 SequentialMusic
Music expressions concatenated.
Syntax: \sequential { … } or simply { … }
Properties:
name(symbol):
'SequentialMusicName of this music object.
length-callback(procedure):
ly:music-sequence::cumulative-length-callbackHow to compute the duration of this music. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
start-callback(procedure):
ly:music-sequence::first-start-callbackFunction to compute the negative length of starting grace notes. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
elements-callback(procedure):
#<procedure #f (m)>Return a list of children, for use by a sequential iterator. Takes a single music parameter.
iterator-ctor(procedure):
ly:sequential-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.types(list):
'(general-music sequential-music)The types of this music object; determines by what engraver this music expression is processed.
1.1.60 SimultaneousMusic
Music playing together.
Syntax: \simultaneous { … } or << … >>
Properties:
name(symbol):
'SimultaneousMusicName of this music object.
iterator-ctor(procedure):
ly:simultaneous-music-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.start-callback(procedure):
ly:music-sequence::minimum-start-callbackFunction to compute the negative length of starting grace notes. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
length-callback(procedure):
ly:music-sequence::maximum-length-callbackHow to compute the duration of this music. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
to-relative-callback(procedure):
ly:music-sequence::simultaneous-relative-callbackHow to transform a piece of music to relative pitches.
types(list):
'(general-music simultaneous-music)The types of this music object; determines by what engraver this music expression is processed.
1.1.61 SkipEvent
Filler that takes up duration, but does not print anything.
Syntax: s4 for a skip equivalent to a quarter rest.
Event classes: skip-event, rhythmic-event, music-event and StreamEvent.
Not accepted by any engraver or performer.
Properties:
name(symbol):
'SkipEventName of this music object.
types(list):
'(general-music event rhythmic-event skip-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.62 SkipMusic
Filler that takes up duration, does not print anything, and also does not create staves or voices implicitly.
Syntax: \skip duration
Properties:
name(symbol):
'SkipMusicName of this music object.
length-callback(procedure):
ly:music-duration-lengthHow to compute the duration of this music. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
iterator-ctor(procedure):
ly:simple-music-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.types(list):
'(general-music event rhythmic-event skip-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.63 SlurEvent
Start or end slur.
Syntax: note( and note)
Event classes: slur-event, span-event, music-event and StreamEvent.
Accepted by: Slur_engraver and Slur_performer.
Properties:
name(symbol):
'SlurEventName of this music object.
types(list):
'(general-music span-event event slur-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.64 SoloOneEvent
Print ‘Solo 1’.
Event classes: solo-one-event, part-combine-event, music-event and StreamEvent.
Accepted by: Part_combine_engraver.
Properties:
name(symbol):
'SoloOneEventName of this music object.
part-combine-status(symbol):
'solo1Change to what kind of state? Options are
solo1,solo2andunisono.types(list):
'(general-music event part-combine-event solo-one-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.65 SoloTwoEvent
Print ‘Solo 2’.
Event classes: solo-two-event, part-combine-event, music-event and StreamEvent.
Accepted by: Part_combine_engraver.
Properties:
name(symbol):
'SoloTwoEventName of this music object.
part-combine-status(symbol):
'solo2Change to what kind of state? Options are
solo1,solo2andunisono.types(list):
'(general-music event part-combine-event solo-two-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.66 SostenutoEvent
Depress or release sostenuto pedal.
Event classes: sostenuto-event, pedal-event, span-event, music-event and StreamEvent.
Accepted by: Piano_pedal_engraver and Piano_pedal_performer.
Properties:
name(symbol):
'SostenutoEventName of this music object.
types(list):
'(general-music event pedal-event sostenuto-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.67 SpacingSectionEvent
Start a new spacing section.
Event classes: spacing-section-event, music-event and StreamEvent.
Accepted by: Spacing_engraver.
Properties:
name(symbol):
'SpacingSectionEventName of this music object.
types(list):
'(general-music event spacing-section-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.68 SpanEvent
Event for anything that is started at a different time than stopped.
Event classes: span-event, music-event and StreamEvent.
Not accepted by any engraver or performer.
Properties:
name(symbol):
'SpanEventName of this music object.
types(list):
'(general-music event)The types of this music object; determines by what engraver this music expression is processed.
1.1.69 StaffSpanEvent
Start or stop a staff symbol.
Event classes: staff-span-event, span-event, music-event and StreamEvent.
Accepted by: Staff_symbol_engraver.
Properties:
name(symbol):
'StaffSpanEventName of this music object.
types(list):
'(general-music event span-event staff-span-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.70 StringNumberEvent
Specify on which string to play this note.
Syntax: \number
Event classes: string-number-event, music-event and StreamEvent.
Accepted by: Fretboard_engraver and Tab_note_heads_engraver.
Properties:
name(symbol):
'StringNumberEventName of this music object.
types(list):
'(general-music string-number-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.71 StrokeFingerEvent
Specify with which finger to pluck a string.
Syntax: \rightHandFinger text
Event classes: stroke-finger-event, music-event and StreamEvent.
Accepted by: Fingering_engraver.
Properties:
name(symbol):
'StrokeFingerEventName of this music object.
types(list):
'(general-music stroke-finger-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.72 SustainEvent
Depress or release sustain pedal.
Event classes: sustain-event, pedal-event, span-event, music-event and StreamEvent.
Accepted by: Piano_pedal_engraver and Piano_pedal_performer.
Properties:
name(symbol):
'SustainEventName of this music object.
types(list):
'(general-music event pedal-event sustain-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.73 TextScriptEvent
Print text.
Event classes: text-script-event, script-event, music-event and StreamEvent.
Accepted by: Text_engraver.
Properties:
name(symbol):
'TextScriptEventName of this music object.
types(list):
'(general-music script-event text-script-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.74 TextSpanEvent
Start a text spanner, e.g., 8va.....|
Event classes: text-span-event, span-event, music-event and StreamEvent.
Accepted by: Text_spanner_engraver.
Properties:
name(symbol):
'TextSpanEventName of this music object.
types(list):
'(general-music span-event event text-span-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.75 TieEvent
A tie.
Syntax: note-~
Event classes: tie-event, music-event and StreamEvent.
Accepted by: Completion_heads_engraver, Tie_engraver and Tie_performer.
Properties:
name(symbol):
'TieEventName of this music object.
types(list):
'(general-music tie-event event)The types of this music object; determines by what engraver this music expression is processed.
1.1.76 TimeScaledMusic
Multiply durations, as in tuplets.
Syntax: \times fraction music, e.g.
\times 2/3 { … } for triplets.
Properties:
name(symbol):
'TimeScaledMusicName of this music object.
length-callback(procedure):
ly:music-wrapper::length-callbackHow to compute the duration of this music. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
start-callback(procedure):
ly:music-wrapper::start-callbackFunction to compute the negative length of starting grace notes. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
iterator-ctor(procedure):
ly:time-scaled-music-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.types(list):
'(time-scaled-music music-wrapper-music general-music)The types of this music object; determines by what engraver this music expression is processed.
1.1.77 TransposedMusic
Music that has been transposed.
Properties:
name(symbol):
'TransposedMusicName of this music object.
iterator-ctor(procedure):
ly:music-wrapper-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.start-callback(procedure):
ly:music-wrapper::start-callbackFunction to compute the negative length of starting grace notes. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
length-callback(procedure):
ly:music-wrapper::length-callbackHow to compute the duration of this music. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
to-relative-callback(procedure):
ly:relative-octave-music::no-relative-callbackHow to transform a piece of music to relative pitches.
types(list):
'(music-wrapper-music general-music transposed-music)The types of this music object; determines by what engraver this music expression is processed.
1.1.78 TremoloEvent
Unmeasured tremolo.
Event classes: tremolo-event, music-event and StreamEvent.
Accepted by: Stem_engraver.
Properties:
name(symbol):
'TremoloEventName of this music object.
types(list):
'(general-music event tremolo-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.79 TremoloRepeatedMusic
Repeated notes denoted by tremolo beams.
Properties:
name(symbol):
'TremoloRepeatedMusicName of this music object.
iterator-ctor(procedure):
ly:chord-tremolo-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.start-callback(procedure):
ly:repeated-music::first-startFunction to compute the negative length of starting grace notes. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
length-callback(procedure):
ly:repeated-music::folded-music-lengthHow to compute the duration of this music. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
types(list):
'(general-music repeated-music tremolo-repeated-music)The types of this music object; determines by what engraver this music expression is processed.
1.1.80 TremoloSpanEvent
Tremolo over two stems
Event classes: tremolo-span-event, span-event, music-event and StreamEvent.
Accepted by: Chord_tremolo_engraver.
Properties:
name(symbol):
'TremoloSpanEventName of this music object.
types(list):
'(general-music event span-event tremolo-span-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.81 TrillSpanEvent
Start a trill spanner tr~~~
Event classes: trill-span-event, span-event, music-event and StreamEvent.
Accepted by: Trill_spanner_engraver.
Properties:
name(symbol):
'TrillSpanEventName of this music object.
types(list):
'(general-music span-event event trill-span-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.82 TupletSpanEvent
Used internally to signal where tuplet brackets start and stop.
Event classes: tuplet-span-event, span-event, music-event and StreamEvent.
Accepted by: Tuplet_engraver.
Properties:
name(symbol):
'TupletSpanEventName of this music object.
types(list):
'(tuplet-span-event span-event event general-music)The types of this music object; determines by what engraver this music expression is processed.
1.1.83 UnaCordaEvent
Depress or release una-corda pedal.
Event classes: una-corda-event, pedal-event, span-event, music-event and StreamEvent.
Accepted by: Piano_pedal_engraver and Piano_pedal_performer.
Properties:
name(symbol):
'UnaCordaEventName of this music object.
types(list):
'(general-music event pedal-event una-corda-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.84 UnfoldedRepeatedMusic
Repeated music which is fully written (and played) out.
Properties:
name(symbol):
'UnfoldedRepeatedMusicName of this music object.
iterator-ctor(procedure):
ly:unfolded-repeat-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.start-callback(procedure):
ly:repeated-music::first-startFunction 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):
'(general-music repeated-music unfolded-repeated-music)The types of this music object; determines by what engraver this music expression is processed.
length-callback(procedure):
ly:repeated-music::unfolded-music-lengthHow to compute the duration of this music. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
1.1.85 UnisonoEvent
Print ‘a 2’.
Event classes: unisono-event, part-combine-event, music-event and StreamEvent.
Accepted by: Part_combine_engraver.
Properties:
name(symbol):
'UnisonoEventName of this music object.
part-combine-status(symbol):
'unisonoChange to what kind of state? Options are
solo1,solo2andunisono.types(list):
'(general-music event part-combine-event unisono-event)The types of this music object; determines by what engraver this music expression is processed.
1.1.86 UnrelativableMusic
Music that cannot be converted from relative to absolute notation. For example, transposed music.
Properties:
name(symbol):
'UnrelativableMusicName of this music object.
to-relative-callback(procedure):
ly:relative-octave-music::no-relative-callbackHow to transform a piece of music to relative pitches.
iterator-ctor(procedure):
ly:music-wrapper-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.length-callback(procedure):
ly:music-wrapper::length-callbackHow to compute the duration of this music. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
types(list):
'(music-wrapper-music general-music unrelativable-music)The types of this music object; determines by what engraver this music expression is processed.
1.1.87 VoiceSeparator
Separate polyphonic voices in simultaneous music.
Syntax: \\
Properties:
name(symbol):
'VoiceSeparatorName of this music object.
types(list):
'(separator general-music)The types of this music object; determines by what engraver this music expression is processed.
1.1.88 VoltaRepeatedMusic
Repeats with alternatives placed sequentially.
Properties:
name(symbol):
'VoltaRepeatedMusicName of this music object.
iterator-ctor(procedure):
ly:volta-repeat-iterator::constructorFunction to construct a
music-event-iteratorobject for this music.start-callback(procedure):
ly:repeated-music::first-startFunction to compute the negative length of starting grace notes. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
length-callback(procedure):
ly:repeated-music::volta-music-lengthHow to compute the duration of this music. This property can only be defined as initializer in ‘scm/define-music-types.scm’.
types(list):
'(general-music repeated-music volta-repeated-music)The types of this music object; determines by what engraver this music expression is processed.
1.2 Music classes
1.2.1 StreamEvent
Music event type StreamEvent is in music objects of type AbsoluteDynamicEvent, AnnotateOutputEvent, ApplyOutputEvent, ArpeggioEvent, ArticulationEvent, BassFigureEvent, BeamEvent, BeamForbidEvent, BendAfterEvent, BreathingEvent, ClusterNoteEvent, CrescendoEvent, DecrescendoEvent, ExtenderEvent, FingeringEvent, GlissandoEvent, HarmonicEvent, HyphenEvent, KeyChangeEvent, LabelEvent, LaissezVibrerEvent, LigatureEvent, LineBreakEvent, LyricEvent, MarkEvent, MultiMeasureRestEvent, MultiMeasureTextEvent, NoteEvent, NoteGroupingEvent, PageBreakEvent, PageTurnEvent, PercentEvent, PesOrFlexaEvent, PhrasingSlurEvent, RepeatTieEvent, RestEvent, ScriptEvent, SkipEvent, SlurEvent, SoloOneEvent, SoloTwoEvent, SostenutoEvent, SpacingSectionEvent, SpanEvent, StaffSpanEvent, StringNumberEvent, StrokeFingerEvent, SustainEvent, TextScriptEvent, TextSpanEvent, TieEvent, TremoloEvent, TremoloSpanEvent, TrillSpanEvent, TupletSpanEvent, UnaCordaEvent and UnisonoEvent.
Not accepted by any engraver or performer.
1.2.2 absolute-dynamic-event
Music event type absolute-dynamic-event is in music objects of type AbsoluteDynamicEvent.
Accepted by: Dynamic_engraver, Dynamic_performer and New_dynamic_engraver.
1.2.3 annotate-output-event
Music event type annotate-output-event is in music objects of type AnnotateOutputEvent.
Accepted by: Balloon_engraver.
1.2.4 apply-output-event
Music event type apply-output-event is in music objects of type ApplyOutputEvent.
Accepted by: Output_property_engraver.
1.2.5 arpeggio-event
Music event type arpeggio-event is in music objects of type ArpeggioEvent.
Accepted by: Arpeggio_engraver.
1.2.6 articulation-event
Music event type articulation-event is in music objects of type ArticulationEvent.
Accepted by: Script_engraver.
1.2.7 bass-figure-event
Music event type bass-figure-event is in music objects of type BassFigureEvent.
Accepted by: Figured_bass_engraver.
1.2.8 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.9 beam-forbid-event
Music event type beam-forbid-event is in music objects of type BeamForbidEvent.
Accepted by: Auto_beam_engraver.
1.2.10 bend-after-event
Music event type bend-after-event is in music objects of type BendAfterEvent.
Accepted by: Bend_engraver.
1.2.11 break-event
Music event type break-event is in music objects of type LineBreakEvent, PageBreakEvent and PageTurnEvent.
Accepted by: Page_turn_engraver and Paper_column_engraver.
1.2.12 breathing-event
Music event type breathing-event is in music objects of type BreathingEvent.
Accepted by: Breathing_sign_engraver.
1.2.13 cluster-note-event
Music event type cluster-note-event is in music objects of type ClusterNoteEvent.
Accepted by: Cluster_spanner_engraver.
1.2.14 crescendo-event
Music event type crescendo-event is in music objects of type CrescendoEvent.
Accepted by: Dynamic_performer.
1.2.15 decrescendo-event
Music event type decrescendo-event is in music objects of type DecrescendoEvent.
Accepted by: Dynamic_performer.
1.2.16 dynamic-event
Music event type dynamic-event is in music objects of type AbsoluteDynamicEvent.
Not accepted by any engraver or performer.
1.2.17 extender-event
Music event type extender-event is in music objects of type ExtenderEvent.
Accepted by: Extender_engraver.
1.2.18 fingering-event
Music event type fingering-event is in music objects of type FingeringEvent.
Accepted by: Fingering_engraver.
1.2.19 glissando-event
Music event type glissando-event is in music objects of type GlissandoEvent.
Accepted by: Glissando_engraver.
1.2.20 harmonic-event
Music event type harmonic-event is in music objects of type HarmonicEvent.
Not accepted by any engraver or performer.
1.2.21 hyphen-event
Music event type hyphen-event is in music objects of type HyphenEvent.
Accepted by: Hyphen_engraver.
1.2.22 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.23 label-event
Music event type