;; TODO: junk the meta field in favor of something more compact?
(define all-grob-descriptions
`(
- (Accidentals
+ (Accidental
. (
- (molecule-callback . ,Local_key_item::brew_molecule)
- (X-offset-callbacks . (,Side_position_interface::aligned_side))
- (Y-offset-callbacks . (,Staff_symbol_referencer::callback))
- (after-line-breaking-callback . ,Local_key_item::after_line_breaking)
- (direction . -1)
- (left-padding . 0.2)
- (right-padding . 0.5)
- (paren-cautionaries . #t)
+ (molecule-callback . ,Accidental_interface::brew_molecule)
(font-family . music)
- (meta . ((interfaces . (accidentals-interface staff-symbol-referencer-interface font-interface side-position-interface))))
+ (cautionary-style . smaller)
+ (after-line-breaking-callback . ,Accidental_interface::after_line_breaking) (meta . ((interfaces . (accidental-interface font-interface))))
+ ))
+ (AccidentalPlacement
+ . (
+ (X-extent-callback . ,Accidental_placement::extent_callback)
+ (left-padding . 0.3)
+ (right-padding . 0.3)
+ (meta . ((interfaces . (accidental-placement-interface))))
))
(Arpeggio
(thin-kern . 3.0)
(hair-thickness . 1.6)
(thick-thickness . 6.0)
- (meta . ((interfaces . (bar-line-interface font-interface))))
+ (meta . ((interfaces . (bar-line-interface break-aligned-interface font-interface))))
))
(font-family . roman)
(font-relative-size . -1)
(Y-offset-callbacks . (,Side_position_interface::aligned_side))
+ (X-offset-callbacks . (,Self_alignment_interface::aligned_on_self))
+ (self-alignment-X . 1)
+ (extra-offset . (1.3 . 0))
(meta .
((interfaces . (side-position-interface
text-interface
+ self-alignment-interface
font-interface break-aligned-interface))))
))
(BassFigure
. (
(molecule-callback . ,brew-bass-figure)
- (Y-offset-callbacks . (,Side_position_interface::aligned_on_self))
+ (Y-offset-callbacks . (,Self_alignment_interface::aligned_on_self))
(direction . 0)
(font-family . number)
(font-relative-size . -1)
(padding . 0.1)
(kern . 0.2)
(thickness . 1.0)
- (meta . ((interfaces . (text-interface font-interface))))
+ (meta . ((interfaces . (text-interface bass-figure-interface self-alignment-interface font-interface))))
))
(Beam
. (
(position-callbacks . (,Beam::least_squares
,Beam::check_concave
,Beam::slope_damping
+ ,Beam::shift_region_to_valid
,Beam::quanting
))
;; TODO: should be in SLT.
(thickness . 0.48) ; in staff-space
(before-line-breaking-callback . ,Beam::before_line_breaking)
- (after-line-breaking-callback . (,Beam::after_line_breaking
- ,Beam::end_after_line_breaking))
+ (after-line-breaking-callback . ,Beam::after_line_breaking)
(neutral-direction . -1)
(dir-function . ,beam-dir-majority-median)
(beamed-stem-shorten . (1.0 0.5))
(damping . 1)
(auto-knee-gap . 7)
(font-name . "cmr10")
+ (space-function . ,Beam::space_function)
(meta . ((interfaces . (staff-symbol-referencer-interface beam-interface))))
))
(thickness . 0.48)
(break-align-symbol . staff-bar)
(visibility-lambda . ,begin-of-line-invisible)
- (meta . ((interfaces . (font-interface percent-repeat-interface))))
+ (meta . ((interfaces . (font-interface
+ break-aligned-interface
+ percent-repeat-interface))))
))
(DynamicText
. (
- (Y-offset-callbacks . (,Side_position_interface::aligned_on_self))
+ (Y-offset-callbacks . (,Self_alignment_interface::aligned_on_self))
(molecule-callback . ,Text_item::brew_molecule)
- (X-offset-callbacks . (,Side_position_interface::aligned_on_self))
+ (X-offset-callbacks . (,Self_alignment_interface::aligned_on_self
+ ,Self_alignment_interface::centered_on_parent))
(self-alignment-X . 0)
(no-spacing-rods . #t)
(script-priority . 100)
(font-family . dynamic)
(font-shape . italic)
(self-alignment-Y . 0)
- (meta . ((interfaces . (font-interface text-interface dynamic-interface))))
+ (meta . ((interfaces . (font-interface text-interface self-alignment-interface dynamic-interface))))
))
(DynamicLineSpanner
(Fingering
. (
(molecule-callback . ,Text_item::brew_molecule)
- (X-offset-callbacks . (,Side_position_interface::centered_on_parent
- ,Side_position_interface::aligned_on_self))
+ (X-offset-callbacks . (,Self_alignment_interface::centered_on_parent
+ ,Self_alignment_interface::aligned_on_self))
(padding . 0.6)
- ; (direction . -1)
+ ;; (direction . -1)
(self-alignment-X . 0)
(self-alignment-Y . 0)
+ (script-priority . 100)
(font-family . number)
(font-relative-size . -3)
(font-shape . upright)
- (meta . ((interfaces . (finger-interface font-interface text-script-interface text-interface side-position-interface))))
+ (meta . ((interfaces . (finger-interface font-interface text-script-interface text-interface side-position-interface self-alignment-interface))))
))
(dash-thickness . 1.2)
(dash-length . 4.0)
(self-alignment-Y . 0)
- (Y-offset-callbacks . (,Side_position_interface::aligned_on_self))
- (meta . ((interfaces . (hairpin-interface dynamic-interface))))
+ (Y-offset-callbacks . (,Self_alignment_interface::aligned_on_self))
+ (meta . ((interfaces . (hairpin-interface self-alignment-interface dynamic-interface))))
))
(InstrumentName
. (
(breakable . #t)
- (Y-offset-callbacks . (,Side_position_interface::aligned_on_self
+ (Y-offset-callbacks . (,Self_alignment_interface::aligned_on_self
,Side_position_interface::aligned_on_support_refpoints))
;; huh? what's this for?
(direction . 0)
(visibility-lambda . ,begin-of-line-visible)
(baseline-skip . 2)
(font-family . roman)
- (meta . ((interfaces . (font-interface side-position-interface text-interface break-aligned-interface))))
+ (meta . ((interfaces . (font-interface self-alignment-interface side-position-interface text-interface break-aligned-interface))))
))
(KeySignature
(meta . ((interfaces . (key-signature-interface font-interface break-aligned-interface))))
))
+ (Ligature
+ . (
+ (molecule-callback . ,Ligature_bracket::brew_molecule)
+ (meta . ((interfaces . (ligature-interface))))
+ ))
+
+ (LigatureBracket
+ . (
+ (width . 0.75)
+ (height . 0.5)
+ (ligature-primitive-callback . ,Note_head::brew_molecule)
+ (molecule-callback . ,Ligature_bracket::brew_molecule)
+ (meta . ((interfaces . (ligature-bracket-interface))))
+ ))
+
+ (LigatureHead
+ . (
+ (ligature-primitive-callback . ,Note_head::brew_molecule)
+ (molecule-callback . ,Ligature_head::brew_molecule)
+ (Y-offset-callbacks . (,Staff_symbol_referencer::callback))
+ (stem-attachment-function . ,note-head-style->attachment-coordinates)
+ (font-family . ancient)
+ (style . mensural)
+ (meta . ((interfaces . (ligature-head-interface rhythmic-head-interface note-head-interface staff-symbol-referencer-interface))))
+ ))
(LyricHyphen
. (
(LyricText
. (
(molecule-callback . ,Text_item::brew_molecule)
- (X-offset-callbacks . (,Side_position_interface::aligned_on_self))
+ (X-offset-callbacks . (,Self_alignment_interface::aligned_on_self))
(self-alignment-X . 0)
- (non-rhythmic . #t)
(word-space . 0.6)
(ignore-length-mismatch . #f)
(begin-alignment . 4)
(font-family . roman)
(font-shape . upright)
;; duh, side-position-interface?
- (meta . ((interfaces . (lyric-syllable-interface side-position-interface text-interface font-interface))))
+ (meta . ((interfaces . (lyric-syllable-interface self-alignment-interface text-interface font-interface))))
+ ))
+
+ (MensuralLigature
+ . (
+ (thickness . 1.4)
+ (flexa-width . 2.0)
+ (ligature-primitive-callback . ,Mensural_ligature::brew_ligature_primitive)
+ (molecule-callback . ,Mensural_ligature::brew_molecule)
+ (font-family . ancient)
+ (meta . ((interfaces . (mensural-ligature-interface))))
))
(Porrectus
(RehearsalMark
. (
(molecule-callback . ,Text_item::brew_molecule)
- (X-offset-callbacks . (,Side_position_interface::aligned_on_self))
+ (X-offset-callbacks . (,Self_alignment_interface::aligned_on_self))
+ (Y-offset-callbacks . (,Side_position_interface::aligned_side))
(self-alignment-X . 0)
(direction . 1)
(breakable . #t)
+ (font-family . roman)
(visibility-lambda . ,end-of-line-invisible)
(padding . 0.8)
- (meta . ((interfaces . (text-interface font-interface mark-interface side-position-interface))))
+ (meta . ((interfaces . (text-interface side-position-interface font-interface mark-interface self-alignment-interface))))
))
(MultiMeasureRest
(Y-offset-callbacks . (,Staff_symbol_referencer::callback))
(staff-position . 0)
(expand-limit . 10)
- (number-threshold . 0)
+ (number-threshold . 1)
(padding . 1)
(thickness . 6.6)
(font-family . number)
(meta . ((interfaces . (rhythmic-head-interface font-interface note-head-interface staff-symbol-referencer-interface))))
))
+ (TabNoteHead
+ . (
+ (font-family . roman)
+ (style . default)
+ (molecule-callback . ,tablature-molecule-callback)
+ (Y-offset-callbacks . (,Staff_symbol_referencer::callback))
+ (stem-attachment-function . ,tablature-stem-attachment-function)
+ (meta . ((interfaces . (rhythmic-head-interface font-interface note-head-interface staff-symbol-referencer-interface))))
+ ))
+
(Glissando
. (
(type . line)
(self-alignment-X . 0)
(text . "8")
(visibility-lambda . ,begin-of-line-visible)
- (X-offset-callbacks . (,Side_position_interface::centered_on_parent ,Side_position_interface::aligned_on_self))
+ (X-offset-callbacks . (,Self_alignment_interface::centered_on_parent ,Self_alignment_interface::aligned_on_self))
(Y-offset-callbacks . (,Side_position_interface::aligned_side))
(molecule-callback . ,Text_item::brew_molecule)
(font-shape . italic)
(font-family . roman)
- (meta . ((interfaces . (text-interface side-position-interface font-interface))))
+ (meta . ((interfaces . (text-interface self-alignment-interface side-position-interface font-interface))))
))
(PaperColumn
(width-correct . 0)
(outer . #t)
(direction . -1)
- (edge-width . (0.5 . 0.5))
+ (edge-widen . (0.5 . 0.5))
(edge-height . (1.0 . 1.0))
(shorten-pair . (0.0 . 0.0))
(thickness . 1.0)
- (meta . ((interfaces . (piano-pedal-interface))))
+ (meta . ((interfaces . (text-spanner-interface piano-pedal-interface))))
))
(RepeatSlash
(Script
. (
;; don't set direction here: it breaks staccato.
- (molecule-callback . ,Script::brew_molecule)
- (padding . 0.29)
- (X-offset-callbacks . (,Side_position_interface::centered_on_parent))
- (before-line-breaking-callback . ,Script::before_line_breaking)
+ (molecule-callback . ,Script_interface::brew_molecule)
+
+ ;; This value is sensitive: if too large, staccato dots will move a
+ ;; space a away.
+ (padding . 0.25)
+ ;; (script-priority . 0) priorities for scripts, see script.scm
+ (X-offset-callbacks . (,Self_alignment_interface::centered_on_parent))
+ (before-line-breaking-callback . ,Script_interface::before_line_breaking)
(font-family . music)
(meta . ((interfaces . (script-interface side-position-interface font-interface))))
))
(grace-space-factor . 0.6)
(shortest-duration-space . 2.0)
(spacing-increment . 1.2)
- (meta . ((interfaces . (spacing-spanner-interface))))
+ (base-shortest-duration . ,(make-moment 1 8))
+ (meta . ((interfaces . (spacing-interface spacing-spanner-interface))))
))
(SpanBar
. (
(breakable . #t)
(stem-spacing-correction . 0.4)
- (meta . ((interfaces . (staff-spacing-interface))))
+ (meta . ((interfaces . (spacing-interface staff-spacing-interface))))
))
(NoteSpacing
. (
(stem-spacing-correction . 0.5)
- (meta . ((interfaces . (note-spacing-interface))))
+ (meta . ((interfaces . (spacing-interface note-spacing-interface))))
))
(StaffSymbol
. (
(molecule-callback . ,Staff_symbol::brew_molecule)
(line-count . 5)
+ (ragged-right . #f)
(layer . 0)
(meta . ((interfaces . (staff-symbol-interface))))
))
. (
(molecule-callback . ,Text_item::brew_molecule)
(direction . 1)
- (X-offset-callbacks . (,Side_position_interface::aligned_on_self))
+ (X-offset-callbacks . (,Self_alignment_interface::aligned_on_self))
(no-spacing-rods . #t)
(padding . 0.0) ;; padding relative to SostenutoPedalLineSpanner
(pedal-type . mixed)
(font-family . roman)
(font-shape . italic)
(self-alignment-X . 0)
- (meta . ((interfaces . (text-interface font-interface))))
+ (meta . ((interfaces . (text-interface self-alignment-interface font-interface))))
))
(SostenutoPedalLineSpanner
(molecule-callback . ,Stem::brew_molecule)
(thickness . 1.3)
(beamed-lengths . (0.0 2.5 2.0 1.5))
+
+ ;;
(beamed-minimum-lengths . (0.0 1.5 1.25 1.0))
;; Stems in unnatural (forced) direction should be shortened,
(Y-offset-callbacks . (,Staff_symbol_referencer::callback))
(adjust-if-on-staffline . #t)
(font-family . music)
+ (avoid-note-head . #f)
+ (up-to-staff . #f)
(meta . ((interfaces . (stem-interface font-interface))))
))
(SeparationItem
. (
- (meta . ((interfaces . (separation-item-interface))))
+ (meta . ((interfaces . (spacing-interface separation-item-interface))))
))
(SeparatingGroupSpanner
. (
(spacing-procedure . ,Separating_group_spanner::set_spacing_rods)
- (meta . ((interfaces . (separation-spanner-interface))))
+ (meta . ((interfaces . (spacing-interface separation-spanner-interface))))
))
(SustainPedal
(direction . 1)
(padding . 0.0) ;; padding relative to SustainPedalLineSpanner
(pedal-type . text)
- (X-offset-callbacks . (,Side_position_interface::aligned_on_self))
- (meta . ((interfaces . (piano-pedal-interface text-spanner-interface text-interface side-position-interface font-interface))))
+ (X-offset-callbacks . (,Self_alignment_interface::aligned_on_self))
+ (meta . ((interfaces . (piano-pedal-interface text-spanner-interface text-interface self-alignment-interface font-interface))))
))
(SustainPedalLineSpanner
(no-spacing-rods . #t)
(direction . -1)
(padding . 0.5)
+ (script-priority . 200)
;; todo: add X self alignment?
(baseline-skip . 2)
(font-family . roman)
(width-correct . -1)
(direction . 1)
- (meta . ((interfaces . (text-spanner-interface font-interface))))
+ (meta . ((interfaces . (text-spanner-interface side-position-interface font-interface))))
))
(Tie
(breakable . #t)
(style . C)
(font-family . number)
- (meta . ((interfaces . (time-signature-interface font-interface))))
+ (meta . ((interfaces . (time-signature-interface break-aligned-interface font-interface))))
))
(TupletBracket
(gap . 2.0)
(padding . 0.9)
(thickness . 1.6)
+ (edge-widen . (0.0 . 0.0))
+ (edge-height . (0.7 . 0.7))
+ (shorten-pair . (-0.2 . -0.2))
(before-line-breaking-callback . ,Tuplet_bracket::before_line_breaking)
(after-line-breaking-callback . ,Tuplet_bracket::after_line_breaking)
(molecule-callback . ,Tuplet_bracket::brew_molecule)
(direction . 1)
(pedal-type . text)
(padding . 0.0) ;; padding relative to UnaCordaPedalLineSpanner
- (X-offset-callbacks . (,Side_position_interface::aligned_on_self))
- (meta . ((interfaces . (text-interface font-interface))))
+ (X-offset-callbacks . (,Self_alignment_interface::aligned_on_self))
+ (meta . ((interfaces . (text-interface self-alignment-interface font-interface))))
))
(UnaCordaPedalLineSpanner