X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ly%2Fengraver-init.ly;h=a416974ba08169371f411782dfeda42ac6163171;hb=94dc452301cc0d1e9983f5aeb784884f7fe8c964;hp=701ca5209257859f52effd6538893fffa0ee588c;hpb=12f1c6fb456268e0108dc0f544cb9a13a971bdc9;p=lilypond.git diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index 701ca52092..8b5893e223 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--2012 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.17.11" \context { \name "Global" @@ -26,21 +26,29 @@ \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" - predefinedDiagramTable = #fretboard-table + %% explicitly set instrument, so it is not inherited from the parent + instrumentName = #'() + shortInstrumentName = #'() + + predefinedDiagramTable = #default-fret-table + handleNegativeFrets = #'recalculate + restrainOpenStrings = ##f } \context { @@ -49,6 +57,7 @@ \consists "Output_property_engraver" \consists "Bar_engraver" + \consists "Pure_from_neighbor_engraver" %% Bar_engraver must be first so default bars aren't overwritten %% with empty ones. @@ -75,15 +84,17 @@ \consists "Figured_bass_engraver" \consists "Figured_bass_position_engraver" \consists "Script_row_engraver" + \consists "Cue_clef_engraver" + \consists "Fingering_column_engraver" localKeySignature = #'() createSpacing = ##t ignoreFiguredBassRest = ##f + \markLengthOff %% explicitly set instrument, so we don't get %% weird effects when doing instrument names for %% piano staves - instrumentName = #'() shortInstrumentName = #'() @@ -115,7 +126,7 @@ clefGlyph = #"clefs.percussion" clefPosition = #0 - \override Script #'staff-padding = #0.75 + \override Script.staff-padding = #0.75 } @@ -125,8 +136,12 @@ \consists "Vertical_align_engraver" topLevelAlignment = ##f + \consists "Instrument_name_engraver" \consists "System_start_delimiter_engraver" systemStartDelimiter = #'SystemStartBracket + %% explicitly set instrument, so it is not inherited from the parent + instrumentName = #'() + shortInstrumentName = #'() vocalName = #'() shortVocalName = #'() @@ -155,12 +170,13 @@ contained staves are not connected vertically." \name RhythmicStaff \alias "Staff" - \override BarLine #'bar-size = #4 - \override VoltaBracket #'staff-padding = #3 - \override StaffSymbol #'line-count = #1 + \override BarLine.bar-extent = #'(-2 . 2) + \override VoltaBracket.staff-padding = #3 + \override StaffSymbol.line-count = #1 + \markLengthOff - \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" @@ -174,6 +190,10 @@ contained staves are not connected vertically." \consists "Axis_group_engraver" \consists "Ledger_line_engraver" + %% explicitly set instrument, so it is not inherited from the parent + instrumentName = #'() + shortInstrumentName = #'() + \accepts "Voice" \accepts "CueVoice" \defaultchild "Voice" @@ -194,7 +214,6 @@ subscripts, slurs, ties, and rests. You have to instantiate this explicitly if you want to have multiple voices on the same staff." - localKeySignature = #'() \consists "Font_size_engraver" \consists "Pitched_trill_engraver" @@ -214,7 +233,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. @@ -229,6 +247,7 @@ multiple voices on the same staff." \consists "New_fingering_engraver" \consists "Chord_tremolo_engraver" + \consists "Double_percent_repeat_engraver" \consists "Percent_repeat_engraver" \consists "Slash_repeat_engraver" \consists "Part_combine_engraver" @@ -260,9 +279,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 { @@ -295,15 +314,27 @@ multiple voices on the same staff." side, grouping the staves together. The bar lines of the contained staves are connected vertically." + \consists "Instrument_name_engraver" \consists "Span_bar_engraver" + \consists "Span_bar_stub_engraver" \consists "Span_arpeggio_engraver" \consists "System_start_delimiter_engraver" + \consists "Vertical_align_engraver" systemStartDelimiter = #'SystemStartBrace + topLevelAlignment = ##f + %% explicitly set instrument, so it is not inherited from the parent + instrumentName = #'() + shortInstrumentName = #'() \defaultchild "Staff" \accepts "Staff" + \accepts "RhythmicStaff" + \accepts "DrumStaff" + \accepts "TabStaff" + \accepts "Lyrics" \accepts "FiguredBass" \accepts "Dynamics" + \accepts "ChordNames" } \context{ @@ -311,15 +342,13 @@ contained staves are connected vertically." \name "PianoStaff" \alias "GrandStaff" - \description "Just like @code{GrandStaff} but with support for -instrument names at the start of each system." + \description "Just like @code{GrandStaff}, but the staves are only removed +together, never separately." - \consists "Instrument_name_engraver" \consists "Vertical_align_engraver" + \consists "Keep_alive_together_engraver" topLevelAlignment = ##f - \override StaffGrouper #'between-staff-spacing #'stretchability = #5 - instrumentName = #'() shortInstrumentName = #'() } @@ -331,10 +360,15 @@ instrument names at the start of each system." \consists "Vertical_align_engraver" topLevelAlignment = ##f + \consists "Instrument_name_engraver" \consists "Span_bar_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 = #'() + shortInstrumentName = #'() \consists "System_start_delimiter_engraver" @@ -369,14 +403,27 @@ a collection of staves, with a bracket in front and spanning bar lines." \consists "Dynamic_align_engraver" \consists "Text_engraver" \consists "Text_spanner_engraver" + \consists "Font_size_engraver" \consists "Axis_group_engraver" pedalSustainStrings = #'("Ped." "*Ped." "*") pedalUnaCordaStrings = #'("una corda" "" "tre corde") - \override VerticalAxisGroup #'staff-affinity = #CENTER - \override VerticalAxisGroup #'inter-staff-spacing = #'((space . 5) (padding . 0.5)) - \override TextScript #'font-shape = #'italic - \override DynamicLineSpanner #'Y-offset = #0 + \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 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 + `(,+ + ,(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)))) \description "Holds a single line of dynamics, which will be centered between the staves surrounding this context." @@ -390,34 +437,40 @@ centered between the staves surrounding this context." printing of a single line of lyrics." \name "Lyrics" - instrumentName = #'() - shortInstrumentName = #'() - \consists "Lyric_engraver" \consists "Extender_engraver" \consists "Hyphen_engraver" \consists "Stanza_number_engraver" \consists "Instrument_name_engraver" \consists "Font_size_engraver" - \consists "Hara_kiri_engraver" - - \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) - (minimum-distance . 2.8)) - \override VerticalAxisGroup #'non-affinity-spacing #'padding = #1.0 - \override InstrumentName #'self-alignment-Y = ##f + \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 = + #'((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 ; - \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-size = #0.1 + \override BarLine.bar-extent = #'(-0.05 . 0.05) } @@ -427,8 +480,17 @@ printing of a single line of lyrics." \description "A context for printing the names of notes." \consists "Axis_group_engraver" - % FIXME: not sure what the default should be here. - \override VerticalAxisGroup #'staff-affinity = #DOWN + \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 = + #'((basic-distance . 5.5) + (padding . 0.5) + (stretchability . 1)) + \override VerticalAxisGroup.nonstaff-unrelatedstaff-spacing.padding = 1.5 \consists "Tie_engraver" \consists "Note_name_engraver" @@ -443,25 +505,16 @@ 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 #'inter-staff-spacing #'padding = #0.5 - \override VerticalAxisGroup #'inter-loose-line-spacing #'padding = #0.5 -} - -RemoveEmptyStaves = \with { - \remove "Axis_group_engraver" - \remove "Hara_kiri_engraver" - \consists "Hara_kiri_engraver" - \override Beam #'auto-knee-gap = #'() - \override VerticalAxisGroup #'remove-empty = ##t + \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 { \type "Score_engraver" \name "Score" @@ -474,19 +527,27 @@ 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 "Vertically_spaced_contexts_engraver" \consists "Repeat_acknowledge_engraver" \consists "Staff_collecting_engraver" - %% move the alias along with the engraver. + \alias "Timing" + + %% An alias for Timing is established by the Timing_translator in + %% whatever context it is initialized, and the timing variables are + %% then copied from wherever Timing had been previously established. + %% The alias at Score level provides a target for initializing + %% Timing variables in layout definitions before any + %% Timing_translator has been run. + % timing translator must come BEFORE bar number 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" @@ -498,6 +559,9 @@ automatically when an output definition (a @code{\score} or \consists "Stanza_number_align_engraver" \consists "Bar_number_engraver" \consists "Parenthesis_engraver" + \consists "Concurrent_hairpin_engraver" + \consists "Beam_collision_engraver" + \consists "Footnote_engraver" \defaultchild "Staff" @@ -508,8 +572,10 @@ automatically when an output definition (a @code{\score} or \accepts "VaticanaStaff" \accepts "GregorianTranscriptionStaff" \accepts "MensuralStaff" + \accepts "PetrucciStaff" \accepts "StaffGroup" \accepts "DrumStaff" + \accepts "KievanStaff" \accepts "Lyrics" \accepts "ChordNames" \accepts "GrandStaff" @@ -519,13 +585,13 @@ automatically when an output definition (a @code{\score} or \accepts "NoteNames" \accepts "FiguredBass" - noteToFretFunction = #determine-frets predefinedDiagramTable = ##f soloText = #"Solo" soloIIText = #"Solo II" aDueText = #"a2" printPartCombineTexts = ##t + partCombineTextsOnNote = ##t systemStartDelimiter =#'SystemStartBar drumStyleTable = #drums-style @@ -542,19 +608,34 @@ automatically when an output definition (a @code{\score} or decrescendoSpanner = #'hairpin defaultBarType = #"|" - doubleRepeatType = #":|:" - barNumberVisibility = #first-bar-number-invisible + doubleRepeatType = #":..:" + startRepeatType = #".|:" + endRepeatType = #":|." + 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 repeatCountVisibility = #all-repeat-counts-visible - beamSettings = #default-beam-settings +%% 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 + + beamHalfMeasure = ##t + autoBeaming = ##t autoBeamCheck = #default-auto-beam-check + scriptDefinitions = #default-script-alist pedalSustainStrings = #'("Ped." "*Ped." "*") @@ -587,16 +668,19 @@ 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 %% chord names: chordNameFunction = #ignatzek-chord-names + minorChordModifier = #(make-simple-markup "m") + additionalPitchPrefix = #"" % was "add" majorSevenSymbol = #whiteTriangleMarkup chordNameLowercaseMinor = ##f - chordNameSeparator = #(make-simple-markup "/") + chordNameSeparator = #(make-hspace-markup 0.5) + slashChordSeparator = #(make-simple-markup "/") chordNameExceptions = #ignatzekExceptions chordNoteNamer = #'() chordRootNamer = #note-name->markup @@ -622,12 +706,14 @@ automatically when an output definition (a @code{\score} or %% figuredBassFormatter = #format-bass-figure metronomeMarkFormatter = #format-metronome-markup + \markLengthOn %% 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) @@ -644,7 +730,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 @@ -662,7 +754,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 @@ -678,13 +769,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 #'inter-staff-spacing #'padding = #0.5 - \override VerticalAxisGroup #'inter-loose-line-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 { @@ -703,69 +794,81 @@ 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" \remove "New_fingering_engraver" + \remove "Pitched_trill_engraver" \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 + \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 #'length = #0 - \override Stem #'no-stem-extend = ##t - \override Stem #'flag-style = #'no-flag - \override Stem #'details = #'((lengths 0 0 0 0 0 0) + \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 #'transparent = ##t + \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 Dots #'stencil = ##f - \override Rest #'stencil = ##f - \override MultiMeasureRest #'stencil = ##f - \override MultiMeasureRestNumber #'transparent = ##t + \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 + \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 + \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 #'transparent = ##t - \override DynamicTextSpanner #'stencil = ##f - \override TextSpanner #'stencil = ##f - \override Hairpin #'transparent = ##t - \override Script #'stencil = ##f - \override TextScript #'stencil = ##f + \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) + \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) + \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 + \override TabNoteHead.glyph-name = #tab-note-head::calc-glyph-name + \override TabNoteHead.stencil = #tab-note-head::whiteout-if-style-set } \context { @@ -782,10 +885,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" @@ -793,19 +896,21 @@ 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 - %% better parentheses in a TabStaff - \override ParenthesesItem #'stencils = #parentheses-item::calc-tabstaff-parenthesis-stencils + \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 + %% Change string if note results in negative fret number + handleNegativeFrets = #'recalculate + %% Allow open strings even if minimumFret is set + restrainOpenStrings = ##f } \context { @@ -824,11 +929,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 @@ -852,28 +957,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 { @@ -886,11 +991,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 @@ -908,7 +1013,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 { @@ -923,8 +1028,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 NoteHead.style = #'mensural + \override Rest.style = #'mensural + \override Flag.style = #'mensural %% There are no beams in mensural notation. autoBeaming = ##f @@ -945,36 +1051,146 @@ 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 - %% #(set-accidental-style 'forget)) + %% \accidentalStyle forget) extraNatural = ##f autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave -1)) autoCautionaries = #'() printKeyCancellation = ##f } +\context { + \Voice + \name "PetrucciVoice" + \alias "Voice" + \description "Same as @code{Voice} context, except that it is +accommodated for typesetting a piece in Petrucci style." + + \remove "Ligature_bracket_engraver" + \consists "Mensural_ligature_engraver" + + %% Set glyph styles. + \override NoteHead.style = #'petrucci + \override Rest.style = #'mensural + + % Thickens and shortens stems. + \override Stem.thickness = #1.7 + \override Stem.length = #5 + + %% There are no beams in Petrucci notation. + autoBeaming = ##f +} + +\context { + \Staff + \name "PetrucciStaff" + \alias "Staff" + \denies "Voice" + \defaultchild "PetrucciVoice" + \accepts "PetrucciVoice" + \description "Same as @code{Staff} context, except that it is +accommodated for typesetting a piece in Petrucci style." + + \consists "Custos_engraver" + + \override StaffSymbol.thickness = #1.3 + + %% Choose Petrucci g clef on 2nd line as default. + clefGlyph = #"clefs.petrucci.g" + middleCClefPosition = #-6 + middleCPosition = #-6 + clefPosition = #-2 + clefTransposition = #0 + + \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 + autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave 0) + ,neo-modern-accidental-rule) + autoCautionaries = #'() + printKeyCancellation = ##f +} + +\context { + \Voice + \name "KievanVoice" + \alias "Voice" + \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 +} + +\context { + \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." + + \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 + +} %% Keep the old definitions in here for compatibility (they erase previous %% settings to the corresponding context!). @@ -1006,4 +1222,3 @@ RemoveEmptyTabStaffContext = \context { \TabStaff \RemoveEmptyStaves } -