;;;; This file is part of LilyPond, the GNU music typesetter.
;;;;
-;;;; Copyright (C) 1998--2012 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
`(
(Accidental
. (
+ (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-extent . ,ly:accidental-interface::width)
+ (X-offset . ,ly:grob::x-parent-positioning)
(Y-extent . ,accidental-interface::height)
(meta . ((class . Item)
(interfaces . (accidental-interface
(AccidentalCautionary
. (
+ (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
(AccidentalSuggestion
. (
+ (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-extent . ,ly:accidental-interface::width)
- (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)))))
+ (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))))))
(padding . 0.5)
(side-axis . ,X)
(stencil . ,ly:accidental-interface::print)
- (X-offset . ,ly:side-position-interface::x-aligned-side)
+ (X-offset . ,ly:grob::x-parent-positioning)
(Y-extent . ,accidental-interface::height)
(meta . ((class . Item)
(interfaces . (accidental-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)
(Arpeggio
. (
- (cross-staff . ,ly:arpeggio::calc-cross-staff)
+ (cross-staff . ,ly:arpeggio::calc-cross-staff)
(direction . ,LEFT)
+ (line-thickness . 1)
(padding . 0.5)
(positions . ,ly:arpeggio::calc-positions)
(protrusion . 0.4)
(side-axis . ,X)
(staff-position . 0.0)
(stencil . ,ly:arpeggio::print)
+ (thickness . 1)
(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)
;; TODO:
;; kern should scale with line-thickness too.
(kern . 3.0)
- (thin-kern . 3.0)
+ (segno-kern . 3.0)
(hair-thickness . 1.9)
(thick-thickness . 6.0)
(space-alist . (
(time-signature . (extra-space . 0.75))
(custos . (minimum-space . 2.0))
- (clef . (minimum-space . 1.0))
+ (clef . (extra-space . 1.0))
(key-signature . (extra-space . 1.0))
(key-cancellation . (extra-space . 1.0))
(first-note . (fixed-space . 1.3))
(self-alignment-X . ,RIGHT)
(side-axis . ,Y)
(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)))))
+ (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))))))
(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
(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))))))
+ (interfaces . (axis-group-interface
+ outside-staff-axis-group-interface))))))
(Beam
(interfaces . (break-aligned-interface
breathing-sign-interface
font-interface
+ outside-staff-interface
text-interface))))))
(ChordName
(meta . ((class . Item)
(interfaces . (chord-name-interface
font-interface
+ outside-staff-interface
rhythmic-grob-interface
text-interface))))))
. (
(break-visibility . ,(grob::inherit-parent-property
X 'break-visibility))
- (font-shape . italic)
- (font-size . -4)
- (transparent . ,(grob::inherit-parent-property
- X 'transparent))
+ (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)
- (X-offset . ,(ly:make-simple-closure
- `(,+
- ,(ly:make-simple-closure
- (list ly:self-alignment-interface::x-aligned-on-self))
- ,(ly:make-simple-closure
- (list ly:self-alignment-interface::centered-on-x-parent)))))
- (Y-offset . ,side-position-interface::y-aligned-side)
+ (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))))))
(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)
- ;; todo: add X self alignment?
(stencil . ,ly:text-interface::print)
- (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
+ (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))))))
(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
(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: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 . ,side-position-interface::y-aligned-side)
+ (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
(thickness . 0.48)
(meta . ((class . Item)
(interfaces . (font-interface
+ outside-staff-interface
percent-repeat-interface
percent-repeat-item-interface
rhythmic-grob-interface))))))
(interfaces . (axis-group-interface
dynamic-interface
dynamic-line-spanner-interface
+ outside-staff-interface
side-position-interface))))))
(DynamicText
;; todo.
- (collision-bias . -2.0)
- (collision-padding . 0.5)
(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-offset . ,ly:self-alignment-interface::x-aligned-on-self)
+ (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))))))
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))))))
(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)
(meta . ((class . Item)
(interfaces . (finger-interface
font-interface
+ outside-staff-interface
self-alignment-interface
side-position-interface
text-interface
(interfaces . (chord-name-interface
font-interface
fret-diagram-interface
+ outside-staff-interface
rhythmic-grob-interface))))))
))
(left . ((attach-dir . ,RIGHT)
(padding . 0.5)
+ (start-at-dot . #t)
))
))
(cross-staff . ,ly:line-spanner::calc-cross-staff)
(GridLine
. (
(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: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)))))
+ (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))))))
(interfaces . (dynamic-interface
hairpin-interface
line-interface
+ outside-staff-interface
self-alignment-interface
spanner-interface))))))
(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
. (
(interfaces . (font-interface
self-alignment-interface
side-position-interface
- system-start-text-interface))))))
+ system-start-text-interface
+ text-interface))))))
(InstrumentSwitch
. (
(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::x-aligned-on-self)
+ (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))))))
(key-signature . (extra-space . 0.5))
(cue-clef . (extra-space . 0.5))
(right-edge . (extra-space . 0.5))
- (first-note . (fixed-space . 2.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)
. (
(break-align-anchor . ,ly:break-aligned-interface::calc-extent-aligned-anchor)
(break-align-symbol . left-edge)
- (break-visibility . ,center-invisible)
+ (break-visibility . ,begin-of-line-visible)
(non-musical . #t)
- (extra-spacing-height . (+inf.0 . -inf.0))
(space-alist . (
(ambitus . (extra-space . 2.0))
(breathing-sign . (minimum-space . 0.0))
(right-edge . (extra-space . 0.0))
))
(X-extent . (0 . 0))
+ (Y-extent . (0 . 0))
(meta . ((class . Item)
(interfaces . (break-aligned-interface))))))
(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)
(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))))))
(Y-offset . ,side-position-interface::y-aligned-side)
(meta . ((class . Spanner)
(interfaces . (measure-grouping-interface
+ outside-staff-interface
side-position-interface))))))
(MelodyItem
(stencil . ,ly:text-interface::print)
(vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
(Y-offset . ,side-position-interface::y-aligned-side)
- (X-offset . ,(ly:make-simple-closure
- `(,+
- ,(ly:make-simple-closure
- (list ly:break-alignable-interface::self-align-callback))
- ,(ly:make-simple-closure
- (list ly:self-alignment-interface::x-aligned-on-self)))))
+ (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))
(interfaces . (break-alignable-interface
font-interface
metronome-mark-interface
+ outside-staff-interface
self-alignment-interface
side-position-interface
text-interface))))))
(expand-limit . 10)
(hair-thickness . 2.0)
(round-up-exceptions . ())
- (padding . 1)
+ (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)
+ (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)
- (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 . ,side-position-interface::y-aligned-side)
(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))))))
(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)
- (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 . ,side-position-interface::y-aligned-side)
(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))))))
(NoteCollision
. (
(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)
(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)
. (
(dash-fraction . 0.3)
(direction . ,UP)
- (edge-height . (0 . 1.2))
+ (edge-height . (0 . 0.8))
(font-shape . italic)
- (minimum-length . 1.0)
+ (minimum-length . 0.3)
(outside-staff-priority . 400)
(padding . 0.5)
- (shorten-pair . (0.0 . -0.6))
+ (shorten-pair . (-0.8 . -0.6))
(staff-padding . 2.0)
(stencil . ,ly:ottava-bracket::print)
(style . dashed-line)
(interfaces . (font-interface
horizontal-bracket-interface
line-interface
+ outside-staff-interface
ottava-bracket-interface
side-position-interface
text-interface))))))
;; 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))))))
(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: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 . ,side-position-interface::y-aligned-side)
+ (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))))))
(height-limit . 2.0)
(minimum-length . 1.5)
(ratio . 0.333)
- (spanner-id . "")
(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 . (slur-interface))))))
+ (interfaces . (outside-staff-interface
+ slur-interface))))))
;; an example of a text spanner
(PianoPedalBracket
(self-alignment-X . ,CENTER)
(stencil . ,ly:text-interface::print)
(vertical-skylines . ,grob::always-vertical-skylines-from-stencil)
- (X-offset . ,(ly:make-simple-closure
- `(,+
- ,(ly:make-simple-closure
- (list ly:break-alignable-interface::self-align-callback))
- ,(ly:make-simple-closure
- (list ly:self-alignment-interface::x-aligned-on-self)))))
+ (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))))))
(RepeatTieColumn
. (
- (direction . ,ly:tie::calc-direction)
(head-direction . ,ly:semi-tie-column::calc-head-direction)
(positioning-done . ,ly:semi-tie-column::calc-positioning-done)
(X-extent . #f)
(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))
(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.
(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
(line-thickness . 0.8)
(minimum-length . 1.5)
(ratio . 0.25)
- (spanner-id . "")
(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 . (slur-interface))))))
+ (interfaces . (outside-staff-interface
+ slur-interface))))))
(SostenutoPedal
. (
(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::x-aligned-on-self)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
(Y-extent . ,grob::always-Y-extent-from-stencil)
(meta . ((class . Item)
(interfaces . (font-interface
(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))))))
(StaffSymbol
. (
+ (break-align-symbols . (staff-bar break-alignment))
(layer . 0)
(ledger-line-thickness . (1.0 . 0.1))
(line-count . 5)
;; 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))
+ (stem-shorten . (1.0 0.5 0.25))
))
;; 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))
(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)
- (style . ,ly:stem-tremolo::calc-style)
+ (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))
- (X-offset . ,(ly:make-simple-closure
- `(,+
- ,(ly:make-simple-closure
- (list ly:self-alignment-interface::centered-on-x-parent))
- ,(ly:make-simple-closure
- (list ly:self-alignment-interface::x-aligned-on-self)))))
(Y-offset . ,(ly:make-unpure-pure-container ly:stem-tremolo::calc-y-offset ly:stem-tremolo::pure-calc-y-offset))
(meta . ((class . Item)
(interfaces . (self-alignment-interface
(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)
(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))))))
(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)
(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
. (
(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::x-aligned-on-self)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
(Y-extent . ,grob::always-Y-extent-from-stencil)
(meta . ((class . Item)
(interfaces . (font-interface
(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))))))
(vertical-skyline-elements . ,ly:system::vertical-skyline-elements)
(vertical-alignment . ,ly:system::get-vertical-alignment)))
(interfaces . (axis-group-interface
- system-interface))))))
+ system-interface
+ outside-staff-axis-group-interface))))))
(SystemStartBar
. (
(SystemStartSquare
. (
+ (collapse-height . 5.0)
(direction . ,LEFT)
(stencil . ,ly:system-start-delimiter::print)
(style . line-bracket)
(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)
(TextScript
. (
(avoid-slur . around)
- (cross-staff . ,script-or-side-position-cross-staff)
+ (cross-staff . #f)
(direction . ,DOWN)
(extra-spacing-width . (+inf.0 . -inf.0))
(outside-staff-horizontal-padding . 0.2)
;; 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)
- ;; todo: add X self alignment?
(Y-extent . ,grob::always-Y-extent-from-stencil)
- (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
+ (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
(interfaces . (font-interface
line-interface
line-spanner-interface
+ outside-staff-interface
side-position-interface))))))
(Tie
(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)
- ;; offset a bit to the right, further if needed to clear the main note
- (X-offset . ,(lambda (grob)
- (ly:side-position-interface::x-aligned-side grob 2.5)))
+ (X-offset . ,ly:side-position-interface::x-aligned-side)
(Y-extent . ,grob::always-Y-extent-from-stencil)
(meta . ((class . Item)
(interfaces . (axis-group-interface
(interfaces . (font-interface
line-interface
line-spanner-interface
+ outside-staff-interface
side-position-interface
trill-spanner-interface))))))
(meta . ((class . Spanner)
(interfaces . (line-interface
+ outside-staff-interface
tuplet-bracket-interface))))))
(TupletNumber
(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))))))
(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::x-aligned-on-self)
+ (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)
(meta . ((class . Item)
(interfaces . (font-interface
piano-pedal-script-interface
(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))))))
(pure-relevant-grobs . ,ly:axis-group-interface::calc-pure-relevant-grobs)))
(interfaces . (axis-group-interface
- hara-kiri-group-spanner-interface))))))
+ hara-kiri-group-spanner-interface
+ outside-staff-axis-group-interface))))))
(VoiceFollower
. (
(VoltaBracket
. (
+ (baseline-skip . 1.7)
(direction . ,UP)
(edge-height . (2.0 . 2.0)) ;; staff-space;
(font-encoding . fetaText)
(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))))))
(for-each (lambda (x)
;; (display (car x)) (newline)
- (set-object-property! (car x) 'translation-type? list?)
+ (set-object-property! (car x) 'translation-type? ly:grob-properties?)
(set-object-property! (car x) 'is-grob? #t))
all-grob-descriptions)