X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdefine-grobs.scm;h=ab6b270f2437edcd8c384f14b0d205e992dcce2a;hb=930597f24f94aade895376441deb0c2435aa9e95;hp=c3315a3b42c77d830d9b858ca5a1d0f21f35688f;hpb=2d434063c5fc285a8f6a5c2742983551425d9922;p=lilypond.git diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index c3315a3b42..ab6b270f24 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -2,7 +2,7 @@ ;;;; ;;;; source file of the GNU LilyPond music typesetter ;;;; -;;;; (c) 1998--2006 Han-Wen Nienhuys +;;;; (c) 1998--2007 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen ;;;; distances are given in line-thickness (thicknesses) and @@ -21,33 +21,37 @@ . ( (avoid-slur . inside) (glyph-name-alist . ,standard-alteration-glyph-name-alist) - (alteration . ,accidental-interface::calc-alteration) + (alteration . ,accidental-interface::calc-alteration) (stencil . ,ly:accidental-interface::print) (Y-extent . ,ly:accidental-interface::height) + (X-extent . ,ly:accidental-interface::width) (meta . ((class . Item) (interfaces . (accidental-interface font-interface)))))) + (AccidentalCautionary . ( (avoid-slur . inside) (parenthesized . #t) (glyph-name-alist . ,standard-alteration-glyph-name-alist) - (alteration . ,accidental-interface::calc-alteration) + (alteration . ,accidental-interface::calc-alteration) (stencil . ,ly:accidental-interface::print) (Y-extent . ,ly:accidental-interface::height) (meta . ((class . Item) (interfaces . (accidental-interface font-interface)))))) - (AccidentalSuggestion . ( (stencil . ,ly:accidental-interface::print) + (X-extent . ,ly:accidental-interface::width) (Y-extent . ,ly:accidental-interface::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))))) + ,(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))))) (self-alignment-X . ,CENTER) (font-size . -2) (glyph-name-alist . ,standard-alteration-glyph-name-alist) @@ -57,7 +61,7 @@ (staff-padding . 0.25) (outside-staff-priority . 0) (script-priority . 0) - (side-axis . ,X) + (side-axis . ,Y) (meta . ((class . Item) (interfaces . (side-position-interface script-interface @@ -85,7 +89,7 @@ (Ambitus . ( - (axes . (0 1)) + (axes . (,X ,Y)) (X-extent . ,ly:axis-group-interface::width) (Y-extent . ,ly:axis-group-interface::height) (space-alist . ( @@ -149,6 +153,7 @@ (Y-offset . ,ly:staff-symbol-referencer::callback) (X-offset . ,ly:side-position-interface::x-aligned-side) (direction . ,LEFT) + (positions . ,ly:arpeggio::calc-positions) (padding . 0.5) (script-priority . 0) (side-axis . ,X) @@ -180,6 +185,8 @@ (stencil . ,ly:bar-line::print) (glyph-name . ,bar-line::calc-glyph-name) (bar-size . ,ly:bar-line::calc-bar-size) + (bar-extent . ,ly:bar-line::calc-bar-extent) + (allow-span-bar . #t) (space-alist . ( (time-signature . (extra-space . 0.75)) @@ -216,6 +223,7 @@ (font-size . -2) (Y-offset . ,ly:side-position-interface::y-aligned-side) (side-axis . ,Y) + (outside-staff-priority . 100) (X-offset . ,(ly:make-simple-closure `(,+ ,(ly:make-simple-closure @@ -233,9 +241,7 @@ text-interface break-alignable-interface self-alignment-interface - font-interface - )))) - )) + font-interface)))))) (BassFigure . ( @@ -252,7 +258,7 @@ (threshold . (2 . 1000)) (positioning-done . ,ly:align-interface::calc-positioning-done) (Y-extent . ,ly:axis-group-interface::height) - (stacking-dir . -1) + (stacking-dir . ,DOWN) (padding . 0.2) (meta . ((class . Spanner) (interfaces . (align-interface @@ -269,8 +275,7 @@ (padding . 0.5) (meta . ((class . Spanner) (interfaces . (side-position-interface - axis-group-interface - )))))) + axis-group-interface)))))) (BassFigureBracket . ( @@ -278,15 +283,15 @@ (X-extent . ,ly:enclosing-bracket::width) (edge-height . (0.2 . 0.2)) (meta . ((class . Item) - (interfaces . (enclosing-bracket-interface)) )) - )) + (interfaces . (enclosing-bracket-interface)))))) + (BassFigureContinuation . ( (stencil . ,ly:figured-bass-continuation::print) (Y-offset . ,ly:figured-bass-continuation::center-on-figures) (meta . ((class . Spanner) - (interfaces . (figured-bass-continuation-interface)) - )))) + (interfaces . (figured-bass-continuation-interface)))))) + (BassFigureLine . ( (axes . (,Y)) @@ -294,8 +299,7 @@ (vertical-skylines . ,ly:axis-group-interface::calc-skylines) (adjacent-pure-heights . ,ly:axis-group-interface::adjacent-pure-heights) (meta . ((class . Spanner) - (interfaces . (axis-group-interface - )))))) + (interfaces . (axis-group-interface)))))) (Beam @@ -403,14 +407,14 @@ staff-bar time-signature custos))) - (axes . (0)) + (axes . (,X)) (meta . ((class . Item) (interfaces . (break-alignment-interface axis-group-interface)))))) (BreakAlignGroup . ( - (axes . (0)) + (axes . (,X)) (X-extent . ,ly:axis-group-interface::width) (break-align-anchor . ,ly:break-aligned-interface::calc-average-anchor) (break-visibility . ,ly:break-aligned-interface::calc-break-visibility) @@ -479,6 +483,7 @@ (stencil . ,ly:cluster::print) (minimum-length . 0.0) (padding . 0.25) + (cross-staff . ,ly:cluster::calc-cross-staff) (style . ramp) (meta . ((class . Spanner) (interfaces . (cluster-interface)))))) @@ -494,8 +499,7 @@ (interfaces . (font-interface rhythmic-grob-interface text-interface - chord-name-interface - )))))) + chord-name-interface)))))) (CombineTextScript . ( @@ -510,6 +514,7 @@ ;; todo: add X self alignment? (baseline-skip . 2) (side-axis . ,Y) + (avoid-slur . outside ) (font-series . bold) (meta . ((class . Item) (interfaces . (text-script-interface @@ -538,7 +543,7 @@ (DotColumn . ( - (axes . (0)) + (axes . (,X)) (direction . ,RIGHT) (positioning-done . ,ly:dot-column::calc-positioning-done) (X-extent . ,ly:axis-group-interface::width) @@ -569,16 +574,21 @@ (meta . ((class . Item) (interfaces . (font-interface break-aligned-interface + percent-repeat-interface percent-repeat-item-interface)))))) (DoublePercentRepeatCounter . ( (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))))) + (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 . ,ly:side-position-interface::y-aligned-side) (font-encoding . fetaNumber) - (self-alignment-X . 0) + (self-alignment-X . ,CENTER) (font-size . -2) (direction . ,UP) (padding . 0.2) @@ -588,11 +598,13 @@ (interfaces . (side-position-interface self-alignment-interface percent-repeat-item-interface + percent-repeat-interface font-interface text-interface)))))) + (DynamicLineSpanner . ( - (axes . (1)) + (axes . (,Y)) (Y-offset . ,ly:side-position-interface::y-aligned-side) (staff-padding . 0.1) (padding . 0.6) @@ -603,6 +615,7 @@ (outside-staff-priority . 250) (Y-extent . ,ly:axis-group-interface::height) (X-extent . ,ly:axis-group-interface::width) + (cross-staff . ,ly:side-position-interface::calc-cross-staff) (meta . ((class . Spanner) (interfaces . (axis-group-interface dynamic-interface @@ -619,9 +632,9 @@ (positioning-done . ,ly:script-interface::calc-positioning-done) (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) - (self-alignment-X . 0) + (self-alignment-X . ,CENTER) (Y-offset . ,ly:self-alignment-interface::y-aligned-on-self) - (self-alignment-Y . 0) + (self-alignment-Y . ,CENTER) (font-series . bold) (font-encoding . fetaDynamic) (font-shape . italic) @@ -686,12 +699,13 @@ (avoid-slur . around) (slur-padding . 0.2) (staff-padding . 0.5) - (self-alignment-X . 0) - (self-alignment-Y . 0) + (self-alignment-X . ,CENTER) + (self-alignment-Y . ,CENTER) (script-priority . 100) (stencil . ,ly:text-interface::print) (direction . ,ly:script-interface::calc-direction) (positioning-done . ,ly:script-interface::calc-positioning-done) + (cross-staff . ,ly:side-position-interface::calc-cross-staff) (text . ,fingering::calc-text) (font-encoding . fetaNumber) @@ -702,16 +716,16 @@ text-script-interface text-interface side-position-interface - self-alignment-interface - )))))) + self-alignment-interface)))))) + (FretBoard . ((stencil . ,fret-board::calc-stencil) - (finger-code . below-string) + (fret-diagram-details . ((finger-code . below-string))) (meta . ((class . Item) (interfaces . (fret-diagram-interface - font-interface - )))) - )) + font-interface)))))) + + (Glissando . ( (style . line) @@ -757,15 +771,17 @@ (stencil . ,ly:grid-line-interface::print) (self-alignment-X . ,CENTER) (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))))) + `(,+ + ,(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))))) (layer . 0) (meta . ((class . Item) (interfaces . (self-alignment-interface grid-line-interface)))))) + (Hairpin . ( (stencil . ,ly:hairpin::print) @@ -773,11 +789,12 @@ (after-line-breaking . ,ly:hairpin::after-line-breaking) (grow-direction . ,hairpin::calc-grow-direction) (circled-tip . #f) + (to-barline . #t) (thickness . 1.0) (height . 0.6666) (minimum-length . 2.0) (bound-padding . 1.0) - (self-alignment-Y . 0) + (self-alignment-Y . ,CENTER) (Y-offset . ,ly:self-alignment-interface::y-aligned-on-self) (meta . ((class . Spanner) (interfaces . (hairpin-interface @@ -803,6 +820,8 @@ side-position-interface line-interface spanner-interface)))))) + + (InstrumentName . ( (padding . 0.3) @@ -810,6 +829,7 @@ (X-offset . ,ly:side-position-interface::x-aligned-side) (direction . ,LEFT) (self-alignment-Y . ,CENTER) + (self-alignment-X . ,CENTER) (meta . ((class . Spanner) (interfaces . (system-start-text-interface side-position-interface @@ -817,17 +837,20 @@ (InstrumentSwitch . ( - (padding . 0.3) + (padding . 0.5) (stencil . ,ly:text-interface::print) (Y-offset . ,ly:side-position-interface::y-aligned-side) (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) - (staff-padding . 2) + (staff-padding . 0.5) (direction . ,UP) - (self-alignment-X . ,CENTER) + (side-axis . ,Y) + (self-alignment-X . ,LEFT) + (outside-staff-priority . 500) + (extra-spacing-width . '(+inf.0 . -inf.0)) (meta . ((class . Item) - (interfaces . (system-start-text-interface - side-position-interface + (interfaces . (side-position-interface font-interface)))))) + (KeyCancellation . ( @@ -848,6 +871,7 @@ key-signature-interface font-interface break-aligned-interface)))))) + (KeySignature . ( (stencil . ,ly:key-signature-interface::print) @@ -879,9 +903,7 @@ (head-direction . ,LEFT) (thickness . 1.0) (meta . ((class . Item) - (interfaces . (semi-tie-interface)) - )) - )) + (interfaces . (semi-tie-interface)))))) (LaissezVibrerTieColumn . ( @@ -890,9 +912,7 @@ (head-direction . ,LEFT) (positioning-done . ,ly:semi-tie-column::calc-positioning-done) (meta . ((class . Item) - (interfaces . (semi-tie-column-interface)) - )) - )) + (interfaces . (semi-tie-column-interface)))))) (LedgerLineSpanner . ( @@ -947,7 +967,6 @@ (interfaces . (line-interface tuplet-bracket-interface)))))) - (LyricExtender . ( (stencil . ,ly:lyric-extender::print) @@ -984,19 +1003,18 @@ (X-extent . #f) (meta . ((class . Spanner) (interfaces . (spanner-interface - lyric-hyphen-interface )) - )) - )) + lyric-hyphen-interface)))))) (LyricText . ( (stencil . ,lyric-text::print) (text . ,(grob::calc-property-by-copy 'text)) (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) - (self-alignment-X . 0) + (self-alignment-X . ,CENTER) (word-space . 0.6) (font-series . bold-narrow) (font-size . 1.0) + (extra-spacing-width . (0.0 . 0.0)) (meta . ((class . Item) (interfaces . (rhythmic-grob-interface lyric-syllable-interface @@ -1023,7 +1041,8 @@ . ( (neutral-direction . ,DOWN) (meta . ((class . Item) - (interfaces . (melody-spanner-interface )))))) + (interfaces . (melody-spanner-interface)))))) + (MensuralLigature . ( (thickness . 1.4) @@ -1040,6 +1059,7 @@ (direction . ,UP) (padding . 0.8) (side-axis . ,Y) + (extra-spacing-width . (+inf.0 . -inf.0)) (outside-staff-priority . 1000) (meta . ((class . Item) (interfaces . (text-interface @@ -1047,7 +1067,6 @@ font-interface metronome-mark-interface)))))) - (MultiMeasureRest . ( (stencil . ,ly:multi-measure-rest::print) @@ -1065,18 +1084,20 @@ font-interface staff-symbol-referencer-interface)))))) - (MultiMeasureRestNumber . ( (bound-padding . 2.0) (springs-and-rods . ,ly:multi-measure-rest::set-text-rods) (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))))) + `(,+ + ,(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 . ,ly:side-position-interface::y-aligned-side) (side-axis . ,Y) - (self-alignment-X . 0) + (self-alignment-X . ,CENTER) (direction . ,UP) (padding . 0.4) (staff-padding . 0.4) @@ -1086,21 +1107,23 @@ multi-measure-interface self-alignment-interface font-interface - text-interface)))) - )) + text-interface)))))) (MultiMeasureRestText . ( (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))))) - + `(,+ + ,(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 . ,ly:side-position-interface::y-aligned-side) - (self-alignment-X . 0) + (self-alignment-X . ,CENTER) (direction . ,UP) (padding . 0.2) (staff-padding . 0.25) + (outside-staff-priority . 450) (meta . ((class . Spanner) (interfaces . (side-position-interface multi-measure-interface @@ -1108,12 +1131,14 @@ font-interface text-interface)))))) + (NonMusicalPaperColumn . ( (allow-loose-spacing . #t) - (axes . (0)) + (axes . (,X)) (before-line-breaking . ,ly:paper-column::before-line-breaking) (X-extent . ,ly:axis-group-interface::width) + (horizontal-skylines . ,ly:separation-item::calc-skylines) ;; (stencil . ,ly:paper-column::print) (non-musical . #t) @@ -1126,13 +1151,15 @@ (meta . ((class . Paper_column) (interfaces . (paper-column-interface axis-group-interface + separation-item-interface spaceable-grob-interface)))))) - + (NoteCollision . ( - (axes . (0 1)) + (axes . (,X ,Y)) (X-extent . ,ly:axis-group-interface::width) (Y-extent . ,ly:axis-group-interface::height) + (prefer-dotted-right . #t) (positioning-done . ,ly:note-collision-interface::calc-positioning-done) (meta . ((class . Item) (interfaces . (note-collision-interface @@ -1140,11 +1167,13 @@ (NoteColumn . ( - (axes . (0 1)) + (axes . (,X ,Y)) (X-extent . ,ly:axis-group-interface::width) (Y-extent . ,ly:axis-group-interface::height) + (horizontal-skylines . ,ly:separation-item::calc-skylines) (meta . ((class . Item) (interfaces . (axis-group-interface + separation-item-interface note-column-interface)))))) (NoteHead @@ -1152,7 +1181,7 @@ (stencil . ,ly:note-head::print) (duration-log . ,note-head::calc-duration-log) (stem-attachment . ,ly:note-head::calc-stem-attachment) - (glyph-name . ,note-head::calc-glyph-name) + (glyph-name . ,note-head::calc-glyph-name) (Y-offset . ,ly:staff-symbol-referencer::callback) (X-offset . ,ly:note-head::stem-x-shift) (meta . ((class . Item) @@ -1167,11 +1196,12 @@ . ( (stem-spacing-correction . 0.5) (same-direction-correction . 0.25) + (space-to-barline . #t) ;; Changed this from 0.75. ;; If you ever change this back, please document! --hwn (knee-spacing-correction . 1.0) (meta . ((class . Item) - (interfaces . ( + (interfaces . (spacing-interface note-spacing-interface)))))) (NoteName @@ -1182,14 +1212,17 @@ text-interface font-interface)))))) + (OctavateEight . ( - (self-alignment-X . 0) + (self-alignment-X . ,CENTER) (break-visibility . ,begin-of-line-visible) (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))))) - + `(,+ + ,(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) (stencil . ,ly:text-interface::print) (font-shape . italic) @@ -1210,6 +1243,7 @@ (staff-padding . 1.0) (padding . 0.5) (minimum-length . 1.0) + (style . dashed-line) (dash-fraction . 0.3) (edge-height . (0 . 1.2)) (direction . ,UP) @@ -1222,11 +1256,13 @@ font-interface text-interface)))))) + (PaperColumn . ( - (axes . (0)) + (axes . (,X)) (allow-loose-spacing . #t) (before-line-breaking . ,ly:paper-column::before-line-breaking) + (horizontal-skylines . ,ly:separation-item::calc-skylines) ;; (stencil . ,ly:paper-column::print) (X-extent . ,ly:axis-group-interface::width) @@ -1234,6 +1270,7 @@ ;; (font-size . -6) (font-name . "sans") (Y-extent . #f) (meta . ((class . Paper_column) (interfaces . (paper-column-interface + separation-item-interface axis-group-interface spaceable-grob-interface)))))) @@ -1243,16 +1280,14 @@ (font-size . -6) (padding . 0.2) (meta . ((class . Item) - (interfaces . (parentheses-interface font-interface)))) - )) + (interfaces . (parentheses-interface font-interface)))))) (HarmonicParenthesesItem . ((stencil . ,parentheses-item::print) (padding . 0) (stencils . ,parentheses-item::calc-angled-bracket-stencils) (meta . ((class . Item) - (interfaces . (parentheses-interface font-interface)))) - )) + (interfaces . (parentheses-interface font-interface)))))) (PhrasingSlur . ((details . ,default-slur-details) @@ -1269,8 +1304,6 @@ (meta . ((class . Spanner) (interfaces . (slur-interface)))))) - - (PercentRepeat . ( (springs-and-rods . ,ly:multi-measure-rest::set-spacing-rods) @@ -1281,15 +1314,20 @@ (meta . ((class . Spanner) (interfaces . (multi-measure-rest-interface font-interface - percent-repeat-item-interface)))))) + percent-repeat-interface + )))))) + (PercentRepeatCounter . ( (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))))) + `(,+ + ,(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 . ,ly:side-position-interface::y-aligned-side) - (self-alignment-X . 0) + (self-alignment-X . ,CENTER) (direction . ,UP) (padding . 0.2) (staff-padding . 0.25) @@ -1298,7 +1336,7 @@ (meta . ((class . Spanner) (interfaces . (side-position-interface self-alignment-interface - percent-repeat-item-interface + percent-repeat-interface font-interface text-interface)))))) @@ -1318,6 +1356,7 @@ piano-pedal-interface piano-pedal-bracket-interface)))))) + (RehearsalMark . ( (stencil . ,ly:text-interface::print) @@ -1327,9 +1366,9 @@ (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) - (self-alignment-X . 0) + (extra-spacing-width . (+inf.0 . -inf.0)) + (self-alignment-X . ,CENTER) (direction . ,UP) (non-musical . #t) (font-size . 2) @@ -1353,6 +1392,7 @@ (slope . 1.7) (meta . ((class . Item) (interfaces . (rhythmic-grob-interface + percent-repeat-interface percent-repeat-item-interface)))))) (RepeatTie @@ -1365,9 +1405,7 @@ (thickness . 1.0) (head-direction . ,RIGHT) (meta . ((class . Item) - (interfaces . (semi-tie-interface)) - )) - )) + (interfaces . (semi-tie-interface)))))) (RepeatTieColumn . ( @@ -1378,9 +1416,7 @@ (positioning-done . ,ly:semi-tie-column::calc-positioning-done) (meta . ((class . Item) - (interfaces . (semi-tie-column-interface)) - )) - )) + (interfaces . (semi-tie-column-interface)))))) (Rest . ( @@ -1390,6 +1426,7 @@ (Y-extent . ,ly:rest::height) (Y-offset . ,ly:rest::y-offset-callback) (minimum-distance . 0.25) + (cross-staff . ,ly:rest::calc-cross-staff) (meta . ((class . Item) (interfaces . (font-interface rhythmic-head-interface @@ -1404,6 +1441,7 @@ (meta . ((class . Item) (interfaces . (rest-collision-interface)))))) + (Script . ( ;; don't set direction here: it breaks staccato. @@ -1429,6 +1467,7 @@ (before-line-breaking . ,ly:script-column::before-line-breaking) (meta . ((class . Item) (interfaces . (script-column-interface)))))) + (ScriptRow . ( (before-line-breaking . ,ly:script-column::row-before-line-breaking) @@ -1446,14 +1485,6 @@ (interfaces . ( separation-item-interface)))))) - (SeparatingGroupSpanner - . ( - (springs-and-rods . ,ly:separating-group-spanner::set-spacing-rods) - (meta . ((class . Spanner) - (interfaces . (only-prebreak-interface - - separating-group-spanner-interface)))))) - (Slur . ((details . ,default-slur-details) (control-points . ,ly:slur::calc-control-points) @@ -1479,7 +1510,7 @@ (extra-spacing-width . (+inf.0 . -inf.0)) (padding . 0.0) ;; padding relative to SostenutoPedalLineSpanner (font-shape . italic) - (self-alignment-X . 0) + (self-alignment-X . ,CENTER) (meta . ((class . Item) (interfaces . (text-interface self-alignment-interface @@ -1488,9 +1519,11 @@ (SostenutoPedalLineSpanner . ( - (axes . (1)) + (axes . (,Y)) (Y-extent . ,ly:axis-group-interface::height) + (X-extent . ,ly:axis-group-interface::width) (Y-offset . ,ly:side-position-interface::y-aligned-side) + (outside-staff-priority . 1000) (side-axis . ,Y) (staff-padding . 1.0) (padding . 1.2) @@ -1500,6 +1533,7 @@ (interfaces . (piano-pedal-interface axis-group-interface side-position-interface)))))) + (SpacingSpanner . ( (springs-and-rods . ,ly:spacing-spanner::set-springs) @@ -1517,14 +1551,17 @@ (SpanBar . ( (break-align-symbol . staff-bar) - (Y-extent . ()) + (Y-extent . ,ly:axis-group-interface::height) + (cross-staff . #t) (layer . 0) (non-musical . #t) (stencil . ,ly:span-bar::print) (bar-size . ,ly:span-bar::calc-bar-size) + (bar-extent . ,ly:axis-group-interface::height) (X-extent . ,ly:span-bar::width) (glyph-name . ,ly:span-bar::calc-glyph-name) (before-line-breaking . ,ly:span-bar::before-line-breaking) + (allow-span-bar . #t) ;; ugh duplication! @@ -1554,14 +1591,13 @@ text-interface font-interface)))))) - (StaffSpacing . ( (non-musical . #t) (stem-spacing-correction . 0.4) (meta . ((class . Item) - (interfaces . (staff-spacing-interface)))))) - + (interfaces . (spacing-interface + staff-spacing-interface)))))) (StaffSymbol . ( @@ -1644,8 +1680,8 @@ (text . ,string-number::calc-text) (padding . 0.5) (staff-padding . 0.5) - (self-alignment-X . 0) - (self-alignment-Y . 0) + (self-alignment-X . ,CENTER) + (self-alignment-Y . ,CENTER) (script-priority . 100) (font-encoding . fetaNumber) (font-size . -5) ; don't overlap when next to heads. @@ -1655,8 +1691,7 @@ text-script-interface text-interface side-position-interface - self-alignment-interface - )))))) + self-alignment-interface)))))) (StrokeFinger . ( @@ -1665,8 +1700,8 @@ (digit-names . #("p" "i" "m" "a" "x")) (padding . 0.5) (staff-padding . 0.5) - (self-alignment-X . 0) - (self-alignment-Y . 0) + (self-alignment-X . ,CENTER) + (self-alignment-Y . ,CENTER) (script-priority . 100) (font-shape . italic) (font-size . -4) ; don't overlap when next to heads. @@ -1676,15 +1711,13 @@ text-script-interface text-interface side-position-interface - self-alignment-interface - )))))) - + self-alignment-interface)))))) (SustainPedal . ( (extra-spacing-width . (+inf.0 . -inf.0)) (stencil . ,ly:sustain-pedal::print) - (self-alignment-X . 0) + (self-alignment-X . ,CENTER) (direction . ,RIGHT) (padding . 0.0) ;; padding relative to SustainPedalLineSpanner (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) @@ -1697,9 +1730,11 @@ (SustainPedalLineSpanner . ( - (axes . (1)) + (axes . (,Y)) (Y-extent . ,ly:axis-group-interface::height) + (X-extent . ,ly:axis-group-interface::width) (Y-offset . ,ly:side-position-interface::y-aligned-side) + (outside-staff-priority . 1000) (side-axis . ,Y) (padding . 1.2) (staff-padding . 1.2) @@ -1712,12 +1747,11 @@ (System . ( - (axes . (0 1)) + (axes . (,X ,Y)) (X-extent . ,ly:axis-group-interface::width) (Y-extent . ,ly:axis-group-interface::height) (vertical-skylines . ,ly:axis-group-interface::calc-skylines) (max-stretch . ,ly:axis-group-interface::calc-max-stretch) - (skyline-horizontal-padding . 1.0) (meta . ((class . System) (interfaces . (system-interface axis-group-interface)))))) @@ -1737,7 +1771,6 @@ side-position-interface font-interface)))))) - (SystemStartSquare . ( (Y-extent . #f) @@ -1750,6 +1783,7 @@ (interfaces . (font-interface side-position-interface system-start-delimiter-interface)))))) + (SystemStartBracket . ( (Y-extent . #f) @@ -1774,18 +1808,21 @@ (X-offset . ,ly:side-position-interface::x-aligned-side) (direction . ,LEFT) (style . bar-line) + (collapse-height . 5.0) (thickness . 1.6) (stencil . ,ly:system-start-delimiter::print) (meta . ((class . Spanner) (interfaces . (side-position-interface system-start-delimiter-interface)))))) + (TabNoteHead . ( (stencil . ,ly:text-interface::print) + (duration-log . ,note-head::calc-duration-log) (Y-offset . ,ly:staff-symbol-referencer::callback) (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) - (direction . 0) + (direction . ,CENTER) (font-size . -2) (stem-attachment . (0.0 . 1.35)) (font-series . bold) @@ -1817,6 +1854,7 @@ (avoid-slur . around) (slur-padding . 0.5) (script-priority . 200) + (cross-staff . ,ly:script-interface::calc-cross-staff) ;; todo: add X self alignment? (meta . ((class . Item) (interfaces . (text-script-interface @@ -1859,6 +1897,7 @@ (springs-and-rods . ,ly:spanner::set-spacing-rods) (avoid-slur . inside) (direction . ,ly:tie::calc-direction) + (neutral-direction . ,UP) (stencil . ,ly:tie::print) (font-size . -6) (details . ( @@ -1879,15 +1918,14 @@ (outer-tie-length-symmetry-penalty-factor . 10) (vertical-distance-penalty-factor . 7) (outer-tie-vertical-gap . 0.25) - (multi-tie-region-size . 1) + (multi-tie-region-size . 3) (single-tie-region-size . 4) (between-length-limit . 1.0))) (thickness . 1.2) (line-thickness . 0.8) (meta . ((class . Spanner) - (interfaces . (tie-interface)))) - )) + (interfaces . (tie-interface)))))) (TieColumn . ( @@ -1902,9 +1940,11 @@ . ( (stencil . ,ly:time-signature::print) (break-align-symbol . time-signature) - (break-align-anchor . ,ly:break-aligned-interface::calc-extent-aligned-anchor) + (break-align-anchor + . ,ly:break-aligned-interface::calc-extent-aligned-anchor) (break-visibility . ,all-visible) (avoid-slur . inside) + (extra-spacing-height . (-1.0 . 1.0)) (space-alist . ( (first-note . (fixed-space . 2.0)) (right-edge . (extra-space . 0.5)) @@ -1922,12 +1962,18 @@ (right-bound-info . ,ly:line-spanner::calc-right-bound-info) (bound-details . ((left . ((text . ,(make-translate-scaled-markup - '(0.5 . -0.6) + '(0.0 . -1.0) (make-musicglyph-markup "scripts.trill"))) (Y . 0) - (padding . 0.25) - (attach-dir . ,LEFT) + (stencil-offset . (-0.5 . 0)) + (padding . 1.5) + (attach-dir . ,CENTER) + ;; this isn't CENTER because the trill glyph's origin + ;; is not centered in its extent; to have the trill + ;; spanner aligned the same as a trill, we need a slight offset + (anchor-alignment . 0.15) )) + (left-broken . ((end-on-note . #t))) (right . ((Y . 0))) )) @@ -1975,7 +2021,6 @@ (interfaces . (side-position-interface parentheses-interface note-head-interface - rhythmic-head-interface font-interface axis-group-interface)))))) @@ -2021,13 +2066,14 @@ (meta . ((class . Spanner) (interfaces . (text-interface tuplet-number-interface font-interface)))))) + (UnaCordaPedal . ( (stencil . ,ly:text-interface::print) (font-shape . italic) (extra-spacing-width . (+inf.0 . -inf.0)) - (self-alignment-X . 0) + (self-alignment-X . ,CENTER) (direction . ,RIGHT) (padding . 0.0) ;; padding relative to UnaCordaPedalLineSpanner (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) @@ -2039,9 +2085,11 @@ (UnaCordaPedalLineSpanner . ( - (axes . (1)) + (axes . (,Y)) (Y-extent . ,ly:axis-group-interface::height) + (X-extent . ,ly:axis-group-interface::width) (Y-offset . ,ly:side-position-interface::y-aligned-side) + (outside-staff-priority . 1000) (side-axis . ,Y) (padding . 1.2) (staff-padding . 1.2) @@ -2052,6 +2100,7 @@ axis-group-interface side-position-interface)))))) + (VaticanaLigature . ( (thickness . 0.6) @@ -2063,7 +2112,7 @@ (VerticalAlignment . ( - (axes . (1)) + (axes . (,Y)) (positioning-done . ,ly:align-interface::calc-positioning-done) (after-line-breaking . ,ly:align-interface::stretch-after-break) (Y-extent . ,ly:axis-group-interface::height) @@ -2071,14 +2120,15 @@ (stacking-dir . -1) (padding . 0.5) (vertical-skylines . ,ly:axis-group-interface::combine-skylines) - (max-stretch . ,ly:align-interface::calc-max-stretch) + (max-stretch . 0) (meta . ((class . Spanner) (object-callbacks . ((Y-common . ,ly:axis-group-interface::calc-y-common))) (interfaces . (align-interface axis-group-interface)))))) + (VerticalAxisGroup . ( - (axes . (1)) + (axes . (,Y)) (Y-offset . ,ly:hara-kiri-group-spanner::force-hara-kiri-callback) (Y-extent . ,ly:hara-kiri-group-spanner::y-extent) (X-extent . ,ly:axis-group-interface::width) @@ -2092,30 +2142,37 @@ hara-kiri-group-spanner-interface vertically-spaceable-interface)))))) - (VoltaBracket . ( (stencil . ,ly:volta-bracket-interface::print) - (direction . ,UP) - (padding . 1) (font-encoding . fetaNumber) - (minimum-Y-extent . (0 . 2)) - (Y-offset . ,ly:side-position-interface::y-aligned-side) - (side-axis . ,Y) (thickness . 1.6) ;; line-thickness (edge-height . (2.0 . 2.0)) ;; staff-space; - (minimum-space . 5) (font-size . -4) - (outside-staff-priority . 100) + (word-space . 0.6) + (direction . ,UP) (meta . ((class . Spanner) (interfaces . (volta-bracket-interface horizontal-bracket-interface line-interface text-interface side-position-interface - font-interface))) - ))) + font-interface)))))) + (VoltaBracketSpanner + . ( + (axes . (,Y)) + (side-axis . ,Y) + (direction . ,UP) + (padding . 1) + (Y-offset . ,ly:side-position-interface::y-aligned-side) + (outside-staff-priority . 100) + (Y-extent . ,ly:axis-group-interface::height) + (X-extent . ,ly:axis-group-interface::width) + (no-alignment . ,#t) + (meta . ((class . Spanner) + (interfaces . (side-position-interface + axis-group-interface)))))) (VoiceFollower . ( @@ -2136,8 +2193,7 @@ (right-bound-info . ,ly:line-spanner::calc-right-bound-info) (meta . ((class . Spanner) (interfaces . (line-spanner-interface - line-interface)))) - )) + line-interface)))))) )) @@ -2229,6 +2285,8 @@ (define pure-functions (list + parenthesize-elements + ly:rest::y-offset-callback ly:staff-symbol-referencer::callback ly:staff-symbol::height))