X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=ly%2Fengraver-init.ly;h=7263ce33755eabb647e7b5ff4b1242d87c16f382;hb=3492f90ed5c0a104c0f6cd2c970c447fccd733ea;hp=23a1e1045ed1b388d32ef8860b7ffa9b314478a2;hpb=9e042e662281d7361e6be85068366c8911512c4e;p=lilypond.git diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index 23a1e1045e..7263ce3375 100644 --- a/ly/engraver-init.ly +++ b/ly/engraver-init.ly @@ -1,30 +1,28 @@ -\version "1.9.1" +\version "2.3.16" +\context { + \name Global -% -% setup for Request->Element conversion. Guru-only -% + \accepts Score + \description "Hard coded entry point for LilyPond. Cannot be tuned." + \grobdescriptions #all-grob-descriptions +} -StaffContext=\translator { +\context { \type "Engraver_group_engraver" \name Staff - \description "Handles clefs, bar lines, keys, accidentals. It can contain -@code{Voice} contexts." - \consists "Output_property_engraver" \consists "Bar_engraver" - % Bar_engraver must be first so default bars aren't overwritten +% Bar_engraver must be first so default bars aren't overwritten % with empty ones. + \consists "Font_size_engraver" - -% \consists "Repeat_engraver" + \consists "Volta_engraver" \consists "Separating_line_group_engraver" - SeparatingGroupSpanner \override #'spacing-procedure - = #Separating_group_spanner::set_spacing_rods_and_seqs \consists "Dot_column_engraver" % perhaps move to Voice context? @@ -32,21 +30,22 @@ StaffContext=\translator { \consists "Clef_engraver" \consists "Key_engraver" \consists "Time_signature_engraver" + \consists "Ledger_line_engraver" \consists "Staff_symbol_engraver" \consists "Collision_engraver" \consists "Rest_collision_engraver" \consists "Accidental_engraver" \consists "Piano_pedal_engraver" \consists "Instrument_name_engraver" - \consists "Grob_pq_engraver" - \consists "Forbid_line_break_engraver" - \consistsend "Axis_group_engraver" + \consists "String_number_engraver" + \consists "Axis_group_engraver" - minimumVerticalExtent = #'(-6 . 6) + minimumVerticalExtent = #'(-4 . 4) extraVerticalExtent = ##f verticalExtent = ##f localKeySignature = #'() - + createSpacing = ##t + % explicitly set instrument, so we don't get % weird effects when doing instrument names for % piano staves @@ -55,91 +54,106 @@ StaffContext=\translator { instr = #'() \accepts "Voice" -} - + \description "Handles clefs, bar lines, keys, accidentals. It can contain +@code{Voice} contexts." -StaffContainerContext = \translator { - \type Engraver_group_engraver - \consists "Axis_group_engraver" - minimumVerticalExtent = ##f - extraVerticalExtent = ##f - verticalExtent = ##f - localKeySignature = #'() +} - \accepts Staff - \name StaffContainer +\context { + \Staff + \type "Engraver_group_engraver" + \name DrumStaff + \alias Staff + + \remove "Accidental_engraver" + \remove "Ottava_spanner_engraver" + \remove "Key_engraver" + \remove "Piano_pedal_engraver" + \remove "String_number_engraver" + + \description "Handles typesetting for percussion." + + \denies Voice + \accepts DrumVoice + + clefGlyph = #"clefs-percussion" + clefPosition = #0 + \override Script #'staff-padding = #0.75 } -InnerChoirStaffContext = \translator { - \type "Engraver_group_engraver" - \name InnerChoirStaff - \consists "System_start_delimiter_engraver" - systemStartDelimiter = #'SystemStartBracket - localKeySignature = #'() - \accepts "Staff" - \accepts "RhythmicStaff" - \accepts "GrandStaff" - \accepts "PianoStaff" - \accepts "Lyrics" - \accepts "ChordNames" +\context { + \type "Engraver_group_engraver" + \name InnerChoirStaff + \consists "System_start_delimiter_engraver" + systemStartDelimiter = #'SystemStartBracket + + \accepts "Staff" + \accepts "DrumStaff" + \accepts "RhythmicStaff" + \accepts "GrandStaff" + \accepts "PianoStaff" + \accepts "Lyrics" + \accepts "ChordNames" } -ChoirStaffContext = \translator { - \InnerChoirStaffContext +\context { + \InnerChoirStaff \name ChoirStaff + \accepts "InnerChoirStaff" + \accepts "InnerStaffGroup" \description "Identical to @code{StaffGroup} except that the contained staves are not connected vertically." - \accepts "InnerChoirStaff" - \accepts "InnerStaffGroup" } -RhythmicStaffContext=\translator{ - \type "Engraver_group_engraver" - - \consists "Output_property_engraver" - -\description " +\context{ + \type "Engraver_group_engraver" + + \consists "Output_property_engraver" + + minimumVerticalExtent = ##f + extraVerticalExtent = ##f + verticalExtent = ##f + localKeySignature = #'() + + \consists "Pitch_squash_engraver" + squashedPosition = #0 + \consists "Separating_line_group_engraver" + \name RhythmicStaff + \alias "Staff" + + \override BarLine #'bar-size = #4 + \override VoltaBracket #'minimum-space = #15 + \override VoltaBracket #'padding = #5 + \override StaffSymbol #'line-count = #1 + + \override Stem #'neutral-direction = #1 + \override Beam #'neutral-direction = #1 + % \consists "Repeat_engraver" + \consists "Dot_column_engraver" + \consists "Volta_engraver" + \consists "Bar_engraver" + \consists "Time_signature_engraver" + \consists "Staff_symbol_engraver" + \consists "Ledger_line_engraver" + \consists "Instrument_name_engraver" + \consists "Axis_group_engraver" + \accepts "Voice" + \description " A context like @code{Staff} but for printing rhythms. Pitches are ignored; the notes are printed on one line. " - minimumVerticalExtent = ##f - extraVerticalExtent = ##f - verticalExtent = ##f - localKeySignature = #'() - - \consists "Pitch_squash_engraver" - \consists "Separating_line_group_engraver" - \name RhythmicStaff - \alias "Staff" - - BarLine \override #'bar-size = #4 - VoltaBracket \override #'minimum-space = #15 % urg, in \pt - VoltaBracket \override #'padding = #5 % urg, in \pt - StaffSymbol \override #'line-count = #1 - - Stem \override #'neutral-direction = #1 - Beam \override #'neutral-direction = #1 -% \consists "Repeat_engraver" - \consists "Dot_column_engraver" - \consists "Volta_engraver" - \consists "Bar_engraver" - \consists "Time_signature_engraver" - \consists "Staff_symbol_engraver" - \consists "Instrument_name_engraver" - \consistsend "Axis_group_engraver" - \accepts "Voice" } -VoiceContext = \translator { - \type "Engraver_group_engraver" - \name Voice +\context { + \type "Engraver_group_engraver" + \name Voice -\description " + \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. @@ -147,242 +161,234 @@ VoiceContext = \translator { You have to instantiate this explicitly if you want to have multiple voices on the same staff." - localKeySignature = #'() - \consists "Font_size_engraver" - - % must come before all - \consists "Voice_devnull_engraver" - \consists "Output_property_engraver" - \consists "Arpeggio_engraver" - \consists "Multi_measure_rest_engraver" - \consists "Text_spanner_engraver" - \consists "Grob_pq_engraver" - - \consists "Note_head_line_engraver" - \consists "Glissando_engraver" - \consists "Ligature_bracket_engraver" - \consists "Breathing_sign_engraver" - % \consists "Rest_engraver" - \consists "Stem_engraver" - \consists "Beam_engraver" - \consists "Grace_beam_engraver" - \consists "Auto_beam_engraver" - \consists "New_fingering_engraver" - \consists "Chord_tremolo_engraver" - \consists "Percent_repeat_engraver" - \consists "Slash_repeat_engraver" - \consists "Melisma_engraver" - -%{ - Must come before text_engraver, but after note_column engraver. - -%} - \consists "Text_engraver" - \consists "Dynamic_engraver" - \consists "Fingering_engraver" - - \consists "Script_engraver" - \consists "Script_column_engraver" - \consists "Rhythmic_column_engraver" - \consists "Phrasing_slur_engraver" - \consists "Cluster_spanner_engraver" - \consists "Slur_engraver" - \consists "Tie_engraver" - \consists "Tuplet_engraver" - \consists "A2_engraver" - - \consists "Skip_event_swallow_translator" - \accepts Thread % bug if you leave out this! + localKeySignature = #'() + \consists "Font_size_engraver" + + \consists "Output_property_engraver" + \consists "Arpeggio_engraver" + \consists "Multi_measure_rest_engraver" + \consists "Text_spanner_engraver" + \consists "Trill_spanner_engraver" + \consists "Grob_pq_engraver" + \consists "Forbid_line_break_engraver" + + \consists "Note_head_line_engraver" + \consists "Glissando_engraver" + \consists "Ligature_bracket_engraver" + \consists "Breathing_sign_engraver" + % \consists "Rest_engraver" + \consists "Note_heads_engraver" + \consists "Rest_engraver" + + \consists "Stem_engraver" + \consists "Beam_engraver" + \consists "Grace_beam_engraver" + \consists "Auto_beam_engraver" + \consists "New_fingering_engraver" + \consists "Chord_tremolo_engraver" + \consists "Percent_repeat_engraver" + \consists "Slash_repeat_engraver" + \consists "Melisma_translator" + \consists "Part_combine_engraver" + + \consists "Text_engraver" + \consists "Dynamic_engraver" + \consists "Fingering_engraver" + + \consists "Script_engraver" + \consists "Script_column_engraver" + \consists "Rhythmic_column_engraver" + \consists "Phrasing_slur_engraver" + \consists "Cluster_spanner_engraver" + \consists "Slur_engraver" + \consists "Tie_engraver" + \consists "Tuplet_engraver" + + \consists "Skip_event_swallow_translator" } -ThreadContext = \translator{ - \type Engraver_group_engraver - \name Thread - localKeySignature = #'() -\description " - Handles note heads, and is contained in the Voice context. You - have to instantiate this explicitly if you want to adjust the - style of individual note heads. -" - \consists "Font_size_engraver" - \consists "Thread_devnull_engraver" - \consists "Note_heads_engraver" - \consists "Rest_engraver" +\context { + \Voice + \name DrumVoice + \alias Voice - % why here ? - \consists "Output_property_engraver" -} + \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" + \remove "Glissando_engraver" + \remove "Ligature_bracket_engraver" + \remove "Note_heads_engraver" + \consists "Rest_engraver" + \consists "Drum_notes_engraver" + \remove "New_fingering_engraver" + \remove "Fingering_engraver" -GrandStaffContext=\translator{ - \type "Engraver_group_engraver" - \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. " - - \consists "Span_bar_engraver" - \consists "Span_arpeggio_engraver" - \consists "System_start_delimiter_engraver" - systemStartDelimiter = #'SystemStartBrace + \remove "Cluster_spanner_engraver" + \consists "Tuplet_engraver" - \accepts "Staff" + \consists "Skip_event_swallow_translator" } -PianoStaffContext = \translator{ - \GrandStaffContext - \name "PianoStaff" - \alias "GrandStaff" -\description " - Just like @code{GrandStaff} but with @code{minVerticalAlign} set - equal to @code{maxVerticalAlign} so that interstaff beaming and - slurring can be used." - verticalAlignmentChildCallback = #Align_interface::fixed_distance_alignment_callback - VerticalAlignment \override #'forced-distance = #12 - VerticalAlignment \override #'self-alignment-Y = #0 - - \consists "Vertical_align_engraver" - \consists "Instrument_name_engraver" - - instrument = #'() - instr = #'() - -% \consistsend "Axis_group_engraver" -} +\context{ + \type "Engraver_group_engraver" + \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. " -InnerStaffGroupContext= \translator { - \type "Engraver_group_engraver" - \name InnerStaffGroup - localKeySignature = #'() + \consists "Span_bar_engraver" + \consists "Span_arpeggio_engraver" + \consists "System_start_delimiter_engraver" + systemStartDelimiter = #'SystemStartBrace - \consists "Span_bar_engraver" - \consists "Span_arpeggio_engraver" - \consists "Output_property_engraver" - systemStartDelimiter = #'SystemStartBracket - - \consists "System_start_delimiter_engraver" - \accepts "Staff" - \accepts "RhythmicStaff" - \accepts "GrandStaff" - \accepts "PianoStaff" - \accepts "TabStaff" - \accepts "Lyrics" - \accepts "ChordNames" + \accepts "Staff" } -StaffGroupContext = \translator { - \InnerStaffGroupContext - \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. -" - - \accepts "InnerChoirStaff" - \accepts "ChoirStaff" - \accepts "InnerStaffGroup" - \accepts "FiguredBass" +\context{ + \GrandStaff + \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." + + verticalAlignmentChildCallback = #Align_interface::fixed_distance_alignment_callback + \override VerticalAlignment #'forced-distance = #12 + \override VerticalAlignment #'self-alignment-Y = #0 + + \consists "Vertical_align_engraver" + \consists "Instrument_name_engraver" + + instrument = #'() + instr = #'() } - -% UGH! JUNKME -LyricsVoiceContext= \translator{ - \type "Engraver_group_engraver" - \consistsend "Hara_kiri_engraver" - minimumVerticalExtent = #'(-1.2 . 2.4) - extraVerticalExtent = ##f - verticalExtent = ##f - - \description " - Corresponds to a voice with lyrics. Handles the printing of a - single line of lyrics. -" - - \name LyricsVoice - \consists "Separating_line_group_engraver" - \consists "Lyric_engraver" - \consists "Extender_engraver" - \consists "Hyphen_engraver" - \consists "Stanza_number_engraver" - \consists "Skip_event_swallow_translator" - phrasingPunctuation = #".,:!?\"" - SeparationItem \set #'padding = #0.5 +\context { + \type "Engraver_group_engraver" + \name InnerStaffGroup + + \consists "Span_bar_engraver" + \consists "Span_arpeggio_engraver" + \consists "Output_property_engraver" + systemStartDelimiter = #'SystemStartBracket + + \consists "System_start_delimiter_engraver" + \accepts "Staff" + \accepts "RhythmicStaff" + \accepts "DrumStaff" + \accepts "GrandStaff" + \accepts "PianoStaff" + \accepts "TabStaff" + \accepts "Lyrics" + \accepts "ChordNames" } -NoteNamesContext = \translator { - \type "Engraver_group_engraver" - \name NoteNames - \consistsend "Axis_group_engraver" - minimumVerticalExtent = ##f - extraVerticalExtent = ##f - verticalExtent = ##f - - - \consists "Note_name_engraver" - \consists "Separating_line_group_engraver" +\context { + \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. " + + \accepts "InnerChoirStaff" + \accepts "ChoirStaff" + \accepts "InnerStaffGroup" + \accepts "FiguredBass" } -LyricsContext = \translator { - \type "Engraver_group_engraver" - \name Lyrics - \description "Typesets lyrics." - %% To get folded repeats right. - \consists Vertical_align_engraver - \consistsend "Hara_kiri_engraver" - minimumVerticalExtent = ##f - extraVerticalExtent = ##f - verticalExtent = ##f - - \accepts "LyricsVoice" +\context{ + \type "Engraver_group_engraver" + minimumVerticalExtent = #'(-1.2 . 2.4) + extraVerticalExtent = ##f + verticalExtent = ##f + + \description " Corresponds to a voice with lyrics. Handles the +printing of a single line of lyrics. " + + \name Lyrics + \consists "Separating_line_group_engraver" + \consists "Lyric_engraver" + \consists "Extender_engraver" + \consists "Hyphen_engraver" + \consists "Stanza_number_engraver" + \consists "Vocal_name_engraver" + \consists "Skip_event_swallow_translator" + \consists "Font_size_engraver" + \consists "Hara_kiri_engraver" + \override SeparationItem #'padding = #0.2 } - -ChordNamesContext = \translator { - \type "Engraver_group_engraver" - \name ChordNames -\description " Typesets chord names." - - \consists "Rest_swallow_translator" - \consists "Output_property_engraver" - \consists "Separating_line_group_engraver" - \consists "Chord_name_engraver" - \consists "Skip_event_swallow_translator" - \consistsend "Hara_kiri_engraver" - minimumVerticalExtent = #'(0 . 2.5) - extraVerticalExtent = ##f - verticalExtent = ##f +\context { + \type "Engraver_group_engraver" + \name NoteNames + \consists "Axis_group_engraver" + + minimumVerticalExtent = ##f + extraVerticalExtent = ##f + verticalExtent = ##f + + + \consists "Rest_swallow_translator" + \consists "Skip_event_swallow_translator" + \consists "Tie_engraver" + \consists "Note_name_engraver" + \consists "Separating_line_group_engraver" } +\context { + \type "Engraver_group_engraver" + \name ChordNames + \description "Typesets chord names." + + \consists "Volta_engraver" + + \consists "Rest_swallow_translator" + \consists "Output_property_engraver" + \consists "Separating_line_group_engraver" + \consists "Chord_name_engraver" + \consists "Skip_event_swallow_translator" + \consists "Hara_kiri_engraver" + + voltaOnThisStaff = ##f + minimumVerticalExtent = #'(0 . 2.5) + extraVerticalExtent = ##f + \override SeparatingGroupSpanner #'padding = #0.8 + verticalExtent = ##f +} -RemoveEmptyStaffContext = \translator { - \StaffContext - \remove "Axis_group_engraver" - \consistsend "Hara_kiri_engraver" - \accepts "Voice" - % hara kiri & auto knee don't work together. - Beam \override #'auto-knee-gap = #'() +RemoveEmptyStaffContext= \context { + \Staff + \remove "Axis_group_engraver" + \consists "Hara_kiri_engraver" + \override Beam #'auto-knee-gap = #'() } -RemoveEmptyStaffContext = \translator { - \RemoveEmptyStaffContext - \accepts "VaticanaVoice" - \accepts "GregorianTranscriptionVoice" +AncientRemoveEmptyStaffContext = \context { + %% why not add by default? + + \RemoveEmptyStaffContext + \accepts "VaticanaVoice" + \accepts "GregorianTranscriptionVoice" } -ScoreContext = \translator { - \type Score_engraver - \name Score - localKeySignature = #'() +\context { + \type Score_engraver + \name Score - \description "This is the top level notation context. No + \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 @@ -392,201 +398,244 @@ ScoreContext = \translator { not contained in any other context). It is instantiated automatically when an output definition (a @code{\score} or @code{\paper} block) is processed." + + \consists "Repeat_acknowledge_engraver" + \consists "Staff_collecting_engraver" + + % move the alias along with the engraver. + + \consists "Timing_engraver" + + \consists "Output_property_engraver" + \consists "System_start_delimiter_engraver" + \consists "Mark_engraver" + \consists "Metronome_mark_engraver" + \consists "Break_align_engraver" + \consists "Spacing_engraver" + \consists "Vertical_align_engraver" + \consists "Stanza_number_align_engraver" + \consists "Bar_number_engraver" + \consists "Span_arpeggio_engraver" + + \accepts "Staff" + \accepts "TabStaff" + \accepts "VaticanaStaff" + \accepts "GregorianTranscriptionStaff" + \accepts "StaffGroup" + \accepts "RhythmicStaff" + \accepts "DrumStaff" + \accepts "Lyrics" + \accepts "ChordNames" + \accepts "GrandStaff" + \accepts "ChoirStaff" + \accepts "PianoStaff" + \accepts "Devnull" + \accepts "NoteNames" + \accepts "FiguredBass" + + soloText = #"Solo" + soloIIText = #"Solo II" + aDueText = #"a2" + printPartCombineTexts = ##t + systemStartDelimiter =#'SystemStartBar + + drumStyleTable = #drums-style + + melismaBusyProperties = #default-melisma-properties + + clefGlyph = #"clefs-G" + clefPosition = #-2 + middleCPosition = #-6 + + defaultBarType = #"|" + barNumberVisibility = #default-bar-number-visibility + automaticBars = ##t + + explicitClefVisibility = #all-visible + explicitKeySignatureVisibility = #all-visible + autoBeamSettings = #default-auto-beam-settings + autoBeaming = ##t + scriptDefinitions = #default-script-alist + + verticalAlignmentChildCallback = #Align_interface::alignment_callback + + pedalSustainStrings = #'("Ped." "*Ped." "*") + pedalSustainStyle = #'text + pedalUnaCordaStrings = #'("una corda" "" "tre corde") + pedalUnaCordaStyle = #'text + + %% These are in ordinary italic font, including the *, + %% but they are unlikely to be used, + %% as the default pedal-style for SostenutoPedal is 'mixed': + %% i.e. Sost. Ped_____________________ + pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*") + pedalSostenutoStyle = #'mixed + + + harmonicAccidentals = ##t + fingeringOrientations = #'(up down) + tupletNumberFormatFunction = #denominator-tuplet-formatter + markFormatter = #format-mark-letters + rehearsalMark = #1 + subdivideBeams = ##f + allowBeamBreak = ##f + extraNatural = ##t + autoAccidentals = #'(Staff (same-octave . 0)) + autoCautionaries = #'() + + printKeyCancellation = ##t + keyAccidentalOrder = #`( + (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) + ) + + %{ + + this order is more complex, see wansek p254 and further. + + for instance, order of clef and :|: depends on function of the clef + + (clef of start-repeat) :|: (change-clef) + + is the proper order. + + %} + + barCheckSynchronize = ##f + + %% chord names: + chordNameFunction = #ignatzek-chord-names + majorSevenSymbol = #whiteTriangleMarkup + chordNameSeparator = #(make-simple-markup "/") + chordNameExceptions = #ignatzekExceptions + chordNoteNamer = #'() + chordRootNamer = #note-name->markup + chordNameExceptionsFull = #fullJazzExceptions + chordNameExceptionsPartial = #partialJazzExceptions + + + bassStaffProperties = #'((assign clefGlyph "clefs-F") + (assign clefPosition 2) + (assign middleCPosition 6)) + %% tablature: + 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 + stringTunings = #guitar-tunings + tablatureFormat = #fret-number-tablature-format + + %% + bassFigureFormatFunction = #format-bass-figure + metronomeMarkFormatter = #format-metronome-markup + graceSettings = #`#( + (Voice Stem direction 1) + ;; TODO: should take from existing definition. + ;; c&p from define-grobs.scm - \consists "Repeat_acknowledge_engraver" - \consists "Staff_collecting_engraver" - - % move the alias along with the engraver. - - %% TODO? add this alias from Timing_engraver::initialize() ? - \consists "Timing_engraver" - \alias "Timing" - - \consists "Output_property_engraver" - \consists "System_start_delimiter_engraver" - \consists "Mark_engraver" - \consists "Metronome_mark_engraver" - \consists "Break_align_engraver" - \consists "Spacing_engraver" - \consists "Vertical_align_engraver" - \consists "Lyric_phrasing_engraver" - \consists "Bar_number_engraver" - \consists "Span_arpeggio_engraver" - - \accepts "Staff" - \accepts "TabStaff" - \accepts "VaticanaStaff" - \accepts "GregorianTranscriptionStaff" - \accepts "StaffContainer" - \accepts "StaffGroup" - \accepts "RhythmicStaff" - \accepts "Lyrics" - \accepts "ChordNames" - \accepts "GrandStaff" - \accepts "ChoirStaff" - \accepts "PianoStaff" - \accepts "NoteNames" - \accepts "FiguredBass" - - soloText = #"Solo" - soloIIText = #"Solo II" - aDueText = #"a2" - soloADue = ##t - splitInterval = #'(0 . 1) - changeMoment = #`(,(ly:make-moment 0 0) . ,(ly:make-moment 1 512)) - systemStartDelimiter =#'SystemStartBar - - - clefGlyph = #"clefs-G" - clefPosition = #-2 - centralCPosition = #-6 - - automaticPhrasing = ##t - automaticMelismata = ##t - - defaultBarType = #"|" - barNumberVisibility = #default-bar-number-visibility - automaticBars = ##t - - explicitClefVisibility = #all-visible - explicitKeySignatureVisibility = #all-visible - autoBeamSettings = #default-auto-beam-settings - autoBeaming = ##t - scriptDefinitions = #default-script-alist - - verticalAlignmentChildCallback = #Align_interface::alignment_callback - - pedalSustainStrings = #'("Ped." "*Ped." "*") - pedalSustainStyle = #'text - pedalUnaCordaStrings = #'("una corda" "" "tre corde") - pedalUnaCordaStyle = #'text - - %% These are in ordinary italic font, including the *, - %% but they are unlikely to be used, - %% as the default pedal-style for SostenutoPedal is 'mixed': - %% i.e. Sost. Ped_____________________ - pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*") - pedalSostenutoStyle = #'mixed - - - tupletNumberFormatFunction = #denominator-tuplet-formatter - - subdivideBeams = ##f - allowBeamBreak = ##f - extraNatural = ##t - autoAccidentals = #'(Staff (same-octave . 0)) - autoCautionaries = #'() - - keyAccidentalOrder = #'( - (6 . -1) (2 . -1) (5 . -1 ) (1 . -1) (4 . -1) (0 . -1) (3 . -1) - (3 . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1) - (6 . -2) (2 . -2) (5 . -2 ) (1 . -2) (4 . -2) (0 . -2) (3 . -2) - (3 . 2) (0 . 2) (4 . 2) (2 . 2) (5 . 2) (2 . 2) (6 . 2) - ) - breakAlignOrder = #'( - instrument-name - left-edge - ambitus - breathing-sign - clef - staff-bar - key-signature - time-signature - custos - ) - barCheckSynchronize = ##t - - %% chord names: - chordNameFunction = #ignatzek-chord-names - majorSevenSymbol = #whiteTriangleMarkup - chordNameSeparator = #(make-simple-markup "/") - chordNameExceptions = #ignatzekExceptions - chordNoteNamer = #'() - chordRootNamer = #note-name->markup - - chordNameExceptionsFull = #fullJazzExceptions - chordNameExceptionsPartial = #partialJazzExceptions - - %% tablature: - 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 - stringTunings = #guitar-tunings - tablatureFormat = #fret-number-tablature-format - - %% - bassFigureFormatFunction = #make-bass-figure-markup - metronomeMarkFormatter = #make-metronome-markup - - \grobdescriptions #all-grob-descriptions -} - -OrchestralScoreContext= \translator { - \ScoreContext + (Voice Stem lengths ,(map (lambda (x) (* 0.8 x)) '(3.5 3.5 3.5 4.5 5.0))) + (Voice Stem stem-shorten (0.4 0.4)) + (Voice Stem font-size -3) + (Voice NoteHead font-size -3) + (Voice Dots font-size -3) + (Voice Stem beamed-lengths + ,(map (lambda (x) (* 0.8 x)) '(3.3 3.3 4.0))) + (Voice Stem beamed-minimum-free-lengths + ,(map (lambda (x) (* 0.8 x)) '(2.5 2.0 1.5))) + (Voice Stem beamed-extreme-minimum-free-lengths + ,(map (lambda (x) (* 0.8 x)) '(1.83 1.5))) + + (Voice Stem no-stem-extend #t) + (Voice Beam thickness 0.384) + (Voice Beam space-function ,(lambda (beam mult) + (* 0.8 (Beam::space_function + beam mult)))) + (Voice Accidental font-size -4) + (Voice Slur direction -1) + ) + + quotedEventTypes = #'(note-event rest-event) } -EasyNotation = \translator { - \ScoreContext - NoteHead \override #'molecule-callback = #Note_head::brew_ez_molecule +EasyNotation = \context { % TODO: why \context override? + \Score + \override NoteHead #'print-function = #Note_head::brew_ez_stencil + \override NoteHead #'Y-extent-callback = #'() + \override NoteHead #'X-extent-callback = #'() } -FiguredBassContext = \translator { +\context { \type "Engraver_group_engraver" \name FiguredBass \consists "Figured_bass_engraver" \consists "Rest_swallow_translator" \consists "Note_swallow_translator" + \consists "Skip_event_swallow_translator" \consists "Separating_line_group_engraver" - \consistsend "Hara_kiri_engraver" + \consists "Hara_kiri_engraver" } -TabVoiceContext = \translator { - \VoiceContext +\context { + \name "Devnull" + \type "Engraver_group_engraver" + + %% don't want to route anything out of here: + \alias "Staff" + \alias "Voice" + \consists "Swallow_engraver" + \description "Silently discards all musical information given to this context. " + } + +\context { + \Voice \name "TabVoice" - \denies "Thread" \consists "Tab_note_heads_engraver" + \remove "Note_heads_engraver" \remove "Fingering_engraver" \remove "New_fingering_engraver" - - Slur \override #'font-family = #'roman - Slur \override #'molecule-callback = #hammer-molecule-callback - Slur \override #'direction = #-1 + + \description "Context for drawing notes in a Tab staff. " + \override Slur #'font-family = #'roman + \override Slur #'print-function = #hammer-print-function + \override Slur #'direction = #-1 % Draws all stems/beams out of the staff (and not in the middle of the staff !) % This feature is now disabled because most of the tab does not use it. - %Beam \override #'damping = #100000 - %Stem \override #'up-to-staff = ##t + %\override Beam #'damping = #100000 + %\override Stem #'up-to-staff = ##t % No accidental in tablature ! \remove Accidental_engraver } -TabStaffContext = \translator { - \StaffContext +\context { + \Staff \alias "Staff" \name "TabStaff" \denies "Voice" - - \description "Context for generating tablature. [DOCME]" + \remove "Staff_symbol_engraver" + \consists "Tab_staff_symbol_engraver" + \description "Context for generating tablature. [DOCME]" + \accepts "TabVoice" % 6 strings - StaffSymbol \override #'line-count = #6 - StaffSymbol \override #'staff-space = #1.5 + \override StaffSymbol #'staff-space = #1.5 % Don't draw stems over the tablature figures ! - Stem \override #'avoid-note-head = ##t + \override Stem #'avoid-note-head = ##t % No accidental in tablature ! - \remove Accidental_engraver - \remove Key_engraver - + \remove "Accidental_engraver" + \remove "Key_engraver" + \remove "String_number_engraver" % Special "TAB" clef clefGlyph = #"clefs-tab" clefPosition = #0 @@ -596,61 +645,43 @@ TabStaffContext = \translator { % but this does not work (is this a bug or intended behaviour?): % % If I try to do so, I get "error: unknown escaped string: -% `\VaticanaStaffContext'" in params-init.ly. If I also move -% "\translator { \Vaticana*Context }" from params-init.ly to the end +% `\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 -% TRANSLATOR: \translator { \VaticanaStaffContext }" in +% TRANSLATOR: \context { \VaticanaStaff }" in % gregorian-init.ly. --jr -VaticanaVoiceContext = \translator { - \VoiceContext +\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." - % We can not remove Slur_engraver, since \addlyrics depends on it. - % Instead, we make the grob transparent. - % Unfortunately, this gives us a lot of warnings ("Degenerate bow: - % infinite steepness reqd"), since in ligatures, all note heads are in - % the same paper column such that the (transparent) slurs eventually may - % start and end in the same column. - Slur \override #'transparent = ##t - - % We can not remove Stem_engraver, since slurs depend on stems. If - % we try anyway, lily will crash in slur.scm:16:6: "Wrong type argument - % in position 1 (expecting grob): ()". - % As a workaround, we make the grob transparent. - Stem \set #'transparent = ##t - - % Since we do not remove stems, but only make it transparent, we have - % to set the length to 0.0. Otherwise, articulation marks (such as - % ictus, circulus or accentus) may be vertically placed quite away from - % the note head. - Stem \set #'length = #'0.0 - + \remove "Slur_engraver" + \remove "Stem_engraver" \remove "Ligature_bracket_engraver" \consists "Vaticana_ligature_engraver" % Set default head for notes outside of \[ \]. - NoteHead \set #'style = #'vaticana_punctum + \override NoteHead #'style = #'vaticana-punctum % Put some space before and after divisiones. % FIXME: This does not seem to show any effect. - Script \set #'padding = #0.5 + \override Script #'padding = #0.5 % There are no beams in Gregorian Chant notation. - autobeaming = ##f + autoBeaming = ##f % Prepare TextSpanner for \episem{Initium|Finis} use. - TextSpanner \set #'style = #'line - TextSpanner \set #'edge-height = #'(0 . 0) - TextSpanner \set #'padding = #0.5 - TextSpanner \set #'enclose-bounds = ##t - TextSpanner \set #'edge-text = #'("" . "") + \override TextSpanner #'style = #'line + \override TextSpanner #'edge-height = #'(0 . 0) + \override TextSpanner #'padding = #0.5 + \override TextSpanner #'enclose-bounds = #1 + \override TextSpanner #'edge-text = #'("" . "") } -VaticanaStaffContext = \translator { - \StaffContext +\context { + \Staff \name "VaticanaStaff" \alias "Staff" \denies "Voice" @@ -663,33 +694,33 @@ VaticanaStaffContext = \translator { % 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. - BarLine \set #'transparent = ##t + \override BarLine #'transparent = ##t - StaffSymbol \set #'line-count = #4 + \override StaffSymbol #'line-count = #4 + \override StaffSymbol #'thickness = #0.6 % FIXME: unit on StaffSymbol's width should be \linewidth. - % StaffSymbol \set #'width = #60.0 + % \override StaffSymbol #'width = #60.0 % Choose vaticana do clef on 3rd line as default. - clefGlyph = #"clefs-vaticana_do" - centralCPosition = #1 + clefGlyph = #"clefs-vaticana-do" + middleCPosition = #1 clefPosition = #1 clefOctavation = #0 % Select vaticana style font. - KeySignature \set #'style = #'vaticana - Accidental \set #'style = #'vaticana - Custos \set #'style = #'vaticana - Custos \set #'neutral-position = #3 - Custos \set #'neutral-direction = #-1 - Custos \set #'adjust-if-on-staffline = ##t + \override KeySignature #'style = #'vaticana + \override Accidental #'style = #'vaticana + \override Custos #'style = #'vaticana + \override Custos #'neutral-position = #3 + \override Custos #'neutral-direction = #-1 % Score.timing = ##f % Score.barAlways = ##t } -GregorianTranscriptionVoiceContext = \translator { - \VoiceContext +\context { + \Voice \name "GregorianTranscriptionVoice" \alias "Voice" @@ -697,45 +728,24 @@ GregorianTranscriptionVoiceContext = \translator { % other ligature engraver would cause a "Junking event: `LigatureEvent'" % warning for every "\[" and "\]". Therefore, we make the grob % transparent instead. - LigatureBracket \set #'transparent = ##t - - % We can not remove Slur_engraver, since \addlyrics depends on it. - % Instead, we make the grob transparent. - % Unfortunately, this gives us a lot of warnings ("Degenerate bow: - % infinite steepness reqd"), since in ligatures, all note heads are in - % the same paper column such that the (transparent) slurs eventually may - % start and end in the same column. - Slur \override #'transparent = ##t - - % We can not remove Stem_engraver, since slurs depend on stems. If - % we try anyway, lily will crash in slur.scm:16:6: "Wrong type argument - % in position 1 (expecting grob): ()". - % As a workaround, we make the grob transparent. - Stem \set #'transparent = ##t - - % Since we do not remove stems, but only make it transparent, we have - % to set the length to 0.0. Otherwise, articulation marks (such as - % ictus, circulus or accentus) may be vertically placed quite away from - % the note head. - Stem \set #'length = #'0.0 + \override LigatureBracket #'transparent = ##t % Put some space before and after divisiones. % FIXME: This does not seem to show any effect. - Script \set #'padding = #0.5 + \override Script #'padding = #0.5 % There are no beams in Gregorian Chant notation. - autobeaming = ##f + autoBeaming = ##f % Prepare TextSpanner for \episem{Initium|Finis} use. - TextSpanner \set #'style = #'line - TextSpanner \set #'edge-height = #'(0 . 0) - TextSpanner \set #'padding = #0.5 - TextSpanner \set #'enclose-bounds = ##t - TextSpanner \set #'edge-text = #'("" . "") + \override TextSpanner #'style = #'line + \override TextSpanner #'edge-height = #'(0 . 0) + \override TextSpanner #'padding = #0.5 + \override TextSpanner #'enclose-bounds = #1 + \override TextSpanner #'edge-text = #'("" . "") } - -GregorianTranscriptionStaffContext = \translator { - \StaffContext + \context { + \Staff \name "GregorianTranscriptionStaff" \alias "Staff" \denies "Voice" @@ -744,5 +754,5 @@ GregorianTranscriptionStaffContext = \translator { % 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. - BarLine \set #'transparent = ##t + \override BarLine #'transparent = ##t }