From bf8440d934cf7d31ea4649710a43fa720b7ef696 Mon Sep 17 00:00:00 2001 From: Thomas Morley Date: Sun, 8 Feb 2015 18:40:10 +0100 Subject: [PATCH] Clean up inconsistencies in engraver-init.ly and performer-init.ly issue 4281 In performer-init.ly - let context-defs be copied when possible - add missing contexts for \accepts and \alias - delete settings for ChordNameVoice - add GregorianTranscriptionStaff, GregorianTranscriptionVoice, NoteNames, PetrucciStaff, PetrucciVoice - all contexts are written without quotation marks - accepted contexts are ordered alphabetically In engraver-init.ly - add FretBoards to the accepted contexts in StaffGroup - add NullVoice to the accepted contexts in RhythmicStaff - all contexts are written with quotation marks - accepted contexts are ordered alphabetically --- ly/engraver-init.ly | 227 ++++++++++++++++++++++--------------------- ly/performer-init.ly | 168 +++++++++++++++++++------------- 2 files changed, 215 insertions(+), 180 deletions(-) diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index 5532b288ca..12a5fcf2ed 100644 --- a/ly/engraver-init.ly +++ b/ly/engraver-init.ly @@ -65,7 +65,7 @@ \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" @@ -97,9 +97,9 @@ shortInstrumentName = #'() \defaultchild "Voice" - \accepts "Voice" \accepts "CueVoice" \accepts "NullVoice" + \accepts "Voice" \description "Handles clefs, bar lines, keys, accidentals. It can contain @code{Voice} contexts." @@ -144,15 +144,15 @@ vocalName = #'() shortVocalName = #'() - \accepts "Staff" + \accepts "ChoirStaff" + \accepts "ChordNames" \accepts "DrumStaff" - \accepts "RhythmicStaff" + \accepts "FiguredBass" \accepts "GrandStaff" - \accepts "PianoStaff" \accepts "Lyrics" - \accepts "ChordNames" - \accepts "FiguredBass" - \accepts "ChoirStaff" + \accepts "PianoStaff" + \accepts "RhythmicStaff" + \accepts "Staff" \accepts "StaffGroup" \defaultchild "Staff" \description "Identical to @code{StaffGroup} except that the @@ -166,7 +166,7 @@ contained staves are not connected vertically." createSpacing = ##t squashedPosition = #0 - \name RhythmicStaff + \name "RhythmicStaff" \alias "Staff" \override VoltaBracket.staff-padding = #3 @@ -191,8 +191,9 @@ contained staves are not connected vertically." instrumentName = #'() shortInstrumentName = #'() - \accepts "Voice" \accepts "CueVoice" + \accepts "NullVoice" + \accepts "Voice" \defaultchild "Voice" \description "A context like @code{Staff} but for printing rhythms. @@ -273,8 +274,8 @@ multiple voices on the same staff." \context{ \Voice - \name CueVoice - \alias Voice + \name "CueVoice" + \alias "Voice" fontSize = #-4 \override Stem.length-fraction = #(magstep -4) \override Beam.length-fraction = #(magstep -4) @@ -283,8 +284,8 @@ multiple voices on the same staff." \context { \Voice - \name DrumVoice - \alias Voice + \name "DrumVoice" + \alias "Voice" \description "A voice on a percussion staff." \remove "Arpeggio_engraver" @@ -304,7 +305,7 @@ multiple voices on the same staff." \context{ \type "Engraver_group" - \name GrandStaff + \name "GrandStaff" localAlterations = #'() \description "A group of staves, with a brace on the left @@ -313,8 +314,8 @@ contained staves are connected vertically." \consists "Instrument_name_engraver" \consists "Span_bar_engraver" -% The default for DynamicText.extra-spacing-width causes dynamics to -% be placed across span bars, so switch it off: + %% The default for DynamicText.extra-spacing-width causes dynamics to + %% be placed across span bars, so switch it off: \override DynamicText.extra-spacing-width = ##f \consists "Span_bar_stub_engraver" \consists "Span_arpeggio_engraver" @@ -327,14 +328,14 @@ contained staves are connected vertically." shortInstrumentName = #'() \defaultchild "Staff" - \accepts "Staff" - \accepts "RhythmicStaff" + \accepts "ChordNames" \accepts "DrumStaff" - \accepts "TabStaff" - \accepts "Lyrics" - \accepts "FiguredBass" \accepts "Dynamics" - \accepts "ChordNames" + \accepts "FiguredBass" + \accepts "Lyrics" + \accepts "RhythmicStaff" + \accepts "Staff" + \accepts "TabStaff" } \context{ @@ -362,8 +363,8 @@ together, never separately." \consists "Instrument_name_engraver" \consists "Span_bar_engraver" -% The default for DynamicText.extra-spacing-width causes dynamics to -% be placed across span bars, so switch it off: + %% The default for DynamicText.extra-spacing-width causes dynamics to + %% be placed across span bars, so switch it off: \override DynamicText.extra-spacing-width = ##f \consists "Span_bar_stub_engraver" \consists "Span_arpeggio_engraver" @@ -376,17 +377,18 @@ together, never separately." \consists "System_start_delimiter_engraver" \defaultchild "Staff" - \accepts "Staff" - \accepts "RhythmicStaff" + \accepts "ChoirStaff" + \accepts "ChordNames" \accepts "DrumStaff" + \accepts "FiguredBass" + \accepts "FretBoards" \accepts "GrandStaff" - \accepts "PianoStaff" - \accepts "TabStaff" \accepts "Lyrics" - \accepts "ChordNames" - \accepts "FiguredBass" - \accepts "ChoirStaff" + \accepts "PianoStaff" + \accepts "RhythmicStaff" + \accepts "Staff" \accepts "StaffGroup" + \accepts "TabStaff" \description "Groups staves while adding a bracket on the left side, grouping the staves together. The bar lines of the contained @@ -396,8 +398,8 @@ a collection of staves, with a bracket in front and spanning bar lines." \context { \type "Engraver_group" - \name Dynamics - \alias Voice + \name "Dynamics" + \alias "Voice" \consists "Output_property_engraver" \consists "Bar_engraver" \consists "Piano_pedal_engraver" @@ -472,7 +474,7 @@ printing of a single line of lyrics." \context { \type "Engraver_group" - \name NoteNames + \name "NoteNames" \description "A context for printing the names of notes." \consists "Axis_group_engraver" @@ -495,14 +497,14 @@ printing of a single line of lyrics." \context { \type "Engraver_group" - \name ChordNames + \name "ChordNames" \description "Typesets chord names." \consists "Output_property_engraver" \consists "Separating_line_group_engraver" \consists "Chord_name_engraver" \consists "Axis_group_engraver" -% \consists "Note_spacing_engraver" + %\consists "Note_spacing_engraver" \override VerticalAxisGroup.remove-first = ##t \override VerticalAxisGroup.remove-empty = ##t @@ -539,7 +541,7 @@ automatically when an output definition (a @code{\\score} or %% Timing variables in layout definitions before any %% Timing_translator has been run. - % timing translator must come BEFORE bar number engraver + %% timing translator must come BEFORE bar number engraver \consists "Timing_translator" \consists "Default_bar_line_engraver" \consists "Output_property_engraver" @@ -561,26 +563,26 @@ automatically when an output definition (a @code{\\score} or \defaultchild "Staff" + \accepts "ChoirStaff" + \accepts "ChordNames" + \accepts "Devnull" + \accepts "DrumStaff" + \accepts "FiguredBass" \accepts "FretBoards" - \accepts "Staff" - \accepts "RhythmicStaff" - \accepts "TabStaff" - \accepts "VaticanaStaff" + \accepts "GrandStaff" \accepts "GregorianTranscriptionStaff" - \accepts "MensuralStaff" - \accepts "PetrucciStaff" - \accepts "StaffGroup" - \accepts "DrumStaff" \accepts "KievanStaff" \accepts "Lyrics" - \accepts "ChordNames" - \accepts "GrandStaff" - \accepts "ChoirStaff" - \accepts "PianoStaff" - \accepts "Devnull" - \accepts "NullVoice" + \accepts "MensuralStaff" \accepts "NoteNames" - \accepts "FiguredBass" + \accepts "NullVoice" + \accepts "PetrucciStaff" + \accepts "PianoStaff" + \accepts "RhythmicStaff" + \accepts "Staff" + \accepts "StaffGroup" + \accepts "TabStaff" + \accepts "VaticanaStaff" noteToFretFunction = #determine-frets predefinedDiagramTable = ##f @@ -623,9 +625,9 @@ automatically when an output definition (a @code{\\score} or repeatCountVisibility = #all-repeat-counts-visible -%% Other Timing variables are derived and set by the Timing_translator -%% at initialization time by calling the functions in -%% scm/time-signature-settings.scm + %% 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 @@ -644,10 +646,10 @@ automatically when an output definition (a @code{\\score} or 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_____________________ + %% 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 @@ -674,7 +676,7 @@ automatically when an output definition (a @code{\\score} or barCheckSynchronize = ##f -%% chord names: + %% chord names: chordNameFunction = #ignatzek-chord-names minorChordModifier = #(make-simple-markup "m") additionalPitchPrefix = #"" % was "add" @@ -694,12 +696,12 @@ automatically when an output definition (a @code{\\score} or (assign clefPosition 2) (assign middleCPosition 6) (assign middleCClefPosition 6)) -%% tablature: + %% tablature: stringOneTopmost = ##t highStringOne = ##t -%% One may change the string tunings as follows : -%% The length of the list must be equal to the number of strings + %% One may change the string tunings as follows : + %% The length of the list must be equal to the number of strings stringTunings = #guitar-tuning tablatureFormat = #fret-number-tablature-format tabStaffLineLayoutFunction = #tablature-position-on-lines @@ -726,7 +728,7 @@ automatically when an output definition (a @code{\\score} or ;; need this, as stanza numbers are items, and appear only once. stanza-number-interface ) - % \quoteDuring is supposed to quote everything, cueDuring only the essentials + %% \quoteDuring is supposed to quote everything, cueDuring only the essentials quotedEventTypes = #'(StreamEvent) quotedCueEventTypes = #'( note-event @@ -764,7 +766,7 @@ automatically when an output definition (a @code{\\score} or \name "Devnull" \type "Engraver_group" -%% don't want to route anything out of here: + %% don't want to route anything out of here: \alias "Staff" \alias "Voice" \description "Silently discards all musical information given to this @@ -780,20 +782,20 @@ context." \alias "Staff" \alias "Voice" - % provide non-printing NoteHeads with proper extents for lyric alignment + %% provide non-printing NoteHeads with proper extents for lyric alignment \consists "Note_heads_engraver" \omit NoteHead \override NoteHead.X-extent = #(lambda (g) (ly:stencil-extent (ly:note-head::print g) X)) - % generate no accidentals + %% generate no accidentals nullAccidentals = ##t %% keep noteheads inside the staff \consists "Pitch_squash_engraver" squashedPosition = 0 - % the engravers that control the 'busy' flags for note-onsets and melismata + %% the engravers that control the 'busy' flags for note-onsets and melismata \consists "Grob_pq_engraver" \consists "Tie_engraver" \omit Tie @@ -1014,7 +1016,6 @@ of Editio Vaticana." %% There are no beams in Gregorian Chant notation. autoBeaming = ##f - } \context { @@ -1110,7 +1111,7 @@ accommodated for typesetting a piece in Petrucci style." \override NoteHead.style = #'petrucci \override Rest.style = #'mensural - % Thickens and shortens stems. + %% Thickens and shortens stems. \override Stem.thickness = #1.7 \override Stem.length = #5 @@ -1152,58 +1153,58 @@ accommodated for typesetting a piece in Petrucci style." } \context { - \Voice - \name "KievanVoice" - \alias "Voice" - \description "Same as @code{Voice} context, except that it is + \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 + %% 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 + \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 + \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 } diff --git a/ly/performer-init.ly b/ly/performer-init.ly index 645c8ee45a..0942116dce 100644 --- a/ly/performer-init.ly +++ b/ly/performer-init.ly @@ -16,7 +16,7 @@ %%%% You should have received a copy of the GNU General Public License %%%% along with LilyPond. If not, see . -\version "2.17.14" +\version "2.19.16" %% %% setup for Request->Element conversion. @@ -24,9 +24,9 @@ \context { \type "Performer_group" \name Staff - \accepts Voice \accepts CueVoice \accepts NullVoice + \accepts Voice \defaultchild Voice \consists "Staff_performer" @@ -42,45 +42,56 @@ } \context { - \type "Performer_group" + \Staff \name KievanStaff + \alias Staff \denies Voice \accepts KievanVoice \defaultchild KievanVoice - \alias Staff - \consists "Staff_performer" - \consists "Key_performer" - \consists "Midi_control_function_performer" } \context { - \type "Performer_group" + \Staff \name VaticanaStaff \alias Staff \denies Voice \accepts VaticanaVoice \defaultchild VaticanaVoice - \consists "Staff_performer" - \consists "Key_performer" - \consists "Midi_control_function_performer" } \context { - \type "Performer_group" + \Staff \name MensuralStaff + \alias Staff \denies Voice \accepts MensuralVoice \defaultchild MensuralVoice +} + +\context { + \Staff + \name PetrucciStaff \alias Staff - \consists "Staff_performer" - \consists "Key_performer" - \consists "Midi_control_function_performer" + \denies Voice + \accepts PetrucciVoice + \defaultchild PetrucciVoice +} + +\context { + \Staff + \name GregorianTranscriptionStaff + \alias Staff + \denies Voice + \accepts GregorianTranscriptionVoice + \defaultchild GregorianTranscriptionVoice } \context { \Staff \name DrumStaff + \alias Staff midiInstrument = #"drums" + \denies Voice \accepts DrumVoice \defaultchild DrumVoice } @@ -103,46 +114,46 @@ } \context { - \type "Performer_group" + \Voice \name VaticanaVoice \alias Voice - \consists "Dynamic_performer" - \consists "Tie_performer" - \consists "Note_performer" - \consists "Beam_performer" - autoBeaming = ##f % needed for consistent melismata with engravers - \consists "Slur_performer" + autoBeaming = ##f % needed for consistent melismata with engravers" } \context { - \type "Performer_group" + \Voice \name KievanVoice \alias Voice - \consists "Dynamic_performer" - \consists "Tie_performer" - \consists "Note_performer" - \consists "Beam_performer" - autoBeaming = ##f % needed for consistent melismata with engravers - \consists "Slur_performer" + autoBeaming = ##f % needed for consistent melismata with engravers" } \context { - \type "Performer_group" + \Voice \name MensuralVoice \alias Voice - \consists "Dynamic_performer" - \consists "Tie_performer" - \consists "Note_performer" - \consists "Beam_performer" autoBeaming = ##f % needed for consistent melismata with engravers - \consists "Slur_performer" } \context { \Voice + \name PetrucciVoice + \alias Voice + autoBeaming = ##f % needed for consistent melismata with engravers +} + +\context { + \Voice + \name GregorianTranscriptionVoice + \alias Voice + autoBeaming = ##f % needed for consistent melismata with engravers +} + +\context { + \Voice + \name DrumVoice + \alias Voice \remove "Note_performer" \consists "Drum_note_performer" - \name DrumVoice } \context { @@ -153,33 +164,40 @@ \context { \type "Performer_group" \name FretBoards + \alias Staff } \context { \type "Performer_group" \name GrandStaff + \accepts ChordNames + \accepts DrumStaff + \accepts Dynamics + \accepts FiguredBass + \accepts Lyrics \accepts RhythmicStaff \accepts Staff - \accepts Dynamics + \accepts TabStaff \defaultchild Staff } \context { - \type "Performer_group" - \name "PianoStaff" - \accepts Staff - \accepts DrumStaff - \defaultchild Staff + \GrandStaff + \name PianoStaff + \alias GrandStaff } \context { \Voice \name TabVoice + \alias Voice } \context { \type "Performer_group" - \name "Devnull" + \name Devnull + \alias Voice + \alias Staff } \context { @@ -198,6 +216,7 @@ \name TabStaff midiInstrument = #"acoustic guitar (nylon)" \alias Staff + \denies Voice \accepts TabVoice \defaultchild TabVoice autoBeaming = ##f % needed for consistent melismata with engravers @@ -215,23 +234,26 @@ %% quarter = 60 tempoWholesPerMinute = #(ly:make-moment 15/1) - \accepts Staff + \accepts ChoirStaff + \accepts ChordNames + \accepts Devnull \accepts DrumStaff + \accepts FiguredBass \accepts GrandStaff - \accepts PianoStaff - \accepts TabStaff - \accepts StaffGroup - \accepts Devnull + \accepts GregorianTranscriptionStaff + \accepts KievanStaff + \accepts Lyrics + \accepts MensuralStaff + \accepts NoteNames \accepts NullVoice - \accepts ChoirStaff + \accepts PetrucciStaff + \accepts PianoStaff \accepts RhythmicStaff - \accepts ChordNames - \accepts FiguredBass \accepts FretBoards - \accepts Lyrics + \accepts Staff + \accepts StaffGroup + \accepts TabStaff \accepts VaticanaStaff - \accepts KievanStaff - \accepts MensuralStaff \consists "Time_signature_performer" \consists "Control_track_performer" @@ -275,47 +297,59 @@ \context{ \type "Performer_group" \name ChoirStaff - \accepts Staff + \accepts ChoirStaff + \accepts ChordNames + \accepts FiguredBass \accepts DrumStaff + \accepts GrandStaff + \accepts Lyrics + \accepts PianoStaff + \accepts RhythmicStaff + \accepts Staff + \accepts StaffGroup \defaultchild Staff } \context { \type "Performer_group" \consists "Staff_performer" - \accepts ChordNameVoice - \defaultchild ChordNameVoice - \name ChordNames + \name NoteNames } \context { - \Voice - \name ChordNameVoice + \type "Performer_group" + \consists "Staff_performer" + \name ChordNames } \context { \type "Performer_group" \name StaffGroup - \accepts Staff - \accepts DrumStaff - \accepts TabStaff - \accepts RhythmicStaff - \accepts GrandStaff - \accepts PianoStaff - \accepts Lyrics + \accepts ChoirStaff \accepts ChordNames + \accepts DrumStaff \accepts FiguredBass \accepts FretBoards + \accepts GrandStaff + \accepts Lyrics + \accepts PianoStaff + \accepts RhythmicStaff + \accepts Staff + \accepts StaffGroup + \accepts TabStaff \defaultchild Staff } \context { \Staff \name RhythmicStaff + \alias Staff + \defaultchild Voice } \context { \type "Performer_group" \name Dynamics + \alias Voice \consists "Piano_pedal_performer" } -- 2.39.2