]> git.donarmstrong.com Git - lilypond.git/commitdiff
''
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 3 May 2002 22:00:01 +0000 (22:00 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 3 May 2002 22:00:01 +0000 (22:00 +0000)
ChangeLog
Documentation/regression-test.tely
input/regression/dynamics-glyphs.ly
input/regression/slur-rest.ly [new file with mode: 0644]
lily/dynamic-engraver.cc
lily/slur.cc
lily/stem.cc
mf/feta-din-code.mf
mf/feta-klef.mf
scm/grob-description.scm

index 2c9979a6c74a5eb48f0cc57739a42496701cbf6e..c779f3008208c0b71d230c2fd48ff491d6295c45 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2002-05-03  Han-Wen  <hanwen@cs.uu.nl>
+
+       * mf/feta-klef.mf: more twiddling with G clef. Almost straight
+       downstroke again. Sigh.
+
+       * lily/dynamic-engraver.cc (acknowledge_grob): center dynamic
+       script on note head.
+
+2002-05-02  Han-Wen  <hanwen@cs.uu.nl>
+
+       * lily/slur.cc (add_column): allow slur over rest. 
+
 2002-04-27  Han-Wen  <hanwen@cs.uu.nl>
 
        * lily/beam.cc: move scoring constants out of code
index b81d005a49f42e803e0e141fd6c000674cec0be7..a546114a64b55191772d940a45ae7de777a34bb2 100644 (file)
@@ -191,6 +191,7 @@ Grace note do weird things with timing. Fragile.
 
 @lilypondfile[printfilename]{slur-staccato.ly}
 
+@lilypondfile[printfilename]{slur-rest.ly}
 
 @section Ties
 
index ed6d268a016f6f054597274cb37221a85c9193c7..da43da879be6e927b61dcd62d163083b3f8f56da 100644 (file)
@@ -1,16 +1,17 @@
 
-\header {texidoc =
-"Dynamic letters are kerned, and their weight matches that
-of the hairpin signs."
-}
+\header {texidoc = "Dynamic letters are kerned, and their weight
+matches that of the hairpin signs.  The dynamic scripts should be
+horizontally centered on the note head."  }
+
 \score {
     
-\notes\relative c'' { c4-\ff
+\notes\relative c'' { c1-\ff
                      c \f
                      c \rfz                  
                      c \mf
                      c \mp \> \!
-                     c \pp \< \!
+                     c \ppppp \< \!
                      c \sfp
+                     
 }
 }
diff --git a/input/regression/slur-rest.ly b/input/regression/slur-rest.ly
new file mode 100644 (file)
index 0000000..e8477fb
--- /dev/null
@@ -0,0 +1,17 @@
+\header
+{
+    texidoc ="Slurs may be placed over rest. The slur will avoid colliding with
+the rest
+
+"
+}
+\score{ \notes  { \stemDown c'4 ( r4 ) c'2
+
+                 \relative c'' { 
+       % Finish with F if played separately 
+       c8-.(   r c,-. r ) c4 r4|  }
+                 
+
+             }
+\paper { linewidth = -1. }
+    }
index 05c5a04ba7b395d42b493034b1c77ba6267b300f..22f19477e9717d41f17c23003e1c6230c8bce787 100644 (file)
@@ -144,8 +144,6 @@ Dynamic_engraver::process_music ()
          if (script_req_l_)
            rq =  script_req_l_ ;
          announce_grob(line_spanner_, rq ? rq->self_scm(): SCM_EOL);
-                        
-
        }
     }
   
@@ -402,6 +400,12 @@ Dynamic_engraver::acknowledge_grob (Grob_info i)
          Side_position_interface::add_support (line_spanner_,i.grob_l_);
          add_bound_item (line_spanner_,dynamic_cast<Item*> (i.grob_l_));
        }
+
+      if (script_p_ && !script_p_->get_parent (X_AXIS))
+       {
+         script_p_->set_parent (i.grob_l_,  X_AXIS);
+       }
+      
     }
 }
 ENTER_DESCRIPTION(Dynamic_engraver,
index 4cc43ecf18cafa34eed221e09525caab83bd17e2..716bcff34b9b6dbe4ab29b8a11ce31a58a034e92 100644 (file)
@@ -50,12 +50,10 @@ void
 Slur::add_column (Grob*me, Grob*n)
 {
   if (!gh_pair_p (n->get_grob_property ("note-heads")))
-    me->warning (_ ("Putting slur over rest.  Ignoring rest."));
-  else
-    {
-      Pointer_group_interface::add_grob (me, ly_symbol2scm ("note-columns"), n);
-      me->add_dependency (n);
-    }
+    me->warning (_ ("Putting slur over rest."));
+
+  Pointer_group_interface::add_grob (me, ly_symbol2scm ("note-columns"), n);
+  me->add_dependency (n);
 
   add_bound_item (dynamic_cast<Spanner*> (me), dynamic_cast<Item*> (n));
 }
index 2b0874291e432a15b43b55ace5cfc8a1b8ae41ba..cd20c2397e38331f4b4b8ed5fc58fb0cb1d37428 100644 (file)
@@ -160,7 +160,10 @@ Stem::head_count (Grob*me)
 Grob*
 Stem::first_head (Grob*me)
 {
-  return extremal_heads (me)[-get_direction (me)];
+  Direction d = get_direction (me);
+  if (!d)
+    return 0;
+  return extremal_heads (me)[-d];
 }
 
 /*
index 24f0e65747138bfd382ba1a815be7dc2867295ad..e457b64ad2cedb7af31b1a741bb32cc35c0265d7 100644 (file)
@@ -693,7 +693,7 @@ fet_endchar ;
 
 %%% KERNING
 
-ligtable "m" : "p" kern 0.15 ex#, "f" kern -0.1 ex#;
+ligtable "m" : "p" kern 0.2 ex#, "f" kern -0.1 ex#;
 ligtable "f" : "f" kern -0.13 ex#;
 ligtable "r" : "f" kern 0.1 ex#;
 
index a85736dd8189455afc88741c50f76e96b604cf81..1ed1d987ea58da1894f637e0f1c592adfda97893 100644 (file)
@@ -336,27 +336,28 @@ def draw_gclef (expr exact_center, reduction)=
        z6 = center + whatever * downstroke_dir;
        y6 = ypart center + 2 reduced_ss;
 
-       z7l - z6 = whatever *(z5- z6) ;
+       z7l - z6 = whatever * (z5 - z6) ;
        y7l = 3.5 reduced_ss;
 
        x9 = .7 [x10, x7r];
        top y9l = 5 reduced_ss;
 
-       y11 = ypart center  - 20/14 reduced_ss;
-       y12 = ypart center  - 34/14 reduced_ss;
+       y11 = ypart center  - 47/28 reduced_ss;
+       y12 = ypart center  - 71/28 reduced_ss;
        y13 = .48 [y12,y4r];
        x11 - x13r  = 1.5 reduced_ss + 0.5 thinnib;
        x12r = xpart (.45 [z13r , z11] + .75 reduced_ss * downstroke_dir) ;
 
-       z10=  center + whatever * dir (downstroke_angle + .5);
-       y10 = ypart center + 3.35  reduced_ss;
+%      z10=  center + whatever * dir (downstroke_angle - 1.5 );
+       x10 = x6 - 2 thinnib;
+       y10 = ypart center + 3.5  reduced_ss;
        y10l  - y10r = 1.2 thickness;
        z10r - z10l =
-               .9 thinnib* dir (downstroke_angle + 90) + whatever *downstroke_dir;
+               .7 thinnib* dir (downstroke_angle + 90) + whatever * downstroke_dir;
 
        z10 = .5 [z10l, z10r];
 
-       z11 =  center + whatever * downstroke_dir + (.2 reduced_ss, 0);
+       z11 =  center + whatever * downstroke_dir +  ( .05 reduced_ss, 0);
 
        penpos1(thinnib, inner_start_angle);
        penpos2(thickness, 90);
@@ -364,7 +365,7 @@ def draw_gclef (expr exact_center, reduction)=
        penpos4(thinnib, -90);
 
 
-       penpos9(1.4 thickness, -70);  
+       penpos9(1.45 thickness, -70);  
        save lipje;
        pair lipje;
        lipje= .5 [z9l, z9r] +  .25 ((z9r- z9l)  rotated -90);
@@ -390,11 +391,12 @@ def draw_gclef (expr exact_center, reduction)=
                z1r -- z1l 
                .. tension 0.85 ..cycle;
 
-       save p, staffline_time, q, down_staff_line_intersection;
-       path p,q;
+       save p, staffline_time, staff_line_path, down_staff_line_intersection;
+       path p, staff_line_path;
        pair down_staff_line_intersection;
        p := z4{left} .. z5{up} .. z7{up} ;
-       q := (-reduced_ss, 2 reduced_ss) ..  (2 reduced_ss,2 reduced_ss);
+
+       staff_line_path := (-reduced_ss, 2 reduced_ss) ..  (2 reduced_ss,2 reduced_ss);
 
        draw p;
 
@@ -411,12 +413,14 @@ def draw_gclef (expr exact_center, reduction)=
        penpos12(thinnib, bot_angle + 90);
 
        p := z9 .. z10{down}
-               ..  z11{dir (-87)}
+               .. z6
+               .. (.52 [z4, z3])
+               .. z11{down}
                .. z12{dir(bot_angle)}
                .. z13{up}
        ;
        save down_intersection_t;       
-       down_intersection_t :=  xpart (p intersectiontimes  q) ;
+       down_intersection_t :=  xpart (p intersectiontimes  staff_line_path) ;
        down_staff_line_intersection = point down_intersection_t of p;
        z14 = down_staff_line_intersection;
        penpos14(thinnib, angle (direction down_intersection_t of p) + 90);
@@ -427,7 +431,7 @@ def draw_gclef (expr exact_center, reduction)=
 
        save loop_end_dir;
        pair loop_end_dir;
-       loop_end_dir = direction (xpart (p intersectiontimes q)) of p;
+       loop_end_dir = direction (xpart (p intersectiontimes staff_line_path)) of p;
        draw p;
 
        penpos6(thinnib, angle (loop_end_dir) + 90);
index 5a93c2a8d4c3e0973d00a25922366c4161f3d6cd..afb13ffdedb9b08572b61685c9627b8a0c071e3e 100644 (file)
      . (
        (Y-offset-callbacks . (,Self_alignment_interface::aligned_on_self))
        (molecule-callback . ,Text_item::brew_molecule)
-       (X-offset-callbacks . (,Self_alignment_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)