(glyph-name . ,note-head::calc-glyph-name)
(stencil . ,ly:note-head::print)
(Y-offset . ,ly:staff-symbol-referencer::callback)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (ambitus-interface
font-interface
(next-note . (semi-fixed-space . 0.9))
(right-edge . (extra-space . 0.0))))
(stencil . ,ly:bar-line::print)
+ (Y-extent . ,grob::all-heights-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)))
,(ly:make-simple-closure
(list ly:self-alignment-interface::x-aligned-on-self)))))
(Y-offset . ,ly:side-position-interface::y-aligned-side)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta .
((class . Item)
(interfaces . (break-alignable-interface
(BassFigure
. (
(stencil . ,ly:text-interface::print)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (bass-figure-interface
font-interface
(stencil . ,ly:text-interface::print)
(text . ,(make-musicglyph-markup "scripts.rcomma"))
(Y-offset . ,ly:breathing-sign::offset-callback)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (break-aligned-interface
breathing-sign-interface
(extra-spacing-height . (0.2 . -0.2))
(extra-spacing-width . (-0.5 . 0.5))
(word-space . 0.0)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (chord-name-interface
font-interface
(next-note . (extra-space . 1.0))
(right-edge . (extra-space . 0.5))))
(stencil . ,ly:clef::print)
+ (Y-extent . ,grob::all-heights-from-stencil)
(vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
(Y-offset . ,ly:staff-symbol-referencer::callback)
(meta . ((class . Item)
(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-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (font-interface
side-position-interface
(right-edge . (extra-space . 0.5))))
(stencil . ,ly:clef::print)
(vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
+ (Y-extent . ,grob::all-heights-from-stencil)
(Y-offset . ,ly:staff-symbol-referencer::callback)
(meta . ((class . Item)
(object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
(next-note . (extra-space . 1.0))
(right-edge . (extra-space . 0.5))))
(stencil . ,ly:clef::print)
+ (Y-extent . ,grob::all-heights-from-stencil)
(Y-offset . ,ly:staff-symbol-referencer::callback)
(meta . ((class . Item)
(object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
(dot-count . ,dots::calc-dot-count)
(staff-position . ,dots::calc-staff-position)
(stencil . ,ly:dots::print)
+ (Y-extent . ,grob::all-heights-from-stencil)
(extra-spacing-height . (-0.5 . 0.5))
(meta . ((class . Item)
(interfaces . (dots-interface
(slash-negative-kern . 1.6)
(slope . 1.0)
(stencil . ,ly:percent-repeat-item-interface::double-percent)
+ (Y-extent . ,grob::all-heights-from-stencil)
(thickness . 0.48)
(meta . ((class . Item)
(interfaces . (break-aligned-interface
(list ly:self-alignment-interface::centered-on-y-parent))
,(ly:make-simple-closure
(list ly:self-alignment-interface::x-aligned-on-self)))))
+ (Y-extent . ,grob::all-heights-from-stencil)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Item)
(interfaces . (font-interface
(slash-negative-kern . 1.6)
(slope . 1.0)
(stencil . ,ly:percent-repeat-item-interface::beat-slash)
+ (Y-extent . ,grob::all-heights-from-stencil)
(thickness . 0.48)
(meta . ((class . Item)
(interfaces . (font-interface
(self-alignment-Y . ,CENTER)
(stencil . ,ly:text-interface::print)
(vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
+ (Y-extent . ,grob::all-heights-from-stencil)
(X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
(Y-offset . ,ly:self-alignment-interface::y-aligned-on-self)
(meta . ((class . Item)
(staff-padding . 0.5)
(stencil . ,ly:text-interface::print)
(text . ,fingering::calc-text)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (finger-interface
font-interface
(X-offset . ,ly:flag::calc-x-offset)
(Y-offset . ,ly:flag::calc-y-offset)
(vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (flag-interface
font-interface))))))
(stencil . ,fret-board::calc-stencil)
(extra-spacing-height . (0.2 . -0.2))
(extra-spacing-width . (-0.5 . 0.5))
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (chord-name-interface
font-interface
(side-axis . ,Y)
(staff-padding . 0.5)
(stencil . ,ly:text-interface::print)
+ (Y-extent . ,grob::all-heights-from-stencil)
(X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Item)
(right-edge . (extra-space . 0.5))
(first-note . (fixed-space . 2.5))))
(stencil . ,ly:key-signature-interface::print)
+ (Y-extent . ,grob::all-heights-from-stencil)
(vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
(extra-spacing-width . (0.0 . 1.0))
(extra-spacing-height . ,pure-from-neighbor-interface::extra-spacing-height-including-staff)
(right-edge . (extra-space . 0.5))
(first-note . (fixed-space . 2.5))))
(stencil . ,ly:key-signature-interface::print)
+ (Y-extent . ,grob::all-heights-from-stencil)
(extra-spacing-width . (0.0 . 1.0))
(extra-spacing-height . ,pure-from-neighbor-interface::extra-spacing-height-including-staff)
(vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
(thickness . 1.0)
(extra-spacing-height . (-0.5 . 0.5))
(vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (semi-tie-interface))))))
(skyline-horizontal-padding . 0.1)
(vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
(X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (font-interface
lyric-syllable-interface
(self-alignment-X . ,LEFT)
(break-align-symbols . (time-signature))
(non-break-align-symbols . (multi-measure-rest-interface))
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (break-alignable-interface
font-interface
(list ly:self-alignment-interface::x-centered-on-y-parent)))))
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Spanner)
(interfaces . (font-interface
multi-measure-interface
(list ly:self-alignment-interface::x-aligned-on-self)))))
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Spanner)
(interfaces . (font-interface
multi-measure-interface
(stencil . ,ly:note-head::print)
(X-offset . ,ly:note-head::stem-x-shift)
(Y-offset . ,ly:staff-symbol-referencer::callback)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (font-interface
gregorian-ligature-interface
(NoteName
. (
(stencil . ,ly:text-interface::print)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (font-interface
note-name-interface
(list ly:self-alignment-interface::centered-on-x-parent)))))
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (font-interface
octavate-eight-interface
,(ly:make-simple-closure
(list ly:self-alignment-interface::x-aligned-on-self)))))
(Y-offset . ,ly:side-position-interface::y-aligned-side)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Spanner)
(interfaces . (font-interface
percent-repeat-interface
,(ly:make-simple-closure
(list ly:self-alignment-interface::x-aligned-on-self)))))
(Y-offset . ,ly:side-position-interface::y-aligned-side)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (break-alignable-interface
font-interface
(slash-negative-kern . 0.85)
(slope . 1.7)
(stencil . ,ly:percent-repeat-item-interface::beat-slash)
+ (Y-extent . ,grob::all-heights-from-stencil)
(thickness . 0.48)
(meta . ((class . Item)
(interfaces . (percent-repeat-interface
(stencil . ,ly:script-interface::print)
(vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
+ (Y-extent . ,grob::all-heights-from-stencil)
(X-offset . ,script-interface::calc-x-offset)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Item)
(stencil . ,ly:text-interface::print)
(vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
(X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (font-interface
piano-pedal-script-interface
(side-axis . ,X)
(stencil . ,ly:text-interface::print)
(X-offset . ,ly:side-position-interface::x-aligned-side)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (font-interface
side-position-interface
(staff-padding . 0.5)
(stencil . ,print-circled-text-callback)
(text . ,string-number::calc-text)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (font-interface
self-alignment-interface
(staff-padding . 0.5)
(stencil . ,ly:text-interface::print)
(text . ,stroke-finger::calc-text)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (font-interface
self-alignment-interface
(stencil . ,ly:sustain-pedal::print)
(vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
(X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (font-interface
piano-pedal-interface
(whiteout . #t)
(X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
(Y-offset . ,ly:staff-symbol-referencer::callback)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (font-interface
note-head-interface
(stencil . ,ly:text-interface::print)
(vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
;; todo: add X self alignment?
+ (Y-extent . ,grob::all-heights-from-stencil)
(X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
(meta . ((class . Item)
(right-edge . (extra-space . 0.5))
(staff-bar . (minimum-space . 2.0))))
(stencil . ,ly:time-signature::print)
+ (Y-extent . ,grob::all-heights-from-stencil)
(style . C)
(meta . ((class . Item)
(object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
(stencil . ,parenthesize-elements)
(stencils . ,parentheses-item::calc-parenthesis-stencils)
(X-offset . ,ly:side-position-interface::x-aligned-side)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (axis-group-interface
font-interface
(font-size . -4)
(stencil . ,ly:note-head::print)
(Y-offset . ,ly:staff-symbol-referencer::callback)
+ (Y-extent . ,grob::all-heights-from-stencil)
(meta . ((class . Item)
(interfaces . (font-interface
ledgered-interface
(self-alignment-X . ,CENTER)
(stencil . ,ly:text-interface::print)
(vertical-skylines . ,ly:grob::vertical-skylines-from-stencil)
+ (Y-extent . ,grob::all-heights-from-stencil)
(X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
(meta . ((class . Item)
(interfaces . (font-interface
(interval-union '(0 . 0) (cons smaller larger)))
'(0 . 0))))
-(define pure-print-callbacks
- (list
- fret-board::calc-stencil
- note-head::brew-ez-stencil
- print-circled-text-callback
- laissez-vibrer::print
- lyric-text::print
- ly:bar-line::print
- ly:mensural-ligature::brew-ligature-primitive
- ly:note-head::print
- ly:dots::print
- ly:clef::print
- ly:flag::print
- ly:time-signature::print
- default-flag
- normal-flag
- mensural-flag
- no-flag
- modern-straight-flag
- old-straight-flag
- ly:key-signature-interface::print
- ly:percent-repeat-item-interface::beat-slash
- ly:text-interface::print
- ly:script-interface::print
- ly:sustain-pedal::print))
-
;; Sometimes we have grobs with (Y-extent . ,ly:grob::stencil-height)
;; and the print function is not pure, but there is a easy way to
;; figure out the Y-extent from the print function.
(define (pure-stencil-height grob start stop)
(let* ((sten (ly:grob-property-data grob 'stencil))
(pure-height-callback (assoc-get sten pure-print-to-height-conversions)))
- (cond ((or
- (ly:stencil? sten)
- (memq sten pure-print-callbacks))
+ (cond ((ly:stencil? sten)
(ly:grob::stencil-height grob))
((procedure? pure-height-callback)
(pure-height-callback grob start stop))
(let ((stencil (ly:grob-property-data grob 'stencil)))
(or
(not (eq? extent-callback ly:grob::stencil-height))
- (memq stencil pure-print-callbacks)
(assq stencil pure-print-to-height-conversions)
(ly:stencil? stencil)))))))))