### 2.1.25 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 also accepts commands for the following context(s):

Timing.

This context creates the following layout object(s):

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

This context sets the following properties:

- Set translator property `additionalPitchPrefix` to `""`.
- Set translator property `aDueText` to `"a2"`.
- Set translator property `autoAccidentals` to `'(Staff #<procedure #f (context pitch barnum measurepos)>)`.
- Set translator property `autoBeamCheck` to `default-auto-beam-check`.
- Set translator property `autoBeaming` to `#t`.
- Set translator property `autoCautionaries` to `'()`.
- Set translator property `automaticBars` to `#t`.
- Set translator property `barCheckSynchronize` to `#f`.
- Set translator property `barNumberFormatter` to `robust-bar-number-function`.
- Set translator property `barNumberVisibility` to `first-bar-number-invisible-and-no-parenthesized-bar-numbers`.
- Set translator property `bassStaffProperties` to `'((assign clefGlyph clefs.F) (assign clefPosition 2) (assign middleCPosition 6) (assign middleCClefPosition 6))`.
- Set translator property `beamHalfMeasure` to `#t`.
- 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 normal-size-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)))) ((#<Pitch c' > #<Pitch e' > #<Pitch g' > #<Pitch b' > #<Pitch fis'' >) (#<procedure line-markup (layout props args)> ((#<procedure super-markup (layout props arg)> lyd)))) ((#<Pitch c' > #<Pitch e' > #<Pitch g' > #<Pitch bes' > #<Pitch des'' > #<Pitch ees'' > #<Pitch fis'' > #<Pitch aes'' >) (#<procedure line-markup (layout props args)> ((#<procedure super-markup (layout props arg)> alt)))))`.
- 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 `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 normal-size-super-markup (layout props arg)> ø))) ((#<Pitch ees' > #<Pitch ges' > #<Pitch beses' >) #<procedure line-markup (layout props args)> ((#<procedure super-markup (layout props arg)> o7))) ((#<Pitch e' > #<Pitch g' > #<Pitch b' > #<Pitch fis'' >) #<procedure line-markup (layout props args)> ((#<procedure super-markup (layout props arg)> lyd))) ((#<Pitch e' > #<Pitch g' > #<Pitch bes' > #<Pitch des'' > #<Pitch ees'' > #<Pitch fis'' > #<Pitch aes'' >) #<procedure line-markup (layout props args)> ((#<procedure super-markup (layout props arg)> alt))))`.
- Set translator property `chordNameFunction` to `ignatzek-chord-names`.
- Set translator property `chordNameLowercaseMinor` to `#f`.
- Set translator property `chordNameSeparator` to `'(#<procedure hspace-markup (layout props amount)> 0.5)`.
- Set translator property `chordNoteNamer` to `'()`.
- Set translator property `chordPrefixSpacer` to `0`.
- Set translator property `chordRootNamer` to `note-name->markup`.
- Set translator property `clefGlyph` to `"clefs.G"`.
- Set translator property `clefPosition` to `-2`.
- Set translator property `clefTranspositionFormatter` to `clef-transposition-markup`.
- Set translator property `crescendoSpanner` to `'hairpin`.
- Set translator property `cueClefTranspositionFormatter` to `clef-transposition-markup`.
- Set translator property `decrescendoSpanner` to `'hairpin`.
- Set translator property `defaultBarType` to `"|"`.
- Set translator property `doubleRepeatType` to `":..:"`.
- Set translator property `drumStyleTable` to `#<hash-table 29/61>`.
- Set translator property `endRepeatType` to `":|."`.
- Set translator property `explicitClefVisibility` to `#(#t #t #t)`.
- Set translator property `explicitCueClefVisibility` to `#(#f #t #t)`.
- Set translator property `explicitKeySignatureVisibility` to `#(#t #t #t)`.
- Set translator property `extraNatural` to `#t`.
- Set translator property `figuredBassFormatter` to `format-bass-figure`.
- Set translator property `fingeringOrientations` to `'(up down)`.
- Set translator property `firstClef` to `#t`.
- Set translator property `graceSettings` to `'((Voice Stem direction 1) (Voice Slur direction -1) (Voice Stem font-size -3) (Voice Flag font-size -3) (Voice NoteHead font-size -3) (Voice TabNoteHead font-size -4) (Voice Dots font-size -3) (Voice Stem length-fraction 0.8) (Voice Stem no-stem-extend #t) (Voice Beam beam-thickness 0.384) (Voice Beam length-fraction 0.8) (Voice Accidental font-size -4) (Voice AccidentalCautionary font-size -4) (Voice Script font-size -3) (Voice Fingering font-size -8) (Voice StringNumber font-size -8))`.
- Set translator property `harmonicAccidentals` to `#t`.
- Set translator property `highStringOne` to `#t`.
- Set translator property `implicitTimeSignatureVisibility` to `#(#f #t #t)`.
- Set translator property `instrumentTransposition` to `#<Pitch c' >`.
- Set translator property `keepAliveInterfaces` to `'(bass-figure-interface chord-name-interface cluster-beacon-interface fret-diagram-interface lyric-syllable-interface note-head-interface tab-note-head-interface lyric-interface percent-repeat-item-interface percent-repeat-interface stanza-number-interface)`.
- Set translator property `keyAlterationOrder` to `'((6 . -1/2) (2 . -1/2) (5 . -1/2) (1 . -1/2) (4 . -1/2) (0 . -1/2) (3 . -1/2) (3 . 1/2) (0 . 1/2) (4 . 1/2) (1 . 1/2) (5 . 1/2) (2 . 1/2) (6 . 1/2) (6 . -1) (2 . -1) (5 . -1) (1 . -1) (4 . -1) (0 . -1) (3 . -1) (3 . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1))`.
- Set translator property `lyricMelismaAlignment` to `-1`.
- Set translator property `majorSevenSymbol` to `'(#<procedure line-markup (layout props args)> ((#<procedure triangle-markup (layout props filled)> #f)))`.
- Set translator property `markFormatter` to `format-mark-letters`.
- Set translator property `melismaBusyProperties` to `'(melismaBusy slurMelismaBusy tieMelismaBusy beamMelismaBusy completionBusy)`.
- Set translator property `metronomeMarkFormatter` to `format-metronome-markup`.
- Set translator property `middleCClefPosition` to `-6`.
- Set translator property `middleCPosition` to `-6`.
- Set translator property `minorChordModifier` to `'(#<procedure simple-markup (layout props str)> m)`.
- Set translator property `noChordSymbol` to `'(#<procedure simple-markup (layout props str)> N.C.)`.
- Set translator property `noteToFretFunction` to `determine-frets`.
- Set translator property `partCombineTextsOnNote` to `#t`.
- Set translator property `pedalSostenutoStrings` to `'(Sost. Ped. *Sost. Ped. *)`.
- Set translator property `pedalSostenutoStyle` to `'mixed`.
- Set translator property `pedalSustainStrings` to `'(Ped. *Ped. *)`.
- Set translator property `pedalSustainStyle` to `'text`.
- Set translator property `pedalUnaCordaStrings` to `'(una corda tre corde)`.
- Set translator property `pedalUnaCordaStyle` to `'text`.
- Set translator property `predefinedDiagramTable` to `#f`.
- Set translator property `printKeyCancellation` to `#t`.
- Set translator property `printPartCombineTexts` to `#t`.
- Set translator property `quotedCueEventTypes` to `'(note-event rest-event tie-event beam-event tuplet-span-event)`.
- Set translator property `quotedEventTypes` to `'(StreamEvent)`.
- Set translator property `rehearsalMark` to `1`.
- Set translator property `repeatCountVisibility` to `all-repeat-counts-visible`.
- Set translator property `scriptDefinitions` to `'((accent (avoid-slur . around) (padding . 0.2) (script-stencil feta sforzato . sforzato) (side-relative-direction . -1)) (accentus (script-stencil feta uaccentus . uaccentus) (side-relative-direction . -1) (avoid-slur . ignore) (padding . 0.2) (quantize-position . #t) (script-priority . -100) (direction . 1)) (circulus (script-stencil feta circulus . circulus) (side-relative-direction . -1) (avoid-slur . ignore) (padding . 0.2) (quantize-position . #t) (script-priority . -100) (direction . 1)) (coda (script-stencil feta coda . coda) (padding . 0.2) (avoid-slur . outside) (direction . 1)) (comma (script-stencil feta lcomma . rcomma) (quantize-position . #t) (padding . 0.2) (avoid-slur . ignore) (direction . 1)) (downbow (script-stencil feta downbow . downbow) (padding . 0.2) (skyline-horizontal-padding . 0.2) (avoid-slur . around) (direction . 1) (script-priority . 150)) (downmordent (script-stencil feta downmordent . downmordent) (padding . 0.2) (avoid-slur . around) (direction . 1)) (downprall (script-stencil feta downprall . downprall) (padding . 0.2) (avoid-slur . around) (direction . 1)) (espressivo (avoid-slur . around) (padding . 0.2) (script-stencil feta espr . espr) (side-relative-direction . -1)) (fermata (script-stencil feta dfermata . ufermata) (padding . 0.2) (avoid-slur . around) (script-priority . 4000) (direction . 1)) (flageolet (script-stencil feta flageolet . flageolet) (padding . 0.2) (avoid-slur . around) (direction . 1)) (halfopen (avoid-slur . outside) (padding . 0.2) (script-stencil feta halfopen . halfopen) (direction . 1)) (ictus (script-stencil feta ictus . ictus) (side-relative-direction . -1) (quantize-position . #t) (avoid-slur . ignore) (padding . 0.2) (script-priority . -100) (direction . -1)) (lheel (script-stencil feta upedalheel . upedalheel) (padding . 0.2) (avoid-slur . around) (direction . -1)) (lineprall (script-stencil feta lineprall . lineprall) (padding . 0.2) (avoid-slur . around) (direction . 1)) (longfermata (script-stencil feta dlongfermata . ulongfermata) (padding . 0.2) (avoid-slur . around) (direction . 1)) (ltoe (script-stencil feta upedaltoe . upedaltoe) (padding . 0.2) (avoid-slur . around) (direction . -1)) (marcato (script-stencil feta dmarcato . umarcato) (padding . 0.2) (avoid-slur . inside) (quantize-position . #t) (side-relative-direction . -1)) (mordent (script-stencil feta mordent . mordent) (padding . 0.2) (avoid-slur . around) (direction . 1)) (open (avoid-slur . outside) (padding . 0.2) (script-stencil feta open . open) (direction . 1)) (portato (script-stencil feta uportato . dportato) (avoid-slur . around) (padding . 0.45) (side-relative-direction . -1)) (prall (script-stencil feta prall . prall) (padding . 0.2) (avoid-slur . around) (direction . 1)) (pralldown (script-stencil feta pralldown . pralldown) (padding . 0.2) (avoid-slur . around) (direction . 1)) (prallmordent (script-stencil feta prallmordent . prallmordent) (padding . 0.2) (avoid-slur . around) (direction . 1)) (prallprall (script-stencil feta prallprall . prallprall) (padding . 0.2) (avoid-slur . around) (direction . 1)) (prallup (script-stencil feta prallup . prallup) (padding . 0.2) (avoid-slur . around) (direction . 1)) (reverseturn (script-stencil feta reverseturn . reverseturn) (padding . 0.2) (avoid-slur . inside) (direction . 1)) (rheel (script-stencil feta dpedalheel . dpedalheel) (padding . 0.2) (avoid-slur . around) (direction . 1)) (rtoe (script-stencil feta dpedaltoe . dpedaltoe) (padding . 0.2) (avoid-slur . around) (direction . 1)) (segno (script-stencil feta segno . segno) (padding . 0.2) (avoid-slur . outside) (direction . 1)) (semicirculus (script-stencil feta dsemicirculus . dsemicirculus) (side-relative-direction . -1) (quantize-position . #t) (avoid-slur . ignore) (padding . 0.2) (script-priority . -100) (direction . 1)) (shortfermata (script-stencil feta dshortfermata . ushortfermata) (padding . 0.2) (avoid-slur . around) (direction . 1)) (signumcongruentiae (script-stencil feta dsignumcongruentiae . usignumcongruentiae) (padding . 0.2) (avoid-slur . outside) (direction . 1)) (snappizzicato (script-stencil feta snappizzicato . snappizzicato) (padding . 0.2) (avoid-slur . outside) (direction . 1)) (staccatissimo (avoid-slur . inside) (quantize-position . #t) (script-stencil feta dstaccatissimo . ustaccatissimo) (padding . 0.2) (skyline-horizontal-padding . 0.1) (side-relative-direction . -1)) (staccato (script-stencil feta staccato . staccato) (side-relative-direction . -1) (quantize-position . #t) (avoid-slur . inside) (toward-stem-shift . 0.5) (padding . 0.2) (skyline-horizontal-padding . 0.1) (script-priority . -100)) (stopped (script-stencil feta stopped . stopped) (avoid-slur . inside) (padding . 0.2) (direction . 1)) (tenuto (script-stencil feta tenuto . tenuto) (quantize-position . #t) (avoid-slur . inside) (padding . 0.2) (side-relative-direction . -1)) (trill (script-stencil feta trill . trill) (direction . 1) (padding . 0.2) (avoid-slur . outside) (script-priority . 2000)) (turn (script-stencil feta turn . turn) (avoid-slur . inside) (padding . 0.2) (direction . 1)) (upbow (script-stencil feta upbow . upbow) (avoid-slur . around) (padding . 0.2) (direction . 1) (script-priority . 150)) (upmordent (script-stencil feta upmordent . upmordent) (padding . 0.2) (avoid-slur . around) (direction . 1)) (upprall (script-stencil feta upprall . upprall) (padding . 0.2) (avoid-slur . around) (direction . 1)) (varcoda (script-stencil feta varcoda . varcoda) (padding . 0.2) (avoid-slur . outside) (direction . 1)) (varcomma (script-stencil feta lvarcomma . rvarcomma) (quantize-position . #t) (padding . 0.2) (avoid-slur . ignore) (direction . 1)) (verylongfermata (script-stencil feta dverylongfermata . uverylongfermata) (padding . 0.2) (avoid-slur . around) (direction . 1)))`.
- Set translator property `slashChordSeparator` to `'(#<procedure simple-markup (layout props str)> /)`.
- Set translator property `soloIIText` to `"Solo II"`.
- Set translator property `soloText` to `"Solo"`.
- Set translator property `startRepeatType` to `".|:"`.
- Set translator property `stringNumberOrientations` to `'(up down)`.
- Set translator property `stringOneTopmost` to `#t`.
- Set translator property `stringTunings` to `'(#<Pitch e' > #<Pitch b > #<Pitch g > #<Pitch d > #<Pitch a, > #<Pitch e, >)`.
- Set translator property `strokeFingerOrientations` to `'(right)`.
- Set translator property `subdivideBeams` to `#f`.
- Set translator property `systemStartDelimiter` to `'SystemStartBar`.
- Set translator property `tablatureFormat` to `fret-number-tablature-format`.
- Set translator property `tabStaffLineLayoutFunction` to `tablature-position-on-lines`.
- Set translator property `tieWaitForNote` to `#f`.
- Set translator property `timeSignatureFraction` to `'(4 . 4)`.
- Set translator property `timeSignatureSettings` to `'(((2 . 2) (beamExceptions (end ((1 . 32) 8 8 8 8)))) ((3 . 2) (beamExceptions (end ((1 . 32) 8 8 8 8 8 8)))) ((3 . 4) (beamExceptions (end ((1 . 8) 6) ((1 . 12) 3 3 3)))) ((3 . 8) (beamExceptions (end ((1 . 8) 3)))) ((4 . 2) (beamExceptions (end ((1 . 16) 4 4 4 4 4 4 4 4)))) ((4 . 4) (beamExceptions (end ((1 . 8) 4 4) ((1 . 12) 3 3 3 3)))) ((4 . 8) (beatStructure 2 2)) ((6 . 4) (beamExceptions (end ((1 . 16) 4 4 4 4 4 4)))) ((9 . 4) (beamExceptions (end ((1 . 32) 8 8 8 8 8 8 8 8)))) ((12 . 4) (beamExceptions (end ((1 . 32) 8 8 8 8 8 8 8 8 8 8 8 8)))) ((5 . 8) (beatStructure 3 2)) ((8 . 8) (beatStructure 3 3 2)))`.
- Set translator property `timing` to `#t`.
- Set translator property `topLevelAlignment` to `#t`.

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

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

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

>   Music types accepted:

>   alternative-event

>   Properties (read)

>   > `alternativeNumberingStyle` (symbol)

>   >   The style of an alternative’s bar numbers. Can be `numbers` for going back to the same number or `numbers-with-letters` for going back to the same number with letter suffixes. No setting will not go back in measure-number time.

>   > `barNumberFormatter` (procedure)

>   >   A procedure that takes a bar number, measure position, and alternative number and returns a markup of the bar number to print.

>   > `barNumberVisibility` (procedure)

>   >   A procedure that takes a bar number and a measure position and returns whether the corresponding bar number should be printed. Note that the actual print-out of bar numbers is controlled with the `break-visibility` property.

>   >   The following procedures are predefined:

>   >   `all-bar-numbers-visible`

>   >     Enable bar numbers for all bars, including the first one and broken bars (which get bar numbers in parentheses).

>   >   `first-bar-number-invisible`

>   >     Enable bar numbers for all bars (including broken bars) except the first one. If the first bar is broken, it doesn’t get a bar number either.

>   >   `first-bar-number-invisible-save-broken-bars`

>   >     Enable bar numbers for all bars (including broken bars) except the first one. A broken first bar gets a bar number.

>   >   `first-bar-number-invisible-and-no-parenthesized-bar-numbers`

>   >     Enable bar numbers for all bars except the first bar and broken bars. This is the default.

>   >   `(every-nth-bar-number-visible n)`

>   >     Assuming n is value 2, for example, this enables bar numbers for bars 2, 4, 6, etc.

>   >   `(modulo-bar-number-visible n m)`

>   >     If bar numbers 1, 4, 7, etc., should be enabled, n (the modulo) must be set to 3 and m (the division remainder) to 1.

>   > `currentBarNumber` (integer)

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

>   > `stavesFound` (list of grobs)

>   >   A list of all staff-symbols found.

>   > `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 ‘`scm/bar-line.scm`’.

>   Properties (write)

>   > `currentBarNumber` (integer)

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

>   This engraver creates the following layout object(s):

>   BarNumber.

> `Beam_collision_engraver`

>   Help beams avoid colliding with notes and clefs in other voices.

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

> `Concurrent_hairpin_engraver`

>   Collect concurrent hairpins.

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

>   > `measurePosition` (moment)

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

>   > `timing` (boolean)

>   >   Keep administration of measure length, position, bar number, etc.? Switch off for cadenzas.

>   > `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 ‘`scm/bar-line.scm`’.

> `Footnote_engraver`

>   Create footnote texts.

>   Properties (read)

>   > `currentMusicalColumn` (graphical (layout) object)

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

>   This engraver creates the following layout object(s):

>   FootnoteItem and FootnoteSpanner.

> `Grace_spacing_engraver`

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

>   Properties (read)

>   > `currentMusicalColumn` (graphical (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.

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

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

>   Music types accepted:

>   tempo-change-event

>   Properties (read)

>   > `currentCommandColumn` (graphical (layout) object)

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

>   > `currentMusicalColumn` (graphical (layout) object)

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

>   > `metronomeMarkFormatter` (procedure)

>   >   How to produce a metronome markup. Called with two arguments: a `TempoChangeEvent` and context.

>   > `stavesFound` (list of grobs)

>   >   A list of all staff-symbols found.

>   > `tempoHideNote` (boolean)

>   >   Hide the note = count in tempo marks.

>   This engraver creates the following layout object(s):

>   MetronomeMark.

> `Output_property_engraver`

>   Apply a procedure to any grob acknowledged.

>   Music types accepted:

>   apply-output-event

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

>   break-event and label-event

>   Properties (read)

>   > `forbidBreak` (boolean)

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

>   Properties (write)

>   > `currentCommandColumn` (graphical (layout) object)

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

>   > `currentMusicalColumn` (graphical (layout) object)

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

>   > `forbidBreak` (boolean)

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

>   This engraver creates the following layout object(s):

>   NonMusicalPaperColumn and PaperColumn.

> `Parenthesis_engraver`

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

>   This engraver creates the following layout object(s):

>   ParenthesesItem.

> `Repeat_acknowledge_engraver`

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

>   Properties (read)

>   > `doubleRepeatSegnoType` (string)

>   >   Set the default bar line for the combinations double repeat with segno. Default is ‘`:|.S.|:`’.

>   > `doubleRepeatType` (string)

>   >   Set the default bar line for double repeats.

>   > `endRepeatSegnoType` (string)

>   >   Set the default bar line for the combinations ending of repeat with segno. Default is ‘`:|.S`’.

>   > `endRepeatType` (string)

>   >   Set the default bar line for the ending of 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.

>   > `segnoType` (string)

>   >   Set the default bar line for a requested segno. Default is ‘`S`’.

>   > `startRepeatSegnoType` (string)

>   >   Set the default bar line for the combinations beginning of repeat with segno. Default is ‘`S.|:`’.

>   > `startRepeatType` (string)

>   >   Set the default bar line for the beginning of repeats.

>   > `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 ‘`scm/bar-line.scm`’.

> `Spacing_engraver`

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

>   Music types accepted:

>   spacing-section-event

>   Properties (read)

>   > `currentCommandColumn` (graphical (layout) object)

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

>   > `currentMusicalColumn` (graphical (layout) object)

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

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

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

> `Stanza_number_align_engraver`

>   This engraver ensures that stanza numbers are neatly aligned.

> `System_start_delimiter_engraver`

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

>   Properties (read)

>   > `currentCommandColumn` (graphical (layout) object)

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

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

>   This engraver creates the following layout object(s):

>   SystemStartBar, SystemStartBrace, SystemStartBracket and SystemStartSquare.

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

>   > `baseMoment` (moment)

>   >   Smallest unit of time that will stand on its own as a subdivided section.

>   > `currentBarNumber` (integer)

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

>   > `internalBarNumber` (integer)

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

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

>   > `timeSignatureFraction` (fraction, as pair)

>   >   A pair of numbers, signifying the time signature. For example, `'(4 . 4)` is a 4/4 time signature.

>   Properties (write)

>   > `baseMoment` (moment)

>   >   Smallest unit of time that will stand on its own as a subdivided section.

>   > `currentBarNumber` (integer)

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

>   > `internalBarNumber` (integer)

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

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

>   > `timeSignatureFraction` (fraction, as pair)

>   >   A pair of numbers, signifying the time signature. For example, `'(4 . 4)` is a 4/4 time signature.

> `Tweak_engraver`

>   Read the `tweaks` property from the originating event, and set properties.

> `Vertical_align_engraver`

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

>   Properties (read)

>   > `alignAboveContext` (string)

>   >   Where to insert newly created context in vertical alignment.

>   > `alignBelowContext` (string)

>   >   Where to insert newly created context in vertical alignment.

>   > `hasAxisGroup` (boolean)

>   >   True if the current context is contained in an axis group.

>   This engraver creates the following layout object(s):

>   VerticalAlignment.

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

>   > `stavesFound` (list of grobs)

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

>   This engraver creates the following layout object(s):

>   VoltaBracket and VoltaBracketSpanner.

#### Internals Reference v2.18.2 (稳定分支).