-;;;; define-grobs.scm --
+;;;; This file is part of LilyPond, the GNU music typesetter.
;;;;
-;;;; source file of the GNU LilyPond music typesetter
-;;;;
-;;;; (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; Copyright (C) 1998--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
;;;; Jan Nieuwenhuizen <janneke@gnu.org>
+;;;;
+;;;; LilyPond is free software: you can redistribute it and/or modify
+;;;; it under the terms of the GNU General Public License as published by
+;;;; the Free Software Foundation, either version 3 of the License, or
+;;;; (at your option) any later version.
+;;;;
+;;;; LilyPond is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;;; GNU General Public License for more details.
+;;;;
+;;;; You should have received a copy of the GNU General Public License
+;;;; along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
;;;; distances are given in line-thickness (thicknesses) and
;;;; staff-space (distances)
;; TODO: junk the meta field in favor of something more compact?
-;;; todo:: reorder sensibly.
-(define-public all-grob-descriptions
+(define-session-public all-grob-descriptions
`(
(Accidental
. (
- (avoid-slur . inside)
- (glyph-name-alist . ,standard-alteration-glyph-name-alist)
- (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))))))
+ (after-line-breaking . ,ly:accidental-interface::remove-tied)
+ (alteration . ,accidental-interface::calc-alteration)
+ (avoid-slur . inside)
+ (extra-spacing-width . (-0.2 . 0.0))
+ (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-offset . ,ly:grob::x-parent-positioning)
+ (Y-extent . ,accidental-interface::height)
+ (meta . ((class . Item)
+ (interfaces . (accidental-interface
+ inline-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))))))
+ (after-line-breaking . ,ly:accidental-interface::remove-tied)
+ (alteration . ,accidental-interface::calc-alteration)
+ (avoid-slur . inside)
+ (glyph-name-alist . ,standard-alteration-glyph-name-alist)
+ (parenthesized . #t)
+ (stencil . ,ly:accidental-interface::print)
+ (X-offset . ,ly:grob::x-parent-positioning)
+ (Y-extent . ,accidental-interface::height)
+ (meta . ((class . Item)
+ (interfaces . (accidental-interface
+ inline-accidental-interface
+ font-interface))))))
- (AccidentalSuggestion
+ (AccidentalPlacement
. (
- (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)))))
- (self-alignment-X . ,CENTER)
- (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)
- (direction . ,UP)
- (staff-padding . 0.25)
- (outside-staff-priority . 0)
- (script-priority . 0)
- (side-axis . ,Y)
- (meta . ((class . Item)
- (interfaces . (side-position-interface
- script-interface
- accidental-interface
- accidental-suggestion-interface
- self-alignment-interface
- font-interface))))))
+ (direction . ,LEFT)
+ (positioning-done . ,ly:accidental-placement::calc-positioning-done)
- (AccidentalPlacement
+ ;; this is quite small, but it is very ugly to have
+ ;; accs closer to the previous note than to the next one.
+ (right-padding . 0.15)
+
+ ;; for horizontally stacked scripts.
+ (script-priority . -100)
+
+ (X-extent . ,ly:axis-group-interface::width)
+ (meta . ((class . Item)
+ (interfaces . (accidental-placement-interface))))))
+
+ (AccidentalSuggestion
. (
- (left-padding . 0.2)
-
- ;; for horizontally stacked scripts.
- (script-priority . -100)
- (direction . ,LEFT)
-
- (positioning-done . ,ly:accidental-placement::calc-positioning-done)
- (X-extent . ,ly:axis-group-interface::width)
-
- ;; this is quite small, but it is very ugly to have
- ;; accs closer to the previous note than to the next one.
- (right-padding . 0.15)
- (meta . ((class . Item)
- (interfaces . (accidental-placement-interface))))))
-
+ (after-line-breaking . ,ly:accidental-interface::remove-tied)
+ (alteration . ,accidental-interface::calc-alteration)
+ (direction . ,UP)
+ (font-size . -2)
+ (glyph-name-alist . ,standard-alteration-glyph-name-alist)
+ (outside-staff-priority . 0)
+ (parent-alignment-X . ,CENTER)
+ (script-priority . 0)
+ (self-alignment-X . ,CENTER)
+ (side-axis . ,Y)
+ (staff-padding . 0.25)
+ (stencil . ,ly:accidental-interface::print)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
+ (Y-extent . ,accidental-interface::height)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+ (meta . ((class . Item)
+ (interfaces . (accidental-interface
+ accidental-suggestion-interface
+ font-interface
+ outside-staff-interface
+ script-interface
+ self-alignment-interface
+ side-position-interface))))))
+
(Ambitus
. (
- (axes . (,X ,Y))
- (X-extent . ,ly:axis-group-interface::width)
- (Y-extent . ,ly:axis-group-interface::height)
- (space-alist . (
- (clef . (extra-space . 0.5))
- (key-signature . (extra-space . 0.0))
- (staff-bar . (extra-space . 0.0))
- (time-signature . (extra-space . 0.0))
- (first-note . (fixed-space . 0.0))))
- (non-musical . #t)
- (break-align-symbol . ambitus)
- (break-visibility . ,begin-of-line-visible)
- (meta . ((class . Item)
- (interfaces . (axis-group-interface
- break-aligned-interface
- ambitus-interface))))))
+ (axes . (,X ,Y))
+ (break-align-symbol . ambitus)
+ (break-visibility . ,begin-of-line-visible)
+ (non-musical . #t)
+ (space-alist . (
+ (cue-end-clef . (extra-space . 0.5))
+ (clef . (extra-space . 0.5))
+ (cue-clef . (extra-space . 0.5))
+ (key-signature . (extra-space . 0.0))
+ (staff-bar . (extra-space . 0.0))
+ (time-signature . (extra-space . 0.0))
+ (first-note . (fixed-space . 0.0))))
+ (X-extent . ,ly:axis-group-interface::width)
+ (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)))
+ (interfaces . (ambitus-interface
+ axis-group-interface
+ break-aligned-interface))))))
- (AmbitusLine
- . (
- (stencil . ,ly:ambitus::print)
- (join-heads . #t)
- (thickness . 2)
- (X-offset . ,ly:self-alignment-interface::centered-on-x-parent)
- (meta . ((class . Item)
- (interfaces . (ambitus-interface
- staff-symbol-referencer-interface
- font-interface))))))
(AmbitusAccidental
. (
- (font-family . music)
- (padding . 0.5)
- (X-offset . ,ly:side-position-interface::x-aligned-side)
- (direction . ,LEFT)
- (stencil . ,ly:accidental-interface::print)
- (Y-extent . ,ly:accidental-interface::height)
- (glyph-name-alist . ,standard-alteration-glyph-name-alist)
- (side-axis . ,X)
- (meta . ((class . Item)
- (interfaces . (
- accidental-interface
- break-aligned-interface
- side-position-interface
- font-interface))))))
+ (direction . ,LEFT)
+ (glyph-name-alist . ,standard-alteration-glyph-name-alist)
+ (padding . 0.5)
+ (side-axis . ,X)
+ (stencil . ,ly:accidental-interface::print)
+ (X-offset . ,ly:grob::x-parent-positioning)
+ (Y-extent . ,accidental-interface::height)
+ (meta . ((class . Item)
+ (interfaces . (accidental-interface
+ break-aligned-interface
+ font-interface
+ side-position-interface))))))
+
+ (AmbitusLine
+ . (
+ (gap . ,ambitus-line::calc-gap)
+ (length-fraction . 0.7)
+ (maximum-gap . 0.45)
+ (stencil . ,ambitus::print)
+ (thickness . 2)
+ (X-offset . ,ly:self-alignment-interface::centered-on-x-parent)
+ (meta . ((class . Item)
+ (interfaces . (ambitus-interface
+ font-interface))))))
(AmbitusNoteHead
. (
- (duration-log . 2)
- (stencil . ,ly:note-head::print)
- (glyph-name . ,note-head::calc-glyph-name)
- (Y-offset . ,ly:staff-symbol-referencer::callback)
- (meta . ((class . Item)
- (interfaces . (font-interface
- note-head-interface
- ambitus-interface
- staff-symbol-referencer-interface
- rhythmic-head-interface
- ledgered-interface))))))
+ (duration-log . 2)
+ (glyph-name . ,note-head::calc-glyph-name)
+ (ignore-ambitus . #t)
+ (stencil . ,ly:note-head::print)
+ (Y-offset . ,staff-symbol-referencer::callback)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (meta . ((class . Item)
+ (interfaces . (ambitus-interface
+ font-interface
+ ledgered-interface
+ note-head-interface
+ rhythmic-head-interface
+ staff-symbol-referencer-interface))))))
(Arpeggio
- . ((X-extent . ,ly:arpeggio::width)
- (stencil . ,ly:arpeggio::print)
- (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)
- (staff-position . 0.0)
- (Y-extent . ,ly:arpeggio::height)
- (meta . ((class . Item)
- (interfaces . (arpeggio-interface
- staff-symbol-referencer-interface
- side-position-interface
- font-interface))))))
-
- (BalloonTextItem
- . ((stencil . ,ly:balloon-interface::print)
- (text . ,(grob::calc-property-by-copy 'text))
- (X-offset . ,(grob::calc-property-by-copy 'X-offset))
- (Y-offset . ,(grob::calc-property-by-copy 'Y-offset))
- (meta . ((class . Item)
- (interfaces . (balloon-interface
- text-interface
- font-interface))))))
+ . (
+ (cross-staff . ,ly:arpeggio::calc-cross-staff)
+ (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 . ,staff-symbol-referencer::callback)
+ (meta . ((class . Item)
+ (interfaces . (arpeggio-interface
+ font-interface
+ side-position-interface
+ staff-symbol-referencer-interface))))))
+
+ (BalloonTextItem
+ . (
+ (annotation-balloon . #t)
+ (annotation-line . #t)
+ (extra-spacing-width . (+inf.0 . -inf.0))
+ (stencil . ,ly:balloon-interface::print)
+ (text . ,(grob::calc-property-by-copy 'text))
+ (X-offset . ,(grob::calc-property-by-copy 'X-offset))
+ (Y-offset . ,(grob::calc-property-by-copy 'Y-offset))
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (meta . ((class . Item)
+ (interfaces . (balloon-interface
+ font-interface
+ text-interface))))))
+
(BarLine
. (
- (break-align-symbol . staff-bar)
- (break-align-anchor . ,ly:bar-line::calc-anchor)
- (glyph . "|")
- (gap . 0.4)
- (layer . 0)
- (break-visibility . ,bar-line::calc-break-visibility)
- (non-musical . #t)
- (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))
- (custos . (minimum-space . 2.0))
- (clef . (minimum-space . 1.0))
- (key-signature . (extra-space . 1.0))
- (key-cancellation . (extra-space . 1.0))
- (first-note . (fixed-space . 1.3))
- (next-note . (semi-fixed-space . 0.9))
- (right-edge . (extra-space . 0.0))))
-
- ;;
- ;; Ross. page 151 lists other values, we opt for a leaner look
- ;;
- ;; TODO:
- ;; kern should scale with line-thickness too.
- (kern . 3.0)
- (thin-kern . 3.0)
- (hair-thickness . 1.9)
- (thick-thickness . 6.0)
- (meta . ((class . Item)
- (interfaces . (bar-line-interface
- break-aligned-interface
- font-interface))))))
+ (allow-span-bar . #t)
+ (bar-extent . ,ly:bar-line::calc-bar-extent)
+ (break-align-anchor . ,ly:bar-line::calc-anchor)
+ (break-align-symbol . staff-bar)
+ (break-visibility . ,bar-line::calc-break-visibility)
+ (extra-spacing-height . ,pure-from-neighbor-interface::account-for-span-bar)
+ (gap . 0.4)
+ (glyph . "|")
+ (glyph-name . ,bar-line::calc-glyph-name)
+
+ ;;
+ ;; Ross. page 151 lists other values, we opt for a leaner look
+ ;;
+ ;; TODO:
+ ;; kern should scale with line-thickness too.
+ (kern . 3.0)
+ (segno-kern . 3.0)
+ (hair-thickness . 1.9)
+ (thick-thickness . 6.0)
+
+ (layer . 0)
+ (non-musical . #t)
+ (rounded . #f)
+ (space-alist . (
+ (time-signature . (extra-space . 0.75))
+ (custos . (minimum-space . 2.0))
+ (clef . (extra-space . 1.0))
+ (key-signature . (extra-space . 1.0))
+ (key-cancellation . (extra-space . 1.0))
+ (first-note . (fixed-space . 1.3))
+ (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)))
+ (interfaces . (bar-line-interface
+ break-aligned-interface
+ font-interface
+ pure-from-neighbor-interface))))))
(BarNumber
. (
- (stencil . ,ly:text-interface::print)
- (non-musical . #t)
- (break-visibility . ,begin-of-line-visible)
- (padding . 1.0)
- (direction . ,UP)
- (font-family . roman)
- (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
- (list ly:break-alignable-interface::self-align-callback))
- ,(ly:make-simple-closure
- (list ly:self-alignment-interface::x-aligned-on-self)))))
-
- (self-alignment-X . ,RIGHT)
-
- ;; want the bar number before the clef at line start.
- (break-align-symbols . (left-edge staff-bar))
- (meta .
- ((class . Item)
- (interfaces . (side-position-interface
- text-interface
- break-alignable-interface
- self-alignment-interface
- font-interface))))))
+ (after-line-breaking . ,ly:side-position-interface::move-to-extremal-staff)
+ ;; want the bar number before the clef at line start.
+ (break-align-symbols . (left-edge staff-bar))
+
+ (break-visibility . ,begin-of-line-visible)
+ (direction . ,UP)
+ (extra-spacing-width . (+inf.0 . -inf.0))
+ (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)
+ (side-axis . ,Y)
+ (stencil . ,ly:text-interface::print)
+ (X-offset . ,self-alignment-interface::self-aligned-on-breakable)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (meta .
+ ((class . Item)
+ (interfaces . (break-alignable-interface
+ font-interface
+ outside-staff-interface
+ self-alignment-interface
+ side-position-interface
+ text-interface))))))
(BassFigure
. (
- (stencil . ,ly:text-interface::print)
- (meta . ((class . Item)
- (interfaces . (text-interface
- rhythmic-grob-interface
- bass-figure-interface
- font-interface))))))
+ (stencil . ,ly:text-interface::print)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (meta . ((class . Item)
+ (interfaces . (bass-figure-interface
+ font-interface
+ rhythmic-grob-interface
+ text-interface))))))
(BassFigureAlignment
. (
- (axes . (,Y))
- (threshold . (2 . 1000))
- (positioning-done . ,ly:align-interface::calc-positioning-done)
- (Y-extent . ,ly:axis-group-interface::height)
- (stacking-dir . ,DOWN)
- (padding . 0.2)
- (meta . ((class . Spanner)
- (interfaces . (align-interface
- bass-figure-alignment-interface
- axis-group-interface))))))
+ (axes . (,Y))
+ (padding . 0.2)
+ (positioning-done . ,ly:align-interface::align-to-minimum-distances)
+ (stacking-dir . ,DOWN)
+ (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)))
+ (interfaces . (align-interface
+ axis-group-interface
+ bass-figure-alignment-interface))))))
(BassFigureAlignmentPositioning
- . ((Y-offset . ,ly:side-position-interface::y-aligned-side)
- (side-axis . ,Y)
- (direction . ,UP)
- (Y-extent . ,ly:axis-group-interface::height)
- (axes . (,Y))
- (staff-padding . 1.0)
- (padding . 0.5)
- (meta . ((class . Spanner)
- (interfaces . (side-position-interface
- axis-group-interface))))))
-
+ . (
+ (axes . (,Y))
+ (direction . ,UP)
+ (padding . 0.5)
+ (side-axis . ,Y)
+ (staff-padding . 1.0)
+ (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)))
+ (interfaces . (axis-group-interface
+ outside-staff-interface
+ side-position-interface))))))
+
(BassFigureBracket
. (
- (stencil . ,ly:enclosing-bracket::print)
- (X-extent . ,ly:enclosing-bracket::width)
- (edge-height . (0.2 . 0.2))
- (meta . ((class . Item)
- (interfaces . (enclosing-bracket-interface))))))
+ (edge-height . (0.2 . 0.2))
+ (stencil . ,ly:enclosing-bracket::print)
+ (X-extent . ,ly:enclosing-bracket::width)
+ (meta . ((class . Item)
+ (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))))))
+ (stencil . ,ly:figured-bass-continuation::print)
+ (Y-offset . ,ly:figured-bass-continuation::center-on-figures)
+ (meta . ((class . Spanner)
+ (interfaces . (figured-bass-continuation-interface))))))
(BassFigureLine
. (
- (axes . (,Y))
- (Y-extent . ,ly:axis-group-interface::height)
- (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))))))
+ (adjacent-pure-heights . ,ly:axis-group-interface::adjacent-pure-heights)
+ (axes . (,Y))
+ (vertical-skylines . ,ly:axis-group-interface::calc-skylines)
+ (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)))
+ (interfaces . (axis-group-interface
+ outside-staff-axis-group-interface))))))
(Beam
. (
- ;; todo: clean this up a bit: the list is getting
- ;; rather long.
- (gap . 0.8)
- (positions . ,(ly:make-simple-closure
- (ly:make-simple-closure
- (list chain-grob-member-functions
- `(,cons 0 0)
- ly:beam::calc-least-squares-positions
- ly:beam::slope-damping
- ly:beam::shift-region-to-valid
- ly:beam::quanting
- ))))
-
- ;; this is a hack to set stem lengths, if positions is set.
- (quantized-positions . ,ly:beam::set-stem-lengths)
- (concaveness . ,ly:beam::calc-concaveness)
- (direction . ,ly:beam::calc-direction)
- (shorten . ,ly:beam::calc-stem-shorten)
- (beaming . ,ly:beam::calc-beaming)
- (stencil . ,ly:beam::print)
- (clip-edges . #t)
- (cross-staff . ,ly:beam::calc-cross-staff)
-
- (details . ((hint-direction-penalty . 20)))
- ;; TODO: should be in SLT.
- (thickness . 0.48) ; in staff-space
- (neutral-direction . ,DOWN)
-
- ;; Whe have some unreferenced problems here.
- ;;
- ;; If we shorten beamed stems less than normal stems (1 staff-space),
- ;; or high order less than 8th beams, patterns like
- ;; c''4 [c''8 c''] c''4 [c''16 c]
- ;; are ugly (different stem lengths).
- ;;
- ;; But if we shorten 16th beams as much as 8th beams, a single
- ;; forced 16th beam looks *very* short.
-
- ;; We choose to shorten 8th beams the same as single stems,
- ;; and high order beams less than 8th beams, so that all
- ;; isolated shortened beams look nice and a bit shortened,
- ;; sadly possibly breaking patterns with high order beams.
- (beamed-stem-shorten . (1.0 0.5 0.25))
- (damping . 1)
- (auto-knee-gap . 5.5)
-
- ;; 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
- font-interface))))))
+ ;; todo: clean this up a bit: the list is getting
+ ;; rather long.
+ (auto-knee-gap . 5.5)
+ (beam-segments . ,ly:beam::calc-beam-segments)
+ (beam-thickness . 0.48) ; in staff-space
+
+ ;; We have some unreferenced problems here.
+ ;;
+ ;; If we shorten beamed stems less than normal stems (1 staff-space),
+ ;; or high order less than 8th beams, patterns like
+ ;; c''4 [c''8 c''] c''4 [c''16 c]
+ ;; are ugly (different stem lengths).
+ ;;
+ ;; But if we shorten 16th beams as much as 8th beams, a single
+ ;; forced 16th beam looks *very* short.
+
+ ;; We choose to shorten 8th beams the same as single stems,
+ ;; and high order beams less than 8th beams, so that all
+ ;; isolated shortened beams look nice and a bit shortened,
+ ;; sadly possibly breaking patterns with high order beams.
+ (beamed-stem-shorten . (1.0 0.5 0.25))
+
+ (beaming . ,ly:beam::calc-beaming)
+ (clip-edges . #t)
+ (collision-interfaces . (beam-interface
+ clef-interface
+ clef-modifier-interface
+ flag-interface
+ inline-accidental-interface
+ key-signature-interface
+ note-head-interface
+ stem-interface
+ time-signature-interface))
+ (cross-staff . ,ly:beam::calc-cross-staff)
+ (damping . 1)
+ (details
+ .(
+ (secondary-beam-demerit . 10)
+ (stem-length-demerit-factor . 5)
+ (region-size . 2)
+ (beam-eps . 0.001)
+ (stem-length-limit-penalty . 5000)
+ (damping-direction-penalty . 800)
+ (hint-direction-penalty . 20)
+ (musical-direction-factor . 400)
+ (ideal-slope-factor . 10)
+ (collision-penalty . 500)
+ (collision-padding . 0.35)
+ (round-to-zero-slope . 0.02)))
+ (direction . ,ly:beam::calc-direction)
+
+ (normalized-endpoints . ,ly:spanner::calc-normalized-endpoints)
+ ;; only for debugging.
+ (font-family . roman)
+
+ (gap . 0.8)
+ (neutral-direction . ,DOWN)
+ (positions . ,beam::place-broken-parts-individually)
+ (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)
+ (object-callbacks . ((normal-stems . ,ly:beam::calc-normal-stems)))
+ (interfaces . (beam-interface
+ font-interface
+ staff-symbol-referencer-interface
+ unbreakable-spanner-interface))))))
(BendAfter
. (
- (stencil . ,bend::print)
- (thickness . 2.0)
- (meta . ((class . Spanner)
- (interfaces . (spanner-interface
- bend-after-interface))))))
+ (minimum-length . 0.5)
+ (stencil . ,bend::print)
+ (thickness . 2.0)
+ (meta . ((class . Spanner)
+ (interfaces . (bend-after-interface
+ spanner-interface))))))
- (BreakAlignment
+ (BreakAlignGroup
. (
- (non-musical . #t)
- (stacking-dir . 1)
- (positioning-done . ,ly:break-alignment-interface::calc-positioning-done)
- (X-extent . ,ly:axis-group-interface::width)
- (break-align-orders . ;; end of line
- #((
- left-edge
- ambitus
- breathing-sign
- clef
- staff-bar
- key-cancellation
- key-signature
- time-signature
- custos)
-
- ;; unbroken
- (
- left-edge
- ambitus
- breathing-sign
- clef
- staff-bar
- key-cancellation
- key-signature
- staff
- time-signature custos)
-
- ;; begin of line
- (
- left-edge
- ambitus
- breathing-sign
- clef
- key-cancellation
- key-signature
- staff-bar
- time-signature
- custos)))
- (axes . (,X))
- (meta . ((class . Item)
- (interfaces . (break-alignment-interface
- axis-group-interface))))))
+ (axes . (,X))
+ (break-align-anchor . ,ly:break-aligned-interface::calc-average-anchor)
+ (break-visibility . ,ly:break-aligned-interface::calc-break-visibility)
+ (X-extent . ,ly:axis-group-interface::width)
+ (meta . ((class . Item)
+ (interfaces . (axis-group-interface
+ break-aligned-interface))))))
- (BreakAlignGroup
+ (BreakAlignment
. (
- (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)
- (meta . ((class . Item)
- (interfaces . (break-aligned-interface
- axis-group-interface))))))
+ (axes . (,X))
+ (break-align-orders . ;; end of line
+ #((
+ left-edge
+ cue-end-clef
+ ambitus
+ breathing-sign
+ clef
+ cue-clef
+ staff-bar
+ key-cancellation
+ key-signature
+ time-signature
+ custos)
+
+ ;; unbroken
+ (
+ left-edge
+ cue-end-clef
+ ambitus
+ breathing-sign
+ clef
+ cue-clef
+ staff-bar
+ key-cancellation
+ key-signature
+ time-signature
+ custos)
+
+ ;; begin of line
+ (
+ left-edge
+ ambitus
+ breathing-sign
+ clef
+ key-cancellation
+ key-signature
+ time-signature
+ staff-bar
+ cue-clef
+ custos)))
+ (non-musical . #t)
+ (positioning-done . ,ly:break-alignment-interface::calc-positioning-done)
+ (stacking-dir . 1)
+ (X-extent . ,ly:axis-group-interface::width)
+ (meta . ((class . Item)
+ (interfaces . (axis-group-interface
+ break-alignment-interface))))))
(BreathingSign
. (
- (break-align-symbol . breathing-sign)
- (non-musical . #t)
- (space-alist . (
- (ambitus . (extra-space . 2.0))
- (custos . (minimum-space . 1.0))
- (key-signature . (minimum-space . 1.5))
- (time-signature . (minimum-space . 1.5))
- (staff-bar . (minimum-space . 1.5))
- (clef . (minimum-space . 2.0))
- (first-note . (fixed-space . 1.0)) ;huh?
- (right-edge . (extra-space . 0.1))))
- (stencil . ,ly:text-interface::print)
- (text . ,(make-musicglyph-markup "scripts.rcomma"))
- (Y-offset . ,ly:breathing-sign::offset-callback)
- (break-visibility . ,begin-of-line-invisible)
- (meta . ((class . Item)
- (interfaces . (break-aligned-interface
- breathing-sign-interface
- text-interface
- font-interface))))))
+ (break-align-symbol . breathing-sign)
+ (break-visibility . ,begin-of-line-invisible)
+ (non-musical . #t)
+ (space-alist . (
+ (ambitus . (extra-space . 2.0))
+ (custos . (minimum-space . 1.0))
+ (key-signature . (minimum-space . 1.5))
+ (time-signature . (minimum-space . 1.5))
+ (staff-bar . (minimum-space . 1.5))
+ (clef . (minimum-space . 2.0))
+ (cue-clef . (minimum-space . 2.0))
+ (cue-end-clef . (minimum-space . 2.0))
+ (first-note . (fixed-space . 1.0)) ;huh?
+ (right-edge . (extra-space . 0.1))))
+ (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
+ font-interface
+ outside-staff-interface
+ text-interface))))))
- (Clef
+ (ChordName
. (
- (stencil . ,ly:clef::print)
- (glyph-name . ,ly:clef::calc-glyph-name)
- (non-musical . #t)
- (avoid-slur . inside)
- (font-family . music)
- (break-align-symbol . clef)
- (break-align-anchor . ,ly:break-aligned-interface::calc-extent-aligned-anchor)
- (break-visibility . ,begin-of-line-visible)
- (space-alist . ((ambitus . (extra-space . 2.0))
- (staff-bar . (extra-space . 0.7))
- (key-cancellation . (minimum-space . 3.5))
- (key-signature . (minimum-space . 3.5))
- (time-signature . (minimum-space . 4.2))
- (first-note . (minimum-fixed-space . 5.0))
- (next-note . (extra-space . 0.5))
- (right-edge . (extra-space . 0.5))))
- (Y-offset . ,ly:staff-symbol-referencer::callback)
- (meta . ((class . Item)
- (interfaces . (clef-interface
- staff-symbol-referencer-interface
- font-interface
- break-aligned-interface))))))
+ (after-line-breaking . ,ly:chord-name::after-line-breaking)
+ (font-family . sans)
+ (font-size . 1.5)
+ (stencil . ,ly:text-interface::print)
+ (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
+ outside-staff-interface
+ rhythmic-grob-interface
+ text-interface))))))
- (ClusterSpannerBeacon
+ (Clef
. (
- (Y-extent . ,ly:cluster-beacon::height)
- (meta . ((class . Item)
- (interfaces . (rhythmic-grob-interface
- cluster-beacon-interface))))))
+ (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)
+ (glyph-name . ,ly:clef::calc-glyph-name)
+ (non-musical . #t)
+ (space-alist . ((cue-clef . (extra-space . 2.0))
+ (staff-bar . (extra-space . 0.7))
+ (key-cancellation . (minimum-space . 3.5))
+ (key-signature . (minimum-space . 3.5))
+ (time-signature . (minimum-space . 4.2))
+ (first-note . (minimum-fixed-space . 5.0))
+ (next-note . (extra-space . 1.0))
+ (right-edge . (extra-space . 0.5))))
+ (stencil . ,ly:clef::print)
+ (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)))
+ (interfaces . (break-aligned-interface
+ clef-interface
+ font-interface
+ pure-from-neighbor-interface
+ staff-symbol-referencer-interface))))))
+
+ (ClefModifier
+ . (
+ (break-visibility . ,(grob::inherit-parent-property
+ X 'break-visibility))
+ (clef-alignments . ((G . (-0.2 . 0.1))
+ (F . (-0.3 . -0.2))
+ (C . (0 . 0))))
+ (color . ,(grob::inherit-parent-property
+ X 'color))
+ (font-shape . italic)
+ (font-size . -4)
+ (parent-alignment-X . ,ly:clef-modifier::calc-parent-alignment)
+ (self-alignment-X . ,CENTER)
+ (staff-padding . 0.7)
+ (stencil . ,ly:text-interface::print)
+ (transparent . ,(grob::inherit-parent-property
+ X 'transparent))
+ (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+ (meta . ((class . Item)
+ (interfaces . (clef-modifier-interface
+ font-interface
+ outside-staff-interface
+ self-alignment-interface
+ side-position-interface
+ text-interface))))))
(ClusterSpanner
. (
- (springs-and-rods . ,ly:spanner::set-spacing-rods)
- (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))))))
+ (cross-staff . ,ly:cluster::calc-cross-staff)
+ (minimum-length . 0.0)
+ (padding . 0.25)
+ (springs-and-rods . ,ly:spanner::set-spacing-rods)
+ (stencil . ,ly:cluster::print)
+ (style . ramp)
+ (meta . ((class . Spanner)
+ (interfaces . (cluster-interface))))))
- (ChordName
+ (ClusterSpannerBeacon
. (
- (stencil . ,ly:text-interface::print)
- (after-line-breaking . ,ly:chord-name::after-line-breaking)
- (word-space . 0.0)
- (font-family . sans)
- (font-size . 1.5)
- (meta . ((class . Item)
- (interfaces . (font-interface
- rhythmic-grob-interface
- text-interface
- chord-name-interface))))))
+ (Y-extent . ,ly:cluster-beacon::height)
+ (meta . ((class . Item)
+ (interfaces . (cluster-beacon-interface
+ rhythmic-grob-interface))))))
(CombineTextScript
. (
- (stencil . ,ly:text-interface::print)
- (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)
- (padding . 0.5)
- (staff-padding . 0.5)
- (script-priority . 200)
- ;; todo: add X self alignment?
- (baseline-skip . 2)
- (side-axis . ,Y)
- (avoid-slur . outside )
- (font-series . bold)
- (meta . ((class . Item)
- (interfaces . (text-script-interface
- text-interface
- side-position-interface
- font-interface))))))
+ (avoid-slur . outside)
+ (baseline-skip . 2)
+ (direction . ,UP)
+ (extra-spacing-width . (+inf.0 . -inf.0))
+ (font-series . bold)
+ (outside-staff-priority . 450)
+ (padding . 0.5)
+ (parent-alignment-X . #f)
+ (script-priority . 200)
+ (self-alignment-X . #f)
+ (side-axis . ,Y)
+ (staff-padding . 0.5)
+ (stencil . ,ly:text-interface::print)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (meta . ((class . Item)
+ (interfaces . (font-interface
+ outside-staff-interface
+ self-alignment-interface
+ side-position-interface
+ text-interface
+ text-script-interface))))))
+
+ (CueClef
+ . (
+ (avoid-slur . inside)
+ (break-align-anchor . ,ly:break-aligned-interface::calc-extent-aligned-anchor)
+ (break-align-symbol . cue-clef)
+ (break-visibility . ,begin-of-line-visible)
+ (extra-spacing-height . ,pure-from-neighbor-interface::extra-spacing-height-at-beginning-of-line)
+ (font-size . -4)
+ (glyph-name . ,ly:clef::calc-glyph-name)
+ (non-musical . #t)
+ (full-size-change . #t)
+ (space-alist . ((staff-bar . (minimum-space . 2.7))
+ (key-cancellation . (minimum-space . 3.5))
+ (key-signature . (minimum-space . 3.5))
+ (time-signature . (minimum-space . 4.2))
+ (custos . (minimum-space . 0.0))
+ (first-note . (minimum-fixed-space . 3.0))
+ (next-note . (extra-space . 1.0))
+ (right-edge . (extra-space . 0.5))))
+ (stencil . ,ly:clef::print)
+ (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)))
+ (interfaces . (break-aligned-interface
+ clef-interface
+ font-interface
+ pure-from-neighbor-interface
+ staff-symbol-referencer-interface))))))
+
+ (CueEndClef
+ . (
+ (avoid-slur . inside)
+ (break-align-anchor . ,ly:break-aligned-interface::calc-extent-aligned-anchor)
+ (break-align-symbol . cue-end-clef)
+ (break-visibility . ,begin-of-line-invisible)
+ (extra-spacing-height . ,pure-from-neighbor-interface::extra-spacing-height-at-beginning-of-line)
+ (font-size . -4)
+ (glyph-name . ,ly:clef::calc-glyph-name)
+ (non-musical . #t)
+ (full-size-change . #t)
+ (space-alist . ((clef . (extra-space . 0.7))
+ (cue-clef . (extra-space . 0.7))
+ (staff-bar . (extra-space . 0.7))
+ (key-cancellation . (minimum-space . 3.5))
+ (key-signature . (minimum-space . 3.5))
+ (time-signature . (minimum-space . 4.2))
+ (first-note . (minimum-fixed-space . 5.0))
+ (next-note . (extra-space . 1.0))
+ (right-edge . (extra-space . 0.5))))
+ (stencil . ,ly:clef::print)
+ (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)))
+ (interfaces . (break-aligned-interface
+ clef-interface
+ font-interface
+ pure-from-neighbor-interface
+ staff-symbol-referencer-interface))))))
(Custos
. (
- (break-align-symbol . custos)
- (non-musical . #t)
- (stencil . ,ly:custos::print)
- (break-visibility . ,end-of-line-visible)
- (style . vaticana)
- (neutral-direction . ,DOWN)
- (Y-offset . ,ly:staff-symbol-referencer::callback)
- (space-alist . (
- (first-note . (minimum-fixed-space . 0.0))
- (right-edge . (extra-space . 0.1))))
- (meta . ((class . Item)
- (interfaces . (custos-interface
- staff-symbol-referencer-interface
- font-interface
- break-aligned-interface))))))
+ (break-align-symbol . custos)
+ (break-visibility . ,end-of-line-visible)
+ (neutral-direction . ,DOWN)
+ (non-musical . #t)
+ (space-alist . (
+ (first-note . (minimum-fixed-space . 0.0))
+ (right-edge . (extra-space . 0.1))))
+ (stencil . ,ly:custos::print)
+ (style . vaticana)
+ (Y-offset . ,staff-symbol-referencer::callback)
+ (meta . ((class . Item)
+ (interfaces . (break-aligned-interface
+ custos-interface
+ font-interface
+ staff-symbol-referencer-interface))))))
(DotColumn
. (
- (axes . (,X))
- (direction . ,RIGHT)
- (positioning-done . ,ly:dot-column::calc-positioning-done)
- (X-extent . ,ly:axis-group-interface::width)
- (meta . ((class . Item)
- (interfaces . (dot-column-interface
- axis-group-interface))))))
+ (axes . (,X))
+ (chord-dots-limit . 3)
+ (direction . ,RIGHT)
+ (positioning-done . ,ly:dot-column::calc-positioning-done)
+ (X-extent . ,ly:axis-group-interface::width)
+ (meta . ((class . Item)
+ (interfaces . (axis-group-interface
+ dot-column-interface))))))
(Dots
. (
- (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
- dots-interface))))))
+ (avoid-slur . inside)
+ (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))
+ (extra-spacing-width . (0.0 . 0.2))
+ (meta . ((class . Item)
+ (interfaces . (dots-interface
+ font-interface
+ staff-symbol-referencer-interface))))))
(DoublePercentRepeat
. (
- (stencil . ,ly:percent-repeat-item-interface::double-percent)
- (non-musical . #t)
- (slope . 1.0)
- (dot-negative-kern . 0.75)
- (slash-negative-kern . 1.6)
- (font-encoding . fetaMusic)
- (width . 2.0)
- (thickness . 0.48)
- (break-align-symbol . staff-bar)
- (break-visibility . ,begin-of-line-invisible)
- (meta . ((class . Item)
- (interfaces . (font-interface
- break-aligned-interface
- percent-repeat-interface
- percent-repeat-item-interface))))))
+ (break-align-symbol . staff-bar)
+ (break-visibility . ,begin-of-line-invisible)
+ (dot-negative-kern . 0.75)
+ (font-encoding . fetaMusic)
+ (non-musical . #t)
+ (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
+ font-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)))))
- (Y-offset . ,ly:side-position-interface::y-aligned-side)
- (font-encoding . fetaNumber)
- (self-alignment-X . ,CENTER)
- (font-size . -2)
- (direction . ,UP)
- (padding . 0.2)
- (staff-padding . 0.25)
- (side-axis . ,Y)
- (meta . ((class . Item)
- (interfaces . (side-position-interface
- self-alignment-interface
- percent-repeat-item-interface
- percent-repeat-interface
- font-interface
- text-interface))))))
+ (direction . ,UP)
+ (font-encoding . fetaText)
+ (font-size . -2)
+ (padding . 0.2)
+ (parent-alignment-X . ,CENTER)
+ (self-alignment-X . ,CENTER)
+ (side-axis . ,Y)
+ (staff-padding . 0.25)
+ (stencil . ,ly:text-interface::print)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+ (meta . ((class . Item)
+ (interfaces . (font-interface
+ outside-staff-interface
+ percent-repeat-interface
+ percent-repeat-item-interface
+ self-alignment-interface
+ side-position-interface
+ text-interface))))))
+
+ (DoubleRepeatSlash
+ . (
+ (dot-negative-kern . 0.75)
+ (font-encoding . fetaMusic)
+ (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
+ outside-staff-interface
+ percent-repeat-interface
+ percent-repeat-item-interface
+ rhythmic-grob-interface))))))
(DynamicLineSpanner
. (
- (axes . (,Y))
- (Y-offset . ,ly:side-position-interface::y-aligned-side)
- (staff-padding . 0.1)
- (padding . 0.6)
- (slur-padding . 0.3)
- (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)
- (cross-staff . ,ly:side-position-interface::calc-cross-staff)
- (meta . ((class . Spanner)
- (interfaces . (axis-group-interface
- dynamic-interface
- dynamic-line-spanner-interface
- side-position-interface))))))
+ (axes . (,Y))
+ (cross-staff . ,ly:side-position-interface::calc-cross-staff)
+ (direction . ,DOWN)
+ (minimum-space . 1.2)
+ (outside-staff-priority . 250)
+ (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 . ,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)))
+ (interfaces . (axis-group-interface
+ dynamic-interface
+ dynamic-line-spanner-interface
+ outside-staff-interface
+ side-position-interface))))))
(DynamicText
. (
- ;; todo.
-
- (stencil . ,ly:text-interface::print)
- (direction . ,ly:script-interface::calc-direction)
- (positioning-done . ,ly:script-interface::calc-positioning-done)
-
- (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
- (self-alignment-X . ,CENTER)
- (Y-offset . ,ly:self-alignment-interface::y-aligned-on-self)
- (self-alignment-Y . ,CENTER)
- (font-series . bold)
- (font-encoding . fetaDynamic)
- (font-shape . italic)
- (extra-spacing-width . (+inf.0 . -inf.0))
- (outside-staff-priority . 250)
- (meta . ((class . Item)
- (interfaces . (font-interface
- text-interface
- self-alignment-interface
- dynamic-interface
- script-interface))))))
+ ;; todo.
+
+ (direction . ,ly:script-interface::calc-direction)
+ (extra-spacing-width . (+inf.0 . -inf.0))
+ (font-encoding . fetaText)
+ (font-series . bold)
+ (font-shape . italic)
+ (parent-alignment-X . ,CENTER)
+ (positioning-done . ,ly:script-interface::calc-positioning-done)
+ (right-padding . 0.5)
+ (self-alignment-X . ,CENTER)
+ (stencil . ,ly:text-interface::print)
+ (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (X-align-on-main-noteheads . #t)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
+ (Y-offset . ,(scale-by-font-size -0.6)) ; center on an 'm'
+ (meta . ((class . Item)
+ (interfaces . (dynamic-interface
+ dynamic-text-interface
+ font-interface
+ outside-staff-interface
+ script-interface
+ self-alignment-interface
+ text-interface))))))
(DynamicTextSpanner
. (
- ;; rather ugh with NCSB
- ;; (font-series . bold)
- (font-shape . italic)
- (style . dashed-line)
-
- ;; make sure the spanner doesn't get too close to notes
- (minimum-Y-extent . (-1 . 1))
- (bound-details . ((right . ((attach-dir . ,LEFT)
- (Y . 0)
- (padding . 0.75)
- ))
- (right-broken . ((attach-dir . ,RIGHT)
- (padding . 0.0)
- ))
-
- (left . ((attach-dir . ,LEFT)
- (Y . 0)
- (stencil-offset . (0 . -0.5))
- (padding . 0.5)
- ))
- (left-broken . ((attach-dir . ,RIGHT)
- ))
- ))
- (stencil . ,ly:line-spanner::print)
- (left-bound-info . ,ly:line-spanner::calc-left-bound-info-and-text)
- (right-bound-info . ,ly:line-spanner::calc-right-bound-info)
-
- ;; need to blend with dynamic texts.
- (font-size . 1)
- (dash-fraction . 0.2)
- (dash-period . 3.0)
- (meta . ((class . Spanner)
- (interfaces . (font-interface
- text-interface
- line-spanner-interface
- line-interface
- dynamic-interface
- dynamic-text-spanner-interface
- spanner-interface))))))
-
-
+ (before-line-breaking . ,dynamic-text-spanner::before-line-breaking)
+ (bound-details . ((right . ((attach-dir . ,LEFT)
+ (Y . 0)
+ (padding . 0.75)
+ ))
+ (right-broken . ((attach-dir . ,RIGHT)
+ (padding . 0.0)
+ ))
+
+ (left . ((attach-dir . ,LEFT)
+ (Y . 0)
+ (stencil-offset . (-0.75 . -0.5))
+ (padding . 0.75)
+ ))
+ (left-broken . ((attach-dir . ,RIGHT)
+ ))
+ ))
+ (dash-fraction . 0.2)
+ (dash-period . 3.0)
+
+ ;; rather ugh with NCSB
+ ;; (font-series . bold)
+ (font-shape . italic)
+
+ ;; need to blend with dynamic texts.
+ (font-size . 1)
+
+ (left-bound-info . ,ly:line-spanner::calc-left-bound-info-and-text)
+
+ (minimum-length . 2.0)
+ ;; make sure the spanner doesn't get too close to notes
+ (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
+ font-interface
+ line-interface
+ line-spanner-interface
+ ;for now, LilyPond never will typeset
+ ;these without a DynamicLineSpanner
+ ;as their controlling element
+ ;so, they do not need the
+ ;outside-staff-interface
+ spanner-interface
+ text-interface))))))
+
+
+ (Episema
+ . (
+ (bound-details . ((left . ((Y . 0)
+ (padding . 0)
+ (attach-dir . ,LEFT)
+ ))
+ (right . ((Y . 0)
+ (padding . 0)
+ (attach-dir . ,RIGHT)
+ ))
+ ))
+ (direction . ,UP)
+ (left-bound-info . ,ly:line-spanner::calc-left-bound-info)
+ (quantize-position . #t)
+ (right-bound-info . ,ly:line-spanner::calc-right-bound-info)
+ (side-axis . ,Y)
+ (stencil . ,ly:line-spanner::print)
+ (style . line)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+ (meta . ((class . Spanner)
+ (interfaces . (episema-interface
+ font-interface
+ line-interface
+ line-spanner-interface
+ side-position-interface))))))
+
+
(Fingering
. (
- ;; sync with TextScript (?)
-
- (padding . 0.5)
- (avoid-slur . around)
- (slur-padding . 0.2)
- (staff-padding . 0.5)
- (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)
- (font-size . -5) ; don't overlap when next to heads.
- (meta . ((class . Item)
- (interfaces . (finger-interface
- font-interface
- text-script-interface
- text-interface
- side-position-interface
- self-alignment-interface))))))
+ ;; 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)
+ (font-encoding . fetaText)
+ (font-size . -5) ; don't overlap when next to heads.
+ (padding . 0.5)
+ (parent-alignment-X . ,CENTER)
+ (parent-alignment-Y . ,CENTER)
+ (positioning-done . ,ly:script-interface::calc-positioning-done)
+ (script-priority . 100)
+ (self-alignment-X . ,CENTER)
+ (self-alignment-Y . ,CENTER)
+ (slur-padding . 0.2)
+ (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
+ outside-staff-interface
+ self-alignment-interface
+ side-position-interface
+ 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)
+ (transparent . ,(grob::inherit-parent-property
+ X 'transparent))
+ (color . ,(grob::inherit-parent-property
+ X 'color))
+ (X-extent . ,ly:flag::width)
+ (X-offset . ,ly:flag::calc-x-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))))))
+
+ (FootnoteItem
+ . (
+ (annotation-balloon . #f)
+ (annotation-line . #t)
+ (automatically-numbered . ,(grob::calc-property-by-copy 'automatically-numbered))
+ (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)
+ (text . ,(grob::calc-property-by-copy 'text))
+ (X-extent . #f)
+ (Y-extent . #f)
+ (X-offset . ,(grob::calc-property-by-copy 'X-offset))
+ (Y-offset . ,(grob::calc-property-by-copy 'Y-offset))
+ (meta . ((class . Item)
+ (interfaces . (balloon-interface
+ footnote-interface
+ font-interface
+ text-interface))))))
+
+ (FootnoteSpanner
+ . (
+ (annotation-balloon . #f)
+ (annotation-line . #t)
+ (automatically-numbered . ,(grob::calc-property-by-copy 'automatically-numbered))
+ (footnote . #t)
+ (footnote-text . ,(grob::calc-property-by-copy 'footnote-text))
+ (spanner-placement . ,LEFT)
+ (stencil . ,ly:balloon-interface::print-spanner)
+ (text . ,(grob::calc-property-by-copy 'text))
+ (X-extent . #f)
+ (Y-extent . #f)
+ (X-offset . ,(grob::calc-property-by-copy 'X-offset))
+ (Y-offset . ,(grob::calc-property-by-copy 'Y-offset))
+ (meta . ((class . Spanner)
+ (interfaces . (balloon-interface
+ footnote-interface
+ footnote-spanner-interface
+ font-interface
+ text-interface))))))
(FretBoard
- . ((stencil . ,fret-board::calc-stencil)
- (fret-diagram-details . ((finger-code . below-string)))
- (meta . ((class . Item)
- (interfaces . (fret-diagram-interface
- font-interface))))))
+ . (
+ (after-line-breaking . ,ly:chord-name::after-line-breaking)
+ (fret-diagram-details . ((finger-code . below-string)))
+ (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
+ fret-diagram-interface
+ outside-staff-interface
+ rhythmic-grob-interface))))))
(Glissando
. (
- (style . line)
- (gap . 0.5)
- (zigzag-width . 0.75)
- (X-extent . #f)
- (Y-extent . #f)
- (bound-details . ((right . ((attach-dir . ,CENTER)
- (padding . 1.5)
- ))
- (left . ((attach-dir . ,CENTER)
- (padding . 1.5)
- ))
- ))
- (stencil . ,ly:line-spanner::print)
- (left-bound-info . ,ly:line-spanner::calc-left-bound-info)
- (right-bound-info . ,ly:line-spanner::calc-right-bound-info)
- (meta . ((class . Spanner)
- (interfaces . (line-interface
- unbreakable-spanner-interface
- line-spanner-interface))))))
+ (after-line-breaking . ,ly:spanner::kill-zero-spanned-time)
+ (bound-details . ((right . ((attach-dir . ,LEFT)
+ (end-on-accidental . #t)
+ (padding . 0.5)
+ ))
+ (left . ((attach-dir . ,RIGHT)
+ (padding . 0.5)
+ (start-at-dot . #t)
+ ))
+ ))
+ (cross-staff . ,ly:line-spanner::calc-cross-staff)
+ (gap . 0.5)
+ (left-bound-info . ,ly:line-spanner::calc-left-bound-info)
+ (normalized-endpoints . ,ly:spanner::calc-normalized-endpoints)
+ (right-bound-info . ,ly:line-spanner::calc-right-bound-info)
+ (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)
+ (meta . ((class . Spanner)
+ (interfaces . (glissando-interface
+ line-interface
+ line-spanner-interface
+ unbreakable-spanner-interface))))))
(GraceSpacing
. (
- (common-shortest-duration . ,grace-spacing::calc-shortest-duration)
- (spacing-increment . 0.8)
- (shortest-duration-space . 1.6)
- (meta . ((class . Spanner)
- (interfaces . (grace-spacing-interface
- spacing-options-interface
- spanner-interface))))))
+ (common-shortest-duration . ,grace-spacing::calc-shortest-duration)
+ (shortest-duration-space . 1.6)
+ (spacing-increment . 0.8)
+ (meta . ((class . Spanner)
+ (interfaces . (grace-spacing-interface
+ spacing-options-interface
+ spanner-interface))))))
- (GridPoint
+ (GridLine
. (
- (X-extent . (0 . 0))
- (Y-extent . (0 . 0))
- (meta . ((class . Item)
- (interfaces . (grid-point-interface))))))
+ (layer . 0)
+ (parent-alignment-X . ,CENTER)
+ (self-alignment-X . ,CENTER)
+ (stencil . ,ly:grid-line-interface::print)
+ (X-extent . ,ly:grid-line-interface::width)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
+ (meta . ((class . Item)
+ (interfaces . (grid-line-interface
+ self-alignment-interface))))))
- (GridLine
+ (GridPoint
. (
- (X-extent . ,ly:grid-line-interface::width)
- (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)))))
- (layer . 0)
- (meta . ((class . Item)
- (interfaces . (self-alignment-interface
- grid-line-interface))))))
+ (X-extent . (0 . 0))
+ (Y-extent . (0 . 0))
+ (meta . ((class . Item)
+ (interfaces . (grid-point-interface))))))
(Hairpin
. (
- (stencil . ,ly:hairpin::print)
- (springs-and-rods . ,ly:spanner::set-spacing-rods)
- (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 . ,CENTER)
- (Y-offset . ,ly:self-alignment-interface::y-aligned-on-self)
- (meta . ((class . Spanner)
- (interfaces . (hairpin-interface
- line-interface
- self-alignment-interface
- dynamic-interface
- spanner-interface))))))
+ (after-line-breaking . ,ly:spanner::kill-zero-spanned-time)
+ (bound-padding . 1.0)
+ (broken-bound-padding . ,ly:hairpin::broken-bound-padding)
+ (circled-tip . #f)
+ (grow-direction . ,hairpin::calc-grow-direction)
+ (height . 0.6666)
+ (minimum-length . 2.0)
+ (self-alignment-Y . ,CENTER)
+ (springs-and-rods . ,ly:spanner::set-spacing-rods)
+ (stencil . ,ly:hairpin::print)
+ (thickness . 1.0)
+ (to-barline . #t)
+ (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
+ line-interface
+ outside-staff-interface
+ self-alignment-interface
+ spanner-interface))))))
(HorizontalBracket
. (
- (thickness . 1.0)
- (stencil . ,ly:horizontal-bracket::print)
- (Y-offset . ,ly:side-position-interface::y-aligned-side)
- (connect-to-neighbor . ,ly:tuplet-bracket::calc-connect-to-neighbors)
-
- (padding . 0.2)
- (staff-padding . 0.2)
- (direction . ,DOWN)
- (side-axis . ,Y)
- (bracket-flare . (0.5 . 0.5))
- (meta . ((class . Spanner)
- (interfaces . (horizontal-bracket-interface
- side-position-interface
- line-interface
- spanner-interface))))))
-
+ (bracket-flare . (0.5 . 0.5))
+ (connect-to-neighbor . ,ly:tuplet-bracket::calc-connect-to-neighbors)
+ (direction . ,DOWN)
+ (padding . 0.2)
+ (side-axis . ,Y)
+ (staff-padding . 0.2)
+ (stencil . ,ly:horizontal-bracket::print)
+ (thickness . 1.0)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+ (meta . ((class . Spanner)
+ (interfaces . (horizontal-bracket-interface
+ line-interface
+ outside-staff-interface
+ side-position-interface
+ spanner-interface))))))
+
+ (HorizontalBracketText
+ . (
+ (direction . ,ly:horizontal-bracket-text::calc-direction)
+ (font-size . -1)
+ (padding . 0.5)
+ (parent-alignment-X . ,CENTER)
+ (self-alignment-X . ,CENTER)
+ (side-axis . ,Y)
+ (stencil . ,ly:horizontal-bracket-text::print)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+ (meta . ((class . Spanner)
+ (interfaces . (font-interface
+ horizontal-bracket-text-interface
+ outside-staff-interface
+ self-alignment-interface
+ side-position-interface
+ text-interface))))))
(InstrumentName
. (
- (padding . 0.3)
- (stencil . ,ly:system-start-text::print)
- (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
- self-alignment-interface
- font-interface))))))
+ (direction . ,LEFT)
+ (padding . 0.3)
+ (self-alignment-X . ,CENTER)
+ (self-alignment-Y . ,CENTER)
+ (stencil . ,system-start-text::print)
+ (X-offset . ,system-start-text::calc-x-offset)
+ (Y-offset . ,system-start-text::calc-y-offset)
+ (meta . ((class . Spanner)
+ (interfaces . (font-interface
+ self-alignment-interface
+ side-position-interface
+ system-start-text-interface
+ text-interface))))))
(InstrumentSwitch
. (
- (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 . 0.5)
- (direction . ,UP)
- (side-axis . ,Y)
- (self-alignment-X . ,LEFT)
- (outside-staff-priority . 500)
- (extra-spacing-width . (+inf.0 . -inf.0))
- (meta . ((class . Item)
- (interfaces . (side-position-interface
- self-alignment-interface
- text-interface
- font-interface))))))
-
-
+ (direction . ,UP)
+ (extra-spacing-width . (+inf.0 . -inf.0))
+ (outside-staff-priority . 500)
+ (padding . 0.5)
+ (parent-alignment-X . #f)
+ (self-alignment-X . ,LEFT)
+ (side-axis . ,Y)
+ (staff-padding . 0.5)
+ (stencil . ,ly:text-interface::print)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+ (meta . ((class . Item)
+ (interfaces . (font-interface
+ outside-staff-interface
+ self-alignment-interface
+ side-position-interface
+ text-interface))))))
+
+
(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))
- (key-signature . (extra-space . 0.5))
- (right-edge . (extra-space . 0.5))
- (first-note . (fixed-space . 2.5))))
- (Y-offset . ,ly:staff-symbol-referencer::callback)
- (break-align-symbol . key-cancellation)
- (break-visibility . ,begin-of-line-invisible)
- (non-musical . #t)
- (meta . ((class . Item)
- (interfaces . (key-cancellation-interface
- key-signature-interface
- staff-symbol-referencer-interface
- font-interface
- break-aligned-interface))))))
+ (break-align-symbol . key-cancellation)
+ (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))
+ (key-signature . (extra-space . 0.5))
+ (cue-clef . (extra-space . 0.5))
+ (right-edge . (extra-space . 0.5))
+ (first-note . (fixed-space . 2.5))
+ (custos . (extra-space . 1.0))))
+ (stencil . ,ly:key-signature-interface::print)
+ (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (extra-spacing-width . (0.0 . 1.0))
+ (extra-spacing-height . ,pure-from-neighbor-interface::extra-spacing-height-including-staff)
+ (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)))
+ (interfaces . (break-aligned-interface
+ font-interface
+ key-cancellation-interface
+ key-signature-interface
+ pure-from-neighbor-interface
+ staff-symbol-referencer-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))
- (right-edge . (extra-space . 0.5))
- (first-note . (fixed-space . 2.5))))
- (Y-offset . ,ly:staff-symbol-referencer::callback)
- (break-align-symbol . key-signature)
- (break-align-anchor . ,ly:break-aligned-interface::calc-extent-aligned-anchor)
- (break-visibility . ,begin-of-line-visible)
- (non-musical . #t)
- (meta . ((class . Item)
- (interfaces . (key-signature-interface
- staff-symbol-referencer-interface
- font-interface
- break-aligned-interface))))))
-
-
- (LaissezVibrerTie
- . (
- (stencil . ,ly:tie::print)
- (control-points . ,ly:semi-tie::calc-control-points)
- (direction . ,ly:tie::calc-direction)
- (details . ((ratio . 0.333)
- (height-limit . 1.0)))
- (head-direction . ,LEFT)
- (thickness . 1.0)
- (meta . ((class . Item)
- (interfaces . (semi-tie-interface))))))
+ (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))
+ (cue-clef . (extra-space . 0.5))
+ (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)
+ (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)))
+ (interfaces . (break-aligned-interface
+ font-interface
+ key-signature-interface
+ 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)
+ (head-direction . ,LEFT)
+ (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))))))
(LaissezVibrerTieColumn
. (
- (X-extent . #f)
- (Y-extent . #f)
- (head-direction . ,LEFT)
- (positioning-done . ,ly:semi-tie-column::calc-positioning-done)
- (meta . ((class . Item)
- (interfaces . (semi-tie-column-interface))))))
+ (head-direction . ,ly:semi-tie-column::calc-head-direction)
+ (positioning-done . ,ly:semi-tie-column::calc-positioning-done)
+ (X-extent . #f)
+ (Y-extent . #f)
+ (meta . ((class . Item)
+ (interfaces . (semi-tie-column-interface))))))
(LedgerLineSpanner
. (
- (springs-and-rods . ,ly:ledger-line-spanner::set-spacing-rods)
- (stencil . ,ly:ledger-line-spanner::print)
- (X-extent . #f)
- (Y-extent . #f)
- (minimum-length-fraction . 0.25)
- (length-fraction . 0.25)
- (layer . 0)
- (meta . ((class . Spanner)
- (interfaces . (ledger-line-spanner-interface))))))
+ (layer . 0)
+ (length-fraction . 0.25)
+ (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)
+ (interfaces . (ledger-line-spanner-interface))))))
(LeftEdge
. (
- (break-align-symbol . left-edge)
- (break-align-anchor . ,ly:break-aligned-interface::calc-extent-aligned-anchor)
- (X-extent . (0 . 0))
- (non-musical . #t)
- (break-visibility . ,center-invisible)
- (space-alist . (
- (custos . (extra-space . 0.0))
- (ambitus . (extra-space . 2.0))
- (time-signature . (extra-space . 1.0))
- (staff-bar . (extra-space . 0.0))
- (breathing-sign . (minimum-space . 0.0))
- (clef . (extra-space . 0.8))
- (first-note . (fixed-space . 2.0))
- (right-edge . (extra-space . 0.0))
- (key-signature . (extra-space . 0.0))
- (key-cancellation . (extra-space . 0.0))
- ))
- (meta . ((class . Item)
- (interfaces . (break-aligned-interface))))))
+ (break-align-anchor . ,ly:break-aligned-interface::calc-extent-aligned-anchor)
+ (break-align-symbol . left-edge)
+ (break-visibility . ,begin-of-line-visible)
+ (non-musical . #t)
+ (space-alist . (
+ (ambitus . (extra-space . 2.0))
+ (breathing-sign . (minimum-space . 0.0))
+ (cue-end-clef . (extra-space . 0.8))
+ (clef . (extra-space . 0.8))
+ (cue-clef . (extra-space . 0.8))
+ (staff-bar . (extra-space . 0.0))
+ (key-cancellation . (extra-space . 0.0))
+ (key-signature . (extra-space . 0.8))
+ (time-signature . (extra-space . 1.0))
+ (custos . (extra-space . 0.0))
+ (first-note . (fixed-space . 2.0))
+ (right-edge . (extra-space . 0.0))
+ ))
+ (X-extent . (0 . 0))
+ (Y-extent . (0 . 0))
+ (meta . ((class . Item)
+ (interfaces . (break-aligned-interface))))))
(LigatureBracket
. (
- ;; ugh. A ligature bracket is totally different from
- ;; a tuplet bracket.
-
- (padding . 2.0)
- (thickness . 1.6)
- (edge-height . (0.7 . 0.7))
- (shorten-pair . (-0.2 . -0.2))
- (direction . ,UP)
- (positions . ,ly:tuplet-bracket::calc-positions)
- (stencil . ,ly:tuplet-bracket::print)
- (staff-padding . 0.25)
- (connect-to-neighbor . ,ly:tuplet-bracket::calc-connect-to-neighbors)
- (control-points . ,ly:tuplet-bracket::calc-control-points)
- (meta . ((class . Spanner)
- (interfaces . (line-interface
- tuplet-bracket-interface))))))
+ ;; 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))
+ (padding . 2.0)
+ (positions . ,ly:tuplet-bracket::calc-positions)
+ (shorten-pair . (-0.2 . -0.2))
+ (staff-padding . 0.25)
+ (stencil . ,ly:tuplet-bracket::print)
+ (thickness . 1.6)
+ (X-positions . ,ly:tuplet-bracket::calc-x-positions)
+ (meta . ((class . Spanner)
+ (interfaces . (line-interface
+ tuplet-bracket-interface))))))
(LyricExtender
. (
- (stencil . ,ly:lyric-extender::print)
- (thickness . 0.8) ; line-thickness
- (minimum-length . 1.5)
- (Y-extent . (0 . 0))
- (meta . ((class . Spanner)
- (interfaces . (lyric-interface
- lyric-extender-interface))))))
+ (minimum-length . 1.5)
+ (stencil . ,ly:lyric-extender::print)
+ (thickness . 0.8) ; line-thickness
+ (Y-extent . (0 . 0))
+ (meta . ((class . Spanner)
+ (interfaces . (lyric-extender-interface
+ lyric-interface))))))
(LyricHyphen
. (
- (thickness . 1.3)
- (height . 0.42)
- (dash-period . 10.0)
- (length . 0.66)
- (minimum-length . 0.3)
- (minimum-distance . 0.1)
- (padding . 0.07)
- (springs-and-rods . ,ly:lyric-hyphen::set-spacing-rods)
- (stencil . ,ly:lyric-hyphen::print)
- (Y-extent . (0 . 0))
- (meta . ((class . Spanner)
- (interfaces . (lyric-interface
- font-interface
- lyric-hyphen-interface
- spanner-interface))))))
+ (after-line-breaking . ,ly:spanner::kill-zero-spanned-time)
+ (dash-period . 10.0)
+ (height . 0.42)
+ (length . 0.66)
+ (minimum-distance . 0.1)
+ (minimum-length . 0.3)
+ (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)
+ (interfaces . (font-interface
+ lyric-hyphen-interface
+ lyric-interface
+ spanner-interface))))))
(LyricSpace
- . ((minimum-distance . 0.45)
- (springs-and-rods . ,ly:lyric-hyphen::set-spacing-rods)
- (padding . 0.0)
- (Y-extent . #f)
- (X-extent . #f)
- (meta . ((class . Spanner)
- (interfaces . (spanner-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 . ,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
- self-alignment-interface
- text-interface
- font-interface))))))
+ (minimum-distance . 0.45)
+ (padding . 0.0)
+ (springs-and-rods . ,ly:lyric-hyphen::set-spacing-rods)
+ (X-extent . #f)
+ (Y-extent . #f)
+ (meta . ((class . Spanner)
+ (interfaces . (lyric-hyphen-interface
+ spanner-interface))))))
+ (LyricText
+ . (
+ (extra-spacing-width . (0.0 . 0.0))
+ ;; Recede in height for purposes of note spacing,
+ ;; so notes in melismata can be freely spaced above lyrics
+ (extra-spacing-height . (0.2 . -0.2))
+ (font-series . medium)
+ (font-size . 1.0)
+ (parent-alignment-X . ())
+ (self-alignment-X . ,CENTER)
+ (stencil . ,lyric-text::print)
+ (text . ,(grob::calc-property-by-copy 'text))
+ (word-space . 0.6)
+ (skyline-horizontal-padding . 0.1)
+ (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
+ (X-align-on-main-noteheads . #t)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (meta . ((class . Item)
+ (interfaces . (font-interface
+ lyric-syllable-interface
+ rhythmic-grob-interface
+ 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-priority . 750)
+ (self-alignment-X . ,CENTER)
+ (side-axis . ,Y)
+ (spacing-pair . (break-alignment . break-alignment))
+ (staff-padding . 0.5)
+ (stencil . ,measure-counter-stencil)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+ (meta . ((class . Spanner)
+ (interfaces . (font-interface
+ measure-counter-interface
+ outside-staff-interface
+ self-alignment-interface
+ side-position-interface
+ text-interface))))))
(MeasureGrouping
. (
- (Y-offset . ,ly:side-position-interface::y-aligned-side)
- (side-axis . ,Y)
- (stencil . ,ly:measure-grouping::print)
- (padding . 2)
- (direction . ,UP)
- (thickness . 1)
- (height . 2.0)
- (staff-padding . 3)
- (meta . ((class . Spanner)
- (interfaces . (side-position-interface
- measure-grouping-interface))))))
+ (direction . ,UP)
+ (height . 2.0)
+ (padding . 2)
+ (side-axis . ,Y)
+ (staff-padding . 3)
+ (stencil . ,ly:measure-grouping::print)
+ (thickness . 1)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+ (meta . ((class . Spanner)
+ (interfaces . (measure-grouping-interface
+ outside-staff-interface
+ side-position-interface))))))
(MelodyItem
. (
- (neutral-direction . ,DOWN)
- (meta . ((class . Item)
- (interfaces . (melody-spanner-interface))))))
+ (neutral-direction . ,DOWN)
+ (meta . ((class . Item)
+ (interfaces . (melody-spanner-interface))))))
(MensuralLigature
. (
- (thickness . 1.4)
- (flexa-width . 2.0)
- (stencil . ,ly:mensural-ligature::print)
- (meta . ((class . Spanner)
- (interfaces . (mensural-ligature-interface
- font-interface))))))
+ (springs-and-rods . ,ly:spanner::set-spacing-rods)
+ (stencil . ,ly:mensural-ligature::print)
+ (thickness . 1.3)
+ (meta . ((class . Spanner)
+ (interfaces . (font-interface
+ mensural-ligature-interface))))))
(MetronomeMark
. (
- (stencil . ,ly:text-interface::print)
- (Y-offset . ,ly:side-position-interface::y-aligned-side)
- (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
- side-position-interface
- font-interface
- metronome-mark-interface))))))
+ (after-line-breaking . ,ly:side-position-interface::move-to-extremal-staff)
+ (break-visibility . ,end-of-line-invisible)
+ (direction . ,UP)
+ (extra-spacing-width . (+inf.0 . -inf.0))
+ (flag-style . default)
+ (outside-staff-horizontal-padding . 0.2)
+ (outside-staff-priority . 1000)
+ (padding . 0.8)
+ (side-axis . ,Y)
+ (stencil . ,ly:text-interface::print)
+ (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+ (X-offset . ,self-alignment-interface::self-aligned-on-breakable)
+ (self-alignment-X . ,LEFT)
+ (break-align-symbols . (time-signature))
+ (non-break-align-symbols . (paper-column-interface))
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (meta . ((class . Item)
+ (interfaces . (break-alignable-interface
+ font-interface
+ metronome-mark-interface
+ outside-staff-interface
+ self-alignment-interface
+ side-position-interface
+ text-interface))))))
(MultiMeasureRest
. (
- (stencil . ,ly:multi-measure-rest::print)
- (springs-and-rods . ,ly:multi-measure-rest::set-spacing-rods)
- (Y-offset . ,ly:staff-symbol-referencer::callback)
- (staff-position . 0)
- (expand-limit . 10)
- (thick-thickness . 6.6)
- (hair-thickness . 2.0)
- (padding . 1)
- (meta . ((class . Spanner)
- (interfaces . (multi-measure-rest-interface
- multi-measure-interface
- rest-interface
- font-interface
- staff-symbol-referencer-interface))))))
+ (expand-limit . 10)
+ (hair-thickness . 2.0)
+ (round-up-exceptions . ())
+ (bound-padding . 0.5)
+ (max-symbol-separation . 8.0)
+ (space-increment . 2.0)
+ (spacing-pair . (break-alignment . break-alignment))
+ (springs-and-rods . ,ly:multi-measure-rest::set-spacing-rods)
+ (stencil . ,ly:multi-measure-rest::print)
+ (thick-thickness . 6.6)
+ ;; See Wanske pp. 125
+ (usable-duration-logs . ,(iota 4 -3))
+ (voiced-position . 4)
+ (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
+ outside-staff-interface
+ multi-measure-rest-interface
+ rest-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)))))
- (Y-offset . ,ly:side-position-interface::y-aligned-side)
- (side-axis . ,Y)
- (self-alignment-X . ,CENTER)
- (direction . ,UP)
- (padding . 0.4)
- (staff-padding . 0.4)
- (font-encoding . fetaNumber)
- (meta . ((class . Spanner)
- (interfaces . (side-position-interface
- multi-measure-interface
- self-alignment-interface
- font-interface
- text-interface))))))
+ (bound-padding . 1.0)
+ (direction . ,UP)
+ (font-encoding . fetaText)
+ (padding . 0.4)
+ (parent-alignment-X . ,CENTER)
+ (self-alignment-X . ,CENTER)
+ (side-axis . ,Y)
+ (springs-and-rods . ,ly:multi-measure-rest::set-text-rods)
+ (staff-padding . 0.4)
+ (stencil . ,ly:text-interface::print)
+ (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+ (meta . ((class . Spanner)
+ (interfaces . (font-interface
+ multi-measure-interface
+ outside-staff-interface
+ self-alignment-interface
+ side-position-interface
+ text-interface))))))
(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)))))
- (Y-offset . ,ly:side-position-interface::y-aligned-side)
- (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
- self-alignment-interface
- font-interface
- text-interface))))))
+ (direction . ,UP)
+ (outside-staff-priority . 450)
+ (padding . 0.2)
+ (parent-alignment-X . ,CENTER)
+ (self-alignment-X . ,CENTER)
+ (skyline-horizontal-padding . 0.2)
+ (staff-padding . 0.25)
+ (stencil . ,ly:text-interface::print)
+ (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+ (meta . ((class . Spanner)
+ (interfaces . (font-interface
+ multi-measure-interface
+ outside-staff-interface
+ self-alignment-interface
+ side-position-interface
+ text-interface))))))
(NonMusicalPaperColumn
. (
- (allow-loose-spacing . #t)
- (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)
- (line-break-permission . allow)
- (page-break-permission . allow)
-
- ;; debugging stuff: print column number.
- ;; (font-size . -6) (font-name . "sans") (Y-extent . #f)
-
- (meta . ((class . Paper_column)
- (interfaces . (paper-column-interface
- axis-group-interface
- separation-item-interface
- spaceable-grob-interface
- font-interface))))))
+ (allow-loose-spacing . #t)
+ (axes . (,X))
+ (before-line-breaking . ,ly:paper-column::before-line-breaking)
+ (bound-alignment-interfaces . (break-alignment-interface))
+ ;; used by Paper_column::print when debugging columns:
+ (font-size . -7.5)
+ (full-measure-extra-space . 1.0)
+ (horizontal-skylines . ,ly:separation-item::calc-skylines)
+ ;; (stencil . ,ly:paper-column::print)
+
+ (keep-inside-line . #t)
+ ;; used by Paper_column::print when debugging columns:
+ (layer . 1000)
+ (line-break-permission . allow)
+ (non-musical . #t)
+ (page-break-permission . allow)
+ (X-extent . ,ly:axis-group-interface::width)
+ (meta . ((class . Paper_column)
+ (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
+ (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs)))
+ (interfaces . (axis-group-interface
+ font-interface
+ paper-column-interface
+ separation-item-interface
+ spaceable-grob-interface))))))
(NoteCollision
. (
- (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
- axis-group-interface))))))
+ (axes . (,X ,Y))
+ (note-collision-threshold . 1)
+ (positioning-done . ,ly:note-collision-interface::calc-positioning-done)
+ (prefer-dotted-right . #t)
+ (X-extent . ,ly:axis-group-interface::width)
+ (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)))
+ (interfaces . (axis-group-interface
+ note-collision-interface))))))
(NoteColumn
. (
- (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))))))
+ (axes . (,X ,Y))
+ (bound-alignment-interfaces . (rhythmic-head-interface stem-interface))
+ (horizontal-skylines . ,ly:separation-item::calc-skylines)
+ (skyline-vertical-padding . 0.15)
+ (X-extent . ,ly:axis-group-interface::width)
+ (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)))
+ (interfaces . (axis-group-interface
+ note-column-interface
+ separation-item-interface))))))
(NoteHead
. (
- (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)
- (Y-offset . ,ly:staff-symbol-referencer::callback)
- (X-offset . ,ly:note-head::stem-x-shift)
- (meta . ((class . Item)
- (interfaces . (rhythmic-grob-interface
- rhythmic-head-interface
- font-interface
- note-head-interface
- ledgered-interface
- staff-symbol-referencer-interface
- gregorian-ligature-interface
- mensural-ligature-interface
- vaticana-ligature-interface))))))
+ (flexa-width . 2.0)
+ (duration-log . ,note-head::calc-duration-log)
+ (extra-spacing-height . ,ly:note-head::include-ledger-line-height)
+ (glyph-name . ,note-head::calc-glyph-name)
+ (ligature-flexa . #f)
+ (parenthesis-friends . (accidental-grob dot))
+ (stem-attachment . ,ly:note-head::calc-stem-attachment)
+ (stencil . ,ly:note-head::print)
+ (X-offset . ,ly:note-head::stem-x-shift)
+ (Y-offset . ,staff-symbol-referencer::callback)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (meta . ((class . Item)
+ (interfaces . (font-interface
+ gregorian-ligature-interface
+ ledgered-interface
+ ligature-head-interface
+ mensural-ligature-interface
+ note-head-interface
+ rhythmic-grob-interface
+ rhythmic-head-interface
+ staff-symbol-referencer-interface
+ vaticana-ligature-interface))))))
- (NoteSpacing
+ (NoteName
. (
- (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 . (spacing-interface
- note-spacing-interface))))))
+ (stencil . ,ly:text-interface::print)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (meta . ((class . Item)
+ (interfaces . (font-interface
+ note-name-interface
+ text-interface))))))
- (NoteName
+ (NoteSpacing
. (
- (stencil . ,ly:text-interface::print)
- (meta . ((class . Item)
- (interfaces . (note-name-interface
- text-interface
- font-interface))))))
-
-
- (OctavateEight
- . (
- (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)))))
- (Y-offset . ,ly:side-position-interface::y-aligned-side)
- (stencil . ,ly:text-interface::print)
- (font-shape . italic)
- (staff-padding . 0.2)
- (font-size . -4)
- (meta . ((class . Item)
- (interfaces . (text-interface
- self-alignment-interface
- side-position-interface
- font-interface))))))
+ ;; Changed this from 0.75.
+ ;; If you ever change this back, please document! --hwn
+ (knee-spacing-correction . 1.0)
+ (same-direction-correction . 0.25)
+ (space-to-barline . #t)
+ (stem-spacing-correction . 0.5)
+ (meta . ((class . Item)
+ (interfaces . (note-spacing-interface
+ spacing-interface))))))
(OttavaBracket
. (
- (Y-offset . ,ly:side-position-interface::y-aligned-side)
- (stencil . ,ly:ottava-bracket::print)
- (font-shape . italic)
- (shorten-pair . (0.0 . -0.6))
- (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)
- (outside-staff-priority . 400)
- (meta . ((class . Spanner)
- (interfaces . (ottava-bracket-interface
- horizontal-bracket-interface
- line-interface
- side-position-interface
- font-interface
- text-interface))))))
+ (dash-fraction . 0.3)
+ (direction . ,UP)
+ (edge-height . (0 . 0.8))
+ (font-shape . italic)
+ (minimum-length . 0.3)
+ (outside-staff-priority . 400)
+ (padding . 0.5)
+ (shorten-pair . (-0.8 . -0.6))
+ (staff-padding . 2.0)
+ (stencil . ,ly:ottava-bracket::print)
+ (style . dashed-line)
+ (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
+ line-interface
+ outside-staff-interface
+ ottava-bracket-interface
+ side-position-interface
+ text-interface))))))
(PaperColumn
. (
- (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)
-
- ;; debugging
- ;; (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
- font-interface))))))
+ (allow-loose-spacing . #t)
+ (axes . (,X))
+ (before-line-breaking . ,ly:paper-column::before-line-breaking)
+ (bound-alignment-interfaces . (note-column-interface))
+ ;; used by Paper_column::print when debugging columns:
+ (font-size . -7.5)
+ (horizontal-skylines . ,ly:separation-item::calc-skylines)
+ (keep-inside-line . #t)
+ ;; used by Paper_column::print when debugging columns:
+ (layer . 1000)
+ ;; 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)
+ (meta . ((class . Paper_column)
+ (object-callbacks . ((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
+ (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs)))
+ (interfaces . (axis-group-interface
+ font-interface
+ paper-column-interface
+ separation-item-interface
+ spaceable-grob-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)
- (control-points . ,ly:slur::calc-control-points)
- (direction . ,ly:slur::calc-direction)
- (springs-and-rods . ,ly:spanner::set-spacing-rods)
- (Y-extent . ,ly:slur::height)
- (stencil . ,ly:slur::print)
- (thickness . 1.1)
- (minimum-length . 1.5)
- (height-limit . 2.0)
- (ratio . 0.333)
- (cross-staff . ,ly:slur::calc-cross-staff)
- (meta . ((class . Spanner)
- (interfaces . (slur-interface))))))
+ . (
+ (font-size . -6)
+ (padding . 0.2)
+ (stencil . ,parentheses-item::print)
+ (stencils . ,parentheses-item::calc-parenthesis-stencils)
+ ;; X-extent needs to be non-empty in order to allow proper
+ ;; horizontal attachment. ParenthesesItem does not reserve
+ ;; space of its own, however.
+ (X-extent . (0 . 0))
+ (Y-extent . ,parentheses-item::y-extent)
+ (meta . ((class . Item)
+ (interfaces . (font-interface
+ parentheses-interface))))))
(PercentRepeat
. (
- (springs-and-rods . ,ly:multi-measure-rest::set-spacing-rods)
- (stencil . ,ly:multi-measure-rest::percent)
- (slope . 1.0)
- (thickness . 0.48)
- (dot-negative-kern . 0.75)
- (font-encoding . fetaMusic)
- (meta . ((class . Spanner)
- (interfaces . (multi-measure-rest-interface
- font-interface
- percent-repeat-interface))))))
+ (dot-negative-kern . 0.75)
+ (font-encoding . fetaMusic)
+ (slope . 1.0)
+ (spacing-pair . (break-alignment . staff-bar))
+ (springs-and-rods . ,ly:multi-measure-rest::set-spacing-rods)
+ (stencil . ,ly:multi-measure-rest::percent)
+ (thickness . 0.48)
+ (meta . ((class . Spanner)
+ (interfaces . (font-interface
+ multi-measure-rest-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)))))
- (Y-offset . ,ly:side-position-interface::y-aligned-side)
- (self-alignment-X . ,CENTER)
- (direction . ,UP)
- (padding . 0.2)
- (staff-padding . 0.25)
- (font-size . -2)
- (font-encoding . fetaNumber)
- (meta . ((class . Spanner)
- (interfaces . (side-position-interface
- self-alignment-interface
- percent-repeat-interface
- font-interface
- text-interface))))))
+ (direction . ,UP)
+ (font-encoding . fetaText)
+ (font-size . -2)
+ (padding . 0.2)
+ (parent-alignment-X . ,CENTER)
+ (self-alignment-X . ,CENTER)
+ (staff-padding . 0.25)
+ (stencil . ,ly:text-interface::print)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+ (meta . ((class . Spanner)
+ (interfaces . (font-interface
+ percent-repeat-interface
+ outside-staff-interface
+ self-alignment-interface
+ side-position-interface
+ text-interface))))))
+
+ (PhrasingSlur
+ . (
+ (control-points . ,ly:slur::calc-control-points)
+ (cross-staff . ,ly:slur::calc-cross-staff)
+ (details . ,default-slur-details)
+ (direction . ,ly:slur::calc-direction)
+ (height-limit . 2.0)
+ (minimum-length . 1.5)
+ (ratio . 0.333)
+ (springs-and-rods . ,ly:spanner::set-spacing-rods)
+ (stencil . ,ly:slur::print)
+ (thickness . 1.1)
+ (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 . (outside-staff-interface
+ slur-interface))))))
;; an example of a text spanner
(PianoPedalBracket
. (
- (stencil . ,ly:piano-pedal-bracket::print)
- (style . line)
- (bound-padding . 1.0)
- (direction . ,DOWN)
- (bracket-flare . (0.5 . 0.5))
- (edge-height . (1.0 . 1.0))
- (shorten-pair . (0.0 . 0.0))
- (thickness . 1.0)
- (meta . ((class . Spanner)
- (interfaces . (line-interface
- piano-pedal-interface
- piano-pedal-bracket-interface))))))
+ (bound-padding . 1.0)
+ (bracket-flare . (0.5 . 0.5))
+ (direction . ,DOWN)
+ (edge-height . (1.0 . 1.0))
+ (shorten-pair . (0.0 . 0.0))
+ (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
+ piano-pedal-interface))))))
(RehearsalMark
. (
- (stencil . ,ly:text-interface::print)
- (X-offset . ,(ly:make-simple-closure
- `(,+
- ,(ly:make-simple-closure
- (list ly:break-alignable-interface::self-align-callback))
- ,(ly:make-simple-closure
- (list ly:self-alignment-interface::x-aligned-on-self)))))
- (Y-offset . ,ly:side-position-interface::y-aligned-side)
- (extra-spacing-width . (+inf.0 . -inf.0))
- (self-alignment-X . ,CENTER)
- (direction . ,UP)
- (non-musical . #t)
- (font-size . 2)
- (baseline-skip . 2)
- (break-visibility . ,end-of-line-invisible)
- (break-align-symbols . (staff-bar clef))
- (padding . 0.8)
- (outside-staff-priority . 1500)
- (meta . ((class . Item)
- (interfaces . (text-interface
- side-position-interface
- break-alignable-interface
- font-interface
- mark-interface
- self-alignment-interface))))))
+ (after-line-breaking . ,ly:side-position-interface::move-to-extremal-staff)
+ (baseline-skip . 2)
+ (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.2)
+ (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 . ,self-alignment-interface::self-aligned-on-breakable)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (meta . ((class . Item)
+ (interfaces . (break-alignable-interface
+ font-interface
+ mark-interface
+ outside-staff-interface
+ self-alignment-interface
+ side-position-interface
+ text-interface))))))
(RepeatSlash
. (
- (stencil . ,ly:percent-repeat-item-interface::beat-slash)
- (thickness . 0.48)
- (slope . 1.7)
- (meta . ((class . Item)
- (interfaces . (rhythmic-grob-interface
- percent-repeat-interface
- percent-repeat-item-interface))))))
+ (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
+ percent-repeat-item-interface
+ rhythmic-grob-interface))))))
(RepeatTie
. (
- (stencil . ,ly:tie::print)
- (control-points . ,ly:semi-tie::calc-control-points)
- (direction . ,ly:tie::calc-direction)
- (details . ((ratio . 0.333)
- (height-limit . 1.0)))
- (thickness . 1.0)
- (head-direction . ,RIGHT)
- (meta . ((class . Item)
- (interfaces . (semi-tie-interface))))))
+ (cross-staff . ,semi-tie::calc-cross-staff)
+ (control-points . ,ly:semi-tie::calc-control-points)
+ (details . ((ratio . 0.333)
+ (height-limit . 1.0)))
+ (direction . ,ly:tie::calc-direction)
+ (head-direction . ,RIGHT)
+ (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))))))
(RepeatTieColumn
. (
- (X-extent . #f)
- (Y-extent . #f)
- (direction . ,ly:tie::calc-direction)
- (head-direction . ,ly:semi-tie-column::calc-head-direction)
-
- (positioning-done . ,ly:semi-tie-column::calc-positioning-done)
- (meta . ((class . Item)
- (interfaces . (semi-tie-column-interface))))))
+ (head-direction . ,ly:semi-tie-column::calc-head-direction)
+ (positioning-done . ,ly:semi-tie-column::calc-positioning-done)
+ (X-extent . #f)
+ (Y-extent . #f)
+ (meta . ((class . Item)
+ (interfaces . (semi-tie-column-interface))))))
(Rest
. (
- (stencil . ,ly:rest::print)
- (duration-log . ,stem::calc-duration-log)
- (X-extent . ,ly:rest::width)
- (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
- rhythmic-grob-interface
- staff-symbol-referencer-interface
- rest-interface))))))
+ (cross-staff . ,ly:rest::calc-cross-staff)
+ (duration-log . ,stem::calc-duration-log)
+ (minimum-distance . 0.25)
+ (parenthesis-friends . (dot))
+ (stencil . ,ly:rest::print)
+ (voiced-position . 4)
+ (X-extent . ,ly:rest::width)
+ (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
+ rhythmic-grob-interface
+ rhythmic-head-interface
+ staff-symbol-referencer-interface))))))
(RestCollision
. (
- (minimum-distance . 0.75)
- (positioning-done . ,ly:rest-collision::calc-positioning-done)
- (meta . ((class . Item)
- (interfaces . (rest-collision-interface))))))
+ (minimum-distance . 0.75)
+ (positioning-done . ,ly:rest-collision::calc-positioning-done)
+ (meta . ((class . Item)
+ (interfaces . (rest-collision-interface))))))
(Script
. (
- ;; don't set direction here: it breaks staccato.
-
- ;; padding set in script definitions.
- (staff-padding . 0.25)
- (X-offset . ,script-interface::calc-x-offset)
- (Y-offset . ,ly:side-position-interface::y-aligned-side)
- (side-axis . ,Y)
-
- (stencil . ,ly:script-interface::print)
- (direction . ,ly:script-interface::calc-direction)
- (positioning-done . ,ly:script-interface::calc-positioning-done)
- (font-encoding . fetaMusic)
- (cross-staff . ,ly:script-interface::calc-cross-staff)
- (meta . ((class . Item)
- (interfaces . (script-interface
- side-position-interface
- font-interface))))))
+ (add-stem-support . #t)
+ (cross-staff . ,ly:script-interface::calc-cross-staff)
+ (direction . ,ly:script-interface::calc-direction)
+ (font-encoding . fetaMusic)
+ (horizon-padding . 0.1) ; to avoid interleaving with accidentals
+ (positioning-done . ,ly:script-interface::calc-positioning-done)
+ (self-alignment-X . ,CENTER)
+ (side-axis . ,Y)
+
+ ;; padding set in script definitions.
+ (slur-padding . 0.2)
+ (staff-padding . 0.25)
+
+ (stencil . ,ly:script-interface::print)
+ (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 . ,side-position-interface::y-aligned-side)
+ (meta . ((class . Item)
+ (interfaces . (font-interface
+ outside-staff-interface
+ script-interface
+ self-alignment-interface
+ side-position-interface))))))
(ScriptColumn
. (
- (before-line-breaking . ,ly:script-column::before-line-breaking)
- (meta . ((class . Item)
- (interfaces . (script-column-interface))))))
+ (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)
- (meta . ((class . Item)
- (interfaces . (script-column-interface))))))
-
- (SeparationItem
- . (
- (avoid-slur . inside)
- (X-extent . ,ly:axis-group-interface::width)
- (Y-extent . ,ly:axis-group-interface::height)
- (horizontal-skylines . ,ly:separation-item::calc-skylines)
- (stencil . ,ly:separation-item::print)
- (meta . ((class . Item)
- (interfaces . (separation-item-interface))))))
+ (before-line-breaking . ,ly:script-column::row-before-line-breaking)
+ (meta . ((class . Item)
+ (interfaces . (script-column-interface))))))
(Slur
. (
- (details . ,default-slur-details)
- (control-points . ,ly:slur::calc-control-points)
- (direction . ,ly:slur::calc-direction)
- (springs-and-rods . ,ly:spanner::set-spacing-rods)
- (Y-extent . ,ly:slur::height)
- (stencil . ,ly:slur::print)
- (thickness . 1.2)
- (line-thickness . 0.8)
- (minimum-length . 1.5)
- (height-limit . 2.0)
- (ratio . 0.25)
- (avoid-slur . inside)
- (cross-staff . ,ly:slur::calc-cross-staff)
- (meta . ((class . Spanner)
- (interfaces . (slur-interface))))))
+ (avoid-slur . inside)
+ (control-points . ,ly:slur::calc-control-points)
+ (cross-staff . ,ly:slur::calc-cross-staff)
+ (details . ,default-slur-details)
+ (direction . ,ly:slur::calc-direction)
+ (height-limit . 2.0)
+ (line-thickness . 0.8)
+ (minimum-length . 1.5)
+ (ratio . 0.25)
+ (springs-and-rods . ,ly:spanner::set-spacing-rods)
+ (stencil . ,ly:slur::print)
+ (thickness . 1.2)
+ (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 . (outside-staff-interface
+ slur-interface))))))
(SostenutoPedal
. (
- (stencil . ,ly:text-interface::print)
- (direction . ,RIGHT)
- (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
- (extra-spacing-width . (+inf.0 . -inf.0))
- (padding . 0.0) ;; padding relative to SostenutoPedalLineSpanner
- (font-shape . italic)
- (self-alignment-X . ,CENTER)
- (meta . ((class . Item)
- (interfaces . (text-interface
- self-alignment-interface
- piano-pedal-script-interface
- font-interface))))))
+ (direction . ,RIGHT)
+ (extra-spacing-width . (+inf.0 . -inf.0))
+ (font-shape . italic)
+ (padding . 0.0) ;; padding relative to SostenutoPedalLineSpanner
+ (parent-alignment-X . #f)
+ (self-alignment-X . ,CENTER)
+ (stencil . ,ly:text-interface::print)
+ (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (meta . ((class . Item)
+ (interfaces . (font-interface
+ piano-pedal-script-interface
+ self-alignment-interface
+ text-interface))))))
(SostenutoPedalLineSpanner
. (
- (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)
- (minimum-space . 1.0)
- (direction . ,DOWN)
- (meta . ((class . Spanner)
- (interfaces . (piano-pedal-interface
- axis-group-interface
- side-position-interface))))))
+ (axes . (,Y))
+ (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 . ,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)))
+ (interfaces . (axis-group-interface
+ outside-staff-interface
+ piano-pedal-interface
+ side-position-interface))))))
(SpacingSpanner
. (
- (springs-and-rods . ,ly:spacing-spanner::set-springs)
- (common-shortest-duration . ,ly:spacing-spanner::calc-common-shortest-duration)
- (average-spacing-wishes . #t)
- (shortest-duration-space . 2.0)
- (spacing-increment . 1.2)
-
- (base-shortest-duration . ,(ly:make-moment 3 16))
- (meta . ((class . Spanner)
- (interfaces . (spacing-options-interface
- spacing-spanner-interface))))))
+ (average-spacing-wishes . #t)
+ (base-shortest-duration . ,(ly:make-moment 3 16))
+ (common-shortest-duration . ,ly:spacing-spanner::calc-common-shortest-duration)
+ (shortest-duration-space . 2.0)
+ (spacing-increment . 1.2)
+ (springs-and-rods . ,ly:spacing-spanner::set-springs)
+ (meta . ((class . Spanner)
+ (interfaces . (spacing-options-interface
+ spacing-spanner-interface))))))
(SpanBar
. (
- (break-align-symbol . staff-bar)
- (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!
-
- ;;
- ;; 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)
- (meta . ((class . Item)
- (interfaces . (span-bar-interface
- font-interface
- bar-line-interface))))))
-
- (StanzaNumber
- . (
- (stencil . ,ly:text-interface::print)
- (font-series . bold)
- (padding . 1.0)
- (X-offset . ,ly:side-position-interface::x-aligned-side)
- (side-axis . ,X)
- (direction . ,LEFT)
- (meta . ((class . Item)
- (interfaces . (side-position-interface
- stanza-number-interface
- text-interface
- font-interface))))))
+ (allow-span-bar . #t)
+ (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)
+ (layer . 0)
+ (non-musical . #t)
+ (stencil . ,ly:span-bar::print)
+ (X-extent . ,ly:span-bar::width)
+ (Y-extent . (+inf.0 . -inf.0))
+ (meta . ((class . Item)
+ (interfaces . (bar-line-interface
+ font-interface
+ span-bar-interface))))))
+
+ (SpanBarStub
+ . (
+ (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)))
+ (interfaces . (pure-from-neighbor-interface))))))
+
+ (StaffGrouper
+ . (
+ (staff-staff-spacing . ((basic-distance . 9)
+ (minimum-distance . 7)
+ (padding . 1)
+ (stretchability . 5)))
+ (staffgroup-staff-spacing . ((basic-distance . 10.5)
+ (minimum-distance . 8)
+ (padding . 1)
+ (stretchability . 9)))
+ (meta . ((class . Spanner)
+ (interfaces . (staff-grouper-interface))))))
(StaffSpacing
. (
- (non-musical . #t)
- (stem-spacing-correction . 0.4)
- (meta . ((class . Item)
- (interfaces . (spacing-interface
- staff-spacing-interface))))))
-
+ (non-musical . #t)
+ (stem-spacing-correction . 0.4)
+ (meta . ((class . Item)
+ (interfaces . (spacing-interface
+ staff-spacing-interface))))))
+
(StaffSymbol
. (
- (Y-extent . ,ly:staff-symbol::height)
- (stencil . ,ly:staff-symbol::print)
- (line-count . 5)
- (ledger-line-thickness . (1.0 . 0.1))
- (layer . 0)
- (meta . ((class . Spanner)
- (interfaces . (staff-symbol-interface))))))
+ (break-align-symbols . (staff-bar break-alignment))
+ (layer . 0)
+ (ledger-line-thickness . (1.0 . 0.1))
+ (line-count . 5)
+ (stencil . ,ly:staff-symbol::print)
+ (Y-extent . ,(ly:make-unpure-pure-container ly:staff-symbol::height))
+ (meta . ((class . Spanner)
+ (interfaces . (staff-symbol-interface))))))
+
+ (StanzaNumber
+ . (
+ (direction . ,LEFT)
+ (font-series . bold)
+ (padding . 1.0)
+ (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
+ stanza-number-interface
+ text-interface))))))
(Stem
. (
- (direction . ,ly:stem::calc-direction)
- (duration-log . ,stem::calc-duration-log)
- (default-direction . ,ly:stem::calc-default-direction)
- (stem-end-position . ,ly:stem::calc-stem-end-position)
-
- (neutral-direction . ,DOWN)
- (stem-info . ,ly:stem::calc-stem-info)
- (positioning-done . ,ly:stem::calc-positioning-done)
- (stencil . ,ly:stem::print)
- (X-extent . ,ly:stem::width)
- (Y-extent . ,ly:stem::height)
- (length . ,ly:stem::calc-length)
- (thickness . 1.3)
- (cross-staff . ,ly:stem::calc-cross-staff)
- (flag . ,ly:stem::calc-flag)
- (beamlet-default-length . (1.1 . 1.1))
- (beamlet-max-length-proportion . (0.75 . 0.75))
- (details
- . (
- ;; 3.5 (or 3 measured from note head) is standard length
- ;; 32nd, 64th, 128th flagged stems should be longer
- (lengths . (3.5 3.5 3.5 4.5 5.0 6.0))
-
- ;; FIXME. 3.5 yields too long beams (according to Ross and
- ;; looking at Baerenreiter examples) for a number of common
- ;; boundary cases. Subtracting half a beam thickness fixes
- ;; this, but the bug may well be somewhere else.
-
- ;; FIXME this should come from 'lengths
- (beamed-lengths . (3.26 3.5 3.6))
-
- ;; The 'normal' minima
- (beamed-minimum-free-lengths . (1.83 1.5 1.25))
- ;(beamed-minimum-free-lengths . (2.0 1.83 1.25))
-
- ;; The 'extreme case' minima
- (beamed-extreme-minimum-free-lengths . (2.0 1.25))
-
- ;; Stems in unnatural (forced) direction should be shortened by
- ;; one staff space, according to [Roush & Gourlay].
- ;; Flagged stems we shorten only half a staff space.
- (stem-shorten . (1.0 0.5))
-
- ))
-
- ;; We use the normal minima as minimum for the ideal lengths,
- ;; and the extreme minima as abolute minimum length.
-
- (X-offset . ,ly:stem::offset-callback)
- (Y-offset . ,ly:staff-symbol-referencer::callback)
- (meta . ((class . Item)
- (interfaces . (stem-interface
- font-interface))))))
+ (beamlet-default-length . (1.1 . 1.1))
+ (beamlet-max-length-proportion . (0.75 . 0.75))
+ (cross-staff . ,ly:stem::calc-cross-staff)
+ (default-direction . ,ly:stem::calc-default-direction)
+ (details
+ . (
+ ;; 3.5 (or 3 measured from note head) is standard length
+ ;; 32nd, 64th, 128th flagged stems should be longer
+ (lengths . (3.5 3.5 3.5 4.25 5.0 6.0))
+
+ ;; FIXME. 3.5 yields too long beams (according to Ross and
+ ;; looking at Baerenreiter examples) for a number of common
+ ;; boundary cases. Subtracting half a beam thickness fixes
+ ;; this, but the bug may well be somewhere else.
+
+ ;; FIXME this should come from 'lengths
+ (beamed-lengths . (3.26 3.5 3.6))
+
+ ;; The 'normal' minima
+ (beamed-minimum-free-lengths . (1.83 1.5 1.25))
+ ;;(beamed-minimum-free-lengths . (2.0 1.83 1.25))
+
+ ;; The 'extreme case' minima
+ (beamed-extreme-minimum-free-lengths . (2.0 1.25))
+
+ ;; Stems in unnatural (forced) direction should be shortened by
+ ;; one staff space, according to [Roush & Gourlay].
+ ;; Flagged stems we shorten only half a staff space.
+ (stem-shorten . (1.0 0.5 0.25))
+
+ ))
+
+ ;; We use the normal minima as minimum for the ideal lengths,
+ ;; and the extreme minima as abolute minimum length.
+
+ (direction . ,ly:stem::calc-direction)
+ (double-stem-separation . 0.5)
+ (duration-log . ,stem::calc-duration-log)
+ (length . ,(ly:make-unpure-pure-container ly:stem::calc-length ly:stem::pure-calc-length))
+ (neutral-direction . ,DOWN)
+ (note-collision-threshold . 1)
+ (positioning-done . ,ly:stem::calc-positioning-done)
+ (stem-info . ,ly:stem::calc-stem-info)
+ (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:make-unpure-pure-container ly:stem::height ly:stem::pure-height))
+ (Y-offset . ,staff-symbol-referencer::callback)
+ (meta . ((class . Item)
+ (interfaces . (stem-interface))))))
+
+ (StemStub
+ . (
+ (X-extent . ,stem-stub::width)
+ (extra-spacing-height . ,stem-stub::extra-spacing-height)
+ (Y-extent . ,(ly:make-unpure-pure-container #f stem-stub::pure-height))
+ (meta . ((class . Item)
+ (interfaces . ())))))
(StemTremolo
. (
- (Y-extent . ,ly:stem-tremolo::height)
- (X-extent . ,ly:stem-tremolo::width)
- (stencil . ,ly:stem-tremolo::print)
- (slope . ,ly:stem-tremolo::calc-slope)
- (beam-width . ,ly:stem-tremolo::calc-width) ; staff-space
- (style . ,ly:stem-tremolo::calc-style)
- (beam-thickness . 0.48) ; staff-space
- (meta . ((class . Item)
- (interfaces . (stem-tremolo-interface))))))
+ (beam-thickness . 0.48) ; staff-space
+ (beam-width . ,ly:stem-tremolo::calc-width) ; staff-space
+ (direction . ,ly:stem-tremolo::calc-direction)
+ (parent-alignment-X . ,CENTER)
+ (slope . ,ly:stem-tremolo::calc-slope)
+ (stencil . ,ly:stem-tremolo::print)
+ (shape . ,ly:stem-tremolo::calc-shape)
+ (X-extent . ,ly:stem-tremolo::width)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
+ (Y-extent . ,(grob::unpure-Y-extent-from-stencil ly:stem-tremolo::pure-height))
+ (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))))))
(StringNumber
. (
- (stencil . ,print-circled-text-callback)
- (text . ,string-number::calc-text)
- (padding . 0.5)
- (staff-padding . 0.5)
- (self-alignment-X . ,CENTER)
- (self-alignment-Y . ,CENTER)
- (script-priority . 100)
- (avoid-slur . around)
- (font-encoding . fetaNumber)
- (font-size . -5) ; don't overlap when next to heads.
- (meta . ((class . Item)
- (interfaces . (string-number-interface
- font-interface
- text-script-interface
- text-interface
- side-position-interface
- self-alignment-interface))))))
-
+ (avoid-slur . around)
+ (cross-staff . ,script-or-side-position-cross-staff)
+ (font-encoding . fetaText)
+ (font-size . -5) ; don't overlap when next to heads.
+ (number-type . arabic)
+ (padding . 0.5)
+ (parent-alignment-X . ,CENTER)
+ (script-priority . 100)
+ (self-alignment-X . ,CENTER)
+ (self-alignment-Y . ,CENTER)
+ (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
+ outside-staff-interface
+ side-position-interface
+ number-interface
+ string-number-interface
+ text-interface
+ text-script-interface))))))
+
(StrokeFinger
. (
- (stencil . ,ly:text-interface::print)
- (text . ,stroke-finger::calc-text)
- (digit-names . #("p" "i" "m" "a" "x"))
- (padding . 0.5)
- (staff-padding . 0.5)
- (self-alignment-X . ,CENTER)
- (self-alignment-Y . ,CENTER)
- (script-priority . 100)
- (font-shape . italic)
- (font-size . -4) ; don't overlap when next to heads.
- (meta . ((class . Item)
- (interfaces . (stroke-finger-interface
- font-interface
- text-script-interface
- text-interface
- side-position-interface
- self-alignment-interface))))))
+ (digit-names . #("p" "i" "m" "a" "x"))
+ (font-shape . italic)
+ (font-size . -4) ; don't overlap when next to heads.
+ (padding . 0.5)
+ (parent-alignment-X . ,CENTER)
+ (script-priority . 100)
+ (self-alignment-X . ,CENTER)
+ (self-alignment-Y . ,CENTER)
+ (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
+ outside-staff-interface
+ self-alignment-interface
+ side-position-interface
+ stroke-finger-interface
+ text-interface
+ text-script-interface))))))
(SustainPedal
. (
- (extra-spacing-width . (+inf.0 . -inf.0))
- (stencil . ,ly:sustain-pedal::print)
- (self-alignment-X . ,CENTER)
- (direction . ,RIGHT)
- (padding . 0.0) ;; padding relative to SustainPedalLineSpanner
- (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
- (meta . ((class . Item)
- (interfaces . (piano-pedal-interface
- text-interface
- self-alignment-interface
- piano-pedal-script-interface
- font-interface))))))
+ (extra-spacing-width . (+inf.0 . -inf.0))
+ (padding . 0.0) ;; padding relative to SustainPedalLineSpanner
+ (parent-alignment-X . #f)
+ (self-alignment-X . ,CENTER)
+ (stencil . ,ly:sustain-pedal::print)
+ (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (meta . ((class . Item)
+ (interfaces . (font-interface
+ piano-pedal-interface
+ piano-pedal-script-interface
+ self-alignment-interface
+ text-interface))))))
(SustainPedalLineSpanner
. (
- (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)
- (minimum-space . 1.0)
- (direction . ,DOWN)
- (meta . ((class . Spanner)
- (interfaces . (piano-pedal-interface
- axis-group-interface
- side-position-interface))))))
+ (axes . (,Y))
+ (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 . ,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)))
+ (interfaces . (axis-group-interface
+ outside-staff-interface
+ piano-pedal-interface
+ side-position-interface))))))
(System
. (
- (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)
- (meta . ((class . System)
- (interfaces . (system-interface
- axis-group-interface))))))
+ (adjacent-pure-heights . ,ly:axis-group-interface::adjacent-pure-heights)
+ (axes . (,X ,Y))
+ (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: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)
+ (vertical-skyline-elements . ,ly:system::vertical-skyline-elements)
+ (vertical-alignment . ,ly:system::get-vertical-alignment)))
+ (interfaces . (axis-group-interface
+ system-interface
+ outside-staff-axis-group-interface))))))
- (SystemStartBrace
+ (SystemStartBar
. (
- (style . brace)
- (padding . 0.3)
- (stencil . ,ly:system-start-delimiter::print)
- (collapse-height . 5.0)
- (X-offset . ,ly:side-position-interface::x-aligned-side)
- (direction . ,LEFT)
- (font-encoding . fetaBraces)
- (Y-extent . #f)
- (meta . ((class . Spanner)
- (interfaces . (system-start-delimiter-interface
- side-position-interface
- font-interface))))))
+ (collapse-height . 5.0)
+ (direction . ,LEFT)
- (SystemStartSquare
+ ;; ugh--hardcoded.
+ (padding . -0.1) ;; bar must cover rounded ending of staff line.
+ (stencil . ,ly:system-start-delimiter::print)
+ (style . bar-line)
+ (thickness . 1.6)
+ (X-offset . ,ly:side-position-interface::x-aligned-side)
+ (meta . ((class . Spanner)
+ (interfaces . (side-position-interface
+ system-start-delimiter-interface))))))
+
+ (SystemStartBrace
. (
- (Y-extent . #f)
- (X-offset . ,ly:side-position-interface::x-aligned-side)
- (direction . ,LEFT)
- (stencil . ,ly:system-start-delimiter::print)
- (style . line-bracket)
- (thickness . 1.0)
- (meta . ((class . Spanner)
- (interfaces . (font-interface
- side-position-interface
- system-start-delimiter-interface))))))
+ (collapse-height . 5.0)
+ (direction . ,LEFT)
+ (font-encoding . fetaBraces)
+ (padding . 0.3)
+ (stencil . ,ly:system-start-delimiter::print)
+ (style . brace)
+ (X-offset . ,ly:side-position-interface::x-aligned-side)
+ (meta . ((class . Spanner)
+ (interfaces . (font-interface
+ side-position-interface
+ system-start-delimiter-interface))))))
(SystemStartBracket
. (
- (Y-extent . #f)
- (padding . 0.8)
- (X-offset . ,ly:side-position-interface::x-aligned-side)
- (direction . ,LEFT)
- (stencil . ,ly:system-start-delimiter::print)
- (style . bracket)
- (collapse-height . 5.0)
- (thickness . 0.45)
- (meta . ((class . Spanner)
- (interfaces . (font-interface
- side-position-interface
- system-start-delimiter-interface))))))
+ (collapse-height . 5.0)
+ (direction . ,LEFT)
+ (padding . 0.8)
+ (stencil . ,ly:system-start-delimiter::print)
+ (style . bracket)
+ (thickness . 0.45)
+ (X-offset . ,ly:side-position-interface::x-aligned-side)
+ (meta . ((class . Spanner)
+ (interfaces . (font-interface
+ side-position-interface
+ system-start-delimiter-interface))))))
- (SystemStartBar
+ (SystemStartSquare
. (
- (Y-extent . #f)
-
- ;; ugh--hardcoded.
- (padding . -0.1) ;; bar must cover rounded ending of staff line.
- (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))))))
+ (collapse-height . 5.0)
+ (direction . ,LEFT)
+ (stencil . ,ly:system-start-delimiter::print)
+ (style . line-bracket)
+ (thickness . 1.0)
+ (X-offset . ,ly:side-position-interface::x-aligned-side)
+ (meta . ((class . Spanner)
+ (interfaces . (font-interface
+ 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 . ,CENTER)
- (font-size . -2)
- (stem-attachment . (0.0 . 1.35))
- (font-series . bold)
- (meta . ((class . Item)
- (interfaces . (rhythmic-head-interface
- font-interface
- rhythmic-grob-interface
- note-head-interface
- staff-symbol-referencer-interface
- text-interface))))))
+ (details . ((cautionary-properties . ((angularity . 0.4)
+ (half-thickness . 0.075)
+ (padding . 0)
+ (procedure . ,parenthesize-stencil)
+ (width . 0.25)))
+ (head-offset . 3/5)
+ (harmonic-properties . ((angularity . 2)
+ (half-thickness . 0.075)
+ (padding . 0)
+ (procedure . ,parenthesize-stencil)
+ (width . 0.25)))
+ (repeat-tied-properties . ((note-head-visible . #t)
+ (parenthesize . #t)))
+ (tied-properties . ((break-visibility . ,begin-of-line-visible)
+ (parenthesize . #t)))))
+
+ (direction . ,CENTER)
+ (duration-log . ,note-head::calc-duration-log)
+ (font-series . bold)
+ (font-size . -2)
+ (parenthesis-friends . (dot))
+ (stem-attachment . (0.0 . 1.35))
+ (stencil . ,tab-note-head::print)
+ (whiteout . #t)
+ (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
+ (Y-offset . ,staff-symbol-referencer::callback)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (meta . ((class . Item)
+ (interfaces . (font-interface
+ note-head-interface
+ rhythmic-grob-interface
+ rhythmic-head-interface
+ staff-symbol-referencer-interface
+ tab-note-head-interface
+ text-interface))))))
(TextScript
. (
- (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)
- (direction . ,DOWN)
-
- ;; sync with Fingering ?
- (padding . 0.5)
- (staff-padding . 0.5)
-
- (stencil . ,ly:text-interface::print)
- (direction . ,ly:script-interface::calc-direction)
- (positioning-done . ,ly:script-interface::calc-positioning-done)
-
- (outside-staff-priority . 450)
- (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
- text-interface
- instrument-specific-markup-interface
- side-position-interface
- self-alignment-interface
- font-interface))))))
+ (avoid-slur . around)
+ (cross-staff . #f)
+ (direction . ,DOWN)
+ (extra-spacing-width . (+inf.0 . -inf.0))
+ (outside-staff-horizontal-padding . 0.2)
+ (outside-staff-priority . 450)
+
+ ;; sync with Fingering ?
+ (padding . 0.3)
+
+ (parent-alignment-X . #f)
+ (script-priority . 200)
+ ;; self-alignment cannot be LEFT because of fingering diagrams.
+ (self-alignment-X . #f)
+ (side-axis . ,Y)
+ (slur-padding . 0.5)
+ (staff-padding . 0.5)
+ (stencil . ,ly:text-interface::print)
+ (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (X-align-on-main-noteheads . #t)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+ (meta . ((class . Item)
+ (interfaces . (font-interface
+ instrument-specific-markup-interface
+ outside-staff-interface
+ self-alignment-interface
+ side-position-interface
+ text-interface
+ text-script-interface))))))
(TextSpanner
. (
- (Y-offset . ,ly:side-position-interface::y-aligned-side)
- (font-shape . italic)
- (style . dashed-line)
- (staff-padding . 0.8)
- (dash-fraction . 0.2)
- (dash-period . 3.0)
- (side-axis . ,Y)
- (direction . ,UP)
- (outside-staff-priority . 350)
-
- (left-bound-info . ,ly:line-spanner::calc-left-bound-info)
- (right-bound-info . ,ly:line-spanner::calc-right-bound-info)
- (bound-details . ((left . ((Y . 0)
- (padding . 0.25)
- (attach-dir . ,LEFT)
- ))
- (right . ((Y . 0)
- (padding . 0.25)
- ))
- ))
- (stencil . ,ly:line-spanner::print)
-
- (meta . ((class . Spanner)
- (interfaces . (line-spanner-interface
- line-interface
- side-position-interface
- font-interface))))))
+ (bound-details . ((left . ((Y . 0)
+ (padding . 0.25)
+ (attach-dir . ,LEFT)
+ ))
+ (left-broken . ((attach-dir . ,RIGHT)))
+ (right . ((Y . 0)
+ (padding . 0.25)
+ ))
+ ))
+ (dash-fraction . 0.2)
+ (dash-period . 3.0)
+ (direction . ,UP)
+ (font-shape . italic)
+ (left-bound-info . ,ly:line-spanner::calc-left-bound-info)
+ (outside-staff-priority . 350)
+ (right-bound-info . ,ly:line-spanner::calc-right-bound-info)
+ (side-axis . ,Y)
+ (staff-padding . 0.8)
+ (stencil . ,ly:line-spanner::print)
+ (style . dashed-line)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+
+ (meta . ((class . Spanner)
+ (interfaces . (font-interface
+ line-interface
+ line-spanner-interface
+ outside-staff-interface
+ side-position-interface))))))
(Tie
. (
- (control-points . ,ly:tie::calc-control-points)
- (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 . (
- ;; for a full list, see tie-details.cc
- (ratio . 0.333)
- (center-staff-line-clearance . 0.6)
- (tip-staff-line-clearance . 0.45)
- (note-head-gap . 0.2)
- (stem-gap . 0.35)
- (height-limit . 1.0)
- (horizontal-distance-penalty-factor . 10)
- (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 . 3)
- (single-tie-region-size . 4)
- (between-length-limit . 1.0)))
-
- (thickness . 1.2)
- (line-thickness . 0.8)
- (meta . ((class . Spanner)
- (interfaces . (tie-interface))))))
+ (avoid-slur . inside)
+ (control-points . ,ly:tie::calc-control-points)
+ (details . (
+ ;; for a full list, see tie-details.cc
+ (ratio . 0.333)
+ (center-staff-line-clearance . 0.6)
+ (tip-staff-line-clearance . 0.45)
+ (note-head-gap . 0.2)
+ (stem-gap . 0.35)
+ (height-limit . 1.0)
+ (horizontal-distance-penalty-factor . 10)
+ (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 . 3)
+ (single-tie-region-size . 4)
+ (between-length-limit . 1.0)))
+
+ (direction . ,ly:tie::calc-direction)
+ (font-size . -6)
+ (line-thickness . 0.8)
+ (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))))))
(TieColumn
. (
- (positioning-done . ,ly:tie-column::calc-positioning-done)
- (before-line-breaking . ,ly:tie-column::before-line-breaking)
- (X-extent . #f)
- (Y-extent . #f)
- (meta . ((class . Spanner)
- (interfaces . (tie-column-interface))))))
+ (before-line-breaking . ,ly:tie-column::before-line-breaking)
+ (positioning-done . ,ly:tie-column::calc-positioning-done)
+ (X-extent . #f)
+ (Y-extent . #f)
+ (meta . ((class . Spanner)
+ (interfaces . (tie-column-interface))))))
(TimeSignature
. (
- (stencil . ,ly:time-signature::print)
- (break-align-symbol . time-signature)
- (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))
- (staff-bar . (minimum-space . 2.0))))
- (non-musical . #t)
- (style . C)
- (meta . ((class . Item)
- (interfaces . (time-signature-interface
- break-aligned-interface
- font-interface))))))
-
- (TrillSpanner
- . (
- (left-bound-info . ,ly:line-spanner::calc-left-bound-info)
- (right-bound-info . ,ly:line-spanner::calc-right-bound-info)
-
- (bound-details . ((left . ((text . ,(make-translate-scaled-markup
- '(0.0 . -1.0)
- (make-musicglyph-markup "scripts.trill")))
- (Y . 0)
- (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)))
- ))
-
- (stencil . ,ly:line-spanner::print)
-
- (style . trill)
- (staff-padding . 1.0)
- (padding . 0.5)
- (direction . ,UP)
- (Y-offset . ,ly:side-position-interface::y-aligned-side)
- (side-axis . ,Y)
- (outside-staff-priority . 50)
- (meta . ((class . Spanner)
- (interfaces . (line-spanner-interface
- line-interface
- trill-spanner-interface
- side-position-interface
- font-interface))))))
+ (avoid-slur . inside)
+ (break-align-anchor
+ . ,ly:break-aligned-interface::calc-extent-aligned-anchor)
+ (break-align-symbol . time-signature)
+ (break-align-anchor-alignment . ,LEFT)
+ (break-visibility . ,all-visible)
+ (extra-spacing-height . ,pure-from-neighbor-interface::extra-spacing-height-including-staff)
+ (extra-spacing-width . (0.0 . 0.8))
+ (non-musical . #t)
+ (space-alist . (
+ (cue-clef . (extra-space . 1.5))
+ (first-note . (fixed-space . 2.0))
+ (right-edge . (extra-space . 0.5))
+ (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)
+ (pure-relevant-grobs . ,ly:pure-from-neighbor-interface::calc-pure-relevant-grobs)))
+ (interfaces . (break-aligned-interface
+ font-interface
+ pure-from-neighbor-interface
+ time-signature-interface))))))
(TrillPitchAccidental
- . ((X-offset . ,ly:side-position-interface::x-aligned-side)
- (padding . 0.2)
- (direction . ,LEFT)
- (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 . (trill-pitch-accidental-interface
- accidental-interface
- side-position-interface
- font-interface))))))
+ . (
+ (direction . ,LEFT)
+ (font-size . -4)
+ (glyph-name-alist . ,standard-alteration-glyph-name-alist)
+ (padding . 0.2)
+ (side-axis . ,X)
+ (stencil . ,ly:accidental-interface::print)
+ (X-offset . ,ly:side-position-interface::x-aligned-side)
+ (Y-extent . ,accidental-interface::height)
+ (meta . ((class . Item)
+ (interfaces . (accidental-interface
+ font-interface
+ inline-accidental-interface
+ side-position-interface
+ trill-pitch-accidental-interface))))))
(TrillPitchGroup
- . ((X-offset . ,ly:side-position-interface::x-aligned-side)
- (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
- font-interface
- axis-group-interface))))))
+ . (
+ (axes . (,X))
+ (direction . ,RIGHT)
+ (font-size . -4)
+ ;; minimum shift to the right, in case the parent note has no stem
+ (minimum-space . 2.5)
+ (horizon-padding . 0.1) ; to avoid interleaving with augmentation dots
+ (padding . 0.3)
+ (side-axis . ,X)
+ (stencil . ,parenthesize-elements)
+ (stencils . ,parentheses-item::calc-parenthesis-stencils)
+ (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
+ note-head-interface
+ parentheses-interface
+ side-position-interface))))))
(TrillPitchHead
. (
- (stencil . ,ly:note-head::print)
- (duration-log . 2)
- (Y-offset . ,ly:staff-symbol-referencer::callback)
- (font-size . -4)
- (meta . ((class . Item)
- (interfaces . (rhythmic-head-interface
- font-interface
- pitched-trill-interface
- ledgered-interface
- staff-symbol-referencer-interface))))))
+ (duration-log . 2)
+ (font-size . -4)
+ (stencil . ,ly:note-head::print)
+ (Y-offset . ,staff-symbol-referencer::callback)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (meta . ((class . Item)
+ (interfaces . (font-interface
+ ledgered-interface
+ pitched-trill-interface
+ rhythmic-head-interface
+ staff-symbol-referencer-interface))))))
+
+ (TrillSpanner
+ . (
+ (after-line-breaking . ,ly:spanner::kill-zero-spanned-time)
+ (bound-details . ((left . ((text . ,(make-musicglyph-markup "scripts.trill"))
+ (Y . 0)
+ (stencil-offset . (-0.5 . -1))
+ (padding . 0.5)
+ (attach-dir . ,CENTER)
+ ))
+ (left-broken . ((end-on-note . #t)))
+ (right . ((Y . 0)))
+ ))
+ (direction . ,UP)
+ (left-bound-info . ,ly:line-spanner::calc-left-bound-info)
+ (outside-staff-priority . 50)
+ (padding . 0.5)
+ (right-bound-info . ,ly:line-spanner::calc-right-bound-info)
+ (side-axis . ,Y)
+ (staff-padding . 1.0)
+ (stencil . ,ly:line-spanner::print)
+ (style . trill)
+ (Y-offset . ,side-position-interface::y-aligned-side)
+ (meta . ((class . Spanner)
+ (interfaces . (font-interface
+ line-interface
+ line-spanner-interface
+ outside-staff-interface
+ side-position-interface
+ trill-spanner-interface))))))
(TupletBracket
. (
- (padding . 1.1)
- (thickness . 1.6)
- (edge-height . (0.7 . 0.7))
- (shorten-pair . (-0.2 . -0.2))
- (staff-padding . 0.25)
- (full-length-to-extent . #t)
- (direction . ,ly:tuplet-bracket::calc-direction)
- (positions . ,ly:tuplet-bracket::calc-positions)
- (connect-to-neighbor . ,ly:tuplet-bracket::calc-connect-to-neighbors)
- (control-points . ,ly:tuplet-bracket::calc-control-points)
- (stencil . ,ly:tuplet-bracket::print)
- (cross-staff . ,ly:tuplet-bracket::calc-cross-staff)
-
- (meta . ((class . Spanner)
- (interfaces . (line-interface
- tuplet-bracket-interface))))))
+ (avoid-scripts . #t)
+ (connect-to-neighbor . ,ly:tuplet-bracket::calc-connect-to-neighbors)
+ (cross-staff . ,ly:tuplet-bracket::calc-cross-staff)
+ (direction . ,ly:tuplet-bracket::calc-direction)
+ (edge-height . (0.7 . 0.7))
+ (full-length-to-extent . #t)
+ (padding . 1.1)
+ (positions . ,ly:tuplet-bracket::calc-positions)
+ (shorten-pair . (-0.2 . -0.2))
+ (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)
+ (interfaces . (line-interface
+ outside-staff-interface
+ tuplet-bracket-interface))))))
(TupletNumber
. (
- (stencil . ,ly:tuplet-number::print)
- (text . ,tuplet-number::calc-denominator-text)
- (font-shape . italic)
- (font-size . -2)
- (avoid-slur . inside)
- (cross-staff . ,ly:tuplet-number::calc-cross-staff)
- (meta . ((class . Spanner)
- (interfaces . (text-interface tuplet-number-interface
- font-interface))))))
-
-
+ (avoid-slur . inside)
+ (cross-staff . ,ly:tuplet-number::calc-cross-staff)
+ (direction . ,tuplet-number::calc-direction)
+ (font-shape . italic)
+ (font-size . -2)
+ (knee-to-beam . #t)
+ (stencil . ,ly:tuplet-number::print)
+ (text . ,tuplet-number::calc-denominator-text)
+ (X-offset . ,ly:tuplet-number::calc-x-offset)
+ (Y-offset . ,ly:tuplet-number::calc-y-offset)
+ (meta . ((class . Spanner)
+ (interfaces . (font-interface
+ outside-staff-interface
+ text-interface
+ tuplet-number-interface))))))
+
+
(UnaCordaPedal
. (
- (stencil . ,ly:text-interface::print)
- (font-shape . italic)
- (extra-spacing-width . (+inf.0 . -inf.0))
- (self-alignment-X . ,CENTER)
- (direction . ,RIGHT)
- (padding . 0.0) ;; padding relative to UnaCordaPedalLineSpanner
- (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
- (meta . ((class . Item)
- (interfaces . (text-interface
- piano-pedal-script-interface
- self-alignment-interface
- font-interface))))))
+ (direction . ,RIGHT)
+ (extra-spacing-width . (+inf.0 . -inf.0))
+ (font-shape . italic)
+ (padding . 0.0) ;; padding relative to UnaCordaPedalLineSpanner
+ (parent-alignment-X . #f)
+ (self-alignment-X . ,CENTER)
+ (stencil . ,ly:text-interface::print)
+ (vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
+ (Y-extent . ,grob::always-Y-extent-from-stencil)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
+ (meta . ((class . Item)
+ (interfaces . (font-interface
+ piano-pedal-script-interface
+ self-alignment-interface
+ text-interface))))))
(UnaCordaPedalLineSpanner
. (
- (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)
- (minimum-space . 1.0)
- (direction . ,DOWN)
- (meta . ((class . Spanner)
- (interfaces . (piano-pedal-interface
- axis-group-interface
- side-position-interface))))))
+ (axes . (,Y))
+ (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 . ,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)))
+ (interfaces . (axis-group-interface
+ outside-staff-interface
+ piano-pedal-interface
+ side-position-interface))))))
(VaticanaLigature
. (
- (thickness . 0.6)
- (flexa-width . 2.0)
- (stencil . ,ly:vaticana-ligature::print)
- (meta . ((class . Spanner)
- (interfaces . (vaticana-ligature-interface
- font-interface))))))
+ (flexa-width . 2.0)
+ (stencil . ,ly:vaticana-ligature::print)
+ (thickness . 0.6)
+ (meta . ((class . Spanner)
+ (interfaces . (font-interface
+ vaticana-ligature-interface))))))
(VerticalAlignment
. (
- (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)
- (X-extent . ,ly:axis-group-interface::width)
- (stacking-dir . -1)
- (padding . 0.5)
- (vertical-skylines . ,ly:axis-group-interface::combine-skylines)
- (max-stretch . 0)
- (meta . ((class . Spanner)
- (object-callbacks . ((Y-common . ,ly:axis-group-interface::calc-y-common)))
- (interfaces . (align-interface
- axis-group-interface))))))
+ (axes . (,Y))
+ (positioning-done . ,ly:align-interface::align-to-ideal-distances)
+ (stacking-dir . -1)
+ (vertical-skylines . ,ly:axis-group-interface::combine-skylines)
+ (X-extent . ,ly:axis-group-interface::width)
+ (Y-extent . ,axis-group-interface::height)
+ (meta . ((class . Spanner)
+ (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
+ axis-group-interface))))))
(VerticalAxisGroup
. (
- (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)
- (vertical-skylines . ,ly:hara-kiri-group-spanner::calc-skylines)
- (max-stretch . ,ly:axis-group-interface::calc-max-stretch)
- (stencil . ,ly:axis-group-interface::print)
- (adjacent-pure-heights . ,ly:axis-group-interface::adjacent-pure-heights)
- (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))))))
+ (adjacent-pure-heights . ,ly:axis-group-interface::adjacent-pure-heights)
+ (axes . (,Y))
+ (default-staff-staff-spacing . ((basic-distance . 9)
+ (minimum-distance . 8)
+ (padding . 1)))
+ (nonstaff-unrelatedstaff-spacing . ((padding . 0.5)))
+ (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: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 . (
+ (X-common . ,ly:axis-group-interface::calc-x-common)
+ (pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
+ (pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs)))
+
+ (interfaces . (axis-group-interface
+ hara-kiri-group-spanner-interface
+ outside-staff-axis-group-interface))))))
+
+ (VoiceFollower
+ . (
+ (after-line-breaking . ,ly:spanner::kill-zero-spanned-time)
+ (bound-details . ((right . ((attach-dir . ,CENTER)
+ (padding . 1.5)
+ ))
+ (left . ((attach-dir . ,CENTER)
+ (padding . 1.5)
+ ))
+ ))
+ (cross-staff . #t)
+ (gap . 0.5)
+ (left-bound-info . ,ly:line-spanner::calc-left-bound-info)
+ (non-musical . #t)
+ (right-bound-info . ,ly:line-spanner::calc-right-bound-info)
+ (stencil . ,ly:line-spanner::print)
+ (style . line)
+ (X-extent . #f)
+ (Y-extent . #f)
+ (meta . ((class . Spanner)
+ (interfaces . (line-interface
+ line-spanner-interface))))))
(VoltaBracket
. (
- (stencil . ,ly:volta-bracket-interface::print)
- (font-encoding . fetaNumber)
- (thickness . 1.6) ;; line-thickness
- (edge-height . (2.0 . 2.0)) ;; staff-space;
- (font-size . -4)
- (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))))))
+ (baseline-skip . 1.7)
+ (direction . ,UP)
+ (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
+ line-interface
+ side-position-interface
+ text-interface
+ volta-bracket-interface
+ volta-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
. (
- (style . line)
- (gap . 0.5)
- (non-musical . #t)
- (X-extent . #f)
- (Y-extent . #f)
- (bound-details . ((right . ((attach-dir . ,CENTER)
- (padding . 1.5)
- ))
- (left . ((attach-dir . ,CENTER)
- (padding . 1.5)
- ))
- ))
- (stencil . ,ly:line-spanner::print)
- (left-bound-info . ,ly:line-spanner::calc-left-bound-info)
- (right-bound-info . ,ly:line-spanner::calc-right-bound-info)
- (meta . ((class . Spanner)
- (interfaces . (line-spanner-interface
- line-interface))))))
-
-))
+ (after-line-breaking . ,ly:side-position-interface::move-to-extremal-staff)
+ (axes . (,Y))
+ (direction . ,UP)
+ (no-alignment . #t)
+ (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 . ,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)))
+ (interfaces . (axis-group-interface
+ outside-staff-interface
+ side-position-interface
+ volta-interface))))))
+
+ ))
(define (completize-grob-entry x)
"Transplant assoc key into 'name entry of 'meta of X. Set interfaces for Item, Spanner etc.
;; (display (car x))
;; (newline)
(let* ((name-sym (car x))
- (grob-entry (cdr x))
- (meta-entry (cdr (assoc 'meta grob-entry)))
- (class (cdr (assoc 'class meta-entry)))
- (ifaces-entry
- (cdr (assoc 'interfaces meta-entry))))
+ (grob-entry (cdr x))
+ (meta-entry (assoc-get 'meta grob-entry))
+ (class (assoc-get 'class meta-entry))
+ (ifaces-entry
+ (assoc-get 'interfaces meta-entry)))
(cond
((eq? 'Item class)
(set! ifaces-entry (cons 'spanner-interface ifaces-entry)))
((eq? 'Paper_column class)
(set! ifaces-entry (cons 'item-interface
- (cons 'paper-column-interface ifaces-entry))))
+ (cons 'paper-column-interface ifaces-entry))))
((eq? 'System class)
(set! ifaces-entry (cons 'system-interface
- (cons 'spanner-interface ifaces-entry))))
+ (cons 'spanner-interface ifaces-entry))))
(else
(ly:warning "Unknown class ~a" class)))
(set! meta-entry (assoc-set! meta-entry 'name name-sym))
(set! meta-entry (assoc-set! meta-entry 'interfaces
- ifaces-entry))
+ ifaces-entry))
(set! grob-entry (assoc-set! grob-entry 'meta meta-entry))
(cons name-sym grob-entry)))
;; make sure that \property Foo.Bar =\turnOff doesn't complain
-(map (lambda (x)
- ;; (display (car x)) (newline)
+(for-each (lambda (x)
+ ;; (display (car x)) (newline)
- (set-object-property! (car x) 'translation-type? list?)
- (set-object-property! (car x) 'is-grob? #t))
- all-grob-descriptions)
+ (set-object-property! (car x) 'translation-type? ly:grob-properties?)
+ (set-object-property! (car x) 'is-grob? #t))
+ all-grob-descriptions)
(set! all-grob-descriptions (sort all-grob-descriptions alist<?))
-
-(define pure-print-callbacks
- (list
- fret-board::calc-stencil
- print-circled-text-callback
- lyric-text::print
- ly:arpeggio::print
- ly:arpeggio::brew-chord-bracket
- ly:bar-line::print
- ly:note-head::print
- ly:dots::print
- ly:clef::print
- ly:text-interface::print
- ly:script-interface::print))
-
-;; ly:grob::stencil-extent is safe iff the print callback is safe too
-(define (pure-stencil-height grob start stop)
- (let ((sten (ly:grob-property-data grob 'stencil)))
- (if (or
- (ly:stencil? sten)
- (memq sten pure-print-callbacks))
- (ly:grob::stencil-height grob)
- '(0 . 0))))
-
-(define pure-conversions-alist
- `(
- (,ly:accidental-interface::height . ,ly:accidental-interface::pure-height)
- (,ly:arpeggio::height . ,ly:arpeggio::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
- parenthesize-elements
- ly:rest::y-offset-callback
- ly:staff-symbol-referencer::callback
- ly:staff-symbol::height))
-
-(define-public (pure-relevant? grob)
- (let ((extent-callback (ly:grob-property-data grob 'Y-extent)))
- (not (eq? #f
- (or
- (pair? extent-callback)
- (memq extent-callback pure-functions)
- (and
- (pair? (assq extent-callback pure-conversions-alist))
- (begin
- (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))
-
- ))))))))
-
-(define-public (call-pure-function unpure args start end)
- (if (ly:simple-closure? unpure)
- (ly:eval-simple-closure (car args) unpure start end)
- (if (not (procedure? unpure))
- unpure
- (if (memq unpure pure-functions)
- (apply unpure args)
- (let ((pure (assq unpure pure-conversions-alist)))
- (if pure
- (apply (cdr pure)
- (append
- (list (car args) start end)
- (cdr args)))))))))