]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-grobs.scm
* The grand 2005-2006 replace.
[lilypond.git] / scm / define-grobs.scm
index e2c00936f75e652f501667b068ec0c9207fa670c..9a3a8432f2afdae5e8d503837f59bb9bcda87642 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 1998--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+;;;; (c) 1998--2006 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 ;;;; distances are given in linethickness (thicknesses) and
     (AccidentalSuggestion
      . (
        (stencil . ,Accidental_interface::print)
-       (X-offset . ,(ly:make-simple-closure `(,+ ,(ly:make-simple-closure (list Self_alignment_interface::centered_on_x_parent))
-                                                 ,(ly:make-simple-closure (list Self_alignment_interface::x_aligned_on_self)))))
+       (X-offset . ,(ly:make-simple-closure
+                     `(,+
+                       ,(ly:make-simple-closure (list Self_alignment_interface::centered_on_x_parent))
+                       ,(ly:make-simple-closure (list Self_alignment_interface::x_aligned_on_self)))))
        (self-alignment-X . ,CENTER)
        (cautionary . #t)
        (cautionary-style . smaller)
        (font-family . music)
        (padding . 0.5)
        (X-offset . ,Side_position_interface::x_aligned_side)
-       (direction . -1)
+       (direction . ,LEFT)
        (cautionary-style . parentheses)
 
        (stencil . ,Accidental_interface::print)
                                ledgered-interface))))))
 
     (Arpeggio
-     . (
-
-       (X-extent . ,Arpeggio::width)
+     . ((X-extent . ,Arpeggio::width)
        (stencil . ,Arpeggio::print)
-
        (Y-offset . ,Staff_symbol_referencer::callback)
        (X-offset . ,Side_position_interface::x_aligned_side)
-       (direction . -1)
+       (direction . ,LEFT)
        (padding . 0.5)
        (side-axis . ,X)
        (staff-position . 0.0)
        (breakable . #t)
        (break-visibility . ,begin-of-line-visible)
        (padding . 1.0)
-       (direction . 1)
+       (direction . ,UP)
        (font-family . roman)
        (font-size . -2)
        (Y-offset . ,Side_position_interface::y_aligned_side)
        ))
 
     (BassFigure
-     . (
-
-       (stencil . ,Text_interface::print)
-
-       (Y-offset . ,Self_alignment_interface::y_aligned_on_self)
-       (direction . 1)
-       (font-family . number)
-
-       ;; We must do this, other BFs in
-       ;; layout16 become too small.
-       (font-size . -4)
-       (kern . 0.2)
-       (meta . ((class . Item)
-                (interfaces . (text-interface
-                               rhythmic-grob-interface
-                               bass-figure-interface
-                               self-alignment-interface
-                               font-interface))))))
-
-    (NewBassFigure
      . (
        ;
        (stencil . ,Text_interface::print)
        (quantized-positions . ,Beam::set_stem_lengths)
        (concaveness . ,Beam::calc_concaveness)
        (direction . ,Beam::calc_direction)
+       (shorten . ,Beam::calc_stem_shorten)
+       (beaming . ,Beam::calc_beaming)
        (stencil . ,Beam::print)
 
        ;; TODO: should be in SLT.
        (thickness . 0.48) ; in staff-space
-       (neutral-direction . -1)
+       (neutral-direction . ,DOWN)
 
        ;; Whe have some unreferenced problems here.
        ;;
        (no-spacing-rods . #t)
        (Y-offset . ,Side_position_interface::y_aligned_side)
        (X-offset . ,Self_alignment_interface::x_aligned_on_self)
-       (direction . 1)
+       (direction . ,UP)
        (padding . 0.5)
        (staff-padding . 0.5)
        (script-priority . 200)
 
        (break-visibility . ,end-of-line-visible)
        (style . vaticana)
-       (neutral-direction . -1)
+       (neutral-direction . ,DOWN)
        (Y-offset . ,Staff_symbol_referencer::callback)
        (space-alist . (
                        (first-note . (minimum-fixed-space . 0.0))
        (font-encoding . fetaNumber)
        (self-alignment-X . 0)
        (font-size . -2) 
-       (direction . 1)
+       (direction . ,UP)
        (padding . 0.2)
        (staff-padding . 0.25)
        (side-axis . ,Y)
        (avoid-slur . outside)
        (slur-padding . 0.3)
        (minimum-space . 1.2)
-       (direction . -1)
+       (direction . ,DOWN)
        (side-axis . ,Y)
 
        (Y-extent . ,Axis_group_interface::height)
        (font-series . bold)
        (font-encoding . fetaDynamic)
        (font-shape . italic)
+       (avoid-slur . around)
        (no-spacing-rods . #t)
        (script-priority . 100)
        (meta . ((class . Item)
        (Y-offset . ,Side_position_interface::y_aligned_side)
        (padding . 0.2)
        (staff-padding . 0.2)
-       (direction . -1)
+       (direction . ,DOWN)
        (side-axis . ,Y)
        (bracket-flare . (0.5 . 0.5))
        (meta . ((class . Spanner)
        
        ;; This direction is for aligned_on_support_refpoints
        ;; (?) --hwn
-       (direction . 0)
+       (direction . ,CENTER)
        (space-alist . (
                        (left-edge . (extra-space . 1.0))))
 
        ;; ugh.  A ligature bracket is totally different from
        ;; a tuplet bracket.
 
-       (direction  . ,Tuplet_bracket::calc_direction)
-       (positions . ,Tuplet_bracket::calc_positions)
-       (stencil . ,Tuplet_bracket::print)
-       
-       (direction . 1)
-       (gap . 0.0)
        (padding . 2.0)
        (thickness . 1.6)
        (edge-height . (0.7 . 0.7))
        (shorten-pair . (-0.2 . -0.2))
+       (direction . ,UP)
+       (positions . ,Tuplet_bracket::calc_positions)
+       (stencil . ,Tuplet_bracket::print)
+       
        (meta . ((class . Spanner)
                 (interfaces . (tuplet-bracket-interface
                                line-interface))))))
        (dash-period . 10.0)
        (length . 0.66)
        (minimum-length . 0.3)
+       (minimum-distance . 0.1)
        (padding . 0.07)
-                                       ;       (springs-and-rods . ,Hyphen_spanner::set_spacing_rods)
-
+       (springs-and-rods . ,Hyphen_spanner::set_spacing_rods)
+       
        (stencil . ,Hyphen_spanner::print)
 
        (Y-extent . (0 . 0))
        (meta . ((class . Spanner)
                 (interfaces . (lyric-interface
+                               font-interface
                                lyric-hyphen-interface
                                spanner-interface))))))
 
                 (interfaces . (lyric-interface
                                lyric-extender-interface))))))
 
+    (LyricSpace
+     . ((minimum-distance . 0.3)
+       (springs-and-rods . ,Hyphen_spanner::set_spacing_rods)
+       (padding . 0.0)
+       (Y-extent . #f)
+       (X-extent . #f)
+       (meta . ((class . Spanner)
+                (interfaces . (spanner-interface
+                               lyric-hyphen-interface spacing-interface))
+                ))
+       ))
     (LyricText
      . (
 
                                text-interface
                                font-interface))))))
 
+
+    (MeasureGrouping
+     . (
+       (Y-offset . ,Side_position_interface::y_aligned_side)
+       (side-axis . ,Y)
+
+       (stencil . ,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))))))
+
+    (MelodyItem
+     . (
+       (neutral-direction . ,DOWN)
+       (meta . ((class . Item)
+                (interfaces . (melody-spanner-interface spacing-interface))))))
     (MensuralLigature
      . (
        (thickness . 1.4)
        (stencil . ,Text_interface::print)
 
        (Y-offset . ,Side_position_interface::y_aligned_side)
-       (direction . 1)
+       (direction . ,UP)
        (padding . 0.8)
        (side-axis . ,Y)
        (meta . ((class . Item)
                                font-interface
                                metronome-mark-interface))))))
 
-    (MeasureGrouping
-     . (
-       (Y-offset . ,Side_position_interface::y_aligned_side)
-       (side-axis . ,Y)
-
-       (stencil . ,Measure_grouping::print)
-
-       (padding . 2)
-       (direction . 1)
-       (thickness . 1)
-       (height . 2.0)
-       (staff-padding . 3)
-       (meta . ((class . Spanner)
-                (interfaces . (side-position-interface
-                               measure-grouping-interface))))))
 
     (MultiMeasureRest
      . (
-
        (stencil . ,Multi_measure_rest::print)
-
+       (springs-and-rods . ,Multi_measure_rest::set_spacing_rods)
        (Y-offset . ,Staff_symbol_referencer::callback)
        (staff-position . 0)
        (expand-limit . 10)
        (side-axis . ,Y)
 
        (self-alignment-X . 0)
-       (direction . 1)
+       (direction . ,UP)
        (padding . 0.4)
        (staff-padding . 0.4)
        (font-encoding . fetaNumber)
        
        (Y-offset . ,Side_position_interface::y_aligned_side)
        (self-alignment-X . 0)
-       (direction . 1)
+       (direction . ,UP)
        (padding . 0.2)
        (staff-padding . 0.25)
        (meta . ((class . Spanner)
        (minimum-length . 1.0)
        (dash-fraction . 0.3)
        (edge-height . (0 . 1.2))
-       (direction . 1)
+       (direction . ,UP)
        (meta . ((class . Spanner)
                 (interfaces . (ottava-bracket-interface
                                horizontal-bracket-interface
                                spaceable-grob-interface))))))
 
     (PhrasingSlur
-     . ((slur-details . ,default-slur-details)
+     . ((details . ,default-slur-details)
 
        (control-points . ,Slur::calc_control_points)
        (direction . ,Slur::calc_direction)
                           ,(ly:make-simple-closure (list Self_alignment_interface::x_aligned_on_self)))))
        (Y-offset . ,Side_position_interface::y_aligned_side)
        (self-alignment-X . 0)
-       (direction . 1)
+       (direction . ,UP)
        (padding . 0.2)
        (staff-padding . 0.25)
        (font-size . -2) 
 
        (style . line)
        (bound-padding . 1.0)
-       (direction . -1)
+       (direction . ,DOWN)
        (bracket-flare . (0.5 . 0.5))
        (edge-height . (1.0 . 1.0))
        (shorten-pair . (0.0 . 0.0))
 
     (RehearsalMark
      . (
-
        (stencil . ,Text_interface::print)
-
-       (X-offset . ,Self_alignment_interface::x_aligned_on_self)
+       (X-offset . ,(ly:make-simple-closure
+                     `(,+ ,(ly:make-simple-closure
+                            `(,Self_alignment_interface::x_aligned_on_self))
+                          ,(ly:make-simple-closure
+                            `(,Self_alignment_interface::centered_on_x_parent)))
+                     ))
        (Y-offset . ,Side_position_interface::y_aligned_side)
-
-       (after-line-breaking . ,shift-right-at-line-begin)
-
        (self-alignment-X . 0)
-       (direction . 1)
+       (direction . ,UP)
        (breakable . #t)
        (font-size . 2)
        (baseline-skip . 2)
                 (interfaces . (percent-repeat-interface))))))
     (Rest
      . (
-
        (stencil . ,Rest::print)
        (X-extent . ,Rest::width)
        (Y-extent . ,Rest::height)
                                separation-spanner-interface))))))
 
     (Slur
-     . ((slur-details . ,default-slur-details)
+     . ((details . ,default-slur-details)
 
        (control-points . ,Slur::calc_control_points)
        (direction . ,Slur::calc_direction)
 
        (stencil . ,Text_interface::print)
 
-       (direction . 1)
+       (direction . ,RIGHT)
        (X-offset . ,Self_alignment_interface::x_aligned_on_self)
        (no-spacing-rods . #t)
        (padding . 0.0) ;; padding relative to SostenutoPedalLineSpanner
 
        (padding . 1.2)
        (minimum-space . 1.0)
-       (direction . -1)
+       (direction . ,DOWN)
        (meta . ((class . Spanner)
                 (interfaces . (piano-pedal-interface
                                axis-group-interface
     (Stem
      . (
        (direction . ,Stem::calc_direction)
+       (default-direction . ,Stem::calc_default_direction)
        (stem-end-position . ,Stem::calc_stem_end_position)
        (stem-info . ,Stem::calc_stem_info)
        (positioning-done . ,Stem::calc_positioning_done)
 
 
        ;; default stem direction for note on middle line
-       (neutral-direction . -1)
+       (neutral-direction . ,DOWN)
 
        ;; We use the normal minima as minimum for the ideal lengths,
        ;; and the extreme minima as abolute minimum length.
        (no-spacing-rods . #t)
        (stencil . ,Sustain_pedal::print)
        (self-alignment-X . 0)
-       (direction . 1)
+       (direction . ,RIGHT)
        (padding . 0.0)  ;; padding relative to SustainPedalLineSpanner
        (X-offset . ,Self_alignment_interface::x_aligned_on_self)
        (meta . ((class . Item)
        (padding . 1.2)
        (staff-padding . 1.2)
        (minimum-space . 1.0)
-       (direction . -1)
+       (direction . ,DOWN)
        (meta . ((class . Spanner)
                 (interfaces . (piano-pedal-interface
                                axis-group-interface
 
     (SystemStartBrace
      . (
-       (glyph . "brace")
+       (style . brace)
+       (padding . 0.3)
        (stencil . ,System_start_delimiter::print)
        (collapse-height . 5.0)
+       (X-offset . ,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))))))
 
+    (SystemStartSquare
+     . (
+       (Y-extent . #f)
+       (X-offset . ,Side_position_interface::x_aligned_side)
+       (direction . ,LEFT)
+       (stencil . ,System_start_delimiter::print)
+       (style . line-bracket)
+       (thickness . 1.0)
+       (meta . ((class . Spanner)
+                (interfaces . (font-interface
+                               side-position-interface
+                               system-start-delimiter-interface))))))
     (SystemStartBracket
      . (
        (Y-extent . #f)
-       (X-offset . -0.8)
+       (padding . 0.8)
+       (X-offset . ,Side_position_interface::x_aligned_side)
+       (direction . ,LEFT)
        (stencil . ,System_start_delimiter::print)
-       (glyph . "bracket")
+       (style . bracket)
        (collapse-height . 5.0)
        (thickness . 0.45)
        (meta . ((class . Spanner)
                 (interfaces . (font-interface
+                               side-position-interface
                                system-start-delimiter-interface))))))
 
     (SystemStartBar
      . (
        (Y-extent . #f)
-       (glyph . "bar-line")
+       (padding . 0.0)
+       (X-offset . ,Side_position_interface::x_aligned_side)
+       (direction . ,LEFT)
+       (style . bar-line)
        (thickness . 1.6)
        (stencil . ,System_start_delimiter::print)
        (meta . ((class . Spanner)
-                (interfaces . (system-start-delimiter-interface))))))
+                (interfaces . (side-position-interface
+                               system-start-delimiter-interface))))))
+
 
     (TabNoteHead
      . (
        (meta . ((class . Item)
                 (interfaces
                  . (rhythmic-head-interface
-                    font-interface
+                    font-interface rhythmic-grob-interface
                     note-head-interface
                     staff-symbol-referencer-interface
                     text-interface))))))
      . (
        (no-spacing-rods . #t)
        (X-offset . ,Self_alignment_interface::x_aligned_on_self)
-       (direction . -1)
+       (direction . ,DOWN)
 
        ;; sync with Fingering ?
        (padding . 0.5)
     (TextSpanner
      . (
        (stencil . ,Text_spanner::print)
+       (Y-offset . ,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 . 1)
+       (direction . ,UP)
        (meta . ((class . Spanner)
                 (interfaces . (text-spanner-interface
                                side-position-interface
     (Tie
      . (
        (control-points . ,Tie::calc_control_points)
+       (avoid-slur . inside)
        (direction . ,Tie::calc_direction)
        (stencil . ,Tie::print)
        (details . ((ratio . 0.333)
        (style . trill)
        (staff-padding . 1.0)
        (padding . 0.5)
-       (direction . 1)
+       (direction . ,UP)
        (Y-offset . ,Side_position_interface::y_aligned_side)
        (side-axis . ,Y)
        (meta . ((class . Spanner)
        (thickness . 1.6)
        (edge-height . (0.7 . 0.7))
        (shorten-pair . (-0.2 . -0.2))
+       (staff-padding . 0.25)
+       
        (direction  . ,Tuplet_bracket::calc_direction)
        (positions . ,Tuplet_bracket::calc_positions)
+       (connect-to-neighbor . ,Tuplet_bracket::calc_connect_to_neighbors)
+       (control-points . ,Tuplet_bracket::calc_control_points)
        (stencil . ,Tuplet_bracket::print)
+       
+       (meta . ((class . Spanner)
+                (interfaces . (line-interface
+                               tuplet-bracket-interface))))))
+
+    (TupletNumber
+     . (
+       (stencil . ,Tuplet_number::print)
        (font-shape . italic)
        (font-size . -2)
+       (avoid-slur . inside)
        (meta . ((class . Spanner)
-                (interfaces . (text-interface
-                               line-interface
-                               tuplet-bracket-interface
+                (interfaces . (text-interface tuplet-number-interface
                                font-interface))))))
-
+    
     (UnaCordaPedal
      . (
        (stencil . ,Text_interface::print)
        (font-shape . italic)
        (no-spacing-rods . #t)
        (self-alignment-X . 0)
-       (direction . 1)
+       (direction . ,RIGHT)
        (padding . 0.0)  ;; padding relative to UnaCordaPedalLineSpanner
        (X-offset . ,Self_alignment_interface::x_aligned_on_self)
        (meta . ((class . Item)
        (padding . 1.2)
        (staff-padding . 1.2)
        (minimum-space . 1.0)
-       (direction . -1)
+       (direction . ,DOWN)
        (meta . ((class . Spanner)
                 (interfaces . (piano-pedal-interface
                                axis-group-interface
      . (
        (breakable . #t)
        (Y-offset . ,Side_position_interface::y_aligned_on_support_refpoints)
-       (direction . 0)
+       (direction . ,CENTER)
        (space-alist . ((left-edge . (extra-space . 1.0))))
        (break-align-symbol . instrument-name)
        (stencil . ,Text_interface::print)