X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ly%2Fengraver-init.ly;h=49f22c1b3de9010015e172cf9a5928f7b22d4471;hb=a92bec97a0e5aac57e48ec98a1cb438fdce224de;hp=41a99b6198164676e8976ba09c8190ceb91bf840;hpb=5e08569186d16ee6f01ea4495fe3a1510eb3cee7;p=lilypond.git diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index 41a99b6198..49f22c1b3d 100644 --- a/ly/engraver-init.ly +++ b/ly/engraver-init.ly @@ -1,4 +1,4 @@ -\version "2.7.39" +\version "2.10.0" \context { \name "Global" @@ -6,10 +6,26 @@ \accepts "Score" \defaultchild "Score" - \description "Hard coded entry point for LilyPond. Cannot be tuned." + \description "Hard coded entry point for LilyPond. Cannot be tuned." \grobdescriptions #all-grob-descriptions } + +\context { + \type "Engraver_group" + \name "FretBoards" + + \consists "Output_property_engraver" + + \consists "Axis_group_engraver" + \consists "Fretboard_engraver" + \consists "Separating_line_group_engraver" + \consists "Font_size_engraver" + \consists "Instrument_name_engraver" + + predefinedDiagramTable = #fretboard-table +} + \context { \type "Engraver_group" \name "Staff" @@ -20,11 +36,11 @@ %% with empty ones. \consists "Font_size_engraver" - \consists "Volta_engraver" \consists "Separating_line_group_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" @@ -35,17 +51,18 @@ \consists "Rest_collision_engraver" \consists "Accidental_engraver" \consists "Piano_pedal_engraver" + \consists "Piano_pedal_align_engraver" \consists "Instrument_name_engraver" \consists "String_number_engraver" \consists "Axis_group_engraver" \consists "Figured_bass_engraver" \consists "Figured_bass_position_engraver" + \consists "Script_row_engraver" - \override VerticalAxisGroup #'minimum-Y-extent = #'(-4 . 4) - extraVerticalExtent = ##f - verticalExtent = ##f localKeySignature = #'() createSpacing = ##t + ignoreFiguredBassRest = ##t + \override VerticalAxisGroup #'minimum-Y-extent = #'(-4 . 4) %% explicitly set instrument, so we don't get %% weird effects when doing instrument names for @@ -121,8 +138,6 @@ contained staves are not connected vertically." \type "Engraver_group" \override VerticalAxisGroup #'minimum-Y-extent = ##f - extraVerticalExtent = ##f - verticalExtent = ##f localKeySignature = #'() createSpacing = ##t @@ -139,7 +154,6 @@ contained staves are not connected vertically." \consists "Output_property_engraver" \consists "Font_size_engraver" - \consists "Volta_engraver" \consists "Separating_line_group_engraver" \consists "Dot_column_engraver" \consists "Bar_engraver" @@ -154,10 +168,8 @@ contained staves are not connected vertically." \accepts "CueVoice" \defaultchild "Voice" - \description " - A context like @code{Staff} but for printing rhythms. Pitches are - ignored; the notes are printed on one line. -" + \description "A context like @code{Staff} but for printing rhythms. +Pitches are ignored; the notes are printed on one line." } @@ -165,13 +177,12 @@ contained staves are not connected vertically." \type "Engraver_group" \name "Voice" - \description " - Corresponds to a voice on a staff. This context handles the - conversion of dynamic signs, stems, beams, super- and subscripts, - slurs, ties, and rests. + \description "Corresponds to a voice on a staff. This context +handles the conversion of dynamic signs, stems, beams, super- and +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." localKeySignature = #'() \consists "Font_size_engraver" @@ -191,8 +202,10 @@ contained staves are not connected vertically." \consists "Ligature_bracket_engraver" \consists "Breathing_sign_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. % \consists "Melody_engraver" @@ -201,20 +214,27 @@ contained staves are not connected vertically." \consists "Beam_engraver" \consists "Grace_beam_engraver" \consists "Auto_beam_engraver" + + %% must come before Script_column_engraver. \consists "New_fingering_engraver" + \consists "Chord_tremolo_engraver" \consists "Percent_repeat_engraver" \consists "Slash_repeat_engraver" \consists "Part_combine_engraver" \consists "Text_engraver" - \consists "Dynamic_engraver" + \consists "New_dynamic_engraver" + \consists "Dynamic_align_engraver" +% \consists "Dynamic_engraver" \consists "Fingering_engraver" - \consists "Bend_after_engraver" + \consists "Bend_engraver" \consists "Script_engraver" \consists "Script_column_engraver" \consists "Rhythmic_column_engraver" + \consists "Note_spacing_engraver" + \consists "Spanner_break_forbid_engraver" \consists "Phrasing_slur_engraver" \consists "Cluster_spanner_engraver" \consists "Slur_engraver" @@ -233,6 +253,7 @@ contained staves are not connected vertically." fontSize = #-4 \override Stem #'length-fraction = #(magstep -4) \override Beam #'length-fraction = #(magstep -4) + \override Beam #'thickness = #0.35 } \context { @@ -242,8 +263,6 @@ contained staves are not connected vertically." \description "A voice on a percussion staff." \remove "Arpeggio_engraver" - \consists "Multi_measure_rest_engraver" - \consists "Text_spanner_engraver" \consists "Grob_pq_engraver" \remove "Note_head_line_engraver" @@ -256,7 +275,6 @@ contained staves are not connected vertically." \remove "Fingering_engraver" \remove "Cluster_spanner_engraver" - \consists "Tuplet_engraver" \consists "Skip_event_swallow_translator" } @@ -266,15 +284,16 @@ contained staves are not connected vertically." \name GrandStaff localKeySignature = #'() - \description " A group of staffs, with a brace on the left - side, grouping the staves together. The bar lines of the - contained staves are connected vertically. " + \description "A group of staves, with a brace on the left +side, grouping the staves together. The bar lines of the +contained staves are connected vertically." \consists "Span_bar_engraver" \consists "Span_arpeggio_engraver" \consists "System_start_delimiter_engraver" systemStartDelimiter = #'SystemStartBrace + \defaultchild "Staff" \accepts "Staff" \accepts "FiguredBass" } @@ -284,14 +303,9 @@ contained staves are not connected vertically." \name "PianoStaff" \alias "GrandStaff" - \description - "Just like @code{GrandStaff} but with a forced distance between - the staves, so cross staff beaming and slurring can be used." - - \override VerticalAlignment #'forced-distance = #12 - \override VerticalAlignment #'self-alignment-Y = #0 + \description "Just like @code{GrandStaff} but with support for +instrument names at the start of each system." - \consists "Vertical_align_engraver" \consists "Instrument_name_engraver" instrumentName = #'() @@ -324,12 +338,10 @@ contained staves are not connected vertically." \InnerStaffGroup \name StaffGroup - \description - - "Groups staffs while adding a bracket on the left side, grouping -the staves together. The bar lines of the contained staves are -connected vertically. StaffGroup only consists of a collection of -staffs, with a bracket in front and spanning bar lines. " + \description "Groups staves while adding a bracket on the left +side, grouping the staves together. The bar lines of the contained +staves are connected vertically. @code{StaffGroup} only consists of +a collection of staves, with a bracket in front and spanning bar lines." \accepts "InnerChoirStaff" \accepts "ChoirStaff" @@ -340,14 +352,15 @@ staffs, with a bracket in front and spanning bar lines. " \context{ \type "Engraver_group" - \override VerticalAxisGroup #'minimum-Y-extent = #'(-1.2 . 2.4) - extraVerticalExtent = ##f - verticalExtent = ##f + \override VerticalAxisGroup #'minimum-Y-extent = #'(-0.75 . 2.0) - \description " Corresponds to a voice with lyrics. Handles the -printing of a single line of lyrics. " + \description "Corresponds to a voice with lyrics. Handles the +printing of a single line of lyrics." + + \name "Lyrics" + instrumentName = #'() + shortInstrumentName = #'() - \name "Lyrics" \consists "Lyric_engraver" \consists "Extender_engraver" \consists "Hyphen_engraver" @@ -356,8 +369,10 @@ printing of a single line of lyrics. " \consists "Skip_event_swallow_translator" \consists "Font_size_engraver" \consists "Hara_kiri_engraver" + \override VerticalAxisGroup #'remove-first = ##t \override VerticalAxisGroup #'remove-empty = ##t + \override VerticalAxisGroup #'keep-fixed-while-stretching = ##t \override SeparationItem #'padding = #0.2 \override InstrumentName #'self-alignment-Y = ##f @@ -376,8 +391,6 @@ printing of a single line of lyrics. " \consists "Axis_group_engraver" \override VerticalAxisGroup #'minimum-Y-extent = ##f - extraVerticalExtent = ##f - verticalExtent = ##f \consists "Rest_swallow_translator" @@ -391,8 +404,6 @@ printing of a single line of lyrics. " \type "Engraver_group" \name ChordNames \description "Typesets chord names." - - \consists "Volta_engraver" \consists "Rest_swallow_translator" \consists "Output_property_engraver" @@ -400,14 +411,10 @@ printing of a single line of lyrics. " \consists "Chord_name_engraver" \consists "Skip_event_swallow_translator" \consists "Hara_kiri_engraver" - - voltaOnThisStaff = ##f - \override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 2.5) - extraVerticalExtent = ##f - \override SeparatingGroupSpanner #'padding = #0.8 +% \consists "Note_spacing_engraver" + \override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 2) \override VerticalAxisGroup #'remove-first = ##t \override VerticalAxisGroup #'remove-empty = ##t - verticalExtent = ##f } @@ -433,16 +440,15 @@ AncientRemoveEmptyStaffContext = \context { \name "Score" \description "This is the top level notation context. No - other context can contain a @code{Score} context. This context - handles the administration of time signatures. It also makes sure - that items such as clefs, time signatures, and key-signatures are - aligned across staves. - - You cannot explicitly instantiate a 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." +other context can contain a @code{Score} context. This context +handles the administration of time signatures. It also makes sure +that items such as clefs, time signatures, and key-signatures are +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." \consists "Paper_column_engraver" \consists "Vertically_spaced_contexts_engraver" @@ -455,7 +461,8 @@ AncientRemoveEmptyStaffContext = \context { \consists "Default_bar_line_engraver" \consists "Output_property_engraver" \consists "System_start_delimiter_engraver" - \consists "Mark_engraver" + \consists "Mark_engraver" + \consists "Volta_engraver" \consists "Metronome_mark_engraver" \consists "Break_align_engraver" \consists "Spacing_engraver" @@ -463,11 +470,11 @@ AncientRemoveEmptyStaffContext = \context { \consists "Vertical_align_engraver" \consists "Stanza_number_align_engraver" \consists "Bar_number_engraver" - \consists "Tweak_engraver" \consists "Parenthesis_engraver" \defaultchild "Staff" + \accepts "FretBoards" \accepts "Staff" \accepts "RhythmicStaff" \accepts "TabStaff" @@ -484,7 +491,9 @@ AncientRemoveEmptyStaffContext = \context { \accepts "Devnull" \accepts "NoteNames" \accepts "FiguredBass" - + + + noteToFretFunction = #determine-frets soloText = #"Solo" soloIIText = #"Solo II" aDueText = #"a2" @@ -497,15 +506,22 @@ AncientRemoveEmptyStaffContext = \context { tieWaitForNote = ##f clefGlyph = #"clefs.G" clefPosition = #-2 + middleCClefPosition = #-6 middleCPosition = #-6 firstClef = ##t + + crescendoSpanner = #'hairpin + decrescendoSpanner = #'hairpin defaultBarType = #"|" + doubleRepeatType = #":|:" barNumberVisibility = #first-bar-number-invisible automaticBars = ##t explicitClefVisibility = #all-visible explicitKeySignatureVisibility = #all-visible + implicitTimeSignatureVisibility = #end-of-line-invisible + autoBeamSettings = #default-auto-beam-settings autoBeaming = ##t autoBeamCheck = #default-auto-beam-check @@ -526,19 +542,22 @@ AncientRemoveEmptyStaffContext = \context { harmonicAccidentals = ##t fingeringOrientations = #'(up down) stringNumberOrientations = #'(up down) + strokeFingerOrientations = #'(right) + + lyricMelismaAlignment = #LEFT markFormatter = #format-mark-letters rehearsalMark = #1 subdivideBeams = ##f allowBeamBreak = ##f extraNatural = ##t - autoAccidentals = #'(Staff (same-octave . 0)) + autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave 0)) autoCautionaries = #'() printKeyCancellation = ##t keyAlterationOrder = #`( (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 . ,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) ) @@ -558,7 +577,8 @@ AncientRemoveEmptyStaffContext = \context { bassStaffProperties = #'((assign clefGlyph "clefs.F") (assign clefPosition 2) - (assign middleCPosition 6)) + (assign middleCPosition 6) + (assign middleCClefPosition 6)) %% tablature: stringOneTopmost = ##t highStringOne = ##t @@ -571,6 +591,9 @@ AncientRemoveEmptyStaffContext = \context { %% figuredBassFormatter = #format-bass-figure metronomeMarkFormatter = #format-metronome-markup + + + %% See also make-voice-props-set graceSettings = #`( (Voice Stem direction ,UP) (Voice Stem font-size -3) @@ -581,16 +604,29 @@ AncientRemoveEmptyStaffContext = \context { (Voice 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) ) - keepAliveInterfaces = #'(rhythmic-grob-interface lyric-interface percent-repeat-interface) - quotedEventTypes = #'(note-event rest-event time-scaled-music tie-event beam-event) + keepAliveInterfaces = #'( + rhythmic-grob-interface + lyric-interface + percent-repeat-item-interface + percent-repeat-interface + + ;; need this, as stanza numbers are items, and appear only once. + stanza-number-interface + ) + quotedEventTypes = #'( + note-event + rest-event + tie-event + beam-event + tuplet-span-event) instrumentTransposition = #(ly:make-pitch 0 0 0) verticallySpacedContexts = #'(Staff) - - hairpinToBarline = ##t timing = ##t } @@ -610,7 +646,7 @@ AncientRemoveEmptyStaffContext = \context { \override VerticalAxisGroup #'remove-empty = ##t \override VerticalAxisGroup #'remove-first = ##t - \override VerticalAxisGroup #'minimum-Y-extent = #'(-0.5 . 2.5) + \override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 2) } \context { @@ -621,7 +657,8 @@ AncientRemoveEmptyStaffContext = \context { \alias "Staff" \alias "Voice" \consists "Swallow_engraver" - \description "Silently discards all musical information given to this context. " + \description "Silently discards all musical information given to this +context." } \context { @@ -629,11 +666,13 @@ AncientRemoveEmptyStaffContext = \context { \name "TabVoice" \alias "Voice" \consists "Tab_note_heads_engraver" + \consists "Tab_harmonic_engraver" + \remove "Note_heads_engraver" \remove "Fingering_engraver" \remove "New_fingering_engraver" - \description "Context for drawing notes in a Tab staff. " + \description "Context for drawing notes in a Tab staff." %% TabStaff increase the staff-space, which in turn %% increases beam thickness and spacing; beams are @@ -643,6 +682,14 @@ AncientRemoveEmptyStaffContext = \context { %% No accidental in tablature ! \remove Accidental_engraver + + \override Glissando #'extra-dy = #0.75 + \override Glissando #'bound-details #'right = #`((attach-dir . ,LEFT) + (padding . 0.3)) + \override Glissando #'bound-details #'left = #`((attach-dir . ,RIGHT) + (padding . 0.3)) + \override Glissando #'extra-dy = #0.75 + \override Glissando #'gap = #0.2 } \context { @@ -672,21 +719,23 @@ AncientRemoveEmptyStaffContext = \context { clefPosition = #0 } -%% TODO: Gregorian Chant contexts should be moved to gregorian-init.ly, +%% TODO: Gregorian Chant contexts should be moved to gregorian.ly, %% but this does not work (is this a bug or intended behaviour?): %% %% If I try to do so, I get "error: unknown escaped string: %% `\VaticanaStaff'" in params-init.ly. If I also move %% "\context { \Vaticana*Context }" from params-init.ly to the end -%% of gregorian-init.ly, then I get "error: parse error, unexpected +%% of gregorian.ly, then I get "error: parse error, unexpected %% TRANSLATOR: \context { \VaticanaStaff }" in -%% gregorian-init.ly. --jr +%% gregorian.ly. --jr \context { \Voice \name "VaticanaVoice" \alias "Voice" - \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana." + \description "Same as @code{Voice} context, except that it is +accommodated for typesetting Gregorian Chant in the notational style +of Editio Vaticana." \remove "Slur_engraver" \remove "Stem_engraver" @@ -705,25 +754,14 @@ AncientRemoveEmptyStaffContext = \context { %% 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 #'edge-height = #'(0 . 0) \override TextSpanner #'padding = #-0.1 - \override TextSpanner #'enclose-bounds = #1 - \override TextSpanner #'edge-text = #'("" . "") } -%% FIXME: need something like -%% \remove "Bar_number_engraver" (which lives on score level) -%% for vaticana and gregorian transcription staves - \context { \Staff \name "VaticanaStaff" @@ -732,7 +770,9 @@ AncientRemoveEmptyStaffContext = \context { \accepts "VaticanaVoice" \defaultchild "VaticanaVoice" - \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana." + \description "Same as @code{Staff} context, except that it is +accommodated for typesetting Gregorian Chant in the notational style +of Editio Vaticana." \remove "Time_signature_engraver" \consists "Custos_engraver" @@ -751,22 +791,24 @@ AncientRemoveEmptyStaffContext = \context { %% Choose vaticana do clef on 3rd line as default. clefGlyph = #"clefs.vaticana.do" middleCPosition = #1 + middleCClefPosition = #1 clefPosition = #1 clefOctavation = #0 %% Select vaticana style font. \override KeySignature #'style = #'vaticana - \override Accidental #'style = #'vaticana + \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 { \Voice \name "GregorianTranscriptionVoice" \alias "Voice" - + %% Removing ligature bracket engraver without replacing it by some %% other ligature engraver would cause a "Junking event: `LigatureEvent'" %% warning for every "\[" and "\]". Therefore, we make the grob @@ -791,10 +833,7 @@ AncientRemoveEmptyStaffContext = \context { %% \override TextSpanner #'dash-fraction = #'() \override TextSpanner #'style = #'line - \override TextSpanner #'edge-height = #'(0 . 0) \override TextSpanner #'padding = #-0.1 - \override TextSpanner #'enclose-bounds = #1 - \override TextSpanner #'edge-text = #'("" . "") } \context { @@ -815,7 +854,8 @@ AncientRemoveEmptyStaffContext = \context { \Voice \name "MensuralVoice" \alias "Voice" - \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting a piece in mensural style." + \description "Same as @code{Voice} context, except that it is +accommodated for typesetting a piece in mensural style." \remove "Slur_engraver" \remove "Ligature_bracket_engraver" @@ -835,7 +875,8 @@ AncientRemoveEmptyStaffContext = \context { \denies "Voice" \defaultchild "MensuralVoice" \accepts "MensuralVoice" - \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting a piece in mensural style." + \description "Same as @code{Staff} context, except that it is +accommodated for typesetting a piece in mensural style." \consists "Custos_engraver" @@ -851,6 +892,7 @@ AncientRemoveEmptyStaffContext = \context { %% Choose petrucci g clef on 2nd line as default. clefGlyph = #"clefs.petrucci.g" + middleCClefPosition = #-6 middleCPosition = #-6 clefPosition = #-2 clefOctavation = #0 @@ -858,10 +900,17 @@ AncientRemoveEmptyStaffContext = \context { %% Select mensural style font. \override TimeSignature #'style = #'mensural \override KeySignature #'style = #'mensural - \override Accidental #'style = #'mensural + \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)) + extraNatural = ##f + autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave -1)) + autoCautionaries = #'() + printKeyCancellation = ##f }