]> git.donarmstrong.com Git - lilypond.git/blobdiff - mf/feta-pendaal.mf
Imported sources
[lilypond.git] / mf / feta-pendaal.mf
index 2fa526a1350cacbcfd5ddd83dd130482d907d789..d509130ad9d557741a7a5e46225ca5e196f05cab 100644 (file)
@@ -5,7 +5,7 @@
 %
 % source file of the Feta (not the Font-En-Tja) music font
 % 
-% (c) 2000 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 2000--2004 Jan Nieuwenhuizen <janneke@gnu.org>
 %
 % Voor Cup
 
@@ -19,9 +19,10 @@ fet_begingroup("pedal")
 pedalpha = 40;
 pedbeta = 25;
 
-penh#=0.7stafflinethickness#;
-penw#=4penh#;
-%penw#=penh#;
+penh#=0.7linethickness#;
+
+penw# = 2penh# + 0.14 staff_space#;
+
 define_pixels (penh,penw);
 
 pedalh# = 2staff_space#;
@@ -31,49 +32,57 @@ define_pixels (pedalh,pedalbh);
 % code values for own pedal font commented out
 % code := 41;  % * = 42
 
-def draw_asterisk_bulb (expr w, h, i) =
-       begingroup;
-       clearxy;
-       save bulb, p;
+fet_beginchar("Pedal asterisk", "*", "pedalasterisk")
+       set_char_box(0, 7/9pedalh#, 0, pedalh#);
+       z0 = (1/2w, h - 1/2w);
+       save bulb, p, radius, thin;
        path p;
-       bulb = 4/3penw;
+
+       thin = 0.8 linethickness;
+
+       bulb + 2 radius = w;
+       0.9 thin +  bulb = (radius * pi * 2) / 8;
 
        pickup pencircle scaled penh;
        penpos 1 (bulb, 180);
        penpos 2 (bulb, 0);
-       penpos 3 (penh, 0);
-       penpos 4 (penw, 0);
+       penpos 3 (thin, 0);
 
-       z0 = (1/2w, h - 1/2w);
-       z1 = (1/2w, h-1/2bulb);
+       z1 = z0 + (0,radius);
        z2 = z1;
-       z3 = (x1, y1-penw);
-       z4 = (x1, y3-2penh);
+
+       save inner_r ;
+       inner_r = .45 radius ;
+
+       z4l = z0 + inner_r * dir (90 + 360/16);
+       z4r = z0 + inner_r * dir (90 - 360/16);
+
+       z4 = .5 [z4l,z4r];
+       z3 = .75 [z1,z4];
+
 
        penlabels (1,2,3,4);
-%      penstroke z1e{up}..z2e{down}..z3e{down}..z4e;
-       p = z1l{up}..z2l{down}..z3l{down}..z4l..z4r
-               ..z3r{up}..z2r{up}..z1r{down}..cycle;
-       p := p rotatedaround (z0, 360/8i);
-       fill p;
-       endgroup;
-       enddef;
 
-fet_beginchar("Pedal asterisk", "*", "pedal-asterisk")
-       set_char_box(0, 7/9pedalh#, 0, pedalh#);
-       z0 = (1/2w, h - 1/2w);
-       for i = 0 upto 7:
-               draw_asterisk_bulb (w, h, i);
-               pickup pencircle scaled penw;
-               undraw z0;
-       endfor
+       %% what is empty path? 
+       p = z3r{up} ..  z1l{up}..z2l{down}..z3l{down} .. z4l{dir (180 + 360/16)}; 
+       for i = 1 upto 7:
+               p := p ... ((z3r{up}.. z1l{up}..z2l{down}..z3l{down}..z4l{dir (180 + 360/16)}) 
+               rotatedaround (z0, 360/8i));
+               endfor
+
+       p := p .. cycle;
+       fill p;
+       pickup pencircle scaled (7/8 inner_r);
+       undraw z0;
 fet_endchar;
 
 % skip + and ,
 
 % code := 44;  % - = 45
 
-fet_beginchar("Pedal dash", "-", "pedal-dash")
+%% ugh. rounded corners!
+
+fet_beginchar("Pedal dash", "-", "pedaldash")
        set_char_box(0, 3penw#, 0, pedalbh#);
        pickup pencircle scaled penh;
 
@@ -85,7 +94,7 @@ fet_beginchar("Pedal dash", "-", "pedal-dash")
        penstroke z1e{dir 40}..tension 1.2 ..z2e{dir 40};
 fet_endchar;
 
-fet_beginchar("Pedal dot", ".", "pedal-dot")
+fet_beginchar("Pedal dot", ".", "pedaldot")
        set_char_box(0, penw#, 0, penw#);
        pickup pencircle scaled penw;
        draw (1/2penw,1/2penw);
@@ -127,7 +136,7 @@ def draw_pedal_P =
        y11 = 1/5h;
 
        penlabels (1,2,3,4,5,6,7,8,9,10,11);
-       penstroke z1e..tension 2.5 .. z2e.. tension 1.5 .. z3e ..tension 2.5
+       soft_penstroke z1e..tension 2.5 .. z2e.. tension 1.5 .. z3e ..tension 2.5
                ..z4e..tension 1.5
                ..z5e..z6e..tension 1.5
                ..z7e..tension 1.5
@@ -148,7 +157,7 @@ def draw_pedal_P =
        y16r = y2r;
 
        penlabels (12,13,14,15,16);
-       penstroke z12e{down}..tension 1.1
+       soft_penstroke z12e{down}..tension 1.1
                ..z13e{dir (180-pedbeta)}..tension 1.1
                ..z14e{right}..tension 1.1
                ..z15e{dir (180+pedbeta)}..tension 1.1
@@ -177,7 +186,7 @@ def draw_pedal_d =
 
        penlabels (1,2,3,4,5);
 
-       penstroke z1e{dir (-70-90)}..tension 1.1
+       soft_penstroke z1e{dir (-70-90)}..tension 1.1
                ..z2e{down}..tension 1.1
                ..z3e{right}..tension 1.1
                ..z4e{dir (90+10)}..tension 1.1
@@ -217,7 +226,7 @@ def draw_pedal_e =
        y8 = 1/5pedalh;
 
        penlabels (1,2,3,4,5,6,7,8);
-       penstroke z1e{dir pedalpha}
+       soft_penstroke z1e{dir pedalpha}
                ..z2e{dir pedalpha}.. tension 1.1
                %urg
                ..z3e..tension 1.05
@@ -232,19 +241,19 @@ def draw_pedal_e =
 
 % code := 79;  % P = 80
 
-fet_beginchar("Pedal P", "P", "pedal-P")
+fet_beginchar("Pedal P", "P", "pedalP")
        set_char_box(0, 5/6pedalh#, 0, pedalh#);
        draw_pedal_P;
 fet_endchar;
 
 % code := 99;  % d = 100
 
-fet_beginchar("Pedal d", "d", "pedal-d")
+fet_beginchar("Pedal d", "d", "pedald")
        set_char_box(0, 2/3pedalh#, 0, 7/8pedalh#);
        draw_pedal_d;
 fet_endchar;
 
-fet_beginchar("Pedal e", "e", "pedal-e")
+fet_beginchar("Pedal e", "e", "pedale")
        set_char_box(0, 2/5pedalh#, 0, pedalbh#);
        draw_pedal_e;
 fet_endchar;
@@ -254,7 +263,7 @@ fet_endchar;
 % The pre 1.3.59 user-scm kerning sucks, but I'm not struck by
 % the looks of this either.
 %
-fet_beginchar("Pedal Ped", "Ped", "pedal-Ped")
+fet_beginchar("Pedal Ped", "Ped", "pedalPed")
        P_width# = 5/6pedalh#;
        e_width# = 2/5pedalh#;
        d_width# = 2/3pedalh#;