X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mf%2Ffeta-pendaal.mf;h=25112a3fafffa3d313952126fdf5d09746fa1a3b;hb=df4e98796c8d0e1a72fbe3fc54d549af316d0f76;hp=2a31d293f1b63739374473b8d5666de640b87186;hpb=f423fa364db4d816ee207a675fd1c0d7ef26cd22;p=lilypond.git diff --git a/mf/feta-pendaal.mf b/mf/feta-pendaal.mf index 2a31d293f1..25112a3faf 100644 --- a/mf/feta-pendaal.mf +++ b/mf/feta-pendaal.mf @@ -5,7 +5,7 @@ % % source file of the Feta (not the Font-En-Tja) music font % -% (c) 2000--2004 Jan Nieuwenhuizen +% (c) 2000--2005 Jan Nieuwenhuizen % % Voor Cup @@ -31,7 +31,7 @@ define_pixels (pedalh, pedalbh); fet_beginchar ("Pedal asterisk", "*"); save bulb, p, radius, thin, inner_r; - path p; + path pat; set_char_box (0, 7/9 pedalh#, 0, pedalh#); @@ -61,24 +61,24 @@ fet_beginchar ("Pedal asterisk", "*"); penlabels (0, 1, 2, 3, 4); - p := z3r{up} - .. z1l{up} - .. z2l{down} - .. z3l{down} - .. z4l{dir (180 + 360/16)}; + pat := 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/8 i)); + pat := pat + .. ((z3r{up} + .. z1l{up} + .. z2l{down} + .. z3l{down} + .. z4l{dir (180 + 360/16)}) + rotatedaround (z0, 360/8 i)); endfor; - p := p - .. cycle; - fill p; + pat := pat + .. cycle; + fill pat; pickup pencircle scaled (7/8 inner_r); @@ -128,7 +128,7 @@ begingroup; penpos4 (1.2 penh, -pedalpha); penpos5 (penh, -pedalpha); penpos6 (penh, 180 - pedalpha); - penpos7 (2 penh, 180 - pedalpha); + penpos7 (penh, 180 - pedalpha); penpos8 (penh, 90); penpos9 (4/3 penw, 50); penpos10 (1.4 penw, 50); @@ -143,7 +143,7 @@ begingroup; x5 = 1/4 w; y5r = 0; z6 = z5; - z7 = z6r + 1/3 (z8r - z6r); + z7l = z6r + 1/3 (z8r - z6r); z8r = z5r + 3/5 (z3r - z5r); x9l = x10l - penh; y9l = 1/4 penh; @@ -152,25 +152,14 @@ begingroup; x11l = w; y11 = 1/5 h; + % don't stick out at the top z1' = round (0.9 [z2, z1]) + (xpart feta_offset, 0); penpos1' (penh, 0); - if show_labels = 1: - penlabels (range 1 thru 11); - penlabels (1'); - fi; - - soft_penstroke z1'e - ..tension 2.5.. z2e - ..tension 1.5.. z3e - ..tension 2.5.. z4e - ..tension 1.5.. z5e - .. z6e - ..tension 1.5.. z7e - ..tension 1.5.. z8e{right} - ..tension 1.5.. z9e{dir - pedalpha} - .. z10e - ..tension 2.5.. z11e; + % shift start point of pen stroke to avoid overlapping contours + z8'l = z8l; + y8'r = y8r; + z8'r = z8l + whatever * (z3r - z8l); penpos12 (hround penh, 0); penpos13 (penw, -90 - pedbeta); @@ -185,15 +174,43 @@ begingroup; x16 = 1/4 [x1, w]; y16r = y2r; - if show_labels = 1: - penlabels (range 12 thru 16); - fi; + % We now do a correction to `center' the stem horizontally. While + % this is not the most elegant solution, it is definitely the + % easiest... + + save horz_corr; + horz_corr = 1/5 [x12, x16] - x2l; + x2 := x2 + horz_corr; + x2l := x2l + horz_corr; + x2r := x2r + horz_corr; + + penstroke z1'e + ..tension 2.5.. z2e + ..tension 1.5.. z3e + ..tension 2.5.. {dir (225)}z4e; + + soft_end_penstroke z8'e{right} + ..tension 1.5.. z9e{dir (-pedalpha)} + .. z10e + ..tension 2.5.. z11e; + + fill z4r{dir (225)} + ..tension 1.5.. z5r{left} + .. z6r + ..tension 1.5.. z7r + ..tension 1.5.. z8r{right} + -- cycle; 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.. z16e{dir (90 + pedbeta)}; + + if show_labels = 1: + penlabels (range 1 thru 16); + penlabels (1', 8'); + fi; endgroup; enddef; @@ -219,11 +236,11 @@ begingroup; penlabels (1, 2, 3, 4, 5); fi; - soft_penstroke z1e{dir (-10)} - ..tension 1.1.. z2e{dir (-90 + 10)} - ..tension 1.1.. z3e{left} - ..tension 1.1.. z4e{up} - ..tension 1.1.. z5e{dir (-70 + 90)}; + soft_start_penstroke z1e{dir (-10)} + ..tension 1.1.. z2e{dir (-90 + 10)} + ..tension 1.1.. z3e{left} + ..tension 1.1.. z4e{up} + ..tension 1.1.. z5e{dir (-70 + 90)}; endgroup; enddef;