Next: , Previous: RhythmicStaff, Up: Contexts



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

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