2.1.19 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 \layout block) is processed.

This context creates the following layout object(s):

BarNumber, BreakAlignGroup, BreakAlignment, GraceSpacing, LeftEdge, MetronomeMark, NonMusicalPaperColumn, PaperColumn, ParenthesesItem, RehearsalMark, SpacingSpanner, SystemStartBar, SystemStartBrace, SystemStartBracket, SystemStartSquare, VerticalAlignment, VoltaBracketSpanner and VoltaBracket.

This context sets the following properties:

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

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

Parenthesis_engraver

Parenthesize objects whose music cause has the parenthesize property.

This engraver creates the following layout object(s):

ParenthesesItem.

Bar_number_engraver

A bar number is created whenever measurePosition is zero and when there is a bar line (i.e., when whichBar is set). It is put on top of all staves, and appears only at the left side of the staff. The staves are taken from stavesFound, which is maintained by Staff_collecting_engraver.

Properties (read)

currentBarNumber (integer)

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

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.

stavesFound (list of grobs)

A list of all staff-symbols found.

barNumberVisibility (procedure)

A Procedure that takes an integer and returns whether the corresponding bar number should be printed.

This engraver creates the following layout object(s):

BarNumber.

Stanza_number_align_engraver

This engraver ensures that stanza numbers are neatly aligned.

Vertical_align_engraver

Catch groups (staves, lyrics lines, etc.) and stack them vertically.

Properties (read)

alignAboveContext (string)

Where to insert newly created context in vertiical alignment.

alignBelowContext (string)

Where to insert newly created context in vertiical alignment.

This engraver creates the following layout object(s):

VerticalAlignment.

Grace_spacing_engraver

Bookkeeping of shortest starting and playing notes in grace note runs.

Properties (read)

currentMusicalColumn (layout object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

This engraver creates the following layout object(s):

GraceSpacing.

Spacing_engraver

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

Music types accepted:

spacing-section-event

Properties (read)

currentMusicalColumn (layout object)

Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).

currentCommandColumn (layout object)

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

proportionalNotationDuration (moment)

Global override for shortest-playing duration. This is used for switching on proportional notation.

This engraver creates the following layout object(s):

SpacingSpanner.

Break_align_engraver

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

This engraver creates the following layout object(s):

BreakAlignGroup, BreakAlignment and LeftEdge.

Metronome_mark_engraver

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

Properties (read)

stavesFound (list of grobs)

A list of all staff-symbols found.

metronomeMarkFormatter (procedure)

How to produce a metronome markup. Called with four arguments: text, duration, count and context.

tempoUnitDuration (duration)

Unit for specifying tempo.

tempoUnitCount (number)

Count for specifying tempo.

tempoText (markup)

Text for tempo marks.

tempoHideNote (boolean)

Hide the note=count in tempo marks.

This engraver creates the following layout object(s):

MetronomeMark.

Volta_engraver

Make volta brackets.

Properties (read)

repeatCommands (list)

This property is a list of commands of the form (list 'volta x), where x is a string or #f. 'end-repeat is also accepted as a command.

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.

stavesFound (list of grobs)

A list of all staff-symbols found.

This engraver creates the following layout object(s):

VoltaBracket and VoltaBracketSpanner.

Mark_engraver

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 marks end up on the same Y location.

Music types accepted:

mark-event

Properties (read)

markFormatter (procedure)

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

rehearsalMark (integer)

The last rehearsal mark printed.

stavesFound (list of grobs)

A list of all staff-symbols found.

This engraver creates the following layout object(s):

RehearsalMark.

System_start_delimiter_engraver

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

Properties (read)

systemStartDelimiter (symbol)

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

systemStartDelimiterHierarchy (pair)

A nested list, indicating the nesting of a start delimiters.

currentCommandColumn (layout object)

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

This engraver creates the following layout object(s):

SystemStartBar, SystemStartBrace, SystemStartBracket and SystemStartSquare.

Output_property_engraver

Apply a procedure to any grob acknowledged.

Music types accepted:

apply-output-event

Default_bar_line_engraver

This engraver determines what kind of automatic bar lines should be produced, and sets whichBar accordingly. It should be at the same level as Timing_translator.

Properties (read)

automaticBars (boolean)

If set to false then bar lines will not be printed automatically; they must be explicitly created with a \bar command. Unlike the \cadenzaOn keyword, measures are still counted. Bar line generation will resume according to that count if this property is unset.

barAlways (boolean)

If set to true a bar line is drawn after each note.

defaultBarType (string)

Set the default type of bar line. See whichBar for information on available bar types.

This variable is read by Timing_translator at Score level.

measureLength (moment)

Length of one measure in the current time signature.

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.

measurePosition (moment)

How much of the current measure have we had. This can be set manually to create incomplete measures.

Properties (write)

automaticBars (boolean)

If set to false then bar lines will not be printed automatically; they must be explicitly created with a \bar command. Unlike the \cadenzaOn keyword, measures are still counted. Bar line generation will resume according to that count if this property is unset.

Timing_translator

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

Properties (read)

internalBarNumber (integer)

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

currentBarNumber (integer)

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

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.

Properties (write)

internalBarNumber (integer)

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

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.

Staff_collecting_engraver

Maintain the stavesFound variable.

Properties (read)

stavesFound (list of grobs)

A list of all staff-symbols found.

Properties (write)

stavesFound (list of grobs)

A list of all staff-symbols found.

Repeat_acknowledge_engraver

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

Properties (read)

doubleRepeatType (string)

Set the default bar line for double repeats.

repeatCommands (list)

This property is a list of commands of the form (list 'volta x), where x is a string or #f. 'end-repeat is also accepted as a command.

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.

Vertically_spaced_contexts_engraver

Properties (read)

verticallySpacedContexts (list)

List of symbols, containing context names whose vertical axis groups should be taken into account for vertical spacing of systems.

Properties (write)

verticallySpacedContexts (list)

List of symbols, containing context names whose vertical axis groups should be taken into account for vertical spacing of systems.

Paper_column_engraver

Take care of generating columns.

This engraver decides whether a column is breakable. The default is that a column is always breakable. However, every Bar_engraver that does not have a barline at a certain point will set forbidBreaks in the score context to stop line breaks. In practice, this means that you can make a break point by creating a bar line (assuming that there are no beams or notes that prevent a break point).

Music types accepted:

label-event and break-event

Properties (read)

forbidBreak (boolean)

If set to ##t, prevent a line break at this point.

Properties (write)

forbidBreak (boolean)

If set to ##t, prevent a line break at this point.

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 object(s):

NonMusicalPaperColumn and PaperColumn.


Internals Reference