%
% source file of the Feta (not the Font-En-Tja) music font
%
-% (c) 2000--2004 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
%
% Voor Cup
fet_beginchar ("Pedal asterisk", "*");
save bulb, p, radius, thin, inner_r;
- path p;
+ path pat;
set_char_box (0, 7/9 pedalh#, 0, pedalh#);
pickup pencircle scaled penh;
- penpos 1 (bulb, 180);
- penpos 2 (bulb, 0);
- penpos 3 (thin, 0);
+ penpos1 (bulb, 180);
+ penpos2 (bulb, 0);
+ penpos3 (thin, 0);
z1 = z0 + (0, radius);
z2 = z1;
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);
%% ugh. rounded corners!
-fet_beginchar ("Pedal dash", "-");
+fet_beginchar ("Pedal dash", "M");
save dash_thickness;
dash_thickness# := penw#;
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);
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;
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);
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;
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;