X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ly%2Fengraver-init.ly;h=6c19da86d1463ea39417ba3e3c08802f2734faeb;hb=0b544cfb7332615ef809b71b57ab656741311ae1;hp=16913705cad36e49b20a994277b904be5159d2bd;hpb=74b4c9351b01381f0dc1d6d4688dcd845fc59720;p=lilypond.git diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index 16913705ca..6c19da86d1 100644 --- a/ly/engraver-init.ly +++ b/ly/engraver-init.ly @@ -1,6 +1,6 @@ %%%% This file is part of LilyPond, the GNU music typesetter. %%%% -%%%% Copyright (C) 1996--2012 Han-Wen Nienhuys +%%%% Copyright (C) 1996--2014 Han-Wen Nienhuys %%%% Jan Nieuwenhuizen %%%% %%%% 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 . -\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