X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdefine-grobs.scm;h=6f169978a4b4025e69afbba0a23ea4655b6ec48c;hb=bd599be12a872b9ca95ebc78e0880e2d13c26b4f;hp=44130334346af5416004a06ac39d5a5d7afce624;hpb=832857653060b17464516f6b65fd68e73724e3e8;p=lilypond.git diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 4413033434..6f169978a4 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -24,16 +24,20 @@ ;; TODO: junk the meta field in favor of something more compact? + (define-public all-grob-descriptions `( (Accidental . ( (alteration . ,accidental-interface::calc-alteration) (avoid-slur . inside) + (glyph-name . ,accidental-interface::glyph-name) (glyph-name-alist . ,standard-alteration-glyph-name-alist) (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 . ,ly:accidental-interface::height) + (Y-extent . ,accidental-interface::height) (meta . ((class . Item) (interfaces . (accidental-interface inline-accidental-interface @@ -46,7 +50,7 @@ (glyph-name-alist . ,standard-alteration-glyph-name-alist) (parenthesized . #t) (stencil . ,ly:accidental-interface::print) - (Y-extent . ,ly:accidental-interface::height) + (Y-extent . ,accidental-interface::height) (meta . ((class . Item) (interfaces . (accidental-interface inline-accidental-interface @@ -80,7 +84,6 @@ (side-axis . ,Y) (staff-padding . 0.25) (stencil . ,ly:accidental-interface::print) - (use-skylines . #t) (X-extent . ,ly:accidental-interface::width) (X-offset . ,(ly:make-simple-closure `(,+ @@ -88,8 +91,8 @@ (list ly:self-alignment-interface::centered-on-x-parent)) ,(ly:make-simple-closure (list ly:self-alignment-interface::x-aligned-on-self))))) - (Y-extent . ,ly:accidental-interface::height) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (Y-extent . ,accidental-interface::height) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Item) (interfaces . (accidental-interface accidental-suggestion-interface @@ -113,7 +116,7 @@ (time-signature . (extra-space . 0.0)) (first-note . (fixed-space . 0.0)))) (X-extent . ,ly:axis-group-interface::width) - (Y-extent . ,ly:axis-group-interface::height) + (Y-extent . ,axis-group-interface::height) (meta . ((class . Item) (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs))) @@ -129,7 +132,7 @@ (side-axis . ,X) (stencil . ,ly:accidental-interface::print) (X-offset . ,ly:side-position-interface::x-aligned-side) - (Y-extent . ,ly:accidental-interface::height) + (Y-extent . ,accidental-interface::height) (meta . ((class . Item) (interfaces . (accidental-interface break-aligned-interface @@ -151,7 +154,8 @@ (duration-log . 2) (glyph-name . ,note-head::calc-glyph-name) (stencil . ,ly:note-head::print) - (Y-offset . ,ly:staff-symbol-referencer::callback) + (Y-offset . ,staff-symbol-referencer::callback) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (ambitus-interface font-interface @@ -165,13 +169,15 @@ (direction . ,LEFT) (padding . 0.5) (positions . ,ly:arpeggio::calc-positions) + (protrusion . 0.4) (script-priority . 0) (side-axis . ,X) (staff-position . 0.0) (stencil . ,ly:arpeggio::print) (X-extent . ,ly:arpeggio::width) + (Y-extent . ,(grob::unpure-Y-extent-from-stencil ly:arpeggio::pure-height)) (X-offset . ,ly:side-position-interface::x-aligned-side) - (Y-offset . ,ly:staff-symbol-referencer::callback) + (Y-offset . ,staff-symbol-referencer::callback) (meta . ((class . Item) (interfaces . (arpeggio-interface font-interface @@ -215,6 +221,7 @@ (layer . 0) (non-musical . #t) + (rounded . #f) (space-alist . ( (time-signature . (extra-space . 0.75)) (custos . (minimum-space . 2.0)) @@ -225,6 +232,7 @@ (next-note . (semi-fixed-space . 0.9)) (right-edge . (extra-space . 0.0)))) (stencil . ,ly:bar-line::print) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) (pure-relevant-grobs . ,ly:pure-from-neighbor-interface::calc-pure-relevant-grobs))) @@ -245,6 +253,9 @@ (font-family . roman) (font-size . -2) (non-musical . #t) + ;; w/o padding, bars numbers are not positioned over the staff as + ;; they are slightly to the left. so we add just a bit. + (horizon-padding . 0.05) (outside-staff-priority . 100) (padding . 1.0) (self-alignment-X . ,RIGHT) @@ -256,7 +267,8 @@ (list ly:break-alignable-interface::self-align-callback)) ,(ly:make-simple-closure (list ly:self-alignment-interface::x-aligned-on-self))))) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (Y-offset . ,side-position-interface::y-aligned-side) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (break-alignable-interface @@ -268,6 +280,7 @@ (BassFigure . ( (stencil . ,ly:text-interface::print) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (bass-figure-interface font-interface @@ -280,10 +293,10 @@ (padding . 0.2) (positioning-done . ,ly:align-interface::align-to-minimum-distances) (stacking-dir . ,DOWN) - (Y-extent . ,ly:axis-group-interface::height) + (X-extent . ,ly:axis-group-interface::width) + (Y-extent . ,axis-group-interface::height) (meta . ((class . Spanner) - (object-callbacks . ((full-score-pure-minimum-translations . ,ly:align-interface::full-score-pure-minimum-translations) - (pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) + (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 . (align-interface axis-group-interface @@ -296,8 +309,9 @@ (padding . 0.5) (side-axis . ,Y) (staff-padding . 1.0) - (Y-extent . ,ly:axis-group-interface::height) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (X-extent . ,ly:axis-group-interface::width) + (Y-extent . ,axis-group-interface::height) + (Y-offset . ,side-position-interface::y-aligned-side) (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))) @@ -324,7 +338,8 @@ (adjacent-pure-heights . ,ly:axis-group-interface::adjacent-pure-heights) (axes . (,Y)) (vertical-skylines . ,ly:axis-group-interface::calc-skylines) - (Y-extent . ,ly:axis-group-interface::height) + (X-extent . ,ly:axis-group-interface::width) + (Y-extent . ,axis-group-interface::height) (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))) @@ -359,6 +374,7 @@ (clip-edges . #t) (collision-interfaces . (beam-interface clef-interface + clef-modifier-interface flag-interface inline-accidental-interface key-signature-interface @@ -387,15 +403,20 @@ ;; only for debugging. (font-family . roman) - (gap . 0.8) + (beam-gap . ,ly:beam::calc-beam-gap) + (minimum-length . ,ly:beam::calc-minimum-length) (neutral-direction . ,DOWN) (positions . ,beam::place-broken-parts-individually) + (springs-and-rods . ,ly:beam::calc-springs-and-rods) (X-positions . ,ly:beam::calc-x-positions) + (transparent . ,(grob::inherit-parent-property + X 'transparent)) ;; this is a hack to set stem lengths, if positions is set. (quantized-positions . ,ly:beam::set-stem-lengths) (shorten . ,ly:beam::calc-stem-shorten) + (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) (stencil . ,ly:beam::print) (meta . ((class . Spanner) @@ -463,8 +484,8 @@ clef key-cancellation key-signature - staff-bar time-signature + staff-bar cue-clef custos))) (non-musical . #t) @@ -494,6 +515,7 @@ (stencil . ,ly:text-interface::print) (text . ,(make-musicglyph-markup "scripts.rcomma")) (Y-offset . ,ly:breathing-sign::offset-callback) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (break-aligned-interface breathing-sign-interface @@ -509,6 +531,7 @@ (extra-spacing-height . (0.2 . -0.2)) (extra-spacing-width . (-0.5 . 0.5)) (word-space . 0.0) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (chord-name-interface font-interface @@ -519,6 +542,7 @@ . ( (avoid-slur . inside) (break-align-anchor . ,ly:break-aligned-interface::calc-extent-aligned-anchor) + (break-align-anchor-alignment . ,RIGHT) (break-align-symbol . clef) (break-visibility . ,begin-of-line-visible) (extra-spacing-height . ,pure-from-neighbor-interface::extra-spacing-height-at-beginning-of-line) @@ -533,7 +557,9 @@ (next-note . (extra-space . 1.0)) (right-edge . (extra-space . 0.5)))) (stencil . ,ly:clef::print) - (Y-offset . ,ly:staff-symbol-referencer::callback) + (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) + (Y-offset . ,staff-symbol-referencer::callback) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) (pure-relevant-grobs . ,ly:pure-from-neighbor-interface::calc-pure-relevant-grobs))) @@ -543,6 +569,31 @@ pure-from-neighbor-interface staff-symbol-referencer-interface)))))) + (ClefModifier + . ( + (break-visibility . ,(grob::inherit-parent-property + X 'break-visibility)) + (font-shape . italic) + (font-size . -4) + (self-alignment-X . ,CENTER) + (staff-padding . 0.2) + (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) + (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) + (Y-extent . ,grob::always-Y-extent-from-stencil) + (meta . ((class . Item) + (interfaces . (clef-modifier-interface + font-interface + self-alignment-interface + side-position-interface + text-interface)))))) + (ClusterSpanner . ( (cross-staff . ,ly:cluster::calc-cross-staff) @@ -576,7 +627,8 @@ ;; todo: add X self alignment? (stencil . ,ly:text-interface::print) (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (Y-offset . ,side-position-interface::y-aligned-side) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (font-interface side-position-interface @@ -603,7 +655,9 @@ (next-note . (extra-space . 1.0)) (right-edge . (extra-space . 0.5)))) (stencil . ,ly:clef::print) - (Y-offset . ,ly:staff-symbol-referencer::callback) + (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) + (Y-offset . ,staff-symbol-referencer::callback) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) (pure-relevant-grobs . ,ly:pure-from-neighbor-interface::calc-pure-relevant-grobs))) @@ -634,7 +688,8 @@ (next-note . (extra-space . 1.0)) (right-edge . (extra-space . 0.5)))) (stencil . ,ly:clef::print) - (Y-offset . ,ly:staff-symbol-referencer::callback) + (Y-offset . ,staff-symbol-referencer::callback) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) (pure-relevant-grobs . ,ly:pure-from-neighbor-interface::calc-pure-relevant-grobs))) @@ -655,7 +710,7 @@ (right-edge . (extra-space . 0.1)))) (stencil . ,ly:custos::print) (style . vaticana) - (Y-offset . ,ly:staff-symbol-referencer::callback) + (Y-offset . ,staff-symbol-referencer::callback) (meta . ((class . Item) (interfaces . (break-aligned-interface custos-interface @@ -678,6 +733,7 @@ (dot-count . ,dots::calc-dot-count) (staff-position . ,dots::calc-staff-position) (stencil . ,ly:dots::print) + (Y-extent . ,grob::always-Y-extent-from-stencil) (extra-spacing-height . (-0.5 . 0.5)) (meta . ((class . Item) (interfaces . (dots-interface @@ -694,6 +750,7 @@ (slash-negative-kern . 1.6) (slope . 1.0) (stencil . ,ly:percent-repeat-item-interface::double-percent) + (Y-extent . ,grob::always-Y-extent-from-stencil) (thickness . 0.48) (meta . ((class . Item) (interfaces . (break-aligned-interface @@ -717,7 +774,8 @@ (list ly:self-alignment-interface::centered-on-y-parent)) ,(ly:make-simple-closure (list ly:self-alignment-interface::x-aligned-on-self))))) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (Y-offset . ,side-position-interface::y-aligned-side) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (font-interface percent-repeat-interface @@ -733,6 +791,7 @@ (slash-negative-kern . 1.6) (slope . 1.0) (stencil . ,ly:percent-repeat-item-interface::beat-slash) + (Y-extent . ,grob::always-Y-extent-from-stencil) (thickness . 0.48) (meta . ((class . Item) (interfaces . (font-interface @@ -747,13 +806,15 @@ (direction . ,DOWN) (minimum-space . 1.2) (outside-staff-priority . 250) + (outside-staff-padding . 0.6) (padding . 0.6) (side-axis . ,Y) (slur-padding . 0.3) (staff-padding . 0.1) + (vertical-skylines . ,grob::always-vertical-skylines-from-element-stencils) (X-extent . ,ly:axis-group-interface::width) - (Y-extent . ,ly:axis-group-interface::height) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (Y-extent . ,axis-group-interface::height) + (Y-offset . ,side-position-interface::y-aligned-side) (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))) @@ -774,16 +835,16 @@ (font-encoding . fetaText) (font-series . bold) (font-shape . italic) - (outside-staff-priority . 250) (positioning-done . ,ly:script-interface::calc-positioning-done) (right-padding . 0.5) (self-alignment-X . ,CENTER) (self-alignment-Y . ,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) - (Y-offset . ,ly:self-alignment-interface::y-aligned-on-self) + (Y-offset . ,self-alignment-interface::y-aligned-on-self) (meta . ((class . Item) - (object-callbacks . ((X-colliding-grobs . ,ly:self-alignment-interface::x-colliding-grobs))) (interfaces . (dynamic-interface dynamic-text-interface font-interface @@ -827,9 +888,11 @@ (minimum-Y-extent . (-1 . 1)) (right-bound-info . ,ly:line-spanner::calc-right-bound-info) + (skyline-horizontal-padding . 0.2) (springs-and-rods . ,ly:spanner::set-spacing-rods) (stencil . ,ly:line-spanner::print) (style . dashed-line) + (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) (meta . ((class . Spanner) (interfaces . (dynamic-interface dynamic-text-spanner-interface @@ -858,7 +921,7 @@ (side-axis . ,Y) (stencil . ,ly:line-spanner::print) (style . line) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Spanner) (interfaces . (episema-interface font-interface @@ -871,7 +934,7 @@ . ( ;; sync with TextScript (?) - + (add-stem-support . ,only-if-beamed) (avoid-slur . around) (cross-staff . ,script-or-side-position-cross-staff) (direction . ,ly:script-interface::calc-direction) @@ -886,6 +949,7 @@ (staff-padding . 0.5) (stencil . ,ly:text-interface::print) (text . ,fingering::calc-text) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (finger-interface font-interface @@ -894,12 +958,23 @@ text-interface text-script-interface)))))) + (FingeringColumn + . ( + (padding . 0.2) + (positioning-done . ,ly:fingering-column::calc-positioning-done) + (snap-radius . 0.3) + (meta . ((class . Item) + (interfaces . (fingering-column-interface)))))) + (Flag . ( + (glyph-name . ,ly:flag::glyph-name) (stencil . ,ly:flag::print) (X-extent . ,ly:flag::width) (X-offset . ,ly:flag::calc-x-offset) - (Y-offset . ,ly:flag::calc-y-offset) + (Y-offset . ,(ly:make-unpure-pure-container ly:flag::calc-y-offset ly:flag::pure-calc-y-offset)) + (Y-extent . ,grob::always-Y-extent-from-stencil) + (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) (meta . ((class . Item) (interfaces . (flag-interface font-interface)))))) @@ -909,7 +984,8 @@ (annotation-balloon . #f) (annotation-line . #t) (automatically-numbered . ,(grob::calc-property-by-copy 'automatically-numbered)) - (break-visibility . ,inherit-y-parent-visibility) + (break-visibility . ,(grob::inherit-parent-property + X 'break-visibility)) (footnote . #t) (footnote-text . ,(grob::calc-property-by-copy 'footnote-text)) (stencil . ,ly:balloon-interface::print) @@ -952,6 +1028,7 @@ (stencil . ,fret-board::calc-stencil) (extra-spacing-height . (0.2 . -0.2)) (extra-spacing-width . (-0.5 . 0.5)) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (chord-name-interface font-interface @@ -978,6 +1055,7 @@ (simple-Y . #t) (stencil . ,ly:line-spanner::print) (style . line) + (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) (X-extent . #f) (Y-extent . #f) (zigzag-width . 0.75) @@ -1035,7 +1113,9 @@ (stencil . ,ly:hairpin::print) (thickness . 1.0) (to-barline . #t) - (Y-offset . ,ly:self-alignment-interface::y-aligned-on-self) + (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) + (Y-extent . ,(grob::unpure-Y-extent-from-stencil ly:hairpin::pure-height)) + (Y-offset . ,self-alignment-interface::y-aligned-on-self) (meta . ((class . Spanner) (interfaces . (dynamic-interface hairpin-interface @@ -1053,7 +1133,7 @@ (staff-padding . 0.2) (stencil . ,ly:horizontal-bracket::print) (thickness . 1.0) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Spanner) (interfaces . (horizontal-bracket-interface line-interface @@ -1086,8 +1166,9 @@ (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) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Item) (interfaces . (font-interface self-alignment-interface @@ -1101,6 +1182,8 @@ (break-visibility . ,begin-of-line-invisible) (glyph-name-alist . ,cancellation-glyph-name-alist) (non-musical . #t) + (flat-positions . (2 3 4 2 1 2 1)) + (sharp-positions . (4 5 4 2 3 2 3)) (space-alist . ( (time-signature . (extra-space . 1.25)) (staff-bar . (extra-space . 0.6)) @@ -1109,9 +1192,11 @@ (right-edge . (extra-space . 0.5)) (first-note . (fixed-space . 2.5)))) (stencil . ,ly:key-signature-interface::print) + (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) + (Y-extent . ,grob::always-Y-extent-from-stencil) (extra-spacing-width . (0.0 . 1.0)) (extra-spacing-height . ,pure-from-neighbor-interface::extra-spacing-height-including-staff) - (Y-offset . ,ly:staff-symbol-referencer::callback) + (Y-offset . ,staff-symbol-referencer::callback) (meta . ((class . Item) (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) (pure-relevant-grobs . ,ly:pure-from-neighbor-interface::calc-pure-relevant-grobs))) @@ -1126,10 +1211,13 @@ . ( (avoid-slur . inside) (break-align-anchor . ,ly:break-aligned-interface::calc-extent-aligned-anchor) + (break-align-anchor-alignment . ,RIGHT) (break-align-symbol . key-signature) (break-visibility . ,begin-of-line-visible) (glyph-name-alist . ,standard-alteration-glyph-name-alist) (non-musical . #t) + (flat-positions . (2 3 4 2 1 2 1)) + (sharp-positions . (4 5 4 2 3 2 3)) (space-alist . ( (time-signature . (extra-space . 1.15)) (staff-bar . (extra-space . 1.1)) @@ -1137,9 +1225,11 @@ (right-edge . (extra-space . 0.5)) (first-note . (fixed-space . 2.5)))) (stencil . ,ly:key-signature-interface::print) + (Y-extent . ,grob::always-Y-extent-from-stencil) (extra-spacing-width . (0.0 . 1.0)) (extra-spacing-height . ,pure-from-neighbor-interface::extra-spacing-height-including-staff) - (Y-offset . ,ly:staff-symbol-referencer::callback) + (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) + (Y-offset . ,staff-symbol-referencer::callback) (meta . ((class . Item) (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) (pure-relevant-grobs . ,ly:pure-from-neighbor-interface::calc-pure-relevant-grobs))) @@ -1149,10 +1239,19 @@ pure-from-neighbor-interface staff-symbol-referencer-interface)))))) + (KievanLigature + . ( + (springs-and-rods . ,ly:spanner::set-spacing-rods) + (stencil . ,ly:kievan-ligature::print) + (padding . 0.5) + (meta . ((class . Spanner) + (interfaces . (font-interface + kievan-ligature-interface)))))) (LaissezVibrerTie . ( (control-points . ,ly:semi-tie::calc-control-points) + (cross-staff . ,semi-tie::calc-cross-staff) (details . ((ratio . 0.333) (height-limit . 1.0))) (direction . ,ly:tie::calc-direction) @@ -1160,6 +1259,8 @@ (stencil . ,laissez-vibrer::print) (thickness . 1.0) (extra-spacing-height . (-0.5 . 0.5)) + (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (semi-tie-interface)))))) @@ -1179,6 +1280,7 @@ (minimum-length-fraction . 0.25) (springs-and-rods . ,ly:ledger-line-spanner::set-spacing-rods) (stencil . ,ly:ledger-line-spanner::print) + (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) (X-extent . #f) (Y-extent . #f) (meta . ((class . Spanner) @@ -1214,6 +1316,7 @@ ;; ugh. A ligature bracket is totally different from ;; a tuplet bracket. + (bracket-visibility . #t) (connect-to-neighbor . ,ly:tuplet-bracket::calc-connect-to-neighbors) (direction . ,UP) (edge-height . (0.7 . 0.7)) @@ -1249,6 +1352,7 @@ (padding . 0.07) (springs-and-rods . ,ly:lyric-hyphen::set-spacing-rods) (stencil . ,ly:lyric-hyphen::print) + (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) (thickness . 1.3) (Y-extent . (0 . 0)) (meta . ((class . Spanner) @@ -1280,7 +1384,10 @@ (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-offset . ,ly:self-alignment-interface::aligned-on-x-parent) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (font-interface lyric-syllable-interface @@ -1288,6 +1395,25 @@ self-alignment-interface text-interface)))))) + (MeasureCounter + . ( + (count-from . 1) + (direction . ,UP) + (font-encoding . fetaText) + (font-size . -2) + (outside-staff-horizontal-padding . 0.5) + (outside-staff-padding . 0.5) + (outside-staff-priority . 750) + (self-alignment-X . ,CENTER) + (side-axis . ,Y) + (staff-padding . 0.5) + (stencil . ,measure-counter-stencil) + (meta . ((class . Spanner) + (interfaces . (font-interface + measure-counter-interface + self-alignment-interface + side-position-interface + text-interface)))))) (MeasureGrouping . ( @@ -1298,7 +1424,7 @@ (staff-padding . 3) (stencil . ,ly:measure-grouping::print) (thickness . 1) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Spanner) (interfaces . (measure-grouping-interface side-position-interface)))))) @@ -1311,6 +1437,7 @@ (MensuralLigature . ( + (springs-and-rods . ,ly:spanner::set-spacing-rods) (stencil . ,ly:mensural-ligature::print) (thickness . 1.3) (meta . ((class . Spanner) @@ -1323,11 +1450,13 @@ (break-visibility . ,end-of-line-invisible) (direction . ,UP) (extra-spacing-width . (+inf.0 . -inf.0)) + (outside-staff-horizontal-padding . 0.2) (outside-staff-priority . 1000) (padding . 0.8) (side-axis . ,Y) (stencil . ,ly:text-interface::print) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (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 @@ -1336,7 +1465,8 @@ (list ly:self-alignment-interface::x-aligned-on-self))))) (self-alignment-X . ,LEFT) (break-align-symbols . (time-signature)) - (non-break-align-symbols . (multi-measure-rest-interface)) + (non-break-align-symbols . (paper-column-interface)) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (break-alignable-interface font-interface @@ -1357,7 +1487,8 @@ (thick-thickness . 6.6) ;; See Wanske pp. 125 (usable-duration-logs . ,(iota 4 -3)) - (Y-offset . ,ly:staff-symbol-referencer::callback) + (Y-extent . ,(ly:make-unpure-pure-container ly:multi-measure-rest::height)) + (Y-offset . ,staff-symbol-referencer::callback) (meta . ((class . Spanner) (interfaces . (font-interface multi-measure-interface @@ -1382,7 +1513,9 @@ (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 . ,ly:side-position-interface::y-aligned-side) + (Y-offset . ,side-position-interface::y-aligned-side) + (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Spanner) (interfaces . (font-interface multi-measure-interface @@ -1396,6 +1529,7 @@ (outside-staff-priority . 450) (padding . 0.2) (self-alignment-X . ,CENTER) + (skyline-horizontal-padding . 0.2) (staff-padding . 0.25) (stencil . ,ly:text-interface::print) (X-offset . ,(ly:make-simple-closure @@ -1404,7 +1538,9 @@ (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 . ,ly:side-position-interface::y-aligned-side) + (Y-offset . ,side-position-interface::y-aligned-side) + (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Spanner) (interfaces . (font-interface multi-measure-interface @@ -1447,7 +1583,7 @@ (positioning-done . ,ly:note-collision-interface::calc-positioning-done) (prefer-dotted-right . #t) (X-extent . ,ly:axis-group-interface::width) - (Y-extent . ,ly:axis-group-interface::height) + (Y-extent . ,axis-group-interface::height) (meta . ((class . Item) (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs))) @@ -1458,10 +1594,11 @@ . ( (axes . (,X ,Y)) (bound-alignment-interfaces . (rhythmic-head-interface stem-interface)) + (cross-staff . ,ly:axis-group-interface::cross-staff) (horizontal-skylines . ,ly:separation-item::calc-skylines) (skyline-vertical-padding . 0.15) (X-extent . ,ly:axis-group-interface::width) - (Y-extent . ,ly:axis-group-interface::height) + (Y-extent . ,axis-group-interface::height) (meta . ((class . Item) (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs))) @@ -1479,7 +1616,8 @@ (stem-attachment . ,ly:note-head::calc-stem-attachment) (stencil . ,ly:note-head::print) (X-offset . ,ly:note-head::stem-x-shift) - (Y-offset . ,ly:staff-symbol-referencer::callback) + (Y-offset . ,staff-symbol-referencer::callback) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (font-interface gregorian-ligature-interface @@ -1495,6 +1633,7 @@ (NoteName . ( (stencil . ,ly:text-interface::print) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (font-interface note-name-interface @@ -1512,28 +1651,6 @@ (interfaces . (note-spacing-interface spacing-interface)))))) - - (OctavateEight - . ( - (break-visibility . ,inherit-x-parent-visibility) - (font-shape . italic) - (font-size . -4) - (self-alignment-X . ,CENTER) - (staff-padding . 0.2) - (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 . ,ly:side-position-interface::y-aligned-side) - (meta . ((class . Item) - (interfaces . (font-interface - self-alignment-interface - side-position-interface - text-interface)))))) - (OttavaBracket . ( (dash-fraction . 0.3) @@ -1547,7 +1664,8 @@ (staff-padding . 1.0) (stencil . ,ly:ottava-bracket::print) (style . dashed-line) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Spanner) (interfaces . (font-interface horizontal-bracket-interface @@ -1565,6 +1683,9 @@ (bound-alignment-interfaces . (note-column-interface)) (horizontal-skylines . ,ly:separation-item::calc-skylines) (keep-inside-line . #t) + ; 0.08 comes from spacing-horizontal-skyline.ly + ; allows double flat of F to be nestled over dots of C + (skyline-vertical-padding . 0.08) ;; (stencil . ,ly:paper-column::print) (X-extent . ,ly:axis-group-interface::width) @@ -1618,7 +1739,8 @@ (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 . ,ly:side-position-interface::y-aligned-side) + (Y-offset . ,side-position-interface::y-aligned-side) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Spanner) (interfaces . (font-interface percent-repeat-interface @@ -1639,8 +1761,8 @@ (springs-and-rods . ,ly:spanner::set-spacing-rods) (stencil . ,ly:slur::print) (thickness . 1.1) - (vertical-skylines . ,ly:slur::vertical-skylines) - (Y-extent . ,ly:slur::height) + (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)))))) @@ -1655,6 +1777,7 @@ (stencil . ,ly:piano-pedal-bracket::print) (style . line) (thickness . 1.0) + (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) (meta . ((class . Spanner) (interfaces . (line-interface piano-pedal-bracket-interface @@ -1665,23 +1788,26 @@ . ( (after-line-breaking . ,ly:side-position-interface::move-to-extremal-staff) (baseline-skip . 2) - (break-align-symbols . (staff-bar clef)) + (break-align-symbols . (staff-bar key-signature clef)) (break-visibility . ,end-of-line-invisible) (direction . ,UP) (extra-spacing-width . (+inf.0 . -inf.0)) (font-size . 2) (non-musical . #t) + (outside-staff-horizontal-padding . 0.12) (outside-staff-priority . 1500) (padding . 0.8) (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))))) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (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 @@ -1695,6 +1821,7 @@ (slash-negative-kern . 0.85) (slope . 1.7) (stencil . ,ly:percent-repeat-item-interface::beat-slash) + (Y-extent . ,grob::always-Y-extent-from-stencil) (thickness . 0.48) (meta . ((class . Item) (interfaces . (percent-repeat-interface @@ -1703,6 +1830,7 @@ (RepeatTie . ( + (cross-staff . ,semi-tie::calc-cross-staff) (control-points . ,ly:semi-tie::calc-control-points) (details . ((ratio . 0.333) (height-limit . 1.0))) @@ -1711,6 +1839,8 @@ (stencil . ,ly:tie::print) (thickness . 1.0) (extra-spacing-height . (-0.5 . 0.5)) + (Y-extent . ,grob::always-Y-extent-from-stencil) + (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) (meta . ((class . Item) (interfaces . (semi-tie-interface)))))) @@ -1731,8 +1861,9 @@ (minimum-distance . 0.25) (stencil . ,ly:rest::print) (X-extent . ,ly:rest::width) - (Y-extent . ,ly:rest::height) - (Y-offset . ,ly:rest::y-offset-callback) + (Y-extent . ,(ly:make-unpure-pure-container ly:rest::height ly:rest::pure-height)) + (Y-offset . ,(ly:make-unpure-pure-container ly:rest::y-offset-callback)) + (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) (meta . ((class . Item) (interfaces . (font-interface rest-interface @@ -1762,9 +1893,10 @@ (staff-padding . 0.25) (stencil . ,ly:script-interface::print) - (use-skylines . #t) + (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) + (Y-extent . ,grob::always-Y-extent-from-stencil) (X-offset . ,script-interface::calc-x-offset) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Item) (interfaces . (font-interface script-interface @@ -1797,8 +1929,8 @@ (springs-and-rods . ,ly:spanner::set-spacing-rods) (stencil . ,ly:slur::print) (thickness . 1.2) - (vertical-skylines . ,ly:slur::vertical-skylines) - (Y-extent . ,ly:slur::height) + (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)))))) @@ -1810,7 +1942,9 @@ (padding . 0.0) ;; padding relative to SostenutoPedalLineSpanner (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) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (font-interface piano-pedal-script-interface @@ -1820,15 +1954,17 @@ (SostenutoPedalLineSpanner . ( (axes . (,Y)) + (cross-staff . ,ly:side-position-interface::calc-cross-staff) (direction . ,DOWN) (minimum-space . 1.0) (outside-staff-priority . 1000) (padding . 1.2) (side-axis . ,Y) (staff-padding . 1.0) + (vertical-skylines . ,grob::always-vertical-skylines-from-element-stencils) (X-extent . ,ly:axis-group-interface::width) - (Y-extent . ,ly:axis-group-interface::height) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (Y-extent . ,axis-group-interface::height) + (Y-offset . ,side-position-interface::y-aligned-side) (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))) @@ -1851,21 +1987,11 @@ (SpanBar . ( (allow-span-bar . #t) - (bar-extent . ,ly:axis-group-interface::height) + (bar-extent . ,axis-group-interface::height) (before-line-breaking . ,ly:span-bar::before-line-breaking) (break-align-symbol . staff-bar) (cross-staff . #t) (glyph-name . ,ly:span-bar::calc-glyph-name) - - ;; ugh duplication! (these 4 properties were copied from Barline) - ;; - ;; 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) - (layer . 0) (non-musical . #t) (stencil . ,ly:span-bar::print) @@ -1878,8 +2004,12 @@ (SpanBarStub . ( - (X-extent . ,grob::x-parent-width) - (Y-extent . ,(ly:make-unpure-pure-container #f ly:axis-group-interface::pure-height)) + (X-extent . ,(grob::inherit-parent-property + X 'X-extent)) + (extra-spacing-height . ,pure-from-neighbor-interface::extra-spacing-height) + ; we want this to be ignored, so empty, but the extra spacing height + ; should preserve the span bar's presence for horizontal spacing + (Y-extent . ,pure-from-neighbor-interface::height-if-pure) (meta . ((class . Item) (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) (pure-relevant-grobs . ,ly:pure-from-neighbor-interface::calc-pure-relevant-grobs))) @@ -1912,7 +2042,7 @@ (ledger-line-thickness . (1.0 . 0.1)) (line-count . 5) (stencil . ,ly:staff-symbol::print) - (Y-extent . ,ly:staff-symbol::height) + (Y-extent . ,(ly:make-unpure-pure-container ly:staff-symbol::height)) (meta . ((class . Spanner) (interfaces . (staff-symbol-interface)))))) @@ -1924,6 +2054,7 @@ (side-axis . ,X) (stencil . ,ly:text-interface::print) (X-offset . ,ly:side-position-interface::x-aligned-side) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (font-interface side-position-interface @@ -1969,17 +2100,17 @@ (direction . ,ly:stem::calc-direction) (duration-log . ,stem::calc-duration-log) - (length . ,stem::length) + (length . ,(ly:make-unpure-pure-container ly:stem::calc-length ly:stem::pure-calc-length)) (neutral-direction . ,DOWN) (positioning-done . ,ly:stem::calc-positioning-done) (stem-info . ,ly:stem::calc-stem-info) - (stem-begin-position . ,ly:stem::calc-stem-begin-position) + (stem-begin-position . ,(ly:make-unpure-pure-container ly:stem::calc-stem-begin-position ly:stem::pure-calc-stem-begin-position)) (stencil . ,ly:stem::print) (thickness . 1.3) (X-extent . ,ly:stem::width) (X-offset . ,ly:stem::offset-callback) - (Y-extent . ,ly:stem::height) - (Y-offset . ,ly:staff-symbol-referencer::callback) + (Y-extent . ,(ly:make-unpure-pure-container ly:stem::height ly:stem::pure-height)) + (Y-offset . ,staff-symbol-referencer::callback) (meta . ((class . Item) (interfaces . (stem-interface)))))) @@ -1995,17 +2126,19 @@ . ( (beam-thickness . 0.48) ; staff-space (beam-width . ,ly:stem-tremolo::calc-width) ; staff-space + (direction . ,ly:stem-tremolo::calc-direction) (slope . ,ly:stem-tremolo::calc-slope) (stencil . ,ly:stem-tremolo::print) (style . ,ly:stem-tremolo::calc-style) (X-extent . ,ly:stem-tremolo::width) + (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:stem-tremolo::calc-y-offset) + (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 stem-tremolo-interface)))))) @@ -2023,6 +2156,7 @@ (staff-padding . 0.5) (stencil . ,print-circled-text-callback) (text . ,string-number::calc-text) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (font-interface self-alignment-interface @@ -2043,6 +2177,7 @@ (staff-padding . 0.5) (stencil . ,ly:text-interface::print) (text . ,stroke-finger::calc-text) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (font-interface self-alignment-interface @@ -2058,7 +2193,9 @@ (padding . 0.0) ;; padding relative to SustainPedalLineSpanner (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) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (font-interface piano-pedal-interface @@ -2069,15 +2206,17 @@ (SustainPedalLineSpanner . ( (axes . (,Y)) + (cross-staff . ,ly:side-position-interface::calc-cross-staff) (direction . ,DOWN) (minimum-space . 1.0) (outside-staff-priority . 1000) (padding . 1.2) (side-axis . ,Y) (staff-padding . 1.2) + (vertical-skylines . ,grob::always-vertical-skylines-from-element-stencils) (X-extent . ,ly:axis-group-interface::width) - (Y-extent . ,ly:axis-group-interface::height) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (Y-extent . ,axis-group-interface::height) + (Y-offset . ,side-position-interface::y-aligned-side) (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))) @@ -2089,15 +2228,18 @@ . ( (adjacent-pure-heights . ,ly:axis-group-interface::adjacent-pure-heights) (axes . (,X ,Y)) - (skyline-horizontal-padding . 0.5) + (outside-staff-placement-directive . left-to-right-polite) + (skyline-horizontal-padding . 1.0) (vertical-skylines . ,ly:axis-group-interface::calc-skylines) (X-extent . ,ly:axis-group-interface::width) - (Y-extent . ,ly:system::height) + (Y-extent . ,(ly:make-unpure-pure-container ly:system::height ly:system::calc-pure-height)) (meta . ((class . System) (object-callbacks . ((footnotes-before-line-breaking . ,ly:system::footnotes-before-line-breaking) (footnotes-after-line-breaking . ,ly:system::footnotes-after-line-breaking) (pure-relevant-grobs . ,ly:system::calc-pure-relevant-grobs) - (pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common))) + (pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) + (vertical-skyline-elements . ,ly:system::vertical-skyline-elements) + (vertical-alignment . ,ly:system::get-vertical-alignment))) (interfaces . (axis-group-interface system-interface)))))) @@ -2106,6 +2248,7 @@ (collapse-height . 5.0) (direction . ,LEFT) + (cross-staff . #t) ;; ugh--hardcoded. (padding . -0.1) ;; bar must cover rounded ending of staff line. (stencil . ,ly:system-start-delimiter::print) @@ -2122,6 +2265,7 @@ (collapse-height . 5.0) (direction . ,LEFT) (font-encoding . fetaBraces) + (cross-staff . #t) (padding . 0.3) (stencil . ,ly:system-start-delimiter::print) (style . brace) @@ -2136,6 +2280,7 @@ . ( (collapse-height . 5.0) (direction . ,LEFT) + (cross-staff . #t) (padding . 0.8) (stencil . ,ly:system-start-delimiter::print) (style . bracket) @@ -2150,6 +2295,7 @@ (SystemStartSquare . ( (direction . ,LEFT) + (cross-staff . #t) (stencil . ,ly:system-start-delimiter::print) (style . line-bracket) (thickness . 1.0) @@ -2187,7 +2333,8 @@ (stencil . ,tab-note-head::print) (whiteout . #t) (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) - (Y-offset . ,ly:staff-symbol-referencer::callback) + (Y-offset . ,staff-symbol-referencer::callback) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (font-interface note-head-interface @@ -2203,19 +2350,22 @@ (cross-staff . ,script-or-side-position-cross-staff) (direction . ,DOWN) (extra-spacing-width . (+inf.0 . -inf.0)) + (outside-staff-horizontal-padding . 0.12) (outside-staff-priority . 450) ;; sync with Fingering ? - (padding . 0.5) + (padding . 0.3) (script-priority . 200) (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) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Item) (interfaces . (font-interface instrument-specific-markup-interface @@ -2230,7 +2380,7 @@ (padding . 0.25) (attach-dir . ,LEFT) )) - (left-broken . ((end-on-note . #t))) + (left-broken . ((attach-dir . ,RIGHT))) (right . ((Y . 0) (padding . 0.25) )) @@ -2246,7 +2396,7 @@ (staff-padding . 0.8) (stencil . ,ly:line-spanner::print) (style . dashed-line) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Spanner) (interfaces . (font-interface @@ -2286,6 +2436,7 @@ (neutral-direction . ,UP) (springs-and-rods . ,ly:spanner::set-spacing-rods) (stencil . ,ly:tie::print) + (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) (thickness . 1.2) (meta . ((class . Spanner) (interfaces . (tie-interface)))))) @@ -2314,8 +2465,9 @@ (cue-clef . (extra-space . 1.5)) (first-note . (fixed-space . 2.0)) (right-edge . (extra-space . 0.5)) - (staff-bar . (minimum-space . 2.0)))) + (staff-bar . (extra-space . 1.0)))) (stencil . ,ly:time-signature::print) + (Y-extent . ,grob::always-Y-extent-from-stencil) (style . C) (meta . ((class . Item) (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common) @@ -2334,7 +2486,7 @@ (side-axis . ,X) (stencil . ,ly:accidental-interface::print) (X-offset . ,ly:side-position-interface::x-aligned-side) - (Y-extent . ,ly:accidental-interface::height) + (Y-extent . ,accidental-interface::height) (meta . ((class . Item) (interfaces . (accidental-interface font-interface @@ -2352,6 +2504,7 @@ (stencil . ,parenthesize-elements) (stencils . ,parentheses-item::calc-parenthesis-stencils) (X-offset . ,ly:side-position-interface::x-aligned-side) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (axis-group-interface font-interface @@ -2364,7 +2517,8 @@ (duration-log . 2) (font-size . -4) (stencil . ,ly:note-head::print) - (Y-offset . ,ly:staff-symbol-referencer::callback) + (Y-offset . ,staff-symbol-referencer::callback) + (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (font-interface ledgered-interface @@ -2393,7 +2547,7 @@ (staff-padding . 1.0) (stencil . ,ly:line-spanner::print) (style . trill) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Spanner) (interfaces . (font-interface line-interface @@ -2415,6 +2569,7 @@ (staff-padding . 0.25) (stencil . ,ly:tuplet-bracket::print) (thickness . 1.6) + (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) (X-positions . ,ly:tuplet-bracket::calc-x-positions) (meta . ((class . Spanner) @@ -2446,6 +2601,8 @@ (padding . 0.0) ;; padding relative to UnaCordaPedalLineSpanner (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) (meta . ((class . Item) (interfaces . (font-interface @@ -2456,15 +2613,17 @@ (UnaCordaPedalLineSpanner . ( (axes . (,Y)) + (cross-staff . ,ly:side-position-interface::calc-cross-staff) (direction . ,DOWN) (minimum-space . 1.0) (outside-staff-priority . 1000) (padding . 1.2) (side-axis . ,Y) (staff-padding . 1.2) + (vertical-skylines . ,grob::always-vertical-skylines-from-element-stencils) (X-extent . ,ly:axis-group-interface::width) - (Y-extent . ,ly:axis-group-interface::height) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (Y-extent . ,axis-group-interface::height) + (Y-offset . ,side-position-interface::y-aligned-side) (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))) @@ -2489,10 +2648,9 @@ (stacking-dir . -1) (vertical-skylines . ,ly:axis-group-interface::combine-skylines) (X-extent . ,ly:axis-group-interface::width) - (Y-extent . ,ly:axis-group-interface::height) + (Y-extent . ,axis-group-interface::height) (meta . ((class . Spanner) - (object-callbacks . ((full-score-pure-minimum-translations . ,ly:align-interface::full-score-pure-minimum-translations) - (Y-common . ,ly:axis-group-interface::calc-y-common) + (object-callbacks . ((Y-common . ,ly:axis-group-interface::calc-y-common) (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs) (pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common))) (interfaces . (align-interface @@ -2506,11 +2664,13 @@ (minimum-distance . 8) (padding . 1))) (nonstaff-unrelatedstaff-spacing . ((padding . 0.5))) - (staff-staff-spacing . ,ly:axis-group-interface::calc-staff-staff-spacing) + (outside-staff-placement-directive . left-to-right-polite) + (staff-staff-spacing . ,(ly:make-unpure-pure-container ly:axis-group-interface::calc-staff-staff-spacing ly:axis-group-interface::calc-pure-staff-staff-spacing)) (stencil . ,ly:axis-group-interface::print) + (skyline-horizontal-padding . 0.1) (vertical-skylines . ,ly:hara-kiri-group-spanner::calc-skylines) (X-extent . ,ly:axis-group-interface::width) - (Y-extent . ,ly:hara-kiri-group-spanner::y-extent) + (Y-extent . ,(ly:make-unpure-pure-container ly:hara-kiri-group-spanner::y-extent ly:hara-kiri-group-spanner::pure-height)) (Y-offset . ,ly:hara-kiri-group-spanner::force-hara-kiri-callback) (meta . ((class . Spanner) (object-callbacks . ( @@ -2531,6 +2691,7 @@ (padding . 1.5) )) )) + (cross-staff . #t) (gap . 0.5) (left-bound-info . ,ly:line-spanner::calc-left-bound-info) (non-musical . #t) @@ -2549,9 +2710,12 @@ (edge-height . (2.0 . 2.0)) ;; staff-space; (font-encoding . fetaText) (font-size . -4) + (shorten-pair . ,ly:volta-bracket::calc-shorten-pair) (stencil . ,ly:volta-bracket-interface::print) (thickness . 1.6) ;; line-thickness (word-space . 0.6) + (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) + (Y-extent . ,(grob::unpure-Y-extent-from-stencil volta-bracket-interface::pure-height)) (meta . ((class . Spanner) (interfaces . (font-interface horizontal-bracket-interface @@ -2570,9 +2734,10 @@ (outside-staff-priority . 600) (padding . 1) (side-axis . ,Y) + (vertical-skylines . ,grob::always-vertical-skylines-from-element-stencils) (X-extent . ,ly:axis-group-interface::width) - (Y-extent . ,ly:axis-group-interface::height) - (Y-offset . ,ly:side-position-interface::y-aligned-side) + (Y-extent . ,axis-group-interface::height) + (Y-offset . ,side-position-interface::y-aligned-side) (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))) @@ -2631,140 +2796,3 @@ all-grob-descriptions) (set! all-grob-descriptions (sort all-grob-descriptions alist