X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ly%2Fengraver-init.ly;h=4a3a303832997a6337c1f0fbdbd6447add4677d4;hb=559c289a01493c0bd32cb94e3b2f31ff83cf7889;hp=f7a58b4d01da310c224aaa6b50e56d0f858195ba;hpb=bc95f4434f760d41191341ab4508b2064eb19025;p=lilypond.git diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index f7a58b4d01..4a3a303832 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--2010 Han-Wen Nienhuys +%%%% Copyright (C) 1996--2011 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.13.10" +\version "2.13.42" \context { \name "Global" @@ -40,7 +40,7 @@ \consists "Font_size_engraver" \consists "Instrument_name_engraver" - predefinedDiagramTable = #fretboard-table + predefinedDiagramTable = #default-fret-table } \context { @@ -75,10 +75,11 @@ \consists "Figured_bass_engraver" \consists "Figured_bass_position_engraver" \consists "Script_row_engraver" + \consists "Cue_clef_engraver" localKeySignature = #'() createSpacing = ##t - ignoreFiguredBassRest = ##t + ignoreFiguredBassRest = ##f %% explicitly set instrument, so we don't get %% weird effects when doing instrument names for @@ -299,6 +300,7 @@ contained staves are connected vertically." \consists "Span_arpeggio_engraver" \consists "System_start_delimiter_engraver" systemStartDelimiter = #'SystemStartBrace + topLevelAlignment = ##f \defaultchild "Staff" \accepts "Staff" @@ -316,10 +318,9 @@ instrument names at the start of each system." \consists "Instrument_name_engraver" \consists "Vertical_align_engraver" + \consists "Keep_alive_together_engraver" topLevelAlignment = ##f - \override StaffGrouper #'between-staff-spacing #'stretchability = #5 - instrumentName = #'() shortInstrumentName = #'() } @@ -374,7 +375,9 @@ a collection of staves, with a bracket in front and spanning bar lines." pedalSustainStrings = #'("Ped." "*Ped." "*") pedalUnaCordaStrings = #'("una corda" "" "tre corde") \override VerticalAxisGroup #'staff-affinity = #CENTER - \override VerticalAxisGroup #'inter-staff-spacing = #'((space . 5) (padding . 0.5)) + \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing = + #'((basic-distance . 5) + (padding . 0.5)) \override TextScript #'font-shape = #'italic \override DynamicLineSpanner #'Y-offset = #0 @@ -404,10 +407,16 @@ printing of a single line of lyrics." \override VerticalAxisGroup #'remove-first = ##t \override VerticalAxisGroup #'remove-empty = ##t \override VerticalAxisGroup #'staff-affinity = #UP - \override VerticalAxisGroup #'inter-staff-spacing = #'((space . 5.5) (stretchability . 1) (padding . 0.5)) - \override VerticalAxisGroup #'inter-loose-line-spacing = #'((space . 0) (stretchability . 0) (padding . 0.2)) - \override VerticalAxisGroup #'non-affinity-spacing #'padding = #1.0 - \override SeparationItem #'padding = #0.2 + \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing = + #'((basic-distance . 5.5) + (padding . 0.5) + (stretchability . 1)) + \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 %% sync with define-grobs.scm ; @@ -446,27 +455,23 @@ printing of a single line of lyrics." \override VerticalAxisGroup #'remove-first = ##t \override VerticalAxisGroup #'remove-empty = ##t \override VerticalAxisGroup #'staff-affinity = #DOWN - \override VerticalAxisGroup #'inter-staff-spacing #'padding = #0.5 - \override VerticalAxisGroup #'inter-loose-line-spacing #'padding = #0.5 + \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing #'padding = #0.5 + \override VerticalAxisGroup #'nonstaff-nonstaff-spacing #'padding = #0.5 } -RemoveEmptyStaffContext = \context { - \Staff +RemoveEmptyStaves = \with { \remove "Axis_group_engraver" + % If RemoveEmptyStaves is called twice, two + % Hara_kiri_engravers would be added, which leads to a + % warning. + % This code makes sure that no previous Hara_kiri_engraver + % is left before adding a new one. + \remove "Hara_kiri_engraver" \consists "Hara_kiri_engraver" - \override Beam #'auto-knee-gap = #'() \override VerticalAxisGroup #'remove-empty = ##t } -AncientRemoveEmptyStaffContext = \context { -%% why not add by default? - - \RemoveEmptyStaffContext - \accepts "VaticanaVoice" - \accepts "GregorianTranscriptionVoice" - \accepts "MensuralVoice" -} \context { \type "Score_engraver" @@ -484,7 +489,6 @@ automatically when an output definition (a @code{\score} or @code{\layout} block) is processed." \consists "Paper_column_engraver" - \consists "Vertically_spaced_contexts_engraver" \consists "Repeat_acknowledge_engraver" \consists "Staff_collecting_engraver" @@ -527,10 +531,12 @@ automatically when an output definition (a @code{\score} or noteToFretFunction = #determine-frets + predefinedDiagramTable = ##f soloText = #"Solo" soloIIText = #"Solo II" aDueText = #"a2" printPartCombineTexts = ##t + partCombineTextsOnNote = ##t systemStartDelimiter =#'SystemStartBar drumStyleTable = #drums-style @@ -552,14 +558,25 @@ automatically when an output definition (a @code{\score} or automaticBars = ##t explicitClefVisibility = #all-visible + explicitCueClefVisibility = #end-of-line-invisible explicitKeySignatureVisibility = #all-visible implicitTimeSignatureVisibility = #end-of-line-invisible repeatCountVisibility = #all-repeat-counts-visible - beamSettings = #default-beam-settings + 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))))) autoBeaming = ##t autoBeamCheck = #default-auto-beam-check + scriptDefinitions = #default-script-alist pedalSustainStrings = #'("Ped." "*Ped." "*") @@ -592,7 +609,7 @@ automatically when an output definition (a @code{\score} or (6 . ,FLAT) (2 . ,FLAT) (5 . ,FLAT ) (1 . ,FLAT) (4 . ,FLAT) (0 . ,FLAT) (3 . ,FLAT) (3 . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP) (6 . ,DOUBLE-FLAT) (2 . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1 . ,DOUBLE-FLAT) (4 . ,DOUBLE-FLAT) (0 . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT) - (3 . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP) + (3 . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (1 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP) ) barCheckSynchronize = ##f @@ -600,6 +617,7 @@ automatically when an output definition (a @code{\score} or %% chord names: chordNameFunction = #ignatzek-chord-names majorSevenSymbol = #whiteTriangleMarkup + chordNameLowercaseMinor = ##f chordNameSeparator = #(make-simple-markup "/") chordNameExceptions = #ignatzekExceptions chordNoteNamer = #'() @@ -617,10 +635,11 @@ automatically when an output definition (a @code{\score} or stringOneTopmost = ##t highStringOne = ##t -%% One may change the strings tuning as following : -%% The lenght of the list must be equal to the number of string +%% 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 %% figuredBassFormatter = #format-bass-figure @@ -647,7 +666,13 @@ automatically when an output definition (a @code{\score} or ) keepAliveInterfaces = #'( - rhythmic-grob-interface + bass-figure-interface + chord-name-interface + cluster-beacon-interface + fret-diagram-interface + lyric-syllable-interface + note-head-interface + tab-note-head-interface lyric-interface percent-repeat-item-interface percent-repeat-interface @@ -665,7 +690,6 @@ automatically when an output definition (a @code{\score} or tuplet-span-event) instrumentTransposition = #(ly:make-pitch 0 0 0) - verticallySpacedContexts = #'(Staff) topLevelAlignment = ##t timing = ##t @@ -686,8 +710,8 @@ automatically when an output definition (a @code{\score} or \override VerticalAxisGroup #'remove-empty = ##t \override VerticalAxisGroup #'remove-first = ##t \override VerticalAxisGroup #'staff-affinity = #UP - \override VerticalAxisGroup #'inter-staff-spacing #'padding = #0.5 - \override VerticalAxisGroup #'inter-loose-line-spacing #'padding = #0.5 + \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing #'padding = #0.5 + \override VerticalAxisGroup #'nonstaff-nonstaff-spacing #'padding = #0.5 } \context { @@ -706,7 +730,7 @@ context." \name "TabVoice" \alias "Voice" \consists "Tab_note_heads_engraver" - \consists "Tab_harmonic_engraver" + \consists "Tab_tie_follow_engraver" \remove "Note_heads_engraver" \remove "Fingering_engraver" @@ -719,6 +743,14 @@ context." %% 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" @@ -738,10 +770,12 @@ context." 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 #'transparent = ##t + \override MultiMeasureRestText #'transparent = ##t %% ... all kinds of ties/slurs \override Tie #'stencil = ##f \override RepeatTie #'stencil = ##f @@ -760,6 +794,7 @@ context." \override Hairpin #'transparent = ##t \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) @@ -799,8 +834,6 @@ contexts and handles the line spacing, the tablature clef etc. properly." \override Clef #'stencil = #clef::print-modern-tab-if-set %% no time signature \override TimeSignature #'stencil = ##f - %% better parentheses in a TabStaff - \override ParenthesesItem #'stencils = #parentheses-item::calc-tabstaff-parenthesis-stencils %% no arpeggios \override Arpeggio #'stencil = ##f %% we ignore collision warnings that may occur due to @@ -823,6 +856,8 @@ of Editio Vaticana." \remove "Stem_engraver" \remove "Ligature_bracket_engraver" \consists "Vaticana_ligature_engraver" + \remove "Text_spanner_engraver" + \consists "Episema_engraver" %% Set default head for notes outside of \[ \]. \override NoteHead #'style = #'vaticana.punctum @@ -833,15 +868,6 @@ of Editio Vaticana." %% There are no beams in Gregorian Chant notation. autoBeaming = ##f - - %% Prepare TextSpanner for \episem{Initium|Finis} use. - %% - %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is - %% required to force the articulation signs being placed vertically - %% tightly to the correpsonding note heads. - %% - \override TextSpanner #'style = #'line - \override TextSpanner #'padding = #-0.1 } \context { @@ -890,6 +916,7 @@ of Editio Vaticana." \Voice \name "GregorianTranscriptionVoice" \alias "Voice" + \consists "Episema_engraver" %% Removing ligature bracket engraver without replacing it by some %% other ligature engraver would cause a "Junking event: `LigatureEvent'" @@ -904,18 +931,6 @@ of Editio Vaticana." %% There are no beams in Gregorian Chant notation. autoBeaming = ##f - %% Prepare TextSpanner for \episem{Initium|Finis} use. - %% - %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will - %% always produce dashed lines, regardless of the style property. - %% - %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is - %% required to force the articulation signs being placed vertically - %% tightly to the correpsonding note heads. - %% - \override TextSpanner #'dash-fraction = #'() - \override TextSpanner #'style = #'line - \override TextSpanner #'padding = #-0.1 } \context { @@ -996,24 +1011,35 @@ accommodated for typesetting a piece in mensural style." printKeyCancellation = ##f } + +%% Keep the old definitions in here for compatibility (they erase previous +%% settings to the corresponding context!). +%% For new scores, one should simply insert the \RemoveEmptyStaves settings +%% into the desired context. That's just as easy, requires only one line more +%% (the \*Staff), but preserves previous context mods. +%% TODO: DEPRECATED_2.13.17, remove at some point in the future +RemoveEmptyStaffContext = \context { + \Staff + \RemoveEmptyStaves +} + +AncientRemoveEmptyStaffContext = \context { + \VaticanaStaff + \RemoveEmptyStaves +} + RemoveEmptyDrumStaffContext = \context { \DrumStaff - \remove "Axis_group_engraver" - \override VerticalAxisGroup #'remove-empty = ##t - \consists "Hara_kiri_engraver" + \RemoveEmptyStaves } RemoveEmptyRhythmicStaffContext = \context { \RhythmicStaff - \remove "Axis_group_engraver" - \override VerticalAxisGroup #'remove-empty = ##t - \consists "Hara_kiri_engraver" + \RemoveEmptyStaves } RemoveEmptyTabStaffContext = \context { \TabStaff - \remove "Axis_group_engraver" - \override VerticalAxisGroup #'remove-empty = ##t - \consists "Hara_kiri_engraver" + \RemoveEmptyStaves }