]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/engraver-init.ly
Run grand-replace (issue 3765)
[lilypond.git] / ly / engraver-init.ly
index 16913705cad36e49b20a994277b904be5159d2bd..6c19da86d1463ea39417ba3e3c08802f2734faeb 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--2014 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.17.6"
+\version "2.17.29"
 
 \context {
   \name "Global"
@@ -26,7 +26,6 @@
   \defaultchild "Score"
   \description "Hard coded entry point for LilyPond.  Cannot be tuned."
   \grobdescriptions #all-grob-descriptions
-  EventClasses = #all-event-classes
 }
 
 \context {
@@ -37,7 +36,7 @@
 
   \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"
@@ -85,6 +84,7 @@
   \consists "Figured_bass_position_engraver"
   \consists "Script_row_engraver"
   \consists "Cue_clef_engraver"
+  \consists "Fingering_column_engraver"
 
   localKeySignature = #'()
   createSpacing = ##t
@@ -99,6 +99,7 @@
   \defaultchild "Voice"
   \accepts "Voice"
   \accepts "CueVoice"
+  \accepts "NullVoice"
 
   \description "Handles clefs, bar lines, keys, accidentals.  It can contain
 @code{Voice} contexts."
@@ -168,7 +169,6 @@ contained staves are not connected vertically."
   \name RhythmicStaff
   \alias "Staff"
 
-  \override BarLine.bar-extent = #'(-2 . 2)
   \override VoltaBracket.staff-padding = #3
   \override StaffSymbol.line-count = #1
 
@@ -230,7 +230,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.
@@ -240,6 +239,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"
@@ -251,15 +251,13 @@ 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"
 
   \consists "Script_engraver"
   \consists "Script_column_engraver"
-  \consists "Fingering_column_engraver"
   \consists "Rhythmic_column_engraver"
   \consists "Note_spacing_engraver"
   \consists "Spanner_break_forbid_engraver"
@@ -315,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"
@@ -361,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"
@@ -398,13 +402,12 @@ 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")
@@ -414,6 +417,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
+  \override DynamicLineSpanner.outside-staff-priority = ##f
+  \override DynamicText.outside-staff-priority = ##f
+  \override Hairpin.outside-staff-priority = ##f
   \override DynamicText.X-offset =
   #(ly:make-simple-closure
     `(,+
@@ -437,11 +443,10 @@ 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
@@ -503,8 +508,9 @@ 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
@@ -524,8 +530,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"
@@ -544,6 +550,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"
@@ -607,10 +614,11 @@ automatically when an output definition (a @code{\score} or
   doubleRepeatType = #":..:"
   startRepeatType = #".|:"
   endRepeatType = #":|."
+  alternativeRestores = #'(measurePosition measureLength)
   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
@@ -620,21 +628,20 @@ automatically when an output definition (a @code{\score} or
 
   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." "*")
@@ -706,26 +713,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
@@ -767,7 +756,7 @@ 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
@@ -787,6 +776,59 @@ automatically when an output definition (a @code{\score} or
 context."
 }
 
+\context {
+  \name "NullVoice"
+  \type "Engraver_group"
+
+  \description "Non-printing context, typically used for aligning
+lyrics in polyphonic situations, or with @code{\partcombine}."
+
+  %% don't route anything out of here
+  \alias "Staff"
+  \alias "Voice"
+
+  %% all three are needed for ties to work with lyrics
+  \consists "Note_heads_engraver"
+  \consists "Rhythmic_column_engraver"
+  \consists "Tie_engraver"
+
+  %% both are needed for melismas to work with \autoBeamOff
+  \consists "Beam_engraver"
+  \consists "Stem_engraver"
+
+  %% needed for slurs to work with lyrics
+  \consists "Slur_engraver"
+
+  %% keep noteheads inside the staff
+  \consists "Pitch_squash_engraver"
+  squashedPosition = 0
+
+  %% `\omit NoteHead' would give slur attachment errors
+  \omit Accidental
+  \omit Beam
+  \omit Dots
+  \omit Flag
+  \omit Rest
+  \omit Slur
+  \omit Stem
+  \omit Tie
+
+  %% let these take up space (for lyric extenders, etc.)
+  \override NoteHead.transparent = ##t
+  \override TabNoteHead.transparent = ##t
+
+  %% don't let notes shift
+  \override NoteHead.X-offset = 0
+  \override NoteColumn.ignore-collision = ##t
+
+  %% keep beams and stems inside the staff
+  \override Beam.positions = #'(1 . 1)
+  \override Stem.length = 0
+
+  %% prevent "weird stem size" warnings
+  \override Stem.direction = #UP
+}
+
 \context {
   \Voice
   \name "TabVoice"
@@ -801,6 +843,51 @@ context."
 
   \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:
@@ -815,8 +902,6 @@ context."
                                                (/ 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
@@ -869,48 +954,6 @@ context."
   \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"
@@ -968,7 +1011,7 @@ of Editio Vaticana."
   middleCPosition = #1
   middleCClefPosition = #1
   clefPosition = #1
-  clefOctavation = #0
+  clefTransposition = #0
 
   %% Select vaticana style font.
   \override KeySignature.glyph-name-alist = #alteration-vaticana-glyph-name-alist
@@ -1061,7 +1104,7 @@ accommodated for typesetting a piece in mensural style."
   middleCClefPosition = #-6
   middleCPosition = #-6
   clefPosition = #-2
-  clefOctavation = #0
+  clefTransposition = #0
 
   %% Select mensural style font.
   \override TimeSignature.style = #'mensural
@@ -1120,7 +1163,7 @@ accommodated for typesetting a piece in Petrucci style."
   middleCClefPosition = #-6
   middleCPosition = #-6
   clefPosition = #-2
-  clefOctavation = #0
+  clefTransposition = #0
 
   \override Custos.style = #'mensural
   \override Custos.neutral-position = #3
@@ -1141,12 +1184,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 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
@@ -1169,7 +1222,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