X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdefine-grobs.scm;h=4139ff13daeea48e9b46d94320a023c4b12f7f60;hb=5e7ba357ed642cad2e07f53d8c27d96128fe7dab;hp=a4e0d52a760b45a237b12438cae84932586fbd1f;hpb=d01d7bd0752a3d141de5a1fb2905d30efbcd8970;p=lilypond.git diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index a4e0d52a76..4139ff13da 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -1,6 +1,6 @@ ;;;; This file is part of LilyPond, the GNU music typesetter. ;;;; -;;;; Copyright (C) 1998--2012 Han-Wen Nienhuys +;;;; Copyright (C) 1998--2014 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen ;;;; ;;;; LilyPond is free software: you can redistribute it and/or modify @@ -29,6 +29,7 @@ `( (Accidental . ( + (after-line-breaking . ,ly:accidental-interface::remove-tied) (alteration . ,accidental-interface::calc-alteration) (avoid-slur . inside) (glyph-name . ,accidental-interface::glyph-name) @@ -36,7 +37,6 @@ (stencil . ,ly:accidental-interface::print) (horizontal-skylines . ,(ly:make-unpure-pure-container ly:accidental-interface::horizontal-skylines)) (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) - (X-extent . ,ly:accidental-interface::width) (Y-extent . ,accidental-interface::height) (meta . ((class . Item) (interfaces . (accidental-interface @@ -45,6 +45,7 @@ (AccidentalCautionary . ( + (after-line-breaking . ,ly:accidental-interface::remove-tied) (alteration . ,accidental-interface::calc-alteration) (avoid-slur . inside) (glyph-name-alist . ,standard-alteration-glyph-name-alist) @@ -74,29 +75,26 @@ (AccidentalSuggestion . ( + (after-line-breaking . ,ly:accidental-interface::remove-tied) (alteration . ,accidental-interface::calc-alteration) (direction . ,UP) (font-size . -2) (glyph-name-alist . ,standard-alteration-glyph-name-alist) (outside-staff-priority . 0) + (parent-alignment-X . ,CENTER) (script-priority . 0) (self-alignment-X . ,CENTER) (side-axis . ,Y) (staff-padding . 0.25) (stencil . ,ly:accidental-interface::print) - (X-extent . ,ly:accidental-interface::width) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:self-alignment-interface::centered-on-x-parent)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self))))) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-extent . ,accidental-interface::height) (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Item) (interfaces . (accidental-interface accidental-suggestion-interface font-interface + outside-staff-interface script-interface self-alignment-interface side-position-interface)))))) @@ -168,7 +166,7 @@ (Arpeggio . ( - (cross-staff . ,ly:arpeggio::calc-cross-staff) + (cross-staff . ,ly:arpeggio::calc-cross-staff) (direction . ,LEFT) (padding . 0.5) (positions . ,ly:arpeggio::calc-positions) @@ -220,7 +218,7 @@ ;; TODO: ;; kern should scale with line-thickness too. (kern . 3.0) - (thin-kern . 3.0) + (segno-kern . 3.0) (hair-thickness . 1.9) (thick-thickness . 6.0) @@ -266,18 +264,14 @@ (self-alignment-X . ,RIGHT) (side-axis . ,Y) (stencil . ,ly:text-interface::print) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:break-alignable-interface::self-align-callback)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self))))) + (X-offset . ,self-alignment-interface::self-aligned-on-breakable) (Y-offset . ,side-position-interface::y-aligned-side) (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (break-alignable-interface font-interface + outside-staff-interface self-alignment-interface side-position-interface text-interface)))))) @@ -321,6 +315,7 @@ (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs))) (interfaces . (axis-group-interface + outside-staff-interface side-position-interface)))))) (BassFigureBracket @@ -348,7 +343,8 @@ (meta . ((class . Spanner) (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs))) - (interfaces . (axis-group-interface)))))) + (interfaces . (axis-group-interface + outside-staff-axis-group-interface)))))) (Beam @@ -523,6 +519,7 @@ (interfaces . (break-aligned-interface breathing-sign-interface font-interface + outside-staff-interface text-interface)))))) (ChordName @@ -538,6 +535,7 @@ (meta . ((class . Item) (interfaces . (chord-name-interface font-interface + outside-staff-interface rhythmic-grob-interface text-interface)))))) @@ -576,27 +574,27 @@ . ( (break-visibility . ,(grob::inherit-parent-property X 'break-visibility)) - (font-shape . italic) - (font-size . -4) - (transparent . ,(grob::inherit-parent-property - X 'transparent)) + (clef-alignments . ((G . (-0.2 . 0.1)) + (F . (-0.3 . -0.2)) + (C . (0 . 0)))) (color . ,(grob::inherit-parent-property X 'color)) + (font-shape . italic) + (font-size . -4) + (parent-alignment-X . ,ly:clef-modifier::calc-parent-alignment) (self-alignment-X . ,CENTER) (staff-padding . 0.7) (stencil . ,ly:text-interface::print) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::centered-on-x-parent))))) - (Y-offset . ,side-position-interface::y-aligned-side) + (transparent . ,(grob::inherit-parent-property + X 'transparent)) (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-extent . ,grob::always-Y-extent-from-stencil) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Item) (interfaces . (clef-modifier-interface font-interface + outside-staff-interface self-alignment-interface side-position-interface text-interface)))))) @@ -628,16 +626,19 @@ (font-series . bold) (outside-staff-priority . 450) (padding . 0.5) + (parent-alignment-X . #f) (script-priority . 200) + (self-alignment-X . #f) (side-axis . ,Y) (staff-padding . 0.5) - ;; todo: add X self alignment? (stencil . ,ly:text-interface::print) - (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-offset . ,side-position-interface::y-aligned-side) (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (font-interface + outside-staff-interface + self-alignment-interface side-position-interface text-interface text-script-interface)))))) @@ -727,6 +728,7 @@ (DotColumn . ( (axes . (,X)) + (chord-dots-limit . 3) (direction . ,RIGHT) (positioning-done . ,ly:dot-column::calc-positioning-done) (X-extent . ,ly:axis-group-interface::width) @@ -771,20 +773,17 @@ (font-encoding . fetaText) (font-size . -2) (padding . 0.2) + (parent-alignment-X . ,CENTER) (self-alignment-X . ,CENTER) (side-axis . ,Y) (staff-padding . 0.25) (stencil . ,ly:text-interface::print) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:self-alignment-interface::centered-on-y-parent)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self))))) - (Y-offset . ,side-position-interface::y-aligned-side) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-extent . ,grob::always-Y-extent-from-stencil) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Item) (interfaces . (font-interface + outside-staff-interface percent-repeat-interface percent-repeat-item-interface self-alignment-interface @@ -802,6 +801,7 @@ (thickness . 0.48) (meta . ((class . Item) (interfaces . (font-interface + outside-staff-interface percent-repeat-interface percent-repeat-item-interface rhythmic-grob-interface)))))) @@ -827,6 +827,7 @@ (interfaces . (axis-group-interface dynamic-interface dynamic-line-spanner-interface + outside-staff-interface side-position-interface)))))) (DynamicText @@ -834,25 +835,26 @@ ;; todo. - (collision-bias . -2.0) - (collision-padding . 0.5) (direction . ,ly:script-interface::calc-direction) (extra-spacing-width . (+inf.0 . -inf.0)) (font-encoding . fetaText) (font-series . bold) (font-shape . italic) + (parent-alignment-X . ,CENTER) (positioning-done . ,ly:script-interface::calc-positioning-done) (right-padding . 0.5) (self-alignment-X . ,CENTER) (stencil . ,ly:text-interface::print) (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) (Y-extent . ,grob::always-Y-extent-from-stencil) - (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) + (X-align-on-main-noteheads . #t) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-offset . ,(scale-by-font-size -0.6)) ; center on an 'm' (meta . ((class . Item) (interfaces . (dynamic-interface dynamic-text-interface font-interface + outside-staff-interface script-interface self-alignment-interface text-interface)))))) @@ -904,6 +906,11 @@ font-interface line-interface line-spanner-interface + ;for now, LilyPond never will typeset + ;these without a DynamicLineSpanner + ;as their controlling element + ;so, they do not need the + ;outside-staff-interface spanner-interface text-interface)))))) @@ -946,6 +953,8 @@ (font-encoding . fetaText) (font-size . -5) ; don't overlap when next to heads. (padding . 0.5) + (parent-alignment-X . ,CENTER) + (parent-alignment-Y . ,CENTER) (positioning-done . ,ly:script-interface::calc-positioning-done) (script-priority . 100) (self-alignment-X . ,CENTER) @@ -958,6 +967,7 @@ (meta . ((class . Item) (interfaces . (finger-interface font-interface + outside-staff-interface self-alignment-interface side-position-interface text-interface @@ -1042,6 +1052,7 @@ (interfaces . (chord-name-interface font-interface fret-diagram-interface + outside-staff-interface rhythmic-grob-interface)))))) @@ -1087,15 +1098,11 @@ (GridLine . ( (layer . 0) + (parent-alignment-X . ,CENTER) (self-alignment-X . ,CENTER) (stencil . ,ly:grid-line-interface::print) - (X-extent . ,ly:grid-line-interface::width) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:self-alignment-interface::centered-on-x-parent)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self))))) + (X-extent . ,ly:grid-line-interface::width) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (meta . ((class . Item) (interfaces . (grid-line-interface self-alignment-interface)))))) @@ -1129,6 +1136,7 @@ (interfaces . (dynamic-interface hairpin-interface line-interface + outside-staff-interface self-alignment-interface spanner-interface)))))) @@ -1146,6 +1154,7 @@ (meta . ((class . Spanner) (interfaces . (horizontal-bracket-interface line-interface + outside-staff-interface side-position-interface spanner-interface)))))) @@ -1163,7 +1172,8 @@ (interfaces . (font-interface self-alignment-interface side-position-interface - system-start-text-interface)))))) + system-start-text-interface + text-interface)))))) (InstrumentSwitch . ( @@ -1171,15 +1181,17 @@ (extra-spacing-width . (+inf.0 . -inf.0)) (outside-staff-priority . 500) (padding . 0.5) + (parent-alignment-X . #f) (self-alignment-X . ,LEFT) (side-axis . ,Y) (staff-padding . 0.5) (stencil . ,ly:text-interface::print) (Y-extent . ,grob::always-Y-extent-from-stencil) - (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Item) (interfaces . (font-interface + outside-staff-interface self-alignment-interface side-position-interface text-interface)))))) @@ -1199,7 +1211,8 @@ (key-signature . (extra-space . 0.5)) (cue-clef . (extra-space . 0.5)) (right-edge . (extra-space . 0.5)) - (first-note . (fixed-space . 2.5)))) + (first-note . (fixed-space . 2.5)) + (custos . (extra-space . 1.0)))) (stencil . ,ly:key-signature-interface::print) (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) (Y-extent . ,grob::always-Y-extent-from-stencil) @@ -1299,9 +1312,8 @@ . ( (break-align-anchor . ,ly:break-aligned-interface::calc-extent-aligned-anchor) (break-align-symbol . left-edge) - (break-visibility . ,center-invisible) + (break-visibility . ,begin-of-line-visible) (non-musical . #t) - (extra-spacing-height . (+inf.0 . -inf.0)) (space-alist . ( (ambitus . (extra-space . 2.0)) (breathing-sign . (minimum-space . 0.0)) @@ -1317,6 +1329,7 @@ (right-edge . (extra-space . 0.0)) )) (X-extent . (0 . 0)) + (Y-extent . (0 . 0)) (meta . ((class . Item) (interfaces . (break-aligned-interface)))))) @@ -1389,12 +1402,14 @@ (extra-spacing-height . (0.2 . -0.2)) (font-series . medium) (font-size . 1.0) + (parent-alignment-X . ()) (self-alignment-X . ,CENTER) (stencil . ,lyric-text::print) (text . ,(grob::calc-property-by-copy 'text)) (word-space . 0.6) (skyline-horizontal-padding . 0.1) (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) + (X-align-on-main-noteheads . #t) (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) @@ -1419,6 +1434,7 @@ (meta . ((class . Spanner) (interfaces . (font-interface measure-counter-interface + outside-staff-interface self-alignment-interface side-position-interface text-interface)))))) @@ -1435,6 +1451,7 @@ (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Spanner) (interfaces . (measure-grouping-interface + outside-staff-interface side-position-interface)))))) (MelodyItem @@ -1466,12 +1483,7 @@ (stencil . ,ly:text-interface::print) (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) (Y-offset . ,side-position-interface::y-aligned-side) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:break-alignable-interface::self-align-callback)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self))))) + (X-offset . ,self-alignment-interface::self-aligned-on-breakable) (self-alignment-X . ,LEFT) (break-align-symbols . (time-signature)) (non-break-align-symbols . (paper-column-interface)) @@ -1480,6 +1492,7 @@ (interfaces . (break-alignable-interface font-interface metronome-mark-interface + outside-staff-interface self-alignment-interface side-position-interface text-interface)))))) @@ -1501,6 +1514,7 @@ (meta . ((class . Spanner) (interfaces . (font-interface multi-measure-interface + outside-staff-interface multi-measure-rest-interface rest-interface staff-symbol-referencer-interface)))))) @@ -1511,23 +1525,20 @@ (direction . ,UP) (font-encoding . fetaText) (padding . 0.4) + (parent-alignment-X . ,CENTER) (self-alignment-X . ,CENTER) (side-axis . ,Y) (springs-and-rods . ,ly:multi-measure-rest::set-text-rods) (staff-padding . 0.4) (stencil . ,ly:text-interface::print) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-centered-on-y-parent))))) - (Y-offset . ,side-position-interface::y-aligned-side) (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-extent . ,grob::always-Y-extent-from-stencil) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Spanner) (interfaces . (font-interface multi-measure-interface + outside-staff-interface self-alignment-interface side-position-interface text-interface)))))) @@ -1537,22 +1548,19 @@ (direction . ,UP) (outside-staff-priority . 450) (padding . 0.2) + (parent-alignment-X . ,CENTER) (self-alignment-X . ,CENTER) (skyline-horizontal-padding . 0.2) (staff-padding . 0.25) (stencil . ,ly:text-interface::print) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-centered-on-y-parent)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self))))) - (Y-offset . ,side-position-interface::y-aligned-side) (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-extent . ,grob::always-Y-extent-from-stencil) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Spanner) (interfaces . (font-interface multi-measure-interface + outside-staff-interface self-alignment-interface side-position-interface text-interface)))))) @@ -1678,6 +1686,7 @@ (interfaces . (font-interface horizontal-bracket-interface line-interface + outside-staff-interface ottava-bracket-interface side-position-interface text-interface)))))) @@ -1743,20 +1752,17 @@ (font-encoding . fetaText) (font-size . -2) (padding . 0.2) + (parent-alignment-X . ,CENTER) (self-alignment-X . ,CENTER) (staff-padding . 0.25) (stencil . ,ly:text-interface::print) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-centered-on-y-parent)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self))))) - (Y-offset . ,side-position-interface::y-aligned-side) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-extent . ,grob::always-Y-extent-from-stencil) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Spanner) (interfaces . (font-interface percent-repeat-interface + outside-staff-interface self-alignment-interface side-position-interface text-interface)))))) @@ -1777,7 +1783,8 @@ (vertical-skylines . ,(ly:make-unpure-pure-container ly:slur::vertical-skylines ly:grob::pure-simple-vertical-skylines-from-extents)) (Y-extent . ,slur::height) (meta . ((class . Spanner) - (interfaces . (slur-interface)))))) + (interfaces . (outside-staff-interface + slur-interface)))))) ;; an example of a text spanner (PianoPedalBracket @@ -1813,18 +1820,14 @@ (self-alignment-X . ,CENTER) (stencil . ,ly:text-interface::print) (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:break-alignable-interface::self-align-callback)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self))))) + (X-offset . ,self-alignment-interface::self-aligned-on-breakable) (Y-offset . ,side-position-interface::y-aligned-side) (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (break-alignable-interface font-interface mark-interface + outside-staff-interface self-alignment-interface side-position-interface text-interface)))))) @@ -1898,7 +1901,9 @@ (cross-staff . ,ly:script-interface::calc-cross-staff) (direction . ,ly:script-interface::calc-direction) (font-encoding . fetaMusic) + (horizon-padding . 0.1) ; to avoid interleaving with accidentals (positioning-done . ,ly:script-interface::calc-positioning-done) + (self-alignment-X . ,CENTER) (side-axis . ,Y) ;; padding set in script definitions. @@ -1912,7 +1917,9 @@ (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Item) (interfaces . (font-interface + outside-staff-interface script-interface + self-alignment-interface side-position-interface)))))) (ScriptColumn @@ -1945,7 +1952,8 @@ (vertical-skylines . ,(ly:make-unpure-pure-container ly:slur::vertical-skylines ly:grob::pure-simple-vertical-skylines-from-extents)) (Y-extent . ,slur::height) (meta . ((class . Spanner) - (interfaces . (slur-interface)))))) + (interfaces . (outside-staff-interface + slur-interface)))))) (SostenutoPedal . ( @@ -1953,10 +1961,11 @@ (extra-spacing-width . (+inf.0 . -inf.0)) (font-shape . italic) (padding . 0.0) ;; padding relative to SostenutoPedalLineSpanner + (parent-alignment-X . #f) (self-alignment-X . ,CENTER) (stencil . ,ly:text-interface::print) (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) - (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (font-interface @@ -1981,6 +1990,7 @@ (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs))) (interfaces . (axis-group-interface + outside-staff-interface piano-pedal-interface side-position-interface)))))) @@ -2111,6 +2121,7 @@ ;; and the extreme minima as abolute minimum length. (direction . ,ly:stem::calc-direction) + (double-stem-separation . 0.5) (duration-log . ,stem::calc-duration-log) (length . ,(ly:make-unpure-pure-container ly:stem::calc-length ly:stem::pure-calc-length)) (neutral-direction . ,DOWN) @@ -2139,17 +2150,13 @@ (beam-thickness . 0.48) ; staff-space (beam-width . ,ly:stem-tremolo::calc-width) ; staff-space (direction . ,ly:stem-tremolo::calc-direction) + (parent-alignment-X . ,CENTER) (slope . ,ly:stem-tremolo::calc-slope) (stencil . ,ly:stem-tremolo::print) (style . ,ly:stem-tremolo::calc-style) (X-extent . ,ly:stem-tremolo::width) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-extent . ,(grob::unpure-Y-extent-from-stencil ly:stem-tremolo::pure-height)) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:self-alignment-interface::centered-on-x-parent)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self))))) (Y-offset . ,(ly:make-unpure-pure-container ly:stem-tremolo::calc-y-offset ly:stem-tremolo::pure-calc-y-offset)) (meta . ((class . Item) (interfaces . (self-alignment-interface @@ -2162,6 +2169,7 @@ (font-encoding . fetaText) (font-size . -5) ; don't overlap when next to heads. (padding . 0.5) + (parent-alignment-X . ,CENTER) (script-priority . 100) (self-alignment-X . ,CENTER) (self-alignment-Y . ,CENTER) @@ -2172,6 +2180,7 @@ (meta . ((class . Item) (interfaces . (font-interface self-alignment-interface + outside-staff-interface side-position-interface string-number-interface text-interface @@ -2183,6 +2192,7 @@ (font-shape . italic) (font-size . -4) ; don't overlap when next to heads. (padding . 0.5) + (parent-alignment-X . ,CENTER) (script-priority . 100) (self-alignment-X . ,CENTER) (self-alignment-Y . ,CENTER) @@ -2192,6 +2202,7 @@ (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (font-interface + outside-staff-interface self-alignment-interface side-position-interface stroke-finger-interface @@ -2202,10 +2213,11 @@ . ( (extra-spacing-width . (+inf.0 . -inf.0)) (padding . 0.0) ;; padding relative to SustainPedalLineSpanner + (parent-alignment-X . #f) (self-alignment-X . ,CENTER) (stencil . ,ly:sustain-pedal::print) (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) - (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (font-interface @@ -2231,6 +2243,7 @@ (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs))) (interfaces . (axis-group-interface + outside-staff-interface piano-pedal-interface side-position-interface)))))) @@ -2251,7 +2264,8 @@ (vertical-skyline-elements . ,ly:system::vertical-skyline-elements) (vertical-alignment . ,ly:system::get-vertical-alignment))) (interfaces . (axis-group-interface - system-interface)))))) + system-interface + outside-staff-axis-group-interface)))))) (SystemStartBar . ( @@ -2349,7 +2363,7 @@ (TextScript . ( (avoid-slur . around) - (cross-staff . ,script-or-side-position-cross-staff) + (cross-staff . #f) (direction . ,DOWN) (extra-spacing-width . (+inf.0 . -inf.0)) (outside-staff-horizontal-padding . 0.2) @@ -2358,19 +2372,23 @@ ;; sync with Fingering ? (padding . 0.3) + (parent-alignment-X . #f) (script-priority . 200) + ;; self-alignment cannot be LEFT because of fingering diagrams. + (self-alignment-X . #f) (side-axis . ,Y) (slur-padding . 0.5) (staff-padding . 0.5) (stencil . ,ly:text-interface::print) (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) - ;; todo: add X self alignment? (Y-extent . ,grob::always-Y-extent-from-stencil) - (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) + (X-align-on-main-noteheads . #t) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Item) (interfaces . (font-interface instrument-specific-markup-interface + outside-staff-interface self-alignment-interface side-position-interface text-interface @@ -2404,6 +2422,7 @@ (interfaces . (font-interface line-interface line-spanner-interface + outside-staff-interface side-position-interface)))))) (Tie @@ -2501,13 +2520,14 @@ (axes . (,X)) (direction . ,RIGHT) (font-size . -4) + ;; minimum shift to the right, in case the parent note has no stem + (minimum-space . 2.5) + (horizon-padding . 0.1) ; to avoid interleaving with augmentation dots (padding . 0.3) (side-axis . ,X) (stencil . ,parenthesize-elements) (stencils . ,parentheses-item::calc-parenthesis-stencils) - ;; offset a bit to the right, further if needed to clear the main note - (X-offset . ,(lambda (grob) - (ly:side-position-interface::x-aligned-side grob 2.5))) + (X-offset . ,ly:side-position-interface::x-aligned-side) (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (axis-group-interface @@ -2556,6 +2576,7 @@ (interfaces . (font-interface line-interface line-spanner-interface + outside-staff-interface side-position-interface trill-spanner-interface)))))) @@ -2578,6 +2599,7 @@ (meta . ((class . Spanner) (interfaces . (line-interface + outside-staff-interface tuplet-bracket-interface)))))) (TupletNumber @@ -2587,12 +2609,14 @@ (direction . ,tuplet-number::calc-direction) (font-shape . italic) (font-size . -2) + (knee-to-beam . #t) (stencil . ,ly:tuplet-number::print) (text . ,tuplet-number::calc-denominator-text) (X-offset . ,ly:tuplet-number::calc-x-offset) (Y-offset . ,ly:tuplet-number::calc-y-offset) (meta . ((class . Spanner) (interfaces . (font-interface + outside-staff-interface text-interface tuplet-number-interface)))))) @@ -2603,11 +2627,12 @@ (extra-spacing-width . (+inf.0 . -inf.0)) (font-shape . italic) (padding . 0.0) ;; padding relative to UnaCordaPedalLineSpanner + (parent-alignment-X . #f) (self-alignment-X . ,CENTER) (stencil . ,ly:text-interface::print) (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) (Y-extent . ,grob::always-Y-extent-from-stencil) - (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (meta . ((class . Item) (interfaces . (font-interface piano-pedal-script-interface @@ -2631,6 +2656,7 @@ (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs))) (interfaces . (axis-group-interface + outside-staff-interface piano-pedal-interface side-position-interface)))))) @@ -2682,7 +2708,8 @@ (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs))) (interfaces . (axis-group-interface - hara-kiri-group-spanner-interface)))))) + hara-kiri-group-spanner-interface + outside-staff-axis-group-interface)))))) (VoiceFollower . ( @@ -2709,6 +2736,7 @@ (VoltaBracket . ( + (baseline-skip . 1.7) (direction . ,UP) (edge-height . (2.0 . 2.0)) ;; staff-space; (font-encoding . fetaText) @@ -2745,6 +2773,7 @@ (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs))) (interfaces . (axis-group-interface + outside-staff-interface side-position-interface volta-interface)))))) @@ -2794,7 +2823,7 @@ (for-each (lambda (x) ;; (display (car x)) (newline) - (set-object-property! (car x) 'translation-type? list?) + (set-object-property! (car x) 'translation-type? ly:grob-properties?) (set-object-property! (car x) 'is-grob? #t)) all-grob-descriptions)