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--2003 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.7stafflinethickness#;
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 stafflinethickness;
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 fet_beginchar("Pedal dash", "-", "pedaldash")
84 set_char_box(0, 3penw#, 0, pedalbh#);
85 pickup pencircle scaled penh;
89 z1l = (0, 2/3h - 1/2penw);
90 z2r = (w, y1l + 1.2penw);
92 penstroke z1e{dir 40}..tension 1.2 ..z2e{dir 40};
95 fet_beginchar("Pedal dot", ".", "pedaldot")
96 set_char_box(0, penw#, 0, penw#);
97 pickup pencircle scaled penw;
98 draw (1/2penw,1/2penw);
104 pickup pencircle scaled penh;
108 penpos 3 (penw, pedalpha);
109 penpos 4 (1.2penh, -pedalpha);
110 penpos 5 (penh, -pedalpha);
111 penpos 6 (penh, 180-pedalpha);
112 penpos 7 (2penh, 180-pedalpha);
114 penpos 9 (4/3penw,50);
115 penpos 10 (1.4penw,50);
116 penpos 11 (penh, 90+pedalpha);
123 z4l = z5r + 1/4(z3r - z5r);
127 z7 = z6r + 1/3(z8r - z6r);
128 z8r = z5r + 3/5(z3r - z5r);
131 x10l = w - tand (90-pedalpha)*y11l;
136 penlabels (1,2,3,4,5,6,7,8,9,10,11);
137 soft_penstroke z1e..tension 2.5 .. z2e.. tension 1.5 .. z3e ..tension 2.5
139 ..z5e..z6e..tension 1.5
141 ..z8e{right}..tension 1.5
143 ..z10e..tension 2.5..z11e;
146 penpos 13 (penw, -90-pedbeta);
147 penpos 14 (penh, 90);
148 penpos 15 (penw, -90+pedbeta);
149 penpos 16 (penh, 180+pedbeta);
151 z13l = (1/2x12r, y15r);
153 z15l = (1/2[x16,w], y2l + 0.5penw);
157 penlabels (12,13,14,15,16);
158 soft_penstroke z12e{down}..tension 1.1
159 ..z13e{dir (180-pedbeta)}..tension 1.1
160 ..z14e{right}..tension 1.1
161 ..z15e{dir (180+pedbeta)}..tension 1.1
162 ..z16e{dir (90+pedbeta)};
170 pickup pencircle scaled penh;
172 penpos 1 (penh, -70);
173 penpos 2 (3/4penw, 0);
174 penpos 3 (2penh, 90);
175 penpos 4 (penw, 190);
176 penpos 5 (penh, -10-90);
178 z1l = (2/3w, pedalbh);
179 z2l = (1/3w, 1/2pedalbh);
181 z4 = (w - 1/2penw, 1/2pedalbh + penh);
185 penlabels (1,2,3,4,5);
187 soft_penstroke z1e{dir (-70-90)}..tension 1.1
188 ..z2e{down}..tension 1.1
189 ..z3e{right}..tension 1.1
190 ..z4e{dir (90+10)}..tension 1.1
198 pickup pencircle scaled penh;
200 penpos 1 (penh, pedalpha-90);
201 penpos 2 (penh, pedalpha-90);
202 penpos 3 (3/5penw, pedalpha);
203 penpos 4 (1.2penh, 90+pedalpha);
204 penpos 5 (2/3penw, 180);
205 penpos 6 (penw, 180+pedalpha);
206 penpos 7 (2/3penw, -90-20);
207 penpos 8 (penh, pedalpha-90);
209 z1l = (0, 1/5pedalh);
210 z2 = z1 + dir pedalpha * penw;
221 z7l = (x6l+penh, y6l);
226 penlabels (1,2,3,4,5,6,7,8);
227 soft_penstroke z1e{dir pedalpha}
228 ..z2e{dir pedalpha}.. tension 1.1
233 ..z6e{dir -pedalpha}..tension 1.1
240 % code := 79; % P = 80
242 fet_beginchar("Pedal P", "P", "pedalP")
243 set_char_box(0, 5/6pedalh#, 0, pedalh#);
247 % code := 99; % d = 100
249 fet_beginchar("Pedal d", "d", "pedald")
250 set_char_box(0, 2/3pedalh#, 0, 7/8pedalh#);
254 fet_beginchar("Pedal e", "e", "pedale")
255 set_char_box(0, 2/5pedalh#, 0, pedalbh#);
260 % Han-Wen insists on having a `Ped' symbol, ready-kerned in mf.
261 % The pre 1.3.59 user-scm kerning sucks, but I'm not struck by
262 % the looks of this either.
264 fet_beginchar("Pedal Ped", "Ped", "pedalPed")
265 P_width# = 5/6pedalh#;
266 e_width# = 2/5pedalh#;
267 d_width# = 2/3pedalh#;
268 define_pixels (P_width, e_width, d_width);
270 e_height# = pedalbh#;
271 d_height# = 7/8pedalh#;
272 define_pixels (e_height, d_height);
274 % Pe = -0.034 pedalh == -0.07 staff-space
275 % ed = -0.27 pedalh == -0.53 staff-space
276 Pe_kern# = -0.034 pedalh#;
277 ed_kern# = -0.27 pedalh#;
278 define_pixels (Pe_kern, ed_kern);
283 currentpicture := currentpicture shifted (e_width + ed_kern, 0);
287 currentpicture := currentpicture shifted (P_width + Pe_kern, 0);
291 set_char_box(0, P_width# + Pe_kern# + e_width# + ed_kern# + d_width#,
296 fet_endgroup("pedal")