1 % -*- Fundamental -*- (emacs-20 mf mode mucks
2 % feta-pendaal.mf -- piano pedal markings
4 % part of LilyPond's pretty-but-neat music font
6 % source file of the Feta (not the Font-En-Tja) music font
8 % (c) 2000--2004 Jan Nieuwenhuizen <janneke@gnu.org>
14 % Pe = -0.034 pedalh == -0.07 staff-space
15 % ed = -0.27 pedalh == -0.53 staff-space
17 fet_begingroup("pedal")
22 penh#=0.7linethickness#;
24 penw# = 2penh# + 0.14 staff_space#;
26 define_pixels (penh,penw);
28 pedalh# = 2staff_space#;
29 pedalbh# = 4/7pedalh#;
30 define_pixels (pedalh,pedalbh);
32 % code values for own pedal font commented out
33 % code := 41; % * = 42
35 fet_beginchar("Pedal asterisk", "*", "pedalasterisk")
36 set_char_box(0, 7/9pedalh#, 0, pedalh#);
37 z0 = (1/2w, h - 1/2w);
38 save bulb, p, radius, thin;
41 thin = 0.8 linethickness;
44 0.9 thin + bulb = (radius * pi * 2) / 8;
46 pickup pencircle scaled penh;
55 inner_r = .45 radius ;
57 z4l = z0 + inner_r * dir (90 + 360/16);
58 z4r = z0 + inner_r * dir (90 - 360/16);
66 %% what is empty path?
67 p = z3r{up} .. z1l{up}..z2l{down}..z3l{down} .. z4l{dir (180 + 360/16)};
69 p := p ... ((z3r{up}.. z1l{up}..z2l{down}..z3l{down}..z4l{dir (180 + 360/16)})
70 rotatedaround (z0, 360/8i));
75 pickup pencircle scaled (7/8 inner_r);
81 % code := 44; % - = 45
83 %% ugh. rounded corners!
85 fet_beginchar("Pedal dash", "-", "pedaldash")
86 set_char_box(0, 3penw#, 0, pedalbh#);
87 pickup pencircle scaled penh;
91 z1l = (0, 2/3h - 1/2penw);
92 z2r = (w, y1l + 1.2penw);
94 penstroke z1e{dir 40}..tension 1.2 ..z2e{dir 40};
97 fet_beginchar("Pedal dot", ".", "pedaldot")
98 set_char_box(0, penw#, 0, penw#);
99 pickup pencircle scaled penw;
100 draw (1/2penw,1/2penw);
106 pickup pencircle scaled penh;
110 penpos 3 (penw, pedalpha);
111 penpos 4 (1.2penh, -pedalpha);
112 penpos 5 (penh, -pedalpha);
113 penpos 6 (penh, 180-pedalpha);
114 penpos 7 (2penh, 180-pedalpha);
116 penpos 9 (4/3penw,50);
117 penpos 10 (1.4penw,50);
118 penpos 11 (penh, 90+pedalpha);
125 z4l = z5r + 1/4(z3r - z5r);
129 z7 = z6r + 1/3(z8r - z6r);
130 z8r = z5r + 3/5(z3r - z5r);
133 x10l = w - tand (90-pedalpha)*y11l;
138 penlabels (1,2,3,4,5,6,7,8,9,10,11);
139 soft_penstroke z1e..tension 2.5 .. z2e.. tension 1.5 .. z3e ..tension 2.5
141 ..z5e..z6e..tension 1.5
143 ..z8e{right}..tension 1.5
145 ..z10e..tension 2.5..z11e;
148 penpos 13 (penw, -90-pedbeta);
149 penpos 14 (penh, 90);
150 penpos 15 (penw, -90+pedbeta);
151 penpos 16 (penh, 180+pedbeta);
153 z13l = (1/2x12r, y15r);
155 z15l = (1/2[x16,w], y2l + 0.5penw);
159 penlabels (12,13,14,15,16);
160 soft_penstroke z12e{down}..tension 1.1
161 ..z13e{dir (180-pedbeta)}..tension 1.1
162 ..z14e{right}..tension 1.1
163 ..z15e{dir (180+pedbeta)}..tension 1.1
164 ..z16e{dir (90+pedbeta)};
172 pickup pencircle scaled penh;
174 penpos 1 (penh, -70);
175 penpos 2 (3/4penw, 0);
176 penpos 3 (2penh, 90);
177 penpos 4 (penw, 190);
178 penpos 5 (penh, -10-90);
180 z1l = (2/3w, pedalbh);
181 z2l = (1/3w, 1/2pedalbh);
183 z4 = (w - 1/2penw, 1/2pedalbh + penh);
187 penlabels (1,2,3,4,5);
189 soft_penstroke z1e{dir (-70-90)}..tension 1.1
190 ..z2e{down}..tension 1.1
191 ..z3e{right}..tension 1.1
192 ..z4e{dir (90+10)}..tension 1.1
200 pickup pencircle scaled penh;
202 penpos 1 (penh, pedalpha-90);
203 penpos 2 (penh, pedalpha-90);
204 penpos 3 (3/5penw, pedalpha);
205 penpos 4 (1.2penh, 90+pedalpha);
206 penpos 5 (2/3penw, 180);
207 penpos 6 (penw, 180+pedalpha);
208 penpos 7 (2/3penw, -90-20);
209 penpos 8 (penh, pedalpha-90);
211 z1l = (0, 1/5pedalh);
212 z2 = z1 + dir pedalpha * penw;
223 z7l = (x6l+penh, y6l);
228 penlabels (1,2,3,4,5,6,7,8);
229 soft_penstroke z1e{dir pedalpha}
230 ..z2e{dir pedalpha}.. tension 1.1
235 ..z6e{dir -pedalpha}..tension 1.1
242 % code := 79; % P = 80
244 fet_beginchar("Pedal P", "P", "pedalP")
245 set_char_box(0, 5/6pedalh#, 0, pedalh#);
249 % code := 99; % d = 100
251 fet_beginchar("Pedal d", "d", "pedald")
252 set_char_box(0, 2/3pedalh#, 0, 7/8pedalh#);
256 fet_beginchar("Pedal e", "e", "pedale")
257 set_char_box(0, 2/5pedalh#, 0, pedalbh#);
262 % Han-Wen insists on having a `Ped' symbol, ready-kerned in mf.
263 % The pre 1.3.59 user-scm kerning sucks, but I'm not struck by
264 % the looks of this either.
266 fet_beginchar("Pedal Ped", "Ped", "pedalPed")
267 P_width# = 5/6pedalh#;
268 e_width# = 2/5pedalh#;
269 d_width# = 2/3pedalh#;
270 define_pixels (P_width, e_width, d_width);
272 e_height# = pedalbh#;
273 d_height# = 7/8pedalh#;
274 define_pixels (e_height, d_height);
276 % Pe = -0.034 pedalh == -0.07 staff-space
277 % ed = -0.27 pedalh == -0.53 staff-space
278 Pe_kern# = -0.034 pedalh#;
279 ed_kern# = -0.27 pedalh#;
280 define_pixels (Pe_kern, ed_kern);
285 currentpicture := currentpicture shifted (e_width + ed_kern, 0);
289 currentpicture := currentpicture shifted (P_width + Pe_kern, 0);
293 set_char_box(0, P_width# + Pe_kern# + e_width# + ed_kern# + d_width#,
298 fet_endgroup("pedal")