Top

Music definitions

Music expressions

AbsoluteDynamicEvent

Creates a dynamic mark.

Syntax: note\x, where x is one of \ppp, \pp, \p, \mp, \mf, \f, \ff, \fff.

Music types: general-music, event, dynamic-event and absolute-dynamic-event

Accepted by: Dynamic_engraver, Dynamic_performer, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'AbsoluteDynamicEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

ApplyContext

Call the argument with the current context during interpreting phase

Music types: general-music and apply-context

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'ApplyContext

Name of this music object

internal-class-name (string):
Music

C++ class to use for 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):
Apply_context_iterator::constructor

Function to construct music-event-iterator object for this Music

ApplyOutputEvent

Call the argument with all current grobs during interpreting phase.

Syntax

\applyoutput FUNC

arguments to func are 1. the grob, 2. the originating context, 3. context where FUNC is called.

Music types: general-music and layout-instruction

Accepted by: Output_property_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'ApplyOutputEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

iterator-ctor (procedure):
Output_property_music_iterator::constructor

Function to construct music-event-iterator object for this Music

types (list):
'(general-music layout-instruction)

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

ArpeggioEvent

Make an arpeggio on this note.

Syntax: note-\arpeggio

Music types: general-music, arpeggio-event and event

Accepted by: Arpeggio_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'ArpeggioEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

ArticulationEvent

Adds an articulation marking to a note.

Syntax: noteXY, where X is a direction (up ^, down _, or LilyPond's choice (no direction specified)), and where Y is an articulation (such as -., ->, \tenuto, \downbow). See the user manual for details.

Music types: general-music, event, articulation-event and script-event

Accepted by: Script_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'ArticulationEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

AutoChangeMusic

Used for making voices that switch between piano staves automatically.

Music types: general-music, music-wrapper-music and auto-change-instruction

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'AutoChangeMusic

Name of this music object

internal-class-name (string):
Music_wrapper

C++ class to use for this Music object

iterator-ctor (procedure):
Auto_change_iterator::constructor

Function to construct music-event-iterator object for this Music

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.

BarCheck

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

Music types: general-music and bar-check

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'BarCheck

Name of this music object

internal-class-name (string):
Music

C++ class to use for 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):
Bar_check_iterator::constructor

Function to construct music-event-iterator object for this Music

BassFigureEvent

Print a bass-figure text

Music types: general-music, event, rhythmic-event and bass-figure-event

Accepted by: Figured_bass_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'BassFigureEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

BeamEvent

Starts or stops a beam.

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

Music types: general-music, event, beam-event and span-event

Accepted by: Beam_engraver, Beam_performer, Grace_beam_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'BeamEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

BeamForbidEvent

Specify that a note may not auto-beamed

Music types: general-music, event and beam-forbid-event

Accepted by: Auto_beam_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'BeamForbidEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

BreakEvent

Creates a line break.

Syntax: \break.

Music types: general-music, break-event and event

Accepted by: Score_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'BreakEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

types (list):
'(general-music break-event event)

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

BreathingSignEvent

Creates a `breath mark' or `comma'.

Syntax: note\breathe.

Music types: general-music, event and breathing-event

Accepted by: Breathing_sign_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'BreathingSignEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

BusyPlayingEvent

Used internally to signal beginning and ending of notes.

Music types: general-music, event and busy-playing-event

Accepted by: Completion_heads_engraver, Drum_note_performer, Drum_notes_engraver, Note_heads_engraver, Note_performer, Swallow_engraver, Swallow_performer and Tab_note_heads_engraver

Properties:

name (symbol):
'BusyPlayingEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

types (list):
'(general-music event busy-playing-event)

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

ClusterNoteEvent

A note that is part of a cluster.

Music types: general-music, cluster-note-event, melodic-event, rhythmic-event and event

Accepted by: Cluster_spanner_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'ClusterNoteEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

ContextChange

Change staffs in Piano staff.

Syntax \translator Staff = new-id.

Music types: general-music and translator-change-instruction

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'ContextChange

Name of this music object

internal-class-name (string):
Music

C++ class to use for this Music object

iterator-ctor (procedure):
Change_iterator::constructor

Function to construct music-event-iterator object 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.

ContextSpeccedMusic

Interpret the argument music within a specific context.

Music types: context-specification, general-music and music-wrapper-music

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'ContextSpeccedMusic

Name of this music object

iterator-ctor (procedure):
Context_specced_music_iterator::constructor

Function to construct music-event-iterator object for this Music

internal-class-name (string):
Music_wrapper

C++ class to use for this Music object

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

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

CrescendoEvent

Begins or ends a crescendo.

Syntax: note\cr ... note\rc (you can also use \<, \!, \cresc, and \endcresc. See the user manual for details.).

Music types: general-music, dynamic-event, crescendo-event and event

Accepted by: Dynamic_engraver, Span_dynamic_performer, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'CrescendoEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

types (list):
'(general-music dynamic-event crescendo-event event)

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

DecrescendoEvent

See CrescendoEvent.

Music types: general-music, dynamic-event, decrescendo-event and event

Accepted by: Dynamic_engraver, Span_dynamic_performer, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'DecrescendoEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

types (list):
'(general-music dynamic-event decrescendo-event event)

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

Event

Atomic music event.

Music types: general-music and event

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'Event

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

types (list):
'(general-music event)

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

EventChord

Internally used to group a set of events.

Music types: general-music, event-chord and simultaneous-music

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'EventChord

Name of this music object

internal-class-name (string):
Event_chord

C++ class to use for this Music object

iterator-ctor (procedure):
Event_chord_iterator::constructor

Function to construct music-event-iterator object for this Music

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

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

ExtenderEvent

Extend lyrics.

Music types: general-music, extender-event and event

Accepted by: Extender_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'ExtenderEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

FingerEvent

Specify what finger to use for this note.

Music types: general-music, fingering-event and event

Accepted by: Fingering_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'FingerEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

FoldedRepeatedMusic

Repeats with alternatives placed in parallel.

Music types: general-music, repeated-music and folded-repeated-music

Accepted by: Chord_tremolo_engraver, Percent_repeat_engraver, Slash_repeat_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'FoldedRepeatedMusic

Name of this music object

internal-class-name (string):
Repeated_music

C++ class to use for this Music object

iterator-ctor (procedure):
Folded_repeat_iterator::constructor

Function to construct music-event-iterator object for this Music

start-moment-function (procedure):
Repeated_music::minimum_start

Function to compute the negative length of starting grace notes.

length (procedure):
Repeated_music::folded_music_length

How to compute the duration of this music

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

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

GlissandoEvent

Start a glissando on this note.

Music types: general-music, glissando-event and event

Accepted by: Glissando_engraver, Note_head_line_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'GlissandoEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

GraceMusic

Interpret the argument as grace notes.

Music types: grace-music, music-wrapper-music and general-music

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'GraceMusic

Name of this music object

internal-class-name (string):
Grace_music

C++ class to use for this Music object

iterator-ctor (procedure):
Grace_iterator::constructor

Function to construct music-event-iterator object 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.

HarmonicEvent

Mark a note as harmonic

Music types: general-music, event and harmonic-event

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'HarmonicEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

HyphenEvent

A hyphen between lyric syllables.

Music types: general-music, hyphen-event and event

Accepted by: Hyphen_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'HyphenEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

KeyChangeEvent

Change the key signature.

Syntax: \key name scale.

Music types: general-music, key-change-event and event

Accepted by: Key_engraver, Key_performer, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'KeyChangeEvent

Name of this music object

internal-class-name (string):
Key_change_ev

C++ class to use for this Music object

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

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

LigatureEvent

(docme).

Music types: general-music, span-event, ligature-event and event

Accepted by: Coherent_ligature_engraver, Gregorian_ligature_engraver, Ligature_bracket_engraver, Ligature_engraver, Mensural_ligature_engraver, Swallow_engraver, Swallow_performer and Vaticana_ligature_engraver

Properties:

name (symbol):
'LigatureEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

span-type (string):
'ligature

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

LyricCombineMusic

Align lyrics to the start of notes.

Syntax \addlyrics music lyrics.

Music types: general-music and lyric-combine-music

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'LyricCombineMusic

Name of this music object

internal-class-name (string):
Lyric_combine_music

C++ class to use for this Music object

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

Function to construct music-event-iterator object for this Music

LyricEvent

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

Music types: general-music, rhythmic-event, lyric-event and event

Accepted by: Lyric_engraver, Lyric_performer, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'LyricEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

ManualMelismaEvent

Start or stop a melisma.

Syntax:c4\melisma d\melismaEnd.

Music types: general-music, melisma-span-event and event

Accepted by: Melisma_translator, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'ManualMelismaEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

types (list):
'(general-music melisma-span-event event)

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

MarkEvent

Insert a rehearsal mark.

Syntax: \mark marker, e.g. \mark "A".

Music types: general-music, mark-event and event

Accepted by: Mark_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'MarkEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

MelismaPlayingEvent

Used internally to signal melismas.

Music types: general-music, melisma-playing-event and event

Accepted by: Melisma_translator, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'MelismaPlayingEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

types (list):
'(general-music melisma-playing-event event)

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

MetronomeChangeEvent

Change tempo setting (in beats per minute).

Music types: general-music, metronome-change-event, tempo-event and event

Accepted by: Metronome_mark_engraver, Swallow_engraver, Swallow_performer and Tempo_performer

Properties:

name (symbol):
'MetronomeChangeEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

types (list):
'(general-music metronome-change-event tempo-event event)

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

MultiMeasureRestEvent

Rests that may be compressed into Multi rests.

Syntax R2.*4 for 4 measures in 3/4 time. Note the capital R.

Music types: general-music, event, rhythmic-event and multi-measure-rest-event

Accepted by: Multi_measure_rest_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'MultiMeasureRestEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

MultiMeasureRestMusicGroup

Like sequential-music, but specifically intended to group start-mmrest, skip, stop-mmrest sequence.

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

Music types: general-music and sequential-music

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'MultiMeasureRestMusicGroup

Name of this music object

internal-class-name (string):
Sequential_music

C++ class to use for this Music object

iterator-ctor (procedure):
Sequential_music_iterator::constructor

Function to construct music-event-iterator object for this Music

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

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

MultiMeasureTextEvent

Texts on mm rests.

Syntax R-\markup { \roman "bla" }. Note the explicit font switch.

Music types: general-music, event and multi-measure-text-event

Accepted by: Multi_measure_rest_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'MultiMeasureTextEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

Music

Generic type for music expressions.

Music types: general-music

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'Music

Name of this music object

internal-class-name (string):
Music

C++ class to use for this Music object

types (list):
'(general-music)

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

NewLyricCombineMusic

Align lyrics to the start of notes.

Syntax \addlyrics music lyrics.

Music types: general-music and lyric-combine-music

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'NewLyricCombineMusic

Name of this music object

internal-class-name (string):
Music

C++ class to use for this Music object

length (procedure):
'#<Mom 0>

How to compute 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):
New_lyric_combine_music_iterator::constructor

Function to construct music-event-iterator object for this Music

NoteEvent

A note.

Music types: general-music, event, note-event, rhythmic-event and melodic-event

Accepted by: Chord_name_engraver, Completion_heads_engraver, Drum_note_performer, Drum_notes_engraver, Note_heads_engraver, Note_name_engraver, Note_performer, Note_swallow_translator, Swallow_engraver, Swallow_performer and Tab_note_heads_engraver

Properties:

name (symbol):
'NoteEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

NoteGroupingEvent

Start or stop grouping brackets.

Music types: general-music, event and note-grouping-event

Accepted by: Horizontal_bracket_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'NoteGroupingEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

OutputPropertySetMusic

Set grob properties in objects individually.

Syntax \outputproperty predicate prop = val.

Music types: general-music and layout-instruction

Accepted by: Output_property_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'OutputPropertySetMusic

Name of this music object

internal-class-name (string):
Music

C++ class to use for this Music object

iterator-ctor (procedure):
Output_property_music_iterator::constructor

Function to construct music-event-iterator object for this Music

types (list):
'(general-music layout-instruction)

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

OverrideProperty

Extend the definition of a graphical object.

SYNTAX

\propery Foo.Bar \override SYMBOL = VALUE

Music types: general-music and layout-instruction

Accepted by: Output_property_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'OverrideProperty

Name of this music object

internal-class-name (string):
Music

C++ class to use for this Music object

types (list):
'(general-music layout-instruction)

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

iterator-ctor (procedure):
Push_property_iterator::constructor

Function to construct music-event-iterator object for this Music

PartCombineMusic

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

Music types: general-music and part-combine-music

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'PartCombineMusic

Name of this music object

internal-class-name (string):
Simultaneous_music

C++ class to use for this Music object

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

Function to construct music-event-iterator object for this Music

PercentRepeatedMusic

Repeats encoded by percents.

Music types: general-music, repeated-music and percent-repeated-music

Accepted by: Chord_tremolo_engraver, Percent_repeat_engraver, Slash_repeat_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'PercentRepeatedMusic

Name of this music object

internal-class-name (string):
Repeated_music

C++ class to use for this Music object

iterator-ctor (procedure):
Percent_repeat_iterator::constructor

Function to construct music-event-iterator object for this Music

start-moment-function (procedure):
Repeated_music::first_start

Function to compute the negative length of starting grace notes.

length (procedure):
Repeated_music::unfolded_music_length

How to compute the duration of this music

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

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

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

Music types: general-music, pes-or-flexa-event and event

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'PesOrFlexaEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

PhrasingSlurEvent

Start or end phrasing slur.

Syntax NOTE \( and \) NOTE

Music types: general-music, span-event and phrasing-slur-event

Accepted by: Phrasing_slur_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'PhrasingSlurEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

types (list):
'(general-music span-event phrasing-slur-event)

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

PropertySet

Set a context property.

Syntax: \property context.prop = scheme-val.

Music types: layout-instruction and general-music

Accepted by: Output_property_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'PropertySet

Name of this music object

internal-class-name (string):
Music

C++ class to use for this Music object

types (list):
'(layout-instruction general-music)

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

iterator-ctor (procedure):
Property_iterator::constructor

Function to construct music-event-iterator object for this Music

PropertyUnset

Remove the definition of a context \property.

Music types: layout-instruction and general-music

Accepted by: Output_property_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'PropertyUnset

Name of this music object

internal-class-name (string):
Music

C++ class to use for this Music object

types (list):
'(layout-instruction general-music)

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

iterator-ctor (procedure):
Property_unset_iterator::constructor

Function to construct music-event-iterator object for this Music

QuoteMusic

Quote preprocessed snippets of music.

Music types: general-music

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'QuoteMusic

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

iterator-ctor (procedure):
Quote_iterator::constructor

Function to construct music-event-iterator object for this Music

types (list):
'(general-music)

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

RelativeOctaveCheck

Check if a pitch is in the correct octave.

Music types: general-music and relative-octave-check

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'RelativeOctaveCheck

Name of this music object

internal-class-name (string):
Relative_octave_check

C++ class to use for this Music object

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

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

RelativeOctaveMusic

Music that was entered in relative octave notation.

Music types: music-wrapper-music, general-music and relative-octave-music

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'RelativeOctaveMusic

Name of this music object

internal-class-name (string):
Relative_octave_music

C++ class to use for this Music object

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.

RepeatedMusic

Repeat music in different ways

Music types: general-music and repeated-music

Accepted by: Chord_tremolo_engraver, Percent_repeat_engraver, Slash_repeat_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'RepeatedMusic

Name of this music object

type (symbol):
'repeated-music

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

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

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

RestEvent

A Rest.

Syntax r4 for a quarter rest.

Music types: general-music, event, rhythmic-event and rest-event

Accepted by: Figured_bass_engraver, Rest_engraver, Rest_swallow_translator, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'RestEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

RevertProperty

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

Music types: general-music and layout-instruction

Accepted by: Output_property_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'RevertProperty

Name of this music object

internal-class-name (string):
Music

C++ class to use for this Music object

types (list):
'(general-music layout-instruction)

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

iterator-ctor (procedure):
Pop_property_iterator::constructor

Function to construct music-event-iterator object for this Music

ScriptEvent

Add an articulation mark to a note.

Music types: general-music and event

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'ScriptEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

types (list):
'(general-music event)

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

SequentialMusic

Music expressions concatenated.

Syntax \sequential {..} or simply {..} .

Music types: general-music and sequential-music

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'SequentialMusic

Name of this music object

internal-class-name (string):
Sequential_music

C++ class to use for this Music object

iterator-ctor (procedure):
Sequential_music_iterator::constructor

Function to construct music-event-iterator object for this Music

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

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

SimultaneousMusic

Music playing together.

SYNTAX

\simultaneous { .. } or < .. >.

Music types: general-music and simultaneous-music

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'SimultaneousMusic

Name of this music object

internal-class-name (string):
Simultaneous_music

C++ class to use for this Music object

iterator-ctor (procedure):
Simultaneous_music_iterator::constructor

Function to construct music-event-iterator object for this Music

types (list):
'(general-music simultaneous-music)

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

SkipEvent

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

Syntax: sduration

Music types: general-music, event, rhythmic-event and skip-event

Accepted by: Skip_event_swallow_translator, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'SkipEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

SkipMusic

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

Syntax: \skip duration.

Music types: general-music, event, rhythmic-event and skip-event

Accepted by: Skip_event_swallow_translator, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'SkipMusic

Name of this music object

internal-class-name (string):
Music

C++ class to use for this Music object

length (procedure):
ly:music-duration-length

How to compute the duration of this music

iterator-ctor (procedure):
Simple_music_iterator::constructor

Function to construct music-event-iterator object 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.

SlurEvent

Start or end slur.

Syntax NOTE( and )NOTE

Music types: general-music, span-event and slur-event

Accepted by: Slur_engraver, Slur_performer, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'SlurEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

types (list):
'(general-music span-event slur-event)

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

SoloOneEvent

Print Solo.1

Music types: general-music, event and part-combine-event

Accepted by: Part_combine_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'SoloOneEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

part-combine-status (symbol):
'solo1

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

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

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

SoloTwoEvent

Print Solo.2

Music types: general-music, event and part-combine-event

Accepted by: Part_combine_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'SoloTwoEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

part-combine-status (symbol):
'solo2

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

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

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

SostenutoEvent

Depress or release sostenuto pedal.

Music types: general-music, pedal-event and sostenuto-pedal-event

Accepted by: Piano_pedal_engraver, Piano_pedal_performer, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'SostenutoEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

types (list):
'(general-music pedal-event sostenuto-pedal-event)

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

SpanEvent

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

Music types: general-music and event

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'SpanEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

types (list):
'(general-music event)

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

StartPlayingEvent

Used internally to signal beginning of notes.

Music types: general-music, event and start-playing-event

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'StartPlayingEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

types (list):
'(general-music event start-playing-event)

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

StringNumberEvent

Specify on which string to play this note.

Syntax: \number.

Music types: general-music, string-number-event and event

Accepted by: String_number_engraver, Swallow_engraver, Swallow_performer and Tab_note_heads_engraver

Properties:

name (symbol):
'StringNumberEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

SustainEvent

Depress or release sustain pedal.

Music types: general-music, pedal-event and sustain-pedal-event

Accepted by: Piano_pedal_engraver, Piano_pedal_performer, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'SustainEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

types (list):
'(general-music pedal-event sustain-pedal-event)

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

TextScriptEvent

Music types: general-music, script-event, text-script-event and event

Accepted by: Script_engraver, Swallow_engraver, Swallow_performer and Text_engraver

Properties:

name (symbol):
'TextScriptEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

TextSpanEvent

Start a text spanner like 8va.....|

Music types: general-music, span-event and text-span-event

Accepted by: Swallow_engraver, Swallow_performer and Text_spanner_engraver

Properties:

name (symbol):
'TextSpanEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

types (list):
'(general-music span-event text-span-event)

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

TieEvent

A tie. Entered as note-~.

Music types: general-music, tie-event and event

Accepted by: Swallow_engraver, Swallow_performer, Tie_engraver and Tie_performer

Properties:

name (symbol):
'TieEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

TimeScaledMusic

Multiply durations, as in tuplets.

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

Music types: time-scaled-music, music-wrapper-music and general-music

Accepted by: Swallow_engraver, Swallow_performer and Tuplet_engraver

Properties:

name (symbol):
'TimeScaledMusic

Name of this music object

internal-class-name (string):
Time_scaled_music

C++ class to use for this Music object

iterator-ctor (procedure):
Time_scaled_music_iterator::constructor

Function to construct music-event-iterator object 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.

TransposedMusic

Music that has been transposed.

Music types: music-wrapper-music, general-music and transposed-music

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'TransposedMusic

Name of this music object

internal-class-name (string):
Transposed_music

C++ class to use for this Music object

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

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

TremoloEvent

Un measured tremolo.

Music types: general-music, event and tremolo-event

Accepted by: Stem_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'TremoloEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for 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.

TremoloRepeatedMusic

Repeated notes denoted by tremolo beams.

Music types: general-music, repeated-music and tremolo-repeated-music

Accepted by: Chord_tremolo_engraver, Percent_repeat_engraver, Slash_repeat_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'TremoloRepeatedMusic

Name of this music object

iterator-ctor (procedure):
Chord_tremolo_iterator::constructor

Function to construct music-event-iterator object for this Music

internal-class-name (string):
Repeated_music

C++ class to use for this Music object

start-moment-function (procedure):
Repeated_music::first_start

Function to compute the negative length of starting grace notes.

length (procedure):
Repeated_music::folded_music_length

How to compute the duration of this music

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

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

UnaCordaEvent

Depress or release una-corda pedal.

Music types: general-music, pedal-event and una-corda-pedal-event

Accepted by: Piano_pedal_engraver, Piano_pedal_performer, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'UnaCordaEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

types (list):
'(general-music pedal-event una-corda-pedal-event)

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

UnfoldedRepeatedMusic

Music types: general-music, repeated-music and unfolded-repeated-music

Accepted by: Chord_tremolo_engraver, Percent_repeat_engraver, Slash_repeat_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'UnfoldedRepeatedMusic

Name of this music object

iterator-ctor (procedure):
Unfolded_repeat_iterator::constructor

Function to construct music-event-iterator object for this Music

start-moment-function (procedure):
Repeated_music::first_start

Function to compute the negative length of starting grace notes.

internal-class-name (string):
Repeated_music

C++ class to use for this Music object

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 (procedure):
Repeated_music::unfolded_music_length

How to compute the duration of this music

UnisonoEvent

Print a2

Music types: general-music, event and part-combine-event

Accepted by: Part_combine_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'UnisonoEvent

Name of this music object

internal-class-name (string):
Event

C++ class to use for this Music object

part-combine-status (symbol):
'unisono

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

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

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

UnrelativableMusic

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

Music types: music-wrapper-music, general-music and unrelativable-music

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'UnrelativableMusic

Name of this music object

internal-class-name (string):
Un_relativable_music

C++ class to use for this Music object

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

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

UntransposableMusic

Music that can not be transposed.

Music types: music-wrapper-music, general-music and untransposable-music

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'UntransposableMusic

Name of this music object

internal-class-name (string):
Untransposable_music

C++ class to use for this Music object

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

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

VoiceSeparator

Separate polyphonic voices in simultaneous music.

Syntax: \\

Music types: separator and general-music

Accepted by: Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'VoiceSeparator

Name of this music object

internal-class-name (string):
Music

C++ class to use for this Music object

types (list):
'(separator general-music)

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

VoltaRepeatedMusic

Music types: general-music, repeated-music and volta-repeated-music

Accepted by: Chord_tremolo_engraver, Percent_repeat_engraver, Slash_repeat_engraver, Swallow_engraver and Swallow_performer

Properties:

name (symbol):
'VoltaRepeatedMusic

Name of this music object

iterator-ctor (procedure):
Volta_repeat_iterator::constructor

Function to construct music-event-iterator object for this Music

internal-class-name (string):
Repeated_music

C++ class to use for this Music object

start-moment-function (procedure):
Repeated_music::first_start

Function to compute the negative length of starting grace notes.

length (procedure):
Repeated_music::volta_music_length

How to compute the duration of this music

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

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

Music classes

absolute-dynamic-event

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

Accepted by: Dynamic_engraver and Dynamic_performer

apply-context

Music event type apply-context is in Music objects of type ApplyContext

Accepted by: none

arpeggio-event

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

Accepted by: Arpeggio_engraver

articulation-event

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

Accepted by: Script_engraver

auto-change-instruction

Music event type auto-change-instruction is in Music objects of type AutoChangeMusic

Accepted by: none

bar-check

Music event type bar-check is in Music objects of type BarCheck

Accepted by: none

bass-figure-event

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

Accepted by: Figured_bass_engraver

beam-event

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

Accepted by: Beam_engraver, Beam_performer and Grace_beam_engraver

beam-forbid-event

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

Accepted by: Auto_beam_engraver

break-event

Music event type break-event is in Music objects of type BreakEvent

Accepted by: Score_engraver

breathing-event

Music event type breathing-event is in Music objects of type BreathingSignEvent

Accepted by: Breathing_sign_engraver

busy-playing-event

Music event type busy-playing-event is in Music objects of type BusyPlayingEvent

Accepted by: Completion_heads_engraver, Drum_note_performer, Drum_notes_engraver, Note_heads_engraver, Note_performer and Tab_note_heads_engraver

cluster-note-event

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

Accepted by: Cluster_spanner_engraver

context-specification

Music event type context-specification is in Music objects of type ContextSpeccedMusic

Accepted by: none

crescendo-event

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

Accepted by: Dynamic_engraver and Span_dynamic_performer

decrescendo-event

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

Accepted by: Dynamic_engraver and Span_dynamic_performer

dynamic-event

Music event type dynamic-event is in Music objects of type AbsoluteDynamicEvent, CrescendoEvent and DecrescendoEvent

Accepted by: none

event

Music event type event is in Music objects of type AbsoluteDynamicEvent, ArpeggioEvent, ArticulationEvent, BassFigureEvent, BeamEvent, BeamForbidEvent, BreakEvent, BreathingSignEvent, BusyPlayingEvent, ClusterNoteEvent, CrescendoEvent, DecrescendoEvent, Event, ExtenderEvent, FingerEvent, GlissandoEvent, HarmonicEvent, HyphenEvent, KeyChangeEvent, LigatureEvent, LyricEvent, ManualMelismaEvent, MarkEvent, MelismaPlayingEvent, MetronomeChangeEvent, MultiMeasureRestEvent, MultiMeasureTextEvent, NoteEvent, NoteGroupingEvent, PesOrFlexaEvent, RestEvent, ScriptEvent, SkipEvent, SkipMusic, SoloOneEvent, SoloTwoEvent, SpanEvent, StartPlayingEvent, StringNumberEvent, TextScriptEvent, TieEvent, TremoloEvent and UnisonoEvent

Accepted by: none

event-chord

Music event type event-chord is in Music objects of type EventChord

Accepted by: none

extender-event

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

Accepted by: Extender_engraver

fingering-event

Music event type fingering-event is in Music objects of type FingerEvent

Accepted by: Fingering_engraver

folded-repeated-music

Music event type folded-repeated-music is in Music objects of type FoldedRepeatedMusic

Accepted by: none

general-music

Music event type general-music is in Music objects of type AbsoluteDynamicEvent, ApplyContext, ApplyOutputEvent, ArpeggioEvent, ArticulationEvent, AutoChangeMusic, BarCheck, BassFigureEvent, BeamEvent, BeamForbidEvent, BreakEvent, BreathingSignEvent, BusyPlayingEvent, ClusterNoteEvent, ContextChange, ContextSpeccedMusic, CrescendoEvent, DecrescendoEvent, EventChord, Event, ExtenderEvent, FingerEvent, FoldedRepeatedMusic, GlissandoEvent, GraceMusic, HarmonicEvent, HyphenEvent, KeyChangeEvent, LigatureEvent, LyricCombineMusic, LyricEvent, ManualMelismaEvent, MarkEvent, MelismaPlayingEvent, MetronomeChangeEvent, MultiMeasureRestEvent, MultiMeasureRestMusicGroup, MultiMeasureTextEvent, Music, NewLyricCombineMusic, NoteEvent, NoteGroupingEvent, OutputPropertySetMusic, OverrideProperty, PartCombineMusic, PercentRepeatedMusic, PesOrFlexaEvent, PhrasingSlurEvent, PropertySet, PropertyUnset, QuoteMusic, RelativeOctaveCheck, RelativeOctaveMusic, RepeatedMusic, RestEvent, RevertProperty, ScriptEvent, SequentialMusic, SimultaneousMusic, SkipEvent, SkipMusic, SlurEvent, SoloOneEvent, SoloTwoEvent, SostenutoEvent, SpanEvent, StartPlayingEvent, StringNumberEvent, SustainEvent, TextScriptEvent, TextSpanEvent, TieEvent, TimeScaledMusic, TransposedMusic, TremoloEvent, TremoloRepeatedMusic, UnaCordaEvent, UnfoldedRepeatedMusic, UnisonoEvent, UnrelativableMusic, UntransposableMusic, VoiceSeparator and VoltaRepeatedMusic

Accepted by: Swallow_engraver and Swallow_performer

glissando-event

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

Accepted by: Glissando_engraver and Note_head_line_engraver

grace-music

Music event type grace-music is in Music objects of type GraceMusic

Accepted by: none

harmonic-event

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

Accepted by: none

hyphen-event

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

Accepted by: Hyphen_engraver

key-change-event

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

Accepted by: Key_engraver and Key_performer

layout-instruction

Music event type layout-instruction is in Music objects of type ApplyOutputEvent, OutputPropertySetMusic, OverrideProperty, PropertySet, PropertyUnset and RevertProperty

Accepted by: Output_property_engraver

ligature-event

Music event type ligature-event is in Music objects of type LigatureEvent

Accepted by: Coherent_ligature_engraver, Gregorian_ligature_engraver, Ligature_bracket_engraver, Ligature_engraver, Mensural_ligature_engraver and Vaticana_ligature_engraver

lyric-combine-music

Music event type lyric-combine-music is in Music objects of type LyricCombineMusic and NewLyricCombineMusic

Accepted by: none

lyric-event

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

Accepted by: Lyric_engraver and Lyric_performer

mark-event

Music event type mark-event is in Music objects of type MarkEvent

Accepted by: Mark_engraver

melisma-playing-event

Music event type melisma-playing-event is in Music objects of type MelismaPlayingEvent

Accepted by: Melisma_translator

melisma-span-event

Music event type melisma-span-event is in Music objects of type ManualMelismaEvent

Accepted by: Melisma_translator

melodic-event

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

Accepted by: none

metronome-change-event

Music event type metronome-change-event is in Music objects of type MetronomeChangeEvent

Accepted by: Metronome_mark_engraver and Tempo_performer

multi-measure-rest-event

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

Accepted by: Multi_measure_rest_engraver

multi-measure-text-event

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

Accepted by: Multi_measure_rest_engraver

music-wrapper-music

Music event type music-wrapper-music is in Music objects of type AutoChangeMusic, ContextSpeccedMusic, GraceMusic, RelativeOctaveMusic, TimeScaledMusic, TransposedMusic, UnrelativableMusic and UntransposableMusic

Accepted by: none

note-event

Music event type note-event is in Music objects of type NoteEvent

Accepted by: Chord_name_engraver, Completion_heads_engraver, Drum_note_performer, Drum_notes_engraver, Note_heads_engraver, Note_name_engraver, Note_performer, Note_swallow_translator and Tab_note_heads_engraver

note-grouping-event

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

Accepted by: Horizontal_bracket_engraver

part-combine-event

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

Accepted by: Part_combine_engraver

part-combine-music

Music event type part-combine-music is in Music objects of type PartCombineMusic

Accepted by: none

pedal-event

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

Accepted by: Piano_pedal_engraver and Piano_pedal_performer

percent-repeated-music

Music event type percent-repeated-music is in Music objects of type PercentRepeatedMusic

Accepted by: none

pes-or-flexa-event

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

Accepted by: none

phrasing-slur-event

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

Accepted by: Phrasing_slur_engraver

relative-octave-check

Music event type relative-octave-check is in Music objects of type RelativeOctaveCheck

Accepted by: none

relative-octave-music

Music event type relative-octave-music is in Music objects of type RelativeOctaveMusic

Accepted by: none

repeated-music

Music event type repeated-music is in Music objects of type FoldedRepeatedMusic, PercentRepeatedMusic, RepeatedMusic, TremoloRepeatedMusic, UnfoldedRepeatedMusic and VoltaRepeatedMusic

Accepted by: Chord_tremolo_engraver, Percent_repeat_engraver and Slash_repeat_engraver

rest-event

Music event type rest-event is in Music objects of type RestEvent

Accepted by: Figured_bass_engraver, Rest_engraver and Rest_swallow_translator

rhythmic-event

Music event type rhythmic-event is in Music objects of type BassFigureEvent, ClusterNoteEvent, LyricEvent, MultiMeasureRestEvent, NoteEvent, RestEvent, SkipEvent and SkipMusic

Accepted by: none

script-event

Music event type script-event is in Music objects of type ArticulationEvent and TextScriptEvent

Accepted by: Script_engraver

separator

Music event type separator is in Music objects of type VoiceSeparator

Accepted by: none

sequential-music

Music event type sequential-music is in Music objects of type MultiMeasureRestMusicGroup and SequentialMusic

Accepted by: none

simultaneous-music

Music event type simultaneous-music is in Music objects of type EventChord and SimultaneousMusic

Accepted by: none

skip-event

Music event type skip-event is in Music objects of type SkipEvent and SkipMusic

Accepted by: Skip_event_swallow_translator

slur-event

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

Accepted by: Slur_engraver and Slur_performer

sostenuto-pedal-event

Music event type sostenuto-pedal-event is in Music objects of type SostenutoEvent

Accepted by: none

span-event

Music event type span-event is in Music objects of type BeamEvent, LigatureEvent, PhrasingSlurEvent, SlurEvent and TextSpanEvent

Accepted by: none

start-playing-event

Music event type start-playing-event is in Music objects of type StartPlayingEvent

Accepted by: none

string-number-event

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

Accepted by: String_number_engraver and Tab_note_heads_engraver

sustain-pedal-event

Music event type sustain-pedal-event is in Music objects of type SustainEvent

Accepted by: none

tempo-event

Music event type tempo-event is in Music objects of type MetronomeChangeEvent

Accepted by: none

text-script-event

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

Accepted by: Text_engraver

text-span-event

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

Accepted by: Text_spanner_engraver

tie-event

Music event type tie-event is in Music objects of type TieEvent

Accepted by: Tie_engraver and Tie_performer

time-scaled-music

Music event type time-scaled-music is in Music objects of type TimeScaledMusic

Accepted by: Tuplet_engraver

translator-change-instruction

Music event type translator-change-instruction is in Music objects of type ContextChange

Accepted by: none

transposed-music

Music event type transposed-music is in Music objects of type TransposedMusic

Accepted by: none

tremolo-event

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

Accepted by: Stem_engraver

tremolo-repeated-music

Music event type tremolo-repeated-music is in Music objects of type TremoloRepeatedMusic

Accepted by: none

una-corda-pedal-event

Music event type una-corda-pedal-event is in Music objects of type UnaCordaEvent

Accepted by: none

unfolded-repeated-music

Music event type unfolded-repeated-music is in Music objects of type UnfoldedRepeatedMusic

Accepted by: none

unrelativable-music

Music event type unrelativable-music is in Music objects of type UnrelativableMusic

Accepted by: none

untransposable-music

Music event type untransposable-music is in Music objects of type UntransposableMusic

Accepted by: none

volta-repeated-music

Music event type volta-repeated-music is in Music objects of type VoltaRepeatedMusic

Accepted by: none

Music properties

absolute-octave (integer)
The absolute octave for a octave check note.
alteration (number)
alteration for figured bass
articulation-type (string)
key for script definitions alist.

TODO: consider making type into symbol

articulations (list of music)
Articulation events specifically for this note.
associated-context (string)
Name of the Voice context associated with this \newaddlyrics section
bass (boolean)
Set if this note is a bass note in a chord
bracket-start (boolean)
start a bracket here. TODO: use span requests?
bracket-stop (boolean)
stop a bracket here.
cautionary (boolean)
If set, this alteration needs cautionary accidental
change-to-id (string)
name of the context to change to
change-to-type (symbol)
type of the context to change to.
compress-procedure (procedure)
compress this music expression. Argument 1: the music, arg 2: factor
context-id (string)
name of context
context-type (symbol)
type of context
denominator (integer)
denominator in a time signature
descend-only (boolean)
If set, this \context will only descend in the context tree.
digit (integer)
digit for fingering
direction (direction)
Print this up or down?
drum-type (symbol)
Which percussion instrument to play this note on.
duration (duration)
Duration of this note/lyric.
element (music)
The single child of a Music_wrapper music object, or the body of a repeat.
elements (list of music)
A list of elements for sequential of simultaneous music, or the alternatives of repeated music.
figure (string)
a `figure' (which may be a string) for figured bass
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-value (any type)
The value of the grob property to set
internal-class-name (string)
C++ class to use for this Music object
inversion (boolean)
If set, this chord note is inverted.
iterator-ctor (procedure)
Function to construct music-event-iterator object for this Music
label (markup)
label of a mark.
last-pitch (pitch)
The last pitch after relativization.
length (procedure)
How to compute the duration of this music
metronome-count (number)
How many beats in a minute?
name (symbol)
Name of this music object
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?
origin (input location)
where was this piece of music defined?
part-combine-status (symbol)
Change to what kind of state? Options are solo1, solo2 and unisono
penalty (number)
Penalty for break hint.
pitch (pitch)
the pitch of this note
pitch-alist (list)
list of pitches jointly forming the scale of a key signature
pop-first (boolean)
Do a revert before we try to do a override on some grob property.
predicate (procedure)
the predicate of a \outputproperty.
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.
quoted-events (hash table)
A vector of with moment/event-list entries.
repeat-count (integer)
do a epeat how ofen?
span-direction (direction)
Does this start or stop a spanner?
span-type (string)
What kind of spanner should be created?

TODO: consider making type into symbol

split-list (list)
splitting moments for part combiner.
start-moment-function (procedure)
Function to compute the negative length of starting grace notes.
string-number (integer)
The number of the string in a String_number_req
symbol (symbol)
Grob name to perform an override/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
text-type (symbol)
Particular type of text script (e.g. finger, dynamic).
tonic (pitch)
Base of the scale
tremolo-type (integer)
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.
value (any type)
Assignment value for a translation property
what (symbol)
What to change for auto-change. FIXME, naming

Translation

Contexts

ChoirStaff

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

This context creates the following layout objects:

SystemStartBar, SystemStartBrace and SystemStartBracket.

This context sets the following properties:

Context ChoirStaff can contain InnerStaffGroup, InnerChoirStaff, ChordNames, Lyrics, PianoStaff, GrandStaff, RhythmicStaff, DrumStaff and Staff

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
System_start_delimiter_engraver
Creates a system start delimiter (ie. SystemStart{Bar,Brace,Bracket} spanner

Properties (read)

systemStartDelimiter (symbol)
Which grob to make for the start of the system/staff? Set to SystemStartBrace, SystemStartBracket or SystemStartBar.
This engraver creates the following layout objects: SystemStartBar, SystemStartBrace and SystemStartBracket.

ChordNames

Typesets chord names.

This context creates the following layout objects:

ChordName, RemoveEmptyVerticalGroup, SeparatingGroupSpanner, SeparationItem, StaffSpacing and VoltaBracket.

This context sets the following properties:

This context is a `bottom' context; it can not contain other contexts.

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
Skip_event_swallow_translator
Swallow \skip.

Music types accepted:

skip-event

Chord_name_engraver
Catch note-events and generate the appropriate chordname.

Music types accepted:

note-event

Properties (read)

majorSevenSymbol (markup)
How should the major 7th be formatted in a chord name?
chordNameExceptions (list)
Alist of chord exceptions. Contains (chord . markup) entries.
chordRootNamer (procedure)
Function that converts from a pitch object to a text markup. Used for chords.
chordNoteNamer (procedure)
Function that converts from a pitch object to a text markup. Used for single pitches.
chordNameFunction (procedure)
The function that converts lists of pitches to chord names.
chordNameExceptions (list)
Alist of chord exceptions. Contains (chord . markup) entries.
chordChanges (boolean)
Only show changes in chords scheme?
This engraver creates the following layout objects: ChordName.
Separating_line_group_engraver
Generates objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)
Create StaffSpacing objects? Should be set for staves.
Properties (write)
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
This engraver creates the following layout objects: SeparatingGroupSpanner, SeparationItem and StaffSpacing.
Output_property_engraver
Interpret Music of Output_property type, and apply a function to any Graphic objects that satisfies the predicate.

Music types accepted:

layout-instruction

Rest_swallow_translator
Swallow rest

Music types accepted:

rest-event

Volta_engraver
Make volta brackets

Properties (read)

stavesFound (list of grobs)
list of all staff-symbols found.
voltaSpannerDuration (moment)
This specifies the maximum duration to use for the brackets printed for \alternative. This can be used to shrink the length of brackets in the situation where one alternative is very large.
repeatCommands (list)
This property is read to find any command of the form (volta . x), where x is a string or #f
This engraver creates the following layout objects: VoltaBracket.
Hara_kiri_engraver
Like Axis_group_engraver, but make a hara-kiri spanner, and add interesting items (ie. note heads, lyric syllables and normal rests)

This engraver creates the following layout objects: RemoveEmptyVerticalGroup.

Devnull

Silently discards all musical information given to this context.

This context is also known as:

Voice and Staff

This context creates the following layout objects:

none.

This context is a `bottom' context; it can not contain other contexts.

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
Swallow_engraver
This engraver swallows everything given to it silently. The purpose of this is to prevent spurious "event junked" warnings.

Music types accepted:

general-music

DrumStaff

Handles typesetting for percussion.

This context is also known as:

Staff

This context creates the following layout objects:

BarLine, Clef, DotColumn, InstrumentName, NoteCollision, OctavateEight, RestCollision, SeparatingGroupSpanner, SeparationItem, StaffSpacing, StaffSymbol, TimeSignature, VerticalAxisGroup and VoltaBracket.

This context sets the following properties:

Context DrumStaff can contain DrumVoice

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
Instrument_name_engraver
Prints the name of the instrument (specified by Staff.instrument and Staff.instr) at the left of the staff.

Properties (read)

instr (markup)
See instrument
instrument (markup)
The name to print left of a staff. The instrument property labels the staff in the first system, and the instr property labels following lines.
This engraver creates the following layout objects: InstrumentName.
Rest_collision_engraver
Handles collisions of rests.

This engraver creates the following layout objects: RestCollision.

Collision_engraver

This engraver creates the following layout objects: NoteCollision.

Staff_symbol_engraver
Create the constellation of five (default) staff lines.

This engraver creates the following layout objects: StaffSymbol.

Time_signature_engraver
Create a TimeSignature whenever timeSignatureFraction changes

This engraver creates the following layout objects: TimeSignature.

Clef_engraver
Determine and set reference point for pitches

Properties (read)

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.
explicitClefVisibility (procedure)
break-visibility function for clef changes.
clefOctavation (integer)
Add this much extra octavation. Values of 7 and -7 are common.
middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
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.
This engraver creates the following layout objects: Clef and OctavateEight.
Dot_column_engraver
Engraves 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 objects: DotColumn.

Separating_line_group_engraver
Generates objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)
Create StaffSpacing objects? Should be set for staves.
Properties (write)
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
This engraver creates the following layout objects: SeparatingGroupSpanner, SeparationItem and StaffSpacing.
Volta_engraver
Make volta brackets

Properties (read)

stavesFound (list of grobs)
list of all staff-symbols found.
voltaSpannerDuration (moment)
This specifies the maximum duration to use for the brackets printed for \alternative. This can be used to shrink the length of brackets in the situation where one alternative is very large.
repeatCommands (list)
This property is read to find any command of the form (volta . x), where x is a string or #f
This engraver creates the following layout objects: VoltaBracket.
Font_size_engraver
Puts fontSize into font-relative-size grob property.

Properties (read)

fontSize (number)
The relative size of all grobs in a context.

Bar_engraver
Create barlines. This engraver is controlled through the whichBar property. If it has no bar line to create, it will forbid a linebreak at this point

Properties (read)

whichBar (string)
This property is read to determine what type of bar line to create.

Example:

               \set Staff.whichBar = "|:"
          

This will create a start-repeat bar in this staff only. Valid values are described in bar-line-interface.

This engraver creates the following layout objects: BarLine.
Output_property_engraver
Interpret Music of Output_property type, and apply a function to any Graphic objects that satisfies the predicate.

Music types accepted:

layout-instruction

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

Properties (read)

extraVerticalExtent (pair of numbers)
extra vertical extent, same format as minimumVerticalExtent
minimumVerticalExtent (pair of numbers)
minimum vertical extent, same format as verticalExtent
verticalExtent (pair of numbers)
Hard coded vertical extent. The format is a pair of dimensions, for example, this sets the sizes of a staff to 10 (5+5) staffspaces high.
               \set Staff.verticalExtent = #'(-5.0 . 5.0)
          

This does not work for Voice or any other context that doesn't form a vertical group.

This engraver creates the following layout objects: VerticalAxisGroup.

DrumVoice

A voice on a percussion staff.

This context is also known as:

Voice

This context creates the following layout objects:

Beam, BreathingSign, CombineTextScript, Dots, DoublePercentRepeat, DynamicLineSpanner, DynamicText, Hairpin, MultiMeasureRestNumber, MultiMeasureRestText, MultiMeasureRest, NoteColumn, NoteHead, NoteSpacing, PercentRepeat, PhrasingSlur, RepeatSlash, Rest, ScriptColumn, Script, Slur, StemTremolo, Stem, TextScript, TextSpanner, TieColumn, Tie and TupletBracket.

This context sets the following properties:

This context is a `bottom' context; it can not contain other contexts.

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
Skip_event_swallow_translator
Swallow \skip.

Music types accepted:

skip-event

Tuplet_engraver
Catch Time_scaled_music and generate appropriate bracket

Music types accepted:

time-scaled-music

Properties (read)

tupletSpannerDuration (moment)
Normally a tuplet bracket is as wide as the \times expression that gave rise to it. By setting this property, you can make brackets last shorter. Example
               @lilypond[verbatim,fragment]
               context Voice \times 2/3 {
                 property Voice.tupletSpannerDuration = #(ly:make-moment 1 4)
                 c-[8 c c-] c-[ c c-]
               }
               @end lilypond
          

.

tupletNumberFormatFunction (procedure)
Function taking a music as input, producing a string. This function is called to determine the text to print on a tuplet bracket.
This engraver creates the following layout objects: TupletBracket.
Drum_notes_engraver
Generate noteheads.

Music types accepted:

busy-playing-event and note-event

Properties (read)

drumStyleTable (hash table)
A hash table containing mapping drums to layout settings. Predefined values: 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 key, and a list (notehead-style script vertical-position) as values.

This engraver creates the following layout objects: Dots, NoteHead and Script.
Rest_engraver

Music types accepted:

rest-event

Properties (read)

middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
This engraver creates the following layout objects: Dots and Rest.
Grob_pq_engraver
Administrate when certain grobs (eg. note heads) stop playing; this engraver is a sort-of a failure, since it doesn't handle all sorts of borderline cases very well.

Properties (read)

busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)
Properties (write)
busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)

Text_spanner_engraver
Create text spanner from a Music.

Music types accepted:

text-span-event

This engraver creates the following layout objects: TextSpanner.

Multi_measure_rest_engraver
Engraves multi-measure rests that are produced with R. Reads measurePosition and currentBarNumber to determine what number to print over the MultiMeasureRest. Reads measureLength to determine if it should use a whole rest or a breve rest to represent 1 measure

Music types accepted:

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

Properties (read)

measureLength (moment)
Length of one measure in the current time signature.
measurePosition (moment)
How much of the current measure have we had. This can be set manually to create incomplete measures.
currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
restNumberThreshold (number)
If a multimeasure rest takes less than this number of measures, no number is printed.
currentBarNumber (integer)
Contains the current barnumber. This property is incremented at every bar line.
This engraver creates the following layout objects: MultiMeasureRest, MultiMeasureRestNumber and MultiMeasureRestText.
Skip_event_swallow_translator
Swallow \skip.

Music types accepted:

skip-event

Tuplet_engraver
Catch Time_scaled_music and generate appropriate bracket

Music types accepted:

time-scaled-music

Properties (read)

tupletSpannerDuration (moment)
Normally a tuplet bracket is as wide as the \times expression that gave rise to it. By setting this property, you can make brackets last shorter. Example
               @lilypond[verbatim,fragment]
               context Voice \times 2/3 {
                 property Voice.tupletSpannerDuration = #(ly:make-moment 1 4)
                 c-[8 c c-] c-[ c c-]
               }
               @end lilypond
          

.

tupletNumberFormatFunction (procedure)
Function taking a music as input, producing a string. This function is called to determine the text to print on a tuplet bracket.
This engraver creates the following layout objects: TupletBracket.
Tie_engraver
Generate ties between noteheads of equal pitch.

Music types accepted:

tie-event

Properties (read)

tieMelismaBusy (boolean)
Signal whether a tie is present.
This engraver creates the following layout objects: Tie and TieColumn.
Slur_engraver
Build slurs from Slur_evs

Music types accepted:

slur-event

Properties (read)

slurMelismaBusy (boolean)
Signal if a slur is present.
This engraver creates the following layout objects: Slur.
Phrasing_slur_engraver
Print phrasing slurs. Similar to Slur_engraver

Music types accepted:

phrasing-slur-event

This engraver creates the following layout objects: PhrasingSlur.

Rhythmic_column_engraver
Generates NoteColumn, an objects that groups stems, noteheads and rests.

This engraver creates the following layout objects: NoteColumn and NoteSpacing.

Script_column_engraver

This engraver creates the following layout objects: ScriptColumn.

Script_engraver
Handles note scripted articulations.

Music types accepted:

articulation-event and script-event

Properties (read)

scriptDefinitions (list)
Description of scripts. This is used by Script_engraver for typesetting note-super/subscripts. See scm/script.scm for more information
This engraver creates the following layout objects: Script.
Dynamic_engraver
This engraver creates hairpins, dynamic texts, and their vertical alignments. The symbols are collected onto a DynamicLineSpanner grob which takes care of vertical positioning.

Music types accepted:

decrescendo-event, crescendo-event and absolute-dynamic-event

This engraver creates the following layout objects: DynamicLineSpanner, DynamicText, Hairpin and TextSpanner.

Text_engraver
Create text-scripts

Music types accepted:

text-script-event

This engraver creates the following layout objects: TextScript.

Part_combine_engraver
Part combine engraver for orchestral scores: Print markings a2, Solo, Solo II, and unisono

Music types accepted:

part-combine-event

Properties (read)

soloADue (boolean)
set Solo/A due texts in the part combiner?
This engraver creates the following layout objects: CombineTextScript.
Melisma_translator
This translator collects melisma information about ties, beams, and user settings (melismaBusy, and signals it to the ddlyrics code.

Music types accepted:

melisma-span-event and melisma-playing-event

Properties (read)

beamMelismaBusy (boolean)
Signal if a beam is present.
tieMelismaBusy (boolean)
Signal whether a tie is present.
slurMelismaBusy (boolean)
Signal if a slur is present.
melismaBusyProperties (list)
List of properties (symbols) to determine whether a melisma is playing. Setting this property will influence how lyrics are aligned to notes. For example, if set to #'(melismaBusy beamMelismaBusy), only manual melismata and manual beams are considered. Possible values include melismaBusy, slurMelismaBusy, tieMelismaBusy, and beamMelismaBusy
melismaBusy (boolean)
Signifies whether a melisma is active. This can be used to signal melismas on top of those automatically detected.

Slash_repeat_engraver
Make beat repeats.

Music types accepted:

repeated-music

Properties (read)

measureLength (moment)
Length of one measure in the current time signature.
This engraver creates the following layout objects: RepeatSlash.
Percent_repeat_engraver
Make whole bar and double bar repeats.

Music types accepted:

repeated-music

Properties (read)

currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
measureLength (moment)
Length of one measure in the current time signature.
This engraver creates the following layout objects: DoublePercentRepeat and PercentRepeat.
Chord_tremolo_engraver
Generates beams for tremolo repeats.

Music types accepted:

repeated-music

This engraver creates the following layout objects: Beam.

Auto_beam_engraver
Generate beams based on measure characteristics and observed Stems. Uses beatLength, measureLength and measurePosition to decide when to start and stop a beam. Overriding beaming is done through Stem_engraver properties stemLeftBeamCount and stemRightBeamCount.

Music types accepted:

beam-forbid-event

Properties (read)

subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
beatLength (moment)
The length of one beat in this time signature.
autoBeamSettings (list)
Specifies when automatically generated beams should begin and end. See Setting automatic beam behavior for more information.
autoBeaming (boolean)
If set to true then beams are generated automatically.
This engraver creates the following layout objects: Beam.
Grace_beam_engraver
Handles Beam events by engraving Beams. If omitted, then notes will be printed with flags instead of beams. Only engraves beams when we are at grace points in time.

Music types accepted:

beam-event

Properties (read)

subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
allowBeamBreak (boolean)
If true allow line breaks for beams over bar lines.
beatLength (moment)
The length of one beat in this time signature.
beamMelismaBusy (boolean)
Signal if a beam is present.
This engraver creates the following layout objects: Beam.
Beam_engraver
Handles Beam events by engraving Beams. If omitted, then notes will be printed with flags instead of beams.

Music types accepted:

beam-event

Properties (read)

subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
beatLength (moment)
The length of one beat in this time signature.
beamMelismaBusy (boolean)
Signal if a beam is present.
This engraver creates the following layout objects: Beam.
Stem_engraver
Create stems and single-stem tremolos. It also works together with the beam engraver for overriding beaming.

Music types accepted:

tremolo-event

Properties (read)

stemRightBeamCount (integer)
See stemLeftBeamCount.
stemLeftBeamCount (integer)
Specify the number of beams to draw on the left side of the next note. Overrides automatic beaming. The value is only used once, and then it is erased.
tremoloFlags (integer)
Number of tremolo flags to add if no number is specified.
This engraver creates the following layout objects: Stem and StemTremolo.
Rest_engraver

Music types accepted:

rest-event

Properties (read)

middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
This engraver creates the following layout objects: Dots and Rest.
Breathing_sign_engraver

Music types accepted:

breathing-event

This engraver creates the following layout objects: BreathingSign.

Forbid_line_break_engraver
Forbid line breaks when note heads are still playing at some point.

Properties (read)

busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)

Grob_pq_engraver
Administrate when certain grobs (eg. note heads) stop playing; this engraver is a sort-of a failure, since it doesn't handle all sorts of borderline cases very well.

Properties (read)

busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)
Properties (write)
busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)

Text_spanner_engraver
Create text spanner from a Music.

Music types accepted:

text-span-event

This engraver creates the following layout objects: TextSpanner.

Multi_measure_rest_engraver
Engraves multi-measure rests that are produced with R. Reads measurePosition and currentBarNumber to determine what number to print over the MultiMeasureRest. Reads measureLength to determine if it should use a whole rest or a breve rest to represent 1 measure

Music types accepted:

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

Properties (read)

measureLength (moment)
Length of one measure in the current time signature.
measurePosition (moment)
How much of the current measure have we had. This can be set manually to create incomplete measures.
currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
restNumberThreshold (number)
If a multimeasure rest takes less than this number of measures, no number is printed.
currentBarNumber (integer)
Contains the current barnumber. This property is incremented at every bar line.
This engraver creates the following layout objects: MultiMeasureRest, MultiMeasureRestNumber and MultiMeasureRestText.
Output_property_engraver
Interpret Music of Output_property type, and apply a function to any Graphic objects that satisfies the predicate.

Music types accepted:

layout-instruction

Font_size_engraver
Puts fontSize into font-relative-size grob property.

Properties (read)

fontSize (number)
The relative size of all grobs in a context.

FiguredBass

(not documented)

This context creates the following layout objects:

BassFigure, RemoveEmptyVerticalGroup, SeparatingGroupSpanner, SeparationItem and StaffSpacing.

This context is a `bottom' context; it can not contain other contexts.

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
Separating_line_group_engraver
Generates objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)
Create StaffSpacing objects? Should be set for staves.
Properties (write)
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
This engraver creates the following layout objects: SeparatingGroupSpanner, SeparationItem and StaffSpacing.
Skip_event_swallow_translator
Swallow \skip.

Music types accepted:

skip-event

Note_swallow_translator
Swallow notes

Music types accepted:

note-event

Rest_swallow_translator
Swallow rest

Music types accepted:

rest-event

Figured_bass_engraver
Make figured bass numbers.

Music types accepted:

bass-figure-event and rest-event

Properties (read)

bassFigureFormatFunction (procedure)
Procedure that is called to produce the formatting for a BassFigure grob. It takes a list of BassFigureEvents, a context, and the grob to format.
This engraver creates the following layout objects: BassFigure.
Hara_kiri_engraver
Like Axis_group_engraver, but make a hara-kiri spanner, and add interesting items (ie. note heads, lyric syllables and normal rests)

This engraver creates the following layout objects: RemoveEmptyVerticalGroup.

Global

Hard coded entry point for LilyPond. Cannot be tuned.

This context creates the following layout objects:

none.

This context sets the following properties:

Context Global can contain Score

This context is built from the following engravers:

GrandStaff

A group of staffs, with a brace on the left side, grouping the staves together. The bar lines of the contained staves are connected vertically.

This context creates the following layout objects:

Arpeggio, SpanBar, SystemStartBar, SystemStartBrace and SystemStartBracket.

This context sets the following properties:

Context GrandStaff can contain Staff

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
System_start_delimiter_engraver
Creates a system start delimiter (ie. SystemStart{Bar,Brace,Bracket} spanner

Properties (read)

systemStartDelimiter (symbol)
Which grob to make for the start of the system/staff? Set to SystemStartBrace, SystemStartBracket or SystemStartBar.
This engraver creates the following layout objects: SystemStartBar, SystemStartBrace and SystemStartBracket.
Span_arpeggio_engraver

Properties (read)

connectArpeggios (boolean)
If set, connect arpeggios across piano staff.
This engraver creates the following layout objects: Arpeggio.
Span_bar_engraver
This engraver makes cross-staff barlines: It catches all normal bar lines, and draws a single span-bar across them.

This engraver creates the following layout objects: SpanBar.

GregorianTranscriptionStaff

Handles clefs, bar lines, keys, accidentals. It can contain Voice contexts.

This context is also known as:

Staff

This context creates the following layout objects:

Accidental, BarLine, Clef, DotColumn, InstrumentName, KeySignature, NoteCollision, OctavateEight, OttavaBracket, RestCollision, SeparatingGroupSpanner, SeparationItem, SostenutoPedalLineSpanner, SostenutoPedal, StaffSpacing, StaffSymbol, SustainPedalLineSpanner, SustainPedal, TimeSignature, UnaCordaPedalLineSpanner, UnaCordaPedal, VerticalAxisGroup and VoltaBracket.

This context sets the following properties:

Context GregorianTranscriptionStaff can contain GregorianTranscriptionVoice

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
String_number_engraver
Swallow string-number-events - the purpose of this engraver is to process tab for normal notation. To provent warnings for unprocessed string-number-event to obscure real error messages, this engraver swallows them all.

Music types accepted:

string-number-event

Instrument_name_engraver
Prints the name of the instrument (specified by Staff.instrument and Staff.instr) at the left of the staff.

Properties (read)

instr (markup)
See instrument
instrument (markup)
The name to print left of a staff. The instrument property labels the staff in the first system, and the instr property labels following lines.
This engraver creates the following layout objects: InstrumentName.
Piano_pedal_engraver
Engrave piano pedal symbols and brackets.

Music types accepted:

pedal-event

Properties (read)

pedalUnaCordaStyle (symbol)
see pedalSustainStyle.
pedalSustainStyle (symbol)
A symbol that indicates how to print sustain pedals: text, bracket or mixed (both).
pedalSostenutoStyle (symbol)
see pedalSustainStyle.
pedalUnaCordaStrings (list)
See pedalSustainStrings.
pedalSustainStrings (list)
List of string 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.
pedalSostenutoStrings (list)
See pedalSustainStrings.
currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
This engraver creates the following layout objects: SostenutoPedal, SostenutoPedalLineSpanner, SustainPedal, SustainPedalLineSpanner, UnaCordaPedal and UnaCordaPedalLineSpanner.
Accidental_engraver
Make accidentals. Catches 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)

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.
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 rule consists of

context:
In which context is the rule 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.
octavation:
Whether the accidental changes all octaves or only the current octave. Valid choices are
same-octave:
This is the default algorithm. Accidentals are typeset if the note changes the accidental of that note in that octave. Accidentals lasts to the end of the measure and then as many measures as specified in the value. I.e. 1 means to the end of next measure, -1 means to the end of previous measure (that is: no duration at all), etc. #t means forever.
any-octave:
Accidentals are typeset if the note is different from the previous note on the same pitch in any octave. The value has same meaning as in same-octave.

laziness
Over how many bar lines the accidental lasts. If laziness is -1 then the accidental is forget immediately, and if laziness is #t then the accidental lasts forever.

extraNatural (boolean)
Whether to typeset an extra natural sign before accidentals changing from a non-natural to another non-natural.
harmonicAccidentals (boolean)
If set, harmonic notes in chords get accidentals.
localKeySignature (list)
the key signature at this point in the measure. The format is the same as for keySignature, but can also contain ((octave . name) . (alter . barnumber)) pairs. It is reset at every bar line.
Properties (write)
localKeySignature (list)
the key signature at this point in the measure. The format is the same as for keySignature, but can also contain ((octave . name) . (alter . barnumber)) pairs. It is reset at every bar line.
This engraver creates the following layout objects: Accidental.
Rest_collision_engraver
Handles collisions of rests.

This engraver creates the following layout objects: RestCollision.

Collision_engraver

This engraver creates the following layout objects: NoteCollision.

Staff_symbol_engraver
Create the constellation of five (default) staff lines.

This engraver creates the following layout objects: StaffSymbol.

Time_signature_engraver
Create a TimeSignature whenever timeSignatureFraction changes

This engraver creates the following layout objects: TimeSignature.

Key_engraver

Music types accepted:

key-change-event

Properties (read)

keySignature (list)
The current key signature. This is an alist containing (name . alter) or ((octave . name) . alter). where name is from 0.. 6 and alter from -4 (double flat) to 4 (double sharp).
keyAccidentalOrder (list)
Alist that defines in what order alterations should be printed. The format is (name . alter), where name is from 0 .. 6 and alter from -1, 1.
createKeyOnClefChange (boolean)
Print a key signature whenever the clef is changed.
explicitKeySignatureVisibility (procedure)
break-visibility function for explicit key changes. \override of #'break-visibility will set the visibility for normal (i.e. at the start of the line) key signatures.
lastKeySignature (list)
Last key signature before a key signature change.
printKeyCancellation (boolean)
Print restoration alterations before a key signature change.
keySignature (list)
The current key signature. This is an alist containing (name . alter) or ((octave . name) . alter). where name is from 0.. 6 and alter from -4 (double flat) to 4 (double sharp).
Properties (write)
keySignature (list)
The current key signature. This is an alist containing (name . alter) or ((octave . name) . alter). where name is from 0.. 6 and alter from -4 (double flat) to 4 (double sharp).
tonic (pitch)
The tonic of the current scale
lastKeySignature (list)
Last key signature before a key signature change.
This engraver creates the following layout objects: KeySignature.
Clef_engraver
Determine and set reference point for pitches

Properties (read)

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.
explicitClefVisibility (procedure)
break-visibility function for clef changes.
clefOctavation (integer)
Add this much extra octavation. Values of 7 and -7 are common.
middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
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.
This engraver creates the following layout objects: Clef and OctavateEight.
Ottava_spanner_engraver
Create a text spanner when the ottavation property changes..

Properties (read)

ottavation (string)
If set, the text for an ottava spanner. Changing this creates a new text spanner.
This engraver creates the following layout objects: OttavaBracket.
Dot_column_engraver
Engraves 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 objects: DotColumn.

Separating_line_group_engraver
Generates objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)
Create StaffSpacing objects? Should be set for staves.
Properties (write)
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
This engraver creates the following layout objects: SeparatingGroupSpanner, SeparationItem and StaffSpacing.
Volta_engraver
Make volta brackets

Properties (read)

stavesFound (list of grobs)
list of all staff-symbols found.
voltaSpannerDuration (moment)
This specifies the maximum duration to use for the brackets printed for \alternative. This can be used to shrink the length of brackets in the situation where one alternative is very large.
repeatCommands (list)
This property is read to find any command of the form (volta . x), where x is a string or #f
This engraver creates the following layout objects: VoltaBracket.
Font_size_engraver
Puts fontSize into font-relative-size grob property.

Properties (read)

fontSize (number)
The relative size of all grobs in a context.

Bar_engraver
Create barlines. This engraver is controlled through the whichBar property. If it has no bar line to create, it will forbid a linebreak at this point

Properties (read)

whichBar (string)
This property is read to determine what type of bar line to create.

Example:

               \set Staff.whichBar = "|:"
          

This will create a start-repeat bar in this staff only. Valid values are described in bar-line-interface.

This engraver creates the following layout objects: BarLine.
Output_property_engraver
Interpret Music of Output_property type, and apply a function to any Graphic objects that satisfies the predicate.

Music types accepted:

layout-instruction

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

Properties (read)

extraVerticalExtent (pair of numbers)
extra vertical extent, same format as minimumVerticalExtent
minimumVerticalExtent (pair of numbers)
minimum vertical extent, same format as verticalExtent
verticalExtent (pair of numbers)
Hard coded vertical extent. The format is a pair of dimensions, for example, this sets the sizes of a staff to 10 (5+5) staffspaces high.
               \set Staff.verticalExtent = #'(-5.0 . 5.0)
          

This does not work for Voice or any other context that doesn't form a vertical group.

This engraver creates the following layout objects: VerticalAxisGroup.

GregorianTranscriptionVoice

Corresponds to a voice on a staff. This context handles the conversion of dynamic signs, stems, beams, super- and subscripts, slurs, ties, and rests.

You have to instantiate this explicitly if you want to have multiple voices on the same staff.

This context is also known as:

Voice

This context creates the following layout objects:

Arpeggio, Beam, BreathingSign, ClusterSpannerBeacon, ClusterSpanner, CombineTextScript, Dots, DoublePercentRepeat, DynamicLineSpanner, DynamicText, Fingering, Glissando, Hairpin, MultiMeasureRestNumber, MultiMeasureRestText, MultiMeasureRest, NoteColumn, NoteHead, NoteSpacing, PercentRepeat, PhrasingSlur, RepeatSlash, Rest, ScriptColumn, Script, Slur, StemTremolo, Stem, TextScript, TextSpanner, TieColumn, Tie, TupletBracket and VoiceFollower.

This context sets the following properties:

This context is a `bottom' context; it can not contain other contexts.

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
Skip_event_swallow_translator
Swallow \skip.

Music types accepted:

skip-event

Tuplet_engraver
Catch Time_scaled_music and generate appropriate bracket

Music types accepted:

time-scaled-music

Properties (read)

tupletSpannerDuration (moment)
Normally a tuplet bracket is as wide as the \times expression that gave rise to it. By setting this property, you can make brackets last shorter. Example
               @lilypond[verbatim,fragment]
               context Voice \times 2/3 {
                 property Voice.tupletSpannerDuration = #(ly:make-moment 1 4)
                 c-[8 c c-] c-[ c c-]
               }
               @end lilypond
          

.

tupletNumberFormatFunction (procedure)
Function taking a music as input, producing a string. This function is called to determine the text to print on a tuplet bracket.
This engraver creates the following layout objects: TupletBracket.
Tie_engraver
Generate ties between noteheads of equal pitch.

Music types accepted:

tie-event

Properties (read)

tieMelismaBusy (boolean)
Signal whether a tie is present.
This engraver creates the following layout objects: Tie and TieColumn.
Slur_engraver
Build slurs from Slur_evs

Music types accepted:

slur-event

Properties (read)

slurMelismaBusy (boolean)
Signal if a slur is present.
This engraver creates the following layout objects: Slur.
Cluster_spanner_engraver
Engraves a cluster using Spanner notation

Music types accepted:

cluster-note-event

This engraver creates the following layout objects: ClusterSpanner and ClusterSpannerBeacon.

Phrasing_slur_engraver
Print phrasing slurs. Similar to Slur_engraver

Music types accepted:

phrasing-slur-event

This engraver creates the following layout objects: PhrasingSlur.

Rhythmic_column_engraver
Generates NoteColumn, an objects that groups stems, noteheads and rests.

This engraver creates the following layout objects: NoteColumn and NoteSpacing.

Script_column_engraver

This engraver creates the following layout objects: ScriptColumn.

Script_engraver
Handles note scripted articulations.

Music types accepted:

articulation-event and script-event

Properties (read)

scriptDefinitions (list)
Description of scripts. This is used by Script_engraver for typesetting note-super/subscripts. See scm/script.scm for more information
This engraver creates the following layout objects: Script.
Fingering_engraver
Create fingering-scripts

Music types accepted:

fingering-event

This engraver creates the following layout objects: Fingering.

Dynamic_engraver
This engraver creates hairpins, dynamic texts, and their vertical alignments. The symbols are collected onto a DynamicLineSpanner grob which takes care of vertical positioning.

Music types accepted:

decrescendo-event, crescendo-event and absolute-dynamic-event

This engraver creates the following layout objects: DynamicLineSpanner, DynamicText, Hairpin and TextSpanner.

Text_engraver
Create text-scripts

Music types accepted:

text-script-event

This engraver creates the following layout objects: TextScript.

Part_combine_engraver
Part combine engraver for orchestral scores: Print markings a2, Solo, Solo II, and unisono

Music types accepted:

part-combine-event

Properties (read)

soloADue (boolean)
set Solo/A due texts in the part combiner?
This engraver creates the following layout objects: CombineTextScript.
Melisma_translator
This translator collects melisma information about ties, beams, and user settings (melismaBusy, and signals it to the ddlyrics code.

Music types accepted:

melisma-span-event and melisma-playing-event

Properties (read)

beamMelismaBusy (boolean)
Signal if a beam is present.
tieMelismaBusy (boolean)
Signal whether a tie is present.
slurMelismaBusy (boolean)
Signal if a slur is present.
melismaBusyProperties (list)
List of properties (symbols) to determine whether a melisma is playing. Setting this property will influence how lyrics are aligned to notes. For example, if set to #'(melismaBusy beamMelismaBusy), only manual melismata and manual beams are considered. Possible values include melismaBusy, slurMelismaBusy, tieMelismaBusy, and beamMelismaBusy
melismaBusy (boolean)
Signifies whether a melisma is active. This can be used to signal melismas on top of those automatically detected.

Slash_repeat_engraver
Make beat repeats.

Music types accepted:

repeated-music

Properties (read)

measureLength (moment)
Length of one measure in the current time signature.
This engraver creates the following layout objects: RepeatSlash.
Percent_repeat_engraver
Make whole bar and double bar repeats.

Music types accepted:

repeated-music

Properties (read)

currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
measureLength (moment)
Length of one measure in the current time signature.
This engraver creates the following layout objects: DoublePercentRepeat and PercentRepeat.
Chord_tremolo_engraver
Generates beams for tremolo repeats.

Music types accepted:

repeated-music

This engraver creates the following layout objects: Beam.

New_fingering_engraver
Create fingering-scripts for notes in a new chord. This engraver is ill-named, since it also takes care of articulations and harmonic note heads

Properties (read)

fingeringOrientations (list)
List of symbols, containing left, right, up and/or down. This list determines where fingerings are put relative to the chord being fingered.
This engraver creates the following layout objects: Fingering.
Auto_beam_engraver
Generate beams based on measure characteristics and observed Stems. Uses beatLength, measureLength and measurePosition to decide when to start and stop a beam. Overriding beaming is done through Stem_engraver properties stemLeftBeamCount and stemRightBeamCount.

Music types accepted:

beam-forbid-event

Properties (read)

subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
beatLength (moment)
The length of one beat in this time signature.
autoBeamSettings (list)
Specifies when automatically generated beams should begin and end. See Setting automatic beam behavior for more information.
autoBeaming (boolean)
If set to true then beams are generated automatically.
This engraver creates the following layout objects: Beam.
Grace_beam_engraver
Handles Beam events by engraving Beams. If omitted, then notes will be printed with flags instead of beams. Only engraves beams when we are at grace points in time.

Music types accepted:

beam-event

Properties (read)

subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
allowBeamBreak (boolean)
If true allow line breaks for beams over bar lines.
beatLength (moment)
The length of one beat in this time signature.
beamMelismaBusy (boolean)
Signal if a beam is present.
This engraver creates the following layout objects: Beam.
Beam_engraver
Handles Beam events by engraving Beams. If omitted, then notes will be printed with flags instead of beams.

Music types accepted:

beam-event

Properties (read)

subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
beatLength (moment)
The length of one beat in this time signature.
beamMelismaBusy (boolean)
Signal if a beam is present.
This engraver creates the following layout objects: Beam.
Stem_engraver
Create stems and single-stem tremolos. It also works together with the beam engraver for overriding beaming.

Music types accepted:

tremolo-event

Properties (read)

stemRightBeamCount (integer)
See stemLeftBeamCount.
stemLeftBeamCount (integer)
Specify the number of beams to draw on the left side of the next note. Overrides automatic beaming. The value is only used once, and then it is erased.
tremoloFlags (integer)
Number of tremolo flags to add if no number is specified.
This engraver creates the following layout objects: Stem and StemTremolo.
Rest_engraver

Music types accepted:

rest-event

Properties (read)

middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
This engraver creates the following layout objects: Dots and Rest.
Note_heads_engraver
Generate noteheads.

Music types accepted:

busy-playing-event and note-event

Properties (read)

middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
This engraver creates the following layout objects: Dots and NoteHead.
Breathing_sign_engraver

Music types accepted:

breathing-event

This engraver creates the following layout objects: BreathingSign.

Ligature_bracket_engraver
Handles Ligature_events by engraving Ligature brackets.

Music types accepted:

ligature-event

This engraver creates the following layout objects: TupletBracket.

Glissando_engraver
Engrave a glissandi

Music types accepted:

glissando-event

Properties (read)

followVoice (boolean)
if set, note heads are tracked across staff switches by a thin line
This engraver creates the following layout objects: Glissando.
Note_head_line_engraver
Engrave a line between two note heads, for example a glissando. If followVoice is set, staff switches also generate a line.

Music types accepted:

glissando-event

Properties (read)

followVoice (boolean)
if set, note heads are tracked across staff switches by a thin line
This engraver creates the following layout objects: Glissando and VoiceFollower.
Forbid_line_break_engraver
Forbid line breaks when note heads are still playing at some point.

Properties (read)

busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)

Grob_pq_engraver
Administrate when certain grobs (eg. note heads) stop playing; this engraver is a sort-of a failure, since it doesn't handle all sorts of borderline cases very well.

Properties (read)

busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)
Properties (write)
busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)

Text_spanner_engraver
Create text spanner from a Music.

Music types accepted:

text-span-event

This engraver creates the following layout objects: TextSpanner.

Multi_measure_rest_engraver
Engraves multi-measure rests that are produced with R. Reads measurePosition and currentBarNumber to determine what number to print over the MultiMeasureRest. Reads measureLength to determine if it should use a whole rest or a breve rest to represent 1 measure

Music types accepted:

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

Properties (read)

measureLength (moment)
Length of one measure in the current time signature.
measurePosition (moment)
How much of the current measure have we had. This can be set manually to create incomplete measures.
currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
restNumberThreshold (number)
If a multimeasure rest takes less than this number of measures, no number is printed.
currentBarNumber (integer)
Contains the current barnumber. This property is incremented at every bar line.
This engraver creates the following layout objects: MultiMeasureRest, MultiMeasureRestNumber and MultiMeasureRestText.
Arpeggio_engraver
Generate an Arpeggio from a Arpeggio_req

Music types accepted:

arpeggio-event

This engraver creates the following layout objects: Arpeggio.

Output_property_engraver
Interpret Music of Output_property type, and apply a function to any Graphic objects that satisfies the predicate.

Music types accepted:

layout-instruction

Font_size_engraver
Puts fontSize into font-relative-size grob property.

Properties (read)

fontSize (number)
The relative size of all grobs in a context.

InnerChoirStaff

(not documented)

This context creates the following layout objects:

SystemStartBar, SystemStartBrace and SystemStartBracket.

This context sets the following properties:

Context InnerChoirStaff can contain ChordNames, Lyrics, PianoStaff, GrandStaff, RhythmicStaff, DrumStaff and Staff

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
System_start_delimiter_engraver
Creates a system start delimiter (ie. SystemStart{Bar,Brace,Bracket} spanner

Properties (read)

systemStartDelimiter (symbol)
Which grob to make for the start of the system/staff? Set to SystemStartBrace, SystemStartBracket or SystemStartBar.
This engraver creates the following layout objects: SystemStartBar, SystemStartBrace and SystemStartBracket.

InnerStaffGroup

(not documented)

This context creates the following layout objects:

Arpeggio, SpanBar, SystemStartBar, SystemStartBrace and SystemStartBracket.

This context sets the following properties:

Context InnerStaffGroup can contain ChordNames, Lyrics, TabStaff, PianoStaff, GrandStaff, DrumStaff, RhythmicStaff and Staff

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
System_start_delimiter_engraver
Creates a system start delimiter (ie. SystemStart{Bar,Brace,Bracket} spanner

Properties (read)

systemStartDelimiter (symbol)
Which grob to make for the start of the system/staff? Set to SystemStartBrace, SystemStartBracket or SystemStartBar.
This engraver creates the following layout objects: SystemStartBar, SystemStartBrace and SystemStartBracket.
Output_property_engraver
Interpret Music of Output_property type, and apply a function to any Graphic objects that satisfies the predicate.

Music types accepted:

layout-instruction

Span_arpeggio_engraver

Properties (read)

connectArpeggios (boolean)
If set, connect arpeggios across piano staff.
This engraver creates the following layout objects: Arpeggio.
Span_bar_engraver
This engraver makes cross-staff barlines: It catches all normal bar lines, and draws a single span-bar across them.

This engraver creates the following layout objects: SpanBar.

Lyrics

Corresponds to a voice with lyrics. Handles the printing of a single line of lyrics.

This context creates the following layout objects:

LyricExtender, LyricHyphen, LyricText, RemoveEmptyVerticalGroup, SeparatingGroupSpanner, SeparationItem, StaffSpacing, StanzaNumber and VocalName.

This context sets the following properties:

This context is a `bottom' context; it can not contain other contexts.

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
Font_size_engraver
Puts fontSize into font-relative-size grob property.

Properties (read)

fontSize (number)
The relative size of all grobs in a context.

Skip_event_swallow_translator
Swallow \skip.

Music types accepted:

skip-event

Vocal_name_engraver
Prints the name of the a lyric voice (specified by Staff.vocalName and Staff.vocNam) at the left of the staff.

Properties (read)

vocalName (markup)
Name of a vocal line.
vocNam (markup)
Name of a vocal line, short version.
This engraver creates the following layout objects: VocalName.
Stanza_number_engraver

Properties (read)

stanza (markup)
Stanza `number' to print before the start of a verse. Use in Lyrics context.
This engraver creates the following layout objects: StanzaNumber.
Hyphen_engraver
Create lyric hyphens

Music types accepted:

hyphen-event

This engraver creates the following layout objects: LyricHyphen.

Extender_engraver
Create lyric extenders

Music types accepted:

extender-event

This engraver creates the following layout objects: LyricExtender.

Lyric_engraver

Music types accepted:

lyric-event

This engraver creates the following layout objects: LyricText.

Separating_line_group_engraver
Generates objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)
Create StaffSpacing objects? Should be set for staves.
Properties (write)
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
This engraver creates the following layout objects: SeparatingGroupSpanner, SeparationItem and StaffSpacing.
Hara_kiri_engraver
Like Axis_group_engraver, but make a hara-kiri spanner, and add interesting items (ie. note heads, lyric syllables and normal rests)

This engraver creates the following layout objects: RemoveEmptyVerticalGroup.

NoteNames

(not documented)

This context creates the following layout objects:

NoteName, SeparatingGroupSpanner, SeparationItem, StaffSpacing, TieColumn, Tie and VerticalAxisGroup.

This context sets the following properties:

This context is a `bottom' context; it can not contain other contexts.

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
Separating_line_group_engraver
Generates objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)
Create StaffSpacing objects? Should be set for staves.
Properties (write)
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
This engraver creates the following layout objects: SeparatingGroupSpanner, SeparationItem and StaffSpacing.
Note_name_engraver

Music types accepted:

note-event

Properties (read)

printOctaveNames (boolean)
Print octave marks for the NoteNames context.
This engraver creates the following layout objects: NoteName.
Tie_engraver
Generate ties between noteheads of equal pitch.

Music types accepted:

tie-event

Properties (read)

tieMelismaBusy (boolean)
Signal whether a tie is present.
This engraver creates the following layout objects: Tie and TieColumn.
Skip_event_swallow_translator
Swallow \skip.

Music types accepted:

skip-event

Rest_swallow_translator
Swallow rest

Music types accepted:

rest-event

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

Properties (read)

extraVerticalExtent (pair of numbers)
extra vertical extent, same format as minimumVerticalExtent
minimumVerticalExtent (pair of numbers)
minimum vertical extent, same format as verticalExtent
verticalExtent (pair of numbers)
Hard coded vertical extent. The format is a pair of dimensions, for example, this sets the sizes of a staff to 10 (5+5) staffspaces high.
               \set Staff.verticalExtent = #'(-5.0 . 5.0)
          

This does not work for Voice or any other context that doesn't form a vertical group.

This engraver creates the following layout objects: VerticalAxisGroup.

PianoStaff

Just like GrandStaff but with a forced distance between the staves, so cross staff beaming and slurring can be used.

This context is also known as:

GrandStaff

This context creates the following layout objects:

Arpeggio, InstrumentName, SpanBar, SystemStartBar, SystemStartBrace, SystemStartBracket and VerticalAlignment.

This context sets the following properties:

Context PianoStaff can contain Staff

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
Instrument_name_engraver
Prints the name of the instrument (specified by Staff.instrument and Staff.instr) at the left of the staff.

Properties (read)

instr (markup)
See instrument
instrument (markup)
The name to print left of a staff. The instrument property labels the staff in the first system, and the instr property labels following lines.
This engraver creates the following layout objects: InstrumentName.
Vertical_align_engraver
Catch Vertical axis groups and stack them.

This engraver creates the following layout objects: VerticalAlignment.

System_start_delimiter_engraver
Creates a system start delimiter (ie. SystemStart{Bar,Brace,Bracket} spanner

Properties (read)

systemStartDelimiter (symbol)
Which grob to make for the start of the system/staff? Set to SystemStartBrace, SystemStartBracket or SystemStartBar.
This engraver creates the following layout objects: SystemStartBar, SystemStartBrace and SystemStartBracket.
Span_arpeggio_engraver

Properties (read)

connectArpeggios (boolean)
If set, connect arpeggios across piano staff.
This engraver creates the following layout objects: Arpeggio.
Span_bar_engraver
This engraver makes cross-staff barlines: It catches all normal bar lines, and draws a single span-bar across them.

This engraver creates the following layout objects: SpanBar.

RhythmicStaff

A context like Staff but for printing rhythms. Pitches are ignored; the notes are printed on one line.

This context is also known as:

Staff

This context creates the following layout objects:

BarLine, DotColumn, InstrumentName, SeparatingGroupSpanner, SeparationItem, StaffSpacing, StaffSymbol, TimeSignature, VerticalAxisGroup and VoltaBracket.

This context sets the following properties:

Context RhythmicStaff can contain Voice

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
Instrument_name_engraver
Prints the name of the instrument (specified by Staff.instrument and Staff.instr) at the left of the staff.

Properties (read)

instr (markup)
See instrument
instrument (markup)
The name to print left of a staff. The instrument property labels the staff in the first system, and the instr property labels following lines.
This engraver creates the following layout objects: InstrumentName.
Staff_symbol_engraver
Create the constellation of five (default) staff lines.

This engraver creates the following layout objects: StaffSymbol.

Time_signature_engraver
Create a TimeSignature whenever timeSignatureFraction changes

This engraver creates the following layout objects: TimeSignature.

Bar_engraver
Create barlines. This engraver is controlled through the whichBar property. If it has no bar line to create, it will forbid a linebreak at this point

Properties (read)

whichBar (string)
This property is read to determine what type of bar line to create.

Example:

               \set Staff.whichBar = "|:"
          

This will create a start-repeat bar in this staff only. Valid values are described in bar-line-interface.

This engraver creates the following layout objects: BarLine.
Volta_engraver
Make volta brackets

Properties (read)

stavesFound (list of grobs)
list of all staff-symbols found.
voltaSpannerDuration (moment)
This specifies the maximum duration to use for the brackets printed for \alternative. This can be used to shrink the length of brackets in the situation where one alternative is very large.
repeatCommands (list)
This property is read to find any command of the form (volta . x), where x is a string or #f
This engraver creates the following layout objects: VoltaBracket.
Dot_column_engraver
Engraves 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 objects: DotColumn.

Separating_line_group_engraver
Generates objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)
Create StaffSpacing objects? Should be set for staves.
Properties (write)
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
This engraver creates the following layout objects: SeparatingGroupSpanner, SeparationItem and StaffSpacing.
Pitch_squash_engraver
Set the vertical position of noteheads to squashedPosition, if that property is set. This can be used to make a single line staff demonstrating the rhythm of a melody.

Properties (read)

squashedPosition (integer)
Vertical position of squashing for Pitch_squash_engraver.

Output_property_engraver
Interpret Music of Output_property type, and apply a function to any Graphic objects that satisfies the predicate.

Music types accepted:

layout-instruction

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

Properties (read)

extraVerticalExtent (pair of numbers)
extra vertical extent, same format as minimumVerticalExtent
minimumVerticalExtent (pair of numbers)
minimum vertical extent, same format as verticalExtent
verticalExtent (pair of numbers)
Hard coded vertical extent. The format is a pair of dimensions, for example, this sets the sizes of a staff to 10 (5+5) staffspaces high.
               \set Staff.verticalExtent = #'(-5.0 . 5.0)
          

This does not work for Voice or any other context that doesn't form a vertical group.

This engraver creates the following layout objects: VerticalAxisGroup.

Score

This is the top level notation context. No other context can contain a Score context. This context handles the administration of time signatures. It also makes sure that items such as clefs, time signatures, and key-signatures are aligned across staves.

You cannot explicitly instantiate a Score context (since it is not contained in any other context). It is instantiated automatically when an output definition (a \score or \paper block) is processed.

This context creates the following layout objects:

Arpeggio, BarNumber, BreakAlignGroup, BreakAlignment, LeftEdge, MetronomeMark, NonMusicalPaperColumn, PaperColumn, RehearsalMark, SpacingSpanner, SystemStartBar, SystemStartBrace, SystemStartBracket, System and VerticalAlignment.

This context sets the following properties:

Context Score can contain FiguredBass, NoteNames, Devnull, PianoStaff, ChoirStaff, GrandStaff, ChordNames, Lyrics, DrumStaff, RhythmicStaff, StaffGroup, GregorianTranscriptionStaff, VaticanaStaff, TabStaff and Staff

This context is built from the following engravers:

Score_engraver
Top level engraver. Takes care of generating columns and the complete system (ie. System)

This engraver decides whether a column is breakable. The default is that a column is always breakable. However, when every Bar_engraver that does not have a barline at a certain point will call Score_engraver::forbid_breaks to stop linebreaks. In practice, this means that you can make a breakpoint by creating a barline (assuming that there are no beams or notes that prevent a breakpoint.)

Music types accepted:

break-event

Properties (read)

currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
currentMusicalColumn (layout object)
Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).
This engraver creates the following layout objects: NonMusicalPaperColumn, PaperColumn and System.
Span_arpeggio_engraver

Properties (read)

connectArpeggios (boolean)
If set, connect arpeggios across piano staff.
This engraver creates the following layout objects: Arpeggio.
Bar_number_engraver
A bar number is created whenever measurePosition is zero. It is put on top of all staves, and appears only at left side of the staff. The staves are taken from stavesFound, which is maintained by Staff_collecting_engraver.

Properties (read)

barNumberVisibility (procedure)
Procedure that takes an int and returns whether the corresponding bar number should be printed
stavesFound (list of grobs)
list of all staff-symbols found.
currentBarNumber (integer)
Contains the current barnumber. This property is incremented at every bar line.
This engraver creates the following layout objects: BarNumber.
Stanza_number_align_engraver
This engraver ensures that stanza numbers are neatly aligned.
Vertical_align_engraver
Catch Vertical axis groups and stack them.

This engraver creates the following layout objects: VerticalAlignment.

Spacing_engraver
make a SpacingSpanner and do bookkeeping of shortest starting and playing notes

This engraver creates the following layout objects: SpacingSpanner.

Break_align_engraver
Align grobs with corresponding break-align-symbols into groups, and order the groups according to breakAlignOrder

This engraver creates the following layout objects: BreakAlignGroup, BreakAlignment and LeftEdge.

Metronome_mark_engraver
Engrave metro nome 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:

metronome-change-event

Properties (read)

metronomeMarkFormatter (procedure)
How to produce a metronome markup. Called with 2 arguments, event and context.
stavesFound (list of grobs)
list of all staff-symbols found.
This engraver creates the following layout objects: MetronomeMark.
Mark_engraver
This engraver will create RehearsalMark objects. It puts them on top of all staves (which is taken from the property stavesFound). If moving this engraver to a different context, Staff_collecting_engraver must move along, otherwise all marksend up on the same Y-location

Music types accepted:

mark-event

Properties (read)

stavesFound (list of grobs)
list of all staff-symbols found.
markFormatter (procedure)
Procedure taking as arguments context and rehearsal mark. It should return the formatted mark as a markup object.
rehearsalMark (integer)
The last rehearsal mark printed.
This engraver creates the following layout objects: RehearsalMark.
System_start_delimiter_engraver
Creates a system start delimiter (ie. SystemStart{Bar,Brace,Bracket} spanner

Properties (read)

systemStartDelimiter (symbol)
Which grob to make for the start of the system/staff? Set to SystemStartBrace, SystemStartBracket or SystemStartBar.
This engraver creates the following layout objects: SystemStartBar, SystemStartBrace and SystemStartBracket.
Output_property_engraver
Interpret Music of Output_property type, and apply a function to any Graphic objects that satisfies the predicate.

Music types accepted:

layout-instruction

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

This engraver adds the alias Timing to its containing context.

Properties (read)

currentBarNumber (integer)
Contains the current barnumber. This property is incremented at every bar line.
measurePosition (moment)
How much of the current measure have we had. This can be set manually to create incomplete measures.
measureLength (moment)
Length of one measure in the current time signature.
timing (boolean)
Keep administration of measure length, position, bar number, etc? Switch off for cadenzas.
skipBars (boolean)
If set to true, then skip the empty bars that are produced by multimeasure notes and rests. These bars will not appear on the printed output. If not set (the default) multimeasure notes and rests expand into their full length, printing the appropriate number of empty bars so that synchronization with other voices is preserved.
               @lilypond[fragment,verbatim,center]
               r1 r1*3 R1*3  \\property Score.skipBars= ##t r1*3 R1*3
               @end lilypond
          

defaultBarType (string)
Sets the default type of bar line. See whichBar for information on available bar types.

This variable is read by Timing_engraver at Score level.

barAlways (boolean)
If set to true a bar line is drawn after each note.
whichBar (string)
This property is read to determine what type of bar line to create.

Example:

               \set Staff.whichBar = "|:"
          

This will create a start-repeat bar in this staff only. Valid values are described in bar-line-interface.

automaticBars (boolean)
If set to true then bar lines will not be printed automatically; they must be explicitly created with \bar command. Unlike the \cadenza keyword, measures are still counted. Bar generation will resume according to that count if this property is unset.
timeSignatureFraction (pair of numbers)
pair of numbers, signifying the time signature. For example #'(4 . 4) is a 4/4 time signature.

Staff_collecting_engraver
Maintain the stavesFound variable

Properties (read)

stavesFound (list of grobs)
list of all staff-symbols found.
Properties (write)
stavesFound (list of grobs)
list of all staff-symbols found.

Repeat_acknowledge_engraver
Acknowledge repeated music, and convert the contents of repeatCommands ainto an appropriate setting for whichBar.

Properties (read)

whichBar (string)
This property is read to determine what type of bar line to create.

Example:

               \set Staff.whichBar = "|:"
          

This will create a start-repeat bar in this staff only. Valid values are described in bar-line-interface.

repeatCommands (list)
This property is read to find any command of the form (volta . x), where x is a string or #f

Staff

Handles clefs, bar lines, keys, accidentals. It can contain Voice contexts.

This context creates the following layout objects:

Accidental, BarLine, Clef, DotColumn, InstrumentName, KeySignature, NoteCollision, OctavateEight, OttavaBracket, RestCollision, SeparatingGroupSpanner, SeparationItem, SostenutoPedalLineSpanner, SostenutoPedal, StaffSpacing, StaffSymbol, SustainPedalLineSpanner, SustainPedal, TimeSignature, UnaCordaPedalLineSpanner, UnaCordaPedal, VerticalAxisGroup and VoltaBracket.

This context sets the following properties:

Context Staff can contain Voice

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
String_number_engraver
Swallow string-number-events - the purpose of this engraver is to process tab for normal notation. To provent warnings for unprocessed string-number-event to obscure real error messages, this engraver swallows them all.

Music types accepted:

string-number-event

Instrument_name_engraver
Prints the name of the instrument (specified by Staff.instrument and Staff.instr) at the left of the staff.

Properties (read)

instr (markup)
See instrument
instrument (markup)
The name to print left of a staff. The instrument property labels the staff in the first system, and the instr property labels following lines.
This engraver creates the following layout objects: InstrumentName.
Piano_pedal_engraver
Engrave piano pedal symbols and brackets.

Music types accepted:

pedal-event

Properties (read)

pedalUnaCordaStyle (symbol)
see pedalSustainStyle.
pedalSustainStyle (symbol)
A symbol that indicates how to print sustain pedals: text, bracket or mixed (both).
pedalSostenutoStyle (symbol)
see pedalSustainStyle.
pedalUnaCordaStrings (list)
See pedalSustainStrings.
pedalSustainStrings (list)
List of string 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.
pedalSostenutoStrings (list)
See pedalSustainStrings.
currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
This engraver creates the following layout objects: SostenutoPedal, SostenutoPedalLineSpanner, SustainPedal, SustainPedalLineSpanner, UnaCordaPedal and UnaCordaPedalLineSpanner.
Accidental_engraver
Make accidentals. Catches 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)

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.
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 rule consists of

context:
In which context is the rule 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.
octavation:
Whether the accidental changes all octaves or only the current octave. Valid choices are
same-octave:
This is the default algorithm. Accidentals are typeset if the note changes the accidental of that note in that octave. Accidentals lasts to the end of the measure and then as many measures as specified in the value. I.e. 1 means to the end of next measure, -1 means to the end of previous measure (that is: no duration at all), etc. #t means forever.
any-octave:
Accidentals are typeset if the note is different from the previous note on the same pitch in any octave. The value has same meaning as in same-octave.

laziness
Over how many bar lines the accidental lasts. If laziness is -1 then the accidental is forget immediately, and if laziness is #t then the accidental lasts forever.

extraNatural (boolean)
Whether to typeset an extra natural sign before accidentals changing from a non-natural to another non-natural.
harmonicAccidentals (boolean)
If set, harmonic notes in chords get accidentals.
localKeySignature (list)
the key signature at this point in the measure. The format is the same as for keySignature, but can also contain ((octave . name) . (alter . barnumber)) pairs. It is reset at every bar line.
Properties (write)
localKeySignature (list)
the key signature at this point in the measure. The format is the same as for keySignature, but can also contain ((octave . name) . (alter . barnumber)) pairs. It is reset at every bar line.
This engraver creates the following layout objects: Accidental.
Rest_collision_engraver
Handles collisions of rests.

This engraver creates the following layout objects: RestCollision.

Collision_engraver

This engraver creates the following layout objects: NoteCollision.

Staff_symbol_engraver
Create the constellation of five (default) staff lines.

This engraver creates the following layout objects: StaffSymbol.

Time_signature_engraver
Create a TimeSignature whenever timeSignatureFraction changes

This engraver creates the following layout objects: TimeSignature.

Key_engraver

Music types accepted:

key-change-event

Properties (read)

keySignature (list)
The current key signature. This is an alist containing (name . alter) or ((octave . name) . alter). where name is from 0.. 6 and alter from -4 (double flat) to 4 (double sharp).
keyAccidentalOrder (list)
Alist that defines in what order alterations should be printed. The format is (name . alter), where name is from 0 .. 6 and alter from -1, 1.
createKeyOnClefChange (boolean)
Print a key signature whenever the clef is changed.
explicitKeySignatureVisibility (procedure)
break-visibility function for explicit key changes. \override of #'break-visibility will set the visibility for normal (i.e. at the start of the line) key signatures.
lastKeySignature (list)
Last key signature before a key signature change.
printKeyCancellation (boolean)
Print restoration alterations before a key signature change.
keySignature (list)
The current key signature. This is an alist containing (name . alter) or ((octave . name) . alter). where name is from 0.. 6 and alter from -4 (double flat) to 4 (double sharp).
Properties (write)
keySignature (list)
The current key signature. This is an alist containing (name . alter) or ((octave . name) . alter). where name is from 0.. 6 and alter from -4 (double flat) to 4 (double sharp).
tonic (pitch)
The tonic of the current scale
lastKeySignature (list)
Last key signature before a key signature change.
This engraver creates the following layout objects: KeySignature.
Clef_engraver
Determine and set reference point for pitches

Properties (read)

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.
explicitClefVisibility (procedure)
break-visibility function for clef changes.
clefOctavation (integer)
Add this much extra octavation. Values of 7 and -7 are common.
middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
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.
This engraver creates the following layout objects: Clef and OctavateEight.
Ottava_spanner_engraver
Create a text spanner when the ottavation property changes..

Properties (read)

ottavation (string)
If set, the text for an ottava spanner. Changing this creates a new text spanner.
This engraver creates the following layout objects: OttavaBracket.
Dot_column_engraver
Engraves 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 objects: DotColumn.

Separating_line_group_engraver
Generates objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)
Create StaffSpacing objects? Should be set for staves.
Properties (write)
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
This engraver creates the following layout objects: SeparatingGroupSpanner, SeparationItem and StaffSpacing.
Volta_engraver
Make volta brackets

Properties (read)

stavesFound (list of grobs)
list of all staff-symbols found.
voltaSpannerDuration (moment)
This specifies the maximum duration to use for the brackets printed for \alternative. This can be used to shrink the length of brackets in the situation where one alternative is very large.
repeatCommands (list)
This property is read to find any command of the form (volta . x), where x is a string or #f
This engraver creates the following layout objects: VoltaBracket.
Font_size_engraver
Puts fontSize into font-relative-size grob property.

Properties (read)

fontSize (number)
The relative size of all grobs in a context.

Bar_engraver
Create barlines. This engraver is controlled through the whichBar property. If it has no bar line to create, it will forbid a linebreak at this point

Properties (read)

whichBar (string)
This property is read to determine what type of bar line to create.

Example:

               \set Staff.whichBar = "|:"
          

This will create a start-repeat bar in this staff only. Valid values are described in bar-line-interface.

This engraver creates the following layout objects: BarLine.
Output_property_engraver
Interpret Music of Output_property type, and apply a function to any Graphic objects that satisfies the predicate.

Music types accepted:

layout-instruction

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

Properties (read)

extraVerticalExtent (pair of numbers)
extra vertical extent, same format as minimumVerticalExtent
minimumVerticalExtent (pair of numbers)
minimum vertical extent, same format as verticalExtent
verticalExtent (pair of numbers)
Hard coded vertical extent. The format is a pair of dimensions, for example, this sets the sizes of a staff to 10 (5+5) staffspaces high.
               \set Staff.verticalExtent = #'(-5.0 . 5.0)
          

This does not work for Voice or any other context that doesn't form a vertical group.

This engraver creates the following layout objects: VerticalAxisGroup.

StaffGroup

Groups staffs while adding a bracket on the left side, grouping the staves together. The bar lines of the contained staves are connected vertically.

This context creates the following layout objects:

Arpeggio, SpanBar, SystemStartBar, SystemStartBrace and SystemStartBracket.

This context sets the following properties:

Context StaffGroup can contain FiguredBass, InnerStaffGroup, ChoirStaff, InnerChoirStaff, ChordNames, Lyrics, TabStaff, PianoStaff, GrandStaff, DrumStaff, RhythmicStaff and Staff

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
System_start_delimiter_engraver
Creates a system start delimiter (ie. SystemStart{Bar,Brace,Bracket} spanner

Properties (read)

systemStartDelimiter (symbol)
Which grob to make for the start of the system/staff? Set to SystemStartBrace, SystemStartBracket or SystemStartBar.
This engraver creates the following layout objects: SystemStartBar, SystemStartBrace and SystemStartBracket.
Output_property_engraver
Interpret Music of Output_property type, and apply a function to any Graphic objects that satisfies the predicate.

Music types accepted:

layout-instruction

Span_arpeggio_engraver

Properties (read)

connectArpeggios (boolean)
If set, connect arpeggios across piano staff.
This engraver creates the following layout objects: Arpeggio.
Span_bar_engraver
This engraver makes cross-staff barlines: It catches all normal bar lines, and draws a single span-bar across them.

This engraver creates the following layout objects: SpanBar.

TabStaff

Context for generating tablature. [DOCME]

This context is also known as:

Staff

This context creates the following layout objects:

BarLine, Clef, DotColumn, InstrumentName, NoteCollision, OctavateEight, OttavaBracket, RestCollision, SeparatingGroupSpanner, SeparationItem, SostenutoPedalLineSpanner, SostenutoPedal, StaffSpacing, StaffSymbol, SustainPedalLineSpanner, SustainPedal, TimeSignature, UnaCordaPedalLineSpanner, UnaCordaPedal, VerticalAxisGroup and VoltaBracket.

This context sets the following properties:

Context TabStaff can contain TabVoice

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
Tab_staff_symbol_engraver
Create a staff-symbol, but look at stringTunings for the number of lines.staff lines.

Properties (read)

stringTunings (list)
The tablature strings tuning. It is a list of the pitch (in semitones) of each string (starting with the lower one).
This engraver creates the following layout objects: StaffSymbol.
Instrument_name_engraver
Prints the name of the instrument (specified by Staff.instrument and Staff.instr) at the left of the staff.

Properties (read)

instr (markup)
See instrument
instrument (markup)
The name to print left of a staff. The instrument property labels the staff in the first system, and the instr property labels following lines.
This engraver creates the following layout objects: InstrumentName.
Piano_pedal_engraver
Engrave piano pedal symbols and brackets.

Music types accepted:

pedal-event

Properties (read)

pedalUnaCordaStyle (symbol)
see pedalSustainStyle.
pedalSustainStyle (symbol)
A symbol that indicates how to print sustain pedals: text, bracket or mixed (both).
pedalSostenutoStyle (symbol)
see pedalSustainStyle.
pedalUnaCordaStrings (list)
See pedalSustainStrings.
pedalSustainStrings (list)
List of string 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.
pedalSostenutoStrings (list)
See pedalSustainStrings.
currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
This engraver creates the following layout objects: SostenutoPedal, SostenutoPedalLineSpanner, SustainPedal, SustainPedalLineSpanner, UnaCordaPedal and UnaCordaPedalLineSpanner.
Rest_collision_engraver
Handles collisions of rests.

This engraver creates the following layout objects: RestCollision.

Collision_engraver

This engraver creates the following layout objects: NoteCollision.

Time_signature_engraver
Create a TimeSignature whenever timeSignatureFraction changes

This engraver creates the following layout objects: TimeSignature.

Clef_engraver
Determine and set reference point for pitches

Properties (read)

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.
explicitClefVisibility (procedure)
break-visibility function for clef changes.
clefOctavation (integer)
Add this much extra octavation. Values of 7 and -7 are common.
middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
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.
This engraver creates the following layout objects: Clef and OctavateEight.
Ottava_spanner_engraver
Create a text spanner when the ottavation property changes..

Properties (read)

ottavation (string)
If set, the text for an ottava spanner. Changing this creates a new text spanner.
This engraver creates the following layout objects: OttavaBracket.
Dot_column_engraver
Engraves 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 objects: DotColumn.

Separating_line_group_engraver
Generates objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)
Create StaffSpacing objects? Should be set for staves.
Properties (write)
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
This engraver creates the following layout objects: SeparatingGroupSpanner, SeparationItem and StaffSpacing.
Volta_engraver
Make volta brackets

Properties (read)

stavesFound (list of grobs)
list of all staff-symbols found.
voltaSpannerDuration (moment)
This specifies the maximum duration to use for the brackets printed for \alternative. This can be used to shrink the length of brackets in the situation where one alternative is very large.
repeatCommands (list)
This property is read to find any command of the form (volta . x), where x is a string or #f
This engraver creates the following layout objects: VoltaBracket.
Font_size_engraver
Puts fontSize into font-relative-size grob property.

Properties (read)

fontSize (number)
The relative size of all grobs in a context.

Bar_engraver
Create barlines. This engraver is controlled through the whichBar property. If it has no bar line to create, it will forbid a linebreak at this point

Properties (read)

whichBar (string)
This property is read to determine what type of bar line to create.

Example:

               \set Staff.whichBar = "|:"
          

This will create a start-repeat bar in this staff only. Valid values are described in bar-line-interface.

This engraver creates the following layout objects: BarLine.
Output_property_engraver
Interpret Music of Output_property type, and apply a function to any Graphic objects that satisfies the predicate.

Music types accepted:

layout-instruction

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

Properties (read)

extraVerticalExtent (pair of numbers)
extra vertical extent, same format as minimumVerticalExtent
minimumVerticalExtent (pair of numbers)
minimum vertical extent, same format as verticalExtent
verticalExtent (pair of numbers)
Hard coded vertical extent. The format is a pair of dimensions, for example, this sets the sizes of a staff to 10 (5+5) staffspaces high.
               \set Staff.verticalExtent = #'(-5.0 . 5.0)
          

This does not work for Voice or any other context that doesn't form a vertical group.

This engraver creates the following layout objects: VerticalAxisGroup.

TabVoice

Context for drawing notes in a Tab staff.

This context creates the following layout objects:

Arpeggio, Beam, BreathingSign, ClusterSpannerBeacon, ClusterSpanner, CombineTextScript, Dots, DoublePercentRepeat, DynamicLineSpanner, DynamicText, Glissando, Hairpin, MultiMeasureRestNumber, MultiMeasureRestText, MultiMeasureRest, NoteColumn, NoteSpacing, PercentRepeat, PhrasingSlur, RepeatSlash, Rest, ScriptColumn, Script, Slur, StemTremolo, Stem, TabNoteHead, TextScript, TextSpanner, TieColumn, Tie, TupletBracket and VoiceFollower.

This context sets the following properties:

This context is a `bottom' context; it can not contain other contexts.

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
Tab_note_heads_engraver
Generate one or more tablature noteheads from Music of type NoteEvent.

Music types accepted:

busy-playing-event, string-number-event and note-event

Properties (read)

stringOneTopmost (boolean)
Whether the 1st string is printed on the top line of the tablature.
highStringOne (boolean)
Whether the 1st string is the string with highest pitch on the instrument. This used by the automatic string selector for tab notation.
tablatureFormat (procedure)
Function formatting a tab note head; it takes a string number, a list of string tunings and Pitch object. It returns the text as a string.
minimumFret (number)
The tablature auto string-selecting mechanism selects the highest string with a fret at least minimumFret
stringTunings (list)
The tablature strings tuning. It is a list of the pitch (in semitones) of each string (starting with the lower one).
middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
This engraver creates the following layout objects: Dots and TabNoteHead.
Skip_event_swallow_translator
Swallow \skip.

Music types accepted:

skip-event

Tuplet_engraver
Catch Time_scaled_music and generate appropriate bracket

Music types accepted:

time-scaled-music

Properties (read)

tupletSpannerDuration (moment)
Normally a tuplet bracket is as wide as the \times expression that gave rise to it. By setting this property, you can make brackets last shorter. Example
               @lilypond[verbatim,fragment]
               context Voice \times 2/3 {
                 property Voice.tupletSpannerDuration = #(ly:make-moment 1 4)
                 c-[8 c c-] c-[ c c-]
               }
               @end lilypond
          

.

tupletNumberFormatFunction (procedure)
Function taking a music as input, producing a string. This function is called to determine the text to print on a tuplet bracket.
This engraver creates the following layout objects: TupletBracket.
Tie_engraver
Generate ties between noteheads of equal pitch.

Music types accepted:

tie-event

Properties (read)

tieMelismaBusy (boolean)
Signal whether a tie is present.
This engraver creates the following layout objects: Tie and TieColumn.
Slur_engraver
Build slurs from Slur_evs

Music types accepted:

slur-event

Properties (read)

slurMelismaBusy (boolean)
Signal if a slur is present.
This engraver creates the following layout objects: Slur.
Cluster_spanner_engraver
Engraves a cluster using Spanner notation

Music types accepted:

cluster-note-event

This engraver creates the following layout objects: ClusterSpanner and ClusterSpannerBeacon.

Phrasing_slur_engraver
Print phrasing slurs. Similar to Slur_engraver

Music types accepted:

phrasing-slur-event

This engraver creates the following layout objects: PhrasingSlur.

Rhythmic_column_engraver
Generates NoteColumn, an objects that groups stems, noteheads and rests.

This engraver creates the following layout objects: NoteColumn and NoteSpacing.

Script_column_engraver

This engraver creates the following layout objects: ScriptColumn.

Script_engraver
Handles note scripted articulations.

Music types accepted:

articulation-event and script-event

Properties (read)

scriptDefinitions (list)
Description of scripts. This is used by Script_engraver for typesetting note-super/subscripts. See scm/script.scm for more information
This engraver creates the following layout objects: Script.
Dynamic_engraver
This engraver creates hairpins, dynamic texts, and their vertical alignments. The symbols are collected onto a DynamicLineSpanner grob which takes care of vertical positioning.

Music types accepted:

decrescendo-event, crescendo-event and absolute-dynamic-event

This engraver creates the following layout objects: DynamicLineSpanner, DynamicText, Hairpin and TextSpanner.

Text_engraver
Create text-scripts

Music types accepted:

text-script-event

This engraver creates the following layout objects: TextScript.

Part_combine_engraver
Part combine engraver for orchestral scores: Print markings a2, Solo, Solo II, and unisono

Music types accepted:

part-combine-event

Properties (read)

soloADue (boolean)
set Solo/A due texts in the part combiner?
This engraver creates the following layout objects: CombineTextScript.
Melisma_translator
This translator collects melisma information about ties, beams, and user settings (melismaBusy, and signals it to the ddlyrics code.

Music types accepted:

melisma-span-event and melisma-playing-event

Properties (read)

beamMelismaBusy (boolean)
Signal if a beam is present.
tieMelismaBusy (boolean)
Signal whether a tie is present.
slurMelismaBusy (boolean)
Signal if a slur is present.
melismaBusyProperties (list)
List of properties (symbols) to determine whether a melisma is playing. Setting this property will influence how lyrics are aligned to notes. For example, if set to #'(melismaBusy beamMelismaBusy), only manual melismata and manual beams are considered. Possible values include melismaBusy, slurMelismaBusy, tieMelismaBusy, and beamMelismaBusy
melismaBusy (boolean)
Signifies whether a melisma is active. This can be used to signal melismas on top of those automatically detected.

Slash_repeat_engraver
Make beat repeats.

Music types accepted:

repeated-music

Properties (read)

measureLength (moment)
Length of one measure in the current time signature.
This engraver creates the following layout objects: RepeatSlash.
Percent_repeat_engraver
Make whole bar and double bar repeats.

Music types accepted:

repeated-music

Properties (read)

currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
measureLength (moment)
Length of one measure in the current time signature.
This engraver creates the following layout objects: DoublePercentRepeat and PercentRepeat.
Chord_tremolo_engraver
Generates beams for tremolo repeats.

Music types accepted:

repeated-music

This engraver creates the following layout objects: Beam.

Auto_beam_engraver
Generate beams based on measure characteristics and observed Stems. Uses beatLength, measureLength and measurePosition to decide when to start and stop a beam. Overriding beaming is done through Stem_engraver properties stemLeftBeamCount and stemRightBeamCount.

Music types accepted:

beam-forbid-event

Properties (read)

subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
beatLength (moment)
The length of one beat in this time signature.
autoBeamSettings (list)
Specifies when automatically generated beams should begin and end. See Setting automatic beam behavior for more information.
autoBeaming (boolean)
If set to true then beams are generated automatically.
This engraver creates the following layout objects: Beam.
Grace_beam_engraver
Handles Beam events by engraving Beams. If omitted, then notes will be printed with flags instead of beams. Only engraves beams when we are at grace points in time.

Music types accepted:

beam-event

Properties (read)

subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
allowBeamBreak (boolean)
If true allow line breaks for beams over bar lines.
beatLength (moment)
The length of one beat in this time signature.
beamMelismaBusy (boolean)
Signal if a beam is present.
This engraver creates the following layout objects: Beam.
Beam_engraver
Handles Beam events by engraving Beams. If omitted, then notes will be printed with flags instead of beams.

Music types accepted:

beam-event

Properties (read)

subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
beatLength (moment)
The length of one beat in this time signature.
beamMelismaBusy (boolean)
Signal if a beam is present.
This engraver creates the following layout objects: Beam.
Stem_engraver
Create stems and single-stem tremolos. It also works together with the beam engraver for overriding beaming.

Music types accepted:

tremolo-event

Properties (read)

stemRightBeamCount (integer)
See stemLeftBeamCount.
stemLeftBeamCount (integer)
Specify the number of beams to draw on the left side of the next note. Overrides automatic beaming. The value is only used once, and then it is erased.
tremoloFlags (integer)
Number of tremolo flags to add if no number is specified.
This engraver creates the following layout objects: Stem and StemTremolo.
Rest_engraver

Music types accepted:

rest-event

Properties (read)

middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
This engraver creates the following layout objects: Dots and Rest.
Breathing_sign_engraver

Music types accepted:

breathing-event

This engraver creates the following layout objects: BreathingSign.

Ligature_bracket_engraver
Handles Ligature_events by engraving Ligature brackets.

Music types accepted:

ligature-event

This engraver creates the following layout objects: TupletBracket.

Glissando_engraver
Engrave a glissandi

Music types accepted:

glissando-event

Properties (read)

followVoice (boolean)
if set, note heads are tracked across staff switches by a thin line
This engraver creates the following layout objects: Glissando.
Note_head_line_engraver
Engrave a line between two note heads, for example a glissando. If followVoice is set, staff switches also generate a line.

Music types accepted:

glissando-event

Properties (read)

followVoice (boolean)
if set, note heads are tracked across staff switches by a thin line
This engraver creates the following layout objects: Glissando and VoiceFollower.
Forbid_line_break_engraver
Forbid line breaks when note heads are still playing at some point.

Properties (read)

busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)

Grob_pq_engraver
Administrate when certain grobs (eg. note heads) stop playing; this engraver is a sort-of a failure, since it doesn't handle all sorts of borderline cases very well.

Properties (read)

busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)
Properties (write)
busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)

Text_spanner_engraver
Create text spanner from a Music.

Music types accepted:

text-span-event

This engraver creates the following layout objects: TextSpanner.

Multi_measure_rest_engraver
Engraves multi-measure rests that are produced with R. Reads measurePosition and currentBarNumber to determine what number to print over the MultiMeasureRest. Reads measureLength to determine if it should use a whole rest or a breve rest to represent 1 measure

Music types accepted:

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

Properties (read)

measureLength (moment)
Length of one measure in the current time signature.
measurePosition (moment)
How much of the current measure have we had. This can be set manually to create incomplete measures.
currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
restNumberThreshold (number)
If a multimeasure rest takes less than this number of measures, no number is printed.
currentBarNumber (integer)
Contains the current barnumber. This property is incremented at every bar line.
This engraver creates the following layout objects: MultiMeasureRest, MultiMeasureRestNumber and MultiMeasureRestText.
Arpeggio_engraver
Generate an Arpeggio from a Arpeggio_req

Music types accepted:

arpeggio-event

This engraver creates the following layout objects: Arpeggio.

Output_property_engraver
Interpret Music of Output_property type, and apply a function to any Graphic objects that satisfies the predicate.

Music types accepted:

layout-instruction

Font_size_engraver
Puts fontSize into font-relative-size grob property.

Properties (read)

fontSize (number)
The relative size of all grobs in a context.

VaticanaStaff

Same as Staff context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana.

This context is also known as:

Staff

This context creates the following layout objects:

Accidental, BarLine, Clef, Custos, DotColumn, InstrumentName, KeySignature, NoteCollision, OctavateEight, OttavaBracket, RestCollision, SeparatingGroupSpanner, SeparationItem, SostenutoPedalLineSpanner, SostenutoPedal, StaffSpacing, StaffSymbol, SustainPedalLineSpanner, SustainPedal, UnaCordaPedalLineSpanner, UnaCordaPedal, VerticalAxisGroup and VoltaBracket.

This context sets the following properties:

Context VaticanaStaff can contain VaticanaVoice

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
Custos_engraver

This engraver creates the following layout objects: Custos.

String_number_engraver
Swallow string-number-events - the purpose of this engraver is to process tab for normal notation. To provent warnings for unprocessed string-number-event to obscure real error messages, this engraver swallows them all.

Music types accepted:

string-number-event

Instrument_name_engraver
Prints the name of the instrument (specified by Staff.instrument and Staff.instr) at the left of the staff.

Properties (read)

instr (markup)
See instrument
instrument (markup)
The name to print left of a staff. The instrument property labels the staff in the first system, and the instr property labels following lines.
This engraver creates the following layout objects: InstrumentName.
Piano_pedal_engraver
Engrave piano pedal symbols and brackets.

Music types accepted:

pedal-event

Properties (read)

pedalUnaCordaStyle (symbol)
see pedalSustainStyle.
pedalSustainStyle (symbol)
A symbol that indicates how to print sustain pedals: text, bracket or mixed (both).
pedalSostenutoStyle (symbol)
see pedalSustainStyle.
pedalUnaCordaStrings (list)
See pedalSustainStrings.
pedalSustainStrings (list)
List of string 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.
pedalSostenutoStrings (list)
See pedalSustainStrings.
currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
This engraver creates the following layout objects: SostenutoPedal, SostenutoPedalLineSpanner, SustainPedal, SustainPedalLineSpanner, UnaCordaPedal and UnaCordaPedalLineSpanner.
Accidental_engraver
Make accidentals. Catches 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)

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.
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 rule consists of

context:
In which context is the rule 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.
octavation:
Whether the accidental changes all octaves or only the current octave. Valid choices are
same-octave:
This is the default algorithm. Accidentals are typeset if the note changes the accidental of that note in that octave. Accidentals lasts to the end of the measure and then as many measures as specified in the value. I.e. 1 means to the end of next measure, -1 means to the end of previous measure (that is: no duration at all), etc. #t means forever.
any-octave:
Accidentals are typeset if the note is different from the previous note on the same pitch in any octave. The value has same meaning as in same-octave.

laziness
Over how many bar lines the accidental lasts. If laziness is -1 then the accidental is forget immediately, and if laziness is #t then the accidental lasts forever.

extraNatural (boolean)
Whether to typeset an extra natural sign before accidentals changing from a non-natural to another non-natural.
harmonicAccidentals (boolean)
If set, harmonic notes in chords get accidentals.
localKeySignature (list)
the key signature at this point in the measure. The format is the same as for keySignature, but can also contain ((octave . name) . (alter . barnumber)) pairs. It is reset at every bar line.
Properties (write)
localKeySignature (list)
the key signature at this point in the measure. The format is the same as for keySignature, but can also contain ((octave . name) . (alter . barnumber)) pairs. It is reset at every bar line.
This engraver creates the following layout objects: Accidental.
Rest_collision_engraver
Handles collisions of rests.

This engraver creates the following layout objects: RestCollision.

Collision_engraver

This engraver creates the following layout objects: NoteCollision.

Staff_symbol_engraver
Create the constellation of five (default) staff lines.

This engraver creates the following layout objects: StaffSymbol.

Key_engraver

Music types accepted:

key-change-event

Properties (read)

keySignature (list)
The current key signature. This is an alist containing (name . alter) or ((octave . name) . alter). where name is from 0.. 6 and alter from -4 (double flat) to 4 (double sharp).
keyAccidentalOrder (list)
Alist that defines in what order alterations should be printed. The format is (name . alter), where name is from 0 .. 6 and alter from -1, 1.
createKeyOnClefChange (boolean)
Print a key signature whenever the clef is changed.
explicitKeySignatureVisibility (procedure)
break-visibility function for explicit key changes. \override of #'break-visibility will set the visibility for normal (i.e. at the start of the line) key signatures.
lastKeySignature (list)
Last key signature before a key signature change.
printKeyCancellation (boolean)
Print restoration alterations before a key signature change.
keySignature (list)
The current key signature. This is an alist containing (name . alter) or ((octave . name) . alter). where name is from 0.. 6 and alter from -4 (double flat) to 4 (double sharp).
Properties (write)
keySignature (list)
The current key signature. This is an alist containing (name . alter) or ((octave . name) . alter). where name is from 0.. 6 and alter from -4 (double flat) to 4 (double sharp).
tonic (pitch)
The tonic of the current scale
lastKeySignature (list)
Last key signature before a key signature change.
This engraver creates the following layout objects: KeySignature.
Clef_engraver
Determine and set reference point for pitches

Properties (read)

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.
explicitClefVisibility (procedure)
break-visibility function for clef changes.
clefOctavation (integer)
Add this much extra octavation. Values of 7 and -7 are common.
middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
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.
This engraver creates the following layout objects: Clef and OctavateEight.
Ottava_spanner_engraver
Create a text spanner when the ottavation property changes..

Properties (read)

ottavation (string)
If set, the text for an ottava spanner. Changing this creates a new text spanner.
This engraver creates the following layout objects: OttavaBracket.
Dot_column_engraver
Engraves 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 objects: DotColumn.

Separating_line_group_engraver
Generates objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)
Create StaffSpacing objects? Should be set for staves.
Properties (write)
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
This engraver creates the following layout objects: SeparatingGroupSpanner, SeparationItem and StaffSpacing.
Volta_engraver
Make volta brackets

Properties (read)

stavesFound (list of grobs)
list of all staff-symbols found.
voltaSpannerDuration (moment)
This specifies the maximum duration to use for the brackets printed for \alternative. This can be used to shrink the length of brackets in the situation where one alternative is very large.
repeatCommands (list)
This property is read to find any command of the form (volta . x), where x is a string or #f
This engraver creates the following layout objects: VoltaBracket.
Font_size_engraver
Puts fontSize into font-relative-size grob property.

Properties (read)

fontSize (number)
The relative size of all grobs in a context.

Bar_engraver
Create barlines. This engraver is controlled through the whichBar property. If it has no bar line to create, it will forbid a linebreak at this point

Properties (read)

whichBar (string)
This property is read to determine what type of bar line to create.

Example:

               \set Staff.whichBar = "|:"
          

This will create a start-repeat bar in this staff only. Valid values are described in bar-line-interface.

This engraver creates the following layout objects: BarLine.
Output_property_engraver
Interpret Music of Output_property type, and apply a function to any Graphic objects that satisfies the predicate.

Music types accepted:

layout-instruction

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

Properties (read)

extraVerticalExtent (pair of numbers)
extra vertical extent, same format as minimumVerticalExtent
minimumVerticalExtent (pair of numbers)
minimum vertical extent, same format as verticalExtent
verticalExtent (pair of numbers)
Hard coded vertical extent. The format is a pair of dimensions, for example, this sets the sizes of a staff to 10 (5+5) staffspaces high.
               \set Staff.verticalExtent = #'(-5.0 . 5.0)
          

This does not work for Voice or any other context that doesn't form a vertical group.

This engraver creates the following layout objects: VerticalAxisGroup.

VaticanaVoice

Same as Voice context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana.

This context is also known as:

Voice

This context creates the following layout objects:

Arpeggio, Beam, BreathingSign, ClusterSpannerBeacon, ClusterSpanner, CombineTextScript, Dots, DoublePercentRepeat, DynamicLineSpanner, DynamicText, Fingering, Glissando, Hairpin, MultiMeasureRestNumber, MultiMeasureRestText, MultiMeasureRest, NoteColumn, NoteHead, NoteSpacing, PercentRepeat, PhrasingSlur, RepeatSlash, Rest, ScriptColumn, Script, TextScript, TextSpanner, TieColumn, Tie, TupletBracket, VaticanaLigature and VoiceFollower.

This context sets the following properties:

This context is a `bottom' context; it can not contain other contexts.

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
Vaticana_ligature_engraver
Handles ligatures by glueing special ligature heads together.

Music types accepted:

ligature-event

This engraver creates the following layout objects: VaticanaLigature.

Skip_event_swallow_translator
Swallow \skip.

Music types accepted:

skip-event

Tuplet_engraver
Catch Time_scaled_music and generate appropriate bracket

Music types accepted:

time-scaled-music

Properties (read)

tupletSpannerDuration (moment)
Normally a tuplet bracket is as wide as the \times expression that gave rise to it. By setting this property, you can make brackets last shorter. Example
               @lilypond[verbatim,fragment]
               context Voice \times 2/3 {
                 property Voice.tupletSpannerDuration = #(ly:make-moment 1 4)
                 c-[8 c c-] c-[ c c-]
               }
               @end lilypond
          

.

tupletNumberFormatFunction (procedure)
Function taking a music as input, producing a string. This function is called to determine the text to print on a tuplet bracket.
This engraver creates the following layout objects: TupletBracket.
Tie_engraver
Generate ties between noteheads of equal pitch.

Music types accepted:

tie-event

Properties (read)

tieMelismaBusy (boolean)
Signal whether a tie is present.
This engraver creates the following layout objects: Tie and TieColumn.
Cluster_spanner_engraver
Engraves a cluster using Spanner notation

Music types accepted:

cluster-note-event

This engraver creates the following layout objects: ClusterSpanner and ClusterSpannerBeacon.

Phrasing_slur_engraver
Print phrasing slurs. Similar to Slur_engraver

Music types accepted:

phrasing-slur-event

This engraver creates the following layout objects: PhrasingSlur.

Rhythmic_column_engraver
Generates NoteColumn, an objects that groups stems, noteheads and rests.

This engraver creates the following layout objects: NoteColumn and NoteSpacing.

Script_column_engraver

This engraver creates the following layout objects: ScriptColumn.

Script_engraver
Handles note scripted articulations.

Music types accepted:

articulation-event and script-event

Properties (read)

scriptDefinitions (list)
Description of scripts. This is used by Script_engraver for typesetting note-super/subscripts. See scm/script.scm for more information
This engraver creates the following layout objects: Script.
Fingering_engraver
Create fingering-scripts

Music types accepted:

fingering-event

This engraver creates the following layout objects: Fingering.

Dynamic_engraver
This engraver creates hairpins, dynamic texts, and their vertical alignments. The symbols are collected onto a DynamicLineSpanner grob which takes care of vertical positioning.

Music types accepted:

decrescendo-event, crescendo-event and absolute-dynamic-event

This engraver creates the following layout objects: DynamicLineSpanner, DynamicText, Hairpin and TextSpanner.

Text_engraver
Create text-scripts

Music types accepted:

text-script-event

This engraver creates the following layout objects: TextScript.

Part_combine_engraver
Part combine engraver for orchestral scores: Print markings a2, Solo, Solo II, and unisono

Music types accepted:

part-combine-event

Properties (read)

soloADue (boolean)
set Solo/A due texts in the part combiner?
This engraver creates the following layout objects: CombineTextScript.
Melisma_translator
This translator collects melisma information about ties, beams, and user settings (melismaBusy, and signals it to the ddlyrics code.

Music types accepted:

melisma-span-event and melisma-playing-event

Properties (read)

beamMelismaBusy (boolean)
Signal if a beam is present.
tieMelismaBusy (boolean)
Signal whether a tie is present.
slurMelismaBusy (boolean)
Signal if a slur is present.
melismaBusyProperties (list)
List of properties (symbols) to determine whether a melisma is playing. Setting this property will influence how lyrics are aligned to notes. For example, if set to #'(melismaBusy beamMelismaBusy), only manual melismata and manual beams are considered. Possible values include melismaBusy, slurMelismaBusy, tieMelismaBusy, and beamMelismaBusy
melismaBusy (boolean)
Signifies whether a melisma is active. This can be used to signal melismas on top of those automatically detected.

Slash_repeat_engraver
Make beat repeats.

Music types accepted:

repeated-music

Properties (read)

measureLength (moment)
Length of one measure in the current time signature.
This engraver creates the following layout objects: RepeatSlash.
Percent_repeat_engraver
Make whole bar and double bar repeats.

Music types accepted:

repeated-music

Properties (read)

currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
measureLength (moment)
Length of one measure in the current time signature.
This engraver creates the following layout objects: DoublePercentRepeat and PercentRepeat.
Chord_tremolo_engraver
Generates beams for tremolo repeats.

Music types accepted:

repeated-music

This engraver creates the following layout objects: Beam.

New_fingering_engraver
Create fingering-scripts for notes in a new chord. This engraver is ill-named, since it also takes care of articulations and harmonic note heads

Properties (read)

fingeringOrientations (list)
List of symbols, containing left, right, up and/or down. This list determines where fingerings are put relative to the chord being fingered.
This engraver creates the following layout objects: Fingering.
Auto_beam_engraver
Generate beams based on measure characteristics and observed Stems. Uses beatLength, measureLength and measurePosition to decide when to start and stop a beam. Overriding beaming is done through Stem_engraver properties stemLeftBeamCount and stemRightBeamCount.

Music types accepted:

beam-forbid-event

Properties (read)

subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
beatLength (moment)
The length of one beat in this time signature.
autoBeamSettings (list)
Specifies when automatically generated beams should begin and end. See Setting automatic beam behavior for more information.
autoBeaming (boolean)
If set to true then beams are generated automatically.
This engraver creates the following layout objects: Beam.
Grace_beam_engraver
Handles Beam events by engraving Beams. If omitted, then notes will be printed with flags instead of beams. Only engraves beams when we are at grace points in time.

Music types accepted:

beam-event

Properties (read)

subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
allowBeamBreak (boolean)
If true allow line breaks for beams over bar lines.
beatLength (moment)
The length of one beat in this time signature.
beamMelismaBusy (boolean)
Signal if a beam is present.
This engraver creates the following layout objects: Beam.
Beam_engraver
Handles Beam events by engraving Beams. If omitted, then notes will be printed with flags instead of beams.

Music types accepted:

beam-event

Properties (read)

subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
beatLength (moment)
The length of one beat in this time signature.
beamMelismaBusy (boolean)
Signal if a beam is present.
This engraver creates the following layout objects: Beam.
Rest_engraver

Music types accepted:

rest-event

Properties (read)

middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
This engraver creates the following layout objects: Dots and Rest.
Note_heads_engraver
Generate noteheads.

Music types accepted:

busy-playing-event and note-event

Properties (read)

middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
This engraver creates the following layout objects: Dots and NoteHead.
Breathing_sign_engraver

Music types accepted:

breathing-event

This engraver creates the following layout objects: BreathingSign.

Glissando_engraver
Engrave a glissandi

Music types accepted:

glissando-event

Properties (read)

followVoice (boolean)
if set, note heads are tracked across staff switches by a thin line
This engraver creates the following layout objects: Glissando.
Note_head_line_engraver
Engrave a line between two note heads, for example a glissando. If followVoice is set, staff switches also generate a line.

Music types accepted:

glissando-event

Properties (read)

followVoice (boolean)
if set, note heads are tracked across staff switches by a thin line
This engraver creates the following layout objects: Glissando and VoiceFollower.
Forbid_line_break_engraver
Forbid line breaks when note heads are still playing at some point.

Properties (read)

busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)

Grob_pq_engraver
Administrate when certain grobs (eg. note heads) stop playing; this engraver is a sort-of a failure, since it doesn't handle all sorts of borderline cases very well.

Properties (read)

busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)
Properties (write)
busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)

Text_spanner_engraver
Create text spanner from a Music.

Music types accepted:

text-span-event

This engraver creates the following layout objects: TextSpanner.

Multi_measure_rest_engraver
Engraves multi-measure rests that are produced with R. Reads measurePosition and currentBarNumber to determine what number to print over the MultiMeasureRest. Reads measureLength to determine if it should use a whole rest or a breve rest to represent 1 measure

Music types accepted:

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

Properties (read)

measureLength (moment)
Length of one measure in the current time signature.
measurePosition (moment)
How much of the current measure have we had. This can be set manually to create incomplete measures.
currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
restNumberThreshold (number)
If a multimeasure rest takes less than this number of measures, no number is printed.
currentBarNumber (integer)
Contains the current barnumber. This property is incremented at every bar line.
This engraver creates the following layout objects: MultiMeasureRest, MultiMeasureRestNumber and MultiMeasureRestText.
Arpeggio_engraver
Generate an Arpeggio from a Arpeggio_req

Music types accepted:

arpeggio-event

This engraver creates the following layout objects: Arpeggio.

Output_property_engraver
Interpret Music of Output_property type, and apply a function to any Graphic objects that satisfies the predicate.

Music types accepted:

layout-instruction

Font_size_engraver
Puts fontSize into font-relative-size grob property.

Properties (read)

fontSize (number)
The relative size of all grobs in a context.

Voice

Corresponds to a voice on a staff. This context handles the conversion of dynamic signs, stems, beams, super- and subscripts, slurs, ties, and rests.

You have to instantiate this explicitly if you want to have multiple voices on the same staff.

This context creates the following layout objects:

Arpeggio, Beam, BreathingSign, ClusterSpannerBeacon, ClusterSpanner, CombineTextScript, Dots, DoublePercentRepeat, DynamicLineSpanner, DynamicText, Fingering, Glissando, Hairpin, MultiMeasureRestNumber, MultiMeasureRestText, MultiMeasureRest, NoteColumn, NoteHead, NoteSpacing, PercentRepeat, PhrasingSlur, RepeatSlash, Rest, ScriptColumn, Script, Slur, StemTremolo, Stem, TextScript, TextSpanner, TieColumn, Tie, TupletBracket and VoiceFollower.

This context sets the following properties:

This context is a `bottom' context; it can not contain other contexts.

This context is built from the following engravers:

Engraver_group_engraver
A group of engravers taken together
Skip_event_swallow_translator
Swallow \skip.

Music types accepted:

skip-event

Tuplet_engraver
Catch Time_scaled_music and generate appropriate bracket

Music types accepted:

time-scaled-music

Properties (read)

tupletSpannerDuration (moment)
Normally a tuplet bracket is as wide as the \times expression that gave rise to it. By setting this property, you can make brackets last shorter. Example
               @lilypond[verbatim,fragment]
               context Voice \times 2/3 {
                 property Voice.tupletSpannerDuration = #(ly:make-moment 1 4)
                 c-[8 c c-] c-[ c c-]
               }
               @end lilypond
          

.

tupletNumberFormatFunction (procedure)
Function taking a music as input, producing a string. This function is called to determine the text to print on a tuplet bracket.
This engraver creates the following layout objects: TupletBracket.
Tie_engraver
Generate ties between noteheads of equal pitch.

Music types accepted:

tie-event

Properties (read)

tieMelismaBusy (boolean)
Signal whether a tie is present.
This engraver creates the following layout objects: Tie and TieColumn.
Slur_engraver
Build slurs from Slur_evs

Music types accepted:

slur-event

Properties (read)

slurMelismaBusy (boolean)
Signal if a slur is present.
This engraver creates the following layout objects: Slur.
Cluster_spanner_engraver
Engraves a cluster using Spanner notation

Music types accepted:

cluster-note-event

This engraver creates the following layout objects: ClusterSpanner and ClusterSpannerBeacon.

Phrasing_slur_engraver
Print phrasing slurs. Similar to Slur_engraver

Music types accepted:

phrasing-slur-event

This engraver creates the following layout objects: PhrasingSlur.

Rhythmic_column_engraver
Generates NoteColumn, an objects that groups stems, noteheads and rests.

This engraver creates the following layout objects: NoteColumn and NoteSpacing.

Script_column_engraver

This engraver creates the following layout objects: ScriptColumn.

Script_engraver
Handles note scripted articulations.

Music types accepted:

articulation-event and script-event

Properties (read)

scriptDefinitions (list)
Description of scripts. This is used by Script_engraver for typesetting note-super/subscripts. See scm/script.scm for more information
This engraver creates the following layout objects: Script.
Fingering_engraver
Create fingering-scripts

Music types accepted:

fingering-event

This engraver creates the following layout objects: Fingering.

Dynamic_engraver
This engraver creates hairpins, dynamic texts, and their vertical alignments. The symbols are collected onto a DynamicLineSpanner grob which takes care of vertical positioning.

Music types accepted:

decrescendo-event, crescendo-event and absolute-dynamic-event

This engraver creates the following layout objects: DynamicLineSpanner, DynamicText, Hairpin and TextSpanner.

Text_engraver
Create text-scripts

Music types accepted:

text-script-event

This engraver creates the following layout objects: TextScript.

Part_combine_engraver
Part combine engraver for orchestral scores: Print markings a2, Solo, Solo II, and unisono

Music types accepted:

part-combine-event

Properties (read)

soloADue (boolean)
set Solo/A due texts in the part combiner?
This engraver creates the following layout objects: CombineTextScript.
Melisma_translator
This translator collects melisma information about ties, beams, and user settings (melismaBusy, and signals it to the ddlyrics code.

Music types accepted:

melisma-span-event and melisma-playing-event

Properties (read)

beamMelismaBusy (boolean)
Signal if a beam is present.
tieMelismaBusy (boolean)
Signal whether a tie is present.
slurMelismaBusy (boolean)
Signal if a slur is present.
melismaBusyProperties (list)
List of properties (symbols) to determine whether a melisma is playing. Setting this property will influence how lyrics are aligned to notes. For example, if set to #'(melismaBusy beamMelismaBusy), only manual melismata and manual beams are considered. Possible values include melismaBusy, slurMelismaBusy, tieMelismaBusy, and beamMelismaBusy
melismaBusy (boolean)
Signifies whether a melisma is active. This can be used to signal melismas on top of those automatically detected.

Slash_repeat_engraver
Make beat repeats.

Music types accepted:

repeated-music

Properties (read)

measureLength (moment)
Length of one measure in the current time signature.
This engraver creates the following layout objects: RepeatSlash.
Percent_repeat_engraver
Make whole bar and double bar repeats.

Music types accepted:

repeated-music

Properties (read)

currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
measureLength (moment)
Length of one measure in the current time signature.
This engraver creates the following layout objects: DoublePercentRepeat and PercentRepeat.
Chord_tremolo_engraver
Generates beams for tremolo repeats.

Music types accepted:

repeated-music

This engraver creates the following layout objects: Beam.

New_fingering_engraver
Create fingering-scripts for notes in a new chord. This engraver is ill-named, since it also takes care of articulations and harmonic note heads

Properties (read)

fingeringOrientations (list)
List of symbols, containing left, right, up and/or down. This list determines where fingerings are put relative to the chord being fingered.
This engraver creates the following layout objects: Fingering.
Auto_beam_engraver
Generate beams based on measure characteristics and observed Stems. Uses beatLength, measureLength and measurePosition to decide when to start and stop a beam. Overriding beaming is done through Stem_engraver properties stemLeftBeamCount and stemRightBeamCount.

Music types accepted:

beam-forbid-event

Properties (read)

subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
beatLength (moment)
The length of one beat in this time signature.
autoBeamSettings (list)
Specifies when automatically generated beams should begin and end. See Setting automatic beam behavior for more information.
autoBeaming (boolean)
If set to true then beams are generated automatically.
This engraver creates the following layout objects: Beam.
Grace_beam_engraver
Handles Beam events by engraving Beams. If omitted, then notes will be printed with flags instead of beams. Only engraves beams when we are at grace points in time.

Music types accepted:

beam-event

Properties (read)

subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
allowBeamBreak (boolean)
If true allow line breaks for beams over bar lines.
beatLength (moment)
The length of one beat in this time signature.
beamMelismaBusy (boolean)
Signal if a beam is present.
This engraver creates the following layout objects: Beam.
Beam_engraver
Handles Beam events by engraving Beams. If omitted, then notes will be printed with flags instead of beams.

Music types accepted:

beam-event

Properties (read)

subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
beatLength (moment)
The length of one beat in this time signature.
beamMelismaBusy (boolean)
Signal if a beam is present.
This engraver creates the following layout objects: Beam.
Stem_engraver
Create stems and single-stem tremolos. It also works together with the beam engraver for overriding beaming.

Music types accepted:

tremolo-event

Properties (read)

stemRightBeamCount (integer)
See stemLeftBeamCount.
stemLeftBeamCount (integer)
Specify the number of beams to draw on the left side of the next note. Overrides automatic beaming. The value is only used once, and then it is erased.
tremoloFlags (integer)
Number of tremolo flags to add if no number is specified.
This engraver creates the following layout objects: Stem and StemTremolo.
Rest_engraver

Music types accepted:

rest-event

Properties (read)

middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
This engraver creates the following layout objects: Dots and Rest.
Note_heads_engraver
Generate noteheads.

Music types accepted:

busy-playing-event and note-event

Properties (read)

middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
This engraver creates the following layout objects: Dots and NoteHead.
Breathing_sign_engraver

Music types accepted:

breathing-event

This engraver creates the following layout objects: BreathingSign.

Ligature_bracket_engraver
Handles Ligature_events by engraving Ligature brackets.

Music types accepted:

ligature-event

This engraver creates the following layout objects: TupletBracket.

Glissando_engraver
Engrave a glissandi

Music types accepted:

glissando-event

Properties (read)

followVoice (boolean)
if set, note heads are tracked across staff switches by a thin line
This engraver creates the following layout objects: Glissando.
Note_head_line_engraver
Engrave a line between two note heads, for example a glissando. If followVoice is set, staff switches also generate a line.

Music types accepted:

glissando-event

Properties (read)

followVoice (boolean)
if set, note heads are tracked across staff switches by a thin line
This engraver creates the following layout objects: Glissando and VoiceFollower.
Forbid_line_break_engraver
Forbid line breaks when note heads are still playing at some point.

Properties (read)

busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)

Grob_pq_engraver
Administrate when certain grobs (eg. note heads) stop playing; this engraver is a sort-of a failure, since it doesn't handle all sorts of borderline cases very well.

Properties (read)

busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)
Properties (write)
busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)

Text_spanner_engraver
Create text spanner from a Music.

Music types accepted:

text-span-event

This engraver creates the following layout objects: TextSpanner.

Multi_measure_rest_engraver
Engraves multi-measure rests that are produced with R. Reads measurePosition and currentBarNumber to determine what number to print over the MultiMeasureRest. Reads measureLength to determine if it should use a whole rest or a breve rest to represent 1 measure

Music types accepted:

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

Properties (read)

measureLength (moment)
Length of one measure in the current time signature.
measurePosition (moment)
How much of the current measure have we had. This can be set manually to create incomplete measures.
currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
restNumberThreshold (number)
If a multimeasure rest takes less than this number of measures, no number is printed.
currentBarNumber (integer)
Contains the current barnumber. This property is incremented at every bar line.
This engraver creates the following layout objects: MultiMeasureRest, MultiMeasureRestNumber and MultiMeasureRestText.
Arpeggio_engraver
Generate an Arpeggio from a Arpeggio_req

Music types accepted:

arpeggio-event

This engraver creates the following layout objects: Arpeggio.

Output_property_engraver
Interpret Music of Output_property type, and apply a function to any Graphic objects that satisfies the predicate.

Music types accepted:

layout-instruction

Font_size_engraver
Puts fontSize into font-relative-size grob property.

Properties (read)

fontSize (number)
The relative size of all grobs in a context.

Engravers

Accidental_engraver

Make accidentals. Catches 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)

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.
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 rule consists of

context:
In which context is the rule 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.
octavation:
Whether the accidental changes all octaves or only the current octave. Valid choices are
same-octave:
This is the default algorithm. Accidentals are typeset if the note changes the accidental of that note in that octave. Accidentals lasts to the end of the measure and then as many measures as specified in the value. I.e. 1 means to the end of next measure, -1 means to the end of previous measure (that is: no duration at all), etc. #t means forever.
any-octave:
Accidentals are typeset if the note is different from the previous note on the same pitch in any octave. The value has same meaning as in same-octave.

laziness
Over how many bar lines the accidental lasts. If laziness is -1 then the accidental is forget immediately, and if laziness is #t then the accidental lasts forever.

extraNatural (boolean)
Whether to typeset an extra natural sign before accidentals changing from a non-natural to another non-natural.
harmonicAccidentals (boolean)
If set, harmonic notes in chords get accidentals.
localKeySignature (list)
the key signature at this point in the measure. The format is the same as for keySignature, but can also contain ((octave . name) . (alter . barnumber)) pairs. It is reset at every bar line.
Properties (write)
localKeySignature (list)
the key signature at this point in the measure. The format is the same as for keySignature, but can also contain ((octave . name) . (alter . barnumber)) pairs. It is reset at every bar line.
This engraver creates the following layout objects: Accidental.

Accidental_engraver is part of contexts: GregorianTranscriptionStaff, Staff and VaticanaStaff

Ambitus_engraver

This engraver creates the following layout objects: Ambitus.

Ambitus_engraver is part of contexts: none

Arpeggio_engraver

Generate an Arpeggio from a Arpeggio_req

Music types accepted:

arpeggio-event

This engraver creates the following layout objects: Arpeggio.

Arpeggio_engraver is part of contexts: GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Auto_beam_engraver

Generate beams based on measure characteristics and observed Stems. Uses beatLength, measureLength and measurePosition to decide when to start and stop a beam. Overriding beaming is done through Stem_engraver properties stemLeftBeamCount and stemRightBeamCount.

Music types accepted:

beam-forbid-event

Properties (read)

subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
beatLength (moment)
The length of one beat in this time signature.
autoBeamSettings (list)
Specifies when automatically generated beams should begin and end. See Setting automatic beam behavior for more information.
autoBeaming (boolean)
If set to true then beams are generated automatically.
This engraver creates the following layout objects: Beam.

Auto_beam_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Axis_group_engraver

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

Properties (read)

extraVerticalExtent (pair of numbers)
extra vertical extent, same format as minimumVerticalExtent
minimumVerticalExtent (pair of numbers)
minimum vertical extent, same format as verticalExtent
verticalExtent (pair of numbers)
Hard coded vertical extent. The format is a pair of dimensions, for example, this sets the sizes of a staff to 10 (5+5) staffspaces high.
          \set Staff.verticalExtent = #'(-5.0 . 5.0)
     

This does not work for Voice or any other context that doesn't form a vertical group.

This engraver creates the following layout objects: VerticalAxisGroup.

Axis_group_engraver is part of contexts: DrumStaff, GregorianTranscriptionStaff, NoteNames, RhythmicStaff, Staff, TabStaff and VaticanaStaff

Bar_engraver

Create barlines. This engraver is controlled through the whichBar property. If it has no bar line to create, it will forbid a linebreak at this point

Properties (read)

whichBar (string)
This property is read to determine what type of bar line to create.

Example:

          \set Staff.whichBar = "|:"
     

This will create a start-repeat bar in this staff only. Valid values are described in bar-line-interface.

This engraver creates the following layout objects: BarLine.

Bar_engraver is part of contexts: DrumStaff, GregorianTranscriptionStaff, RhythmicStaff, Staff, TabStaff and VaticanaStaff

Bar_number_engraver

A bar number is created whenever measurePosition is zero. It is put on top of all staves, and appears only at left side of the staff. The staves are taken from stavesFound, which is maintained by Staff_collecting_engraver.

Properties (read)

barNumberVisibility (procedure)
Procedure that takes an int and returns whether the corresponding bar number should be printed
stavesFound (list of grobs)
list of all staff-symbols found.
currentBarNumber (integer)
Contains the current barnumber. This property is incremented at every bar line.
This engraver creates the following layout objects: BarNumber.

Bar_number_engraver is part of contexts: Score

Beam_engraver

Handles Beam events by engraving Beams. If omitted, then notes will be printed with flags instead of beams.

Music types accepted:

beam-event

Properties (read)

subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
beatLength (moment)
The length of one beat in this time signature.
beamMelismaBusy (boolean)
Signal if a beam is present.
This engraver creates the following layout objects: Beam.

Beam_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Beam_performer

Music types accepted:

beam-event

Beam_performer is part of contexts: none

Break_align_engraver

Align grobs with corresponding break-align-symbols into groups, and order the groups according to breakAlignOrder

This engraver creates the following layout objects: BreakAlignGroup, BreakAlignment and LeftEdge.

Break_align_engraver is part of contexts: Score

Breathing_sign_engraver

Music types accepted:

breathing-event

This engraver creates the following layout objects: BreathingSign.

Breathing_sign_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Chord_name_engraver

Catch note-events and generate the appropriate chordname.

Music types accepted:

note-event

Properties (read)

majorSevenSymbol (markup)
How should the major 7th be formatted in a chord name?
chordNameExceptions (list)
Alist of chord exceptions. Contains (chord . markup) entries.
chordRootNamer (procedure)
Function that converts from a pitch object to a text markup. Used for chords.
chordNoteNamer (procedure)
Function that converts from a pitch object to a text markup. Used for single pitches.
chordNameFunction (procedure)
The function that converts lists of pitches to chord names.
chordNameExceptions (list)
Alist of chord exceptions. Contains (chord . markup) entries.
chordChanges (boolean)
Only show changes in chords scheme?
This engraver creates the following layout objects: ChordName.

Chord_name_engraver is part of contexts: ChordNames

Chord_tremolo_engraver

Generates beams for tremolo repeats.

Music types accepted:

repeated-music

This engraver creates the following layout objects: Beam.

Chord_tremolo_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Clef_engraver

Determine and set reference point for pitches

Properties (read)

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.
explicitClefVisibility (procedure)
break-visibility function for clef changes.
clefOctavation (integer)
Add this much extra octavation. Values of 7 and -7 are common.
middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
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.
This engraver creates the following layout objects: Clef and OctavateEight.

Clef_engraver is part of contexts: DrumStaff, GregorianTranscriptionStaff, Staff, TabStaff and VaticanaStaff

Cluster_spanner_engraver

Engraves a cluster using Spanner notation

Music types accepted:

cluster-note-event

This engraver creates the following layout objects: ClusterSpanner and ClusterSpannerBeacon.

Cluster_spanner_engraver is part of contexts: GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Coherent_ligature_engraver

This is an abstract class. Subclasses such as Gregorian_ligature_engraver handle ligatures by glueing special ligature heads together.

Music types accepted:

ligature-event

Coherent_ligature_engraver is part of contexts: none

Collision_engraver

This engraver creates the following layout objects: NoteCollision.

Collision_engraver is part of contexts: DrumStaff, GregorianTranscriptionStaff, Staff, TabStaff and VaticanaStaff

Completion_heads_engraver

This engraver replaces Note_heads_engraver. It plays some trickery to break long notes and automatically tie them into the next measure.

Music types accepted:

note-event and busy-playing-event

Properties (read)

measureLength (moment)
Length of one measure in the current time signature.
measurePosition (moment)
How much of the current measure have we had. This can be set manually to create incomplete measures.
middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
This engraver creates the following layout objects: Dots, NoteHead and Tie.

Completion_heads_engraver is part of contexts: none

Custos_engraver

This engraver creates the following layout objects: Custos.

Custos_engraver is part of contexts: VaticanaStaff

Dot_column_engraver

Engraves 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 objects: DotColumn.

Dot_column_engraver is part of contexts: DrumStaff, GregorianTranscriptionStaff, RhythmicStaff, Staff, TabStaff and VaticanaStaff

Drum_note_performer

Play drum notes.

Music types accepted:

busy-playing-event and note-event

Drum_note_performer is part of contexts: none

Drum_notes_engraver

Generate noteheads.

Music types accepted:

busy-playing-event and note-event

Properties (read)

drumStyleTable (hash table)
A hash table containing mapping drums to layout settings. Predefined values: 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 key, and a list (notehead-style script vertical-position) as values.

This engraver creates the following layout objects: Dots, NoteHead and Script.

Drum_notes_engraver is part of contexts: DrumVoice

Dynamic_engraver

This engraver creates hairpins, dynamic texts, and their vertical alignments. The symbols are collected onto a DynamicLineSpanner grob which takes care of vertical positioning.

Music types accepted:

decrescendo-event, crescendo-event and absolute-dynamic-event

This engraver creates the following layout objects: DynamicLineSpanner, DynamicText, Hairpin and TextSpanner.

Dynamic_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Dynamic_performer

Music types accepted:

absolute-dynamic-event

Properties (read)

instrumentEqualizer (procedure)
Function taking a string (instrument name), and returning a (min . max) pair of numbers for the loudness range of the instrument.
midiInstrument (string)
Name of the MIDI instrument to use
midiMinimumVolume (number)
Sets the minimum loudness for MIDI. Ranges from 0 to 1.
midiMaximumVolume (number)
Analogous to midiMinimumVolume.
dynamicAbsoluteVolumeFunction (procedure)
[DOCUMENT-ME]

Dynamic_performer is part of contexts: none

Engraver

Engraver is part of contexts: none

Engraver_group_engraver

A group of engravers taken together

Engraver_group_engraver is part of contexts: ChoirStaff, ChordNames, Devnull, DrumStaff, DrumVoice, FiguredBass, GrandStaff, GregorianTranscriptionStaff, GregorianTranscriptionVoice, InnerChoirStaff, InnerStaffGroup, Lyrics, NoteNames, PianoStaff, RhythmicStaff, Staff, StaffGroup, TabStaff, TabVoice, VaticanaStaff, VaticanaVoice and Voice

Extender_engraver

Create lyric extenders

Music types accepted:

extender-event

This engraver creates the following layout objects: LyricExtender.

Extender_engraver is part of contexts: Lyrics

Figured_bass_engraver

Make figured bass numbers.

Music types accepted:

bass-figure-event and rest-event

Properties (read)

bassFigureFormatFunction (procedure)
Procedure that is called to produce the formatting for a BassFigure grob. It takes a list of BassFigureEvents, a context, and the grob to format.
This engraver creates the following layout objects: BassFigure.

Figured_bass_engraver is part of contexts: FiguredBass

Fingering_engraver

Create fingering-scripts

Music types accepted:

fingering-event

This engraver creates the following layout objects: Fingering.

Fingering_engraver is part of contexts: GregorianTranscriptionVoice, VaticanaVoice and Voice

Font_size_engraver

Puts fontSize into font-relative-size grob property.

Properties (read)

fontSize (number)
The relative size of all grobs in a context.

Font_size_engraver is part of contexts: DrumStaff, DrumVoice, GregorianTranscriptionStaff, GregorianTranscriptionVoice, Lyrics, Staff, TabStaff, TabVoice, VaticanaStaff, VaticanaVoice and Voice

Forbid_line_break_engraver

Forbid line breaks when note heads are still playing at some point.

Properties (read)

busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)

Forbid_line_break_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Glissando_engraver

Engrave a glissandi

Music types accepted:

glissando-event

Properties (read)

followVoice (boolean)
if set, note heads are tracked across staff switches by a thin line
This engraver creates the following layout objects: Glissando.

Glissando_engraver is part of contexts: GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Grace_beam_engraver

Handles Beam events by engraving Beams. If omitted, then notes will be printed with flags instead of beams. Only engraves beams when we are at grace points in time.

Music types accepted:

beam-event

Properties (read)

subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
allowBeamBreak (boolean)
If true allow line breaks for beams over bar lines.
beatLength (moment)
The length of one beat in this time signature.
beamMelismaBusy (boolean)
Signal if a beam is present.
This engraver creates the following layout objects: Beam.

Grace_beam_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Gregorian_ligature_engraver

This is an abstract class. Subclasses such as Vaticana_ligature_engraver handle ligatures by glueing special ligature heads together.

Music types accepted:

ligature-event

Gregorian_ligature_engraver is part of contexts: none

Grob_pq_engraver

Administrate when certain grobs (eg. note heads) stop playing; this engraver is a sort-of a failure, since it doesn't handle all sorts of borderline cases very well.

Properties (read)

busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)
Properties (write)
busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)

Grob_pq_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Hara_kiri_engraver

Like Axis_group_engraver, but make a hara-kiri spanner, and add interesting items (ie. note heads, lyric syllables and normal rests)

This engraver creates the following layout objects: RemoveEmptyVerticalGroup.

Hara_kiri_engraver is part of contexts: ChordNames, FiguredBass and Lyrics

Horizontal_bracket_engraver

Create horizontal brackets over notes for musical analysis purposes.

Music types accepted:

note-grouping-event

This engraver creates the following layout objects: HorizontalBracket.

Horizontal_bracket_engraver is part of contexts: none

Hyphen_engraver

Create lyric hyphens

Music types accepted:

hyphen-event

This engraver creates the following layout objects: LyricHyphen.

Hyphen_engraver is part of contexts: Lyrics

Instrument_name_engraver

Prints the name of the instrument (specified by Staff.instrument and Staff.instr) at the left of the staff.

Properties (read)

instr (markup)
See instrument
instrument (markup)
The name to print left of a staff. The instrument property labels the staff in the first system, and the instr property labels following lines.
This engraver creates the following layout objects: InstrumentName.

Instrument_name_engraver is part of contexts: DrumStaff, GregorianTranscriptionStaff, PianoStaff, RhythmicStaff, Staff, TabStaff and VaticanaStaff

Key_engraver

Music types accepted:

key-change-event

Properties (read)

keySignature (list)
The current key signature. This is an alist containing (name . alter) or ((octave . name) . alter). where name is from 0.. 6 and alter from -4 (double flat) to 4 (double sharp).
keyAccidentalOrder (list)
Alist that defines in what order alterations should be printed. The format is (name . alter), where name is from 0 .. 6 and alter from -1, 1.
createKeyOnClefChange (boolean)
Print a key signature whenever the clef is changed.
explicitKeySignatureVisibility (procedure)
break-visibility function for explicit key changes. \override of #'break-visibility will set the visibility for normal (i.e. at the start of the line) key signatures.
lastKeySignature (list)
Last key signature before a key signature change.
printKeyCancellation (boolean)
Print restoration alterations before a key signature change.
keySignature (list)
The current key signature. This is an alist containing (name . alter) or ((octave . name) . alter). where name is from 0.. 6 and alter from -4 (double flat) to 4 (double sharp).
Properties (write)
keySignature (list)
The current key signature. This is an alist containing (name . alter) or ((octave . name) . alter). where name is from 0.. 6 and alter from -4 (double flat) to 4 (double sharp).
tonic (pitch)
The tonic of the current scale
lastKeySignature (list)
Last key signature before a key signature change.
This engraver creates the following layout objects: KeySignature.

Key_engraver is part of contexts: GregorianTranscriptionStaff, Staff and VaticanaStaff

Key_performer

Music types accepted:

key-change-event

Key_performer is part of contexts: none

Ligature_bracket_engraver

Handles Ligature_events by engraving Ligature brackets.

Music types accepted:

ligature-event

This engraver creates the following layout objects: TupletBracket.

Ligature_bracket_engraver is part of contexts: GregorianTranscriptionVoice, TabVoice and Voice

Ligature_engraver

Abstract class; a concrete subclass handles Ligature_events by engraving Ligatures in a concrete style.

Music types accepted:

ligature-event

Ligature_engraver is part of contexts: none

Lyric_engraver

Music types accepted:

lyric-event

This engraver creates the following layout objects: LyricText.

Lyric_engraver is part of contexts: Lyrics

Lyric_performer

Music types accepted:

lyric-event

Lyric_performer is part of contexts: none

Mark_engraver

This engraver will create RehearsalMark objects. It puts them on top of all staves (which is taken from the property stavesFound). If moving this engraver to a different context, Staff_collecting_engraver must move along, otherwise all marksend up on the same Y-location

Music types accepted:

mark-event

Properties (read)

stavesFound (list of grobs)
list of all staff-symbols found.
markFormatter (procedure)
Procedure taking as arguments context and rehearsal mark. It should return the formatted mark as a markup object.
rehearsalMark (integer)
The last rehearsal mark printed.
This engraver creates the following layout objects: RehearsalMark.

Mark_engraver is part of contexts: Score

Measure_grouping_engraver

Creates Measure_grouping objects using beatGrouping property

Properties (read)

currentMusicalColumn (layout object)
Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).
measurePosition (moment)
How much of the current measure have we had. This can be set manually to create incomplete measures.
beatLength (moment)
The length of one beat in this time signature.
beatGrouping (list)
List of beatgroups, e.g., in 5/8 time '(2 3).
This engraver creates the following layout objects: MeasureGrouping.

Measure_grouping_engraver is part of contexts: none

Melisma_translator

This translator collects melisma information about ties, beams, and user settings (melismaBusy, and signals it to the ddlyrics code.

Music types accepted:

melisma-span-event and melisma-playing-event

Properties (read)

beamMelismaBusy (boolean)
Signal if a beam is present.
tieMelismaBusy (boolean)
Signal whether a tie is present.
slurMelismaBusy (boolean)
Signal if a slur is present.
melismaBusyProperties (list)
List of properties (symbols) to determine whether a melisma is playing. Setting this property will influence how lyrics are aligned to notes. For example, if set to #'(melismaBusy beamMelismaBusy), only manual melismata and manual beams are considered. Possible values include melismaBusy, slurMelismaBusy, tieMelismaBusy, and beamMelismaBusy
melismaBusy (boolean)
Signifies whether a melisma is active. This can be used to signal melismas on top of those automatically detected.

Melisma_translator is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Mensural_ligature_engraver

Handles Mensural_ligature_events by glueing special ligature heads together.

Music types accepted:

ligature-event

This engraver creates the following layout objects: MensuralLigature.

Mensural_ligature_engraver is part of contexts: none

Metronome_mark_engraver

Engrave metro nome 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:

metronome-change-event

Properties (read)

metronomeMarkFormatter (procedure)
How to produce a metronome markup. Called with 2 arguments, event and context.
stavesFound (list of grobs)
list of all staff-symbols found.
This engraver creates the following layout objects: MetronomeMark.

Metronome_mark_engraver is part of contexts: Score

Multi_measure_rest_engraver

Engraves multi-measure rests that are produced with R. Reads measurePosition and currentBarNumber to determine what number to print over the MultiMeasureRest. Reads measureLength to determine if it should use a whole rest or a breve rest to represent 1 measure

Music types accepted:

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

Properties (read)

measureLength (moment)
Length of one measure in the current time signature.
measurePosition (moment)
How much of the current measure have we had. This can be set manually to create incomplete measures.
currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
restNumberThreshold (number)
If a multimeasure rest takes less than this number of measures, no number is printed.
currentBarNumber (integer)
Contains the current barnumber. This property is incremented at every bar line.
This engraver creates the following layout objects: MultiMeasureRest, MultiMeasureRestNumber and MultiMeasureRestText.

Multi_measure_rest_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

New_fingering_engraver

Create fingering-scripts for notes in a new chord. This engraver is ill-named, since it also takes care of articulations and harmonic note heads

Properties (read)

fingeringOrientations (list)
List of symbols, containing left, right, up and/or down. This list determines where fingerings are put relative to the chord being fingered.
This engraver creates the following layout objects: Fingering.

New_fingering_engraver is part of contexts: GregorianTranscriptionVoice, VaticanaVoice and Voice

Note_head_line_engraver

Engrave a line between two note heads, for example a glissando. If followVoice is set, staff switches also generate a line.

Music types accepted:

glissando-event

Properties (read)

followVoice (boolean)
if set, note heads are tracked across staff switches by a thin line
This engraver creates the following layout objects: Glissando and VoiceFollower.

Note_head_line_engraver is part of contexts: GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Note_heads_engraver

Generate noteheads.

Music types accepted:

busy-playing-event and note-event

Properties (read)

middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
This engraver creates the following layout objects: Dots and NoteHead.

Note_heads_engraver is part of contexts: GregorianTranscriptionVoice, VaticanaVoice and Voice

Note_name_engraver

Music types accepted:

note-event

Properties (read)

printOctaveNames (boolean)
Print octave marks for the NoteNames context.
This engraver creates the following layout objects: NoteName.

Note_name_engraver is part of contexts: NoteNames

Note_performer

Music types accepted:

busy-playing-event and note-event

Note_performer is part of contexts: none

Note_swallow_translator

Swallow notes

Music types accepted:

note-event

Note_swallow_translator is part of contexts: FiguredBass

Ottava_spanner_engraver

Create a text spanner when the ottavation property changes..

Properties (read)

ottavation (string)
If set, the text for an ottava spanner. Changing this creates a new text spanner.
This engraver creates the following layout objects: OttavaBracket.

Ottava_spanner_engraver is part of contexts: GregorianTranscriptionStaff, Staff, TabStaff and VaticanaStaff

Output_property_engraver

Interpret Music of Output_property type, and apply a function to any Graphic objects that satisfies the predicate.

Music types accepted:

layout-instruction

Output_property_engraver is part of contexts: ChordNames, DrumStaff, DrumVoice, GregorianTranscriptionStaff, GregorianTranscriptionVoice, InnerStaffGroup, RhythmicStaff, Score, Staff, StaffGroup, TabStaff, TabVoice, VaticanaStaff, VaticanaVoice and Voice

Part_combine_engraver

Part combine engraver for orchestral scores: Print markings a2, Solo, Solo II, and unisono

Music types accepted:

part-combine-event

Properties (read)

soloADue (boolean)
set Solo/A due texts in the part combiner?
This engraver creates the following layout objects: CombineTextScript.

Part_combine_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Percent_repeat_engraver

Make whole bar and double bar repeats.

Music types accepted:

repeated-music

Properties (read)

currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
measureLength (moment)
Length of one measure in the current time signature.
This engraver creates the following layout objects: DoublePercentRepeat and PercentRepeat.

Percent_repeat_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Performer_group_performer

Performer_group_performer is part of contexts: none

Phrasing_slur_engraver

Print phrasing slurs. Similar to Slur_engraver

Music types accepted:

phrasing-slur-event

This engraver creates the following layout objects: PhrasingSlur.

Phrasing_slur_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Piano_pedal_engraver

Engrave piano pedal symbols and brackets.

Music types accepted:

pedal-event

Properties (read)

pedalUnaCordaStyle (symbol)
see pedalSustainStyle.
pedalSustainStyle (symbol)
A symbol that indicates how to print sustain pedals: text, bracket or mixed (both).
pedalSostenutoStyle (symbol)
see pedalSustainStyle.
pedalUnaCordaStrings (list)
See pedalSustainStrings.
pedalSustainStrings (list)
List of string 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.
pedalSostenutoStrings (list)
See pedalSustainStrings.
currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
This engraver creates the following layout objects: SostenutoPedal, SostenutoPedalLineSpanner, SustainPedal, SustainPedalLineSpanner, UnaCordaPedal and UnaCordaPedalLineSpanner.

Piano_pedal_engraver is part of contexts: GregorianTranscriptionStaff, Staff, TabStaff and VaticanaStaff

Piano_pedal_performer

Music types accepted:

pedal-event

Piano_pedal_performer is part of contexts: none

Pitch_squash_engraver

Set the vertical position of noteheads to squashedPosition, if that property is set. This can be used to make a single line staff demonstrating the rhythm of a melody.

Properties (read)

squashedPosition (integer)
Vertical position of squashing for Pitch_squash_engraver.

Pitch_squash_engraver is part of contexts: RhythmicStaff

Recording_group_engraver

Engraver_group_engraver that records all music events for this context. Calls the procedure in recordEventSequence when finished.

Properties (read)

recordEventSequence (procedure)
When Recording_group_engraver is in this context, then upon termination of the context, this function is called with current context and a list of music objects. The list of contains entries with start times, music objects and whether they are processed in this context.

Recording_group_engraver is part of contexts: none

Repeat_acknowledge_engraver

Acknowledge repeated music, and convert the contents of repeatCommands ainto an appropriate setting for whichBar.

Properties (read)

whichBar (string)
This property is read to determine what type of bar line to create.

Example:

          \set Staff.whichBar = "|:"
     

This will create a start-repeat bar in this staff only. Valid values are described in bar-line-interface.

repeatCommands (list)
This property is read to find any command of the form (volta . x), where x is a string or #f

Repeat_acknowledge_engraver is part of contexts: Score

Rest_collision_engraver

Handles collisions of rests.

This engraver creates the following layout objects: RestCollision.

Rest_collision_engraver is part of contexts: DrumStaff, GregorianTranscriptionStaff, Staff, TabStaff and VaticanaStaff

Rest_engraver

Music types accepted:

rest-event

Properties (read)

middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
This engraver creates the following layout objects: Dots and Rest.

Rest_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Rest_swallow_translator

Swallow rest

Music types accepted:

rest-event

Rest_swallow_translator is part of contexts: ChordNames, FiguredBass and NoteNames

Rhythmic_column_engraver

Generates NoteColumn, an objects that groups stems, noteheads and rests.

This engraver creates the following layout objects: NoteColumn and NoteSpacing.

Rhythmic_column_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Score_engraver

Top level engraver. Takes care of generating columns and the complete system (ie. System)

This engraver decides whether a column is breakable. The default is that a column is always breakable. However, when every Bar_engraver that does not have a barline at a certain point will call Score_engraver::forbid_breaks to stop linebreaks. In practice, this means that you can make a breakpoint by creating a barline (assuming that there are no beams or notes that prevent a breakpoint.)

Music types accepted:

break-event

Properties (read)

currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
currentMusicalColumn (layout object)
Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).
This engraver creates the following layout objects: NonMusicalPaperColumn, PaperColumn and System.

Score_engraver is part of contexts: Score

Score_performer

Score_performer is part of contexts: none

Script_column_engraver

This engraver creates the following layout objects: ScriptColumn.

Script_column_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Script_engraver

Handles note scripted articulations.

Music types accepted:

articulation-event and script-event

Properties (read)

scriptDefinitions (list)
Description of scripts. This is used by Script_engraver for typesetting note-super/subscripts. See scm/script.scm for more information
This engraver creates the following layout objects: Script.

Script_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Separating_line_group_engraver

Generates objects for computing spacing parameters.

Properties (read)

createSpacing (boolean)
Create StaffSpacing objects? Should be set for staves.
Properties (write)
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
This engraver creates the following layout objects: SeparatingGroupSpanner, SeparationItem and StaffSpacing.

Separating_line_group_engraver is part of contexts: ChordNames, DrumStaff, FiguredBass, GregorianTranscriptionStaff, Lyrics, NoteNames, RhythmicStaff, Staff, TabStaff and VaticanaStaff

Skip_event_swallow_translator

Swallow \skip.

Music types accepted:

skip-event

Skip_event_swallow_translator is part of contexts: ChordNames, DrumVoice, FiguredBass, GregorianTranscriptionVoice, Lyrics, NoteNames, TabVoice, VaticanaVoice and Voice

Slash_repeat_engraver

Make beat repeats.

Music types accepted:

repeated-music

Properties (read)

measureLength (moment)
Length of one measure in the current time signature.
This engraver creates the following layout objects: RepeatSlash.

Slash_repeat_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Slur_engraver

Build slurs from Slur_evs

Music types accepted:

slur-event

Properties (read)

slurMelismaBusy (boolean)
Signal if a slur is present.
This engraver creates the following layout objects: Slur.

Slur_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice and Voice

Slur_performer

Music types accepted:

slur-event

Slur_performer is part of contexts: none

Spacing_engraver

make a SpacingSpanner and do bookkeeping of shortest starting and playing notes

This engraver creates the following layout objects: SpacingSpanner.

Spacing_engraver is part of contexts: Score

Span_arpeggio_engraver

Properties (read)

connectArpeggios (boolean)
If set, connect arpeggios across piano staff.
This engraver creates the following layout objects: Arpeggio.

Span_arpeggio_engraver is part of contexts: GrandStaff, InnerStaffGroup, PianoStaff, Score and StaffGroup

Span_bar_engraver

This engraver makes cross-staff barlines: It catches all normal bar lines, and draws a single span-bar across them.

This engraver creates the following layout objects: SpanBar.

Span_bar_engraver is part of contexts: GrandStaff, InnerStaffGroup, PianoStaff and StaffGroup

Span_dynamic_performer

Music types accepted:

decrescendo-event and crescendo-event

Span_dynamic_performer is part of contexts: none

Staff_collecting_engraver

Maintain the stavesFound variable

Properties (read)

stavesFound (list of grobs)
list of all staff-symbols found.
Properties (write)
stavesFound (list of grobs)
list of all staff-symbols found.

Staff_collecting_engraver is part of contexts: Score

Staff_performer

Staff_performer is part of contexts: none

Staff_symbol_engraver

Create the constellation of five (default) staff lines.

This engraver creates the following layout objects: StaffSymbol.

Staff_symbol_engraver is part of contexts: DrumStaff, GregorianTranscriptionStaff, RhythmicStaff, Staff and VaticanaStaff

Stanza_number_align_engraver

This engraver ensures that stanza numbers are neatly aligned.

Stanza_number_align_engraver is part of contexts: Score

Stanza_number_engraver

Properties (read)

stanza (markup)
Stanza `number' to print before the start of a verse. Use in Lyrics context.
This engraver creates the following layout objects: StanzaNumber.

Stanza_number_engraver is part of contexts: Lyrics

Stem_engraver

Create stems and single-stem tremolos. It also works together with the beam engraver for overriding beaming.

Music types accepted:

tremolo-event

Properties (read)

stemRightBeamCount (integer)
See stemLeftBeamCount.
stemLeftBeamCount (integer)
Specify the number of beams to draw on the left side of the next note. Overrides automatic beaming. The value is only used once, and then it is erased.
tremoloFlags (integer)
Number of tremolo flags to add if no number is specified.
This engraver creates the following layout objects: Stem and StemTremolo.

Stem_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice and Voice

String_number_engraver

Swallow string-number-events - the purpose of this engraver is to process tab for normal notation. To provent warnings for unprocessed string-number-event to obscure real error messages, this engraver swallows them all.

Music types accepted:

string-number-event

String_number_engraver is part of contexts: GregorianTranscriptionStaff, Staff and VaticanaStaff

Swallow_engraver

This engraver swallows everything given to it silently. The purpose of this is to prevent spurious "event junked" warnings.

Music types accepted:

general-music

Swallow_engraver is part of contexts: Devnull

Swallow_performer

Music types accepted:

general-music

Swallow_performer is part of contexts: none

System_start_delimiter_engraver

Creates a system start delimiter (ie. SystemStart{Bar,Brace,Bracket} spanner

Properties (read)

systemStartDelimiter (symbol)
Which grob to make for the start of the system/staff? Set to SystemStartBrace, SystemStartBracket or SystemStartBar.
This engraver creates the following layout objects: SystemStartBar, SystemStartBrace and SystemStartBracket.

System_start_delimiter_engraver is part of contexts: ChoirStaff, GrandStaff, InnerChoirStaff, InnerStaffGroup, PianoStaff, Score and StaffGroup

Tab_note_heads_engraver

Generate one or more tablature noteheads from Music of type NoteEvent.

Music types accepted:

busy-playing-event, string-number-event and note-event

Properties (read)

stringOneTopmost (boolean)
Whether the 1st string is printed on the top line of the tablature.
highStringOne (boolean)
Whether the 1st string is the string with highest pitch on the instrument. This used by the automatic string selector for tab notation.
tablatureFormat (procedure)
Function formatting a tab note head; it takes a string number, a list of string tunings and Pitch object. It returns the text as a string.
minimumFret (number)
The tablature auto string-selecting mechanism selects the highest string with a fret at least minimumFret
stringTunings (list)
The tablature strings tuning. It is a list of the pitch (in semitones) of each string (starting with the lower one).
middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
This engraver creates the following layout objects: Dots and TabNoteHead.

Tab_note_heads_engraver is part of contexts: TabVoice

Tab_staff_symbol_engraver

Create a staff-symbol, but look at stringTunings for the number of lines.staff lines.

Properties (read)

stringTunings (list)
The tablature strings tuning. It is a list of the pitch (in semitones) of each string (starting with the lower one).
This engraver creates the following layout objects: StaffSymbol.

Tab_staff_symbol_engraver is part of contexts: TabStaff

Tempo_performer

Music types accepted:

metronome-change-event

Tempo_performer is part of contexts: none

Text_engraver

Create text-scripts

Music types accepted:

text-script-event

This engraver creates the following layout objects: TextScript.

Text_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Text_spanner_engraver

Create text spanner from a Music.

Music types accepted:

text-span-event

This engraver creates the following layout objects: TextSpanner.

Text_spanner_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Tie_engraver

Generate ties between noteheads of equal pitch.

Music types accepted:

tie-event

Properties (read)

tieMelismaBusy (boolean)
Signal whether a tie is present.
This engraver creates the following layout objects: Tie and TieColumn.

Tie_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, NoteNames, TabVoice, VaticanaVoice and Voice

Tie_performer

Generate ties between noteheads of equal pitch.

Music types accepted:

tie-event

Properties (read)

tieMelismaBusy (boolean)
Signal whether a tie is present.

Tie_performer is part of contexts: none

Time_signature_engraver

Create a TimeSignature whenever timeSignatureFraction changes

This engraver creates the following layout objects: TimeSignature.

Time_signature_engraver is part of contexts: DrumStaff, GregorianTranscriptionStaff, RhythmicStaff, Staff and TabStaff

Time_signature_performer

Time_signature_performer is part of contexts: none

Timing_engraver

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.

This engraver adds the alias Timing to its containing context.

Properties (read)

currentBarNumber (integer)
Contains the current barnumber. This property is incremented at every bar line.
measurePosition (moment)
How much of the current measure have we had. This can be set manually to create incomplete measures.
measureLength (moment)
Length of one measure in the current time signature.
timing (boolean)
Keep administration of measure length, position, bar number, etc? Switch off for cadenzas.
skipBars (boolean)
If set to true, then skip the empty bars that are produced by multimeasure notes and rests. These bars will not appear on the printed output. If not set (the default) multimeasure notes and rests expand into their full length, printing the appropriate number of empty bars so that synchronization with other voices is preserved.
          @lilypond[fragment,verbatim,center]
          r1 r1*3 R1*3  \\property Score.skipBars= ##t r1*3 R1*3
          @end lilypond
     

defaultBarType (string)
Sets the default type of bar line. See whichBar for information on available bar types.

This variable is read by Timing_engraver at Score level.

barAlways (boolean)
If set to true a bar line is drawn after each note.
whichBar (string)
This property is read to determine what type of bar line to create.

Example:

          \set Staff.whichBar = "|:"
     

This will create a start-repeat bar in this staff only. Valid values are described in bar-line-interface.

automaticBars (boolean)
If set to true then bar lines will not be printed automatically; they must be explicitly created with \bar command. Unlike the \cadenza keyword, measures are still counted. Bar generation will resume according to that count if this property is unset.
timeSignatureFraction (pair of numbers)
pair of numbers, signifying the time signature. For example #'(4 . 4) is a 4/4 time signature.

Timing_engraver is part of contexts: Score

Timing_translator

This engraver adds the alias Timing to its containing context.

Timing_translator is part of contexts: none

Tuplet_engraver

Catch Time_scaled_music and generate appropriate bracket

Music types accepted:

time-scaled-music

Properties (read)

tupletSpannerDuration (moment)
Normally a tuplet bracket is as wide as the \times expression that gave rise to it. By setting this property, you can make brackets last shorter. Example
          @lilypond[verbatim,fragment]
          context Voice \times 2/3 {
            property Voice.tupletSpannerDuration = #(ly:make-moment 1 4)
            c-[8 c c-] c-[ c c-]
          }
          @end lilypond
     

.

tupletNumberFormatFunction (procedure)
Function taking a music as input, producing a string. This function is called to determine the text to print on a tuplet bracket.
This engraver creates the following layout objects: TupletBracket.

Tuplet_engraver is part of contexts: DrumVoice, GregorianTranscriptionVoice, TabVoice, VaticanaVoice and Voice

Vaticana_ligature_engraver

Handles ligatures by glueing special ligature heads together.

Music types accepted:

ligature-event

This engraver creates the following layout objects: VaticanaLigature.

Vaticana_ligature_engraver is part of contexts: VaticanaVoice

Vertical_align_engraver

Catch Vertical axis groups and stack them.

This engraver creates the following layout objects: VerticalAlignment.

Vertical_align_engraver is part of contexts: PianoStaff and Score

Vocal_name_engraver

Prints the name of the a lyric voice (specified by Staff.vocalName and Staff.vocNam) at the left of the staff.

Properties (read)

vocalName (markup)
Name of a vocal line.
vocNam (markup)
Name of a vocal line, short version.
This engraver creates the following layout objects: VocalName.

Vocal_name_engraver is part of contexts: Lyrics

Volta_engraver

Make volta brackets

Properties (read)

stavesFound (list of grobs)
list of all staff-symbols found.
voltaSpannerDuration (moment)
This specifies the maximum duration to use for the brackets printed for \alternative. This can be used to shrink the length of brackets in the situation where one alternative is very large.
repeatCommands (list)
This property is read to find any command of the form (volta . x), where x is a string or #f
This engraver creates the following layout objects: VoltaBracket.

Volta_engraver is part of contexts: ChordNames, DrumStaff, GregorianTranscriptionStaff, RhythmicStaff, Staff, TabStaff and VaticanaStaff

Tunable context properties

aDueText (string)
Text to print at a unisono passage.
alignBassFigureAccidentals (boolean)
If true, then the accidentals are aligned in bass figure context.
allowBeamBreak (boolean)
If true allow line breaks for beams over bar lines.
associatedVoice (string)
Name of the Voice that has the melody for this Lyrics line.
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 rule consists of

context:
In which context is the rule 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.
octavation:
Whether the accidental changes all octaves or only the current octave. Valid choices are
same-octave:
This is the default algorithm. Accidentals are typeset if the note changes the accidental of that note in that octave. Accidentals lasts to the end of the measure and then as many measures as specified in the value. I.e. 1 means to the end of next measure, -1 means to the end of previous measure (that is: no duration at all), etc. #t means forever.
any-octave:
Accidentals are typeset if the note is different from the previous note on the same pitch in any octave. The value has same meaning as in same-octave.

laziness
Over how many bar lines the accidental lasts. If laziness is -1 then the accidental is forget immediately, and if laziness is #t then the accidental lasts forever.

autoBeamSettings (list)
Specifies when automatically generated beams should begin and end. See Setting automatic beam behavior for more information.
autoBeaming (boolean)
If set to true then beams are generated automatically.
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.
automaticBars (boolean)
If set to true then bar lines will not be printed automatically; they must be explicitly created with \bar command. Unlike the \cadenza keyword, measures are still counted. Bar generation will resume according to that count if this property is unset.
barAlways (boolean)
If set to true a bar line is drawn after each note.
barCheckSynchronize (boolean)
If true then reset measurePosition when finding a barcheck.
barNumberVisibility (procedure)
Procedure that takes an int and returns whether the corresponding bar number should be printed
bassFigureFormatFunction (procedure)
Procedure that is called to produce the formatting for a BassFigure grob. It takes a list of BassFigureEvents, a context, and the grob to format.
beatGrouping (list)
List of beatgroups, e.g., in 5/8 time '(2 3).
beatLength (moment)
The length of one beat in this time signature.
chordChanges (boolean)
Only show changes in chords scheme?
chordNameExceptions (list)
Alist of chord exceptions. Contains (chord . markup) entries.
chordNameExceptionsFull (list)
Alist of chord exceptions. Contains (chord . markup) entries.
chordNameExceptionsPartial (list)
Alist of partial chord exceptions. Contains (chord . (prefix-markup suffix-markup)) entries.
chordNameFunction (procedure)
The function that converts lists of pitches to chord names.
chordNameSeparator (markup)
The markup object used to separate parts of a chord name.
chordNoteNamer (procedure)
Function that converts from a pitch object to a text markup. Used for single pitches.
chordRootNamer (procedure)
Function that converts from a pitch object to a text markup. Used for chords.
clefGlyph (string)
Name of the symbol within the music font.
clefOctavation (integer)
Add this much extra octavation. Values of 7 and -7 are common.
clefPosition (number)
Where should the center of the clef symbol go, measured in half staff spaces from the center of the staff.
connectArpeggios (boolean)
If set, connect arpeggios across piano staff.
createKeyOnClefChange (boolean)
Print a key signature whenever the clef is changed.
createSpacing (boolean)
Create StaffSpacing objects? Should be set for staves.
crescendoSpanner (symbol)
Type of spanner to be used for crescendi. One of: hairpin, line, dashed-line, dotted-line. If unset, hairpin type is used.
crescendoText (markup)
Text to print at start of non-hairpin crescendo, i.e.: cresc.
currentBarNumber (integer)
Contains the current barnumber. This property is incremented at every bar line.
decrescendoSpanner (symbol)
See crescendoSpanner.
decrescendoText (markup)
Text to print at start of non-hairpin decrescendo, i.e.: dim.
defaultBarType (string)
Sets the default type of bar line. See whichBar for information on available bar types.

This variable is read by Timing_engraver at Score level.

drumPitchTable (hash table)
A table mapping percussion instruments (symbols) to pitches.
drumStyleTable (hash table)
A hash table containing mapping drums to layout settings. Predefined values: 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 key, and a list (notehead-style script vertical-position) as values.

explicitClefVisibility (procedure)
break-visibility function for clef changes.
explicitKeySignatureVisibility (procedure)
break-visibility function for explicit key changes. \override of #'break-visibility 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 changing from a non-natural to another non-natural.
extraVerticalExtent (pair of numbers)
extra vertical extent, same format as minimumVerticalExtent
fingeringOrientations (list)
List of symbols, containing left, right, up and/or down. This list determines where fingerings are put relative to the chord being fingered.
followVoice (boolean)
if set, note heads are tracked across staff switches by a thin line
fontSize (number)
The relative size of all grobs in a context.
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.
harmonicAccidentals (boolean)
If set, harmonic notes in chords get accidentals.
highStringOne (boolean)
Whether the 1st string is the string with highest pitch on the instrument. This used by the automatic string selector for tab notation.
ignoreMelismata (boolean)
Ignore melismata for this Lyrics line.
instr (markup)
See instrument
instrument (markup)
The name to print left of a staff. The instrument property labels the staff in the first system, and the instr property labels following lines.
instrumentEqualizer (procedure)
Function taking a string (instrument name), and returning a (min . max) pair of numbers for the loudness range of the instrument.
instrumentTransposition (pitch)
Define the transposition of the instrument. This is used to transpose the MIDI output, and \quotes.
keyAccidentalOrder (list)
Alist that defines in what order alterations should be printed. The format is (name . alter), where name is from 0 .. 6 and alter from -1, 1.
keySignature (list)
The current key signature. This is an alist containing (name . alter) or ((octave . name) . alter). where name is from 0.. 6 and alter from -4 (double flat) to 4 (double sharp).
majorSevenSymbol (markup)
How should the major 7th be formatted in a chord name?
markFormatter (procedure)
Procedure taking as arguments context and rehearsal mark. It should return the formatted mark as a markup object.
measureLength (moment)
Length of one measure in the current time signature.
measurePosition (moment)
How much of the current measure have we had. This can be set manually to create incomplete measures.
melismaBusyProperties (list)
List of properties (symbols) to determine whether a melisma is playing. Setting this property will influence how lyrics are aligned to notes. For example, if set to #'(melismaBusy beamMelismaBusy), only manual melismata and manual beams are considered. Possible values include melismaBusy, slurMelismaBusy, tieMelismaBusy, and beamMelismaBusy
metronomeMarkFormatter (procedure)
How to produce a metronome markup. Called with 2 arguments, event and context.
middleCPosition (number)
Place of the middle C, measured in half staffspaces. Usually determined by looking at clefPosition and clefGlyph.
midiInstrument (string)
Name of the MIDI instrument to use
midiMaximumVolume (number)
Analogous to midiMinimumVolume.
midiMinimumVolume (number)
Sets the minimum loudness for MIDI. Ranges from 0 to 1.
minimumFret (number)
The tablature auto string-selecting mechanism selects the highest string with a fret at least minimumFret
minimumVerticalExtent (pair of numbers)
minimum vertical extent, same format as verticalExtent
ottavation (string)
If set, the text for an ottava spanner. Changing this creates a new text spanner.
pedalSostenutoStrings (list)
See pedalSustainStrings.
pedalSostenutoStyle (symbol)
see pedalSustainStyle.
pedalSustainStrings (list)
List of string 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.
printKeyCancellation (boolean)
Print restoration alterations before a key signature change.
printOctaveNames (boolean)
Print octave marks for the NoteNames context.
recordEventSequence (procedure)
When Recording_group_engraver is in this context, then upon termination of the context, this function is called with current context and a list of music objects. The list of contains entries with start times, music objects and whether they are processed in this context.
rehearsalMark (integer)
The last rehearsal mark printed.
repeatCommands (list)
This property is read to find any command of the form (volta . x), where x is a string or #f
restNumberThreshold (number)
If a multimeasure rest takes less than this number of measures, no number is printed.
skipBars (boolean)
If set to true, then skip the empty bars that are produced by multimeasure notes and rests. These bars will not appear on the printed output. If not set (the default) multimeasure notes and rests expand into their full length, printing the appropriate number of empty bars so that synchronization with other voices is preserved.
          @lilypond[fragment,verbatim,center]
          r1 r1*3 R1*3  \\property Score.skipBars= ##t r1*3 R1*3
          @end lilypond
     

skipTypesetting (boolean)
When true, all no typesetting is done, speeding up the interpretation phase. This speeds up debugging large scores.
soloADue (boolean)
set Solo/A due texts in the part combiner?
soloIIText (string)
text for begin of solo for voice “two” when part-combining.
soloText (string)
text for begin of solo when part-combining.
squashedPosition (integer)
Vertical position of squashing for Pitch_squash_engraver.
stanza (markup)
Stanza `number' to print before the start of a verse. Use in Lyrics context.
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.
stringOneTopmost (boolean)
Whether the 1st string is printed on the top line of the tablature.
stringTunings (list)
The tablature strings tuning. It is a list of the pitch (in semitones) of each string (starting with the lower one).
subdivideBeams (boolean)
If set, multiple beams will be subdivided at beat positions by only drawing one beam over the beat.
systemStartDelimiter (symbol)
Which grob to make for the start of the system/staff? Set to SystemStartBrace, SystemStartBracket or SystemStartBar.
tablatureFormat (procedure)
Function formatting a tab note head; it takes a string number, a list of string tunings and Pitch object. It returns the text as a string.
timeSignatureFraction (pair of numbers)
pair of numbers, signifying the time signature. For example #'(4 . 4) is a 4/4 time signature.
timing (boolean)
Keep administration of measure length, position, bar number, etc? Switch off for cadenzas.
tonic (pitch)
The tonic of the current scale
tremoloFlags (integer)
Number of tremolo flags to add if no number is specified.
tupletNumberFormatFunction (procedure)
Function taking a music as input, producing a string. This function is called to determine the text to print on a tuplet bracket.
tupletSpannerDuration (moment)
Normally a tuplet bracket is as wide as the \times expression that gave rise to it. By setting this property, you can make brackets last shorter. Example
          @lilypond[verbatim,fragment]
          context Voice \times 2/3 {
            property Voice.tupletSpannerDuration = #(ly:make-moment 1 4)
            c-[8 c c-] c-[ c c-]
          }
          @end lilypond
     

.

verticalAlignmentChildCallback (procedure)
What callback to add to children of a vertical alignment. It determines what procedure is used on the alignment itself.
verticalExtent (pair of numbers)
Hard coded vertical extent. The format is a pair of dimensions, for example, this sets the sizes of a staff to 10 (5+5) staffspaces high.
          \set Staff.verticalExtent = #'(-5.0 . 5.0)
     

This does not work for Voice or any other context that doesn't form a vertical group.

vocNam (markup)
Name of a vocal line, short version.
vocalName (markup)
Name of a vocal line.
voltaOnThisStaff (boolean)
Normally, volta brackets are put only on the topmost staff. Setting this variable will create a bracket on this staff as well.
voltaSpannerDuration (moment)
This specifies the maximum duration to use for the brackets printed for \alternative. This can be used to shrink the length of brackets in the situation where one alternative is very large.
whichBar (string)
This property is read to determine what type of bar line to create.

Example:

          \set Staff.whichBar = "|:"
     

This will create a start-repeat bar in this staff only. Valid values are described in bar-line-interface.

Internal context properties

acceptHashTable (hash table)
Internal variable: store table with MusicName to Engraver entries.
acknowledgeHashTable (hash table)
Internal variable: store interface to engraver smob table for current context.
associatedVoiceContext (context)
The context object of the Voice that has the melody for this Lyrics.
barCheckLastFail (moment)
Where in the measure did the last barcheck fail?
beamMelismaBusy (boolean)
Signal if a beam is present.
breakableSeparationItem (layout object)
The breakable items in this time step, for this staff.
busyGrobs (list)
a queue of (end-moment . GROB) conses. This is for internal (C++) use only. This property contains the grobs which are still busy (e.g. note heads, spanners, etc.)
currentCommandColumn (layout object)
Grob that is X-parent to all current breakable (clef, key signature, etc.) items.
currentMusicalColumn (layout object)
Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).
dynamicAbsoluteVolumeFunction (procedure)
[DOCUMENT-ME]
finalizations (list)
List of expressions to evaluate before proceeding to next time step. Internal variable.
graceSettings (hash table)
Overrides for grace notes. This property should be manipulated through the add-grace-property function.
instrumentSupport (list of grobs)
list of grobs to attach instrument name to.
lastKeySignature (list)
Last key signature before a key signature change.
localKeySignature (list)
the key signature at this point in the measure. The format is the same as for keySignature, but can also contain ((octave . name) . (alter . barnumber)) pairs. It is reset at every bar line.
localKeySignatureChanges (list)
Experimental. [DOCME]
melismaBusy (boolean)
Signifies whether a melisma is active. This can be used to signal melismas on top of those automatically detected.
originalCentralCPosition (integer)
Used for temporary overriding middle C in octavation brackets.
quotes (hash table)
Hash table, mapping names to music-event vectors.
scriptDefinitions (list)
Description of scripts. This is used by Script_engraver for typesetting note-super/subscripts. See scm/script.scm for more information
slurMelismaBusy (boolean)
Signal if a slur is present.
stavesFound (list of grobs)
list of all staff-symbols found.
tieMelismaBusy (boolean)
Signal whether a tie is present.

Backend

All layout objects

Accidental

Accidental objects are created by: Accidental_engraver

Standard settings:

print-function (procedure):
Accidental_interface::print

Function taking grob as argument, returning a Stencil object.

font-family (symbol):
'music

The font family is the broadest category for selecting text fonts. Options include: sans, roman

cautionary-style (symbol):
'parentheses

How to print cautionary accidentals. Choices are smaller or parentheses.

This object supports the following interfaces: font-interface, accidental-interface, item-interface and grob-interface

AccidentalPlacement

AccidentalPlacement objects are created by: none

Standard settings:

X-extent-callback (procedure):
Axis_group_interface::group_extent_callback

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

left-padding (dimension, in staff space):
0.2

The amount of space that is put left to a group of accidentals.

right-padding (dimension, in staff space):
0.15

Space to insert between note and accidentals.

This object supports the following interfaces: accidental-placement-interface, item-interface and grob-interface

Ambitus

Ambitus objects are created by: Ambitus_engraver

Standard settings:

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

break-align-symbol (symbol):
'ambitus

This key is used for aligning and spacing breakable items.

print-function (procedure):
Ambitus::print

Function taking grob as argument, returning a Stencil object.

font-family (symbol):
'music

The font family is the broadest category for selecting text fonts. Options include: sans, roman

break-visibility (procedure):
begin-of-line-visible

A function that takes the break direction and returns a cons of booleans containing (transparent . empty). The following variables are predefined: all-visible, begin-of-line-visible, end-of-line-visible, begin-of-line-invisible, end-of-line-invisible, all-invisible.

space-alist (list):
'((clef extra-space . 0.0) (key-signature extra-space . 0.0) (staff-bar extra-space . 0.0) (time-signature extra-space . 0.0) (first-note fixed-space . 0.0))

A table that specifies distances between prefatory items, like clef and time-signature. The format is an alist of spacing tuples: (break-align-symbol type . distance), where type can be the symbols minimum-space or extra-space.

This object supports the following interfaces: font-interface, item-interface, break-aligned-interface, staff-symbol-referencer-interface, ambitus-interface and grob-interface

Arpeggio

Arpeggio objects are created by: Arpeggio_engraver and Span_arpeggio_engraver

Standard settings:

X-extent-callback (procedure):
Arpeggio::width_callback

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

Y-extent-callback (procedure):
#f

see X-extent-callback.

print-function (procedure):
Arpeggio::print

Function taking grob as argument, returning a Stencil object.

Y-offset-callbacks (list):
'(#<primitive-procedure Staff_symbol_referencer::callback>)

see X-offset-callbacks.

X-offset-callbacks (list):
'(#<primitive-procedure Side_position_interface::aligned_side>)

A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.

direction (direction):
-1

Up or down, left or right?

padding (dimension, in staff space):
0.5

Add this much extra space between objects that are next to each other.

staff-position (number):
0.0

Vertical position, measured in half staff spaces, counted from the middle line.

This object supports the following interfaces: font-interface, item-interface, side-position-interface, staff-symbol-referencer-interface, arpeggio-interface and grob-interface

BarLine

BarLine objects are created by: Bar_engraver

Standard settings:

break-align-symbol (symbol):
'staff-bar

This key is used for aligning and spacing breakable items.

glyph (string):
|

a string determining what (style) of glyph is typeset. Valid choices depend on the function that is reading this property.

break-glyph-function (procedure):
default-break-barline

This function determines the appearance of a bar line at the line break. It takes a glyph and break-direction and returns the glyph at a line break.

bar-size-procedure (procedure):
Bar_line::get_staff_bar_size

Procedure that computes the size of a bar line.

print-function (procedure):
Bar_line::print

Function taking grob as argument, returning a Stencil object.

break-visibility (procedure):
all-visible

A function that takes the break direction and returns a cons of booleans containing (transparent . empty). The following variables are predefined: all-visible, begin-of-line-visible, end-of-line-visible, begin-of-line-invisible, end-of-line-invisible, all-invisible.

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

before-line-breaking-callback (procedure):
Bar_line::before_line_breaking

This procedure is called before line breaking, but after splitting breakable items at potential line breaks.

space-alist (list):
'((time-signature extra-space . 0.75) (custos minimum-space . 2.0) (clef minimum-space . 1.0) (key-signature extra-space . 1.0) (first-note fixed-space . 1.3) (next-note semi-fixed-space . 1.3) (right-edge extra-space . 0.0))

A table that specifies distances between prefatory items, like clef and time-signature. The format is an alist of spacing tuples: (break-align-symbol type . distance), where type can be the symbols minimum-space or extra-space.

kern (dimension, in staff space):
3.0

Amount of extra white space to add. For bar line, this is the amount of space after a thick line.

thin-kern (number):
3.0

The space after a hair-line in a bar line.

hair-thickness (number):
1.6

Thickness of the thin line in a bar line.

thick-thickness (number):
6.0

Bar line thickness, measured in linethickness.

This object supports the following interfaces: font-interface, break-aligned-interface, item-interface, bar-line-interface and grob-interface

BarNumber

BarNumber objects are created by: Bar_number_engraver

Standard settings:

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

break-visibility (procedure):
begin-of-line-visible

A function that takes the break direction and returns a cons of booleans containing (transparent . empty). The following variables are predefined: all-visible, begin-of-line-visible, end-of-line-visible, begin-of-line-invisible, end-of-line-invisible, all-invisible.

padding (dimension, in staff space):
1.0

Add this much extra space between objects that are next to each other.

direction (direction):
1

Up or down, left or right?

font-family (symbol):
'roman

The font family is the broadest category for selecting text fonts. Options include: sans, roman

font-size (number):
-2

The font size, compared the `normal' size. 0 is style-sheet's normal size, -1 is smaller, +1 is bigger. Each step of 1 is approximately 12% larger, 6 steps are exactly a factor 2 larger. Fractional values are allowed.

Y-offset-callbacks (list):
'(#<primitive-procedure Side_position_interface::aligned_side>)

see X-offset-callbacks.

X-offset-callbacks (list):
'(#<primitive-procedure Self_alignment_interface::aligned_on_self>)

A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.

self-alignment-X (number):
1

Specify alignment of an object. The value -1 means left aligned, 0 centered, and 1 right-aligned in X direction. Values in between may also be specified.

extra-offset (pair of numbers):
'(1.3 . 0)

A pair representing an offset. This offset is added just before outputting the symbol, so the typesetting engine is completely oblivious to it.

This object supports the following interfaces: break-aligned-interface, item-interface, font-interface, self-alignment-interface, text-interface, side-position-interface and grob-interface

BassFigure

BassFigure objects are created by: Figured_bass_engraver

Standard settings:

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

Y-offset-callbacks (list):
'(#<primitive-procedure Self_alignment_interface::aligned_on_self>)

see X-offset-callbacks.

direction (direction):
1

Up or down, left or right?

font-family (symbol):
'number

The font family is the broadest category for selecting text fonts. Options include: sans, roman

font-size (number):
-4

The font size, compared the `normal' size. 0 is style-sheet's normal size, -1 is smaller, +1 is bigger. Each step of 1 is approximately 12% larger, 6 steps are exactly a factor 2 larger. Fractional values are allowed.

kern (dimension, in staff space):
0.2

Amount of extra white space to add. For bar line, this is the amount of space after a thick line.

This object supports the following interfaces: font-interface, self-alignment-interface, item-interface, bass-figure-interface, rhythmic-grob-interface, text-interface and grob-interface

Beam

Beam objects are created by: Auto_beam_engraver, Beam_engraver, Chord_tremolo_engraver and Grace_beam_engraver

Standard settings:

print-function (procedure):
Beam::print

Function taking grob as argument, returning a Stencil object.

concaveness-gap (dimension, in staff space):
1.85

A beam is printed horizontally if its concaveness-gap is larger than this value. The concaveness-gap is the distance of an inner note head to the line between two outer note heads.

concaveness-threshold (number):
0.26

A beam is printed horizontally if its concaveness is bigger than this threshold.

Concaveness is calculated as the sum of the vertical distances of inner note heads that fall outside the interval of the two outer note heads, to the vertically nearest outer note head, divided by the square of the inner notes involved.

gap (dimension, in staff space):
0.8

Size of a gap in a variable symbol.

positions (pair):
'(#f . #f)

Pair of staff coordinates (left . right), where both left and right are in the staff-space unit of the current staff.

thickness (number):
0.48

Bar line thickness, measured in linethickness.

before-line-breaking-callback (procedure):
Beam::before_line_breaking

This procedure is called before line breaking, but after splitting breakable items at potential line breaks.

neutral-direction (direction):
-1

Which direction to take in the center of the staff.

dir-function (procedure):
beam-dir-majority-median

The function to determine the direction of a beam. Choices include:

beam-dir-majority
number count of up or down notes
beam-dir-mean
mean center distance of all notes
beam-dir-median.
mean center distance weighted per note

beamed-stem-shorten (list):
'(1.0 0.5 0.25)

How much to shorten beamed stems, when their direction is forced. It is a list, since the value is different depending on the number flags/beams.

slope-limit (number):
0.2

Set slope to zero if slope is running away steeper than this.

flag-width-function (procedure):
beam-flag-width-function

Procedure that computes the width of a half-beam (a non-connecting beam.).

damping (integer):
1

Amount of beam slope damping. 0: no, 1: yes, 100000: horizontal beams.

auto-knee-gap (dimension, in staff space):
5.5

If a gap is found between note heads where a horizontal beam fits that is larger than this number, make a kneed beam.

font-family (symbol):
'roman

The font family is the broadest category for selecting text fonts. Options include: sans, roman

space-function (procedure):
Beam::space_function

Calculate the vertical space between two beams. This function takes a beam grob and the maximum number of beams.

This object supports the following interfaces: spanner-interface, beam-interface, staff-symbol-referencer-interface and grob-interface

BreakAlignGroup

BreakAlignGroup objects are created by: Break_align_engraver

Standard settings:

axes (list):
'(0)

list of axis numbers. In the case of alignment grobs, this should contain only one number.

X-offset-callbacks (list):
'(#<primitive-procedure Break_align_interface::alignment_callback>)

A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.

X-extent-callback (procedure):
Axis_group_interface::group_extent_callback

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

This object supports the following interfaces: item-interface, axis-group-interface, item-interface, break-aligned-interface and grob-interface

BreakAlignment

BreakAlignment objects are created by: Break_align_engraver

Standard settings:

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

stacking-dir (direction):
1

Stack objects in which direction?

break-align-orders (hash table):
'#((instrument-name left-edge ambitus breathing-sign clef staff-bar key-signature time-signature custos) (instrument-name left-edge ambitus breathing-sign clef staff-bar key-signature staff time-signature custos) (instrument-name left-edge ambitus breathing-sign clef key-signature staff-bar time-signature custos))

Defines the order in which prefatory matter (clefs, key signatures) appears. The format is a vector of length 3, where each element is one order for end-of-line, middle of line, and start-of-line respectively. An order is a list of symbols.

For example, clefs are put after key signatures by setting

          	\override Score.BreakAlignment #'break-align-orders = #(make-vector  3
          	  '(span-bar
          	  breathing-sign
          	  staff-bar
          	  key
          	  clef
          	  time-signature))
     

axes (list):
'(0)

list of axis numbers. In the case of alignment grobs, this should contain only one number.

X-extent-callback (procedure):
Axis_group_interface::group_extent_callback

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

This object supports the following interfaces: axis-group-interface, item-interface, break-alignment-interface and grob-interface

BreathingSign

BreathingSign objects are created by: Breathing_sign_engraver

Standard settings:

break-align-symbol (symbol):
'breathing-sign

This key is used for aligning and spacing breakable items.

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

space-alist (list):
'((ambitus extra-space . 2.0) (custos minimum-space . 1.0) (key-signature minimum-space . 1.5) (staff-bar minimum-space . 1.5) (clef minimum-space . 2.0) (first-note fixed-space . 1.0) (right-edge extra-space . 0.1))

A table that specifies distances between prefatory items, like clef and time-signature. The format is an alist of spacing tuples: (break-align-symbol type . distance), where type can be the symbols minimum-space or extra-space.

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

text (markup):
'(#<procedure musicglyph-markup (paper props glyph-name)> scripts-rcomma)

Text markup. See Text markup .

Y-offset-callbacks (list):
'(#<primitive-procedure Breathing_sign::offset_callback>)

see X-offset-callbacks.

break-visibility (procedure):
begin-of-line-invisible

A function that takes the break direction and returns a cons of booleans containing (transparent . empty). The following variables are predefined: all-visible, begin-of-line-visible, end-of-line-visible, begin-of-line-invisible, end-of-line-invisible, all-invisible.

This object supports the following interfaces: item-interface, font-interface, text-interface, breathing-sign-interface, break-aligned-interface and grob-interface

ChordName

ChordName objects are created by: Chord_name_engraver

Standard settings:

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

word-space (dimension, in staff space):
0.0

space to insert between lyrics or words in texts.

font-family (symbol):
'sans

The font family is the broadest category for selecting text fonts. Options include: sans, roman

font-size (number):
1.5

The font size, compared the `normal' size. 0 is style-sheet's normal size, -1 is smaller, +1 is bigger. Each step of 1 is approximately 12% larger, 6 steps are exactly a factor 2 larger. Fractional values are allowed.

This object supports the following interfaces: item-interface, chord-name-interface, text-interface, rhythmic-grob-interface, font-interface and grob-interface

Clef

Clef objects are created by: Clef_engraver

Standard settings:

print-function (procedure):
Clef::print

Function taking grob as argument, returning a Stencil object.

before-line-breaking-callback (procedure):
Clef::before_line_breaking

This procedure is called before line breaking, but after splitting breakable items at potential line breaks.

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

font-family (symbol):
'music

The font family is the broadest category for selecting text fonts. Options include: sans, roman

break-align-symbol (symbol):
'clef

This key is used for aligning and spacing breakable items.

break-visibility (procedure):
begin-of-line-visible

A function that takes the break direction and returns a cons of booleans containing (transparent . empty). The following variables are predefined: all-visible, begin-of-line-visible, end-of-line-visible, begin-of-line-invisible, end-of-line-invisible, all-invisible.

space-alist (list):
'((ambitus extra-space . 2.0) (staff-bar extra-space . 0.7) (key-signature minimum-space . 4.0) (time-signature minimum-space . 4.2) (first-note minimum-fixed-space . 5.0) (next-note extra-space . 0.5) (right-edge extra-space . 0.5))

A table that specifies distances between prefatory items, like clef and time-signature. The format is an alist of spacing tuples: (break-align-symbol type . distance), where type can be the symbols minimum-space or extra-space.

Y-offset-callbacks (list):
'(#<primitive-procedure Staff_symbol_referencer::callback>)

see X-offset-callbacks.

This object supports the following interfaces: item-interface, break-aligned-interface, font-interface, staff-symbol-referencer-interface, clef-interface and grob-interface

ClusterSpanner

ClusterSpanner objects are created by: Cluster_spanner_engraver

Standard settings:

print-function (procedure):
Cluster::print

Function taking grob as argument, returning a Stencil object.

spacing-procedure (procedure):
Spanner::set_spacing_rods

Procedure for calculating spacing parameters. The routine is called after before-line-breaking-callback.

minimum-length (dimension, in staff space):
0.0

Try to make a spanner at least this long. This requires an appropriate routine for the spacing-procedure property.

padding (dimension, in staff space):
0.25

Add this much extra space between objects that are next to each other.

style (symbol):
'ramp

This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.

This object supports the following interfaces: spanner-interface, cluster-interface and grob-interface

ClusterSpannerBeacon

ClusterSpannerBeacon objects are created by: Cluster_spanner_engraver

Standard settings:

print-function (procedure):
#f

Function taking grob as argument, returning a Stencil object.

Y-extent-callback (procedure):
Cluster_beacon::height

see X-extent-callback.

This object supports the following interfaces: item-interface, cluster-beacon-interface and grob-interface

CombineTextScript

CombineTextScript objects are created by: Part_combine_engraver

Standard settings:

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

no-spacing-rods (boolean):
#t

Items with this property do not cause spacing constraints.

Y-offset-callbacks (list):
'(#<primitive-procedure Side_position_interface::aligned_side>)

see X-offset-callbacks.

X-offset-callbacks (list):
'(#<primitive-procedure Self_alignment_interface::aligned_on_self>)

A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.

direction (direction):
1

Up or down, left or right?

extra-offset (pair of numbers):
'(-1 . 0)

A pair representing an offset. This offset is added just before outputting the symbol, so the typesetting engine is completely oblivious to it.

padding (dimension, in staff space):
0.5

Add this much extra space between objects that are next to each other.

staff-padding (dimension, in staff space):
0.5

Maintain this much space between reference points and the staff. Its effect is to align objects of differing sizes (like the dynamic p and f) on their baselines.

script-priority (number):
200

A sorting key that determines in what order a script is within a stack of scripts.

baseline-skip (dimension, in staff space):
2

Distance between base lines of multiple lines of text.

font-series (symbol):
'bold

Select the series of a font. Choices include medium, bold, bold-narrow, etc.

This object supports the following interfaces: item-interface, font-interface, side-position-interface, text-interface, text-script-interface and grob-interface

Custos

Custos objects are created by: Custos_engraver

Standard settings:

break-align-symbol (symbol):
'custos

This key is used for aligning and spacing breakable items.

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

print-function (procedure):
Custos::print

Function taking grob as argument, returning a Stencil object.

break-visibility (procedure):
end-of-line-visible

A function that takes the break direction and returns a cons of booleans containing (transparent . empty). The following variables are predefined: all-visible, begin-of-line-visible, end-of-line-visible, begin-of-line-invisible, end-of-line-invisible, all-invisible.

style (symbol):
'vaticana

This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.

neutral-direction (direction):
-1

Which direction to take in the center of the staff.

Y-offset-callbacks (list):
'(#<primitive-procedure Staff_symbol_referencer::callback>)

see X-offset-callbacks.

space-alist (list):
'((first-note minimum-fixed-space . 0.0) (right-edge extra-space . 0.1))

A table that specifies distances between prefatory items, like clef and time-signature. The format is an alist of spacing tuples: (break-align-symbol type . distance), where type can be the symbols minimum-space or extra-space.

This object supports the following interfaces: item-interface, break-aligned-interface, font-interface, staff-symbol-referencer-interface, custos-interface and grob-interface

DotColumn

DotColumn objects are created by: Dot_column_engraver

Standard settings:

axes (list):
'(0)

list of axis numbers. In the case of alignment grobs, this should contain only one number.

direction (direction):
1

Up or down, left or right?

X-extent-callback (procedure):
Axis_group_interface::group_extent_callback

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

X-offset-callbacks (list):
'(#<primitive-procedure Dot_column::side_position>)

A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.

This object supports the following interfaces: item-interface, axis-group-interface, dot-column-interface and grob-interface

Dots

Dots objects are created by: Completion_heads_engraver, Drum_notes_engraver, Note_heads_engraver, Rest_engraver and Tab_note_heads_engraver

Standard settings:

print-function (procedure):
Dots::print

Function taking grob as argument, returning a Stencil object.

dot-count (integer):
1

The number of dots.

This object supports the following interfaces: item-interface, dots-interface, staff-symbol-referencer-interface, font-interface and grob-interface

DoublePercentRepeat

DoublePercentRepeat objects are created by: Percent_repeat_engraver

Standard settings:

print-function (procedure):
Percent_repeat_item_interface::double_percent

Function taking grob as argument, returning a Stencil object.

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

slope (number):
1.0

The slope of this object.

font-encoding (symbol):
'music

The font encoding is the broadest category for selecting a font. Options include: music, number, text, math, braces, dynamic

width (dimension, in staff space):
2.0

The width of a grob measured in staff space.

thickness (number):
0.48

Bar line thickness, measured in linethickness.

break-align-symbol (symbol):
'staff-bar

This key is used for aligning and spacing breakable items.

break-visibility (procedure):
begin-of-line-invisible

A function that takes the break direction and returns a cons of booleans containing (transparent . empty). The following variables are predefined: all-visible, begin-of-line-visible, end-of-line-visible, begin-of-line-invisible, end-of-line-invisible, all-invisible.

This object supports the following interfaces: item-interface, percent-repeat-interface, break-aligned-interface, font-interface and grob-interface

DynamicLineSpanner

DynamicLineSpanner objects are created by: Dynamic_engraver

Standard settings:

axes (list):
'(1)

list of axis numbers. In the case of alignment grobs, this should contain only one number.

Y-extent-callback (procedure):
Axis_group_interface::group_extent_callback

see X-extent-callback.

Y-offset-callbacks (list):
'(#<primitive-procedure Side_position_interface::aligned_side>)

see X-offset-callbacks.

staff-padding (dimension, in staff space):
0.1

Maintain this much space between reference points and the staff. Its effect is to align objects of differing sizes (like the dynamic p and f) on their baselines.

padding (dimension, in staff space):
0.6

Add this much extra space between objects that are next to each other.

minimum-space (dimension, in staff space):
1.2

Minimum distance that the victim should move (after padding).

direction (direction):
-1

Up or down, left or right?

This object supports the following interfaces: spanner-interface, side-position-interface, axis-group-interface, dynamic-interface and grob-interface

DynamicText

DynamicText objects are created by: Dynamic_engraver

Standard settings:

Y-offset-callbacks (list):
'(#<primitive-procedure Self_alignment_interface::aligned_on_self>)

see X-offset-callbacks.

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

X-offset-callbacks (list):
'(#<primitive-procedure Self_alignment_interface::aligned_on_self> #<primitive-procedure Self_alignment_interface::centered_on_parent>)

A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.

self-alignment-X (number):
0

Specify alignment of an object. The value -1 means left aligned, 0 centered, and 1 right-aligned in X direction. Values in between may also be specified.

no-spacing-rods (boolean):
#t

Items with this property do not cause spacing constraints.

script-priority (number):
100

A sorting key that determines in what order a script is within a stack of scripts.

font-series (symbol):
'bold

Select the series of a font. Choices include medium, bold, bold-narrow, etc.

font-encoding (symbol):
'dynamic

The font encoding is the broadest category for selecting a font. Options include: music, number, text, math, braces, dynamic

font-shape (symbol):
'italic

Select the shape of a font. Choices include upright, italic, caps.

self-alignment-Y (number):
0

like self-alignment-X but for Y axis.

This object supports the following interfaces: item-interface, script-interface, dynamic-interface, self-alignment-interface, text-interface, font-interface and grob-interface

Fingering

Fingering objects are created by: Fingering_engraver and New_fingering_engraver

Standard settings:

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

padding (dimension, in staff space):
0.6

Add this much extra space between objects that are next to each other.

staff-padding (dimension, in staff space):
0.6

Maintain this much space between reference points and the staff. Its effect is to align objects of differing sizes (like the dynamic p and f) on their baselines.

self-alignment-X (number):
0

Specify alignment of an object. The value -1 means left aligned, 0 centered, and 1 right-aligned in X direction. Values in between may also be specified.

self-alignment-Y (number):
0

like self-alignment-X but for Y axis.

script-priority (number):
100

A sorting key that determines in what order a script is within a stack of scripts.

font-encoding (symbol):
'number

The font encoding is the broadest category for selecting a font. Options include: music, number, text, math, braces, dynamic

font-size (number):
-5

The font size, compared the `normal' size. 0 is style-sheet's normal size, -1 is smaller, +1 is bigger. Each step of 1 is approximately 12% larger, 6 steps are exactly a factor 2 larger. Fractional values are allowed.

This object supports the following interfaces: item-interface, self-alignment-interface, side-position-interface, text-interface, text-script-interface, font-interface, finger-interface and grob-interface

Glissando

Glissando objects are created by: Glissando_engraver and Note_head_line_engraver

Standard settings:

style (symbol):
'line

This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.

gap (dimension, in staff space):
0.5

Size of a gap in a variable symbol.

zigzag-width (dimension, in staff space):
0.75

The width of one zigzag-squiggle. This number will be adjusted slightly so that the glissando line can be constructed from a whole number of squiggles.

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

X-extent-callback (procedure):
#f

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

Y-extent-callback (procedure):
#f

see X-extent-callback.

print-function (procedure):
Line_spanner::print

Function taking grob as argument, returning a Stencil object.

This object supports the following interfaces: spanner-interface, line-spanner-interface and grob-interface

Hairpin

Hairpin objects are created by: Dynamic_engraver

Standard settings:

print-function (procedure):
Hairpin::print

Function taking grob as argument, returning a Stencil object.

thickness (number):
1.0

Bar line thickness, measured in linethickness.

height (dimension, in staff space):
0.6666

Height of an object in staffspace.

spacing-procedure (procedure):
Spanner::set_spacing_rods

Procedure for calculating spacing parameters. The routine is called after before-line-breaking-callback.

minimum-length (dimension, in staff space):
2.0

Try to make a spanner at least this long. This requires an appropriate routine for the spacing-procedure property.

self-alignment-Y (number):
0

like self-alignment-X but for Y axis.

Y-offset-callbacks (list):
'(#<primitive-procedure Self_alignment_interface::aligned_on_self>)

see X-offset-callbacks.

This object supports the following interfaces: spanner-interface, dynamic-interface, self-alignment-interface, line-interface, hairpin-interface and grob-interface

HorizontalBracket

HorizontalBracket objects are created by: Horizontal_bracket_engraver

Standard settings:

thickness (number):
1.0

Bar line thickness, measured in linethickness.

print-function (procedure):
Horizontal_bracket::print

Function taking grob as argument, returning a Stencil object.

Y-offset-callbacks (list):
'(#<primitive-procedure Side_position_interface::aligned_side>)

see X-offset-callbacks.

padding (dimension, in staff space):
0.2

Add this much extra space between objects that are next to each other.

direction (direction):
-1

Up or down, left or right?

This object supports the following interfaces: spanner-interface, side-position-interface, horizontal-bracket-interface and grob-interface

InstrumentName

InstrumentName objects are created by: Instrument_name_engraver

Standard settings:

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

Y-offset-callbacks (list):
'(#<primitive-procedure Self_alignment_interface::aligned_on_self> #<primitive-procedure Side_position_interface::aligned_on_support_refpoints>)

see X-offset-callbacks.

direction (direction):
0

Up or down, left or right?

space-alist (list):
'((left-edge extra-space . 1.0))

A table that specifies distances between prefatory items, like clef and time-signature. The format is an alist of spacing tuples: (break-align-symbol type . distance), where type can be the symbols minimum-space or extra-space.

self-alignment-Y (number):
0

like self-alignment-X but for Y axis.

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

break-align-symbol (symbol):
'instrument-name

This key is used for aligning and spacing breakable items.

break-visibility (procedure):
begin-of-line-visible

A function that takes the break direction and returns a cons of booleans containing (transparent . empty). The following variables are predefined: all-visible, begin-of-line-visible, end-of-line-visible, begin-of-line-invisible, end-of-line-invisible, all-invisible.

baseline-skip (dimension, in staff space):
2

Distance between base lines of multiple lines of text.

This object supports the following interfaces: item-interface, break-aligned-interface, text-interface, side-position-interface, self-alignment-interface, font-interface and grob-interface

KeySignature

KeySignature objects are created by: Key_engraver

Standard settings:

print-function (procedure):
Key_signature_interface::print

Function taking grob as argument, returning a Stencil object.

space-alist (list):
'((time-signature extra-space . 1.25) (staff-bar extra-space . 1.1) (right-edge extra-space . 0.5) (first-note fixed-space . 2.5))

A table that specifies distances between prefatory items, like clef and time-signature. The format is an alist of spacing tuples: (break-align-symbol type . distance), where type can be the symbols minimum-space or extra-space.

Y-offset-callbacks (list):
'(#<primitive-procedure Staff_symbol_referencer::callback>)

see X-offset-callbacks.

break-align-symbol (symbol):
'key-signature

This key is used for aligning and spacing breakable items.

break-visibility (procedure):
begin-of-line-visible

A function that takes the break direction and returns a cons of booleans containing (transparent . empty). The following variables are predefined: all-visible, begin-of-line-visible, end-of-line-visible, begin-of-line-invisible, end-of-line-invisible, all-invisible.

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

This object supports the following interfaces: item-interface, break-aligned-interface, font-interface, key-signature-interface and grob-interface

LeftEdge

LeftEdge objects are created by: Break_align_engraver

Standard settings:

break-align-symbol (symbol):
'left-edge

This key is used for aligning and spacing breakable items.

X-extent (pair of numbers):
'(0 . 0)

Hard coded extent in X direction.

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

space-alist (list):
'((custos extra-space . 0.0) (ambitus extra-space . 2.0) (time-signature extra-space . 0.0) (staff-bar extra-space . 0.0) (breathing-sign minimum-space . 0.0) (clef extra-space . 0.85) (first-note fixed-space . 1.0) (right-edge extra-space . 0.0) (key-signature extra-space . 0.0))

A table that specifies distances between prefatory items, like clef and time-signature. The format is an alist of spacing tuples: (break-align-symbol type . distance), where type can be the symbols minimum-space or extra-space.

This object supports the following interfaces: item-interface, break-aligned-interface and grob-interface

LigatureBracket

LigatureBracket objects are created by: none

Standard settings:

direction (direction):
1

Up or down, left or right?

gap (dimension, in staff space):
0.0

Size of a gap in a variable symbol.

padding (dimension, in staff space):
2.0

Add this much extra space between objects that are next to each other.

thickness (number):
1.6

Bar line thickness, measured in linethickness.

edge-height (pair):
'(0.7 . 0.7)

A pair of number specifying the heights of the vertical edges '(left-height . right-height).

shorten-pair (pair of numbers):
'(-0.2 . -0.2)

The lengths to shorten a text-spanner on both sides, for example a pedal bracket

before-line-breaking-callback (procedure):
Tuplet_bracket::before_line_breaking

This procedure is called before line breaking, but after splitting breakable items at potential line breaks.

print-function (procedure):
Tuplet_bracket::print

Function taking grob as argument, returning a Stencil object.

This object supports the following interfaces: spanner-interface, tuplet-bracket-interface and grob-interface

LyricExtender

LyricExtender objects are created by: Extender_engraver

Standard settings:

print-function (procedure):
Lyric_extender::print

Function taking grob as argument, returning a Stencil object.

thickness (number):
0.8

Bar line thickness, measured in linethickness.

minimum-length (dimension, in staff space):
1.5

Try to make a spanner at least this long. This requires an appropriate routine for the spacing-procedure property.

Y-extent (pair of numbers):
'(0 . 0)

See X-extent.

This object supports the following interfaces: spanner-interface, lyric-extender-interface, lyric-interface and grob-interface

LyricHyphen

LyricHyphen objects are created by: Hyphen_engraver

Standard settings:

thickness (number):
1.3

Bar line thickness, measured in linethickness.

height (dimension, in staff space):
0.42

Height of an object in staffspace.

dash-period (number):
10.0

the length of one dash + white space. If negative, no line is drawn at all.

length (dimension, in staff space):
0.66

User override for the stem length of unbeamed stems.

spacing-procedure (procedure):
Hyphen_spanner::set_spacing_rods

Procedure for calculating spacing parameters. The routine is called after before-line-breaking-callback.

print-function (procedure):
Hyphen_spanner::print

Function taking grob as argument, returning a Stencil object.

Y-extent (pair of numbers):
'(0 . 0)

See X-extent.

This object supports the following interfaces: spanner-interface, lyric-hyphen-interface, lyric-interface and grob-interface

LyricText

LyricText objects are created by: Lyric_engraver

Standard settings:

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

X-offset-callbacks (list):
'(#<primitive-procedure Self_alignment_interface::aligned_on_parent>)

A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.

self-alignment-X (number):
0

Specify alignment of an object. The value -1 means left aligned, 0 centered, and 1 right-aligned in X direction. Values in between may also be specified.

word-space (dimension, in staff space):
0.6

space to insert between lyrics or words in texts.

font-series (symbol):
'bold-narrow

Select the series of a font. Choices include medium, bold, bold-narrow, etc.

font-size (number):
1.0

The font size, compared the `normal' size. 0 is style-sheet's normal size, -1 is smaller, +1 is bigger. Each step of 1 is approximately 12% larger, 6 steps are exactly a factor 2 larger. Fractional values are allowed.

This object supports the following interfaces: item-interface, font-interface, text-interface, self-alignment-interface, lyric-syllable-interface, rhythmic-grob-interface and grob-interface

MeasureGrouping

MeasureGrouping objects are created by: Measure_grouping_engraver

Standard settings:

Y-offset-callbacks (list):
'(#<primitive-procedure Side_position_interface::aligned_side>)

see X-offset-callbacks.

print-function (procedure):
Measure_grouping::print

Function taking grob as argument, returning a Stencil object.

padding (dimension, in staff space):
2

Add this much extra space between objects that are next to each other.

direction (direction):
1

Up or down, left or right?

thickness (number):
1

Bar line thickness, measured in linethickness.

height (dimension, in staff space):
2.0

Height of an object in staffspace.

staff-padding (dimension, in staff space):
3

Maintain this much space between reference points and the staff. Its effect is to align objects of differing sizes (like the dynamic p and f) on their baselines.

This object supports the following interfaces: measure-grouping-interface, side-position-interface, spanner-interface and grob-interface

MensuralLigature

MensuralLigature objects are created by: Mensural_ligature_engraver

Standard settings:

thickness (number):
1.4

Bar line thickness, measured in linethickness.

print-function (procedure):
Mensural_ligature::print

Function taking grob as argument, returning a Stencil object.

This object supports the following interfaces: font-interface, mensural-ligature-interface and grob-interface

MetronomeMark

MetronomeMark objects are created by: Metronome_mark_engraver

Standard settings:

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

Y-offset-callbacks (list):
'(#<primitive-procedure Side_position_interface::aligned_side>)

see X-offset-callbacks.

direction (direction):
1

Up or down, left or right?

padding (dimension, in staff space):
0.8

Add this much extra space between objects that are next to each other.

This object supports the following interfaces: item-interface, metronome-mark-interface, font-interface, side-position-interface, text-interface and grob-interface

MultiMeasureRest

MultiMeasureRest objects are created by: Multi_measure_rest_engraver

Standard settings:

spacing-procedure (procedure):
Multi_measure_rest::set_spacing_rods

Procedure for calculating spacing parameters. The routine is called after before-line-breaking-callback.

print-function (procedure):
Multi_measure_rest::print

Function taking grob as argument, returning a Stencil object.

Y-offset-callbacks (list):
'(#<primitive-procedure Staff_symbol_referencer::callback>)

see X-offset-callbacks.

staff-position (number):
0

Vertical position, measured in half staff spaces, counted from the middle line.

expand-limit (integer):
10

maximum number of measures expanded in church rests.

thick-thickness (number):
6.6

Bar line thickness, measured in linethickness.

hair-thickness (number):
2.0

Thickness of the thin line in a bar line.

padding (dimension, in staff space):
1

Add this much extra space between objects that are next to each other.

font-encoding (symbol):
'music

The font encoding is the broadest category for selecting a font. Options include: music, number, text, math, braces, dynamic

This object supports the following interfaces: staff-symbol-referencer-interface, font-interface, rest-interface, multi-measure-interface, multi-measure-rest-interface and grob-interface

MultiMeasureRestNumber

MultiMeasureRestNumber objects are created by: Multi_measure_rest_engraver

Standard settings:

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

X-offset-callbacks (list):
'(#<primitive-procedure Self_alignment_interface::aligned_on_self> #<primitive-procedure Self_alignment_interface::centered_on_other_axis_parent>)

A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.

Y-offset-callbacks (list):
'(#<primitive-procedure Side_position_interface::aligned_side>)

see X-offset-callbacks.

self-alignment-X (number):
0

Specify alignment of an object. The value -1 means left aligned, 0 centered, and 1 right-aligned in X direction. Values in between may also be specified.

direction (direction):
1

Up or down, left or right?

padding (dimension, in staff space):
1.3

Add this much extra space between objects that are next to each other.

staff-padding (dimension, in staff space):
1.3

Maintain this much space between reference points and the staff. Its effect is to align objects of differing sizes (like the dynamic p and f) on their baselines.

font-encoding (symbol):
'number

The font encoding is the broadest category for selecting a font. Options include: music, number, text, math, braces, dynamic

This object supports the following interfaces: text-interface, spanner-interface, font-interface, self-alignment-interface, multi-measure-interface, side-position-interface and grob-interface

MultiMeasureRestText

MultiMeasureRestText objects are created by: Multi_measure_rest_engraver

Standard settings:

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

X-offset-callbacks (list):
'(#<primitive-procedure Self_alignment_interface::aligned_on_self> #<primitive-procedure Self_alignment_interface::centered_on_other_axis_parent>)

A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.

Y-offset-callbacks (list):
'(#<primitive-procedure Side_position_interface::aligned_side>)

see X-offset-callbacks.

self-alignment-X (number):
0

Specify alignment of an object. The value -1 means left aligned, 0 centered, and 1 right-aligned in X direction. Values in between may also be specified.

direction (direction):
1

Up or down, left or right?

padding (dimension, in staff space):
1.5

Add this much extra space between objects that are next to each other.

staff-padding (dimension, in staff space):
1.5

Maintain this much space between reference points and the staff. Its effect is to align objects of differing sizes (like the dynamic p and f) on their baselines.

This object supports the following interfaces: text-interface, spanner-interface, font-interface, self-alignment-interface, multi-measure-interface, side-position-interface and grob-interface

NonMusicalPaperColumn

NonMusicalPaperColumn objects are created by: Score_engraver

Standard settings:

axes (list):
'(0)

list of axis numbers. In the case of alignment grobs, this should contain only one number.

X-extent-callback (procedure):
Axis_group_interface::group_extent_callback

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

before-line-breaking-callback (procedure):
Paper_column::before_line_breaking

This procedure is called before line breaking, but after splitting breakable items at potential line breaks.

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

This object supports the following interfaces: item-interface, spaceable-grob-interface, axis-group-interface, paper-column-interface and grob-interface

NoteCollision

NoteCollision objects are created by: Collision_engraver

Standard settings:

axes (list):
'(0 1)

list of axis numbers. In the case of alignment grobs, this should contain only one number.

X-extent-callback (procedure):
Axis_group_interface::group_extent_callback

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

Y-extent-callback (procedure):
Axis_group_interface::group_extent_callback

see X-extent-callback.

This object supports the following interfaces: item-interface, axis-group-interface, note-collision-interface and grob-interface

NoteColumn

NoteColumn objects are created by: Rhythmic_column_engraver

Standard settings:

axes (list):
'(0 1)

list of axis numbers. In the case of alignment grobs, this should contain only one number.

X-extent-callback (procedure):
Axis_group_interface::group_extent_callback

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

Y-extent-callback (procedure):
Axis_group_interface::group_extent_callback

see X-extent-callback.

This object supports the following interfaces: item-interface, note-column-interface, axis-group-interface and grob-interface

NoteHead

NoteHead objects are created by: Completion_heads_engraver, Drum_notes_engraver and Note_heads_engraver

Standard settings:

style (symbol):
'default

This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.

print-function (procedure):
Note_head::print

Function taking grob as argument, returning a Stencil object.

glyph-name-procedure (procedure):
find-notehead-symbol

Return the name of a character within font, to use for printing a symbol.

X-extent-callback (procedure):
Note_head::extent

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

Y-extent-callback (procedure):
Note_head::extent

see X-extent-callback.

Y-offset-callbacks (list):
'(#<primitive-procedure Staff_symbol_referencer::callback>)

see X-offset-callbacks.

stem-attachment-function (procedure):
note-head-style->attachment-coordinates

A function that calculates where a stem attaches to the note head? This is a fallback when this information is not specified in the font. The function takes a grob and axis argument, and returns a (x . y) pair, specifying location in terms of note head bounding box.

This object supports the following interfaces: item-interface, staff-symbol-referencer-interface, note-head-interface, font-interface, rhythmic-head-interface, rhythmic-grob-interface and grob-interface

NoteName

NoteName objects are created by: Note_name_engraver

Standard settings:

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

This object supports the following interfaces: item-interface, font-interface, text-interface, note-name-interface and grob-interface

NoteSpacing

NoteSpacing objects are created by: Rhythmic_column_engraver

Standard settings:

stem-spacing-correction (number):
0.5

Optical correction amount for stems that are placed in tight configurations. For opposite directions, this amount is the correction for two normal sized stems that overlap completely.

knee-spacing-correction (number):
1.0

Factor for the optical correction amount for kneed beams. Set between 0 for no correction and 1 for full correction.

This object supports the following interfaces: item-interface, note-spacing-interface, spacing-interface and grob-interface

OctavateEight

OctavateEight objects are created by: Clef_engraver

Standard settings:

self-alignment-X (number):
0

Specify alignment of an object. The value -1 means left aligned, 0 centered, and 1 right-aligned in X direction. Values in between may also be specified.

break-visibility (procedure):
begin-of-line-visible

A function that takes the break direction and returns a cons of booleans containing (transparent . empty). The following variables are predefined: all-visible, begin-of-line-visible, end-of-line-visible, begin-of-line-invisible, end-of-line-invisible, all-invisible.

X-offset-callbacks (list):
'(#<primitive-procedure Self_alignment_interface::centered_on_parent> #<primitive-procedure Self_alignment_interface::aligned_on_self>)

A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.

Y-offset-callbacks (list):
'(#<primitive-procedure Side_position_interface::aligned_side>)

see X-offset-callbacks.

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

Y-extent (pair of numbers):
'(0 . 0)

See X-extent.

font-shape (symbol):
'italic

Select the shape of a font. Choices include upright, italic, caps.

padding (dimension, in staff space):
0.6

Add this much extra space between objects that are next to each other.

staff-padding (dimension, in staff space):
0.2

Maintain this much space between reference points and the staff. Its effect is to align objects of differing sizes (like the dynamic p and f) on their baselines.

font-size (number):
-4

The font size, compared the `normal' size. 0 is style-sheet's normal size, -1 is smaller, +1 is bigger. Each step of 1 is approximately 12% larger, 6 steps are exactly a factor 2 larger. Fractional values are allowed.

This object supports the following interfaces: item-interface, font-interface, side-position-interface, self-alignment-interface, text-interface and grob-interface

OttavaBracket

OttavaBracket objects are created by: Ottava_spanner_engraver

Standard settings:

Y-offset-callbacks (list):
'(#<primitive-procedure Side_position_interface::aligned_side>)

see X-offset-callbacks.

print-function (procedure):
Ottava_bracket::print

Function taking grob as argument, returning a Stencil object.

font-shape (symbol):
'italic

Select the shape of a font. Choices include upright, italic, caps.

shorten-pair (pair of numbers):
'(0.0 . -0.6)

The lengths to shorten a text-spanner on both sides, for example a pedal bracket

staff-padding (dimension, in staff space):
1.0

Maintain this much space between reference points and the staff. Its effect is to align objects of differing sizes (like the dynamic p and f) on their baselines.

padding (dimension, in staff space):
0.5

Add this much extra space between objects that are next to each other.

minimum-length (dimension, in staff space):
1.0

Try to make a spanner at least this long. This requires an appropriate routine for the spacing-procedure property.

dash-fraction (number):
0.3

Size of the dashes, relative to dash-period. Should be between 0.0 (no line) and 1.0 (continuous line).

edge-height (pair):
'(0 . 1.2)

A pair of number specifying the heights of the vertical edges '(left-height . right-height).

direction (direction):
1

Up or down, left or right?

This object supports the following interfaces: spanner-interface, text-interface, font-interface, side-position-interface, line-interface, ottava-bracket-interface and grob-interface

PaperColumn

PaperColumn objects are created by: Score_engraver

Standard settings:

axes (list):
'(0)

list of axis numbers. In the case of alignment grobs, this should contain only one number.

before-line-breaking-callback (procedure):
Paper_column::before_line_breaking

This procedure is called before line breaking, but after splitting breakable items at potential line breaks.

X-extent-callback (procedure):
Axis_group_interface::group_extent_callback

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

This object supports the following interfaces: item-interface, spaceable-grob-interface, axis-group-interface, paper-column-interface and grob-interface

PercentRepeat

PercentRepeat objects are created by: Percent_repeat_engraver

Standard settings:

spacing-procedure (procedure):
Multi_measure_rest::set_spacing_rods

Procedure for calculating spacing parameters. The routine is called after before-line-breaking-callback.

print-function (procedure):
Multi_measure_rest::percent

Function taking grob as argument, returning a Stencil object.

slope (number):
1.0

The slope of this object.

thickness (number):
0.48

Bar line thickness, measured in linethickness.

font-encoding (symbol):
'music

The font encoding is the broadest category for selecting a font. Options include: music, number, text, math, braces, dynamic

This object supports the following interfaces: percent-repeat-interface, font-interface, spanner-interface, multi-measure-rest-interface and grob-interface

PhrasingSlur

PhrasingSlur objects are created by: Phrasing_slur_engraver

Standard settings:

print-function (procedure):
Slur::print

Function taking grob as argument, returning a Stencil object.

thickness (number):
1.2

Bar line thickness, measured in linethickness.

spacing-procedure (procedure):
Spanner::set_spacing_rods

Procedure for calculating spacing parameters. The routine is called after before-line-breaking-callback.

minimum-length (dimension, in staff space):
1.5

Try to make a spanner at least this long. This requires an appropriate routine for the spacing-procedure property.

extremity-function (procedure):
calc-slur-extremity

A function that calculates the attachment of a slur-end. The function takes a slur and direction argument and returns a symbol.

extremity-offset-alist (list):
'(((head 1 1) -0.25 . 1.25) ((head 1 -1) -0.25 . 1.25) ((head -1 1) -0.25 . 1.25) ((head -1 -1) -0.85 . 1.25) ((stem 1 1) -0.25 . 1.5) ((stem -1 -1) -0.25 . 1.5) ((loose-end 1 1) -0.4 . 0) ((loose-end 1 -1) -0.4 . 0) ((loose-end -1 -1) -4 . 0) ((loose-end -1 1) -4 . 0))

The offset adds to the centre of the note head, or stem.

Format: alist (attachment stem-dir*dir slur-dir*dir) -> offset.

Y-extent-callback (procedure):
Slur::height

see X-extent-callback.

height-limit (dimension, in staff space):
2.0

Maximum slur height: the longer the slur, the closer it is to this height.

ratio (number):
0.333

Parameter for slur shape. The higher this number, the quicker the slur attains it height-limit.

beautiful (number):
0.5

number that dictates when a slur should be de-uglyfied. It correlates with the enclosed area between noteheads and slurs. A value of 0.1 yields only undisturbed slurs, a value of 5 will tolerate quite high blown slurs.

y-free (dimension, in staff space):
0.75

The minimal vertical gap between slur and note heads or stems.

attachment (pair):
'(#f . #f)

Pair of symbols indicating how a slur should be attached at the ends. The format is '(left-type . right-type), where both types are symbols. The values of these symbols may be alongside-stem, stem, head or loose-end.

attachment-offset (pair):
'((0 . 0) 0 . 0)

cons of offsets, '(left-offset . right-offset). This offset is added to the attachments to prevent ugly slurs. [fixme: we need more documentation here].

slope-limit (number):
0.8

Set slope to zero if slope is running away steeper than this.

This object supports the following interfaces: spanner-interface, slur-interface and grob-interface

PianoPedalBracket

PianoPedalBracket objects are created by: none

Standard settings:

print-function (procedure):
Piano_pedal_bracket::print

Function taking grob as argument, returning a Stencil object.

style (symbol):
'line

This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.

direction (direction):
-1

Up or down, left or right?

bracket-flare (pair of numbers):
'(0.5 . 0.5)

A pair of numbers specifying how much edges of brackets should slant outward. Value 0.0 means straight edges

edge-height (pair):
'(1.0 . 1.0)

A pair of number specifying the heights of the vertical edges '(left-height . right-height).

shorten-pair (pair of numbers):
'(0.0 . 0.0)

The lengths to shorten a text-spanner on both sides, for example a pedal bracket

thickness (number):
1.0

Bar line thickness, measured in linethickness.

This object supports the following interfaces: spanner-interface, piano-pedal-bracket-interface, piano-pedal-interface, line-interface and grob-interface

RehearsalMark

RehearsalMark objects are created by: Mark_engraver

Standard settings:

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

X-offset-callbacks (list):
'(#<primitive-procedure Self_alignment_interface::aligned_on_self>)

A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.

Y-offset-callbacks (list):
'(#<primitive-procedure Side_position_interface::aligned_side>)

see X-offset-callbacks.

self-alignment-X (number):
0

Specify alignment of an object. The value -1 means left aligned, 0 centered, and 1 right-aligned in X direction. Values in between may also be specified.

direction (direction):
1

Up or down, left or right?

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

font-size (number):
2

The font size, compared the `normal' size. 0 is style-sheet's normal size, -1 is smaller, +1 is bigger. Each step of 1 is approximately 12% larger, 6 steps are exactly a factor 2 larger. Fractional values are allowed.

baseline-skip (dimension, in staff space):
2

Distance between base lines of multiple lines of text.

break-visibility (procedure):
end-of-line-invisible

A function that takes the break direction and returns a cons of booleans containing (transparent . empty). The following variables are predefined: all-visible, begin-of-line-visible, end-of-line-visible, begin-of-line-invisible, end-of-line-invisible, all-invisible.

padding (dimension, in staff space):
0.8

Add this much extra space between objects that are next to each other.

This object supports the following interfaces: item-interface, self-alignment-interface, mark-interface, font-interface, side-position-interface, text-interface and grob-interface

RemoveEmptyVerticalGroup

RemoveEmptyVerticalGroup objects are created by: Hara_kiri_engraver

Standard settings:

Y-offset-callbacks (list):
'(#<primitive-procedure Hara_kiri_group_spanner::force_hara_kiri_callback>)

see X-offset-callbacks.

Y-extent-callback (procedure):
Hara_kiri_group_spanner::y_extent

see X-extent-callback.

remove-first (boolean):
#t

Remove the first staff of a orchestral score?

axes (list):
'(1)

list of axis numbers. In the case of alignment grobs, this should contain only one number.

This object supports the following interfaces: spanner-interface, item-interface, hara-kiri-group-interface, axis-group-interface and grob-interface

RepeatSlash

RepeatSlash objects are created by: Slash_repeat_engraver

Standard settings:

print-function (procedure):
Percent_repeat_item_interface::beat_slash

Function taking grob as argument, returning a Stencil object.

thickness (number):
0.48

Bar line thickness, measured in linethickness.

slope (number):
1.7

The slope of this object.

This object supports the following interfaces: item-interface, percent-repeat-interface and grob-interface

Rest

Rest objects are created by: Rest_engraver

Standard settings:

X-extent-callback (procedure):
Rest::extent_callback

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

Y-extent-callback (procedure):
Rest::extent_callback

see X-extent-callback.

print-function (procedure):
Rest::print

Function taking grob as argument, returning a Stencil object.

Y-offset-callbacks (list):
'(#<primitive-procedure Staff_symbol_referencer::callback> #<primitive-procedure Rest::polyphonic_offset_callback>)

see X-offset-callbacks.

minimum-distance (dimension, in staff space):
0.25

Minimum distance between rest and notes or beam.

This object supports the following interfaces: item-interface, rest-interface, staff-symbol-referencer-interface, rhythmic-grob-interface, rhythmic-head-interface, font-interface and grob-interface

RestCollision

RestCollision objects are created by: Rest_collision_engraver

Standard settings:

minimum-distance (dimension, in staff space):
0.75

Minimum distance between rest and notes or beam.

This object supports the following interfaces: item-interface, rest-collision-interface and grob-interface

Script

Script objects are created by: Drum_notes_engraver and Script_engraver

Standard settings:

print-function (procedure):
Script_interface::print

Function taking grob as argument, returning a Stencil object.

padding (dimension, in staff space):
0.2

Add this much extra space between objects that are next to each other.

staff-padding (dimension, in staff space):
0.25

Maintain this much space between reference points and the staff. Its effect is to align objects of differing sizes (like the dynamic p and f) on their baselines.

X-offset-callbacks (list):
'(#<primitive-procedure Self_alignment_interface::centered_on_parent>)

A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.

before-line-breaking-callback (procedure):
Script_interface::before_line_breaking

This procedure is called before line breaking, but after splitting breakable items at potential line breaks.

font-encoding (symbol):
'music

The font encoding is the broadest category for selecting a font. Options include: music, number, text, math, braces, dynamic

This object supports the following interfaces: item-interface, font-interface, side-position-interface, script-interface and grob-interface

ScriptColumn

ScriptColumn objects are created by: Script_column_engraver

Standard settings:

before-line-breaking-callback (procedure):
Script_column::before_line_breaking

This procedure is called before line breaking, but after splitting breakable items at potential line breaks.

This object supports the following interfaces: item-interface, script-column-interface and grob-interface

SeparatingGroupSpanner

SeparatingGroupSpanner objects are created by: Separating_line_group_engraver

Standard settings:

spacing-procedure (procedure):
Separating_group_spanner::set_spacing_rods

Procedure for calculating spacing parameters. The routine is called after before-line-breaking-callback.

This object supports the following interfaces: spanner-interface, separation-spanner-interface, spacing-interface, only-prebreak-interface and grob-interface

SeparationItem

SeparationItem objects are created by: Separating_line_group_engraver

Standard settings:

X-extent-callback (procedure):
#f

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

Y-extent-callback (procedure):
#f

see X-extent-callback.

This object supports the following interfaces: item-interface, separation-item-interface, spacing-interface and grob-interface

Slur

Slur objects are created by: Slur_engraver

Standard settings:

print-function (procedure):
Slur::print

Function taking grob as argument, returning a Stencil object.

thickness (number):
1.2

Bar line thickness, measured in linethickness.

spacing-procedure (procedure):
Spanner::set_spacing_rods

Procedure for calculating spacing parameters. The routine is called after before-line-breaking-callback.

minimum-length (dimension, in staff space):
1.5

Try to make a spanner at least this long. This requires an appropriate routine for the spacing-procedure property.

extremity-function (procedure):
calc-slur-extremity

A function that calculates the attachment of a slur-end. The function takes a slur and direction argument and returns a symbol.

extremity-offset-alist (list):
'(((head 1 1) -0.25 . 0.75) ((head 1 -1) -0.25 . 0.75) ((head -1 1) -0.25 . 0.75) ((head -1 -1) -0.85 . 0.75) ((stem 1 1) -0.125 . 0.5) ((stem -1 -1) -0.125 . 0.5) ((loose-end 1 1) -0.4 . 0) ((loose-end 1 -1) -0.4 . 0) ((loose-end -1 -1) -4 . 0) ((loose-end -1 1) -4 . 0))

The offset adds to the centre of the note head, or stem.

Format: alist (attachment stem-dir*dir slur-dir*dir) -> offset.

Y-extent-callback (procedure):
Slur::height

see X-extent-callback.

height-limit (dimension, in staff space):
2.0

Maximum slur height: the longer the slur, the closer it is to this height.

ratio (number):
0.333

Parameter for slur shape. The higher this number, the quicker the slur attains it height-limit.

beautiful (number):
0.5

number that dictates when a slur should be de-uglyfied. It correlates with the enclosed area between noteheads and slurs. A value of 0.1 yields only undisturbed slurs, a value of 5 will tolerate quite high blown slurs.

y-free (dimension, in staff space):
0.75

The minimal vertical gap between slur and note heads or stems.

attachment (pair):
'(#f . #f)

Pair of symbols indicating how a slur should be attached at the ends. The format is '(left-type . right-type), where both types are symbols. The values of these symbols may be alongside-stem, stem, head or loose-end.

attachment-offset (pair):
'((0 . 0) 0 . 0)

cons of offsets, '(left-offset . right-offset). This offset is added to the attachments to prevent ugly slurs. [fixme: we need more documentation here].

slope-limit (number):
0.8

Set slope to zero if slope is running away steeper than this.

This object supports the following interfaces: spanner-interface, slur-interface and grob-interface

SostenutoPedal

SostenutoPedal objects are created by: Piano_pedal_engraver

Standard settings:

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

direction (direction):
1

Up or down, left or right?

X-offset-callbacks (list):
'(#<primitive-procedure Self_alignment_interface::aligned_on_self>)

A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.

no-spacing-rods (boolean):
#t

Items with this property do not cause spacing constraints.

padding (dimension, in staff space):
0.0

Add this much extra space between objects that are next to each other.

font-shape (symbol):
'italic

Select the shape of a font. Choices include upright, italic, caps.

self-alignment-X (number):
0

Specify alignment of an object. The value -1 means left aligned, 0 centered, and 1 right-aligned in X direction. Values in between may also be specified.

This object supports the following interfaces: item-interface, font-interface, self-alignment-interface, text-interface and grob-interface

SostenutoPedalLineSpanner

SostenutoPedalLineSpanner objects are created by: Piano_pedal_engraver

Standard settings:

axes (list):
'(1)

list of axis numbers. In the case of alignment grobs, this should contain only one number.

Y-extent-callback (procedure):
Axis_group_interface::group_extent_callback

see X-extent-callback.

Y-offset-callbacks (list):
'(#<primitive-procedure Side_position_interface::aligned_side>)

see X-offset-callbacks.

padding (dimension, in staff space):
1.2

Add this much extra space between objects that are next to each other.

minimum-space (dimension, in staff space):
1.0

Minimum distance that the victim should move (after padding).

direction (direction):
-1

Up or down, left or right?

This object supports the following interfaces: spanner-interface, side-position-interface, axis-group-interface, piano-pedal-interface and grob-interface

SpacingSpanner

SpacingSpanner objects are created by: Spacing_engraver

Standard settings:

spacing-procedure (procedure):
Spacing_spanner::set_springs

Procedure for calculating spacing parameters. The routine is called after before-line-breaking-callback.

grace-space-factor (number):
0.6

Space grace notes at this fraction of the spacing-increment.

shortest-duration-space (dimension, in staff space):
2.0

Start with this much space for the shortest duration. This is expressed in spacing-increment as unit. See also spacing-spanner-interface.

spacing-increment (number):
1.2

Add this much space for a doubled duration. Typically, the width of a note head. See also spacing-spanner-interface.

base-shortest-duration (moment):
'#<Mom 1/8>

Spacing is based on the shortest notes in a piece. Normally, pieces are spaced as if notes at least as short as this are present.

This object supports the following interfaces: spanner-interface, spacing-spanner-interface, spacing-interface and grob-interface

SpanBar

SpanBar objects are created by: Span_bar_engraver

Standard settings:

break-align-symbol (symbol):
'staff-bar

This key is used for aligning and spacing breakable items.

bar-size-procedure (procedure):
Span_bar::get_bar_size

Procedure that computes the size of a bar line.

print-function (procedure):
Span_bar::print

Function taking grob as argument, returning a Stencil object.

X-extent-callback (procedure):
Span_bar::width_callback

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

Y-extent-callback (procedure):
'()

see X-extent-callback.

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

before-line-breaking-callback (procedure):
Span_bar::before_line_breaking

This procedure is called before line breaking, but after splitting breakable items at potential line breaks.

kern (dimension, in staff space):
3.0

Amount of extra white space to add. For bar line, this is the amount of space after a thick line.

thin-kern (number):
3.0

The space after a hair-line in a bar line.

hair-thickness (number):
1.6

Thickness of the thin line in a bar line.

thick-thickness (number):
6.0

Bar line thickness, measured in linethickness.

This object supports the following interfaces: item-interface, bar-line-interface, font-interface, span-bar-interface and grob-interface

StaffSpacing

StaffSpacing objects are created by: Separating_line_group_engraver

Standard settings:

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

stem-spacing-correction (number):
0.4

Optical correction amount for stems that are placed in tight configurations. For opposite directions, this amount is the correction for two normal sized stems that overlap completely.

This object supports the following interfaces: item-interface, staff-spacing-interface, spacing-interface and grob-interface

StaffSymbol

StaffSymbol objects are created by: Staff_symbol_engraver and Tab_staff_symbol_engraver

Standard settings:

print-function (procedure):
Staff_symbol::print

Function taking grob as argument, returning a Stencil object.

line-count (integer):
5

The number of staff lines.

ledger-line-thickness (pair of numbers):
'(1.0 . 0.1)

The thickness of ledger lines: it is the sum of 2 numbers. The first is the factor for line thickness, and the second for staff space. Both contributions are added.

layer (number):
0

The output layer [0..2]: layers define the order of printing objects. Objects in lower layers are overprinted by objects in higher layers.

This object supports the following interfaces: spanner-interface, staff-symbol-interface and grob-interface

StanzaNumber

StanzaNumber objects are created by: Stanza_number_engraver

Standard settings:

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

font-series (symbol):
'bold

Select the series of a font. Choices include medium, bold, bold-narrow, etc.

padding (dimension, in staff space):
1.0

Add this much extra space between objects that are next to each other.

X-offset-callbacks (list):
'(#<primitive-procedure Side_position_interface::aligned_side>)

A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.

direction (direction):
-1

Up or down, left or right?

This object supports the following interfaces: item-interface, font-interface, text-interface, stanza-number-interface, side-position-interface and grob-interface

Stem

Stem objects are created by: Stem_engraver

Standard settings:

before-line-breaking-callback (procedure):
Stem::before_line_breaking

This procedure is called before line breaking, but after splitting breakable items at potential line breaks.

print-function (procedure):
Stem::print

Function taking grob as argument, returning a Stencil object.

thickness (number):
1.3

Bar line thickness, measured in linethickness.

lengths (list):
'(3.5 3.5 3.5 4.5 5.0)

Default stem lengths. The list gives a length for each flag-count.

stem-shorten (list):
'(1.0 0.5)

How much a stem in a forced direction should be shortened. The list gives an amount depending on the number of flags/beams.

neutral-direction (direction):
-1

Which direction to take in the center of the staff.

beamed-lengths (list):
'(3.5 3.5 3.5 4.5 5.0)

list of stem lengths given beam multiplicity .

beamed-minimum-free-lengths (list):
'(1.83 1.5 1.25)

list of normal minimum free stem lengths (chord to beams) given beam multiplicity.

beamed-extreme-minimum-free-lengths (list):
'(2.0 1.25)

list of extreme minimum free stem lengths (chord to beams) given beam multiplicity.

X-offset-callbacks (list):
'(#<primitive-procedure Stem::off_callback>)

A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.

X-extent-callback (procedure):
Stem::dim_callback

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

Y-extent-callback (procedure):
Stem::height

see X-extent-callback.

Y-offset-callbacks (list):
'(#<primitive-procedure Staff_symbol_referencer::callback>)

see X-offset-callbacks.

This object supports the following interfaces: item-interface, font-interface, stem-interface and grob-interface

StemTremolo

StemTremolo objects are created by: Stem_engraver

Standard settings:

print-function (procedure):
Stem_tremolo::print

Function taking grob as argument, returning a Stencil object.

Y-extent-callback (procedure):
Stem_tremolo::height

see X-extent-callback.

X-extent-callback (procedure):
#f

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

beam-width (dimension, in staff space):
1.6

width of the tremolo sign.

beam-thickness (dimension, in staff space):
0.48

thickness, measured in staffspace.

This object supports the following interfaces: item-interface, stem-tremolo-interface and grob-interface

SustainPedal

SustainPedal objects are created by: Piano_pedal_engraver

Standard settings:

no-spacing-rods (boolean):
#t

Items with this property do not cause spacing constraints.

print-function (procedure):
Sustain_pedal::print

Function taking grob as argument, returning a Stencil object.

self-alignment-X (number):
0

Specify alignment of an object. The value -1 means left aligned, 0 centered, and 1 right-aligned in X direction. Values in between may also be specified.

direction (direction):
1

Up or down, left or right?

padding (dimension, in staff space):
0.0

Add this much extra space between objects that are next to each other.

X-offset-callbacks (list):
'(#<primitive-procedure Self_alignment_interface::aligned_on_self>)

A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.

This object supports the following interfaces: item-interface, font-interface, self-alignment-interface, text-interface, text-spanner-interface, piano-pedal-interface and grob-interface

SustainPedalLineSpanner

SustainPedalLineSpanner objects are created by: Piano_pedal_engraver

Standard settings:

axes (list):
'(1)

list of axis numbers. In the case of alignment grobs, this should contain only one number.

Y-extent-callback (procedure):
Axis_group_interface::group_extent_callback

see X-extent-callback.

Y-offset-callbacks (list):
'(#<primitive-procedure Side_position_interface::aligned_side>)

see X-offset-callbacks.

padding (dimension, in staff space):
1.2

Add this much extra space between objects that are next to each other.

staff-padding (dimension, in staff space):
1.2

Maintain this much space between reference points and the staff. Its effect is to align objects of differing sizes (like the dynamic p and f) on their baselines.

minimum-space (dimension, in staff space):
1.0

Minimum distance that the victim should move (after padding).

direction (direction):
-1

Up or down, left or right?

This object supports the following interfaces: spanner-interface, side-position-interface, axis-group-interface, piano-pedal-interface and grob-interface

System

System objects are created by: Score_engraver

Standard settings:

axes (list):
'(0 1)

list of axis numbers. In the case of alignment grobs, this should contain only one number.

X-extent-callback (procedure):
Axis_group_interface::group_extent_callback

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

Y-extent-callback (procedure):
Axis_group_interface::group_extent_callback

see X-extent-callback.

This object supports the following interfaces: spanner-interface, axis-group-interface, system-interface and grob-interface

SystemStartBar

SystemStartBar objects are created by: System_start_delimiter_engraver

Standard settings:

Y-extent-callback (procedure):
#f

see X-extent-callback.

print-function (procedure):
System_start_delimiter::print

Function taking grob as argument, returning a Stencil object.

glyph (string):
bar-line

a string determining what (style) of glyph is typeset. Valid choices depend on the function that is reading this property.

thickness (number):
1.6

Bar line thickness, measured in linethickness.

This object supports the following interfaces: spanner-interface, system-start-delimiter-interface and grob-interface

SystemStartBrace

SystemStartBrace objects are created by: System_start_delimiter_engraver

Standard settings:

glyph (string):
brace

a string determining what (style) of glyph is typeset. Valid choices depend on the function that is reading this property.

print-function (procedure):
System_start_delimiter::print

Function taking grob as argument, returning a Stencil object.

collapse-height (dimension, in staff space):
5.0

Minimum height of system start delimiter. If equal or smaller, the bracket is removed.

font-encoding (symbol):
'braces

The font encoding is the broadest category for selecting a font. Options include: music, number, text, math, braces, dynamic

Y-extent-callback (procedure):
#f

see X-extent-callback.

This object supports the following interfaces: font-interface, system-start-delimiter-interface and grob-interface

SystemStartBracket

SystemStartBracket objects are created by: System_start_delimiter_engraver

Standard settings:

Y-extent-callback (procedure):
#f

see X-extent-callback.

print-function (procedure):
System_start_delimiter::print

Function taking grob as argument, returning a Stencil object.

glyph (string):
bracket

a string determining what (style) of glyph is typeset. Valid choices depend on the function that is reading this property.

arch-height (dimension, in staff space):
1.5

Height of the hook of a system brace.

arch-angle (number):
50.0

Turning angle of the hook of a system brace

arch-thick (number):
0.25

Thickness of the hook of system brace.

arch-width (dimension, in staff space):
1.5

Width of the hook of a system brace.

collapse-height (dimension, in staff space):
1

Minimum height of system start delimiter. If equal or smaller, the bracket is removed.

thickness (number):
0.25

Bar line thickness, measured in linethickness.

This object supports the following interfaces: spanner-interface, system-start-delimiter-interface and grob-interface

TabNoteHead

TabNoteHead objects are created by: Tab_note_heads_engraver

Standard settings:

style (symbol):
'default

This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

Y-offset-callbacks (list):
'(#<primitive-procedure Staff_symbol_referencer::callback>)

see X-offset-callbacks.

extra-offset (pair of numbers):
'(0 . -0.65)

A pair representing an offset. This offset is added just before outputting the symbol, so the typesetting engine is completely oblivious to it.

stem-attachment-function (procedure):
tablature-stem-attachment-function

A function that calculates where a stem attaches to the note head? This is a fallback when this information is not specified in the font. The function takes a grob and axis argument, and returns a (x . y) pair, specifying location in terms of note head bounding box.

This object supports the following interfaces: item-interface, text-interface, staff-symbol-referencer-interface, note-head-interface, font-interface, rhythmic-head-interface and grob-interface

TextScript

TextScript objects are created by: Text_engraver

Standard settings:

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

no-spacing-rods (boolean):
#t

Items with this property do not cause spacing constraints.

X-offset-callbacks (list):
'(#<primitive-procedure Self_alignment_interface::aligned_on_self>)

A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.

direction (direction):
-1

Up or down, left or right?

padding (dimension, in staff space):
0.5

Add this much extra space between objects that are next to each other.

staff-padding (dimension, in staff space):
0.5

Maintain this much space between reference points and the staff. Its effect is to align objects of differing sizes (like the dynamic p and f) on their baselines.

script-priority (number):
200

A sorting key that determines in what order a script is within a stack of scripts.

This object supports the following interfaces: item-interface, font-interface, side-position-interface, text-interface, text-script-interface and grob-interface

TextSpanner

TextSpanner objects are created by: Dynamic_engraver and Text_spanner_engraver

Standard settings:

print-function (procedure):
Text_spanner::print

Function taking grob as argument, returning a Stencil object.

font-shape (symbol):
'italic

Select the shape of a font. Choices include upright, italic, caps.

style (symbol):
'dashed-line

This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.

staff-padding (dimension, in staff space):
0.1

Maintain this much space between reference points and the staff. Its effect is to align objects of differing sizes (like the dynamic p and f) on their baselines.

dash-fraction (number):
0.2

Size of the dashes, relative to dash-period. Should be between 0.0 (no line) and 1.0 (continuous line).

dash-period (number):
3.0

the length of one dash + white space. If negative, no line is drawn at all.

direction (direction):
1

Up or down, left or right?

This object supports the following interfaces: spanner-interface, font-interface, side-position-interface, text-spanner-interface and grob-interface

Tie

Tie objects are created by: Completion_heads_engraver and Tie_engraver

Standard settings:

print-function (procedure):
Tie::print

Function taking grob as argument, returning a Stencil object.

spacing-procedure (procedure):
Spanner::set_spacing_rods

Procedure for calculating spacing parameters. The routine is called after before-line-breaking-callback.

staffline-clearance (dimension, in staff space):
0.35

How far away ties keep from staff lines.

thickness (number):
1.2

Bar line thickness, measured in linethickness.

x-gap (dimension, in staff space):
-0.1

The horizontal gap between note head and tie.

y-offset (dimension, in staff space):
0.6

Extra vertical offset for ties away from the center line.

minimum-length (dimension, in staff space):
2.5

Try to make a spanner at least this long. This requires an appropriate routine for the spacing-procedure property.

This object supports the following interfaces: spanner-interface, tie-interface and grob-interface

TieColumn

TieColumn objects are created by: Tie_engraver

Standard settings:

X-extent-callback (procedure):
#f

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

Y-extent-callback (procedure):
#f

see X-extent-callback.

This object supports the following interfaces: spanner-interface, tie-column-interface and grob-interface

TimeSignature

TimeSignature objects are created by: Time_signature_engraver

Standard settings:

print-function (procedure):
Time_signature::print

Function taking grob as argument, returning a Stencil object.

break-align-symbol (symbol):
'time-signature

This key is used for aligning and spacing breakable items.

break-visibility (procedure):
all-visible

A function that takes the break direction and returns a cons of booleans containing (transparent . empty). The following variables are predefined: all-visible, begin-of-line-visible, end-of-line-visible, begin-of-line-invisible, end-of-line-invisible, all-invisible.

space-alist (list):
'((first-note fixed-space . 2.0) (right-edge extra-space . 0.5) (staff-bar minimum-space . 2.0))

A table that specifies distances between prefatory items, like clef and time-signature. The format is an alist of spacing tuples: (break-align-symbol type . distance), where type can be the symbols minimum-space or extra-space.

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

style (symbol):
'C

This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.

This object supports the following interfaces: item-interface, font-interface, break-aligned-interface, time-signature-interface and grob-interface

TupletBracket

TupletBracket objects are created by: Ligature_bracket_engraver and Tuplet_engraver

Standard settings:

padding (dimension, in staff space):
1.1

Add this much extra space between objects that are next to each other.

thickness (number):
1.6

Bar line thickness, measured in linethickness.

edge-height (pair):
'(0.7 . 0.7)

A pair of number specifying the heights of the vertical edges '(left-height . right-height).

shorten-pair (pair of numbers):
'(-0.2 . -0.2)

The lengths to shorten a text-spanner on both sides, for example a pedal bracket

before-line-breaking-callback (procedure):
Tuplet_bracket::before_line_breaking

This procedure is called before line breaking, but after splitting breakable items at potential line breaks.

print-function (procedure):
Tuplet_bracket::print

Function taking grob as argument, returning a Stencil object.

font-shape (symbol):
'italic

Select the shape of a font. Choices include upright, italic, caps.

font-series (symbol):
'bold

Select the series of a font. Choices include medium, bold, bold-narrow, etc.

font-size (number):
-2

The font size, compared the `normal' size. 0 is style-sheet's normal size, -1 is smaller, +1 is bigger. Each step of 1 is approximately 12% larger, 6 steps are exactly a factor 2 larger. Fractional values are allowed.

This object supports the following interfaces: spanner-interface, font-interface, tuplet-bracket-interface, line-interface, text-interface and grob-interface

UnaCordaPedal

UnaCordaPedal objects are created by: Piano_pedal_engraver

Standard settings:

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

font-shape (symbol):
'italic

Select the shape of a font. Choices include upright, italic, caps.

no-spacing-rods (boolean):
#t

Items with this property do not cause spacing constraints.

self-alignment-X (number):
0

Specify alignment of an object. The value -1 means left aligned, 0 centered, and 1 right-aligned in X direction. Values in between may also be specified.

direction (direction):
1

Up or down, left or right?

padding (dimension, in staff space):
0.0

Add this much extra space between objects that are next to each other.

X-offset-callbacks (list):
'(#<primitive-procedure Self_alignment_interface::aligned_on_self>)

A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.

This object supports the following interfaces: item-interface, font-interface, self-alignment-interface, text-interface and grob-interface

UnaCordaPedalLineSpanner

UnaCordaPedalLineSpanner objects are created by: Piano_pedal_engraver

Standard settings:

axes (list):
'(1)

list of axis numbers. In the case of alignment grobs, this should contain only one number.

Y-extent-callback (procedure):
Axis_group_interface::group_extent_callback

see X-extent-callback.

Y-offset-callbacks (list):
'(#<primitive-procedure Side_position_interface::aligned_side>)

see X-offset-callbacks.

padding (dimension, in staff space):
1.2

Add this much extra space between objects that are next to each other.

staff-padding (dimension, in staff space):
1.2

Maintain this much space between reference points and the staff. Its effect is to align objects of differing sizes (like the dynamic p and f) on their baselines.

minimum-space (dimension, in staff space):
1.0

Minimum distance that the victim should move (after padding).

direction (direction):
-1

Up or down, left or right?

This object supports the following interfaces: spanner-interface, side-position-interface, axis-group-interface, piano-pedal-interface and grob-interface

VaticanaLigature

VaticanaLigature objects are created by: Vaticana_ligature_engraver

Standard settings:

thickness (number):
0.6

Bar line thickness, measured in linethickness.

print-function (procedure):
Vaticana_ligature::print

Function taking grob as argument, returning a Stencil object.

This object supports the following interfaces: font-interface, vaticana-ligature-interface and grob-interface

VerticalAlignment

VerticalAlignment objects are created by: Vertical_align_engraver

Standard settings:

axes (list):
'(1)

list of axis numbers. In the case of alignment grobs, this should contain only one number.

Y-extent-callback (procedure):
Axis_group_interface::group_extent_callback

see X-extent-callback.

X-extent-callback (procedure):
Axis_group_interface::group_extent_callback

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

stacking-dir (direction):
-1

Stack objects in which direction?

This object supports the following interfaces: spanner-interface, axis-group-interface, align-interface and grob-interface

VerticalAxisGroup

VerticalAxisGroup objects are created by: Axis_group_engraver

Standard settings:

axes (list):
'(1)

list of axis numbers. In the case of alignment grobs, this should contain only one number.

Y-extent-callback (procedure):
Axis_group_interface::group_extent_callback

see X-extent-callback.

X-extent-callback (procedure):
Axis_group_interface::group_extent_callback

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

This object supports the following interfaces: spanner-interface, axis-group-interface and grob-interface

VocalName

VocalName objects are created by: Vocal_name_engraver

Standard settings:

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

Y-offset-callbacks (list):
'(#<primitive-procedure Side_position_interface::aligned_on_support_refpoints>)

see X-offset-callbacks.

direction (direction):
0

Up or down, left or right?

space-alist (list):
'((left-edge extra-space . 1.0))

A table that specifies distances between prefatory items, like clef and time-signature. The format is an alist of spacing tuples: (break-align-symbol type . distance), where type can be the symbols minimum-space or extra-space.

break-align-symbol (symbol):
'instrument-name

This key is used for aligning and spacing breakable items.

print-function (procedure):
Text_item::print

Function taking grob as argument, returning a Stencil object.

break-align-symbol (symbol):
'instrument-name

This key is used for aligning and spacing breakable items.

break-visibility (procedure):
begin-of-line-visible

A function that takes the break direction and returns a cons of booleans containing (transparent . empty). The following variables are predefined: all-visible, begin-of-line-visible, end-of-line-visible, begin-of-line-invisible, end-of-line-invisible, all-invisible.

baseline-skip (dimension, in staff space):
2

Distance between base lines of multiple lines of text.

This object supports the following interfaces: item-interface, break-aligned-interface, text-interface, side-position-interface, self-alignment-interface, font-interface and grob-interface

VoiceFollower

VoiceFollower objects are created by: Note_head_line_engraver

Standard settings:

style (symbol):
'line

This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.

gap (dimension, in staff space):
0.5

Size of a gap in a variable symbol.

breakable (boolean):
#t

Can this object appear at a line break, like clefs and bar lines?

X-extent-callback (procedure):
#f

Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.

Y-extent-callback (procedure):
#f

see X-extent-callback.

print-function (procedure):
Line_spanner::print

Function taking grob as argument, returning a Stencil object.

This object supports the following interfaces: spanner-interface, line-spanner-interface and grob-interface

VoltaBracket

VoltaBracket objects are created by: Volta_engraver

Standard settings:

print-function (procedure):
Volta_bracket_interface::print

Function taking grob as argument, returning a Stencil object.

direction (direction):
1

Up or down, left or right?

padding (dimension, in staff space):
1

Add this much extra space between objects that are next to each other.

font-encoding (symbol):
'number

The font encoding is the broadest category for selecting a font. Options include: music, number, text, math, braces, dynamic

Y-offset-callbacks (list):
'(#<primitive-procedure Side_position_interface::aligned_side>)

see X-offset-callbacks.

thickness (number):
1.6

Bar line thickness, measured in linethickness.

height (dimension, in staff space):
2.0

Height of an object in staffspace.

minimum-space (dimension, in staff space):
5

Minimum distance that the victim should move (after padding).

font-size (number):
-4

The font size, compared the `normal' size. 0 is style-sheet's normal size, -1 is smaller, +1 is bigger. Each step of 1 is approximately 12% larger, 6 steps are exactly a factor 2 larger. Fractional values are allowed.

This object supports the following interfaces: spanner-interface, font-interface, side-position-interface, text-interface, line-interface, volta-bracket-interface and grob-interface

Graphical Object Interfaces

accidental-interface

a single accidental

User settable properties:
accidentals (list)
List of alteration numbers.
cautionary (boolean)
Is this a cautionary accidental?
cautionary-style (symbol)
How to print cautionary accidentals. Choices are smaller or parentheses.
style (symbol)
This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.
Internal properties:
tie (layout object)

This grob interface is used in the following graphical objects: Accidental

accidental-placement-interface

Resolve accidental collisions.

User settable properties:
left-padding (dimension, in staff space)
The amount of space that is put left to a group of accidentals.
padding (dimension, in staff space)
Add this much extra space between objects that are next to each other.
right-padding (dimension, in staff space)
Space to insert between note and accidentals.
Internal properties:
accidental-grobs (list)
Alist with (NOTENAME . GROBLIST) entries
positioning-done (boolean)
Used to signal that a positioning element did its job. This ensures that a positioning is only done once.

This grob interface is used in the following graphical objects: AccidentalPlacement

align-interface

Order grobs from top to bottom, left to right, right to left or bottomto top.

User settable properties:
align-dir (direction)
Which side to align? -1: left side, 0: around center of width, 1: right side.
axes (list)
list of axis numbers. In the case of alignment grobs, this should contain only one number.
forced-distance (dimension, in staff space)
A fixed distance between object reference points in an alignment.
stacking-dir (direction)
Stack objects in which direction?
threshold (pair of numbers)
(min . max), where min and max are dimensions in staff space.
Internal properties:
center-element (layout object)
grob which will be at the center of the group after aligning (when using Align_interface::center_on_element).
elements (list of grobs)
list of grobs, type depending on the Grob where this is set in.
positioning-done (boolean)
Used to signal that a positioning element did its job. This ensures that a positioning is only done once.

This grob interface is used in the following graphical objects: VerticalAlignment

ambitus-interface

An object that represents the pitch range of a voice.

User settable properties:
accidentals (list)
List of alteration numbers.
c0-position (integer)
An integer indicating the position of middle C.
pitch-max (pitch)
Top pitch for ambitus.
pitch-min (pitch)
Bottom pitch for ambitus.
Internal properties:
accidentals-style (symbol)
style for ambitus.
join-heads (boolean)
Whether to join the note heads of an ambitus grob with a vertical line.
note-head-style (string)
name of the font character to be used as note heads in the ambitus grob.

This grob interface is used in the following graphical objects: Ambitus

arpeggio-interface

Functions and settings for drawing an arpeggio symbol (a wavy line left to noteheads.

User settable properties:
arpeggio-direction (direction)
If set, put an arrow on the arpeggio squiggly line.
Internal properties:
stems (list of grobs)
list of stem objects, corresponding to the notes that the arpeggio has to be before.

This grob interface is used in the following graphical objects: Arpeggio

axis-group-interface

An object that groups other layout objects.

User settable properties:
axes (list)
list of axis numbers. In the case of alignment grobs, this should contain only one number.
Internal properties:
elements (list of grobs)
list of grobs, type depending on the Grob where this is set in.

This grob interface is used in the following graphical objects: BreakAlignGroup, BreakAlignment, DotColumn, DynamicLineSpanner, NonMusicalPaperColumn, NoteCollision, NoteColumn, PaperColumn, RemoveEmptyVerticalGroup, SostenutoPedalLineSpanner, SustainPedalLineSpanner, System, UnaCordaPedalLineSpanner, VerticalAlignment and VerticalAxisGroup

bar-line-interface

Bar line.

Print a special bar symbol. It replaces the regular bar symbol with a special symbol. The argument bartype is a string which specifies the kind of bar to print. Options are :|, |:, :|:, ||, |., .|, and .|..

These produce, respectively, a right repeat, a left repeat, a double repeat, a double bar, a start bar, an end bar, and a thick double bar. If bartype is set to empty then nothing is printed, but a line break is allowed at that spot.

User settable properties:
bar-size (dimension, in staff space)
size of a bar line.
bar-size-procedure (procedure)
Procedure that computes the size of a bar line.
break-glyph-function (procedure)
This function determines the appearance of a bar line at the line break. It takes a glyph and break-direction and returns the glyph at a line break.
glyph (string)
a string determining what (style) of glyph is typeset. Valid choices depend on the function that is reading this property.
hair-thickness (number)
Thickness of the thin line in a bar line.
kern (dimension, in staff space)
Amount of extra white space to add. For bar line, this is the amount of space after a thick line.
thick-thickness (number)
Bar line thickness, measured in linethickness.
thin-kern (number)
The space after a hair-line in a bar line.

This grob interface is used in the following graphical objects: BarLine and SpanBar

bass-figure-interface

A bass figure, including bracket

This grob interface is used in the following graphical objects: BassFigure

beam-interface

A beam.

The thickness property is the weight of beams, and is measured in staffspace

User settable properties:
auto-knee-gap (dimension, in staff space)
If a gap is found between note heads where a horizontal beam fits that is larger than this number, make a kneed beam.
beamed-stem-shorten (list)
How much to shorten beamed stems, when their direction is forced. It is a list, since the value is different depending on the number flags/beams.
concaveness-gap (dimension, in staff space)
A beam is printed horizontally if its concaveness-gap is larger than this value. The concaveness-gap is the distance of an inner note head to the line between two outer note heads.
concaveness-threshold (number)
A beam is printed horizontally if its concaveness is bigger than this threshold.

Concaveness is calculated as the sum of the vertical distances of inner note heads that fall outside the interval of the two outer note heads, to the vertically nearest outer note head, divided by the square of the inner notes involved.

damping (integer)
Amount of beam slope damping. 0: no, 1: yes, 100000: horizontal beams.
dir-function (procedure)
The function to determine the direction of a beam. Choices include:
beam-dir-majority
number count of up or down notes
beam-dir-mean
mean center distance of all notes
beam-dir-median.
mean center distance weighted per note

flag-width-function (procedure)
Procedure that computes the width of a half-beam (a non-connecting beam.).
gap (dimension, in staff space)
Size of a gap in a variable symbol.
gap-count (integer)
Number of gapped beams for tremolo.
knee (boolean)
Is this beam kneed?
neutral-direction (direction)
Which direction to take in the center of the staff.
positions (pair)
Pair of staff coordinates (left . right), where both left and right are in the staff-space unit of the current staff.
space-function (procedure)
Calculate the vertical space between two beams. This function takes a beam grob and the maximum number of beams.
thickness (number)
Bar line thickness, measured in linethickness.
Internal properties:
chord-tremolo (boolean)
if set, this beam is a tremolo.
least-squares-dy (number)
ideal beam slope, without damping.
position-callbacks (list)
list of functions set spanner positions.
positioning-done (boolean)
Used to signal that a positioning element did its job. This ensures that a positioning is only done once.
quant-score (number)
Beam quanting score – can be stored for debugging
shorten (dimension, in staff space)
The amount of space that a stem. Internally used to distribute beam shortening over stems.

This grob interface is used in the following graphical objects: Beam

break-aligned-interface

Items that are aligned in prefatory matter.

The spacing of these items is controlled by the space-alist property. It contains a list break-align-symbols with a specification of the associated space. The space specification can be

(minimum-space . spc))
Pad space until the distance is spc
(fixed-space . spc)
Set a fixed space
(semi-fixed-space . spc)
Set a space. Half of it is fixed and half is stretchable. (does not work at start of line. fixme)
(extra-space . spc)
Add spc amount of space.

Special keys for the alist are first-note and next-note, signifying the first note on a line, and the next note halfway a line.

Rules for this spacing are much more complicated than this. See [Wanske] page 126 – 134, [Ross] pg 143 – 147

User settable properties:
break-align-symbol (symbol)
This key is used for aligning and spacing breakable items.
space-alist (list)
A table that specifies distances between prefatory items, like clef and time-signature. The format is an alist of spacing tuples: (break-align-symbol type . distance), where type can be the symbols minimum-space or extra-space.

This grob interface is used in the following graphical objects: Ambitus, BarLine, BarNumber, BreakAlignGroup, BreathingSign, Clef, Custos, DoublePercentRepeat, InstrumentName, KeySignature, LeftEdge, TimeSignature and VocalName

break-alignment-interface

The object that performs break aligment. See break-aligned-interface.

User settable properties:
break-align-orders (hash table)
Defines the order in which prefatory matter (clefs, key signatures) appears. The format is a vector of length 3, where each element is one order for end-of-line, middle of line, and start-of-line respectively. An order is a list of symbols.

For example, clefs are put after key signatures by setting

          	\override Score.BreakAlignment #'break-align-orders = #(make-vector  3
          	  '(span-bar
          	  breathing-sign
          	  staff-bar
          	  key
          	  clef
          	  time-signature))
     
Internal properties:
positioning-done (boolean)
Used to signal that a positioning element did its job. This ensures that a positioning is only done once.

This grob interface is used in the following graphical objects: BreakAlignment

breathing-sign-interface

A breathing sign.

User settable properties:
direction (direction)
Up or down, left or right?

This grob interface is used in the following graphical objects: BreathingSign

chord-name-interface

A chord name.

Internal properties:
begin-of-line-visible (boolean)
Used for marking ChordNames that should only show changes.

This grob interface is used in the following graphical objects: ChordName

clef-interface

A clef sign

User settable properties:
full-size-change (boolean)
Don't make a change clef smaller.
glyph-name (string)
a name of character within font.
non-default (boolean)
Set for manually specified clefs.

This grob interface is used in the following graphical objects: Clef

cluster-beacon-interface

A place holder for the cluster spanner to determine the vertical extents of a cluster spanner at this X position.

User settable properties:
positions (pair)
Pair of staff coordinates (left . right), where both left and right are in the staff-space unit of the current staff.

This grob interface is used in the following graphical objects: ClusterSpannerBeacon

cluster-interface

A graphically drawn musical cluster.

padding adds to the vertical extent of the shape (top and bottom).

The property style controls the shape of cluster segments. Valid values include leftsided-stairs, rightsided-stairs, centered-stairs, and ramp.

User settable properties:
padding (dimension, in staff space)
Add this much extra space between objects that are next to each other.
style (symbol)
This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.
Internal properties:
columns (list of grobs)
list of grobs, typically containing paper-columns or note-column objects.

This grob interface is used in the following graphical objects: ClusterSpanner

custos-interface

A custos object.

User settable properties:
neutral-direction (direction)
Which direction to take in the center of the staff.
neutral-position (number)
Position (in half staff spaces) where to flip the direction of custos stem.
style (symbol)
This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.

This grob interface is used in the following graphical objects: Custos

dot-column-interface

Groups dot objects so they form a column, and position dots so they do not clash with staff lines

User settable properties:
direction (direction)
Up or down, left or right?
Internal properties:
positioning-done (boolean)
Used to signal that a positioning element did its job. This ensures that a positioning is only done once.
stem (layout object)
pointer to Stem object.

This grob interface is used in the following graphical objects: DotColumn

dots-interface

The dots to go with a notehead or rest.direction sets the preferred direction to move in case of staff line collisions.

User settable properties:
direction (direction)
Up or down, left or right?
dot-count (integer)
The number of dots.

This grob interface is used in the following graphical objects: Dots

dynamic-interface

Any kind of loudness sign

This grob interface is used in the following graphical objects: DynamicLineSpanner, DynamicText and Hairpin

finger-interface

A fingering instruction

This grob interface is used in the following graphical objects: Fingering

font-interface

Any symbol that is typeset through fixed sets of glyphs, (ie. fonts)

User settable properties:
font-encoding (symbol)
The font encoding is the broadest category for selecting a font. Options include: music, number, text, math, braces, dynamic
font-family (symbol)
The font family is the broadest category for selecting text fonts. Options include: sans, roman
font-magnification (number)
Magnification of the font, when it is selected with font-name.
font-name (string)
Specifies a file name (without extension) of the font to load. This setting override selection using font-family, font-series and font-shape.
font-series (symbol)
Select the series of a font. Choices include medium, bold, bold-narrow, etc.
font-shape (symbol)
Select the shape of a font. Choices include upright, italic, caps.
font-size (number)
The font size, compared the `normal' size. 0 is style-sheet's normal size, -1 is smaller, +1 is bigger. Each step of 1 is approximately 12% larger, 6 steps are exactly a factor 2 larger. Fractional values are allowed.
Internal properties:
font (font metric)
Cached font metric object

This grob interface is used in the following graphical objects: Accidental, Ambitus, Arpeggio, BarLine, BarNumber, BassFigure, BreathingSign, ChordName, Clef, CombineTextScript, Custos, Dots, DoublePercentRepeat, DynamicText, Fingering, InstrumentName, KeySignature, LyricText, MensuralLigature, MetronomeMark, MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestText, NoteHead, NoteName, OctavateEight, OttavaBracket, PercentRepeat, RehearsalMark, Rest, Script, SostenutoPedal, SpanBar, StanzaNumber, Stem, SustainPedal, SystemStartBrace, TabNoteHead, TextScript, TextSpanner, TimeSignature, TupletBracket, UnaCordaPedal, VaticanaLigature, VocalName and VoltaBracket

gregorian-ligature-interface

A gregorian ligature

Internal properties:
ascendens (boolean)
is this neume of an ascending?
auctum (boolean)
is this neume augmented?
cavum (boolean)
is this neume outlined?
context-info (integer)
DOCME
deminutum (boolean)
is this neume deminished?
descendens (boolean)
is this neume of a descendent type?
inclinatum (boolean)
is this neume an inclinatum?
linea (boolean)
attach vertical lines to this neume?
oriscus (boolean)
is this neume an oriscus?
pes-or-flexa (boolean)
shall this neume be joined with the previous head?
prefix-set (number)
quilisma (boolean)
is this neume a quilisma?
stropha (boolean)
Is this neume a stropha?
virga (boolean)
Is this neume a virga?

This grob interface is used in the following graphical objects: none

grob-interface

A grob represents a piece of music notation

All grobs have an X and Y-position on the page. These X and Y positions are stored in a relative format, so they can easily be combined by stacking them, hanging one grob to the side of another, and coupling them into a grouping objects.

Each grob has a reference point (a.k.a. parent): the position of a grob is stored relative to that reference point. For example the X-reference point of a staccato dot usually is the note head that it applies to. When the note head is moved, the staccato dot moves along automatically.

A grob is often associated with a symbol, but some grobs do not print any symbols. They take care of grouping objects. For example, there is a separate grob that stacks staves vertically. The NoteCollision is also an abstract grob: it only moves around chords, but doesn't print anything.

Grobs have a properties: Scheme variables, that can be read and set. They have two types. Immutable variables define the default style and behavior. They are shared between many objects. They can be changed using \override and \revert.

Mutable properties are variables that are specific to one grob. Typically, lists of other objects, or results from computations are stored inmutable properties: every call to set-grob-property (or its C++ equivalent) sets a mutable property.

User settable properties:
X-extent (pair of numbers)
Hard coded extent in X direction.
X-extent-callback (procedure)
Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.
X-offset-callbacks (list)
A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.
Y-extent (pair of numbers)
See X-extent.
Y-extent-callback (procedure)
see X-extent-callback.
Y-offset-callbacks (list)
see X-offset-callbacks.
before-line-breaking-callback (procedure)
This procedure is called before line breaking, but after splitting breakable items at potential line breaks.
extra-X-extent (pair of numbers)
A grob is enlarged in X dimension by this much.
extra-Y-extent (pair of numbers)
See extra-Y-extent.
extra-offset (pair of numbers)
A pair representing an offset. This offset is added just before outputting the symbol, so the typesetting engine is completely oblivious to it.
layer (number)
The output layer [0..2]: layers define the order of printing objects. Objects in lower layers are overprinted by objects in higher layers.
minimum-X-extent (pair of numbers)
Minimum size of an object in X dimension, measured in staff space.
minimum-Y-extent (pair of numbers)
See minimum-Y-extent.
print-function (procedure)
Function taking grob as argument, returning a Stencil object.
spacing-procedure (procedure)
Procedure for calculating spacing parameters. The routine is called after before-line-breaking-callback.
transparent (boolean)
This is almost the same as setting print-function to #f, but this retains the dimensions of this grob, which means that grobs can be erased individually.
Internal properties:
after-line-breaking-callback (procedure)
This procedure is called after line breaking. Its return value is ignored.
cause (any type)
Any kind of causation objects (i.e. music, or perhaps translator) that was the cause for this grob.
dependencies (list of grobs)
list of score-grob pointers that indicate who to compute first for certain global passes.
interfaces (list)
list of symbols indicating the interfaces supported by this object. Is initialized from the meta field.
meta (list)
Contains meta information. It is an alist with the entries name and interfaces.
staff-symbol (layout object)
the staff symbol grob that we're in.
stencil (unknown)
Cached output of the print-function.

This grob interface is used in the following graphical objects: Accidental, AccidentalPlacement, Ambitus, Arpeggio, BarLine, BarNumber, BassFigure, Beam, BreakAlignGroup, BreakAlignment, BreathingSign, ChordName, Clef, ClusterSpanner, ClusterSpannerBeacon, CombineTextScript, Custos, DotColumn, Dots, DoublePercentRepeat, DynamicLineSpanner, DynamicText, Fingering, Glissando, Hairpin, HorizontalBracket, InstrumentName, KeySignature, LeftEdge, LigatureBracket, LyricExtender, LyricHyphen, LyricText, MeasureGrouping, MensuralLigature, MetronomeMark, MultiMeasureRest, MultiMeasureRestNumber, MultiMeasureRestText, NonMusicalPaperColumn, NoteCollision, NoteColumn, NoteHead, NoteName, NoteSpacing, OctavateEight, OttavaBracket, PaperColumn, PercentRepeat, PhrasingSlur, PianoPedalBracket, RehearsalMark, RemoveEmptyVerticalGroup, RepeatSlash, Rest, RestCollision, Script, ScriptColumn, SeparatingGroupSpanner, SeparationItem, Slur, SostenutoPedal, SostenutoPedalLineSpanner, SpacingSpanner, SpanBar, StaffSpacing, StaffSymbol, StanzaNumber, Stem, StemTremolo, SustainPedal, SustainPedalLineSpanner, System, SystemStartBar, SystemStartBrace, SystemStartBracket, TabNoteHead, TextScript, TextSpanner, Tie, TieColumn, TimeSignature, TupletBracket, UnaCordaPedal, UnaCordaPedalLineSpanner, VaticanaLigature, VerticalAlignment, VerticalAxisGroup, VocalName, VoiceFollower and VoltaBracket

hairpin-interface

A hairpin (de)crescendo.

User settable properties:
grow-direction (direction)
Crescendo or decrescendo?
height (dimension, in staff space)
Height of an object in staffspace.
Internal properties:
if-text-padding (number)
padding in case texts are there.

This grob interface is used in the following graphical objects: Hairpin

hara-kiri-group-interface

A group spanner that keeps track of interesting items. If it doesn't contain any after linebreaking, then it will remove itself and all its children.

User settable properties:
remove-first (boolean)
Remove the first staff of a orchestral score?
Internal properties:
items-worth-living (list of grobs)
A list of interesting items. If empty in a particular staff, then that staff is erased.

This grob interface is used in the following graphical objects: RemoveEmptyVerticalGroup

horizontal-bracket-interface

A horizontal bracket encompassing notes.

User settable properties:
direction (direction)
Up or down, left or right?
thickness (number)
Bar line thickness, measured in linethickness.
Internal properties:
columns (list of grobs)
list of grobs, typically containing paper-columns or note-column objects.

This grob interface is used in the following graphical objects: HorizontalBracket

item-interface

Grobs can be distinguished in their role in the horizontal spacing. Many grobs define constraints on the spacing by their sizes. For example, note heads, clefs, stems, and all other symbols with a fixed shape. These grobs form a subtype called Item.

Some items need special treatment for line breaking. For example, a clef is normally only printed at the start of a line (i.e. after a line break). To model this, `breakable' items (clef, key signature, bar lines, etc.) are copied twice. Then we have three versions of each breakable item: one version if there is no line break, one version that is printed before the line break (at the end of a system), one version that is printed after the line break.

Whether these versions are visible and take up space, is determined by the outcome of the break-visibility. This grob property is a function taking a direction (-1, 0 or 1) as argument. It returns a cons of booleans, signifying whether this grob should be transparent and have no extent.

The following variables for break-visibility are predefined:

                grob will show:   before  no     after
                                  break   break  break
       all-invisible              no      no     no
       begin-of-line-visible      no      no     yes
       end-of-line-visible        yes     no     no
       all-visible                yes     yes    yes
       begin-of-line-invisible    yes     yes    no
       end-of-line-invisible      no      yes    yes
User settable properties:
break-visibility (procedure)
A function that takes the break direction and returns a cons of booleans containing (transparent . empty). The following variables are predefined: all-visible, begin-of-line-visible, end-of-line-visible, begin-of-line-invisible, end-of-line-invisible, all-invisible.
breakable (boolean)
Can this object appear at a line break, like clefs and bar lines?
no-spacing-rods (boolean)
Items with this property do not cause spacing constraints.

This grob interface is used in the following graphical objects: Accidental, AccidentalPlacement, Ambitus, Arpeggio, BarLine, BarNumber, BassFigure, BreakAlignGroup, BreakAlignGroup, BreakAlignment, BreathingSign, ChordName, Clef, ClusterSpannerBeacon, CombineTextScript, Custos, DotColumn, Dots, DoublePercentRepeat, DynamicText, Fingering, InstrumentName, KeySignature, LeftEdge, LyricText, MetronomeMark, NonMusicalPaperColumn, NoteCollision, NoteColumn, NoteHead, NoteName, NoteSpacing, OctavateEight, PaperColumn, RehearsalMark, RemoveEmptyVerticalGroup, RepeatSlash, Rest, RestCollision, Script, ScriptColumn, SeparationItem, SostenutoPedal, SpanBar, StaffSpacing, StanzaNumber, Stem, StemTremolo, SustainPedal, TabNoteHead, TextScript, TimeSignature, UnaCordaPedal and VocalName

key-signature-interface

A group of accidentals, to be printed as signature sign.

User settable properties:
c0-position (integer)
An integer indicating the position of middle C.
new-accidentals (list)
List of (pitch . accidental) pairs.
old-accidentals (list)
List of (pitch . accidental) pairs.

This grob interface is used in the following graphical objects: KeySignature

ligature-bracket-interface

A bracket indicating a ligature in the original edition

User settable properties:
height (dimension, in staff space)
Height of an object in staffspace.
thickness (number)
Bar line thickness, measured in linethickness.
width (dimension, in staff space)
The width of a grob measured in staff space.
Internal properties:
ligature-primitive-callback (procedure)
callback that brews ligature head.

This grob interface is used in the following graphical objects: none

ligature-interface

A ligature

This grob interface is used in the following graphical objects: none

line-interface

Generic line objects. Any object using lines supports this. Normally,you get a straight line. If dash-period is defined, a dashed line is produced; the length of the dashes is tuned with dash-fraction. If the latter is set to 0, a dotted line is produced. If dash-fraction is negative, the line is made transparent.

User settable properties:
dash-fraction (number)
Size of the dashes, relative to dash-period. Should be between 0.0 (no line) and 1.0 (continuous line).
dash-period (number)
the length of one dash + white space. If negative, no line is drawn at all.
style (symbol)
This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.
thickness (number)
Bar line thickness, measured in linethickness.

This grob interface is used in the following graphical objects: Hairpin, OttavaBracket, PianoPedalBracket, TupletBracket and VoltaBracket

line-spanner-interface

Generic line drawn between two objects, e.g. for use with glissandi. The property style can be line, dashed-line, trill, dotted-line or zigzag.

User settable properties:
gap (dimension, in staff space)
Size of a gap in a variable symbol.
thickness (number)
Bar line thickness, measured in linethickness.
zigzag-length (dimension, in staff space)
The length of the lines of a zigzag, relative to zigzag-width. A value of 1 gives 60-degree zigzags.
zigzag-width (dimension, in staff space)
The width of one zigzag-squiggle. This number will be adjusted slightly so that the glissando line can be constructed from a whole number of squiggles.

This grob interface is used in the following graphical objects: Glissando and VoiceFollower

lyric-extender-interface

The extender is a simple line at the baseline of the lyric that helps show the length of a melissima (tied/slurred note).

User settable properties:
thickness (number)
Bar line thickness, measured in linethickness.
Internal properties:
heads (list of grobs)
List of note heads.

This grob interface is used in the following graphical objects: LyricExtender

lyric-hyphen-interface

A centred hyphen is a simple line between lyrics used to divide syllables

User settable properties:
dash-period (number)
the length of one dash + white space. If negative, no line is drawn at all.
height (dimension, in staff space)
Height of an object in staffspace.
length (dimension, in staff space)
User override for the stem length of unbeamed stems.
minimum-length (dimension, in staff space)
Try to make a spanner at least this long. This requires an appropriate routine for the spacing-procedure property.
thickness (number)
Bar line thickness, measured in linethickness.

This grob interface is used in the following graphical objects: LyricHyphen

lyric-interface

Any object that is related to lyrics.

This grob interface is used in the following graphical objects: LyricExtender and LyricHyphen

lyric-syllable-interface

a single piece of lyrics

This grob interface is used in the following graphical objects: LyricText

mark-interface

a rehearsal mark

This grob interface is used in the following graphical objects: RehearsalMark

measure-grouping-interface

This objectt indicates groups of beats. Valid choices for style are bracket and triangle.

User settable properties:
height (dimension, in staff space)
Height of an object in staffspace.
style (symbol)
This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.
thickness (number)
Bar line thickness, measured in linethickness.

This grob interface is used in the following graphical objects: MeasureGrouping

mensural-ligature-interface

A mensural ligature

User settable properties:
thickness (number)
Bar line thickness, measured in linethickness.
Internal properties:
delta-pitch (number)
the interval between this and the next note, or, more precisely, their vertical distance; this is used in ligatures for calculation of the height of vertical joins flexa shapes
flexa-width (dimension, in staff space)
width of a flexa shape in a ligature grob in staff_space.
head-width (dimension, in staff space)
width of this ligature head
join-left (boolean)
is this ligature head joined with the previous one by a vertical line?
join-left-amount (number)
ligature-primitive-callback (procedure)
callback that brews ligature head.
primitive (integer)
Pointer to a ligature primitive, i.e. an item similar to a note head that is part of a ligature.

This grob interface is used in the following graphical objects: MensuralLigature

metronome-mark-interface

a rehearsal mark

This grob interface is used in the following graphical objects: MetronomeMark

multi-measure-interface

Multi measure rest, and the text or number that is printed over it.

This grob interface is used in the following graphical objects: MultiMeasureRest, MultiMeasureRestNumber and MultiMeasureRestText

multi-measure-rest-interface

A rest that spans a whole number of measures.

User settable properties:
expand-limit (integer)
maximum number of measures expanded in church rests.
hair-thickness (number)
Thickness of the thin line in a bar line.
measure-count (integer)
The number of measures for a multimeasure rest.
minimum-length (dimension, in staff space)
Try to make a spanner at least this long. This requires an appropriate routine for the spacing-procedure property.
thick-thickness (number)
Bar line thickness, measured in linethickness.
Internal properties:
use-breve-rest (boolean)
Use breve rests for measures longer than a whole rest.

This grob interface is used in the following graphical objects: MultiMeasureRest and PercentRepeat

note-collision-interface

An object that handles collisions between notes with different stem directions and horizontal shifts. Most of the interesting properties are to be set in note-column-interface: these are force-hshift and horizontal-shift.

User settable properties:
merge-differently-dotted (boolean)
Merge note heads in collisions, even if they have a different number of dots. This normal notation for some types of polyphonic music.
merge-differently-headed (boolean)
Merge note heads in collisions, even if they have different note heads. The smaller of the two heads will be rendered invisible. This used polyphonic guitar notation. The value of this setting is used by note-collision-interface .
Internal properties:
positioning-done (boolean)
Used to signal that a positioning element did its job. This ensures that a positioning is only done once.

This grob interface is used in the following graphical objects: NoteCollision

note-column-interface

Stem and noteheads combined

User settable properties:
accidentals (list)
List of alteration numbers.
force-hshift (number)
This specifies a manual shift for notes in collisions. The unit is the note head width of the first voice note. This is used by note-collision-interface.
horizontal-shift (integer)
An integer that identifies ranking of note-column for horizontal shifting. This is used by note-collision-interface.
Internal properties:
arpeggio (layout object)
pointer to arpeggio object.
note-heads (list of grobs)
List of note head grobs
rest (layout object)
the staff symbol grob that we're in.
rest-collision (layout object)
rest collision that a rest is in.
stem (layout object)
pointer to Stem object.

This grob interface is used in the following graphical objects: NoteColumn

note-head-interface

Note head

User settable properties:
glyph-name-procedure (procedure)
Return the name of a character within font, to use for printing a symbol.
note-names (hash table)
Vector of strings containing names for easy-notation note heads.
stem-attachment-function (procedure)
A function that calculates where a stem attaches to the note head? This is a fallback when this information is not specified in the font. The function takes a grob and axis argument, and returns a (x . y) pair, specifying location in terms of note head bounding box.
style (symbol)
This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.
Internal properties:
accidental-grob (layout object)
Accidental for this note.

This grob interface is used in the following graphical objects: NoteHead and TabNoteHead

note-name-interface

Note name

User settable properties:
style (symbol)
This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.

This grob interface is used in the following graphical objects: NoteName

note-spacing-interface

This object calculates spacing wishes for individual voices.

User settable properties:
knee-spacing-correction (number)
Factor for the optical correction amount for kneed beams. Set between 0 for no correction and 1 for full correction.
stem-spacing-correction (number)
Optical correction amount for stems that are placed in tight configurations. For opposite directions, this amount is the correction for two normal sized stems that overlap completely.
Internal properties:
left-items (list of grobs)
right-items (list of grobs)

This grob interface is used in the following graphical objects: NoteSpacing

only-prebreak-interface

Kill this grob after the line breaking process.

This grob interface is used in the following graphical objects: SeparatingGroupSpanner

ottava-bracket-interface

An ottava bracket

User settable properties:
bracket-flare (pair of numbers)
A pair of numbers specifying how much edges of brackets should slant outward. Value 0.0 means straight edges
edge-height (pair)
A pair of number specifying the heights of the vertical edges '(left-height . right-height).
minimum-length (dimension, in staff space)
Try to make a spanner at least this long. This requires an appropriate routine for the spacing-procedure property.
shorten-pair (pair of numbers)
The lengths to shorten a text-spanner on both sides, for example a pedal bracket

This grob interface is used in the following graphical objects: OttavaBracket

paper-column-interface

Paper_column objects form the top-most X-parents for items. The are two types of columns: musical columns, where are attached to, and non-musical columns, where bar-lines, clefs etc. are attached to. The spacing engine determines the X-positions of these objects.

They are numbered, the first (leftmost) is column 0. Numbering happens before line-breaking, and columns are not renumbered after line breaking. Since many columns go unused, you should only use the rank field to get ordering information. Two adjacent columns may have non-adjacent numbers.

User settable properties:
between-cols (pair)
Where to attach a loose column to
between-system-string (string)
string to dump between two systems. Useful for forcing page breaks.
shortest-playing-duration (moment)
The duration of the shortest playing here.
shortest-starter-duration (moment)
The duration of the shortest note that starts here.
when (moment)
Global time step associated with this column happen?
Internal properties:
bounded-by-me (list of grobs)
list of spanners that have this column as start/begin point. Only columns that have grobs or act as bounds are spaced.

This grob interface is used in the following graphical objects: NonMusicalPaperColumn and PaperColumn

percent-repeat-interface

Repeats that look like percent signs

User settable properties:
slope (number)
The slope of this object.
thickness (number)
Bar line thickness, measured in linethickness.

This grob interface is used in the following graphical objects: DoublePercentRepeat, PercentRepeat and RepeatSlash

piano-pedal-bracket-interface

The bracket of the piano pedal. It can be tuned through the regular bracket properties.

User settable properties:
bracket-flare (pair of numbers)
A pair of numbers specifying how much edges of brackets should slant outward. Value 0.0 means straight edges
edge-height (pair)
A pair of number specifying the heights of the vertical edges '(left-height . right-height).
shorten-pair (pair of numbers)
The lengths to shorten a text-spanner on both sides, for example a pedal bracket
Internal properties:
pedal-text (layout object)
Pointer to the text of a mixed-style piano pedal.

This grob interface is used in the following graphical objects: PianoPedalBracket

piano-pedal-interface

A piano pedal sign

This grob interface is used in the following graphical objects: PianoPedalBracket, SostenutoPedalLineSpanner, SustainPedal, SustainPedalLineSpanner and UnaCordaPedalLineSpanner

rest-collision-interface

Move around ordinary rests (not multi-measure-rests) to avoid conflicts.

User settable properties:
minimum-distance (dimension, in staff space)
Minimum distance between rest and notes or beam.
Internal properties:
elements (list of grobs)
list of grobs, type depending on the Grob where this is set in.
positioning-done (boolean)
Used to signal that a positioning element did its job. This ensures that a positioning is only done once.

This grob interface is used in the following graphical objects: RestCollision

rest-interface

A rest symbol.

User settable properties:
minimum-distance (dimension, in staff space)
Minimum distance between rest and notes or beam.
style (symbol)
This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.

This grob interface is used in the following graphical objects: MultiMeasureRest and Rest

rhythmic-grob-interface

Any object with a rhythmic basis. Used to determine which grobs are interesting enough to maintain a hara-kiri staff.

This grob interface is used in the following graphical objects: BassFigure, ChordName, LyricText, NoteHead and Rest

rhythmic-head-interface

Note head or rest

User settable properties:
duration-log (integer)
The 2-log of the note head duration, i.e. 0=whole note, 1 = half note, etc.
Internal properties:
dot (layout object)
reference to Dots object.
stem (layout object)
pointer to Stem object.

This grob interface is used in the following graphical objects: NoteHead, Rest and TabNoteHead

script-column-interface

An interface that sorts scripts according to their script-priority

This grob interface is used in the following graphical objects: ScriptColumn

script-interface

An object that is put above or below a note

User settable properties:
script-priority (number)
A sorting key that determines in what order a script is within a stack of scripts.
Internal properties:
script-stencil (pair)
Pair (type . arg), which acts as an index for looking up a Stencil object.

This grob interface is used in the following graphical objects: DynamicText and Script

self-alignment-interface

Position this object on itself and/or on its parent. To this end, the following functions are provided:

Self_alignment_interface::aligned_on_self
Align self on reference point, using self-alignment-X and self-alignment-Y.
Self_alignment_interface::aligned_on_parent
Self_alignment_interface::centered_on_parent
Shift the object so its own reference point is centered on the extent of the parent
Self_alignment_interface::centered_on_other_axis_parent
For X-axis, center on the Y-parent, and vice versa.
User settable properties:
self-alignment-X (number)
Specify alignment of an object. The value -1 means left aligned, 0 centered, and 1 right-aligned in X direction. Values in between may also be specified.
self-alignment-Y (number)
like self-alignment-X but for Y axis.

This grob interface is used in the following graphical objects: BarNumber, BassFigure, DynamicText, Fingering, Hairpin, InstrumentName, LyricText, MultiMeasureRestNumber, MultiMeasureRestText, OctavateEight, RehearsalMark, SostenutoPedal, SustainPedal, UnaCordaPedal and VocalName

separation-item-interface

Item that computes widths to generate spacing rods. This is done in concert with separation-spanner-interface.

User settable properties:
X-extent (pair of numbers)
Hard coded extent in X direction.
padding (dimension, in staff space)
Add this much extra space between objects that are next to each other.
Internal properties:
conditional-elements (list of grobs)
Internal use only
elements (list of grobs)
list of grobs, type depending on the Grob where this is set in.

This grob interface is used in the following graphical objects: SeparationItem

separation-spanner-interface

A spanner that calculates spacing constraints ("rods") using the separation-item-interface grobs in elements.

User settable properties:
padding (dimension, in staff space)
Add this much extra space between objects that are next to each other.
Internal properties:
elements (list of grobs)
list of grobs, type depending on the Grob where this is set in.

This grob interface is used in the following graphical objects: SeparatingGroupSpanner

side-position-interface

Position a victim object (this one) next to other objects (the support). The property direction signifies where to put the victim object relative to the support (left or right, up or down?)

The routine also takes the size the staff into account if staff-padding is set. If undefined, the staff symbol is ignored.

User settable properties:
direction (direction)
Up or down, left or right?
minimum-space (dimension, in staff space)
Minimum distance that the victim should move (after padding).
padding (dimension, in staff space)
Add this much extra space between objects that are next to each other.
side-relative-direction (direction)
Multiply direction of direction-source with this to get the direction of this object.
staff-padding (dimension, in staff space)
Maintain this much space between reference points and the staff. Its effect is to align objects of differing sizes (like the dynamic p and f) on their baselines.
Internal properties:
direction-source (layout object)
in case side-relative-direction is set, which grob to get the direction from .
side-support-elements (list of grobs)
the support, a list of grobs.

This grob interface is used in the following graphical objects: Arpeggio, BarNumber, CombineTextScript, DynamicLineSpanner, Fingering, HorizontalBracket, InstrumentName, MeasureGrouping, MetronomeMark, MultiMeasureRestNumber, MultiMeasureRestText, OctavateEight, OttavaBracket, RehearsalMark, Script, SostenutoPedalLineSpanner, StanzaNumber, SustainPedalLineSpanner, TextScript, TextSpanner, UnaCordaPedalLineSpanner, VocalName and VoltaBracket

slur-interface

A slur

User settable properties:
attachment (pair)
Pair of symbols indicating how a slur should be attached at the ends. The format is '(left-type . right-type), where both types are symbols. The values of these symbols may be alongside-stem, stem, head or loose-end.
attachment-offset (pair)
cons of offsets, '(left-offset . right-offset). This offset is added to the attachments to prevent ugly slurs. [fixme: we need more documentation here].
beautiful (number)
number that dictates when a slur should be de-uglyfied. It correlates with the enclosed area between noteheads and slurs. A value of 0.1 yields only undisturbed slurs, a value of 5 will tolerate quite high blown slurs.
control-points (list)
List of 4 offsets (number-pairs) that form control points for the tie/slur shape.
dashed (number)
number representing the length of the dashes.
direction (direction)
Up or down, left or right?
extremity-function (procedure)
A function that calculates the attachment of a slur-end. The function takes a slur and direction argument and returns a symbol.
extremity-offset-alist (list)
The offset adds to the centre of the note head, or stem.

Format: alist (attachment stem-dir*dir slur-dir*dir) -> offset.

height-limit (dimension, in staff space)
Maximum slur height: the longer the slur, the closer it is to this height.
ratio (number)
Parameter for slur shape. The higher this number, the quicker the slur attains it height-limit.
slope-limit (number)
Set slope to zero if slope is running away steeper than this.
thickness (number)
Bar line thickness, measured in linethickness.
y-free (dimension, in staff space)
The minimal vertical gap between slur and note heads or stems.
Internal properties:
de-uglify-parameters (list)
list of 3 real constants. They define the valid areas for the middle control points. They are empirical.
details (list)
alist of parameters for detailed grob behavior.
note-columns (pair)
list of NoteColumn grobs.

This grob interface is used in the following graphical objects: PhrasingSlur and Slur

spaceable-grob-interface

A layout object that takes part in the spacing problem.

User settable properties:
measure-length (moment)
Length of a measure. Used in some spacing situations.
penalty (number)
Penalty for breaking at this column. 10000 or more means forbid linebreak, -10000 or less means force linebreak. Other values influence linebreaking decisions as a real penalty.
Internal properties:
ideal-distances (list)
(obj . (dist . strength)) pairs.
left-neighbors (list of grobs)
List of spacing-wish grobs that are close to the current column.

The closest spacing-wishes determine the actual distances between the columns.

minimum-distances (list)
list of rods, that have the format (obj . dist).
right-neighbors (list of grobs)
see left-neighbors
spacing-wishes (list of grobs)
List of note spacing or staff spacing objects.

This grob interface is used in the following graphical objects: NonMusicalPaperColumn and PaperColumn

spacing-interface

Something to do with line breaking and spacing. Kill this one after determining line breaks.

This grob interface is used in the following graphical objects: NoteSpacing, SeparatingGroupSpanner, SeparationItem, SpacingSpanner and StaffSpacing

spacing-spanner-interface

The space taken by a note is dependent on its duration. Doubling a duration adds spacing-increment to the space. The most common shortest note gets shortest-duration-space. Notes that are even shorter are spaced proportonial to their duration.

Typically, the increment is the width of a black note head. In a piece with lots of 8th notes, and some 16th notes, the eighth note gets 2 note heads width (i.e. the space following a note is 1 note head width) A 16th note is followed by 0.5 note head width. The quarter note is followed by 3 NHW, the half by 4 NHW, etc.

User settable properties:
base-shortest-duration (moment)
Spacing is based on the shortest notes in a piece. Normally, pieces are spaced as if notes at least as short as this are present.
common-shortest-duration (moment)
The most common shortest note length. This is used in spacing. Enlarging this will set the score tighter.
grace-space-factor (number)
Space grace notes at this fraction of the spacing-increment.
shortest-duration-space (dimension, in staff space)
Start with this much space for the shortest duration. This is expressed in spacing-increment as unit. See also spacing-spanner-interface.
spacing-increment (number)
Add this much space for a doubled duration. Typically, the width of a note head. See also spacing-spanner-interface.

This grob interface is used in the following graphical objects: SpacingSpanner

span-bar-interface

A bar line that spanned between other barlines. This interface is used for bar lines that connect different staves.

Internal properties:
elements (list of grobs)
list of grobs, type depending on the Grob where this is set in.

This grob interface is used in the following graphical objects: SpanBar

spanner-interface

Some objects are horizontally spanned between objects. For example, slur, beam, tie, etc. These grobs form a subtype called Spanner. All spanners have two span-points (these must be Item objects), one on the left and one on the right. The left bound is also the X-reference point of the spanner.

User settable properties:
minimum-length (dimension, in staff space)
Try to make a spanner at least this long. This requires an appropriate routine for the spacing-procedure property.

This grob interface is used in the following graphical objects: Beam, ClusterSpanner, DynamicLineSpanner, Glissando, Hairpin, HorizontalBracket, LigatureBracket, LyricExtender, LyricHyphen, MeasureGrouping, MultiMeasureRestNumber, MultiMeasureRestText, OttavaBracket, PercentRepeat, PhrasingSlur, PianoPedalBracket, RemoveEmptyVerticalGroup, SeparatingGroupSpanner, Slur, SostenutoPedalLineSpanner, SpacingSpanner, StaffSymbol, SustainPedalLineSpanner, System, SystemStartBar, SystemStartBracket, TextSpanner, Tie, TieColumn, TupletBracket, UnaCordaPedalLineSpanner, VerticalAlignment, VerticalAxisGroup, VoiceFollower and VoltaBracket

staff-spacing-interface

This object calculates spacing details from a breakable symbol (left) to another object. For example, it takes care of optical spacing from a bar lines to a note.

User settable properties:
stem-spacing-correction (number)
Optical correction amount for stems that are placed in tight configurations. For opposite directions, this amount is the correction for two normal sized stems that overlap completely.
Internal properties:
left-items (list of grobs)
right-items (list of grobs)

This grob interface is used in the following graphical objects: StaffSpacing

staff-symbol-interface

This spanner draws the lines of a staff. A staff symbol definines a vertical unit, the staff space. Quantities that go by a half staff space are called positions The center (i.e. middle line or space) is position 0. The length of the symbol may be set by hand through the width property.

User settable properties:
ledger-line-thickness (pair of numbers)
The thickness of ledger lines: it is the sum of 2 numbers. The first is the factor for line thickness, and the second for staff space. Both contributions are added.
line-count (integer)
The number of staff lines.
staff-space (dimension, in staff space)
Amount of space between staff lines, expressed in global staffspace.
thickness (number)
Bar line thickness, measured in linethickness.
width (dimension, in staff space)
The width of a grob measured in staff space.

This grob interface is used in the following graphical objects: StaffSymbol

staff-symbol-referencer-interface

An object whose Y position is meant relative to a staff symbol. These usually have Staff_symbol_referencer::callback in their Y-offset-callbacks.

User settable properties:
staff-position (number)
Vertical position, measured in half staff spaces, counted from the middle line.

This grob interface is used in the following graphical objects: Ambitus, Arpeggio, Beam, Clef, Custos, Dots, MultiMeasureRest, NoteHead, Rest and TabNoteHead

stanza-number-interface

A stanza number, to be put in from of a lyrics line

This grob interface is used in the following graphical objects: StanzaNumber

stem-interface

The stem represent the graphical stem. In addition, it internally connects note heads, beams, tremolos. Rests and whole notes have invisible stems.

User settable properties:
avoid-note-head (boolean)
If set, the stem of a chord does not pass through all note heads, but starts at the last note head.
beamed-extreme-minimum-free-lengths (list)
list of extreme minimum free stem lengths (chord to beams) given beam multiplicity.
beamed-lengths (list)
list of stem lengths given beam multiplicity .
beamed-minimum-free-lengths (list)
list of normal minimum free stem lengths (chord to beams) given beam multiplicity.
beaming (pair)
Pair of number lists. Each number list specifies which beams to make. 0 is the central beam, 1 is the next beam toward the note etc. This information is used to determine how to connect the beaming patterns from stem to stem inside a beam.
direction (direction)
Up or down, left or right?
duration-log (integer)
The 2-log of the note head duration, i.e. 0=whole note, 1 = half note, etc.
flag-style (symbol)
a string determining what style of flag-glyph is typeset on a Stem. Valid options include () and mensural. Additionally, "no-flag" switches off the flag.
french-beaming (boolean)
Use French beaming style for this stem. The stem will stop at the innermost beams.
length (dimension, in staff space)
User override for the stem length of unbeamed stems.
lengths (list)
Default stem lengths. The list gives a length for each flag-count.
neutral-direction (direction)
Which direction to take in the center of the staff.
no-stem-extend (boolean)
If set, notes with ledger lines do not get stems extending to the middle staff line.
stem-end-position (number)
Where does the stem end (the end is opposite to the support-head.
stem-shorten (list)
How much a stem in a forced direction should be shortened. The list gives an amount depending on the number of flags/beams.
stroke-style (string)
set to "grace" to turn stroke through flag on.
thickness (number)
Bar line thickness, measured in linethickness.
Internal properties:
beam (layout object)
pointer to the beam, if applicable.
note-heads (list of grobs)
List of note head grobs
stem-info (pair)
caching of stem parameters
tremolo-flag (layout object)
The tremolo object on a stem.

This grob interface is used in the following graphical objects: Stem

stem-tremolo-interface

A beam slashing a stem to indicate a tremolo.

User settable properties:
beam-thickness (dimension, in staff space)
thickness, measured in staffspace.
beam-width (dimension, in staff space)
width of the tremolo sign.
flag-count (number)
The number of tremolo beams.
Internal properties:
stem (layout object)
pointer to Stem object.

This grob interface is used in the following graphical objects: StemTremolo

system-interface

This is the toplevel object: each object in a score ultimately has a System object as its X and Y parent.

User settable properties:
between-system-string (string)
string to dump between two systems. Useful for forcing page breaks.
Internal properties:
all-elements (list of grobs)
list of all grobs in this line. Its function is to protect objects from being garbage collected.
columns (list of grobs)
list of grobs, typically containing paper-columns or note-column objects.

This grob interface is used in the following graphical objects: System

system-start-delimiter-interface

The brace, bracket or bar in front of the system. It is implemented as a spanner.

User settable properties:
arch-angle (number)
Turning angle of the hook of a system brace
arch-height (dimension, in staff space)
Height of the hook of a system brace.
arch-thick (number)
Thickness of the hook of system brace.
arch-width (dimension, in staff space)
Width of the hook of a system brace.
bracket-thick (number)
width of a system start bracket.
collapse-height (dimension, in staff space)
Minimum height of system start delimiter. If equal or smaller, the bracket is removed.
glyph (string)
a string determining what (style) of glyph is typeset. Valid choices depend on the function that is reading this property.
thickness (number)
Bar line thickness, measured in linethickness.

This grob interface is used in the following graphical objects: SystemStartBar, SystemStartBrace and SystemStartBracket

tablature-interface

An interface for any notes set in a tablature staff

This grob interface is used in the following graphical objects: none

text-balloon-interface

A collection of routines to put text balloons around an object.

User settable properties:
balloon-original-callback (procedure)
The original stencil drawer to draw the balloon around.
balloon-padding (dimension, in staff space)
Text to add to help balloon
balloon-text (markup)
Text to add to help balloon
balloon-text-offset (pair of numbers)
Where to put text relative to balloon.
balloon-text-props (list)
Font properties for balloon text.

This grob interface is used in the following graphical objects: none

text-interface

A scheme markup text, see Text-markup .

User settable properties:
baseline-skip (dimension, in staff space)
Distance between base lines of multiple lines of text.
text (markup)
Text markup. See Text markup .
word-space (dimension, in staff space)
space to insert between lyrics or words in texts.

This grob interface is used in the following graphical objects: BarNumber, BassFigure, BreathingSign, ChordName, CombineTextScript, DynamicText, Fingering, InstrumentName, LyricText, MetronomeMark, MultiMeasureRestNumber, MultiMeasureRestText, NoteName, OctavateEight, OttavaBracket, RehearsalMark, SostenutoPedal, StanzaNumber, SustainPedal, TabNoteHead, TextScript, TupletBracket, UnaCordaPedal, VocalName and VoltaBracket

text-script-interface

An object that is put above or below a note

User settable properties:
script-priority (number)
A sorting key that determines in what order a script is within a stack of scripts.

This grob interface is used in the following graphical objects: CombineTextScript, Fingering and TextScript

text-spanner-interface

generic text spanner

User settable properties:
bracket-flare (pair of numbers)
A pair of numbers specifying how much edges of brackets should slant outward. Value 0.0 means straight edges
dash-fraction (number)
Size of the dashes, relative to dash-period. Should be between 0.0 (no line) and 1.0 (continuous line).
dash-period (number)
the length of one dash + white space. If negative, no line is drawn at all.
edge-height (pair)
A pair of number specifying the heights of the vertical edges '(left-height . right-height).
edge-text (pair)
A pair specifying the texts to be set at the edges '(left-text . right-text).
enclose-bounds (number)
How much of the bound a spanner should enclose: +1 = completely, 0 = center, -1 not at all.
shorten-pair (pair of numbers)
The lengths to shorten a text-spanner on both sides, for example a pedal bracket
style (symbol)
This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.
thickness (number)
Bar line thickness, measured in linethickness.
Internal properties:
if-text-padding (number)
padding in case texts are there.

This grob interface is used in the following graphical objects: SustainPedal and TextSpanner

tie-column-interface

Object that sets directions of multiple ties in a tied chord

User settable properties:
direction (direction)
Up or down, left or right?

This grob interface is used in the following graphical objects: TieColumn

tie-interface

A tie connecting two noteheads.

User settable properties:
control-points (list)
List of 4 offsets (number-pairs) that form control points for the tie/slur shape.
direction (direction)
Up or down, left or right?
minimum-length (dimension, in staff space)
Try to make a spanner at least this long. This requires an appropriate routine for the spacing-procedure property.
staffline-clearance (dimension, in staff space)
How far away ties keep from staff lines.
thickness (number)
Bar line thickness, measured in linethickness.
x-gap (dimension, in staff space)
The horizontal gap between note head and tie.
y-offset (dimension, in staff space)
Extra vertical offset for ties away from the center line.
Internal properties:
details (list)
alist of parameters for detailed grob behavior.
head-pair (pair)
Pair of grob pointers, pointing to the two heads of the tie.

This grob interface is used in the following graphical objects: Tie

time-signature-interface

A time signature, in different styles. The following values for 'style are are recognized:

C
4/4 and 2/2 are typeset as C and struck C, respectively. All other time signatures are written with two digits.
neo_mensural
2/2, 3/2, 2/4, 3/4, 4/4, 6/4, 9/4, 4/8, 6/8 and 9/8 are typeset with neo-mensural style mensuration marks. All other time signatures are written with two digits.
mensural
2/2, 3/2, 2/4, 3/4, 4/4, 6/4, 9/4, 4/8, 6/8 and 9/8 are typeset with mensural style mensuration marks. All other time signatures are written with two digits.
1xxx
All time signatures are typeset with a single digit, e.g. 3/2 is written as 3. (Any symbol starting with the digit 1 will do.)

See also the test-file input/test/time.ly.

User settable properties:
fraction (pair of numbers)
Numerator and denominator of a time signature object.
style (symbol)
This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.

This grob interface is used in the following graphical objects: TimeSignature

tuplet-bracket-interface

A bracket with a number in the middle, used for tuplets.

User settable properties:
bracket-flare (pair of numbers)
A pair of numbers specifying how much edges of brackets should slant outward. Value 0.0 means straight edges
bracket-visibility (boolean or symbol)
This controls the visibility of the tuplet bracket. Setting it to false will prevent printing of the bracket. Setting the property to 'if-no-beam will make it print only if there is no beam associated with this tuplet bracket.
direction (direction)
Up or down, left or right?
edge-height (pair)
A pair of number specifying the heights of the vertical edges '(left-height . right-height).
left-position (number)
Vertical position of left part of spanner.
number-visibility (boolean or symbol)
Like bracket-visibility, but for the number.
padding (dimension, in staff space)
Add this much extra space between objects that are next to each other.
right-position (number)
Vertical position of right part of spanner.
shorten-pair (pair of numbers)
The lengths to shorten a text-spanner on both sides, for example a pedal bracket
thickness (number)
Bar line thickness, measured in linethickness.
Internal properties:
note-columns (pair)
list of NoteColumn grobs.

This grob interface is used in the following graphical objects: LigatureBracket and TupletBracket

vaticana-ligature-interface

A vaticana style gregorian ligature

User settable properties:
glyph-name (string)
a name of character within font.
thickness (number)
Bar line thickness, measured in linethickness.
Internal properties:
add-cauda (boolean)
does this flexa require an additional cauda on the left side?
add-join (boolean)
is this ligature head joined with the next one by a vertical line?
add-stem (boolean)
is this ligature head a virga and therefore needs an additional stem on the right side?
delta-pitch (number)
the interval between this and the next note, or, more precisely, their vertical distance; this is used in ligatures for calculation of the height of vertical joins flexa shapes
flexa-height (dimension, in staff space)
height of a flexa shape in a ligature grob in staff_space.
flexa-width (dimension, in staff space)
width of a flexa shape in a ligature grob in staff_space.
ligature-primitive-callback (procedure)
callback that brews ligature head.
x-offset (dimension, in staff space)
Extra horizontal offset for ligature heads.

This grob interface is used in the following graphical objects: VaticanaLigature

volta-bracket-interface

Volta bracket with number

User settable properties:
height (dimension, in staff space)
Height of an object in staffspace.
thickness (number)
Bar line thickness, measured in linethickness.
Internal properties:
bars (list of grobs)
list of bar line pointers.

This grob interface is used in the following graphical objects: VoltaBracket

User backend properties

X-extent (pair of numbers)
Hard coded extent in X direction.
X-extent-callback (procedure)
Procedure that calculates the extent of this object. If this value is set to #f, the object is empty in the X direction. The procedure takes a grob and axis argument, and returns a number-pair.
X-offset-callbacks (list)
A list of functions determining this objects' position relative to its parent. The last one in the list is called first. The functions take a grob and axis argument.
Y-extent (pair of numbers)
See X-extent.
Y-extent-callback (procedure)
see X-extent-callback.
Y-offset-callbacks (list)
see X-offset-callbacks.
accidentals (list)
List of alteration numbers.
align-dir (direction)
Which side to align? -1: left side, 0: around center of width, 1: right side.
arch-angle (number)
Turning angle of the hook of a system brace
arch-height (dimension, in staff space)
Height of the hook of a system brace.
arch-thick (number)
Thickness of the hook of system brace.
arch-width (dimension, in staff space)
Width of the hook of a system brace.
arpeggio-direction (direction)
If set, put an arrow on the arpeggio squiggly line.
attachment (pair)
Pair of symbols indicating how a slur should be attached at the ends. The format is '(left-type . right-type), where both types are symbols. The values of these symbols may be alongside-stem, stem, head or loose-end.
attachment-offset (pair)
cons of offsets, '(left-offset . right-offset). This offset is added to the attachments to prevent ugly slurs. [fixme: we need more documentation here].
auto-knee-gap (dimension, in staff space)
If a gap is found between note heads where a horizontal beam fits that is larger than this number, make a kneed beam.
avoid-note-head (boolean)
If set, the stem of a chord does not pass through all note heads, but starts at the last note head.
axes (list)
list of axis numbers. In the case of alignment grobs, this should contain only one number.
balloon-original-callback (procedure)
The original stencil drawer to draw the balloon around.
balloon-padding (dimension, in staff space)
Text to add to help balloon
balloon-text (markup)
Text to add to help balloon
balloon-text-offset (pair of numbers)
Where to put text relative to balloon.
balloon-text-props (list)
Font properties for balloon text.
bar-size (dimension, in staff space)
size of a bar line.
bar-size-procedure (procedure)
Procedure that computes the size of a bar line.
base-shortest-duration (moment)
Spacing is based on the shortest notes in a piece. Normally, pieces are spaced as if notes at least as short as this are present.
baseline-skip (dimension, in staff space)
Distance between base lines of multiple lines of text.
beam-thickness (dimension, in staff space)
thickness, measured in staffspace.
beam-width (dimension, in staff space)
width of the tremolo sign.
beamed-extreme-minimum-free-lengths (list)
list of extreme minimum free stem lengths (chord to beams) given beam multiplicity.
beamed-lengths (list)
list of stem lengths given beam multiplicity .
beamed-minimum-free-lengths (list)
list of normal minimum free stem lengths (chord to beams) given beam multiplicity.
beamed-stem-shorten (list)
How much to shorten beamed stems, when their direction is forced. It is a list, since the value is different depending on the number flags/beams.
beaming (pair)
Pair of number lists. Each number list specifies which beams to make. 0 is the central beam, 1 is the next beam toward the note etc. This information is used to determine how to connect the beaming patterns from stem to stem inside a beam.
beautiful (number)
number that dictates when a slur should be de-uglyfied. It correlates with the enclosed area between noteheads and slurs. A value of 0.1 yields only undisturbed slurs, a value of 5 will tolerate quite high blown slurs.
before-line-breaking-callback (procedure)
This procedure is called before line breaking, but after splitting breakable items at potential line breaks.
between-cols (pair)
Where to attach a loose column to
between-system-string (string)
string to dump between two systems. Useful for forcing page breaks.
bracket-flare (pair of numbers)
A pair of numbers specifying how much edges of brackets should slant outward. Value 0.0 means straight edges
bracket-thick (number)
width of a system start bracket.
bracket-visibility (boolean or symbol)
This controls the visibility of the tuplet bracket. Setting it to false will prevent printing of the bracket. Setting the property to 'if-no-beam will make it print only if there is no beam associated with this tuplet bracket.
break-align-orders (hash table)
Defines the order in which prefatory matter (clefs, key signatures) appears. The format is a vector of length 3, where each element is one order for end-of-line, middle of line, and start-of-line respectively. An order is a list of symbols.

For example, clefs are put after key signatures by setting

          	\override Score.BreakAlignment #'break-align-orders = #(make-vector  3
          	  '(span-bar
          	  breathing-sign
          	  staff-bar
          	  key
          	  clef
          	  time-signature))
     

break-align-symbol (symbol)
This key is used for aligning and spacing breakable items.
break-glyph-function (procedure)
This function determines the appearance of a bar line at the line break. It takes a glyph and break-direction and returns the glyph at a line break.
break-visibility (procedure)
A function that takes the break direction and returns a cons of booleans containing (transparent . empty). The following variables are predefined: all-visible, begin-of-line-visible, end-of-line-visible, begin-of-line-invisible, end-of-line-invisible, all-invisible.
breakable (boolean)
Can this object appear at a line break, like clefs and bar lines?
c0-position (integer)
An integer indicating the position of middle C.
cautionary (boolean)
Is this a cautionary accidental?
cautionary-style (symbol)
How to print cautionary accidentals. Choices are smaller or parentheses.
collapse-height (dimension, in staff space)
Minimum height of system start delimiter. If equal or smaller, the bracket is removed.
common-shortest-duration (moment)
The most common shortest note length. This is used in spacing. Enlarging this will set the score tighter.
concaveness-gap (dimension, in staff space)
A beam is printed horizontally if its concaveness-gap is larger than this value. The concaveness-gap is the distance of an inner note head to the line between two outer note heads.
concaveness-threshold (number)
A beam is printed horizontally if its concaveness is bigger than this threshold.

Concaveness is calculated as the sum of the vertical distances of inner note heads that fall outside the interval of the two outer note heads, to the vertically nearest outer note head, divided by the square of the inner notes involved.

control-points (list)
List of 4 offsets (number-pairs) that form control points for the tie/slur shape.
damping (integer)
Amount of beam slope damping. 0: no, 1: yes, 100000: horizontal beams.
dash-fraction (number)
Size of the dashes, relative to dash-period. Should be between 0.0 (no line) and 1.0 (continuous line).
dash-period (number)
the length of one dash + white space. If negative, no line is drawn at all.
dashed (number)
number representing the length of the dashes.
dir-function (procedure)
The function to determine the direction of a beam. Choices include:
beam-dir-majority
number count of up or down notes
beam-dir-mean
mean center distance of all notes
beam-dir-median.
mean center distance weighted per note

direction (direction)
Up or down, left or right?
dot-count (integer)
The number of dots.
duration-log (integer)
The 2-log of the note head duration, i.e. 0=whole note, 1 = half note, etc.
edge-height (pair)
A pair of number specifying the heights of the vertical edges '(left-height . right-height).
edge-text (pair)
A pair specifying the texts to be set at the edges '(left-text . right-text).
enclose-bounds (number)
How much of the bound a spanner should enclose: +1 = completely, 0 = center, -1 not at all.
expand-limit (integer)
maximum number of measures expanded in church rests.
extra-X-extent (pair of numbers)
A grob is enlarged in X dimension by this much.
extra-Y-extent (pair of numbers)
See extra-Y-extent.
extra-offset (pair of numbers)
A pair representing an offset. This offset is added just before outputting the symbol, so the typesetting engine is completely oblivious to it.
extremity-function (procedure)
A function that calculates the attachment of a slur-end. The function takes a slur and direction argument and returns a symbol.
extremity-offset-alist (list)
The offset adds to the centre of the note head, or stem.

Format: alist (attachment stem-dir*dir slur-dir*dir) -> offset.

flag-count (number)
The number of tremolo beams.
flag-style (symbol)
a string determining what style of flag-glyph is typeset on a Stem. Valid options include () and mensural. Additionally, "no-flag" switches off the flag.
flag-width-function (procedure)
Procedure that computes the width of a half-beam (a non-connecting beam.).
font-encoding (symbol)
The font encoding is the broadest category for selecting a font. Options include: music, number, text, math, braces, dynamic
font-family (symbol)
The font family is the broadest category for selecting text fonts. Options include: sans, roman
font-magnification (number)
Magnification of the font, when it is selected with font-name.
font-name (string)
Specifies a file name (without extension) of the font to load. This setting override selection using font-family, font-series and font-shape.
font-series (symbol)
Select the series of a font. Choices include medium, bold, bold-narrow, etc.
font-shape (symbol)
Select the shape of a font. Choices include upright, italic, caps.
font-size (number)
The font size, compared the `normal' size. 0 is style-sheet's normal size, -1 is smaller, +1 is bigger. Each step of 1 is approximately 12% larger, 6 steps are exactly a factor 2 larger. Fractional values are allowed.
force-hshift (number)
This specifies a manual shift for notes in collisions. The unit is the note head width of the first voice note. This is used by note-collision-interface.
forced-distance (dimension, in staff space)
A fixed distance between object reference points in an alignment.
fraction (pair of numbers)
Numerator and denominator of a time signature object.
french-beaming (boolean)
Use French beaming style for this stem. The stem will stop at the innermost beams.
full-size-change (boolean)
Don't make a change clef smaller.
gap (dimension, in staff space)
Size of a gap in a variable symbol.
gap-count (integer)
Number of gapped beams for tremolo.
glyph (string)
a string determining what (style) of glyph is typeset. Valid choices depend on the function that is reading this property.
glyph-name (string)
a name of character within font.
glyph-name-procedure (procedure)
Return the name of a character within font, to use for printing a symbol.
grace-space-factor (number)
Space grace notes at this fraction of the spacing-increment.
grow-direction (direction)
Crescendo or decrescendo?
hair-thickness (number)
Thickness of the thin line in a bar line.
height (dimension, in staff space)
Height of an object in staffspace.
height-limit (dimension, in staff space)
Maximum slur height: the longer the slur, the closer it is to this height.
horizontal-shift (integer)
An integer that identifies ranking of note-column for horizontal shifting. This is used by note-collision-interface.
kern (dimension, in staff space)
Amount of extra white space to add. For bar line, this is the amount of space after a thick line.
knee (boolean)
Is this beam kneed?
knee-spacing-correction (number)
Factor for the optical correction amount for kneed beams. Set between 0 for no correction and 1 for full correction.
layer (number)
The output layer [0..2]: layers define the order of printing objects. Objects in lower layers are overprinted by objects in higher layers.
ledger-line-thickness (pair of numbers)
The thickness of ledger lines: it is the sum of 2 numbers. The first is the factor for line thickness, and the second for staff space. Both contributions are added.
left-padding (dimension, in staff space)
The amount of space that is put left to a group of accidentals.
left-position (number)
Vertical position of left part of spanner.
length (dimension, in staff space)
User override for the stem length of unbeamed stems.
lengths (list)
Default stem lengths. The list gives a length for each flag-count.
line-count (integer)
The number of staff lines.
measure-count (integer)
The number of measures for a multimeasure rest.
measure-length (moment)
Length of a measure. Used in some spacing situations.
merge-differently-dotted (boolean)
Merge note heads in collisions, even if they have a different number of dots. This normal notation for some types of polyphonic music.
merge-differently-headed (boolean)
Merge note heads in collisions, even if they have different note heads. The smaller of the two heads will be rendered invisible. This used polyphonic guitar notation. The value of this setting is used by note-collision-interface .
minimum-X-extent (pair of numbers)
Minimum size of an object in X dimension, measured in staff space.
minimum-Y-extent (pair of numbers)
See minimum-Y-extent.
minimum-distance (dimension, in staff space)
Minimum distance between rest and notes or beam.
minimum-length (dimension, in staff space)
Try to make a spanner at least this long. This requires an appropriate routine for the spacing-procedure property.
minimum-space (dimension, in staff space)
Minimum distance that the victim should move (after padding).
neutral-direction (direction)
Which direction to take in the center of the staff.
neutral-position (number)
Position (in half staff spaces) where to flip the direction of custos stem.
new-accidentals (list)
List of (pitch . accidental) pairs.
no-spacing-rods (boolean)
Items with this property do not cause spacing constraints.
no-stem-extend (boolean)
If set, notes with ledger lines do not get stems extending to the middle staff line.
non-default (boolean)
Set for manually specified clefs.
note-names (hash table)
Vector of strings containing names for easy-notation note heads.
number-visibility (boolean or symbol)
Like bracket-visibility, but for the number.
old-accidentals (list)
List of (pitch . accidental) pairs.
padding (dimension, in staff space)
Add this much extra space between objects that are next to each other.
penalty (number)
Penalty for breaking at this column. 10000 or more means forbid linebreak, -10000 or less means force linebreak. Other values influence linebreaking decisions as a real penalty.
pitch-max (pitch)
Top pitch for ambitus.
pitch-min (pitch)
Bottom pitch for ambitus.
positions (pair)
Pair of staff coordinates (left . right), where both left and right are in the staff-space unit of the current staff.
print-function (procedure)
Function taking grob as argument, returning a Stencil object.
ratio (number)
Parameter for slur shape. The higher this number, the quicker the slur attains it height-limit.
remove-first (boolean)
Remove the first staff of a orchestral score?
right-padding (dimension, in staff space)
Space to insert between note and accidentals.
right-position (number)
Vertical position of right part of spanner.
script-priority (number)
A sorting key that determines in what order a script is within a stack of scripts.
self-alignment-X (number)
Specify alignment of an object. The value -1 means left aligned, 0 centered, and 1 right-aligned in X direction. Values in between may also be specified.
self-alignment-Y (number)
like self-alignment-X but for Y axis.
shorten-pair (pair of numbers)
The lengths to shorten a text-spanner on both sides, for example a pedal bracket
shortest-duration-space (dimension, in staff space)
Start with this much space for the shortest duration. This is expressed in spacing-increment as unit. See also spacing-spanner-interface.
shortest-playing-duration (moment)
The duration of the shortest playing here.
shortest-starter-duration (moment)
The duration of the shortest note that starts here.
side-relative-direction (direction)
Multiply direction of direction-source with this to get the direction of this object.
slope (number)
The slope of this object.
slope-limit (number)
Set slope to zero if slope is running away steeper than this.
space-alist (list)
A table that specifies distances between prefatory items, like clef and time-signature. The format is an alist of spacing tuples: (break-align-symbol type . distance), where type can be the symbols minimum-space or extra-space.
space-function (procedure)
Calculate the vertical space between two beams. This function takes a beam grob and the maximum number of beams.
spacing-increment (number)
Add this much space for a doubled duration. Typically, the width of a note head. See also spacing-spanner-interface.
spacing-procedure (procedure)
Procedure for calculating spacing parameters. The routine is called after before-line-breaking-callback.
stacking-dir (direction)
Stack objects in which direction?
staff-padding (dimension, in staff space)
Maintain this much space between reference points and the staff. Its effect is to align objects of differing sizes (like the dynamic p and f) on their baselines.
staff-position (number)
Vertical position, measured in half staff spaces, counted from the middle line.
staff-space (dimension, in staff space)
Amount of space between staff lines, expressed in global staffspace.
staffline-clearance (dimension, in staff space)
How far away ties keep from staff lines.
stem-attachment-function (procedure)
A function that calculates where a stem attaches to the note head? This is a fallback when this information is not specified in the font. The function takes a grob and axis argument, and returns a (x . y) pair, specifying location in terms of note head bounding box.
stem-end-position (number)
Where does the stem end (the end is opposite to the support-head.
stem-shorten (list)
How much a stem in a forced direction should be shortened. The list gives an amount depending on the number of flags/beams.
stem-spacing-correction (number)
Optical correction amount for stems that are placed in tight configurations. For opposite directions, this amount is the correction for two normal sized stems that overlap completely.
stroke-style (string)
set to "grace" to turn stroke through flag on.
style (symbol)
This setting determines in what style a grob is typeset. Valid choices depend on the print-function that is reading this property.
text (markup)
Text markup. See Text markup .
thick-thickness (number)
Bar line thickness, measured in linethickness.
thickness (number)
Bar line thickness, measured in linethickness.
thin-kern (number)
The space after a hair-line in a bar line.
threshold (pair of numbers)
(min . max), where min and max are dimensions in staff space.
transparent (boolean)
This is almost the same as setting print-function to #f, but this retains the dimensions of this grob, which means that grobs can be erased individually.
when (moment)
Global time step associated with this column happen?
width (dimension, in staff space)
The width of a grob measured in staff space.
word-space (dimension, in staff space)
space to insert between lyrics or words in texts.
x-gap (dimension, in staff space)
The horizontal gap between note head and tie.
y-free (dimension, in staff space)
The minimal vertical gap between slur and note heads or stems.
y-offset (dimension, in staff space)
Extra vertical offset for ties away from the center line.
zigzag-length (dimension, in staff space)
The length of the lines of a zigzag, relative to zigzag-width. A value of 1 gives 60-degree zigzags.
zigzag-width (dimension, in staff space)
The width of one zigzag-squiggle. This number will be adjusted slightly so that the glissando line can be constructed from a whole number of squiggles.

Internal backend properties

accidental-grob (layout object)
Accidental for this note.
accidental-grobs (list)
Alist with (NOTENAME . GROBLIST) entries
accidentals-style (symbol)
style for ambitus.
add-cauda (boolean)
does this flexa require an additional cauda on the left side?
add-join (boolean)
is this ligature head joined with the next one by a vertical line?
add-stem (boolean)
is this ligature head a virga and therefore needs an additional stem on the right side?
after-line-breaking-callback (procedure)
This procedure is called after line breaking. Its return value is ignored.
all-elements (list of grobs)
list of all grobs in this line. Its function is to protect objects from being garbage collected.
arpeggio (layout object)
pointer to arpeggio object.
ascendens (boolean)
is this neume of an ascending?
auctum (boolean)
is this neume augmented?
bars (list of grobs)
list of bar line pointers.
beam (layout object)
pointer to the beam, if applicable.
begin-of-line-visible (boolean)
Used for marking ChordNames that should only show changes.
bounded-by-me (list of grobs)
list of spanners that have this column as start/begin point. Only columns that have grobs or act as bounds are spaced.
cause (any type)
Any kind of causation objects (i.e. music, or perhaps translator) that was the cause for this grob.
cavum (boolean)
is this neume outlined?
center-element (layout object)
grob which will be at the center of the group after aligning (when using Align_interface::center_on_element).
chord-tremolo (boolean)
if set, this beam is a tremolo.
columns (list of grobs)
list of grobs, typically containing paper-columns or note-column objects.
conditional-elements (list of grobs)
Internal use only
context-info (integer)
DOCME
de-uglify-parameters (list)
list of 3 real constants. They define the valid areas for the middle control points. They are empirical.
delta-pitch (number)
the interval between this and the next note, or, more precisely, their vertical distance; this is used in ligatures for calculation of the height of vertical joins flexa shapes
deminutum (boolean)
is this neume deminished?
dependencies (list of grobs)
list of score-grob pointers that indicate who to compute first for certain global passes.
descendens (boolean)
is this neume of a descendent type?
details (list)
alist of parameters for detailed grob behavior.
direction-source (layout object)
in case side-relative-direction is set, which grob to get the direction from .
dot (layout object)
reference to Dots object.
elements (list of grobs)
list of grobs, type depending on the Grob where this is set in.
flexa-height (dimension, in staff space)
height of a flexa shape in a ligature grob in staff_space.
flexa-width (dimension, in staff space)
width of a flexa shape in a ligature grob in staff_space.
font (font metric)
Cached font metric object
head-pair (pair)
Pair of grob pointers, pointing to the two heads of the tie.
head-width (dimension, in staff space)
width of this ligature head
heads (list of grobs)
List of note heads.
ideal-distances (list)
(obj . (dist . strength)) pairs.
if-text-padding (number)
padding in case texts are there.
inclinatum (boolean)
is this neume an inclinatum?
interfaces (list)
list of symbols indicating the interfaces supported by this object. Is initialized from the meta field.
items-worth-living (list of grobs)
A list of interesting items. If empty in a particular staff, then that staff is erased.
join-heads (boolean)
Whether to join the note heads of an ambitus grob with a vertical line.
join-left (boolean)
is this ligature head joined with the previous one by a vertical line?
join-left-amount (number)
least-squares-dy (number)
ideal beam slope, without damping.
left-items (list of grobs)
left-neighbors (list of grobs)
List of spacing-wish grobs that are close to the current column.

The closest spacing-wishes determine the actual distances between the columns.

ligature-primitive-callback (procedure)
callback that brews ligature head.
linea (boolean)
attach vertical lines to this neume?
meta (list)
Contains meta information. It is an alist with the entries name and interfaces.
minimum-distances (list)
list of rods, that have the format (obj . dist).
note-columns (pair)
list of NoteColumn grobs.
note-head-style (string)
name of the font character to be used as note heads in the ambitus grob.
note-heads (list of grobs)
List of note head grobs
oriscus (boolean)
is this neume an oriscus?
pedal-text (layout object)
Pointer to the text of a mixed-style piano pedal.
pes-or-flexa (boolean)
shall this neume be joined with the previous head?
position-callbacks (list)
list of functions set spanner positions.
positioning-done (boolean)
Used to signal that a positioning element did its job. This ensures that a positioning is only done once.
prefix-set (number)
primitive (integer)
Pointer to a ligature primitive, i.e. an item similar to a note head that is part of a ligature.
quant-score (number)
Beam quanting score – can be stored for debugging
quilisma (boolean)
is this neume a quilisma?
rest (layout object)
the staff symbol grob that we're in.
rest-collision (layout object)
rest collision that a rest is in.
right-items (list of grobs)
right-neighbors (list of grobs)
see left-neighbors
script-stencil (pair)
Pair (type . arg), which acts as an index for looking up a Stencil object.
shorten (dimension, in staff space)
The amount of space that a stem. Internally used to distribute beam shortening over stems.
side-support-elements (list of grobs)
the support, a list of grobs.
spacing-wishes (list of grobs)
List of note spacing or staff spacing objects.
staff-symbol (layout object)
the staff symbol grob that we're in.
stem (layout object)
pointer to Stem object.
stem-info (pair)
caching of stem parameters
stems (list of grobs)
list of stem objects, corresponding to the notes that the arpeggio has to be before.
stencil (unknown)
Cached output of the print-function.
stropha (boolean)
Is this neume a stropha?
tie (layout object)
tremolo-flag (layout object)
The tremolo object on a stem.
use-breve-rest (boolean)
Use breve rests for measures longer than a whole rest.
virga (boolean)
Is this neume a virga?
x-offset (dimension, in staff space)
Extra horizontal offset for ligature heads.

Scheme functions

— Function: ly:add-interface a b c

Add an interface description.

— Function: ly:add-moment a b

Add two moments.

— Function: ly:all-grob-interfaces

Get a hash table with all interface descriptions.

— Function: ly:bracket a iv t p

Make a bracket in direction a. The extent of the bracket is given by iv. The wings protude by an amount of p, which may be negative. The thickness is given by t.

— Function: ly:context-find context name

Find a parent of context that has name or alias name. Return #f if not found.

— Function: ly:context-id context

Return the id string of context, i.e. for \context Voice = one .. return the string one.

— Function: ly:context-name context

Return the name of context, i.e. for \context Voice = one .. return the symbol Voice.

— Function: ly:context-parent context

Return the parent of context, #f if none.

— Function: ly:context-property c name

Return the value of name from context c

— Function: ly:context-property-where-defined context name

Return the context above context where name is defined.

— Function: ly:context-pushpop-property context grob eltprop val

Do a single \override or \revert operation in context. The grob definition grob is extended with eltprop (if val is specified) or reverted (if unspecified).

— Function: ly:context-set-property! context name val

Set value of property name in context context to val.

— Function: ly:context-unset-property context name

Unset value of property name in context context.

— Function: ly:context? x

Is x a Context object?

— Function: ly:dimension? d

Return d is a number. Used to distinguish length variables from normal numbers.

— Function: ly:dir? s

type predicate. A direction is -1, 0 or 1, where -1 represents left or down and 1 represents right or up.

— Function: ly:div-moment a b

Divide two moments.

— Function: ly:duration-dot-count dur

Extract the dot count from dur

— Function: ly:duration-factor dur

Extract the compression factor from dur. Return as a pair.

— Function: ly:duration-log dur

Extract the duration log from dur

— Function: ly:duration<? p1 p2

Is p1 shorter than p2?

— Function: ly:duration? x

Is x a Duration object?

— Function: ly:export arg

Export a Scheme object to the parser, so it is treated as an identifier.

— Function: ly:find-glyph-by-name font name

This function retrieves a Stencil for the glyph named name in font. The font must be available as an AFM file. If the glyph is not found, #f is returned.

— Function: ly:font-metric? x

Is x a Font_metric object?

— Function: ly:fontify-atom met f

Add a font selection command for the font metric met to f.

— Function: ly:format-output context outname

Given a Score context in its final state,process it and return the (rendered) result.

— Function: ly:get-all-function-documentation

Get a hash table with all lilypond Scheme extension functions.

— Function: ly:get-all-translators

Return a list of all translator objects that may be instantiated.

— Function: ly:get-default-font grob

Return the default font for grob gr.

— Function: ly:get-glyph font index

This function retrieves a Stencil for the glyph numbered index in font.

— Function: ly:get-option var

Get a global option setting. Supported options include

old-relative-used
Report whether old-relative compatibility mode is necessary
old-relative
Report whether old-relative compatibility mode is used
verbose
Report whether we are running in verbose mode
— Function: ly:grob-alist-chain g global

Get an alist chain for grob g, with global as the global default. If unspecified, font-defaults from the paper block is taken.

— Function: ly:grob-extent grob refp axis

Get the extent in axis direction of grob relative to the grob refp

— Function: ly:grob-original grob

Return the unbroken original Grob of grob.

— Function: ly:grob-paper g

Get \paper definition from grob g.

— Function: ly:grob-parent grob axis

Get the parent of grob. axis is 0 for the X-axis, 1 for the Y-axis.

— Function: ly:grob-pq-less? a b

Compare 2 grob priority queue entries. Internal

— Function: ly:grob-property grob sym

Return the value of a value in grob g of property sym. It will return ' () (end-of-list) if sym is undefined in g.

— Function: ly:grob-script-priority-less a b

Compare two grobs by script priority. For internal use.

— Function: ly:grob-set-property! grob sym val

Set sym in grob grob to value val

— Function: ly:grob-staff-position sg

Return the Y-position of sg relative to the staff.

— Function: ly:grob-suicide g

Kill g.

— Function: ly:grob-system g

Return the System Grob of g.

— Function: ly:grob-translate-axis! g d a

Translate g on axis a over distance d.

— Function: ly:grob? x

Is x a Grob object?

— Function: ly:gulp-file name

Read the file name, and return its contents in a string. The file is looked up using the search path.

— Function: ly:input-location sip

Return input location in sip as (filename line column).

— Function: ly:input-location? x

Return #t if x is an input location.

— Function: ly:input-message sip msg

Print msg as a GNU compliant error message, pointing to thelocation in sip.

— Function: ly:intlog2 d

The 2-logarithm of 1/d.

— Function: ly:item-break-dir it

The break status dir of item it. -1 is end of line, 0 unbroken, and 1 begin of line.

— Function: ly:item? g

Is g an Item object?

— Function: ly:iterator? x

Is x a Music_iterator object?

— Function: ly:make-bare-music type props

Make a C++ music object of type type, initialize with props.

This function is for internal use, and is only called by make-music, which is the preferred interface for creating music objects.

— Function: ly:make-duration length dotcount num den

length is the negative logarithm (base 2) of the duration: 1 is a half note, 2 is a quarter note, 3 is an eighth note, etc. The number of dots after the note is given by the optional argument dotcount.

The duration factor is optionally given by num and den.

A duration is a musical duration, i.e. a length of time described by a power of two (whole, half, quarter, etc.) and a number of augmentation dots.

— Function: ly:make-moment n d gn gd

Create the rational number with main timing n/d, and optional grace timin gn/gd.

Moment is a point in musical time. It is consists of a pair of rationals (m,g), where m is the timing for the main notes, and g the timing for grace notes. In absence of grace notes, g is zero.

— Function: ly:make-pitch octave note alter

octave is specified by an integer, zero for the octave containing middle C. note is a number from 0 to 6, with 0 corresponding to C and 6 corresponding to B. The alter is zero for a natural, negative for flats, or positive for sharps.

— Function: ly:make-stencil expr xext yext

Stencils are a device independent output expressions.They carry two pieces of information:

1: a specification of how to print this object. This specification is processed by the output backends, for example scm/output-tex.scm.

2: the vertical and horizontal extents of the object.

— Function: ly:moment<? a b

Compare two moments.

— Function: ly:moment? x

Is x a Moment object?

— Function: ly:mul-moment a b

Multiply two moments.

— Function: ly:music-compress m factor

Compress music object m by moment factor.

— Function: ly:music-deep-copy m

Copy m and all sub expressions of m

— Function: ly:music-duration-compress mus fact

Compress mus by factor fact, which is a Moment.

— Function: ly:music-duration-length mus

Extract the duration field from mus, and return the length.

— Function: ly:music-length mus

Get the length of music expression mus, and return as a Moment object.

— Function: ly:music-list? lst

Type predicate: return true if lst is a list of music objects.

— Function: ly:music-mutable-properties mus

Return an alist containing the mutable properties of mus. The immutable properties are not available, since they are constant and initialized by the make-music function.

— Function: ly:music-name mus

Return the name of music.

— Function: ly:music-property mus sym

Get the property sym of music expression mus. If sym is undefined, return ' ().

— Function: ly:music-set-property! mus sym val

Set property sym in music expression mus to val.

— Function: ly:music-transpose m p

Transpose m such that central C is mapped to p. Return m.

— Function: ly:music? x

Is x a Music object?

— Function: ly:number->string s

Convert num to a string without generating many decimals.

— Function: ly:option-usage

Print ly-set-option usage

— Function: ly:output-def-clone def

Clone def.

— Function: ly:output-def-scope def

Get the variable scope inside def.

— Function: ly:paper-book? x

Is x a Paper_book object?

— Function: ly:paper-def? def

Is def a paper definition?

— Function: ly:paper-get-font paper chain

Return a font metric satisfying the font-qualifiers in the alist chain chain. (An alist chain is a list of alists, containing grob properties).

— Function: ly:paper-get-number paper name

Return the paper variable name.

— Function: ly:paper-line-break-score line

Return the score for breaking after line.

— Function: ly:paper-line-height line

Return the height of line.

— Function: ly:paper-line-number line

Return the number of line.

— Function: ly:paper-line? x

Is x a Paper_line object?

— Function: ly:paper-lookup pap sym

Lookup sym in pap. Return the value or '() if undefined.

— Function: ly:pitch-alteration pp

Extract the alteration from pitch p.

— Function: ly:pitch-diff pitch root

Return pitch delta such that pitch transposed by delta equals root

— Function: ly:pitch-notename pp

Extract the note name from pitch pp.

— Function: ly:pitch-octave pp

Extract the octave from pitch p.

— Function: ly:pitch-quartertones pp

Calculate the number of quarter tones of p from middle C.

— Function: ly:pitch-semitones pp

calculate the number of semitones of p from middle C.

— Function: ly:pitch-steps p

Number of steps counted from middle C of the pitch p.

— Function: ly:pitch-transpose p delta

Transpose p by the amount delta, where delta is relative to middle C.

— Function: ly:pitch<? p1 p2

Is p1 lexicographically smaller than p2?

— Function: ly:pitch? x

Is x a Pitch object?

— Function: ly:protects

Return hash of protected objects.

— Function: ly:ragged-page-breaks lines book text first last

Return a vector with line numbers of page breaks.

— Function: ly:round-filled-box xext yext blot

Make a Stencil that prints a black box of dimensions xext, yext and roundness blot.

— Function: ly:run-translator mus output-def

Process mus according to output_def. An interpretation context is set up, and mus is interpreted with it. The context is returned in its final state.

— Function: ly:set-option var val

Set a global option value. Supported options include

help
List all options.
midi-debug
If set to true, generate human readable MIDI
internal-type-checking
Set paranoia for property assignments
parse-protect
If protection is switched on, errors in inline scheme are caught in the parser. If off, GUILE will halt on errors, and give a stack trace. Default is protected evaluation.
old-relative
Relative for simultaneous music functions similar to chord syntax
new-relative
Relative for simultaneous music functions similar to sequential music

This function is useful to call from the command line: lilypond -e "(ly-set-option 'midi-debug #t)".

— Function: ly:set-point-and-click what

Set the options for Point-and-click source specials output. The argument is a symbol. Possible options are none (no source specials), line and line-column

— Function: ly:spanner-broken-into spanner

Return broken-into list for spanner.

— Function: ly:spanner-get-bound slur dir

Get one of the bounds of spanner. dir is -1 for left, and 1 for right.

— Function: ly:spanner? g

Is g a spanner object?

— Function: ly:stencil-add args

Combine stencils. Takes any number of arguments.

— Function: ly:stencil-align-to! stil axis dir

Align stil using its own extents. dir is a number -1, 1 are left and right respectively. Other values are interpolated (so 0 means the center.

— Function: ly:stencil-combine-at-edge first axis direction second padding minimum

Construct a stencil by putting second next to first. axis can be 0 (x-axis) or 1 (y-axis), direction can be -1 (left or down) or 1 (right or up). The stencils are juxtaposed with padding as extra space. If this puts the reference points closer than minimum, they are moved by the latter amount.

— Function: ly:stencil-extent stil axis

Return a pair of numbers signifying the extent of stil in axis direction (0 or 1 for x and y axis respectively).

— Function: ly:stencil-get-expr stil

Return the expression of stil.

— Function: ly:stencil-moved-to-edge first axis direction second padding minimum

Similar to ly:stencil-combine-edge, but returns second positioned to be next to first.

— Function: ly:stencil-set-extent! stil axis np

Set the extent of stil (extent must be a pair of numbers) in axis direction (0 or 1 for x- and y-axis respectively).

— Function: ly:stencil-translate stil offset

Return a stil, but translated by offset (a pair of numbers).

— Function: ly:stencil-translate-axis stil amount axis

Return a copy of stil but translated by amount in axis direction.

— Function: ly:stencil? x

Is x a Stencil object?

— Function: ly:text-dimension font text

Given the font metric in font and the string text, compute the extents of that text in that font. The return value is a pair of number-pairs.

— Function: ly:translator-description me

Return an alist of properties of translator me.

— Function: ly:translator-name trans

Return the type name of the translator object trans. The name is a symbol.

— Function: ly:translator? x

Is x a Translator object?

— Function: ly:transpose-key-alist l pit

Make a new key alist of l transposed by pitch pit

— Function: ly:unit

Return the unit used for lengths as a string.

— Function: ly:version

Return the current lilypond version as a list, e.g. (1 3 127 uu1).

— Function: ly:warn str

Scheme callable function to issue the warning msg.

Index

Concept index

Variable index

Function index

Read comments on this page, or add one.

This page is for LilyPond-2.2.6 (stable-branch).

Report errors to <bug-lilypond@gnu.org>.