]> git.donarmstrong.com Git - lilypond.git/blobdiff - mf/feta-timesig.mf
release: 1.5.37
[lilypond.git] / mf / feta-timesig.mf
index 190bbe4d8f800647a9b66ef0246dd3c189aea30d..ef61ba2bd9ee427034aef81a82dfb9a83a93daab 100644 (file)
@@ -8,65 +8,93 @@
 
 fet_begingroup("timesig");
 
-def set_C_width =
-       save left_width, right_width;
-       left_width# := 1.0 staff_space#;
-       right_width# := 0.8 staff_space#;
-       define_pixels(left_width,right_width);
-enddef;
+
+%
+% originally by Mats B. nuked by Han-Wen, inspired by
+% Baerenreiter BA320 (Bach Cello Suites, Suite III)
+%
+% Notes:
+% 
+%  * the inside curve of the C is rather straight.
+%  * the outside curve of the C is rather round.
+%  * right tips of the C point slightly outward
+%  * lower tip protudes to the right very slightly.
+%
+
 
 def draw_C =
        save hair, bulb_rad, left_fatness;
+       save left_width, right_width;
+       save width;
 
+       width# := 1.8 staff_space#- stafflinethickness#;
+       define_pixels (width);
+
+       left_width# := 1.0 staff_space#;
+       right_width# := 0.8 staff_space#;
+       define_pixels(left_width,right_width);
   
        hair# := stafflinethickness#;
        bulb_rad# := 0.4 staff_space#;
        define_pixels(hair, bulb_rad);
        left_fatness = 0.55;
        
-       x1r = x5r;
+       x1r - x3r = width;
+       x3r = 0.0;
        y1r = .45 staff_space;
-       z2 = (0, staff_space);
-       z3r = (-left_width, 0);
-       z4 = (0, -staff_space);
-       z5r = (right_width - stafflinethickness, -0.4 staff_space);
-       
+       y2 = -y4 = staff_space;
+       x2 = x4;
+       x2 = x3r + staff_space;
+       y3r = 0;
+
+       x5r = x1r + 0.3 stafflinethickness;
+       y5r = -0.37 staff_space;
+       z6l = z1l;
+
        penpos1(hair, 10);
        penpos2(stafflinethickness, 90);
        penpos3(left_fatness * staff_space, 180);
        penpos4(stafflinethickness, -90);
-       penpos5(hair, -5);
-       z6l = z1l;
-       penpos6(hair, 0);
+       penpos5(hair, -13);
+       penpos6(hair, 10);
        
        draw_bulb(-1, z6l,  z6r, bulb_rad, .8);
 
-       fill z1l{dir (100)} .. z2l{left} .. z3l{down} .. z4l{right} ..
-       simple_serif(z5l, z5r, -90) .. 
-       z4r{left} .. z3r{up} .. z2r{right} .. {dir (-80)}z1r -- cycle;
+       save s ;
+       s := 0.735;
+       fill z1l{dir (100)}
+               .. z2l{left}
+                       .. tension 0.8
+               .. z3l{down} .. tension 0.8 .. z4l{right} ..
+               simple_serif(z5l, z5r, -90) .. 
+               z4r{left}
+                       .. super_curvelet (z4r,z3r,s,-1)
+                       ..  z3r{up}
+                       .. super_curvelet (z3r,z2r,s, 1)
+                       .. z2r{right} .. {dir (-80)}z1r -- cycle;
        
+       set_char_box(0, width#, staff_space#, staff_space#);
+
        penlabels(1,2,3,4,5,6);
 enddef;
 
 fet_beginchar ("4/4 meter", "C4/4", "fourfourmeter")
-       set_C_width;
-       set_char_box(left_width# + staff_space#, right_width# + staff_space#, 
-               staff_space#, staff_space#);
-
        draw_C;
 fet_endchar;
 
 fet_beginchar ("2/2 meter", "C2/2", "allabreve")
-       set_C_width;
-       set_char_box(left_width# + staff_space#, right_width# + staff_space#, 
-               1.4 staff_space#, 1.4 staff_space#);
-       
+
        draw_C;
        save excentricity;
        pair excentricity;
-       excentricity = (-1.25 stafflinethickness, 0);
 
-       draw_block((- .75 stafflinethickness, -d) + excentricity, (.75 stafflinethickness , h) + excentricity);
+       xpart   excentricity = x2 -1.25 stafflinethickness;
+       ypart excentricity = 0;
+
+       save stemlen ;
+       stemlen = 1.4 staff_space;
+
+       draw_block((- .75 stafflinethickness, - stemlen) + excentricity, (.75 stafflinethickness , stemlen) + excentricity);
 fet_endchar;
 
 fet_endgroup("timesig");