X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ly%2Fengraver.ly;h=da81fa71ef47c2062146e0e8f325e8225bc89d09;hb=3c2f386f1385a10dafbb811be245f5a75d6b132c;hp=d51ddb210e1aded0868f05a1f06c693473a6936d;hpb=d3c90f63573d53cfb191cc48f8f6ee672a5ca37a;p=lilypond.git diff --git a/ly/engraver.ly b/ly/engraver.ly index d51ddb210e..da81fa71ef 100644 --- a/ly/engraver.ly +++ b/ly/engraver.ly @@ -26,24 +26,25 @@ StaffContext=\translator { % 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)) + ("treble" . ("clefs-G" -2)) + ("violin" . ("clefs-G" -2)) + ("G" . ("clefs-G" -2)) + ("G2" . ("clefs-G" -2)) + ("french" . ("clefs-G" -4 )) + ("soprano" . ("clefs-C" -4 )) + ("mezzosoprano" . ("clefs-C" -2 )) + ("alto" . ("clefs-C" 0 )) + ("tenor" . ("clefs-C" 2 )) + ("baritone" . ("clefs-C" 4 )) + ("varbaritone" . ("clefs-F" 0)) + ("bass" . ("clefs-F" 2 )) + ("F" . ( "clefs-F" 2)) + ("subbass" . ("clefs-F" 4)) + ) + % where is c0 in this clef? + clefPitches = #'(("clefs-G" . -4) + ("clefs-C" . 0) + ("clefs-F" . 4)) \consists "Clef_engraver"; \consists "Key_engraver"; @@ -103,7 +104,7 @@ RhythmicStaffContext=\translator{ Generic_property_list = #generic-staff-properties - barSize = #'staff-height + barSize = 4.0 * \interline ; \consists "Pitch_squash_engraver"; \consists "Separating_line_group_engraver"; \name RhythmicStaff; @@ -145,11 +146,13 @@ VoiceContext = \translator { 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"; @@ -376,6 +379,340 @@ ScoreContext = \translator { alignmentReference = \down; defaultClef = #"treble" defaultBarType = #"|" + systemStartDelimiterGlyph = #'bar-line + + % + % what order to print accs. We could compute this, + % but computing is more work than putting it here. + % + % Flats come first, then sharps. + 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) + ) + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % default settings, mainly for breakable items + % in alphabetical order + % TODO: uniform naming.; + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + % + % distances are given in stafflinethickness (thicknesses) and staffspace (distances) + % + + + basicBarProperties = #`( + (break-align-symbol . Staff_bar) + (barsize-procedure . ,Bar::get_staff_bar_size) + (molecule-callback . ,Bar::brew_molecule) + (visibility-lambda . ,begin-of-line-invisible) + (breakable . #t) + (before-line-breaking-callback . ,Bar::before_line_breaking) + ;; + ;; Ross. page 151 lists other values, we opt for a leaner look + ;; + (kern . 3.0) + (thin-kern . 3.0) + (hair-thickness . 1.6) + (thick-thickness . 6.0) + + (interfaces . (bar-interface staff-bar-interface)) + ) + + basicBarNumberProperties = #`( + (molecule-callback . ,Text_item::brew_molecule) + (breakable . #t) + (visibility-lambda . ,begin-of-line-visible) + ) + + basicBeamProperties = #`( + (molecule-callback . ,Beam::brew_molecule) + (beam-thickness . 0.42) ; interline + (before-line-breaking-callback . ,Beam::before_line_breaking) + (after-line-breaking-callback . ,Beam::after_line_breaking) + (default-neutral-direction . 1) + (interfaces . (beam-interface)) + (damping . 1) + ) + + basicBreakAlignProperties = #`( + (breakable . #t) + (interfaces . (break-align-interface)) + (stacking-dir . 1) + (axes 0) + ) + basicBreakAlignGroupProperties = #`( + (interfaces . (axis-group-interface)) + (axes . (0)) + ) + basicBreathingSignProperties = #`( + (break-align-symbol . Breathing_sign) + (breakable . #t ) + (molecule-callback . ,Breathing_sign::brew_molecule) + (visibility-lambda . ,begin-of-line-invisible) + (interfaces . (breathing-sign-interface)) + ) + basicClefItemProperties = #`( + (molecule-callback . ,Score_element::brew_molecule) + (before-line-breaking-callback . ,Clef::before_line_breaking) + (breakable . #t) + (break-align-symbol . Clef_item) + (visibility-lambda . ,begin-of-line-visible) + (interfaces . (clef-interface)) + ) + basicChordNameProperties = #`( + (molecule-callback . ,Chord_name::brew_molecule) + (interfaces . (chord-name-interface)) + ) + basicCollisionProperties = #`( + (axes 0 1) + (interfaces . (collision-interface)) + ) + basicCrescendoProperties = #`( + (molecule-callback . ,Crescendo::brew_molecule) + (interfaces . (crescendo-interface dynamic-interface)) + ) + basicDotColumnProperties = #`( + (interfaces . (dot-column-interface axis-group-interface )) + (axes 0 ) + ) + basicDotsProperties = #`( + (molecule-callback . ,Dots::brew_molecule) + (dot-count . 1) + (interfaces . (dot-interface)) + ) + basicDynamicLineSpannerProperties = #`( + (interfaces (dynamic-interface axis-group-interface)) + (axes . ( 1)) + ) + basicDynamicTextProperties = # `( + (style . "dynamic") + (interface (dynamic-interface)) + (molecule-callback . ,Text_item::brew_molecule) + (script-priority . 100) + (self-alignment-Y . 0) + ) + leftEdgeBasicProperties = #`( + (break-align-symbol . Left_edge_item) + (breakable . #t) + ) + basicGraceAlignItemProperties = #`( + (axes . (0)) + (interfaces . (axis-group-interface align-interface)) + (before-line-breaking-callback . ,Grace_align_item::before_line_breaking) + ) + basicHaraKiriVerticalGroupspannerProperties = #`( + (interfaces . (hara-kiri-interface)) + (axes 1) + ) + basicHyphenSpannerProperties = #`( + (thickness . 1.0) + (height . 0.4) + (minimum-length . 0.5) + (molecule-callback . ,Hyphen_spanner::brew_molecule) + ) + basicKeyProperties = #`( + (molecule-callback . ,Key_item::brew_molecule) + (interfaces . (key-item-interface)) + (break-align-symbol . Key_item) + (visibility-lambda . ,begin-of-line-visible) + (breakable . #t) + ) + basicLocalKeyProperties = #`( + (molecule-callback . ,Local_key_item::brew_molecule) + (left-padding . 0.2) + (right-padding . 0.4) + (interfaces . (accidentals-interface )) + ) + basicLineOfScoreProperties = #`( + (axes . (0 1)) + (interfaces . (axis-group-interface)) + ) + basicLyricExtenderProperties = #`( + (molecule-callback . ,Lyric_extender::brew_molecule) + ) + basicLyricTextProperties = #`( + (molecule-callback . ,Text_item::brew_molecule) + (self-alignment-X . 0) + (non-rhythmic . #t) + (interfaces . (text-item-interface)) + ) + basicMarkProperties = #`( + (molecule-callback . ,Text_item::brew_molecule) + (breakable . #t) + (interfaces . (mark-interface)) + (visibility-lambda . ,end-of-line-invisible) + ) + basicMultiMeasureRestProperties = #`( + (spacing-procedure . ,Multi_measure_rest::set_spacing_rods) + (molecule-callback . ,Multi_measure_rest::brew_molecule) + (staff-position . 0) + ) + basicNoteColumnProperties = #`( + (axes 0 1) + (interfaces . (axis-group-interface note-column-interface)) + ) + basicNoteHeadProperties = #`( + (interfaces . (note-head-interface rhythmic-head-interface)) + (molecule-callback . ,Note_head::brew_molecule) + ) + basicNoteNameProperties = #`( + (molecule-callback . ,Text_item::brew_molecule) + ) + basicOctavateEightProperties = #`( + (self-alignment-X . 0) + (text . "8") + (visibility-lambda . ,begin-of-line-visible) + (molecule-callback . ,Text_item::brew_molecule) + (style . "italic") + ) + basicPaperColumnProperties = #`( + (interfaces . (paper-column-interface axis-group-interface)) + (axes 0) + (rank . -1) + ) + basicPedalProperties = #`( + (molecule-callback . ,Text_item::brew_molecule) + (style . "italic") + (no-spacing-rods . #t) + (self-alignment-X . 0) + + ) + basicTextProperties = #`( ) + basicRestProperties = #`( + (interfaces . (rest-interface rhythmic-head-interface)) + (molecule-callback . ,Rest::brew_molecule) + (minimum-beam-collision-distance . 1.5) + ) + + basicRestCollisionProperties = #`( + (minimum-distance . 0.75) + (interfaces . (rest-collision-interface)) + ) + basicScriptProperties = #`( + (molecule-callback . ,Script::brew_molecule) + (interface . (script-interface)) + ) + basicScriptColumnProperties = #`( + (before-line-breaking-callback . ,Script_column::before_line_breaking) + ) + basicSlurProperties = #`( + (molecule-callback . ,Slur::brew_molecule) + (spacing-procedure . ,Slur::set_spacing_rods) + (after-line-breaking-callback . ,Slur::after_line_breaking) + ) + basicSpacingSpannerProperties =#`( + (spacing-procedure . ,Spacing_spanner::set_springs) + ) + basicSpanBarProperties = #`( + (break-align-symbol . Staff_bar) + (barsize-procedure . ,Span_bar::get_bar_size) + (molecule-callback . ,Bar::brew_molecule) + (visibility-lambda . ,begin-of-line-invisible) + (breakable . #t) + (before-line-breaking-callback . ,Span_bar::before_line_breaking) + + ;; ugh duplication! + + ;; + ;; Ross. page 151 lists other values, we opt for a leaner look + ;; + (kern . 3.0) + (thin-kern . 3.0) + (hair-thickness . 1.6) + (thick-thickness . 6.0) + (interfaces . (bar-interface span-bar-interface)) + ) + basicSustainPedalProperties = #`( + (no-spacing-rods . #t) + (molecule-callback . ,Sustain_pedal::brew_molecule) + (self-alignment-X . 0) + (interface . (sustain-pedal-interface)) + ) + basicSystemStartDelimiterProperties = #`( + (molecule-callback . ,System_start_delimiter::brew_molecule) + (after-line-breaking-callback . ,System_start_delimiter::after_line_breaking) + (collapse-height . 1.0) + (thickness . 1.6) + (arch-height . 1.5) + (arch-angle . 50.0) + (arch-thick . 0.25) + (arch-width . 1.5) + (bracket-thick . 0.25) + (bracket-width . 2.0) + ) + basicStemProperties = #`( + (before-line-breaking-callback . ,Stem::before_line_breaking) + (molecule-callback . ,Stem::brew_molecule) + + ; if stem is on middle line, choose this direction. + (default-neutral-direction . 1) + (interfaces . (stem-interface)) + ) + staffSymbolBasicProperties = #`( + (molecule-callback . ,Staff_symbol::brew_molecule) + (staff-space . 1.0) + (line-count . 5 ) + (interfaces . (staff-symbol-interface )) + ) + basicTextScriptProperties = #`( + (molecule-callback . ,Text_item::brew_molecule) + (no-spacing-rods . #t) + (interfaces . (text-script-interface text-item-interface)) + ) + basicTieProperties = #`( + (molecule-callback . ,Tie::brew_molecule) + (after-line-breaking-callback . ,Tie::after_line_breaking) + (spacing-procedure . ,Tie::set_spacing_rods) + (interfaces . (tie-interface)) + ) + basicTieColumnProperties = #`( + (after-line-breaking-callback . ,Tie_column::after_line_breaking) + (interfaces . (tie-column-interface)) + ) + basicTimeSignatureProperties = #`( + (molecule-callback . ,Time_signature::brew_molecule) + (break-align-symbol . Time_signature) + (visibility-lambda . ,all-visible) + (breakable . #t) + (interfaces . (time-signature-interface)) + ) + basicTupletSpannerProperties = #`( + (number-gap . 2.0) + (delta-y . 0) + (thick . 1.0) + (after-line-breaking-callback . ,Tuplet_spanner::after_line_breaking) + (molecule-callback . ,Tuplet_spanner::brew_molecule) + (interfaces . (tuplet-spanner-interface)) + ) + basicStemTremoloProperties = #`( + (molecule-callback . ,Stem_tremolo::brew_molecule) + (beam-width . 4.0) ; interline! + (beam-thickness . 0.42) ; interline! + ) + + basicSeparationItemProperties = #`( + (interfaces . (separation-item-interface)) + ) + basicSeparatingGroupSpannerProperties = #`( + (interfaces . (separation-spanner-interface)) + (spacing-procedure . ,Separating_group_spanner::set_spacing_rods) + ) + basicInstrumentNameProperties = #`( + (breakable . #t) + (molecule-callback . ,Text_item::brew_molecule) + (break-align-symbol . Instrument_name) + (visibility-lambda . ,begin-of-line-visible) + ) + basicVerticalAxisGroupProperties = #`( + (axes 1) + (interfaces . (axis-group-interface)) + ) + basicVoltaSpannerProperties = #`( + (molecule-callback . ,Volta_spanner::brew_molecule) + (interfaces . (volta-spanner-interface)) + ) + \accepts "Staff"; \accepts "StaffGroup"; \accepts "RhythmicStaff"; @@ -388,7 +725,6 @@ ScoreContext = \translator { markVisibilityFunction = #end-of-line-invisible - barNumberVisibilityFunction = #begin-of-line-visible }; \translator { \ScoreContext }