]> git.donarmstrong.com Git - lilypond.git/blob - mf/feta-pendaal.mf
patch::: 1.3.44.jcn1
[lilypond.git] / mf / feta-pendaal.mf
1 % feta-pendaal.mf -- piano pedal markings
2 %
3 % part of LilyPond's pretty-but-neat music font
4 %
5 % source file of the Feta (not the Font-En-Tja) music font
6
7 % (c) 2000 Jan Nieuwenhuizen <janneke@gnu.org>
8 %
9 % Voor Cup
10
11 % Kerning
12 %
13 % Pe = -0.034 pedalh == -0.07 staff-space
14 % ed = -0.27 pedalh == -0.53 staff-space
15
16 fet_begingroup("pedal")
17
18 pedalpha = 40;
19 pedbeta = 25;
20
21 penh#=0.7stafflinethickness#;
22 penw#=4penh#;
23 %penw#=penh#;
24 define_pixels (penh,penw);
25
26 pedalh# = 2staff_space#;
27 pedalbh# = 4/7pedalh#;
28 define_pixels (pedalh,pedalbh);
29
30 % code values for own pedal font commented out
31 % code := 41;  % * = 42
32
33 def draw_asterisk_bulb (expr w, h, i) =
34         begingroup;
35         clearxy;
36         save bulb, p;
37         path p;
38         bulb = 4/3penw;
39
40         pickup pencircle scaled penh;
41         penpos 1 (bulb, 180);
42         penpos 2 (bulb, 0);
43         penpos 3 (penh, 0);
44         penpos 4 (penw, 0);
45
46         z0 = (1/2w, h - 1/2w);
47         z1 = (1/2w, h-1/2bulb);
48         z2 = z1;
49         z3 = (x1, y1-penw);
50         z4 = (x1, y3-2penh);
51
52         penlabels (1,2,3,4);
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);
57         fill p;
58         endgroup;
59         enddef;
60
61 fet_beginchar("Pedal asterisk", "*", "pedal-asterisk")
62         set_char_box(0, 7/9pedalh#, 0, pedalh#);
63         z0 = (1/2w, h - 1/2w);
64         for i = 0 upto 7:
65                 draw_asterisk_bulb (w, h, i);
66                 pickup pencircle scaled penw;
67                 undraw z0;
68         endfor
69 fet_endchar;
70
71 % skip + and ,
72
73 % code := 44;  % - = 45
74
75 fet_beginchar("Pedal dash", "-", "pedal-dash")
76         set_char_box(0, 3penw#, 0, pedalbh#);
77         pickup pencircle scaled penh;
78
79         penpos 1 (penw, 60);
80         penpos 2 (penw, 60);
81         z1l = (0, 2/3h - 1/2penw);
82         z2r = (w, y1l + 1.2penw);
83         penlabels (1,2);
84         penstroke z1e{dir 40}..tension 1.2 ..z2e{dir 40};
85 fet_endchar;
86
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);
91 fet_endchar;
92
93 % code := 79;  % P = 80
94
95 fet_beginchar("Pedal P", "P", "pedal-P")
96         set_char_box(0, 5/6pedalh#, 0, pedalh#);
97         pickup pencircle scaled penh;
98
99         penpos 1 (penh, 0);
100         penpos 2 (penw, 55);
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);
106         penpos 8 (penh, 90);
107         penpos 9 (4/3penw,50);
108         penpos 10 (1.4penw,50);
109         penpos 11 (penh, 90+pedalpha);
110
111         z1r = (0.6w, h);
112         x2l = x1l - penw;
113         y2 = 0.7h;
114         x3r = x2l + 2penw;
115         y3r = 0.4h;
116         z4l = z5r + 1/4(z3r - z5r);
117         x5 = 1/4w;
118         y5r = 0;
119         z6 = z5;
120         z7 = z6r + 1/3(z8r - z6r);
121         z8r = z5r + 3/5(z3r - z5r);
122         x9l = x10l - penh;
123         y9l = 1/4penh;
124         x10l = w - tand (90-pedalpha)*y11l;
125         y10l = 1/4penh;
126         x11l = w;
127         y11 = 1/5h;
128
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
131                 ..z4e..tension 1.5
132                 ..z5e..z6e..tension 1.5
133                 ..z7e..tension 1.5
134                 ..z8e{right}..tension 1.5
135                 ..z9e{dir -pedalpha}
136                 ..z10e..tension 2.5..z11e;
137
138         penpos 12 (penh, 0);
139         penpos 13 (penw, -90-pedbeta);
140         penpos 14 (penh, 90);
141         penpos 15 (penw, -90+pedbeta);
142         penpos 16 (penh, 180+pedbeta);
143         z12 = (5/9x1, y2);
144         z13l = (1/2x12r, y15r);
145         z14r = z1r;
146         z15l = (1/2[x16,w], y2l + 0.5penw);
147         x16 = 1/4[x1, w];
148         y16r = y2r;
149
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)};
156 fet_endchar;
157
158
159 % code := 99;  % d = 100
160
161 if 0 = 1:
162
163 fet_beginchar("Pedal d", "d", "pedal-d")
164         set_char_box(2/9pedalh#, 4/9pedalh#, 0, 7/8pedalh#);
165         pickup pencircle scaled penh;
166
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);
172
173         z1l = (1/2w, pedalbh);
174         z2l = (0, 1/2pedalbh);
175         z3l = (1/2w, 0);
176         z4 = (w - 1/2penw, 1/2pedalbh + penh);
177         x5r = -b;
178         y5l = h;
179
180         penlabels (1,2,3,4,5);
181
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
186                 ..z5e{dir (180-10)};
187 fet_endchar;
188
189 else:
190
191 fet_beginchar("Pedal d", "d", "pedal-d")
192         set_char_box(0, 2/3pedalh#, 0, 7/8pedalh#);
193         pickup pencircle scaled penh;
194
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);
200
201         z1l = (2/3w, pedalbh);
202         z2l = (1/3w, 1/2pedalbh);
203         z3l = (x1l, 0);
204         z4 = (w - 1/2penw, 1/2pedalbh + penh);
205         x5r = 0;
206         y5l = h;
207
208         penlabels (1,2,3,4,5);
209
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
214                 ..z5e{dir (180-10)};
215 fet_endchar;
216
217 fi
218
219 fet_beginchar("Pedal e", "e", "pedal-e")
220         set_char_box(0, 2/5pedalh#, 0, pedalbh#);
221         pickup pencircle scaled penh;
222
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);
231
232         z1l = (0, 1/5pedalh);
233         z2 = z1 + dir pedalpha * penw;
234         z3 = (3/5w, 8/9h);
235
236         z4 = (2/9w,  y3);
237
238         x5r = 0;
239         y5 = y2;
240
241         x6 = 3/8w;
242         y6r = 1/2penh;
243
244         z7l = (x6l+penh, y6l);
245
246         x8r = w;
247         y8 = 1/5pedalh;
248
249         penlabels (1,2,3,4,5,6,7,8);
250         penstroke z1e{dir pedalpha}
251                 ..z2e{dir pedalpha}.. tension 1.1
252                 %urg
253                 ..z3e..tension 1.05
254                 ..z4e..tension 1.1
255                 ..z5e..tension 1.5
256                 ..z6e{dir -pedalpha}..tension 1.1
257                 ..z7e.. tension 2.5
258                 ..z8e;
259 fet_endchar;
260
261 fet_endgroup("pedal")
262