(Accidental
. (
(avoid-slur . inside)
- (cautionary-style . parentheses)
+ (glyph-name-alist . ,standard-alteration-glyph-name-alist)
+ (alteration . ,accidental-interface::calc-alteration)
(stencil . ,ly:accidental-interface::print)
- (after-line-breaking
- . ,ly:accidental-interface::after-line-breaking)
+ (Y-extent . ,ly:accidental-interface::height)
(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)
+ (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)
+ (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)))))
(self-alignment-X . ,CENTER)
- (cautionary . #t)
- (cautionary-style . smaller)
+ (font-size . -2)
+ (glyph-name-alist . ,standard-alteration-glyph-name-alist)
+ (alteration . ,accidental-interface::calc-alteration)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
- (cautionary-style . parentheses)
(direction . ,UP)
(staff-padding . 0.25)
+ (outside-staff-priority . 0)
(script-priority . 0)
(side-axis . ,X)
(meta . ((class . Item)
(padding . 0.5)
(X-offset . ,ly:side-position-interface::x-aligned-side)
(direction . ,LEFT)
- (cautionary-style . parentheses)
(stencil . ,ly:accidental-interface::print)
- (after-line-breaking . ,ly:accidental-interface::after-line-breaking)
+ (Y-extent . ,ly:accidental-interface::height)
+ (glyph-name-alist . ,standard-alteration-glyph-name-alist)
(side-axis . ,X)
(meta . ((class . Item)
- (interfaces . (item-interface
+ (interfaces . (
accidental-interface
break-aligned-interface
side-position-interface
(layer . 0)
(break-visibility . ,all-visible)
(non-musical . #t)
-
(stencil . ,ly:bar-line::print)
(glyph-name . ,bar-line::calc-glyph-name)
(bar-size . ,ly:bar-line::calc-bar-size)
(key-signature . (extra-space . 1.0))
(key-cancellation . (extra-space . 1.0))
(first-note . (fixed-space . 1.3))
- (next-note . (semi-fixed-space . 1.3))
+ (next-note . (semi-fixed-space . 0.9))
(right-edge . (extra-space . 0.0))))
;;
(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
(positioning-done . ,ly:align-interface::calc-positioning-done)
(Y-extent . ,ly:axis-group-interface::height)
(stacking-dir . -1)
+ (padding . 0.2)
(meta . ((class . Spanner)
(interfaces . (align-interface
bass-figure-alignment-interface
. (
(axes . (,Y))
(Y-extent . ,ly:axis-group-interface::height)
+ (skylines . ,ly:axis-group-interface::calc-skylines)
(meta . ((class . Spanner)
(interfaces . (axis-group-interface
))))))
(beaming . ,ly:beam::calc-beaming)
(stencil . ,ly:beam::print)
(clip-edges . #t)
-
+
+ (details . ((hint-direction-penalty . 20)))
;; TODO: should be in SLT.
(thickness . 0.48) ; in staff-space
(neutral-direction . ,DOWN)
;; only for debugging.
(font-family . roman)
(meta . ((class . Spanner)
+ (object-callbacks . ((normal-stems . ,ly:beam::calc-normal-stems)))
(interfaces . (staff-symbol-referencer-interface
+ unbreakable-spanner-interface
beam-interface))))))
(BendAfter
. (
- (stencil . ,fall::print)
+ (stencil . ,bend::print)
(thickness . 2.0)
(meta . ((class . Spanner)
(interfaces . (spanner-interface
. (
(Y-extent . ,ly:cluster-beacon::height)
(meta . ((class . Item)
- (interfaces . (cluster-beacon-interface))))))
+ (interfaces . (rhythmic-grob-interface
+ cluster-beacon-interface))))))
(ClusterSpanner
. (
rhythmic-grob-interface
text-interface
chord-name-interface
- item-interface))))))
+ ))))))
(CombineTextScript
. (
(stencil . ,ly:text-interface::print)
- (no-spacing-rods . #t)
+ (extra-spacing-width . (+inf.0 . -inf.0))
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
(direction . ,UP)
. (
(stencil . ,ly:dots::print)
(dot-count . ,dots::calc-dot-count)
+ (staff-position . ,dots::calc-staff-position)
(meta . ((class . Item)
(interfaces . (font-interface
staff-symbol-referencer-interface
(minimum-space . 1.2)
(direction . ,DOWN)
(side-axis . ,Y)
+ (outside-staff-priority . 250)
(Y-extent . ,ly:axis-group-interface::height)
(X-extent . ,ly:axis-group-interface::width)
(meta . ((class . Spanner)
(font-encoding . fetaDynamic)
(font-shape . italic)
(avoid-slur . around)
- (no-spacing-rods . #t)
- (script-priority . 100)
+ (extra-spacing-width . (+inf.0 . -inf.0))
+ (outside-staff-priority . 250)
(meta . ((class . Item)
(interfaces . (font-interface
text-interface
(self-alignment-X . 0)
(self-alignment-Y . 0)
(script-priority . 100)
-
(stencil . ,ly:text-interface::print)
(direction . ,ly:script-interface::calc-direction)
(text . ,fingering::calc-text)
text-interface
side-position-interface
self-alignment-interface
- item-interface))))))
+ ))))))
(FretBoard
. ((stencil . ,fret-board::calc-stencil)
(finger-code . below-string)
(style . line)
(gap . 0.5)
(zigzag-width . 0.75)
- (non-musical . #t)
(X-extent . #f)
(Y-extent . #f)
(stencil . ,ly:line-spanner::print)
(after-line-breaking . ,ly:line-spanner::after-line-breaking)
(meta . ((class . Spanner)
(interfaces . (line-interface
+ unbreakable-spanner-interface
line-spanner-interface))))))
(GraceSpacing
(shortest-duration-space . 1.6)
(meta . ((class . Spanner)
(interfaces . (grace-spacing-interface
- spacing-interface
+
spacing-options-interface
spanner-interface))))))
(GridPoint
(KeyCancellation
. (
(stencil . ,ly:key-signature-interface::print)
+ (glyph-name-alist . ,cancellation-glyph-name-alist)
(space-alist . (
(time-signature . (extra-space . 1.25))
(staff-bar . (extra-space . 0.6))
(break-visibility . ,begin-of-line-invisible)
(non-musical . #t)
(meta . ((class . Item)
- (interfaces . (key-signature-interface
+ (interfaces . (key-cancellation-interface
+ key-signature-interface
font-interface
break-aligned-interface))))))
(KeySignature
. (
(stencil . ,ly:key-signature-interface::print)
(avoid-slur . inside)
+ (glyph-name-alist . ,standard-alteration-glyph-name-alist)
(space-alist . (
(time-signature . (extra-space . 1.15))
(staff-bar . (extra-space . 1.1))
(X-extent . #f)
(meta . ((class . Spanner)
(interfaces . (spanner-interface
- lyric-hyphen-interface spacing-interface))
+ lyric-hyphen-interface ))
))
))
. (
(neutral-direction . ,DOWN)
(meta . ((class . Item)
- (interfaces . (melody-spanner-interface spacing-interface))))))
+ (interfaces . (melody-spanner-interface ))))))
(MensuralLigature
. (
(thickness . 1.4)
(direction . ,UP)
(padding . 0.8)
(side-axis . ,Y)
+ (outside-staff-priority . 1000)
(meta . ((class . Item)
(interfaces . (text-interface
side-position-interface
;; If you ever change this back, please document! --hwn
(knee-spacing-correction . 1.0)
(meta . ((class . Item)
- (interfaces . (spacing-interface
+ (interfaces . (
note-spacing-interface))))))
(NoteName
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(stencil . ,ly:text-interface::print)
-
- ;; no Y dimensions, because of lyrics under tenor clef.
- (Y-extent . (0 . 0))
(font-shape . italic)
- (padding . 0.6)
(staff-padding . 0.2)
(font-size . -4)
(meta . ((class . Item)
(dash-fraction . 0.3)
(edge-height . (0 . 1.2))
(direction . ,UP)
+ (outside-staff-priority . 400)
(meta . ((class . Spanner)
(interfaces . (ottava-bracket-interface
horizontal-bracket-interface
(ParenthesesItem
. ((stencil . ,parentheses-item::print)
+ (stencils . ,parentheses-item::calc-parenthesis-stencils)
(font-size . -6)
(padding . 0.2)
(meta . ((class . Item)
(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))))
+ ))
(PhrasingSlur
. ((details . ,default-slur-details)
(font-size . 2)
(baseline-skip . 2)
(break-visibility . ,end-of-line-invisible)
- (break-align-symbol . staff-bar)
+ (break-align-symbol . clef)
(padding . 0.8)
+ (outside-staff-priority . 1500)
(meta . ((class . Item)
(interfaces . (text-interface
side-position-interface
(thickness . 0.48)
(slope . 1.7)
(meta . ((class . Item)
- (interfaces . (percent-repeat-item-interface))))))
+ (interfaces . (rhythmic-grob-interface
+ percent-repeat-item-interface))))))
(RepeatTie
. (
;; padding set in script definitions.
(staff-padding . 0.25)
- ;; (script-priority . 0) priorities for scripts, see script.scm
(X-offset . ,ly:self-alignment-interface::centered-on-x-parent)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(side-axis . ,Y)
(SeparationItem
. (
(avoid-slur . inside)
- (skylines . ,ly:separation-item::calc-skylines)
(X-extent . ,ly:axis-group-interface::width)
(Y-extent . ,ly:axis-group-interface::height)
+ (skylines . ,ly:separation-item::calc-skylines)
(meta . ((class . Item)
- (interfaces . (spacing-interface
+ (interfaces . (
separation-item-interface))))))
(SeparatingGroupSpanner
(springs-and-rods . ,ly:separating-group-spanner::set-spacing-rods)
(meta . ((class . Spanner)
(interfaces . (only-prebreak-interface
- spacing-interface
+
separating-group-spanner-interface))))))
(Slur
(stencil . ,ly:text-interface::print)
(direction . ,RIGHT)
(X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
- (no-spacing-rods . #t)
+ (extra-spacing-width . (+inf.0 . -inf.0))
(padding . 0.0) ;; padding relative to SostenutoPedalLineSpanner
(font-shape . italic)
(self-alignment-X . 0)
(base-shortest-duration . ,(ly:make-moment 3 16))
(meta . ((class . Spanner)
- (interfaces . (spacing-interface
+ (interfaces . (
spacing-options-interface
spacing-spanner-interface))))))
(non-musical . #t)
(stem-spacing-correction . 0.4)
(meta . ((class . Item)
- (interfaces . (spacing-interface
- staff-spacing-interface))))))
+ (interfaces . (staff-spacing-interface))))))
(StaffSymbol
text-interface
side-position-interface
self-alignment-interface
- item-interface))))))
+ ))))))
(StrokeFinger
. (
text-interface
side-position-interface
self-alignment-interface
- item-interface))))))
+ ))))))
(SustainPedal
. (
- (no-spacing-rods . #t)
+ (extra-spacing-width . (+inf.0 . -inf.0))
(stencil . ,ly:sustain-pedal::print)
(self-alignment-X . 0)
(direction . ,RIGHT)
(axes . (0 1))
(X-extent . ,ly:axis-group-interface::width)
(Y-extent . ,ly:axis-group-interface::height)
- (skyline-spacing . #t)
+ (skylines . ,ly:axis-group-interface::calc-skylines)
+ (skyline-horizontal-padding . 1.0)
(meta . ((class . System)
(interfaces . (system-interface
axis-group-interface))))))
(interfaces . (side-position-interface
system-start-delimiter-interface))))))
-
(TabNoteHead
. (
(stencil . ,ly:text-interface::print)
(Y-offset . ,ly:staff-symbol-referencer::callback)
+ (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
+ (direction . 0)
(font-size . -2)
(stem-attachment . (0.0 . 1.35))
(font-series . bold)
(TextScript
. (
- (no-spacing-rods . #t)
+ (extra-spacing-width . (+inf.0 . -inf.0))
(X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(side-axis . ,Y)
(stencil . ,ly:text-interface::print)
(direction . ,ly:script-interface::calc-direction)
+ (outside-staff-priority . 450)
(avoid-slur . around)
(slur-padding . 0.5)
(script-priority . 200)
(dash-period . 3.0)
(side-axis . ,Y)
(direction . ,UP)
+ (outside-staff-priority . 350)
(meta . ((class . Spanner)
(interfaces . (text-spanner-interface
line-spanner-interface
(stencil . ,ly:tie::print)
(font-size . -6)
(details . (
- ;; for a full list, see tie-helper.cc
+ ;; for a full list, see tie-details.cc
(ratio . 0.333)
(center-staff-line-clearance . 0.6)
(tip-staff-line-clearance . 0.45)
(stem-gap . 0.35)
(height-limit . 1.0)
(horizontal-distance-penalty-factor . 10)
- (min-length-penalty-factor . 20)
+ (same-dir-as-stem-penalty . 8)
+ (min-length-penalty-factor . 26)
(tie-tie-collision-distance . 0.45)
(tie-tie-collision-penalty . 25.0)
(intra-space-threshold . 1.25)
(outer-tie-vertical-distance-symmetry-penalty-factor . 10)
(outer-tie-length-symmetry-penalty-factor . 10)
+ (vertical-distance-penalty-factor . 7)
(outer-tie-vertical-gap . 0.25)
(multi-tie-region-size . 1)
+ (single-tie-region-size . 4)
(between-length-limit . 1.0)))
(thickness . 1.2)
(direction . ,UP)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(side-axis . ,Y)
+ (outside-staff-priority . 50)
(meta . ((class . Spanner)
(interfaces . (text-spanner-interface
line-spanner-interface
(font-size . -4)
(side-axis . ,X)
(stencil . ,ly:accidental-interface::print)
+ (Y-extent . ,ly:accidental-interface::height)
+ (glyph-name-alist . ,standard-alteration-glyph-name-alist)
(meta . ((class . Item)
- (interfaces . (item-interface
- trill-pitch-accidental-interface
+ (interfaces . (trill-pitch-accidental-interface
+ accidental-interface
side-position-interface
font-interface))))))
(axes . (,X))
(font-size . -4)
(stencil . ,parenthesize-elements)
+ (stencils . ,parentheses-item::calc-parenthesis-stencils)
(direction . ,RIGHT)
(side-axis . ,X)
(padding . 0.3)
(meta . ((class . Item)
(interfaces . (side-position-interface
+ parentheses-interface
note-head-interface
rhythmic-head-interface
font-interface
- accidental-interface
axis-group-interface))))))
(TrillPitchHead
(Y-offset . ,ly:staff-symbol-referencer::callback)
(font-size . -4)
(meta . ((class . Item)
- (interfaces . (item-interface
- rhythmic-head-interface
+ (interfaces . (rhythmic-head-interface
font-interface
pitched-trill-interface
ledgered-interface
. (
(stencil . ,ly:text-interface::print)
(font-shape . italic)
- (no-spacing-rods . #t)
+ (extra-spacing-width . (+inf.0 . -inf.0))
(self-alignment-X . 0)
(direction . ,RIGHT)
(padding . 0.0) ;; padding relative to UnaCordaPedalLineSpanner
(Y-extent . ,ly:axis-group-interface::height)
(X-extent . ,ly:axis-group-interface::width)
(stacking-dir . -1)
- (padding . 0.1)
+ (padding . 0.5)
+ (skylines . ,ly:axis-group-interface::combine-skylines)
(meta . ((class . Spanner)
+ (object-callbacks . ((Y-common . ,ly:axis-group-interface::calc-y-common)))
(interfaces . (align-interface
axis-group-interface))))))
(VerticalAxisGroup
(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)
- (skyline-spacing . #t)
+ (skylines . ,ly:axis-group-interface::calc-skylines);
(meta . ((class . Spanner)
+ (object-callbacks . ((X-common . ,ly:axis-group-interface::calc-x-common)))
(interfaces . (axis-group-interface
hara-kiri-group-spanner-interface
vertically-spaceable-interface))))))
(edge-height . (2.0 . 2.0)) ;; staff-space;
(minimum-space . 5)
(font-size . -4)
+ (outside-staff-priority . 100)
(meta . ((class . Spanner)
(interfaces . (volta-bracket-interface
horizontal-bracket-interface
(cons 'spanner-interface ifaces-entry))))
(else
(ly:warning "Unknown class ~a" class)))
+
+ (set! ifaces-entry (uniq-list (sort ifaces-entry symbol<?)))
(set! ifaces-entry (cons 'grob-interface ifaces-entry))
(set! meta-entry (assoc-set! meta-entry 'name name-sym))
(define pure-print-callbacks
(list
+ ly:bar-line::print
ly:note-head::print
- ly:accidental-interface::print
ly:dots::print
ly:clef::print
ly:text-interface::print
(ly:stencil? sten)
(memq sten pure-print-callbacks))
(ly:grob::stencil-height grob)
-
'(0 . 0))))
(define pure-conversions-alist
- (list
- `(,ly:slur::outside-slur-callback . ,ly:slur::pure-outside-slur-callback)
- `(,ly:stem::height . ,ly:stem::pure-height)
- `(,ly:grob::stencil-height . ,pure-stencil-height)
- `(,ly:side-position-interface::y-aligned-side . ,ly:side-position-interface::pure-y-aligned-side)
- `(,ly:axis-group-interface::height . ,ly:axis-group-interface::pure-height)
- `(,ly:hara-kiri-group-spanner::y-extent . ,ly:hara-kiri-group-spanner::pure-height)
- `(,ly:slur::height . ,ly:slur::pure-height)
- `(,ly:side-position-interface::y-aligned-side . ,ly:side-position-interface::pure-y-aligned-side)))
+ `(
+ (,ly:accidental-interface::height . ,ly:accidental-interface::pure-height)
+ (,ly:slur::outside-slur-callback . ,ly:slur::pure-outside-slur-callback)
+ (,ly:stem::height . ,ly:stem::pure-height)
+ (,ly:rest::height . ,ly:rest::pure-height)
+ (,ly:grob::stencil-height . ,pure-stencil-height)
+ (,ly:side-position-interface::y-aligned-side . ,ly:side-position-interface::pure-y-aligned-side)
+ (,ly:axis-group-interface::height . ,ly:axis-group-interface::pure-height)
+ (,ly:hara-kiri-group-spanner::y-extent . ,ly:hara-kiri-group-spanner::pure-height)
+ (,ly:slur::height . ,ly:slur::pure-height)
+ (,ly:side-position-interface::y-aligned-side . ,ly:side-position-interface::pure-y-aligned-side)))
(define pure-functions
(list
ly:staff-symbol-referencer::callback
ly:staff-symbol::height))
-(define-public (pure-relevant grob)
+(define-public (pure-relevant? grob)
(let ((extent-callback (ly:grob-property-data grob 'Y-extent)))
(not (eq? #f
(or
(or
(not (eq? extent-callback ly:grob::stencil-height))
(memq (ly:grob-property-data grob 'stencil) pure-print-callbacks)
- (ly:stencil? (ly:grob-property-data grob 'stencil))))))))))
+ (ly:stencil? (ly:grob-property-data grob 'stencil))
+
+ ))))))))
(define-public (call-pure-function unpure args start end)
(if (ly:simple-closure? unpure)
(apply unpure args)
(let ((pure (assq unpure pure-conversions-alist)))
(if pure
- (apply (cdr pure) (append (list (car args) start end) (cdr args)))))))))
+ (apply (cdr pure)
+ (append
+ (list (car args) start end)
+ (cdr args)))))))))