]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/engraver-init.ly
Release: bump Welcome versions.
[lilypond.git] / ly / engraver-init.ly
index daf1aed3d31ae521d068366aa3f4f8686c23a54f..325622a15c8a2b07e0d1fa84c707a3308c320809 100644 (file)
@@ -1,6 +1,6 @@
 %%%% This file is part of LilyPond, the GNU music typesetter.
 %%%%
 %%%% 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
 %%%%                          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/>.
 
 %%%% 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.17.6"
+\version "2.19.46"
 
 \context {
   \name "Global"
 
 \context {
   \name "Global"
@@ -26,7 +26,6 @@
   \defaultchild "Score"
   \description "Hard coded entry point for LilyPond.  Cannot be tuned."
   \grobdescriptions #all-grob-descriptions
   \defaultchild "Score"
   \description "Hard coded entry point for LilyPond.  Cannot be tuned."
   \grobdescriptions #all-grob-descriptions
-  EventClasses = #all-event-classes
 }
 
 \context {
 }
 
 \context {
@@ -36,8 +35,7 @@
   \description "A context for displaying fret diagrams."
 
   \consists "Fretboard_engraver"
   \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"
   \consists "Separating_line_group_engraver"
   \consists "Font_size_engraver"
   \consists "Instrument_name_engraver"
@@ -55,7 +53,6 @@
   \type "Engraver_group"
   \name "Staff"
 
   \type "Engraver_group"
   \name "Staff"
 
-  \consists "Output_property_engraver"
   \consists "Bar_engraver"
   \consists "Pure_from_neighbor_engraver"
   %% Bar_engraver must be first so default bars aren't overwritten
   \consists "Bar_engraver"
   \consists "Pure_from_neighbor_engraver"
   %% Bar_engraver must be first so default bars aren't overwritten
@@ -66,7 +63,7 @@
   \consists "Dot_column_engraver"
   \consists "Staff_collecting_engraver"
 
   \consists "Dot_column_engraver"
   \consists "Staff_collecting_engraver"
 
- %% perhaps move to Voice context?
 %% perhaps move to Voice context?
   \consists "Ottava_spanner_engraver"
   \consists "Clef_engraver"
   \consists "Key_engraver"
   \consists "Ottava_spanner_engraver"
   \consists "Clef_engraver"
   \consists "Key_engraver"
@@ -85,8 +82,9 @@
   \consists "Figured_bass_position_engraver"
   \consists "Script_row_engraver"
   \consists "Cue_clef_engraver"
   \consists "Figured_bass_position_engraver"
   \consists "Script_row_engraver"
   \consists "Cue_clef_engraver"
+  \consists "Fingering_column_engraver"
 
 
-  localKeySignature = #'()
+  localAlterations = #'()
   createSpacing = ##t
   ignoreFiguredBassRest = ##f
 
   createSpacing = ##t
   ignoreFiguredBassRest = ##f
 
@@ -97,8 +95,9 @@
   shortInstrumentName = #'()
 
   \defaultchild "Voice"
   shortInstrumentName = #'()
 
   \defaultchild "Voice"
-  \accepts "Voice"
   \accepts "CueVoice"
   \accepts "CueVoice"
+  \accepts "NullVoice"
+  \accepts "Voice"
 
   \description "Handles clefs, bar lines, keys, accidentals.  It can contain
 @code{Voice} contexts."
 
   \description "Handles clefs, bar lines, keys, accidentals.  It can contain
 @code{Voice} contexts."
   \name "ChoirStaff"
   \consists "Vertical_align_engraver"
   topLevelAlignment = ##f
   \name "ChoirStaff"
   \consists "Vertical_align_engraver"
   topLevelAlignment = ##f
+  localAlterations = #'()
 
   \consists "Instrument_name_engraver"
   \consists "System_start_delimiter_engraver"
 
   \consists "Instrument_name_engraver"
   \consists "System_start_delimiter_engraver"
   vocalName = #'()
   shortVocalName = #'()
 
   vocalName = #'()
   shortVocalName = #'()
 
-  \accepts "Staff"
+  \accepts "ChoirStaff"
+  \accepts "ChordNames"
   \accepts "DrumStaff"
   \accepts "DrumStaff"
-  \accepts "RhythmicStaff"
+  \accepts "Dynamics"
+  \accepts "FiguredBass"
   \accepts "GrandStaff"
   \accepts "GrandStaff"
-  \accepts "PianoStaff"
   \accepts "Lyrics"
   \accepts "Lyrics"
-  \accepts "ChordNames"
-  \accepts "FiguredBass"
-  \accepts "ChoirStaff"
+  \accepts "OneStaff"
+  \accepts "PianoStaff"
+  \accepts "RhythmicStaff"
+  \accepts "Staff"
   \accepts "StaffGroup"
   \defaultchild "Staff"
   \description "Identical to @code{StaffGroup} except that the
   \accepts "StaffGroup"
   \defaultchild "Staff"
   \description "Identical to @code{StaffGroup} except that the
@@ -161,21 +163,19 @@ contained staves are not connected vertically."
 \context{
   \type "Engraver_group"
 
 \context{
   \type "Engraver_group"
 
-  localKeySignature = #'()
+  localAlterations = #'()
   createSpacing = ##t
 
   squashedPosition = #0
   createSpacing = ##t
 
   squashedPosition = #0
-  \name RhythmicStaff
+  \name "RhythmicStaff"
   \alias "Staff"
 
   \alias "Staff"
 
-  \override BarLine.bar-extent = #'(-2 . 2)
   \override VoltaBracket.staff-padding = #3
   \override StaffSymbol.line-count = #1
 
   \override Stem.neutral-direction = #UP
   \override Beam.neutral-direction = #UP
 
   \override VoltaBracket.staff-padding = #3
   \override StaffSymbol.line-count = #1
 
   \override Stem.neutral-direction = #UP
   \override Beam.neutral-direction = #UP
 
-  \consists "Output_property_engraver"
   \consists "Font_size_engraver"
   \consists "Separating_line_group_engraver"
   \consists "Dot_column_engraver"
   \consists "Font_size_engraver"
   \consists "Separating_line_group_engraver"
   \consists "Dot_column_engraver"
@@ -191,8 +191,9 @@ contained staves are not connected vertically."
   instrumentName = #'()
   shortInstrumentName = #'()
 
   instrumentName = #'()
   shortInstrumentName = #'()
 
-  \accepts "Voice"
   \accepts "CueVoice"
   \accepts "CueVoice"
+  \accepts "NullVoice"
+  \accepts "Voice"
   \defaultchild "Voice"
 
   \description "A context like @code{Staff} but for printing rhythms.
   \defaultchild "Voice"
 
   \description "A context like @code{Staff} but for printing rhythms.
@@ -210,11 +211,11 @@ subscripts, slurs, ties, and rests.
 
 You have to instantiate this explicitly if you want to have
 multiple voices on the same staff."
 
 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"
   \consists "Font_size_engraver"
 
   \consists "Pitched_trill_engraver"
-  \consists "Output_property_engraver"
   \consists "Arpeggio_engraver"
   \consists "Multi_measure_rest_engraver"
   \consists "Text_spanner_engraver"
   \consists "Arpeggio_engraver"
   \consists "Multi_measure_rest_engraver"
   \consists "Text_spanner_engraver"
@@ -230,7 +231,6 @@ multiple voices on the same staff."
   \consists "Note_heads_engraver"
   \consists "Dots_engraver"
   \consists "Rest_engraver"
   \consists "Note_heads_engraver"
   \consists "Dots_engraver"
   \consists "Rest_engraver"
-  \consists "Tweak_engraver"
 
   %% switch on to make stem directions interpolate for the
   %% center line.
 
   %% switch on to make stem directions interpolate for the
   %% center line.
@@ -240,6 +240,7 @@ multiple voices on the same staff."
   \consists "Beam_engraver"
   \consists "Grace_beam_engraver"
   \consists "Auto_beam_engraver"
   \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"
 
   %% must come before Script_column_engraver.
   \consists "New_fingering_engraver"
@@ -251,15 +252,13 @@ multiple voices on the same staff."
   \consists "Part_combine_engraver"
 
   \consists "Text_engraver"
   \consists "Part_combine_engraver"
 
   \consists "Text_engraver"
-  \consists "New_dynamic_engraver"
+  \consists "Dynamic_engraver"
   \consists "Dynamic_align_engraver"
   \consists "Dynamic_align_engraver"
-%  \consists "Dynamic_engraver"
   \consists "Fingering_engraver"
   \consists "Bend_engraver"
 
   \consists "Script_engraver"
   \consists "Script_column_engraver"
   \consists "Fingering_engraver"
   \consists "Bend_engraver"
 
   \consists "Script_engraver"
   \consists "Script_column_engraver"
-  \consists "Fingering_column_engraver"
   \consists "Rhythmic_column_engraver"
   \consists "Note_spacing_engraver"
   \consists "Spanner_break_forbid_engraver"
   \consists "Rhythmic_column_engraver"
   \consists "Note_spacing_engraver"
   \consists "Spanner_break_forbid_engraver"
@@ -268,16 +267,16 @@ multiple voices on the same staff."
   \consists "Slur_engraver"
   \consists "Tie_engraver"
   \consists "Tuplet_engraver"
   \consists "Slur_engraver"
   \consists "Tie_engraver"
   \consists "Tuplet_engraver"
-  \consists "Grace_engraver"
   \consists "Instrument_switch_engraver"
 }
 
 \context{
   \Voice
 
   \consists "Instrument_switch_engraver"
 }
 
 \context{
   \Voice
 
-  \name CueVoice
-  \alias Voice
+  \name "CueVoice"
+  \alias "Voice"
   fontSize = #-4
   fontSize = #-4
+  \override NoteHead.ignore-ambitus = ##t
   \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
@@ -285,8 +284,8 @@ multiple voices on the same staff."
 
 \context {
   \Voice
 
 \context {
   \Voice
-  \name DrumVoice
-  \alias Voice
+  \name "DrumVoice"
+  \alias "Voice"
 
   \description "A voice on a percussion staff."
   \remove "Arpeggio_engraver"
 
   \description "A voice on a percussion staff."
   \remove "Arpeggio_engraver"
@@ -306,8 +305,8 @@ multiple voices on the same staff."
 
 \context{
   \type "Engraver_group"
 
 \context{
   \type "Engraver_group"
-  \name GrandStaff
-  localKeySignature = #'()
+  \name "GrandStaff"
+  localAlterations = #'()
 
   \description "A group of staves, with a brace on the left
 side, grouping the staves together.  The bar lines of the
 
   \description "A group of staves, with a brace on the left
 side, grouping the staves together.  The bar lines of the
@@ -315,6 +314,9 @@ contained staves are connected vertically."
 
   \consists "Instrument_name_engraver"
   \consists "Span_bar_engraver"
 
   \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"
   \consists "Span_bar_stub_engraver"
   \consists "Span_arpeggio_engraver"
   \consists "System_start_delimiter_engraver"
@@ -326,14 +328,14 @@ contained staves are connected vertically."
   shortInstrumentName = #'()
 
   \defaultchild "Staff"
   shortInstrumentName = #'()
 
   \defaultchild "Staff"
-  \accepts "Staff"
-  \accepts "RhythmicStaff"
+  \accepts "ChordNames"
   \accepts "DrumStaff"
   \accepts "DrumStaff"
-  \accepts "TabStaff"
-  \accepts "Lyrics"
-  \accepts "FiguredBass"
   \accepts "Dynamics"
   \accepts "Dynamics"
-  \accepts "ChordNames"
+  \accepts "FiguredBass"
+  \accepts "Lyrics"
+  \accepts "RhythmicStaff"
+  \accepts "Staff"
+  \accepts "TabStaff"
 }
 
 \context{
 }
 
 \context{
@@ -361,9 +363,11 @@ together, never separately."
 
   \consists "Instrument_name_engraver"
   \consists "Span_bar_engraver"
 
   \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 "Span_bar_stub_engraver"
   \consists "Span_arpeggio_engraver"
-  \consists "Output_property_engraver"
   systemStartDelimiter = #'SystemStartBracket
   %% explicitly set instrument, so it is not inherited from the parent
   instrumentName = #'()
   systemStartDelimiter = #'SystemStartBracket
   %% explicitly set instrument, so it is not inherited from the parent
   instrumentName = #'()
@@ -372,17 +376,19 @@ together, never separately."
   \consists "System_start_delimiter_engraver"
 
   \defaultchild "Staff"
   \consists "System_start_delimiter_engraver"
 
   \defaultchild "Staff"
-  \accepts "Staff"
-  \accepts "RhythmicStaff"
+  \accepts "ChoirStaff"
+  \accepts "ChordNames"
   \accepts "DrumStaff"
   \accepts "DrumStaff"
+  \accepts "FiguredBass"
+  \accepts "FretBoards"
   \accepts "GrandStaff"
   \accepts "GrandStaff"
-  \accepts "PianoStaff"
-  \accepts "TabStaff"
   \accepts "Lyrics"
   \accepts "Lyrics"
-  \accepts "ChordNames"
-  \accepts "FiguredBass"
-  \accepts "ChoirStaff"
+  \accepts "OneStaff"
+  \accepts "PianoStaff"
+  \accepts "RhythmicStaff"
+  \accepts "Staff"
   \accepts "StaffGroup"
   \accepts "StaffGroup"
+  \accepts "TabStaff"
 
   \description "Groups staves while adding a bracket on the left
 side, grouping the staves together.  The bar lines of the contained
 
   \description "Groups staves while adding a bracket on the left
 side, grouping the staves together.  The bar lines of the contained
@@ -392,19 +398,46 @@ a collection of staves, with a bracket in front and spanning bar lines."
 
 \context {
   \type "Engraver_group"
 
 \context {
   \type "Engraver_group"
-  \name Dynamics
-  \alias Voice
-  \consists "Output_property_engraver"
+  \name "OneStaff"
+  \accepts "ChordNames"
+  \accepts "DrumStaff"
+  \accepts "Dynamics"
+  \accepts "FiguredBass"
+  \accepts "FretBoards"
+  \accepts "GregorianTranscriptionStaff"
+  \accepts "KievanStaff"
+  \accepts "Lyrics"
+  \accepts "MensuralStaff"
+  \accepts "NoteNames"
+  \accepts "PetrucciStaff"
+  \accepts "RhythmicStaff"
+  \accepts "Staff"
+  \accepts "TabStaff"
+  \accepts "VaticanaStaff"
+  \defaultchild "Staff"
+  \consists "Axis_group_engraver"
+
+  \description "Provides a common axis for the contained staves,
+making all of them appear in the same vertical space.  This can be
+useful for typesetting staves of different types in immediate succession
+or for temporarily changing the character of one staff or overlaying
+it with a different one.  Often used with @code{\\stopStaff} and
+@code{\\startStaff} for best results."
+}
+
+\context {
+  \type "Engraver_group"
+  \name "Dynamics"
+  \alias "Voice"
   \consists "Bar_engraver"
   \consists "Piano_pedal_engraver"
   \consists "Script_engraver"
   \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 "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")
 
   pedalSustainStrings = #'("Ped." "*Ped." "*")
   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
@@ -414,13 +447,9 @@ a collection of staves, with a bracket in front and spanning bar lines."
        (padding . 0.5))
   \override TextScript.font-shape = #'italic
   \override DynamicLineSpanner.Y-offset = #0
        (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 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."
 
   \description "Holds a single line of dynamics, which will be
 centered between the staves surrounding this context."
@@ -437,11 +466,10 @@ printing of a single line of lyrics."
   \consists "Lyric_engraver"
   \consists "Extender_engraver"
   \consists "Hyphen_engraver"
   \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 "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
   \consists "Pure_from_neighbor_engraver"
   searchForVoice = ##f
   %% explicitly set instrument, so it is not inherited from the parent
@@ -457,9 +485,9 @@ printing of a single line of lyrics."
        (stretchability . 1))
   \override VerticalAxisGroup.nonstaff-nonstaff-spacing =
      #'((basic-distance . 0)
        (stretchability . 1))
   \override VerticalAxisGroup.nonstaff-nonstaff-spacing =
      #'((basic-distance . 0)
-       (minimum-distance . 2.8)
-       (padding . 0.2)
-       (stretchability . 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
 
@@ -474,7 +502,7 @@ printing of a single line of lyrics."
 
 \context {
   \type "Engraver_group"
 
 \context {
   \type "Engraver_group"
-  \name NoteNames
+  \name "NoteNames"
   \description "A context for printing the names of notes."
   \consists "Axis_group_engraver"
 
   \description "A context for printing the names of notes."
   \consists "Axis_group_engraver"
 
@@ -497,19 +525,22 @@ printing of a single line of lyrics."
 
 \context {
   \type "Engraver_group"
 
 \context {
   \type "Engraver_group"
-  \name ChordNames
+  \name "ChordNames"
+  \alias Staff                 % Catch Staff-level overrides like
+                               % \key, \transposition
   \description "Typesets chord names."
 
   \description "Typesets chord names."
 
-  \consists "Output_property_engraver"
   \consists "Separating_line_group_engraver"
   \consists "Chord_name_engraver"
   \consists "Separating_line_group_engraver"
   \consists "Chord_name_engraver"
-  \consists "Hara_kiri_engraver"
-%  \consists "Note_spacing_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
+  \override ParenthesesItem.font-size = #1.5
 }
 
 \context {
 }
 
 \context {
@@ -540,10 +571,11 @@ automatically when an output definition (a @code{\\score} or
   %% Timing variables in layout definitions before any
   %% Timing_translator has been run.
 
   %% Timing variables in layout definitions before any
   %% Timing_translator has been run.
 
-  % timing translator must come BEFORE bar number engraver
+  %% timing translator must come BEFORE bar number engraver
   \consists "Timing_translator"
   \consists "Default_bar_line_engraver"
   \consists "Output_property_engraver"
   \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"
   \consists "System_start_delimiter_engraver"
   \consists "Mark_engraver"
   \consists "Volta_engraver"
@@ -561,25 +593,27 @@ automatically when an output definition (a @code{\\score} or
 
   \defaultchild "Staff"
 
 
   \defaultchild "Staff"
 
+  \accepts "ChoirStaff"
+  \accepts "ChordNames"
+  \accepts "Devnull"
+  \accepts "DrumStaff"
+  \accepts "Dynamics"
+  \accepts "FiguredBass"
   \accepts "FretBoards"
   \accepts "FretBoards"
-  \accepts "Staff"
-  \accepts "RhythmicStaff"
-  \accepts "TabStaff"
-  \accepts "VaticanaStaff"
+  \accepts "GrandStaff"
   \accepts "GregorianTranscriptionStaff"
   \accepts "GregorianTranscriptionStaff"
-  \accepts "MensuralStaff"
-  \accepts "PetrucciStaff"
-  \accepts "StaffGroup"
-  \accepts "DrumStaff"
   \accepts "KievanStaff"
   \accepts "Lyrics"
   \accepts "KievanStaff"
   \accepts "Lyrics"
-  \accepts "ChordNames"
-  \accepts "GrandStaff"
-  \accepts "ChoirStaff"
-  \accepts "PianoStaff"
-  \accepts "Devnull"
+  \accepts "MensuralStaff"
   \accepts "NoteNames"
   \accepts "NoteNames"
-  \accepts "FiguredBass"
+  \accepts "OneStaff"
+  \accepts "PetrucciStaff"
+  \accepts "PianoStaff"
+  \accepts "RhythmicStaff"
+  \accepts "Staff"
+  \accepts "StaffGroup"
+  \accepts "TabStaff"
+  \accepts "VaticanaStaff"
 
   noteToFretFunction = #determine-frets
   predefinedDiagramTable = ##f
 
   noteToFretFunction = #determine-frets
   predefinedDiagramTable = ##f
@@ -592,6 +626,7 @@ automatically when an output definition (a @code{\\score} or
 
   drumStyleTable = #drums-style
 
 
   drumStyleTable = #drums-style
 
+  associatedVoiceType = #'Voice
   melismaBusyProperties = #default-melisma-properties
   tieWaitForNote = ##f
   clefGlyph = #"clefs.G"
   melismaBusyProperties = #default-melisma-properties
   tieWaitForNote = ##f
   clefGlyph = #"clefs.G"
@@ -607,34 +642,34 @@ automatically when an output definition (a @code{\\score} or
   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
   barNumberVisibility = #first-bar-number-invisible-and-no-parenthesized-bar-numbers
   barNumberFormatter = #robust-bar-number-function
-  clefOctavationFormatter = #clef-octavation-markup
-  cueClefOctavationFormatter = #clef-octavation-markup
+  clefTranspositionFormatter = #clef-transposition-markup
+  cueClefTranspositionFormatter = #clef-transposition-markup
   automaticBars = ##t
 
   explicitClefVisibility = #all-visible
   explicitCueClefVisibility = #end-of-line-invisible
   explicitKeySignatureVisibility = #all-visible
   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
 
 
   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
 
   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
 
   beamHalfMeasure = ##t
 
   autoBeaming = ##t
   autoBeamCheck = #default-auto-beam-check
 
+  completionFactor = #unity-if-multimeasure
+
   scriptDefinitions = #default-script-alist
 
   pedalSustainStrings = #'("Ped." "*Ped." "*")
   scriptDefinitions = #default-script-alist
 
   pedalSustainStrings = #'("Ped." "*Ped." "*")
@@ -642,10 +677,10 @@ automatically when an output definition (a @code{\\score} or
   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
   pedalUnaCordaStyle = #'text
 
   pedalUnaCordaStrings = #'("una corda" "" "tre corde")
   pedalUnaCordaStyle = #'text
 
-%% These are in ordinary italic font, including the *,
-%% but they are unlikely to be used,
-%% as the default pedal-style for SostenutoPedal is 'mixed':
-%% i.e.  Sost. Ped_____________________
+  %% These are in ordinary italic font, including the *,
+  %% but they are unlikely to be used,
+  %% as the default pedal-style for SostenutoPedal is 'mixed':
+  %% i.e.  Sost. Ped_____________________
   pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*")
   pedalSostenutoStyle = #'mixed
 
   pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*")
   pedalSostenutoStyle = #'mixed
 
@@ -654,6 +689,7 @@ automatically when an output definition (a @code{\\score} or
   stringNumberOrientations = #'(up down)
   strokeFingerOrientations = #'(right)
 
   stringNumberOrientations = #'(up down)
   strokeFingerOrientations = #'(right)
 
+  extendersOverRests = ##t
   lyricMelismaAlignment = #LEFT
   markFormatter = #format-mark-letters
   rehearsalMark = #1
   lyricMelismaAlignment = #LEFT
   markFormatter = #format-mark-letters
   rehearsalMark = #1
@@ -672,7 +708,7 @@ automatically when an output definition (a @code{\\score} or
 
   barCheckSynchronize = ##f
 
 
   barCheckSynchronize = ##f
 
-%% chord names:
+  %% chord names:
   chordNameFunction = #ignatzek-chord-names
   minorChordModifier = #(make-simple-markup "m")
   additionalPitchPrefix = #"" % was "add"
   chordNameFunction = #ignatzek-chord-names
   minorChordModifier = #(make-simple-markup "m")
   additionalPitchPrefix = #"" % was "add"
@@ -688,16 +724,12 @@ automatically when an output definition (a @code{\\score} or
   chordNameExceptionsPartial = #partialJazzExceptions
   noChordSymbol = #(make-simple-markup "N.C.")
 
   chordNameExceptionsPartial = #partialJazzExceptions
   noChordSymbol = #(make-simple-markup "N.C.")
 
-  bassStaffProperties = #'((assign clefGlyph "clefs.F")
-  (assign clefPosition 2)
-  (assign middleCPosition 6)
-  (assign middleCClefPosition 6))
-%% tablature:
+  %% tablature:
   stringOneTopmost = ##t
   highStringOne = ##t
 
   stringOneTopmost = ##t
   highStringOne = ##t
 
-%% One may change the string tunings as follows :
-%% The length of the list must be equal to the number of strings
+  %% One may change the string tunings as follows :
+  %% The length of the list must be equal to the number of strings
   stringTunings = #guitar-tuning
   tablatureFormat = #fret-number-tablature-format
   tabStaffLineLayoutFunction = #tablature-position-on-lines
   stringTunings = #guitar-tuning
   tablatureFormat = #fret-number-tablature-format
   tabStaffLineLayoutFunction = #tablature-position-on-lines
@@ -706,26 +738,8 @@ automatically when an output definition (a @code{\\score} or
   figuredBassFormatter = #format-bass-figure
   metronomeMarkFormatter = #format-metronome-markup
 
   figuredBassFormatter = #format-bass-figure
   metronomeMarkFormatter = #format-metronome-markup
 
-
   %% See also make-voice-props-set
   %% 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
 
   keepAliveInterfaces = #'(
     bass-figure-interface
@@ -742,7 +756,7 @@ automatically when an output definition (a @code{\\score} or
     ;; need this, as stanza numbers are items, and appear only once.
     stanza-number-interface
   )
     ;; need this, as stanza numbers are items, and appear only once.
     stanza-number-interface
   )
-  % \quoteDuring is supposed to quote everything, cueDuring only the essentials
+  %% \quoteDuring is supposed to quote everything, cueDuring only the essentials
   quotedEventTypes = #'(StreamEvent)
   quotedCueEventTypes = #'(
     note-event
   quotedEventTypes = #'(StreamEvent)
   quotedCueEventTypes = #'(
     note-event
@@ -767,7 +781,7 @@ automatically when an output definition (a @code{\\score} or
 
   \consists "Figured_bass_engraver"
   \consists "Separating_line_group_engraver"
 
   \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.remove-empty = ##t
   \override VerticalAxisGroup.remove-first = ##t
@@ -780,13 +794,49 @@ automatically when an output definition (a @code{\\score} or
   \name "Devnull"
   \type "Engraver_group"
 
   \name "Devnull"
   \type "Engraver_group"
 
-%% don't want to route anything out of here:
+  %% don't want to route anything out of here:
   \alias "Staff"
   \alias "Voice"
   \description "Silently discards all musical information given to this
 context."
 }
 
   \alias "Staff"
   \alias "Voice"
   \description "Silently discards all musical information given to this
 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
+
+  %% generate no ledger lines, needed for staves with custom
+  %% line positions and ledger lines that appear inside the staff
+  \override NoteHead.no-ledgers = ##t
+
+  %% 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"
 \context {
   \Voice
   \name "TabVoice"
@@ -801,6 +851,51 @@ context."
 
   \description "Context for drawing notes in a Tab staff."
 
 
   \description "Context for drawing notes in a Tab staff."
 
+  %% No accidental in tablature !
+  \remove "Accidental_engraver"
+}
+
+\context {
+  \Staff
+  \alias "Staff"
+  \name "TabStaff"
+  \denies "Voice"
+  \consists "Tab_staff_symbol_engraver"
+
+  \description "Context for generating tablature. It accepts only @code{TabVoice}
+contexts and handles the line spacing, the tablature clef etc. properly."
+
+  \accepts "TabVoice"
+  \defaultchild "TabVoice"
+
+  %% 6 strings, bigger spacing
+  \override StaffSymbol.staff-space = #1.5
+
+  %% Don't draw stems over the tablature figures !
+  \override Stem.avoid-note-head = ##t
+
+  %% No accidental in tablature !
+  \remove "Accidental_engraver"
+  \remove "Key_engraver"
+
+  \remove "Ottava_spanner_engraver"
+  %% the clef handler
+  \override Clef.stencil = #clef::print-modern-tab-if-set
+  %% no time signature
+  \override TimeSignature.stencil = ##f
+  %% no arpeggios
+  \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
+  %% Special "TAB" clef
+  clefGlyph = #"clefs.tab"
+  clefPosition = #0
+  %% Change string if note results in negative fret number
+  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:
   %% TabStaff increase the staff-space, which in turn
   %% increases beam thickness and spacing; beams are
   %% too big. We have to adjust the beam settings:
@@ -815,8 +910,6 @@ context."
                                                (/ 1 (ly:staff-symbol-staff-space grob)))
   \override StemTremolo.beam-width = #stem-tremolo::calc-tab-width
 
                                                (/ 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
   %% make the Stems as short as possible to minimize their influence
   %% on the slur::calc-control-points routine
   \override Stem.no-stem-extend = ##t
@@ -861,56 +954,14 @@ context."
   %% 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)
   %% 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))
+                                                   (padding . 0.3))
   \override Glissando.bound-details.left = #`((attach-dir . ,RIGHT)
   \override Glissando.bound-details.left = #`((attach-dir . ,RIGHT)
-                                                  (padding . 0.3))
+                                                   (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
 }
 
   %% dead notes
   \override TabNoteHead.glyph-name = #tab-note-head::calc-glyph-name
   \override TabNoteHead.stencil = #tab-note-head::whiteout-if-style-set
 }
 
-\context {
-  \Staff
-  \alias "Staff"
-  \name "TabStaff"
-  \denies "Voice"
-  \consists "Tab_staff_symbol_engraver"
-
-  \description "Context for generating tablature. It accepts only @code{TabVoice}
-contexts and handles the line spacing, the tablature clef etc. properly."
-
-  \accepts "TabVoice"
-  \defaultchild "TabVoice"
-
-  %% 6 strings, bigger spacing
-  \override StaffSymbol.staff-space = #1.5
-
-  %% Don't draw stems over the tablature figures !
-  \override Stem.avoid-note-head = ##t
-
-  %% No accidental in tablature !
-  \remove "Accidental_engraver"
-  \remove "Key_engraver"
-
-  \remove "Ottava_spanner_engraver"
-  %% the clef handler
-  \override Clef.stencil = #clef::print-modern-tab-if-set
-  %% no time signature
-  \override TimeSignature.stencil = ##f
-  %% no arpeggios
-  \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
-  %% Special "TAB" clef
-  clefGlyph = #"clefs.tab"
-  clefPosition = #0
-  %% Change string if note results in negative fret number
-  handleNegativeFrets = #'recalculate
-  %% Allow open strings even if minimumFret is set
-  restrainOpenStrings = ##f
-}
-
 \context {
   \Voice
   \name "VaticanaVoice"
 \context {
   \Voice
   \name "VaticanaVoice"
@@ -968,7 +1019,7 @@ of Editio Vaticana."
   middleCPosition = #1
   middleCClefPosition = #1
   clefPosition = #1
   middleCPosition = #1
   middleCClefPosition = #1
   clefPosition = #1
-  clefOctavation = #0
+  clefTransposition = #0
 
   %% Select vaticana style font.
   \override KeySignature.glyph-name-alist = #alteration-vaticana-glyph-name-alist
 
   %% Select vaticana style font.
   \override KeySignature.glyph-name-alist = #alteration-vaticana-glyph-name-alist
@@ -997,7 +1048,6 @@ of Editio Vaticana."
 
   %% There are no beams in Gregorian Chant notation.
   autoBeaming = ##f
 
   %% There are no beams in Gregorian Chant notation.
   autoBeaming = ##f
-
 }
 
 \context {
 }
 
 \context {
@@ -1061,12 +1111,13 @@ accommodated for typesetting a piece in mensural style."
   middleCClefPosition = #-6
   middleCPosition = #-6
   clefPosition = #-2
   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
 
   %% 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 AccidentalSuggestion.glyph-name-alist = #alteration-mensural-glyph-name-alist
   \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
@@ -1093,7 +1144,7 @@ accommodated for typesetting a piece in Petrucci style."
   \override NoteHead.style = #'petrucci
   \override Rest.style = #'mensural
 
   \override NoteHead.style = #'petrucci
   \override Rest.style = #'mensural
 
-  % Thickens and shortens stems.
+  %% Thickens and shortens stems.
   \override Stem.thickness = #1.7
   \override Stem.length = #5
 
   \override Stem.thickness = #1.7
   \override Stem.length = #5
 
@@ -1120,7 +1171,7 @@ accommodated for typesetting a piece in Petrucci style."
   middleCClefPosition = #-6
   middleCPosition = #-6
   clefPosition = #-2
   middleCClefPosition = #-6
   middleCPosition = #-6
   clefPosition = #-2
-  clefOctavation = #0
+  clefTransposition = #0
 
   \override Custos.style = #'mensural
   \override Custos.neutral-position = #3
 
   \override Custos.style = #'mensural
   \override Custos.neutral-position = #3
@@ -1135,55 +1186,58 @@ accommodated for typesetting a piece in Petrucci style."
 }
 
 \context {
 }
 
 \context {
- \Voice
- \name "KievanVoice"
- \alias "Voice"
- \description "Same as @code{Voice} context, except that it is
 \Voice
 \name "KievanVoice"
 \alias "Voice"
 \description "Same as @code{Voice} context, except that it is
 accommodated for typesetting a piece in Kievan style."
 
 accommodated for typesetting a piece in Kievan style."
 
- %% Set glyph styles.
- \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
+  \remove "Ligature_bracket_engraver"
+  \consists "Kievan_ligature_engraver"
+
+  %% Set glyph styles.
+  \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
 }
 
 \context {
 }
 
 \context {
- \Staff
- \name "KievanStaff"
- \alias "Staff"
- \denies "Voice"
- \defaultchild "KievanVoice"
- \accepts "KievanVoice"
- \description "Same as @code{Staff} context, except that it is
 \Staff
 \name "KievanStaff"
 \alias "Staff"
 \denies "Voice"
 \defaultchild "KievanVoice"
 \accepts "KievanVoice"
 \description "Same as @code{Staff} context, except that it is
 accommodated for typesetting a piece in Kievan style."
 
 accommodated for typesetting a piece in Kievan style."
 
- \remove "Time_signature_engraver"
-
- %% Choose Kievan tsefaut clef
- clefGlyph = #"clefs.kievan.do"
- middleCClefPosition = #0
- middleCPosition = #0
- clefPosition = #0
clefOctavation = #0
-
- %% Accidentals are valid only once (if the following note is different)
- extraNatural = ##f
- autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave 0)
-                            ,neo-modern-accidental-rule)
- autoCautionaries = #'()
- printKeyCancellation = ##f
 \remove "Time_signature_engraver"
+
 %% Choose Kievan tsefaut clef
 clefGlyph = #"clefs.kievan.do"
 middleCClefPosition = #0
 middleCPosition = #0
 clefPosition = #0
 clefTransposition = #0
+
 %% Accidentals are valid only once (if the following note is different)
 extraNatural = ##f
 autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave 0)
+                             ,neo-modern-accidental-rule)
 autoCautionaries = #'()
 printKeyCancellation = ##f
 
 }
 
 
 }