X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ly%2Fengraver.ly;h=d3fa0948e5c1721a0ac97eeec9763fcb4e582fad;hb=b0ace66ea381db8f5fbfee2d81a1dbcaab7b262f;hp=b323524d32614e8dd096722ea49fefdf1e9be54d;hpb=3a0e9efb7f067e5b334ba0596b95e15d96d7cc49;p=lilypond.git diff --git a/ly/engraver.ly b/ly/engraver.ly index b323524d32..d3fa0948e5 100644 --- a/ly/engraver.ly +++ b/ly/engraver.ly @@ -5,14 +5,46 @@ StaffContext=\translator { \type "Engraver_group_engraver"; \name Staff ; + \consists "Output_property_engraver"; barAuto = ##t voltaVisibility = ##t - + Generic_property_list = #generic-staff-properties + \consists "Property_engraver"; + \consists "Multi_measure_rest_engraver"; \consists "Bar_engraver"; % Bar_engraver must be first so default bars aren't overwritten % with empty ones. + + voltaPadding = #5 % urg, in \pt + voltaMinimumSpace = #25 % urg, in \pt + + StaffMinimumVerticalExtent = #(cons -4.0 4.0) + \consists "Repeat_engraver"; + + + % name, glyph id, c0 position + supportedClefTypes = #'( + ("treble" . ("G" -2)) + ("violin" . ("G" -2)) + ("G" . ("G" -2)) + ("G2" . ("G" -2)) + ("french" . ("G" -4 )) + ("soprano" . ("C" -4 )) + ("mezzosoprano" . ("C" -2 )) + ("alto" . ("C" 0 )) + ("tenor" . ("C" 2 )) + ("baritone" . ("C" 4 )) + ("varbaritone" . ("F" 0)) + ("bass" . ("F" 2 )) + ("F" . ( "F" 2)) + ("subbass" . ("F" 4)) + ) + clefPitches = #'(("G" . -4) + ("C" . 0) + ("F" . 4)) + \consists "Clef_engraver"; \consists "Key_engraver"; \consists "Time_signature_engraver"; @@ -26,19 +58,17 @@ StaffContext=\translator { %{ - The Staff_margin_engraver puts the name of the instrument + The Instrument_name_engraver puts the name of the instrument (\property Staff.instrument; Staff.instr for subsequent lines) to the left of a staff. + Usually, you only want this in the full score, not in the parts. + + \consists "Instrument_name_engraver"; %} -%{ - \consists "Staff_margin_engraver"; -%} - defaultClef = #"treble" - marginBreakPriority = #-5 + defaultClef = #"treble" \consists "Separating_line_group_engraver"; - \consists "Font_size_engraver"; \accepts "Voice"; dynamicStyle = #"dynamic" @@ -48,8 +78,10 @@ StaffContext=\translator { \translator { \type "Engraver_group_engraver"; \name ChoirStaff; - alignmentReference = \center; - \consists "Staff_group_bar_engraver"; + alignmentReference = \center; + \consists "System_start_delimiter_engraver"; + systemStartDelimiterGlyph = #'bracket + \accepts "Staff"; @@ -66,12 +98,18 @@ StaffContext=\translator { RhythmicStaffContext=\translator{ \type "Engraver_group_engraver"; numberOfStaffLines = #1 + \consists "Property_engraver"; + \consists "Output_property_engraver"; + + Generic_property_list = #generic-staff-properties - barSize = \staffheight; + barSize = 4.0 * \interline ; \consists "Pitch_squash_engraver"; \consists "Separating_line_group_engraver"; \name RhythmicStaff; + voltaPadding = #5 % urg, in \pt + voltaMinimumSpace = #15 % urg, in \pt \consists "Repeat_engraver"; \consists "Bar_engraver"; \consists "Time_signature_engraver"; @@ -80,13 +118,20 @@ RhythmicStaffContext=\translator{ \accepts "Voice"; }; \translator{\RhythmicStaffContext} + VoiceContext = \translator { \type "Engraver_group_engraver"; - dynamicPadding = #5.0 - \consists "Dynamic_engraver"; % must come before text_engraver. - \name Voice ; + \name Voice; + + dynamicPadding = #3 % urg, in \pt + dynamicMinimumSpace = #6 % urg, in \pt -% \consists "Tie_engraver"; + Generic_property_list = #generic-voice-properties + \consists "Output_property_engraver"; + + \consists "Dynamic_engraver"; % must come before text_engraver. + \consists "Property_engraver"; + \consists "Breathing_sign_engraver"; \consists "Rest_engraver"; \consists "Dot_column_engraver"; @@ -94,17 +139,22 @@ VoiceContext = \translator { \consists "Beam_engraver"; \consists "Auto_beam_engraver"; \include "auto-beam-settings.ly"; - \consists "Chord_tremolo_engraver"; -% \consists "Multi_measure_rest_engraver"; - % ugh. Order matters here. + \consists "Chord_tremolo_engraver"; \consists "Melisma_engraver"; textScriptPadding = #3.0 \consists "Text_engraver"; + + + startSustain = #"Ped." + stopSustain = #"*" + stopStartSustain = #"*Ped." + startUnaChorda = #"una chorda" + stopUnaChorda = #"tre chorde" + \consists "Piano_pedal_engraver"; \consists "Script_engraver"; \consists "Script_column_engraver"; \consists "Rhythmic_column_engraver"; - \consists "Font_size_engraver"; \consists "Slur_engraver"; \consists "Tie_engraver"; \consists "Tuplet_engraver"; @@ -117,6 +167,10 @@ VoiceContext = \translator { GraceContext=\translator { \type "Grace_engraver_group"; \name "Grace"; + \consists "Output_property_engraver"; + + Generic_property_list = #generic-grace-properties + \consists "Note_heads_engraver"; \consists "Local_key_engraver"; \consists "Stem_engraver"; @@ -126,16 +180,21 @@ GraceContext=\translator { \consists "Auto_beam_engraver"; \include "auto-beam-settings.ly"; \consists "Align_note_column_engraver"; - \consists "Font_size_engraver"; + \consists "Rhythmic_column_engraver"; \consists "Dynamic_engraver"; + \consists "Text_engraver"; + + \consists "Property_engraver"; - stemStyle = #"grace" + stemStyle = #"grace" + flagStyle = #"grace" weAreGraceContext = ##t fontSize = #-1 + stemLength = #6.0 verticalDirection = \up ; - graceAccidentalSpace= 1.5 * \interline; + graceAccidentalSpace= 1.5 * \staffspace; }; \translator{\GraceContext} @@ -143,7 +202,10 @@ GraceContext=\translator { ThreadContext = \translator{ \type Engraver_group_engraver; - \consists "Note_heads_engraver" ; + \consists "Note_heads_engraver" ; + \consists "Output_property_engraver"; + Generic_property_list = #generic-thread-properties + \consists "Property_engraver"; \name Thread; }; @@ -152,8 +214,11 @@ GrandStaffContext=\translator{ \type "Engraver_group_engraver"; \name GrandStaff; \consists "Span_bar_engraver"; - \consists "Piano_bar_engraver"; - + \consists "System_start_delimiter_engraver"; + systemStartDelimiterGlyph = #'brace + + \consists "Property_engraver"; + Generic_property_list = #generic-grand-staff-properties \accepts "Staff"; }; \translator{\GrandStaffContext} @@ -173,8 +238,14 @@ PianoStaffContext = \translator{\GrandStaffContext StaffGroupContext= \translator { \type "Engraver_group_engraver"; \consists "Span_bar_engraver"; - - \consists "Staff_group_bar_engraver"; + \consists "Output_property_engraver"; + \consists "System_start_delimiter_engraver"; + systemStartDelimiterGlyph = #'bracket + + + + + \name StaffGroup; \accepts "Staff"; \accepts "RhythmicStaff"; @@ -203,27 +274,33 @@ LyricsVoiceContext= \translator{ LyricsContext = \translator { \type "Engraver_group_engraver"; \name Lyrics; - \consists Vertical_align_engraver;%need this for getting folded repeats right. - + \consists Vertical_align_engraver; %need this for getting folded repeats right. + Generic_property_list = #generic-lyrics-properties + \consists "Property_engraver"; \consistsend "Axis_group_engraver"; \accepts "LyricVoice"; }; \translator { \LyricsContext } -\translator{ +ChordNameVoiceContext = \translator { \type "Engraver_group_engraver"; + \name ChordNameVoice ; + \consists "Output_property_engraver"; \consistsend "Axis_group_engraver"; - \name ChordNameVoice ; \consists "Separating_line_group_engraver"; \consists "Chord_name_engraver"; -} - +}; +\translator {\ChordNameVoiceContext} ChordNameContext = \translator { \type "Engraver_group_engraver"; \name ChordNames; + + Generic_property_list = #generic-chord-staff-properties + \consists "Property_engraver"; + \consists "Output_property_engraver"; \accepts "ChordNameVoice"; \consistsend "Axis_group_engraver"; }; @@ -247,40 +324,157 @@ StupidScore = \translator { BarNumberingStaffContext = \translator { \StaffContext - barColumnPriority = #0 - marginBreakPriority = #-4 \consists "Mark_engraver"; - \consists "Bar_number_engraver"; }; HaraKiriStaffContext = \translator { \StaffContext \remove "Axis_group_engraver"; \consistsend "Hara_kiri_engraver"; + \consists "Instrument_name_engraver"; \accepts "Voice"; }; +%{ + The HaraKiriStaffContexts doesn't override \name, + so it is still named `Staff'. + + %\translator { \HaraKiriStaffContext } +%} OrchestralPartStaffContext = \translator { \StaffContext - barColumnPriority = #0 - marginBreakPriority = #-4 \consists "Mark_engraver"; - \consists "Bar_number_engraver"; }; ScoreContext = \translator { \type Score_engraver; \name Score; + marginScriptPadding = #10 % urg, in \pt + \consists "Timing_engraver"; + \consists "Output_property_engraver"; - \consists "Span_score_bar_engraver"; - \consists "Score_priority_engraver"; + %bracketCollapseHeight = #10 % \pt + \consists "System_start_delimiter_engraver"; + +% \consists "Score_priority_engraver"; + \consists "Break_align_engraver"; + breakAlignOrder = #'( + Instrument_name + Left_edge_item + Span_bar + Breathing_sign + Clef_item + Key_item + Staff_bar + Time_signature + ) \consists "Spacing_engraver"; + \consists "Vertical_align_engraver"; + \consists "Bar_number_engraver"; alignmentReference = \down; defaultClef = #"treble" defaultBarType = #"|" + systemStartDelimiterGlyph = #'bar-line + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % default settings, mainly for breakable items + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + basicBarNumberProperties = #`( + (breakable . #t) + (visibility-lambda . ,begin-of-line-visible) + ) + basicMarkProperties = #'( + (breakable . #t) + (visibility-lambda . end-of-line-invisible) + ) + leftEdgeBasicProperties = #'( + (break-align-symbol . Left_edge_item) + (breakable . #t) + ) + + staffSymbolBasicProperties = #'( + (staff-space . 1.0 ) + (line-count . 5 ) + ) + basicTimeSignatureProperties = #`( + (break-align-symbol . Time_signature) + (visibility-lambda . ,all-visible) + (breakable . #t) + ) + basicBarlineProperties = #`( + (break-align-symbol . Staff_bar) + (visibility-lambda . ,begin-of-line-invisible) + (breakable . #t) + ) + basicSystemStartDelimiterProperties = #'( + (collapse-height . 1.0) + ) + basicKeyProperties = #`( + (break-align-symbol . Key_item) + (visibility-lambda . ,begin-of-line-visible) + (breakable . #t) + ) + basicClefItemProperties = #`( + (breakable . #t) + (break-align-symbol . Clef_item) + (visibility-lambda . ,begin-of-line-visible) + ) + + basicBeamProperties = #`( + (beam-thickness . 0.42) ; interline! + ) + basicStemTremoloProperties = #'( + (beam-width . 4.0) ; interline! + (beam-thickness . 0.42) ; interline! + ) + + basicBreathingSignProperties = #'( + (break-align-symbol . Breathing_sign) + (breakable . #t ) + (visibility-lambda . ,begin-of-line-invisible) + ) + basicOctavateEightProperties = #'( + (self-alignment-X . 0) + (text . "8") + (style . "italic") + ) + basicDynamicLineSpannerProperties = #`( + (transparent . #t) + ) + basicDynamicTextProperties = # `( + (style . "dynamic") + (script-priority . 100) + (self-alignment-Y . 0) + ) + basicLyricTextProperties = #`( + (non-rhythmic . #t) + ) + basicRestCollisionProperties = #`( + (transparent . #t) + ) + basicCollisionProperties = #`( + (transparent . #t) + (axes 0 1) + ) + basicSingleMaltGroupingItemProperties = #'( + (transparent . #t) + ) + basicBreakAlignProperties = #'( + (breakable . #t) + ) + basicInstrumentNameProperties = #`( + (breakable . #t) + (break-align-symbol . Instrument_name) + (visibility-lambda . ,begin-of-line-visible) + ) + basicLocalKeyProperties = #`( + (left-padding . 0.2) + (right-padding . 0.4) + ) + \accepts "Staff"; \accepts "StaffGroup"; \accepts "RhythmicStaff"; @@ -289,6 +483,10 @@ ScoreContext = \translator { \accepts "GrandStaff"; \accepts "ChoirStaff"; \accepts "PianoStaff"; + \accepts "NoteNames"; + + + markVisibilityFunction = #end-of-line-invisible }; \translator { \ScoreContext } @@ -299,8 +497,12 @@ OrchestralScoreContext= \translator { barScriptPadding = #2.0 % dimension \pt markScriptPadding = #4.0 - \consists "Bar_number_engraver"; \consists "Mark_engraver"; - - \accepts "HaraKiriStaff"; }; + +\translator { + \type "Engraver_group_engraver"; + \name NoteNames; + \consistsend "Axis_group_engraver"; + \consists "Note_name_engraver"; +}