1 % feta-pendaal.mf -- piano pedal markings
3 % part of LilyPond's pretty-but-neat music font
5 % source file of the Feta (not the Font-En-Tja) music font
7 % (c) 2000 Jan Nieuwenhuizen <janneke@gnu.org>
13 % Pe = -0.034 pedalh == -0.07 staff-space
14 % ed = -0.27 pedalh == -0.53 staff-space
16 fet_begingroup("pedal")
21 penh#=0.7stafflinethickness#;
24 define_pixels (penh,penw);
26 pedalh# = 2staff_space#;
27 pedalbh# = 4/7pedalh#;
28 define_pixels (pedalh,pedalbh);
30 % code values for own pedal font commented out
31 % code := 41; % * = 42
33 def draw_asterisk_bulb (expr w, h, i) =
40 pickup pencircle scaled penh;
46 z0 = (1/2w, h - 1/2w);
47 z1 = (1/2w, h-1/2bulb);
53 % penstroke z1e{up}..z2e{down}..z3e{down}..z4e;
54 p = z1l{up}..z2l{down}..z3l{down}..z4l..z4r
55 ..z3r{up}..z2r{up}..z1r{down}..cycle;
56 p := p rotatedaround (z0, 360/8i);
61 fet_beginchar("Pedal asterisk", "*", "pedal-asterisk")
62 set_char_box(0, 7/9pedalh#, 0, pedalh#);
63 z0 = (1/2w, h - 1/2w);
65 draw_asterisk_bulb (w, h, i);
66 pickup pencircle scaled penw;
73 % code := 44; % - = 45
75 fet_beginchar("Pedal dash", "-", "pedal-dash")
76 set_char_box(0, 3penw#, 0, pedalbh#);
77 pickup pencircle scaled penh;
81 z1l = (0, 2/3h - 1/2penw);
82 z2r = (w, y1l + 1.2penw);
84 penstroke z1e{dir 40}..tension 1.2 ..z2e{dir 40};
87 fet_beginchar("Pedal dot", ".", "pedal-dot")
88 set_char_box(0, penw#, 0, penw#);
89 pickup pencircle scaled penw;
90 draw (1/2penw,1/2penw);
93 % code := 79; % P = 80
95 fet_beginchar("Pedal P", "P", "pedal-P")
96 set_char_box(0, 5/6pedalh#, 0, pedalh#);
97 pickup pencircle scaled penh;
101 penpos 3 (penw, pedalpha);
102 penpos 4 (1.2penh, -pedalpha);
103 penpos 5 (penh, -pedalpha);
104 penpos 6 (penh, 180-pedalpha);
105 penpos 7 (2penh, 180-pedalpha);
107 penpos 9 (4/3penw,50);
108 penpos 10 (1.4penw,50);
109 penpos 11 (penh, 90+pedalpha);
116 z4l = z5r + 1/4(z3r - z5r);
120 z7 = z6r + 1/3(z8r - z6r);
121 z8r = z5r + 3/5(z3r - z5r);
124 x10l = w - tand (90-pedalpha)*y11l;
129 penlabels (1,2,3,4,5,6,7,8,9,10,11);
130 penstroke z1e..tension 2.5 .. z2e.. tension 1.5 .. z3e ..tension 2.5
132 ..z5e..z6e..tension 1.5
134 ..z8e{right}..tension 1.5
136 ..z10e..tension 2.5..z11e;
139 penpos 13 (penw, -90-pedbeta);
140 penpos 14 (penh, 90);
141 penpos 15 (penw, -90+pedbeta);
142 penpos 16 (penh, 180+pedbeta);
144 z13l = (1/2x12r, y15r);
146 z15l = (1/2[x16,w], y2l + 0.5penw);
150 penlabels (12,13,14,15,16);
151 penstroke z12e{down}..tension 1.1
152 ..z13e{dir (180-pedbeta)}..tension 1.1
153 ..z14e{right}..tension 1.1
154 ..z15e{dir (180+pedbeta)}..tension 1.1
155 ..z16e{dir (90+pedbeta)};
159 % code := 99; % d = 100
163 fet_beginchar("Pedal d", "d", "pedal-d")
164 set_char_box(2/9pedalh#, 4/9pedalh#, 0, 7/8pedalh#);
165 pickup pencircle scaled penh;
167 penpos 1 (penh, -70);
168 penpos 2 (3/4penw, 0);
169 penpos 3 (2penh, 90);
170 penpos 4 (penw, 190);
171 penpos 5 (penh, -10-90);
173 z1l = (1/2w, pedalbh);
174 z2l = (0, 1/2pedalbh);
176 z4 = (w - 1/2penw, 1/2pedalbh + penh);
180 penlabels (1,2,3,4,5);
182 penstroke z1e{dir (-70-90)}..tension 1.1
183 ..z2e{down}..tension 1.1
184 ..z3e{right}..tension 1.1
185 ..z4e{dir (90+10)}..tension 1.1
191 fet_beginchar("Pedal d", "d", "pedal-d")
192 set_char_box(0, 2/3pedalh#, 0, 7/8pedalh#);
193 pickup pencircle scaled penh;
195 penpos 1 (penh, -70);
196 penpos 2 (3/4penw, 0);
197 penpos 3 (2penh, 90);
198 penpos 4 (penw, 190);
199 penpos 5 (penh, -10-90);
201 z1l = (2/3w, pedalbh);
202 z2l = (1/3w, 1/2pedalbh);
204 z4 = (w - 1/2penw, 1/2pedalbh + penh);
208 penlabels (1,2,3,4,5);
210 penstroke z1e{dir (-70-90)}..tension 1.1
211 ..z2e{down}..tension 1.1
212 ..z3e{right}..tension 1.1
213 ..z4e{dir (90+10)}..tension 1.1
219 fet_beginchar("Pedal e", "e", "pedal-e")
220 set_char_box(0, 2/5pedalh#, 0, pedalbh#);
221 pickup pencircle scaled penh;
223 penpos 1 (penh, pedalpha-90);
224 penpos 2 (penh, pedalpha-90);
225 penpos 3 (3/5penw, pedalpha);
226 penpos 4 (1.2penh, 90+pedalpha);
227 penpos 5 (2/3penw, 180);
228 penpos 6 (penw, 180+pedalpha);
229 penpos 7 (2/3penw, -90-20);
230 penpos 8 (penh, pedalpha-90);
232 z1l = (0, 1/5pedalh);
233 z2 = z1 + dir pedalpha * penw;
244 z7l = (x6l+penh, y6l);
249 penlabels (1,2,3,4,5,6,7,8);
250 penstroke z1e{dir pedalpha}
251 ..z2e{dir pedalpha}.. tension 1.1
256 ..z6e{dir -pedalpha}..tension 1.1
261 fet_endgroup("pedal")