]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-grobs.scm
Merge branch 'master' into lilypond/translation
[lilypond.git] / scm / define-grobs.scm
index 555403033926f26f479ca674858921480344e0fe..1a03e9df5bbafc26ce2edbf7edfc94d3a02021c9 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 ;;;; distances are given in line-thickness (thicknesses) and
        (X-offset . ,(grob::calc-property-by-copy 'X-offset)) 
        (Y-offset . ,(grob::calc-property-by-copy 'Y-offset)) 
        (meta . ((class . Item)
-                (interfaces . (text-interface
+                (interfaces . (balloon-interface
+                               text-interface
                                font-interface))))))
     (BarLine
      . (
                        ,(ly:make-simple-closure
                          (list ly:self-alignment-interface::x-aligned-on-self)))))
 
-       (self-alignment-X . 1)
+       (self-alignment-X . ,RIGHT)
 
        ;; want the bar number before the clef at line start. 
        (break-align-symbols . (left-edge staff-bar))
        (stencil . ,ly:beam::print)
        (clip-edges . #t)
        (cross-staff . ,ly:beam::calc-cross-staff)
-
-       (details .  ((hint-direction-penalty . 20)))
+       (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)
+           (round-to-zero-slope . 0.02)))
        ;; TODO: should be in SLT.
        (thickness . 0.48) ; in staff-space
        (neutral-direction . ,DOWN)
                 (object-callbacks . ((normal-stems . ,ly:beam::calc-normal-stems))) 
                 (interfaces . (staff-symbol-referencer-interface
                                unbreakable-spanner-interface
-                               beam-interface))))))
+                               beam-interface
+                               font-interface))))))
 
     (BendAfter
      . (
        (stencil . ,bend::print)
+       (minimum-length . 0.5)
        (thickness . 2.0)
        (meta . ((class . Spanner)
                 (interfaces . (spanner-interface
                               staff-bar
                               key-cancellation
                               key-signature
-                              staff
-                              time-signature custos)
+                              time-signature
+                              custos)
 
                              ;; begin of line
                              (
        ;; todo: add X self alignment?
        (baseline-skip . 2)
        (side-axis . ,Y)
-       (avoid-slur . outside )
+       (avoid-slur . outside)
        (font-series . bold)
        (meta . ((class . Item)
                 (interfaces . (text-script-interface
                        (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))))))
+                (interfaces  . (custos-interface
+                                staff-symbol-referencer-interface
+                                font-interface
+                                break-aligned-interface))))))
 
     (DotColumn
      . (
        (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)
 
     (FretBoard
      . ((stencil . ,fret-board::calc-stencil)
+       (after-line-breaking . ,ly:chord-name::after-line-breaking)
        (fret-diagram-details . ((finger-code . below-string)))
        (meta . ((class . Item)
                 (interfaces . (fret-diagram-interface
+                               rhythmic-grob-interface
+                                chord-name-interface
                                font-interface))))))
 
 
                                   (padding . 1.5)
                                      ))
                          ))
+       (after-line-breaking . ,ly:spanner::kill-zero-spanned-time)
        (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)
        (shortest-duration-space . 1.6)
        (meta . ((class . Spanner)
                 (interfaces . (grace-spacing-interface
-                               
                                spacing-options-interface
                                spanner-interface))))))
+
     (GridPoint
      . (
        (X-extent . (0 . 0))
      . (
        (stencil . ,ly:hairpin::print)
        (springs-and-rods . ,ly:spanner::set-spacing-rods)
-       (after-line-breaking . ,ly:hairpin::after-line-breaking)
+       (after-line-breaking . ,ly:spanner::kill-zero-spanned-time)
        (grow-direction . ,hairpin::calc-grow-direction)
        (circled-tip . #f)
        (to-barline . #t)
        (bound-padding . 1.0)
        (self-alignment-Y . ,CENTER)
        (Y-offset . ,ly:self-alignment-interface::y-aligned-on-self)
+       (Y-extent . ,ly:hairpin::height)
        (meta . ((class . Spanner)
                 (interfaces . (hairpin-interface
                                line-interface
        (meta . ((class . Spanner)
                 (interfaces . (system-start-text-interface
                                side-position-interface
+                               self-alignment-interface
                                font-interface))))))
 
     (InstrumentSwitch
        (side-axis . ,Y)
        (self-alignment-X . ,LEFT)
        (outside-staff-priority . 500)
-       (extra-spacing-width . '(+inf.0 . -inf.0))
+       (extra-spacing-width . (+inf.0 . -inf.0))
        (meta . ((class . Item)
                 (interfaces . (side-position-interface
+                               self-alignment-interface
+                               text-interface
                                font-interface))))))
 
     
        (meta . ((class . Item)
                 (interfaces . (key-cancellation-interface
                                key-signature-interface
+                               staff-symbol-referencer-interface
                                font-interface
                                break-aligned-interface))))))
 
        (non-musical . #t)
        (meta . ((class . Item)
                 (interfaces . (key-signature-interface
+                               staff-symbol-referencer-interface
                                font-interface
                                break-aligned-interface))))))
     
        (non-musical . #t)
        (line-break-permission . allow)
        (page-break-permission . allow)
+       (full-measure-extra-space . 1.0)
 
        ;; debugging stuff: print column number.
        ;;               (font-size . -6) (font-name . "sans")  (Y-extent . #f)
                 (interfaces . (paper-column-interface
                                axis-group-interface
                                separation-item-interface
-                               spaceable-grob-interface))))))
+                               spaceable-grob-interface
+                               font-interface))))))
 
     (NoteCollision
      . (
                                font-interface
                                note-head-interface
                                ledgered-interface
-                               staff-symbol-referencer-interface))))))
+                               staff-symbol-referencer-interface
+                               gregorian-ligature-interface
+                               mensural-ligature-interface
+                               vaticana-ligature-interface))))))
 
     (NoteSpacing
      . (
                 (interfaces . (paper-column-interface
                                separation-item-interface
                                axis-group-interface
-                               spaceable-grob-interface))))))
+                               spaceable-grob-interface
+                               font-interface))))))
 
     (ParenthesesItem
      . ((stencil . ,parentheses-item::print)
        (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
-                               ))))))
+                               percent-repeat-interface))))))
 
     (PercentRepeatCounter
      . (
        (horizontal-skylines . ,ly:separation-item::calc-skylines)
        (stencil . ,ly:separation-item::print)
        (meta . ((class . Item)
-                (interfaces . (
-                               separation-item-interface))))))
+                (interfaces . (separation-item-interface))))))
 
     (Slur
-     . ((details . ,default-slur-details)
+     . (
+       (details . ,default-slur-details)
        (control-points . ,ly:slur::calc-control-points)
        (direction . ,ly:slur::calc-direction)
        (springs-and-rods . ,ly:spanner::set-spacing-rods)
        
        (base-shortest-duration . ,(ly:make-moment 3 16))
        (meta . ((class . Spanner)
-                (interfaces . (
-                               spacing-options-interface                               
+                (interfaces . (spacing-options-interface
                                spacing-spanner-interface))))))
 
     (SpanBar
        (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 flagged stems should be longer
-           (lengths . (3.5 3.5 3.5 4.5 5.0))
+           ;; 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
        (self-alignment-X . ,CENTER)
        (self-alignment-Y . ,CENTER)
        (script-priority . 100)
-       (avoid-slur . outside)
+       (avoid-slur . around)
        (font-encoding . fetaNumber)
        (font-size . -5)                ; don't overlap when next to heads.
        (meta . ((class . Item)
        (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))))))
+                (interfaces  . (rhythmic-head-interface
+                                font-interface
+                                rhythmic-grob-interface
+                                note-head-interface
+                                staff-symbol-referencer-interface
+                                text-interface))))))
 
     (TextScript
      . (
        (meta . ((class . Item)
                 (interfaces . (text-script-interface
                                text-interface
+                               instrument-specific-markup-interface
                                side-position-interface
+                               self-alignment-interface
                                font-interface))))))
 
     (TextSpanner
                                   ))
                          (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))))))
 
                          ))
        
        (stencil . ,ly:line-spanner::print)
-
+       (after-line-breaking . ,ly:spanner::kill-zero-spanned-time)
        (style . trill)
        (staff-padding . 1.0)
        (padding . 0.5)
                                   (padding . 1.5)
                                      ))
                          ))
+       (after-line-breaking . ,ly:spanner::kill-zero-spanned-time)
        (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)
    ly:arpeggio::print
    ly:arpeggio::brew-chord-bracket
    ly:bar-line::print
+   ly:mensural-ligature::brew-ligature-primitive
    ly:note-head::print
    ly:dots::print
    ly:clef::print
     (,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:hairpin::height . ,ly:hairpin::pure-height)
     (,ly:stem::height . ,ly:stem::pure-height)
     (,ly:rest::height . ,ly:rest::pure-height)
     (,ly:grob::stencil-height . ,pure-stencil-height)
+    (,ly:self-alignment-interface::y-aligned-on-self . ,ly:self-alignment-interface::pure-y-aligned-on-self)
     (,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)