]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/engraver-init.ly
Run grand replace for 2015.
[lilypond.git] / ly / engraver-init.ly
index b4a7008b8d4c1f7338557f4f0b0448285bb0b417..b49a101205661f198aa7cf2a88f46b83b9a00b97 100644 (file)
@@ -1,6 +1,6 @@
 %%%% This file is part of LilyPond, the GNU music typesetter.
 %%%%
-%%%% Copyright (C) 1996--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
+%%%% Copyright (C) 1996--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
 %%%%                          Jan Nieuwenhuizen <janneke@gnu.org>
 %%%%
 %%%% LilyPond is free software: you can redistribute it and/or modify
@@ -16,7 +16,7 @@
 %%%% You should have received a copy of the GNU General Public License
 %%%% along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 
-\version "2.15.39"
+\version "2.19.16"
 
 \context {
   \name "Global"
   \defaultchild "Score"
   \description "Hard coded entry point for LilyPond.  Cannot be tuned."
   \grobdescriptions #all-grob-descriptions
-  EventClasses = #all-event-classes
 }
 
 \context {
   \type "Engraver_group"
   \name "FretBoards"
+  \alias "Staff"
   \description "A context for displaying fret diagrams."
 
   \consists "Fretboard_engraver"
   \consists "Output_property_engraver"
-  \consists "Hara_kiri_engraver"
+  \consists "Axis_group_engraver"
   \consists "Separating_line_group_engraver"
   \consists "Font_size_engraver"
   \consists "Instrument_name_engraver"
@@ -84,8 +84,9 @@
   \consists "Figured_bass_position_engraver"
   \consists "Script_row_engraver"
   \consists "Cue_clef_engraver"
+  \consists "Fingering_column_engraver"
 
-  localKeySignature = #'()
+  localAlterations = #'()
   createSpacing = ##t
   ignoreFiguredBassRest = ##f
 
@@ -98,6 +99,7 @@
   \defaultchild "Voice"
   \accepts "Voice"
   \accepts "CueVoice"
+  \accepts "NullVoice"
 
   \description "Handles clefs, bar lines, keys, accidentals.  It can contain
 @code{Voice} contexts."
 
   clefGlyph = #"clefs.percussion"
   clefPosition = #0
-  \override Script #'staff-padding = #0.75
+  \override Script.staff-padding = #0.75
 }
 
 
@@ -160,19 +162,18 @@ contained staves are not connected vertically."
 \context{
   \type "Engraver_group"
 
-  localKeySignature = #'()
+  localAlterations = #'()
   createSpacing = ##t
 
   squashedPosition = #0
   \name RhythmicStaff
   \alias "Staff"
 
-  \override BarLine #'bar-extent = #'(-2 . 2)
-  \override VoltaBracket #'staff-padding = #3
-  \override StaffSymbol #'line-count = #1
+  \override VoltaBracket.staff-padding = #3
+  \override StaffSymbol.line-count = #1
 
-  \override Stem  #'neutral-direction = #UP
-  \override Beam  #'neutral-direction = #UP
+  \override Stem.neutral-direction = #UP
+  \override Beam.neutral-direction = #UP
 
   \consists "Output_property_engraver"
   \consists "Font_size_engraver"
@@ -209,7 +210,8 @@ subscripts, slurs, ties, and rests.
 
 You have to instantiate this explicitly if you want to have
 multiple voices on the same staff."
-
+  %% Grace_engraver sets properties, it must come first.
+  \consists "Grace_engraver"
   \consists "Font_size_engraver"
 
   \consists "Pitched_trill_engraver"
@@ -229,7 +231,6 @@ multiple voices on the same staff."
   \consists "Note_heads_engraver"
   \consists "Dots_engraver"
   \consists "Rest_engraver"
-  \consists "Tweak_engraver"
 
   %% switch on to make stem directions interpolate for the
   %% center line.
@@ -239,6 +240,7 @@ multiple voices on the same staff."
   \consists "Beam_engraver"
   \consists "Grace_beam_engraver"
   \consists "Auto_beam_engraver"
+  \consists "Grace_auto_beam_engraver"
 
   %% must come before Script_column_engraver.
   \consists "New_fingering_engraver"
@@ -250,9 +252,8 @@ multiple voices on the same staff."
   \consists "Part_combine_engraver"
 
   \consists "Text_engraver"
-  \consists "New_dynamic_engraver"
+  \consists "Dynamic_engraver"
   \consists "Dynamic_align_engraver"
-%  \consists "Dynamic_engraver"
   \consists "Fingering_engraver"
   \consists "Bend_engraver"
 
@@ -266,7 +267,6 @@ multiple voices on the same staff."
   \consists "Slur_engraver"
   \consists "Tie_engraver"
   \consists "Tuplet_engraver"
-  \consists "Grace_engraver"
   \consists "Instrument_switch_engraver"
 }
 
@@ -276,9 +276,9 @@ multiple voices on the same staff."
   \name CueVoice
   \alias Voice
   fontSize = #-4
-  \override Stem #'length-fraction = #(magstep -4)
-  \override Beam #'length-fraction = #(magstep -4)
-  \override Beam #'beam-thickness = #0.35
+  \override Stem.length-fraction = #(magstep -4)
+  \override Beam.length-fraction = #(magstep -4)
+  \override Beam.beam-thickness = #0.35
 }
 
 \context {
@@ -305,7 +305,7 @@ multiple voices on the same staff."
 \context{
   \type "Engraver_group"
   \name GrandStaff
-  localKeySignature = #'()
+  localAlterations = #'()
 
   \description "A group of staves, with a brace on the left
 side, grouping the staves together.  The bar lines of the
@@ -313,6 +313,9 @@ contained staves are connected vertically."
 
   \consists "Instrument_name_engraver"
   \consists "Span_bar_engraver"
+% The default for DynamicText.extra-spacing-width causes dynamics to
+% be placed across span bars, so switch it off:
+  \override DynamicText.extra-spacing-width = ##f
   \consists "Span_bar_stub_engraver"
   \consists "Span_arpeggio_engraver"
   \consists "System_start_delimiter_engraver"
@@ -359,6 +362,9 @@ together, never separately."
 
   \consists "Instrument_name_engraver"
   \consists "Span_bar_engraver"
+% The default for DynamicText.extra-spacing-width causes dynamics to
+% be placed across span bars, so switch it off:
+  \override DynamicText.extra-spacing-width = ##f
   \consists "Span_bar_stub_engraver"
   \consists "Span_arpeggio_engraver"
   \consists "Output_property_engraver"
@@ -396,28 +402,24 @@ a collection of staves, with a bracket in front and spanning bar lines."
   \consists "Bar_engraver"
   \consists "Piano_pedal_engraver"
   \consists "Script_engraver"
-  \consists "New_dynamic_engraver"
+  \consists "Dynamic_engraver"
   \consists "Dynamic_align_engraver"
   \consists "Text_engraver"
   \consists "Text_spanner_engraver"
+  \consists "Font_size_engraver"
   \consists "Axis_group_engraver"
-  \consists "Tweak_engraver"
 
   pedalSustainStrings = #'("Ped." "*Ped." "*")
   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
-  \override VerticalAxisGroup #'staff-affinity = #CENTER
-  \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing =
+  \override VerticalAxisGroup.staff-affinity = #CENTER
+  \override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
     #'((basic-distance . 5)
        (padding . 0.5))
-  \override TextScript #'font-shape = #'italic
-  \override DynamicLineSpanner #'Y-offset = #0
-  \override DynamicText #'X-offset =
-  #(ly:make-simple-closure
-    `(,+
-      ,(ly:make-simple-closure
-         (list ly:self-alignment-interface::centered-on-note-columns))
-      ,(ly:make-simple-closure
-        (list ly:self-alignment-interface::x-aligned-on-self))))
+  \override TextScript.font-shape = #'italic
+  \override DynamicLineSpanner.Y-offset = #0
+  \override DynamicLineSpanner.outside-staff-priority = ##f
+  \override DynamicText.outside-staff-priority = ##f
+  \override Hairpin.outside-staff-priority = ##f
 
   \description "Holds a single line of dynamics, which will be
 centered between the staves surrounding this context."
@@ -434,38 +436,37 @@ printing of a single line of lyrics."
   \consists "Lyric_engraver"
   \consists "Extender_engraver"
   \consists "Hyphen_engraver"
-  \consists "Tweak_engraver"
   \consists "Stanza_number_engraver"
   \consists "Instrument_name_engraver"
   \consists "Font_size_engraver"
-  \consists "Hara_kiri_engraver"
+  \consists "Axis_group_engraver"
   \consists "Pure_from_neighbor_engraver"
   searchForVoice = ##f
   %% explicitly set instrument, so it is not inherited from the parent
   instrumentName = #'()
   shortInstrumentName = #'()
 
-  \override VerticalAxisGroup #'remove-first = ##t
-  \override VerticalAxisGroup #'remove-empty = ##t
-  \override VerticalAxisGroup #'staff-affinity = #UP
-  \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing =
+  \override VerticalAxisGroup.remove-first = ##t
+  \override VerticalAxisGroup.remove-empty = ##t
+  \override VerticalAxisGroup.staff-affinity = #UP
+  \override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
     #'((basic-distance . 5.5)
        (padding . 0.5)
        (stretchability . 1))
-  \override VerticalAxisGroup #'nonstaff-nonstaff-spacing =
+  \override VerticalAxisGroup.nonstaff-nonstaff-spacing =
      #'((basic-distance . 0)
        (minimum-distance . 2.8)
        (padding . 0.2)
        (stretchability . 0))
-  \override VerticalAxisGroup #'nonstaff-unrelatedstaff-spacing #'padding = #1.5
-  \override InstrumentName #'self-alignment-Y = ##f
+  \override VerticalAxisGroup.nonstaff-unrelatedstaff-spacing.padding = #1.5
+  \override InstrumentName.self-alignment-Y = ##f
 
   %% sync with define-grobs.scm ;
-  \override InstrumentName #'font-size = #1.0
+  \override InstrumentName.font-size = #1.0
 
   %% make sure that barlines aren't collapsed, when
   %% Bar_engraver is there.
-  \override BarLine #'bar-extent = #'(-0.05 . 0.05)
+  \override BarLine.bar-extent = #'(-0.05 . 0.05)
 
 }
 
@@ -475,18 +476,17 @@ printing of a single line of lyrics."
   \description "A context for printing the names of notes."
   \consists "Axis_group_engraver"
 
-  \override VerticalAxisGroup #'staff-affinity = #UP
-  \override VerticalAxisGroup #'nonstaff-nonstaff-spacing =
+  \override VerticalAxisGroup.staff-affinity = #UP
+  \override VerticalAxisGroup.nonstaff-nonstaff-spacing =
     #'((basic-distance . 0)
        (minimum-distance . 2.8)
        (padding . 0.2)
        (stretchability . 0))
-  \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing =
+  \override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
     #'((basic-distance . 5.5)
        (padding . 0.5)
        (stretchability . 1))
-  \override VerticalAxisGroup
-    #'nonstaff-unrelatedstaff-spacing #'padding = 1.5
+  \override VerticalAxisGroup.nonstaff-unrelatedstaff-spacing.padding = 1.5
 
   \consists "Tie_engraver"
   \consists "Note_name_engraver"
@@ -501,13 +501,14 @@ printing of a single line of lyrics."
   \consists "Output_property_engraver"
   \consists "Separating_line_group_engraver"
   \consists "Chord_name_engraver"
-  \consists "Hara_kiri_engraver"
+  \consists "Axis_group_engraver"
 %  \consists "Note_spacing_engraver"
-  \override VerticalAxisGroup #'remove-first = ##t
-  \override VerticalAxisGroup #'remove-empty = ##t
-  \override VerticalAxisGroup #'staff-affinity = #DOWN
-  \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing #'padding = #0.5
-  \override VerticalAxisGroup #'nonstaff-nonstaff-spacing #'padding = #0.5
+
+  \override VerticalAxisGroup.remove-first = ##t
+  \override VerticalAxisGroup.remove-empty = ##t
+  \override VerticalAxisGroup.staff-affinity = #DOWN
+  \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding = #0.5
+  \override VerticalAxisGroup.nonstaff-nonstaff-spacing.padding = #0.5
 }
 
 \context {
@@ -522,8 +523,8 @@ aligned across staves.
 
 You cannot explicitly instantiate a @code{Score} context (since it
 is not contained in any other context).  It is instantiated
-automatically when an output definition (a @code{\score} or
-@code{\layout} block) is processed."
+automatically when an output definition (a @code{\\score} or
+@code{\\layout} block) is processed."
 
   \consists "Paper_column_engraver"
   \consists "Repeat_acknowledge_engraver"
@@ -542,6 +543,7 @@ automatically when an output definition (a @code{\score} or
   \consists "Timing_translator"
   \consists "Default_bar_line_engraver"
   \consists "Output_property_engraver"
+  \consists "Tweak_engraver"
   \consists "System_start_delimiter_engraver"
   \consists "Mark_engraver"
   \consists "Volta_engraver"
@@ -576,6 +578,7 @@ automatically when an output definition (a @code{\score} or
   \accepts "ChoirStaff"
   \accepts "PianoStaff"
   \accepts "Devnull"
+  \accepts "NullVoice"
   \accepts "NoteNames"
   \accepts "FiguredBass"
 
@@ -590,6 +593,7 @@ automatically when an output definition (a @code{\score} or
 
   drumStyleTable = #drums-style
 
+  associatedVoiceType = #'Voice
   melismaBusyProperties = #default-melisma-properties
   tieWaitForNote = ##f
   clefGlyph = #"clefs.G"
@@ -602,35 +606,37 @@ automatically when an output definition (a @code{\score} or
   decrescendoSpanner = #'hairpin
 
   defaultBarType = #"|"
-  doubleRepeatType = #":|:"
-  startRepeatType = #"|:"
-  endRepeatType = #":|"
+  doubleRepeatType = #":..:"
+  startRepeatType = #".|:"
+  endRepeatType = #":|."
+  alternativeRestores = #'(measurePosition measureLength lastChord)
   barNumberVisibility = #first-bar-number-invisible-and-no-parenthesized-bar-numbers
   barNumberFormatter = #robust-bar-number-function
+  clefTranspositionFormatter = #clef-transposition-markup
+  cueClefTranspositionFormatter = #clef-transposition-markup
   automaticBars = ##t
 
   explicitClefVisibility = #all-visible
   explicitCueClefVisibility = #end-of-line-invisible
   explicitKeySignatureVisibility = #all-visible
-  implicitTimeSignatureVisibility = #end-of-line-invisible
+  initialTimeSignatureVisibility = #end-of-line-invisible
 
   repeatCountVisibility = #all-repeat-counts-visible
 
+%% Other Timing variables are derived and set by the Timing_translator
+%% at initialization time by calling the functions in
+%% scm/time-signature-settings.scm
+
   timeSignatureSettings = #default-time-signature-settings
   timeSignatureFraction = 4/4
 
-%% These defaults should be the same as the rules established in
-%%   scm/time-signature-settings.scm for 4/4 time
-  measureLength = #(ly:make-moment 4 4)
-  baseMoment = #(ly:make-moment 1  4)
-  beatStructure = #'(1 1 1 1)
-  beamExceptions = #'((end . (((1 . 8) . (4 4))
-                              ((1 . 12) . (3 3 3 3)))))
   beamHalfMeasure = ##t
 
   autoBeaming = ##t
   autoBeamCheck = #default-auto-beam-check
 
+  completionFactor = #unity-if-multimeasure
+
   scriptDefinitions = #default-script-alist
 
   pedalSustainStrings = #'("Ped." "*Ped." "*")
@@ -702,26 +708,8 @@ automatically when an output definition (a @code{\score} or
   figuredBassFormatter = #format-bass-figure
   metronomeMarkFormatter = #format-metronome-markup
 
-
   %% See also make-voice-props-set
-  graceSettings = #`(
-    (Voice Stem direction ,UP)
-    (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 Slur direction ,DOWN)
-    (Voice Script font-size -3)
-    (Voice Fingering font-size -8)
-    (Voice StringNumber font-size -8)
-  )
+  graceSettings = #score-grace-settings
 
   keepAliveInterfaces = #'(
     bass-figure-interface
@@ -763,13 +751,13 @@ automatically when an output definition (a @code{\score} or
 
   \consists "Figured_bass_engraver"
   \consists "Separating_line_group_engraver"
-  \consists "Hara_kiri_engraver"
+  \consists "Axis_group_engraver"
 
-  \override VerticalAxisGroup #'remove-empty = ##t
-  \override VerticalAxisGroup #'remove-first = ##t
-  \override VerticalAxisGroup #'staff-affinity = #UP
-  \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing #'padding = #0.5
-  \override VerticalAxisGroup #'nonstaff-nonstaff-spacing #'padding = #0.5
+  \override VerticalAxisGroup.remove-empty = ##t
+  \override VerticalAxisGroup.remove-first = ##t
+  \override VerticalAxisGroup.staff-affinity = #UP
+  \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding = #0.5
+  \override VerticalAxisGroup.nonstaff-nonstaff-spacing.padding = #0.5
 }
 
 \context {
@@ -783,6 +771,38 @@ automatically when an output definition (a @code{\score} or
 context."
 }
 
+\context {
+  \name "NullVoice"
+  \type "Engraver_group"
+  \description "For aligning lyrics without printing notes"
+
+  %% don't route anything out of here
+  \alias "Staff"
+  \alias "Voice"
+
+  % provide non-printing NoteHeads with proper extents for lyric alignment
+  \consists "Note_heads_engraver"
+  \omit NoteHead
+  \override NoteHead.X-extent = #(lambda (g)
+    (ly:stencil-extent (ly:note-head::print g) X))
+
+  % generate no accidentals
+  nullAccidentals = ##t
+
+  %% keep noteheads inside the staff
+  \consists "Pitch_squash_engraver"
+  squashedPosition = 0
+
+  % the engravers that control the 'busy' flags for note-onsets and melismata
+  \consists "Grob_pq_engraver"
+  \consists "Tie_engraver"
+  \omit Tie
+  \consists "Beam_engraver"
+  \omit Beam
+  \consists "Slur_engraver"
+  \omit Slur
+}
+
 \context {
   \Voice
   \name "TabVoice"
@@ -797,72 +817,8 @@ context."
 
   \description "Context for drawing notes in a Tab staff."
 
-  %% TabStaff increase the staff-space, which in turn
-  %% increases beam thickness and spacing; beams are
-  %% too big. We have to adjust the beam settings:
-  \override Beam #'beam-thickness = #0.32
-  \override Beam #'length-fraction = #0.62
-  %% the same goes for tremolo beams
-  \override StemTremolo #'beam-thickness = #0.32
-  %% NOTE: in lily/stem-tremolo.cc, we have length-fraction = 1,
-  %% and the tablature staff space is scaled (1.5 by default),
-  %% so we use the inversion of the scale factor:
-  \override StemTremolo #'length-fraction = #(lambda (grob)
-                                               (/ 1 (ly:staff-symbol-staff-space grob)))
-  \override StemTremolo #'beam-width = #stem-tremolo::calc-tab-width
-
   %% No accidental in tablature !
   \remove "Accidental_engraver"
-  %% make the Stems as short as possible to minimize their influence
-  %% on the slur::calc-control-points routine
-  \override Stem #'no-stem-extend = ##t
-  \override Flag #'style = #'no-flag
-  \override Stem #'details = #'((lengths 0 0 0 0 0 0)
-                                (beamed-lengths 0 0 0)
-                                (beamed-minimum-free-lengths 0 0 0)
-                                (beamed-extreme-minimum-free-lengths 0 0)
-                                (stem-shorten 0 0))
-  %% after all, the stubs of the stems may still be visible, so ...
-  \override Stem #'stencil = ##f
-  \override Flag #'stencil = ##f
-  %% automatic beams should be suppressed for similar reasons ...
-  autoBeaming = ##f
-  %% remove beams, dots and rests ...
-  \override Beam #'stencil = ##f
-  \override StemTremolo #'stencil = ##f
-  \override Dots #'stencil = ##f
-  \override Rest #'stencil = ##f
-  \override MultiMeasureRest #'stencil = ##f
-  \override MultiMeasureRestNumber #'stencil = ##f
-  \override MultiMeasureRestText #'stencil = ##f
-  %% ... all kinds of ties/slurs
-  \override Tie  #'stencil = ##f
-  \override RepeatTie #'stencil = ##f
-  \override LaissezVibrerTie #'stencil = ##f
-  \override Slur #'stencil = #slur::draw-tab-slur
-  \override PhrasingSlur #'stencil = ##f
-  %% 'tied to' fret numbers become invisible or parenthesized, respectively)
-  \override Tie #'after-line-breaking = #tie::handle-tab-note-head
-  \override RepeatTie #'after-line-breaking = #repeat-tie::handle-tab-note-head
-  %% ... and all kinds of markups, spanners etc.
-  \override TupletBracket #'stencil = ##f
-  \override TupletNumber #'stencil = ##f
-  \override DynamicText #'stencil = ##f
-  \override DynamicTextSpanner #'stencil = ##f
-  \override TextSpanner #'stencil = ##f
-  \override Hairpin #'stencil = ##f
-  \override Script #'stencil = ##f
-  \override TextScript #'stencil = ##f
-  \override Glissando #'stencil = #glissando::draw-tab-glissando
-  %% the direction for glissando lines will be automatically corrected
-  \override Glissando #'extra-dy = #glissando::calc-tab-extra-dy
-  \override Glissando #'bound-details #'right = #`((attach-dir . ,LEFT)
-                                                  (padding . 0.3))
-  \override Glissando #'bound-details #'left = #`((attach-dir . ,RIGHT)
-                                                  (padding . 0.3))
-  %% dead notes
-  \override TabNoteHead #'glyph-name = #tab-note-head::calc-glyph-name
-  \override TabNoteHead #'stencil = #tab-note-head::whiteout-if-style-set
 }
 
 \context {
@@ -879,10 +835,10 @@ contexts and handles the line spacing, the tablature clef etc. properly."
   \defaultchild "TabVoice"
 
   %% 6 strings, bigger spacing
-  \override StaffSymbol #'staff-space = #1.5
+  \override StaffSymbol.staff-space = #1.5
 
   %% Don't draw stems over the tablature figures !
-  \override Stem #'avoid-note-head = ##t
+  \override Stem.avoid-note-head = ##t
 
   %% No accidental in tablature !
   \remove "Accidental_engraver"
@@ -890,14 +846,14 @@ contexts and handles the line spacing, the tablature clef etc. properly."
 
   \remove "Ottava_spanner_engraver"
   %% the clef handler
-  \override Clef #'stencil = #clef::print-modern-tab-if-set
+  \override Clef.stencil = #clef::print-modern-tab-if-set
   %% no time signature
-  \override TimeSignature #'stencil = ##f
+  \override TimeSignature.stencil = ##f
   %% no arpeggios
-  \override Arpeggio #'stencil = ##f
+  \override Arpeggio.stencil = ##f
   %% we ignore collision warnings that may occur due to
   %% stem overlapping, because we have no stems ;-)
-  \override NoteColumn #'ignore-collision = ##t
+  \override NoteColumn.ignore-collision = ##t
   %% Special "TAB" clef
   clefGlyph = #"clefs.tab"
   clefPosition = #0
@@ -905,6 +861,71 @@ contexts and handles the line spacing, the tablature clef etc. properly."
   handleNegativeFrets = #'recalculate
   %% Allow open strings even if minimumFret is set
   restrainOpenStrings = ##f
+
+  %% TabStaff increase the staff-space, which in turn
+  %% increases beam thickness and spacing; beams are
+  %% too big. We have to adjust the beam settings:
+  \override Beam.beam-thickness = #0.32
+  \override Beam.length-fraction = #0.62
+  %% the same goes for tremolo beams
+  \override StemTremolo.beam-thickness = #0.32
+  %% NOTE: in lily/stem-tremolo.cc, we have length-fraction = 1,
+  %% and the tablature staff space is scaled (1.5 by default),
+  %% so we use the inversion of the scale factor:
+  \override StemTremolo.length-fraction = #(lambda (grob)
+                                               (/ 1 (ly:staff-symbol-staff-space grob)))
+  \override StemTremolo.beam-width = #stem-tremolo::calc-tab-width
+
+  %% make the Stems as short as possible to minimize their influence
+  %% on the slur::calc-control-points routine
+  \override Stem.no-stem-extend = ##t
+  \override Flag.style = #'no-flag
+  \override Stem.details = #'((lengths 0 0 0 0 0 0)
+                                (beamed-lengths 0 0 0)
+                                (beamed-minimum-free-lengths 0 0 0)
+                                (beamed-extreme-minimum-free-lengths 0 0)
+                                (stem-shorten 0 0))
+  %% after all, the stubs of the stems may still be visible, so ...
+  \override Stem.stencil = ##f
+  \override Flag.stencil = ##f
+  %% automatic beams should be suppressed for similar reasons ...
+  autoBeaming = ##f
+  %% remove beams, dots and rests ...
+  \override Beam.stencil = ##f
+  \override StemTremolo.stencil = ##f
+  \override Dots.stencil = ##f
+  \override Rest.stencil = ##f
+  \override MultiMeasureRest.stencil = ##f
+  \override MultiMeasureRestNumber.stencil = ##f
+  \override MultiMeasureRestText.stencil = ##f
+  %% ... all kinds of ties/slurs
+  \override Tie.stencil = ##f
+  \override RepeatTie.stencil = ##f
+  \override LaissezVibrerTie.stencil = ##f
+  \override Slur.stencil = #slur::draw-tab-slur
+  \override PhrasingSlur.stencil = ##f
+  %% 'tied to' fret numbers become invisible or parenthesized, respectively)
+  \override Tie.after-line-breaking = #tie::handle-tab-note-head
+  \override RepeatTie.after-line-breaking = #repeat-tie::handle-tab-note-head
+  %% ... and all kinds of markups, spanners etc.
+  \override TupletBracket.stencil = ##f
+  \override TupletNumber.stencil = ##f
+  \override DynamicText.stencil = ##f
+  \override DynamicTextSpanner.stencil = ##f
+  \override TextSpanner.stencil = ##f
+  \override Hairpin.stencil = ##f
+  \override Script.stencil = ##f
+  \override TextScript.stencil = ##f
+  \override Glissando.stencil = #glissando::draw-tab-glissando
+  %% the direction for glissando lines will be automatically corrected
+  \override Glissando.extra-dy = #glissando::calc-tab-extra-dy
+  \override Glissando.bound-details.right = #`((attach-dir . ,LEFT)
+                                                  (padding . 0.3))
+  \override Glissando.bound-details.left = #`((attach-dir . ,RIGHT)
+                                                  (padding . 0.3))
+  %% dead notes
+  \override TabNoteHead.glyph-name = #tab-note-head::calc-glyph-name
+  \override TabNoteHead.stencil = #tab-note-head::whiteout-if-style-set
 }
 
 \context {
@@ -923,11 +944,11 @@ of Editio Vaticana."
   \consists "Episema_engraver"
 
   %% Set default head for notes outside of \[ \].
-  \override NoteHead #'style = #'vaticana.punctum
+  \override NoteHead.style = #'vaticana.punctum
 
   %% Put some space before and after divisiones.
   %% FIXME: This does not seem to show any effect.
-  \override Script #'padding = #0.5
+  \override Script.padding = #0.5
 
   %% There are no beams in Gregorian Chant notation.
   autoBeaming = ##f
@@ -951,28 +972,28 @@ of Editio Vaticana."
   %% We can not remove Bar_engraver; otherwise clefs and custodes will
   %% not show up any more among other line breaking issues.
   %% Instead, we make the grob transparent.
-  \override BarLine #'transparent = ##t
+  \override BarLine.transparent = ##t
 
-  \override StaffSymbol #'line-count = #4
-  \override StaffSymbol #'thickness = #0.6
+  \override StaffSymbol.line-count = #4
+  \override StaffSymbol.thickness = #0.6
 
   %% FIXME: unit on StaffSymbol's width should be \linewidth.
-  %% \override StaffSymbol #'width = #60.0
+  %% \override StaffSymbol.width = #60.0
 
   %% Choose vaticana do clef on 3rd line as default.
   clefGlyph = #"clefs.vaticana.do"
   middleCPosition = #1
   middleCClefPosition = #1
   clefPosition = #1
-  clefOctavation = #0
+  clefTransposition = #0
 
   %% Select vaticana style font.
-  \override KeySignature #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
-  \override Accidental #'glyph-name-alist = #alteration-vaticana-glyph-name-alist
-  \override Custos #'style = #'vaticana
-  \override Custos #'neutral-position = #3
-  \override Custos #'neutral-direction = #DOWN
-  \override Dots #'style = #'vaticana
+  \override KeySignature.glyph-name-alist = #alteration-vaticana-glyph-name-alist
+  \override Accidental.glyph-name-alist = #alteration-vaticana-glyph-name-alist
+  \override Custos.style = #'vaticana
+  \override Custos.neutral-position = #3
+  \override Custos.neutral-direction = #DOWN
+  \override Dots.style = #'vaticana
 }
 
 \context {
@@ -985,11 +1006,11 @@ of Editio Vaticana."
   %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
   %% warning for every "\[" and "\]".  Therefore, we make the grob
   %% transparent instead.
-  \override LigatureBracket #'transparent = ##t
+  \override LigatureBracket.transparent = ##t
 
   %% Put some space before and after divisiones.
   %% FIXME: This does not seem to show any effect.
-  \override Script #'padding = #0.5
+  \override Script.padding = #0.5
 
   %% There are no beams in Gregorian Chant notation.
   autoBeaming = ##f
@@ -1007,7 +1028,7 @@ of Editio Vaticana."
   %% We can not remove Bar_engraver; otherwise clefs and custodes will
   %% not show up any more among other line breaking issues.
   %% Instead, we make the grob transparent.
-  \override BarLine #'transparent = ##t
+  \override BarLine.transparent = ##t
 }
 
 \context {
@@ -1022,9 +1043,9 @@ accommodated for typesetting a piece in mensural style."
   \consists "Mensural_ligature_engraver"
 
   %% Set default head for notes outside of \[ \].
-  \override NoteHead #'style = #'mensural
-  \override Rest #'style = #'mensural
-  \override Flag #'style = #'mensural
+  \override NoteHead.style = #'mensural
+  \override Rest.style = #'mensural
+  \override Flag.style = #'mensural
 
   %% There are no beams in mensural notation.
   autoBeaming = ##f
@@ -1045,30 +1066,30 @@ accommodated for typesetting a piece in mensural style."
   %% We can not remove Bar_engraver; otherwise clefs and custodes will
   %% not show up any more among other line breaking issues.
   %% Instead, we make the grob transparent.
-  \override BarLine #'transparent = ##t
+  \override BarLine.transparent = ##t
 
-  \override StaffSymbol #'thickness = #0.6
+  \override StaffSymbol.thickness = #0.6
 
   %% FIXME: unit on StaffSymbol's width should be \linewidth.
-  %% \override StaffSymbol #'width = #60.0
+  %% \override StaffSymbol.width = #60.0
 
   %% Choose mensural g clef on 2nd line as default.
   clefGlyph = #"clefs.mensural.g"
   middleCClefPosition = #-6
   middleCPosition = #-6
   clefPosition = #-2
-  clefOctavation = #0
+  clefTransposition = #0
 
   %% Select mensural style font.
-  \override TimeSignature #'style = #'mensural
-  \override KeySignature #'glyph-name-alist = #alteration-mensural-glyph-name-alist
-  \override Accidental #'glyph-name-alist = #alteration-mensural-glyph-name-alist
-  \override Custos #'style = #'mensural
-  \override Custos #'neutral-position = #3
-  \override Custos #'neutral-direction = #DOWN
+  \override TimeSignature.style = #'mensural
+  \override KeySignature.glyph-name-alist = #alteration-mensural-glyph-name-alist
+  \override Accidental.glyph-name-alist = #alteration-mensural-glyph-name-alist
+  \override Custos.style = #'mensural
+  \override Custos.neutral-position = #3
+  \override Custos.neutral-direction = #DOWN
 
   %% Accidentals are valid only once (same as
-  %% \accidentalStyle "forget")
+  %% \accidentalStyle forget)
   extraNatural = ##f
   autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave -1))
   autoCautionaries = #'()
@@ -1086,12 +1107,12 @@ accommodated for typesetting a piece in Petrucci style."
   \consists "Mensural_ligature_engraver"
 
   %% Set glyph styles.
-  \override NoteHead #'style = #'petrucci
-  \override Rest #'style = #'mensural
+  \override NoteHead.style = #'petrucci
+  \override Rest.style = #'mensural
 
   % Thickens and shortens stems.
-  \override Stem #'thickness = #1.7
-  \override Stem #'length = #5
+  \override Stem.thickness = #1.7
+  \override Stem.length = #5
 
   %% There are no beams in Petrucci notation.
   autoBeaming = ##f
@@ -1109,18 +1130,18 @@ accommodated for typesetting a piece in Petrucci style."
 
   \consists "Custos_engraver"
 
-  \override StaffSymbol #'thickness = #1.3
+  \override StaffSymbol.thickness = #1.3
 
   %% Choose Petrucci g clef on 2nd line as default.
   clefGlyph = #"clefs.petrucci.g"
   middleCClefPosition = #-6
   middleCPosition = #-6
   clefPosition = #-2
-  clefOctavation = #0
+  clefTransposition = #0
 
-  \override Custos #'style = #'mensural
-  \override Custos #'neutral-position = #3
-  \override Custos #'neutral-direction = #DOWN
+  \override Custos.style = #'mensural
+  \override Custos.neutral-position = #3
+  \override Custos.neutral-direction = #DOWN
 
   %% Accidentals are valid only once (if the following note is different)
   extraNatural = ##f
@@ -1137,12 +1158,22 @@ accommodated for typesetting a piece in Petrucci style."
  \description "Same as @code{Voice} context, except that it is
 accommodated for typesetting a piece in Kievan style."
 
+  \remove "Ligature_bracket_engraver"
+  \consists "Kievan_ligature_engraver"
+
  %% Set glyph styles.
- \override NoteHead #'style = #'kievan
- \override Rest #'style = #'mensural
- \override Accidental #'glyph-name-alist = #alteration-kievan-glyph-name-alist
- \override Dots #'style = #'kievan
- \override Slur #'stencil = ##f
+ \override NoteHead.style = #'kievan
+ \override Stem.X-offset = #stem::kievan-offset-callback
+ \override Stem.stencil = ##f
+ \override Flag.stencil = ##f
+ \override Rest.style = #'mensural
+ \override Accidental.glyph-name-alist = #alteration-kievan-glyph-name-alist
+ \override Dots.style = #'kievan
+ \override Slur.stencil = ##f
+ \override Stem.length = #0.0
+ \override Beam.positions = #beam::get-kievan-positions
+ \override Beam.quantized-positions = #beam::get-kievan-quantized-positions
+ \override NoteHead.duration-log = #note-head::calc-kievan-duration-log
 
  %% There are beams in Kievan notation, but they are invoked manually
  autoBeaming = ##f
@@ -1165,7 +1196,7 @@ accommodated for typesetting a piece in Kievan style."
  middleCClefPosition = #0
  middleCPosition = #0
  clefPosition = #0
- clefOctavation = #0
+ clefTransposition = #0
 
  %% Accidentals are valid only once (if the following note is different)
  extraNatural = ##f