2 % parmesan-clefs.mf -- implement ancient clefs
4 % source file of LilyPond's pretty-but-neat music font
6 % (c) 2001--2002 Juergen Reuter <reuter@ipd.uka.de>
9 fet_begingroup ("clefs")
20 def draw_vaticana_do_clef(expr exact_center, reduction) =
23 reduced_il# = staff_space# * reduction;
25 set_char_box(0.4reduced_il#, 0.4reduced_il#, 0, reduced_il#);
27 define_pixels(reduced_il);
29 pickup pencircle xscaled stafflinethickness yscaled 0.6reduced_il;
31 save za, zb, zc, zd, ze, zf;
32 pair za, zb, zc, zd, ze, zf;
34 za = exact_center + (-0.0reduced_il, -.45reduced_il);
35 zb = exact_center + (-0.2reduced_il, -.50reduced_il);
36 zc = exact_center + (-0.4reduced_il, -.25reduced_il);
37 zd = exact_center + (-0.4reduced_il, +.25reduced_il);
38 ze = exact_center + (-0.2reduced_il, +.50reduced_il);
39 zf = exact_center + (-0.0reduced_il, +.45reduced_il);
40 draw za .. zb .. zc -- % lower punctum
41 zd .. ze .. zf; % upper punctum
45 fet_beginchar("Ed. Vat. do clef", "vaticana_do", "vatdoclef")
47 draw_staff(-1,3, 0.0);
49 draw_vaticana_do_clef((0,0), 1.0);
51 fet_beginchar("Ed. Vat. do clef", "vaticana_do_change", "vatcdoclef")
52 draw_vaticana_do_clef((0,0), 1.0); % no reduction
56 def draw_vaticana_fa_clef(expr exact_center, reduction) =
59 reduced_il# = staff_space# * reduction;
60 define_pixels(reduced_il);
62 save za, zb, zc, zd, ze;
63 pair za, zb, zc, zd, ze;
66 pickup pencircle scaled stafflinethickness;
68 xpart exact_center + 0.4reduced_il;
69 ypart za = ypart exact_center = ypart zb + 1.5reduced_il;
73 pickup pencircle xscaled stafflinethickness yscaled 0.5reduced_il;
75 (+0.4reduced_il, -0.05reduced_il);
77 (+0.2reduced_il, +0.05reduced_il);
79 (+0.0reduced_il, +0.00reduced_il);
82 %right-handed puncta as in do clef
83 draw_vaticana_do_clef(
85 (+0.8reduced_il + 1.25stafflinethickness, 0),
88 set_char_box(0.5reduced_il#, 1.5reduced_il#, 0, reduced_il#);
92 fet_beginchar("Ed. Vat. fa clef", "vaticana_fa", "vatfaclef")
94 draw_staff(-1,3, 0.0);
96 draw_vaticana_fa_clef((0,0), 1.0);
98 fet_beginchar("Ed. Vat. fa clef", "vaticana_fa_change", "vatcfaclef")
99 draw_vaticana_fa_clef((0,0), 1.0); % no reduction
110 def draw_medicaea_do_clef(expr exact_center, reduction) =
111 save reduced_il, reduced_slt;
112 reduced_il# = staff_space# * reduction;
113 reduced_slt# = stafflinethickness# * reduction;
114 define_pixels(reduced_il);
115 define_pixels(reduced_slt);
118 flag_height# = 0.5 reduced_il#;
119 define_pixels(flag_height);
124 pickup pencircle xscaled reduced_slt yscaled flag_height;
126 = xpart za + 0.5 reduced_il
127 = xpart zb - 0.5 reduced_il;
128 ypart za = ypart exact_center - 0.5 flag_height
129 - 0.5 (staff_space - reduced_il);
130 ypart zb = ypart za - reduced_il + flag_height;
136 pickup pencircle xscaled reduced_slt yscaled flag_height;
138 = xpart za + 0.5 reduced_il
139 = xpart zb - 0.5 reduced_il;
140 ypart za = ypart exact_center - 0.5 flag_height
141 - 0.5 (staff_space - reduced_il)
143 ypart zb = ypart za - reduced_il + flag_height;
149 pickup pencircle scaled reduced_slt;
150 xpart za = xpart zb = xpart exact_center - 0.5 reduced_il;
152 = ypart za + 1.5 reduced_il
153 = ypart zb - 1.5 reduced_il;
156 set_char_box(0.5reduced_il#, 1.5reduced_il#,
157 1.5reduced_il#, 1.5reduced_il#);
161 fet_beginchar("Ed. Med. do clef", "medicaea_do", "meddoclef")
163 draw_staff(-1,3, 0.0);
165 draw_medicaea_do_clef((0,0), 1.0);
167 fet_beginchar("Ed. Med. do clef", "medicaea_do_change", "cmeddoclef")
168 draw_medicaea_do_clef((0,0), .8);
172 def draw_medicaea_fa_clef(expr exact_center, reduction) =
173 % inspired by Regensburger Edition of Medicaea (1885/86), in:
174 % MGG, volume 2, col. 1327 ("Choralreform"), fig. 2.
176 save reduced_il, reduced_slt;
177 reduced_il# = staff_space# * reduction;
178 reduced_slt# = stafflinethickness# * reduction;
179 define_pixels(reduced_il);
180 define_pixels(reduced_slt);
182 save za, zb, zc, zd, ze;
183 pair za, zb, zc, zd, ze;
186 pickup pencircle scaled stafflinethickness;
187 xpart za = xpart zb =
188 xpart exact_center + 0.4reduced_il;
189 ypart za = ypart exact_center = ypart zb + 1.5reduced_il;
193 pickup pencircle xscaled reduced_slt yscaled reduced_il;
200 %right-handed puncta as in do clef
201 draw_medicaea_do_clef(
203 (+1.1reduced_il + 1.25stafflinethickness, 0),
206 set_char_box(reduced_il#/2, 2.6reduced_il#, 0, reduced_il#);
210 fet_beginchar("Ed. Med. fa clef", "medicaea_fa", "medfaclef")
212 draw_staff(-1,3, 0.0);
214 draw_medicaea_fa_clef((0,0), 1.0);
216 fet_beginchar("Ed. Med. fa clef", "medicaea_fa_change", "cmedfaclef")
217 draw_medicaea_fa_clef((0,0), .8);
229 brevis_wid# := 2 staff_space#;
231 def draw_brevis(expr exact_center, reduction, small_width, small_height) =
233 % inspired by function draw_brevis of
236 save reduced_slt, reduced_nht;
237 save stem_width, head_width;
238 save serif_size, serif_protrude;
239 save holeheight, beamheight;
241 reduced_slt# = stafflinethickness# * reduction;
242 reduced_nht# = noteheight# * reduction;
243 stem_width# = 1.4 reduced_slt#;
245 head_width# = 0.5brevis_wid# * reduction;
247 head_width# = brevis_wid# * reduction;
250 serif_size# = 0.64 reduced_slt#;
251 serif_protrude# = 0.96 serif_size#;
252 holeheight# = 3 reduced_slt#;
253 beamheight# = 0.32(reduced_nht# - holeheight#);
255 serif_size# = 1.0 reduced_slt#;
256 serif_protrude# = 1.5 serif_size#;
257 holeheight# = 3 reduced_slt#;
258 beamheight# = 0.5(reduced_nht# - holeheight#);
260 define_pixels(reduced_slt);
261 define_pixels(stem_width);
262 define_pixels(head_width);
263 define_pixels(serif_size);
264 define_pixels(serif_protrude);
265 define_pixels(beamheight);
267 penpos1(stem_width, 0);
268 penpos2(stem_width, 0);
269 penpos3(beamheight, 90);
270 penpos4(beamheight, 90);
271 penpos5(stem_width, 180);
274 z2l = z1l + (0, -reduced_slt/2);
275 z3r = z2r + serif_size*(1,-1);
277 x4l = x1l + head_width/2;
278 z5l = z3l + (-serif_size, -serif_protrude);
280 penlabels(1,2,3,4,5);
281 fill z1r -- z1l -- z5r{down} .. z5l{up} .. z3l{right}
282 -- z4l -- z4r -- z3r{left} .. z2r{up} -- cycle;
286 def draw_neo_mensural_c_clef(expr exact_center, reduction) =
287 draw_brevis(exact_center, reduction, false, false);
289 save reduced_il, reduced_slt;
292 reduced_il# = staff_space# * reduction;
293 reduced_slt# = stafflinethickness# * reduction;
294 stem_width# = 1.4 reduced_slt#;
296 define_pixels(reduced_il);
297 define_pixels(reduced_slt);
298 define_pixels(stem_width);
300 pickup pencircle xscaled stem_width yscaled blot_diameter;
301 z6 = exact_center + (stem_width/2, 0);
302 z7 = z6 + (0, -2reduced_il);
303 z8 = z6 + (-3reduced_slt, 0);
308 addto currentpicture also currentpicture
309 yscaled -1 shifted (0, 2*(ypart exact_center));
310 addto currentpicture also currentpicture
311 xscaled -1 shifted (2x4l,0);
313 set_char_box(0, 2head_width#,
314 6reduced_slt#*reduction, 6reduced_slt#*reduction);
318 fet_beginchar("neo-mensural c clef", "neo_mensural_c", "neomenscclef")
320 draw_staff(-1,3, 0.0);
322 draw_neo_mensural_c_clef((0,0), 1.0);
324 fet_beginchar("neo-mensural c clef", "neo_mensural_c_change", "cneomenscclef")
325 draw_neo_mensural_c_clef((1.3 staff_space#,0), .8);
329 def draw_petrucci_c_clef(expr exact_center, reduction) =
330 % inspired by Josquin Desprez, "Stabat Mater", Libro tertio,
331 % 1519, printed by Petrucci, in: MGG, volume 7, Table 11.
332 draw_brevis(exact_center, reduction, true, true);
334 save reduced_il, reduced_slt;
335 save stem_width, interline;
337 reduced_il# = staff_space# * reduction;
338 reduced_slt# = stafflinethickness# * reduction;
339 stem_width# = 1.4 reduced_slt#;
340 interline# = staff_space#;
342 define_pixels(reduced_il);
343 define_pixels(reduced_slt);
344 define_pixels(stem_width);
345 define_pixels(interline);
347 addto currentpicture also currentpicture
348 yscaled -1 shifted (0, 2*(ypart exact_center) - interline);
350 pickup pencircle xscaled stem_width yscaled blot_diameter;
351 z6 = exact_center + (stem_width/2, 0);
352 z7 = z6 + (0, -2.2reduced_il);
355 addto currentpicture also currentpicture
356 xscaled -1 shifted (2x4l,0);
358 z8 = exact_center + (stem_width/2, 0);
359 z9 = z8 + (0, -3.2reduced_il);
362 addto currentpicture also currentpicture
363 yscaled -1 shifted (0, 4*(ypart exact_center));
365 set_char_box(0, 2head_width#,
366 noteheight#*4*reduction, noteheight#*4*reduction);
370 fet_beginchar("petrucci c clef", "petrucci_c", "petruccicclef")
372 draw_staff(-1,3, 0.0);
374 draw_petrucci_c_clef((0,0), 1.0);
376 fet_beginchar("petrucci c clef", "petrucci_c_change", "cpetruccicclef")
377 draw_petrucci_c_clef((1.3 staff_space#,0), .8);
381 def draw_mensural_c_clef(expr exact_center, reduction) =
382 % inspired by Ockeghem, "Missa Prolationum", in: MGG, volume
384 draw_petrucci_c_clef(exact_center, reduction);
386 addto currentpicture also currentpicture
387 shifted (0, -interline);
389 set_char_box(0, 2head_width#,
390 noteheight#*6*reduction, noteheight#*6*reduction);
394 fet_beginchar("mensural c clef", "mensural_c", "menscclef")
396 draw_staff(-1,3, 0.0);
398 draw_mensural_c_clef((0,0), 1.0);
400 fet_beginchar("mensural c clef", "mensural_c_change", "cmenscclef")
401 draw_mensural_c_clef((0,0), .8);
404 def draw_diamond(expr exact_center, reduction) =
405 save stem_width, reduced_il, reduced_nht, holeheight, beamheight;
406 save rh_height, rh_width;
408 stem_width# = 1.4 reduced_slt#;
409 reduced_il# = staff_space# * reduction;
410 reduced_nht# = noteheight# * reduction;
411 holeheight# = 3 reduced_slt#;
412 beamheight# = 0.4(reduced_nht# - holeheight#);
414 rh_height# = 1.2reduced_il#;
415 rh_width# / rh_height# = 0.58; % tan(30)
417 define_pixels(beamheight);
418 define_pixels(stem_width);
419 define_pixels(rh_height);
420 define_pixels(rh_width);
428 exact_center + (-rh_width/2, 0) --
429 exact_center + (0, rh_height/2) --
430 exact_center + (+rh_width/2, 0) --
431 exact_center + (0, -rh_height/2) --
435 def draw_petrucci_f_clef(expr exact_center, reduction) =
436 % inspired by L'homme arme super voces musicales in Misse
437 % Josquin, 1502, Petrucci, in: MGG, volume 7, col. 200; also
438 % inspired by Gaspar van Weerbeke, "Virgo Maria" (1502), in:
439 % MGG, volume 9, col. 653 ("Motette"), fig. 3.; also by Andr'e
440 % Campra, "Entr'ee des s'er'enades" (1710), in: MGG, volume 2,
441 % col. 1649 ("Contredanse"), fig. 2.
443 draw_brevis(exact_center, reduction, true, false);
445 save reduced_il, reduced_slt;
446 save stem_width, interline;
448 reduced_il# = staff_space# * reduction;
449 reduced_slt# = stafflinethickness# * reduction;
450 stem_width# = 1.4 reduced_slt#;
451 interline# = staff_space#;
453 define_pixels(reduced_il);
454 define_pixels(reduced_slt);
455 define_pixels(stem_width);
456 define_pixels(interline);
458 addto currentpicture also currentpicture
459 yscaled -1 shifted (0, 2*(ypart exact_center));
460 addto currentpicture also currentpicture
461 xscaled -1 shifted (2x4l,0);
465 pickup pencircle xscaled stem_width yscaled blot_diameter;
466 z6 = exact_center + (2x4l - stem_width/2, 0);
467 z7 = z6 + (0, -4reduced_il);
471 draw_diamond(exact_center + (1.6interline*reduction, interline/2),
473 pickup pencircle xscaled stem_width yscaled blot_diameter;
475 (1.6interline*reduction + stem_width/2, interline*reduction);
476 z9 = z8 + (0, 1.5interline*reduction);
477 draw z8 .. z9; % diamond stem
480 draw_diamond(exact_center + (1.6interline*reduction, -interline/2),
482 pickup pencircle xscaled stem_width yscaled blot_diameter;
484 (1.6interline*reduction - stem_width/2, -interline*reduction);
485 z11 = z10 + (0, -3.5interline*reduction);
486 draw z10 .. z11; % diamond stem
488 set_char_box(0, 3head_width#,
489 3.5noteheight#*reduction, 1.5noteheight#*reduction);
493 fet_beginchar("petrucci f clef", "petrucci_f", "petruccifclef")
495 draw_staff(-1,3, 0.0);
497 draw_petrucci_f_clef((0,0), 1.0);
499 fet_beginchar("petrucci f clef", "petrucci_f_change", "cpetruccifclef")
500 draw_petrucci_f_clef((0,0), .8);
504 def draw_mensural_f_clef(expr exact_center, reduction) =
506 % inspired by Philippe le Duc, "Dite Signori" (1590), in: MGG,
507 % volume 3, col. 848 ("Duc"); also by John Dowland, "The First
508 % Booke of Songes" (1597), in: MGG, volume 3, col. 721
509 % ("Dowland"), fig. 3.
511 save reduced_slt, stem_width, reduced_nht, holeheight, beamheight;
513 reduced_slt# = stafflinethickness# * reduction;
514 stem_width# = 1.4 reduced_slt#;
515 reduced_nht# = noteheight# * reduction;
516 holeheight# = 3 reduced_slt#;
517 beamheight# = 0.4(reduced_nht# - holeheight#);
519 define_pixels(beamheight, stem_width, staff_space);
527 exact_center + (1.0 staff_space, 0.6 staff_space) --
528 exact_center + (1.25 staff_space, 0.4 staff_space);
531 exact_center + (1.0 staff_space, -0.4 staff_space) --
532 exact_center + (1.25 staff_space, -0.6 staff_space);
534 draw halfcircle scaled 1.2 staff_space rotated -90
535 shifted (-exact_center + (+0.1 staff_space, 0));
537 set_char_box(0, 3staff_space#, 3staff_space#, 0);
540 fet_beginchar("mensural f clef", "mensural_f", "mensfclef")
542 draw_staff(-1,3, 0.0);
544 draw_mensural_f_clef((0,0), 1.0);
546 fet_beginchar("mensural f clef", "mensural_f_change", "cmensfclef")
547 draw_mensural_f_clef((0,0), .8);
551 def draw_mensural_g_clef(expr exact_center, reduction) =
553 % inspired by Francisco Guerrero, "Lib. 1. Missarum" (1566),
554 % in: MGG, volume 3, col. 858 ("Ducis"); also by Stefano
555 % Fabri, "Quam speciosa veteranis" (1611), in: MGG, volume 3,
556 % col. 1698 ("Fabri"); also by Philippus Dulichius,
557 % "Fasciculus novus ..." (1598), in: MGG, volume 3, col. 919
558 % ("Dulichius"), fig. 1; also by Noe Faignient, "Ic sal de
559 % Heer myn God gebenedye" (1568), in: MGG, volume 3, col. 1735
562 % Metafont code partially inspired by Schwabacher 'G' of yswab
565 save reduced_il, stem_width, height, width, apex_o, hair;
567 reduced_il#=staff_space#*reduction;
569 set_char_box(0.5reduced_il#, 1.5reduced_il#,
570 1.5reduced_il#, 1.5reduced_il#);
572 stem_width# = 0.17 reduced_il#;
573 height# = 1.5 reduced_il#;
574 width# = 1.13 reduced_il#;
575 apex_o# = 0.02 reduced_il#;
576 hair# = 3 stafflinethickness#;
577 define_pixels(reduced_il, stem_width, height, width, apex_o, hair);
579 penpos1(2 stem_width, -142);
580 z1l = (0.715 width, 0.742 height);
583 penpos2(1.179 stem_width, -142);
584 z2l = (width, 0.466 height);
586 z3 = (0.764 width, 0.067 height);
587 z4 = (0.59 width, -apex_o);
588 penpos5(1.179 stem_width, 32);
589 z5l=(0, 0.457 height);
590 penpos6(hair, -56.5);
591 z7 = (x4 - 0.843 stem_width, height + apex_o);
592 z7 - z6l = whatever * dir33.5;
593 penpos8(1.286 stem_width, -130);
594 z8r = (0.715 width, 0.742 height) + (-apex_o, apex_o);
595 z6r - z8r = whatever * (z7 - z8l);
597 z1'r{dir45} .. z2r{down} .. z3r{dir207} .. z5r{up} ..
598 z6r{z7-z6l} & z6r -- z8r -- z8l -- z7 --- z6l ...
599 z5l{down} .. z4{right} .. z3l{dir27} .. z2l{up} ..
600 z1l{1/3[z6l,z7]-z1l} & z1l -- z1r -- z1'r & cycle
601 shifted (-exact_center + (0, -0.75reduced_il));
603 penpos9(stem_width, 0);
604 x9r = x4; y9 = 0.3 height;
609 draw z9 -- (z9 + (0, -0.4reduced_il))
610 shifted (-exact_center + (0, -0.75reduced_il));
618 scaled 0.5 reduced_il
621 shifted (0, 0.25reduced_il)
622 shifted (-exact_center + (0, -0.75reduced_il));
625 scaled 0.4 reduced_il
627 shifted (z8 + (0, 0.45 reduced_il))
628 shifted (0, 0.25reduced_il)
629 shifted (-exact_center + (0, -0.75reduced_il));
633 fet_beginchar("mensural g clef", "mensural_g", "mensgclef")
635 draw_staff(-1,3, 0.0);
637 draw_mensural_g_clef((0,0), 1.0);
639 fet_beginchar("mensural g clef", "mensural_g_change", "cmensgclef")
640 draw_mensural_g_clef((0,0), .8);
645 def draw_petrucci_g_clef(expr exact_center, reduction) =
646 % inspired by Josquin Desprez, "Stabat Mater", Libro tertio,
647 % 1519, printed by Petrucci, in: MGG, volume 7, Table 11.
649 set_char_box(0.6 staff_space#, 0.8 staff_space#, 0.6 staff_space#,
652 save reduced_il, reduced_slt;
654 reduced_il# = staff_space# * reduction;
655 reduced_slt# = stafflinethickness# * reduction;
656 define_pixels(reduced_il, reduced_slt);
658 save za, zb, zc, zd, ze, zf, zg, zh, zi, zj;
659 pair za, zb, zc, zd, ze, zf, zg, zh, zi, zj;
662 xscaled 0.50 reduced_slt
663 yscaled 0.22 reduced_il
666 za = exact_center + (+0.00 reduced_il, +0.00 reduced_il);
667 zb = exact_center + (+0.20 reduced_il, +1.20 reduced_il);
668 zc = exact_center + (-0.10 reduced_il, +2.00 reduced_il);
669 zd = exact_center + (-0.50 reduced_il, +3.00 reduced_il);
670 ze = exact_center + (+0.00 reduced_il, +3.70 reduced_il);
671 zf = exact_center + (+0.20 reduced_il, +3.00 reduced_il);
672 zg = exact_center + (-0.20 reduced_il, +2.00 reduced_il);
673 zh = exact_center + (-0.50 reduced_il, +1.70 reduced_il);
674 zi = exact_center + (-0.80 reduced_il, +0.75 reduced_il);
675 zj = exact_center + (-0.60 reduced_il, +0.60 reduced_il);
677 draw za{-1,2} .. zb .. zc .. zd .. ze .. zf .. zg .. zh .. zi .. zj;
679 save za, zb, zc, zd, ze, zf;
680 pair za, zb, zc, zd, ze, zf;
683 xscaled 0.75 reduced_slt
684 yscaled 0.33 reduced_il
687 za = exact_center + (+0.25 reduced_il, +0.45 reduced_il);
688 zb = exact_center + (-0.25 reduced_il, +0.45 reduced_il);
689 zc = exact_center + (-0.25 reduced_il, -0.45 reduced_il);
690 zd = exact_center + (+0.25 reduced_il, -0.45 reduced_il);
691 ze = exact_center + (+0.30 reduced_il, +0.00 reduced_il);
692 zf = exact_center + (+0.00 reduced_il, +0.00 reduced_il);
694 draw za .. zb .. zc .. zd .. {up}ze -- zf;
698 fet_beginchar("petrucci g clef", "petrucci_g", "petruccigclef")
700 draw_staff(-1,3, 0.0);
702 draw_petrucci_g_clef((0,0), 1.0);
704 fet_beginchar("petrucci g clef", "petrucci_g_change", "cpetruccigclef")
705 draw_petrucci_g_clef((0,0), .8);
718 def draw_hufnagel_do_clef(expr exact_center, reduction) =
720 % inspired by Graduale of Friedrich Zollner (1442), in: MGG,
721 % volume 9, col. 1413 ("Neustift"), fig. 1.
725 reduced_il# = staff_space# * reduction;
727 define_pixels(reduced_il);
730 xscaled (0.60reduced_il)
731 yscaled (0.10reduced_il)
733 save za, zb, zc, zd, ze, zf;
734 pair za, zb, zc, zd, ze, zf;
736 za = exact_center + (+0.30reduced_il, +.45reduced_il);
737 zb = exact_center + (+0.20reduced_il, +.45reduced_il);
738 zc = exact_center + (-0.10reduced_il, +.60reduced_il);
739 zd = exact_center + (-0.40reduced_il, +.45reduced_il);
740 ze = exact_center + (-0.40reduced_il, -.45reduced_il);
741 zf = exact_center + (-0.20reduced_il, -.55reduced_il);
742 draw za .. zb .. zc -- zd -- ze -- zf;
744 set_char_box(0.5reduced_il#, 0.5reduced_il#, 0, reduced_il#);
748 fet_beginchar("Hufnagel do clef", "hufnagel_do", "hufnageldoclef")
750 draw_staff(-1,3, 0.0);
752 draw_hufnagel_do_clef((0,0), 1.0);
754 fet_beginchar("Hufnagel do clef", "hufnagel_do_change", "chufnageldoclef")
755 draw_hufnagel_do_clef((1.3 staff_space#,0), .8);
759 def draw_hufnagel_fa_clef(expr exact_center, reduction) =
761 % inspired by Bamberger Manuscript (15th century), in:
762 % MGG, volume 2, table 59.
766 reduced_il# = staff_space# * reduction;
768 define_pixels(reduced_il);
771 xscaled (0.60reduced_il)
772 yscaled (0.10reduced_il)
774 save za, zb, zc, zd, ze, zf;
775 pair za, zb, zc, zd, ze, zf;
777 za = exact_center + (+0.30reduced_il, +0.70reduced_il);
778 zb = exact_center + (+0.20reduced_il, +0.70reduced_il);
779 zc = exact_center + (-0.10reduced_il, +0.85reduced_il);
780 zd = exact_center + (-0.40reduced_il, +0.70reduced_il);
781 ze = exact_center + (-0.40reduced_il, -1.10reduced_il);
782 draw za .. zb .. zc -- zd -- ze;
787 zg = exact_center + (+0.30reduced_il, -0.05reduced_il);
788 zh = exact_center + (+0.20reduced_il, -0.05reduced_il);
789 zi = exact_center + (-0.10reduced_il, +0.10reduced_il);
790 zj = exact_center + (-0.40reduced_il, -0.05reduced_il);
791 draw zg .. zh .. zi -- zj;
793 set_char_box(0.5reduced_il#, 0.5reduced_il#, 0, reduced_il#);
797 fet_beginchar("Hufnagel fa clef", "hufnagel_fa", "hufnagelfaclef")
799 draw_staff(-1,3, 0.0);
801 draw_hufnagel_fa_clef((0,0), 1.0);
803 fet_beginchar("Hufnagel fa clef", "hufnagel_fa_change", "chufnagelfaclef")
804 draw_hufnagel_fa_clef((0,0), .8);
808 def draw_hufnagel_do_fa_clef(expr exact_center, reduction) =
809 draw_hufnagel_do_clef(exact_center, reduction);
810 draw_hufnagel_fa_clef(exact_center + (0, -2staff_space), reduction);
814 fet_beginchar("Hufnagel do/fa clef", "hufnagel_do_fa", "hufnageldofaclef")
816 draw_staff(-1,3, 0.0);
818 draw_hufnagel_do_fa_clef((0,0), 1.0);
820 fet_beginchar("Hufnagel do/fa clef", "hufnagel_do_fa_change",
822 draw_hufnagel_do_fa_clef((0,0), .8);
826 fet_endgroup ("clefs")