#### 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:

- Set translator property `graceSettings` to `'#((Voice Stem direction 1) (Voice Stem lengths (2.8 2.8 2.8 3.6 4.0)) (Voice Stem stem-shorten (0.4 0)) (Voice Stem font-size -3) (Voice NoteHead font-size -3) (Voice Dots font-size -3) (Voice Stem beamed-lengths (2.608)) (Voice Stem beamed-minimum-free-lengths (2.0 1.6 1.2)) (Voice Stem beamed-extreme-minimum-free-lengths (1.464 1.2)) (Voice Stem no-stem-extend #t) (Voice Beam thickness 0.384) (Voice Beam space-function #<procedure #f (beam mult)>) (Voice Accidental font-size -4) (Voice Slur direction -1))`
- Set translator property `metronomeMarkFormatter` to `format-metronome-markup`
- Set translator property `bassFigureFormatFunction` 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 `chordNameExceptionsPartial` to `'(((#<Pitch c' > #<Pitch d' >) (#<procedure line-markup (paper props args)> ((#<procedure normal-size-super-markup (paper props arg)> (#<procedure simple-markup (paper props str)> 2))))) ((#<Pitch c' > #<Pitch ees' >) (#<procedure line-markup (paper props args)> ((#<procedure simple-markup (paper props str)> m)))) ((#<Pitch c' > #<Pitch f' >) (#<procedure line-markup (paper props args)> ((#<procedure normal-size-super-markup (paper props arg)> (#<procedure simple-markup (paper props str)> sus4))))) ((#<Pitch c' > #<Pitch g' >) (#<procedure line-markup (paper props args)> ((#<procedure normal-size-super-markup (paper props arg)> (#<procedure simple-markup (paper props str)> 5))))) ((#<Pitch c' > #<Pitch ees' > #<Pitch f' >) (#<procedure line-markup (paper props args)> ((#<procedure simple-markup (paper props str)> m))) (#<procedure line-markup (paper props args)> ((#<procedure normal-size-super-markup (paper props arg)> (#<procedure simple-markup (paper props str)> sus4))))) ((#<Pitch c' > #<Pitch d' > #<Pitch ees' >) (#<procedure line-markup (paper props args)> ((#<procedure simple-markup (paper props str)> m))) (#<procedure line-markup (paper props args)> ((#<procedure normal-size-super-markup (paper props arg)> (#<procedure simple-markup (paper props str)> sus2))))))`
- Set translator property `chordNameExceptionsFull` to `'(((#<Pitch c' > #<Pitch e' > #<Pitch gis' >) (#<procedure line-markup (paper props args)> ((#<procedure simple-markup (paper props str)> +)))) ((#<Pitch c' > #<Pitch ees' > #<Pitch ges' >) (#<procedure line-markup (paper props args)> ((#<procedure super-markup (paper props arg)> (#<procedure simple-markup (paper props str)> o))))) ((#<Pitch c' > #<Pitch ees' > #<Pitch ges' > #<Pitch bes' >) (#<procedure line-markup (paper props args)> ((#<procedure super-markup (paper props arg)> (#<procedure combine-markup (paper props m1 m2)> (#<procedure simple-markup (paper props str)> o) (#<procedure simple-markup (paper props str)> /)))))) ((#<Pitch c' > #<Pitch ees' > #<Pitch ges' > #<Pitch beses' >) (#<procedure line-markup (paper props args)> ((#<procedure super-markup (paper props arg)> (#<procedure simple-markup (paper props str)> o7))))))`
- 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 (paper props args)> ((#<procedure simple-markup (paper props str)> +))) ((#<Pitch ees' > #<Pitch ges' >) #<procedure line-markup (paper props args)> ((#<procedure super-markup (paper props arg)> (#<procedure simple-markup (paper props str)> o)))) ((#<Pitch ees' > #<Pitch ges' > #<Pitch bes' >) #<procedure line-markup (paper props args)> ((#<procedure super-markup (paper props arg)> (#<procedure combine-markup (paper props m1 m2)> (#<procedure simple-markup (paper props str)> o) (#<procedure simple-markup (paper props str)> /))))) ((#<Pitch ees' > #<Pitch ges' > #<Pitch beses' >) #<procedure line-markup (paper props args)> ((#<procedure super-markup (paper props arg)> (#<procedure simple-markup (paper props str)> o7)))))`
- Set translator property `chordNameSeparator` to `'(#<procedure simple-markup (paper props str)> /)`
- Set translator property `majorSevenSymbol` to `'(#<procedure override-markup (paper props new-prop arg)> (font-encoding . math) (#<procedure simple-markup (paper props str)> M))`
- Set translator property `chordNameFunction` to `ignatzek-chord-names`
- Set translator property `barCheckSynchronize` to `#f`
- Set translator property `keyAccidentalOrder` 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 `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 `verticalAlignmentChildCallback` to `Align_interface::alignment_callback`
- Set translator property `scriptDefinitions` to `'((thumb (script-stencil feta thumb . thumb) (direction . 1)) (accent (script-stencil feta sforzato . sforzato) (side-relative-direction . -1)) (marcato (script-stencil feta dmarcato . umarcato) (side-relative-direction . -1)) (staccatissimo (script-stencil feta dstaccatissimo . ustaccatissimo) (side-relative-direction . -1)) (portato (script-stencil feta dportato . uportato) (side-relative-direction . -1)) (accentus (script-stencil feta uaccentus . uaccentus) (side-relative-direction . -1) (follow-into-staff . #t) (priority . -100) (direction . 1)) (ictus (script-stencil feta ictus . ictus) (side-relative-direction . -1) (follow-into-staff . #t) (priority . -100) (direction . -1)) (semicirculus (script-stencil feta dsemicirculus . dsemicirculus) (side-relative-direction . -1) (follow-into-staff . #t) (priority . -100) (direction . 1)) (circulus (script-stencil feta circulus . circulus) (side-relative-direction . -1) (follow-into-staff . #t) (priority . -100) (direction . 1)) (signumcongruentiae (script-stencil feta dsignumcongruentiae . usignumcongruentiae) (direction . 1)) (fermata (script-stencil feta dfermata . ufermata) (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) (follow-into-staff . #t) (priority . -100)) (tenuto (script-stencil feta tenuto . tenuto) (follow-into-staff . #t) (side-relative-direction . -1)) (comma (script-stencil feta lcomma . rcomma) (follow-into-staff . #t) (direction . 1)) (varcomma (script-stencil feta lvarcomma . rvarcomma) (follow-into-staff . #t) (direction . 1)) (upbow (script-stencil feta upbow . upbow) (direction . 1)) (downbow (script-stencil feta downbow . downbow) (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 (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) (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 `autoBeaming` to `#t`
- Set translator property `autoBeamSettings` to `'(((end * * 3 2) . #<Mom 1/2>) ((end 1 16 3 2) . #<Mom 1/4>) ((end 1 32 3 2) . #<Mom 1/8>) ((begin 1 8 3 4) . #<Mom 1/4>) ((end * * 3 4) . #<Mom 3/4>) ((begin 1 16 3 4) . #<Mom 1/16>) ((end 1 16 3 4) . #<Mom 1/4>) ((end 1 32 3 4) . #<Mom 1/8>) ((begin 1 16 3 8) . #<Mom 1/8>) ((end * * 3 8) . #<Mom 3/8>) ((end * * 4 4) . #<Mom 1/2>) ((end 1 12 4 4) . #<Mom 1/4>) ((end 1 16 4 4) . #<Mom 1/4>) ((end 1 32 4 4) . #<Mom 1/8>) ((end * * 2 4) . #<Mom 1/4>) ((end 1 12 2 4) . #<Mom 1/4>) ((end 1 16 2 4) . #<Mom 1/4>) ((end 1 32 2 4) . #<Mom 1/8>) ((end * * 4 8) . #<Mom 1/4>) ((end 1 16 4 8) . #<Mom 1/4>) ((end 1 32 4 8) . #<Mom 1/8>) ((end * * 4 16) . #<Mom 1/8>) ((end * * 6 8) . #<Mom 3/8>) ((end 1 16 6 8) . #<Mom 3/8>) ((end 1 32 6 8) . #<Mom 1/8>) ((end * * 9 8) . #<Mom 3/8>) ((end 1 16 9 8) . #<Mom 3/8>) ((end 1 32 9 8) . #<Mom 1/8>) ((end * * 12 8) . #<Mom 3/8>) ((end 1 16 12 8) . #<Mom 3/8>) ((end 1 32 12 8) . #<Mom 1/8>))`
- Set translator property `explicitKeySignatureVisibility` to `all-visible`
- Set translator property `explicitClefVisibility` to `all-visible`
- Set translator property `automaticBars` to `#t`
- Set translator property `barNumberVisibility` to `default-bar-number-visibility`
- Set translator property `defaultBarType` to `|`
- Set translator property `middleCPosition` to `-6`
- Set translator property `clefPosition` to `-2`
- Set translator property `clefGlyph` to `clefs-G`
- Set translator property `melismaBusyProperties` to `'(melismaBusy slurMelismaBusy tieMelismaBusy beamMelismaBusy)`
- Set translator property `drumStyleTable` to `'#(((splashcymbal diamond #f 5)) ((lowfloortom () #f -4)) ((crashcymbal xcircle #f 5)) ((ridecymbalb cross #f 5)) ((pedalhihat cross #f -5)) ((chinesecymbal mensural #f 5)) ((snare () #f 1)) ((lowmidtom () #f 0)) ((cowbell triangle #f 5)) ((closedhihat cross stopped 3)) ((hightom () #f 4)) ((sidestick cross #f 1)) ((lowtom () #f -1)) ((ridebell () #f 5)) ((handclap triangle #f 1)) ((himidtom () #f 2)) ((crashcymbalb cross #f 5) (acousticbassdrum () #f -3)) ((hihat cross #f 3)) ((ridecymbala cross #f 5)) () ((openhihat cross open 3)) () ((electricsnare () #f 1)) ((crashcymbala xcircle #f 5)) ((vibraslap diamond #f 4) (bassdrum () #f -3)) ((highfloortom () #f -2)) ((ridecymbal cross #f 5)) ((acousticsnare () #f 1)) ((halfopenhihat xcircle #f 3)))`
- Set translator property `systemStartDelimiter` to `'SystemStartBar`
- Set translator property `soloADue` to `#t`
- Set translator property `aDueText` to `a2`
- Set translator property `soloIIText` to `Solo II`
- Set translator property `soloText` to `Solo`
- Set translator property `localKeySignature` to `'()`

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.5 (stable-branch).