Score - LilyPond program-reference
Description: LilyPond program-reference

Next: Staff, 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 `\layout` block) is processed.

This context creates the following layout objects:

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

This context sets the following properties:

- Set translator property `timing` to `#t`
- Set translator property `verticallySpacedContexts` to `'(Staff)`
- Set translator property `instrumentTransposition` to `#<Pitch c' >`
- Set translator property `quotedEventTypes` to `'(note-event rest-event time-scaled-music tie-event beam-event)`
- Set translator property `keepAliveInterfaces` to `'(rhythmic-grob-interface lyric-interface percent-repeat-interface)`
- Set translator property `graceSettings` to `'((Voice Stem direction 1) (Voice Stem font-size -3) (Voice NoteHead font-size -3) (Voice Dots font-size -3) (Voice Stem length-fraction 0.8) (Voice Stem no-stem-extend #t) (Voice Beam thickness 0.384) (Voice Beam length-fraction 0.8) (Voice Accidental font-size -4) (Voice Slur direction -1))`
- Set translator property `metronomeMarkFormatter` to `format-metronome-markup`
- Set translator property `figuredBassFormatter` to `format-bass-figure`
- Set translator property `tablatureFormat` to `fret-number-tablature-format`
- Set translator property `stringTunings` to `'(4 -1 -5 -10 -15 -20)`
- Set translator property `highStringOne` to `#t`
- Set translator property `stringOneTopmost` to `#t`
- Set translator property `bassStaffProperties` to `'((assign clefGlyph clefs.F) (assign clefPosition 2) (assign middleCPosition 6))`
- Set translator property `chordNameExceptionsPartial` to `'(((#<Pitch c' > #<Pitch d' >) (#<procedure line-markup (layout props args)> ((#<procedure normal-size-super-markup (layout props arg)> 2)))) ((#<Pitch c' > #<Pitch ees' >) (#<procedure line-markup (layout props args)> (m))) ((#<Pitch c' > #<Pitch f' >) (#<procedure line-markup (layout props args)> ((#<procedure normal-size-super-markup (layout props arg)> sus4)))) ((#<Pitch c' > #<Pitch g' >) (#<procedure line-markup (layout props args)> ((#<procedure normal-size-super-markup (layout props arg)> 5)))) ((#<Pitch c' > #<Pitch ees' > #<Pitch f' >) (#<procedure line-markup (layout props args)> (m)) (#<procedure line-markup (layout props args)> ((#<procedure normal-size-super-markup (layout props arg)> sus4)))) ((#<Pitch c' > #<Pitch d' > #<Pitch ees' >) (#<procedure line-markup (layout props args)> (m)) (#<procedure line-markup (layout props args)> ((#<procedure normal-size-super-markup (layout props arg)> sus2)))))`
- Set translator property `chordNameExceptionsFull` to `'(((#<Pitch c' > #<Pitch e' > #<Pitch gis' >) (#<procedure line-markup (layout props args)> (+))) ((#<Pitch c' > #<Pitch ees' > #<Pitch ges' >) (#<procedure line-markup (layout props args)> ((#<procedure super-markup (layout props arg)> o)))) ((#<Pitch c' > #<Pitch ees' > #<Pitch ges' > #<Pitch bes' >) (#<procedure line-markup (layout props args)> ((#<procedure super-markup (layout props arg)> ø)))) ((#<Pitch c' > #<Pitch ees' > #<Pitch ges' > #<Pitch beses' >) (#<procedure line-markup (layout props args)> ((#<procedure super-markup (layout props arg)> o7)))))`
- Set translator property `chordPrefixSpacer` to `0`
- Set translator property `chordRootNamer` to `note-name->markup`
- Set translator property `chordNoteNamer` to `'()`
- Set translator property `chordNameExceptions` to `'(((#<Pitch e' > #<Pitch gis' >) #<procedure line-markup (layout props args)> (+)) ((#<Pitch ees' > #<Pitch ges' >) #<procedure line-markup (layout props args)> ((#<procedure super-markup (layout props arg)> o))) ((#<Pitch ees' > #<Pitch ges' > #<Pitch bes' >) #<procedure line-markup (layout props args)> ((#<procedure super-markup (layout props arg)> ø))) ((#<Pitch ees' > #<Pitch ges' > #<Pitch beses' >) #<procedure line-markup (layout props args)> ((#<procedure super-markup (layout props arg)> o7))))`
- Set translator property `chordNameSeparator` to `'(#<procedure simple-markup (layout props str)> /)`
- Set translator property `majorSevenSymbol` to `'(#<procedure line-markup (layout props args)> ((#<procedure triangle-markup (layout props filled)> #f)))`
- Set translator property `chordNameFunction` to `ignatzek-chord-names`
- Set translator property `barCheckSynchronize` to `#f`
- Set translator property `keyAlterationOrder` to `'((6 . -2) (2 . -2) (5 . -2) (1 . -2) (4 . -2) (0 . -2) (3 . -2) (3 . 2) (0 . 2) (4 . 2) (1 . 2) (5 . 2) (2 . 2) (6 . 2) (6 . -4) (2 . -4) (5 . -4) (1 . -4) (4 . -4) (0 . -4) (3 . -4) (3 . 4) (0 . 4) (4 . 4) (2 . 4) (5 . 4) (2 . 4) (6 . 4))`
- Set translator property `printKeyCancellation` to `#t`
- Set translator property `autoCautionaries` to `'()`
- Set translator property `autoAccidentals` to `'(Staff (same-octave . 0))`
- Set translator property `extraNatural` to `#t`
- Set translator property `allowBeamBreak` to `#f`
- Set translator property `subdivideBeams` to `#f`
- Set translator property `rehearsalMark` to `1`
- Set translator property `markFormatter` to `format-mark-letters`
- Set translator property `tupletNumberFormatFunction` to `denominator-tuplet-formatter`
- Set translator property `stringNumberOrientations` to `'(up down)`
- Set translator property `fingeringOrientations` to `'(up down)`
- Set translator property `harmonicAccidentals` to `#t`
- Set translator property `pedalSostenutoStyle` to `'mixed`
- Set translator property `pedalSostenutoStrings` to `'(Sost. Ped. *Sost. Ped. *)`
- Set translator property `pedalUnaCordaStyle` to `'text`
- Set translator property `pedalUnaCordaStrings` to `'(una corda tre corde)`
- Set translator property `pedalSustainStyle` to `'text`
- Set translator property `pedalSustainStrings` to `'(Ped. *Ped. *)`
- Set translator property `scriptDefinitions` to `'((thumb (script-stencil feta thumb . thumb) (direction . 1)) (accent (avoid-slur . around) (quantize-position . #t) (script-stencil feta sforzato . sforzato) (side-relative-direction . -1)) (espressivo (avoid-slur . around) (quantize-position . #t) (script-stencil feta espr . espr) (side-relative-direction . -1)) (marcato (script-stencil feta dmarcato . umarcato) (quantize-position . #t) (side-relative-direction . -1)) (staccatissimo (avoid-slur . inside) (script-stencil feta dstaccatissimo . ustaccatissimo) (side-relative-direction . -1)) (portato (script-stencil feta uportato . dportato) (side-relative-direction . -1)) (accentus (script-stencil feta uaccentus . uaccentus) (side-relative-direction . -1) (quantize-position . #t) (script-priority . -100) (direction . 1)) (ictus (script-stencil feta ictus . ictus) (side-relative-direction . -1) (quantize-position . #t) (script-priority . -100) (direction . -1)) (semicirculus (script-stencil feta dsemicirculus . dsemicirculus) (side-relative-direction . -1) (quantize-position . #t) (script-priority . -100) (direction . 1)) (circulus (script-stencil feta circulus . circulus) (side-relative-direction . -1) (quantize-position . #t) (script-priority . -100) (direction . 1)) (signumcongruentiae (script-stencil feta dsignumcongruentiae . usignumcongruentiae) (direction . 1)) (fermata (script-stencil feta dfermata . ufermata) (avoid-slur . around) (script-priority . 4000) (direction . 1)) (shortfermata (script-stencil feta dshortfermata . ushortfermata) (direction . 1)) (longfermata (script-stencil feta dlongfermata . ulongfermata) (direction . 1)) (verylongfermata (script-stencil feta dverylongfermata . uverylongfermata) (direction . 1)) (stopped (script-stencil feta stopped . stopped) (direction . 1)) (staccato (script-stencil feta staccato . staccato) (side-relative-direction . -1) (quantize-position . #t) (avoid-slur . inside) (script-priority . -100)) (tenuto (script-stencil feta tenuto . tenuto) (quantize-position . #t) (avoid-slur . inside) (side-relative-direction . -1)) (comma (script-stencil feta lcomma . rcomma) (quantize-position . #t) (direction . 1)) (varcomma (script-stencil feta lvarcomma . rvarcomma) (quantize-position . #t) (direction . 1)) (upbow (script-stencil feta upbow . upbow) (avoid-slur . around) (direction . 1)) (downbow (script-stencil feta downbow . downbow) (avoid-slur . around) (direction . 1)) (lheel (script-stencil feta upedalheel . upedalheel) (direction . -1)) (rheel (script-stencil feta dpedalheel . dpedalheel) (direction . 1)) (ltoe (script-stencil feta upedaltoe . upedaltoe) (direction . -1)) (rtoe (script-stencil feta dpedaltoe . dpedaltoe) (direction . 1)) (turn (script-stencil feta turn . turn) (direction . 1)) (open (avoid-slur . outside) (script-stencil feta open . open) (direction . 1)) (flageolet (script-stencil feta flageolet . flageolet) (direction . 1)) (reverseturn (script-stencil feta reverseturn . reverseturn) (direction . 1)) (trill (script-stencil feta trill . trill) (direction . 1) (avoid-slur . outside) (script-priority . 2000)) (prall (script-stencil feta prall . prall) (direction . 1)) (mordent (script-stencil feta mordent . mordent) (direction . 1)) (prallprall (script-stencil feta prallprall . prallprall) (direction . 1)) (prallmordent (script-stencil feta prallmordent . prallmordent) (direction . 1)) (upprall (script-stencil feta upprall . upprall) (direction . 1)) (downprall (script-stencil feta downprall . downprall) (direction . 1)) (upmordent (script-stencil feta upmordent . upmordent) (direction . 1)) (downmordent (script-stencil feta downmordent . downmordent) (direction . 1)) (lineprall (script-stencil feta lineprall . lineprall) (direction . 1)) (pralldown (script-stencil feta pralldown . pralldown) (direction . 1)) (prallup (script-stencil feta prallup . prallup) (direction . 1)) (segno (script-stencil feta segno . segno) (direction . 1)) (coda (script-stencil feta coda . coda) (direction . 1)) (varcoda (script-stencil feta varcoda . varcoda) (direction . 1)))`
- Set translator property `autoBeamCheck` to `default-auto-beam-check`
- Set translator property `autoBeaming` to `#t`
- Set translator property `autoBeamSettings` to `'(((end * * 3 2) . #<Mom 1/2>) ((end * * 3 2) . #<Mom 1>) ((end 1 16 3 2) . #<Mom 1/4>) ((end 1 16 3 2) . #<Mom 1/2>) ((end 1 16 3 2) . #<Mom 3/4>) ((end 1 16 3 2) . #<Mom 5/4>) ((end 1 32 3 2) . #<Mom 1/8>) ((end 1 32 3 2) . #<Mom 1/4>) ((end 1 32 3 2) . #<Mom 3/8>) ((end 1 32 3 2) . #<Mom 1/2>) ((end 1 32 3 2) . #<Mom 5/8>) ((end 1 32 3 2) . #<Mom 3/4>) ((end 1 32 3 2) . #<Mom 9/8>) ((end 1 32 3 2) . #<Mom 5/4>) ((end 1 32 3 2) . #<Mom 11/8>) ((end * * 3 4) . #<Mom 3/4>) ((end 1 16 3 4) . #<Mom 1/4>) ((end 1 16 3 4) . #<Mom 1/2>) ((end 1 32 3 4) . #<Mom 1/8>) ((end 1 32 3 4) . #<Mom 1/4>) ((end 1 32 3 4) . #<Mom 3/8>) ((end 1 32 3 4) . #<Mom 1/2>) ((end 1 32 3 4) . #<Mom 5/8>) ((end * * 3 8) . #<Mom 3/8>) ((end * * 4 4) . #<Mom 1/2>) ((end 1 12 4 4) . #<Mom 1/4>) ((end 1 12 4 4) . #<Mom 3/4>) ((end 1 16 4 4) . #<Mom 1/4>) ((end 1 16 4 4) . #<Mom 3/4>) ((end 1 32 4 4) . #<Mom 1/8>) ((end 1 32 4 4) . #<Mom 1/4>) ((end 1 32 4 4) . #<Mom 3/8>) ((end 1 32 4 4) . #<Mom 5/8>) ((end 1 32 4 4) . #<Mom 3/4>) ((end 1 32 4 4) . #<Mom 7/8>) ((end * * 2 4) . #f) ((end * * 2 4) . #<Mom 1/4>) ((end 1 32 2 4) . #<Mom 1/8>) ((end 1 32 2 4) . #<Mom 3/8>) ((end * * 4 8) . #f) ((end * * 4 8) . #<Mom 1/4>) ((end 1 32 4 8) . #<Mom 1/8>) ((end 1 32 4 8) . #<Mom 3/8>) ((end * * 4 16) . #f) ((end * * 4 16) . #<Mom 1/8>) ((end * * 6 8) . #f) ((end * * 6 8) . #<Mom 3/8>) ((end 1 32 6 8) . #<Mom 1/8>) ((end 1 32 6 8) . #<Mom 1/4>) ((end 1 32 6 8) . #<Mom 1/2>) ((end 1 32 6 8) . #<Mom 5/8>) ((end * * 9 8) . #f) ((end * * 9 8) . #<Mom 3/8>) ((end * * 9 8) . #<Mom 3/4>) ((end 1 32 9 8) . #<Mom 1/8>) ((end 1 32 9 8) . #<Mom 1/4>) ((end 1 32 9 8) . #<Mom 1/2>) ((end 1 32 9 8) . #<Mom 5/8>) ((end 1 32 9 8) . #<Mom 7/8>) ((end 1 32 9 8) . #<Mom 1>) ((end 1 32 9 8) . #<Mom 9/8>) ((end * * 12 8) . #f) ((end * * 12 8) . #<Mom 3/8>) ((end * * 12 8) . #<Mom 3/4>) ((end * * 12 8) . #<Mom 9/8>) ((end * * 12 8) . #<Mom 2>) ((end 1 32 12 8) . #<Mom 1/8>))`
- Set translator property `explicitKeySignatureVisibility` to `#(#t #t #t)`
- Set translator property `explicitClefVisibility` to `#(#t #t #t)`
- Set translator property `automaticBars` to `#t`
- Set translator property `barNumberVisibility` to `first-bar-number-invisible`
- Set translator property `defaultBarType` to `|`
- Set translator property `firstClef` to `#t`
- Set translator property `middleCPosition` to `-6`
- Set translator property `clefPosition` to `-2`
- Set translator property `clefGlyph` to `clefs.G`
- Set translator property `tieWaitForNote` to `#f`
- Set translator property `melismaBusyProperties` to `'(melismaBusy slurMelismaBusy tieMelismaBusy beamMelismaBusy)`
- Set translator property `drumStyleTable` to `#<hash-table 29/61>`
- Set translator property `systemStartDelimiter` to `'SystemStartBar`
- Set translator property `printPartCombineTexts` to `#t`
- Set translator property `aDueText` to `a2`
- Set translator property `soloIIText` to `Solo II`
- Set translator property `soloText` to `Solo`

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

This context is built from the following engravers:

`Parenthesis_engraver`
  Parenthesize objects whose music cause has the `parenthesize` property.

  This engraver creates the following layout objects: ParenthesesItem.

`Tweak_engraver`
  Read the `tweaks` property from the originating Music event, and set properties.
`Bar_number_engraver`
  A bar number is created whenever measurePosition is zero and when there is a bar line (ie. when `whichBar` is set. 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)

  `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)
    list of all staff-symbols found.
  `barNumberVisibility` (procedure)
    Procedure that takes an int and returns whether the corresponding bar number should be printed
  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 groups (staffs, 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 objects: VerticalAlignment.
`Spacing_engraver`
  make a SpacingSpanner and do bookkeeping of shortest starting and playing notes

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

  `stavesFound` (list of grobs)
    list of all staff-symbols found.
  `metronomeMarkFormatter` (procedure)
    How to produce a metronome markup. Called with 2 arguments, event and context.
  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)

  `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.
  `stavesFound` (list of grobs)
    list of all staff-symbols found.
  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`.
  `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 objects: SystemStartBar, SystemStartBrace, SystemStartBracket and SystemStartSquare.
`Output_property_engraver`
  Apply a procedure to any grob acknowledged.

  Music types accepted:

  layout-instruction

`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 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.
  `defaultBarType` (string)
    Sets 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 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.
`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`.

  This engraver adds the alias `Timing` to its containing context.

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

  `repeatCommands` (list)
    This property is read to find any command of the form `(volta .` x`)`, where x is a string or `#f`
  `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`
  Takes care of generating columns.

  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 (write)

  `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 and PaperColumn.

This page is for LilyPond-2.8.8 (stable-branch).

Other languages: English.
Using automatic language selection.