X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mf%2Fparmesan-clefs.mf;h=7d878189792e60978887a0a75d8c7a7c5688771a;hb=a997944a91a231c3b7b3eaf15d7c3ac6baa5c547;hp=08c644f332f277328a4add3dda636b47f27ea405;hpb=13bc8b7eac050092f923edf13c0ea97ec5d16a36;p=lilypond.git diff --git a/mf/parmesan-clefs.mf b/mf/parmesan-clefs.mf index 08c644f332..7d87818979 100644 --- a/mf/parmesan-clefs.mf +++ b/mf/parmesan-clefs.mf @@ -3,7 +3,7 @@ % % source file of LilyPond's pretty-but-neat music font % -% (c) 2001--2003 Juergen Reuter +% (c) 2001--2004 Juergen Reuter % fet_begingroup ("clefs") @@ -53,7 +53,6 @@ def draw_vaticana_do_clef(expr exact_center, reduction) = save reduced_il; reduced_il# = staff_space# * reduction; - set_char_box(0 - xpart exact_center, 0.5reduced_il# + xpart exact_center, 0.8reduced_il# - ypart exact_center, @@ -66,24 +65,29 @@ def draw_vaticana_do_clef(expr exact_center, reduction) = save za, zb, zc, zd, ze, zf; pair za, zb, zc, zd, ze, zf; - rt za = exact_center + (0.50reduced_il, -.45reduced_il); - zb = exact_center + (0.25reduced_il, -.50reduced_il); - lft zc = exact_center + (0.00reduced_il, -.25reduced_il); - lft zd = exact_center + (0.00reduced_il, +.25reduced_il); - ze = exact_center + (0.25reduced_il, +.50reduced_il); - rt zf = exact_center + (0.50reduced_il, +.45reduced_il); + save xoffs, yoffs; + xoffs# = xpart exact_center; + yoffs# = ypart exact_center; + define_pixels(xoffs, yoffs); + + rt za = (xoffs + 0.50reduced_il, yoffs - .45reduced_il); + zb = (xoffs + 0.25reduced_il, yoffs - .50reduced_il); + lft zc = (xoffs + 0.00reduced_il, yoffs - .25reduced_il); + lft zd = (xoffs + 0.00reduced_il, yoffs + .25reduced_il); + ze = (xoffs + 0.25reduced_il, yoffs + .50reduced_il); + rt zf = (xoffs + 0.50reduced_il, yoffs + .45reduced_il); draw za .. zb .. zc -- % lower punctum zd .. ze .. zf; % upper punctum enddef; -fet_beginchar("Ed. Vat. do clef", "vaticana_do", "vatdoclef") +fet_beginchar("Ed. Vat. do clef", "vaticana-do", "vatdoclef") if test = 1: draw_staff(-1,3, 0.0); fi; draw_vaticana_do_clef((0,0), 1.0); fet_endchar; -fet_beginchar("Ed. Vat. do clef", "vaticana_do_change", "vatcdoclef") +fet_beginchar("Ed. Vat. do clef", "vaticana-do_change", "vatcdoclef") draw_vaticana_do_clef((0,0), 1.0); % no reduction fet_endchar; @@ -97,17 +101,22 @@ def draw_vaticana_fa_clef(expr exact_center, reduction) = save za, zb, zc, zd, ze; pair za, zb, zc, zd, ze; + save xoffs, yoffs; + xoffs# = xpart exact_center; + yoffs# = ypart exact_center; + define_pixels(xoffs, yoffs); + %left-handed punctum pickup pencircle xscaled 0.6linethickness yscaled 0.5reduced_il; - lft za = exact_center + (+0.00reduced_il, +0.00reduced_il); - zb = exact_center + (+0.25reduced_il, +0.05reduced_il); - rt zc = exact_center + (+0.50reduced_il, -0.05reduced_il); + lft za = (xoffs + 0.00reduced_il, xoffs + 0.00reduced_il); + zb = (xoffs + 0.25reduced_il, xoffs + 0.05reduced_il); + rt zc = (xoffs + 0.50reduced_il, xoffs - 0.05reduced_il); draw za .. zb .. zc; %stem pickup pencircle scaled 0.6linethickness; xpart zc = xpart zd = xpart ze; - ypart zd = ypart exact_center = bot ypart ze + 1.5reduced_il; + ypart zd = yoffs = bot ypart ze + 1.5reduced_il; draw zd -- ze; %right-handed puncta as in do clef @@ -120,13 +129,13 @@ def draw_vaticana_fa_clef(expr exact_center, reduction) = enddef; -fet_beginchar("Ed. Vat. fa clef", "vaticana_fa", "vatfaclef") +fet_beginchar("Ed. Vat. fa clef", "vaticana-fa", "vatfaclef") if test = 1: draw_staff(-1,3, 0.0); fi; draw_vaticana_fa_clef((0,0), 1.0); fet_endchar; -fet_beginchar("Ed. Vat. fa clef", "vaticana_fa_change", "vatcfaclef") +fet_beginchar("Ed. Vat. fa clef", "vaticana-fa_change", "vatcfaclef") draw_vaticana_fa_clef((0,0), 1.0); % no reduction fet_endchar; @@ -149,15 +158,17 @@ def draw_medicaea_do_clef(expr exact_center, reduction) = flag_height# = 0.5 reduced_il#; define_pixels(flag_height); + save xoffs, yoffs; + xoffs# = xpart exact_center; + yoffs# = ypart exact_center; + define_pixels(xoffs, yoffs); + %upper flag save za, zb; pair za, zb; pickup pencircle xscaled reduced_slt yscaled flag_height; - xpart exact_center - = lft xpart za - = rt xpart zb - reduced_il; - ypart za = ypart exact_center + - 0.5 (reduced_il - flag_height - staff_space); + xoffs = lft xpart za = rt xpart zb - reduced_il; + ypart za = yoffs + 0.5 (reduced_il - flag_height - staff_space); ypart zb = ypart za - reduced_il + flag_height; draw za -- zb; @@ -165,11 +176,8 @@ def draw_medicaea_do_clef(expr exact_center, reduction) = save za, zb; pair za, zb; pickup pencircle xscaled reduced_slt yscaled flag_height; - xpart exact_center - = lft xpart za - = rt xpart zb - reduced_il; - ypart za = ypart exact_center + - 0.5 (reduced_il - flag_height + staff_space); + xoffs = lft xpart za = rt xpart zb - reduced_il; + ypart za = yoffs + 0.5 (reduced_il - flag_height + staff_space); ypart zb = ypart za - reduced_il + flag_height; draw za -- zb; @@ -177,10 +185,8 @@ def draw_medicaea_do_clef(expr exact_center, reduction) = save za, zb; pair za, zb; pickup pencircle scaled reduced_slt; - lft xpart za = lft xpart zb = xpart exact_center; - ypart exact_center - = top ypart zb - 1.5 reduced_il - = bot ypart za + 1.5 reduced_il; + lft xpart za = lft xpart zb = xoffs; + yoffs = top ypart zb - 1.5 reduced_il = bot ypart za + 1.5 reduced_il; draw za -- zb; set_char_box(0 - xpart exact_center, @@ -190,13 +196,13 @@ def draw_medicaea_do_clef(expr exact_center, reduction) = enddef; -fet_beginchar("Ed. Med. do clef", "medicaea_do", "meddoclef") +fet_beginchar("Ed. Med. do clef", "medicaea-do", "meddoclef") if test = 1: draw_staff(-1,3, 0.0); fi; draw_medicaea_do_clef((0,0), 1.0); fet_endchar; -fet_beginchar("Ed. Med. do clef", "medicaea_do_change", "cmeddoclef") +fet_beginchar("Ed. Med. do clef", "medicaea-do_change", "cmeddoclef") draw_medicaea_do_clef((0,0), .8); fet_endchar; @@ -214,17 +220,21 @@ def draw_medicaea_fa_clef(expr exact_center, reduction) = save za, zb, zc, zd, ze; pair za, zb, zc, zd, ze; + save xoffs, yoffs; + xoffs# = xpart exact_center; + yoffs# = ypart exact_center; + define_pixels(xoffs, yoffs); + %stem pickup pencircle scaled linethickness; - xpart za = xpart zb = - xpart exact_center + 0.4reduced_il; - ypart za = ypart exact_center = bot ypart zb + 1.5reduced_il; + xpart za = xpart zb = xoffs + 0.4reduced_il; + ypart za = yoffs = bot ypart zb + 1.5reduced_il; draw za -- zb; %left-handed punctum pickup pencircle xscaled reduced_slt yscaled reduced_il; - lft zc = exact_center; - zd = exact_center + (0.4reduced_il, 0); + lft zc = (xoffs, yoffs); + zd = lft zc + (0.4reduced_il, 0); draw zc -- zd; %right-handed puncta as in do clef @@ -237,13 +247,13 @@ def draw_medicaea_fa_clef(expr exact_center, reduction) = enddef; -fet_beginchar("Ed. Med. fa clef", "medicaea_fa", "medfaclef") +fet_beginchar("Ed. Med. fa clef", "medicaea-fa", "medfaclef") if test = 1: draw_staff(-1,3, 0.0); fi; draw_medicaea_fa_clef((0,0), 1.0); fet_endchar; -fet_beginchar("Ed. Med. fa clef", "medicaea_fa_change", "cmedfaclef") +fet_beginchar("Ed. Med. fa clef", "medicaea-fa_change", "cmedfaclef") draw_medicaea_fa_clef((0,0), .8); fet_endchar; @@ -265,9 +275,7 @@ fet_endchar; % def draw_brevis(expr exact_center, bwidth, bheight, blinethickness) = - save xoffs, yoffs, brevis_width, brevis_height, linethickness; - xoffs# = xpart exact_center; - yoffs# = ypart exact_center; + save brevis_width, brevis_height, linethickness; brevis_width# = bwidth; brevis_height# = bheight; linethickness# = blinethickness; @@ -278,7 +286,12 @@ def draw_brevis(expr exact_center, bwidth, bheight, blinethickness) = serif_size# = (hole_height# - linethickness#)/2; serif_protrude# = 1.5 serif_size#; - define_pixels(xoffs, yoffs, brevis_width, brevis_height, linethickness); + save xoffs, yoffs; + xoffs# = xpart exact_center; + yoffs# = ypart exact_center; + define_pixels(xoffs, yoffs); + + define_pixels(brevis_width, brevis_height, linethickness); define_pixels(beam_width, beam_height, serif_size, serif_protrude); penpos1(beam_width, 0); @@ -309,7 +322,7 @@ def draw_brevis(expr exact_center, bwidth, bheight, blinethickness) = enddef; -def draw_neo_mensural_c_clef(expr exact_center, reduction) = +def draw_neomensural_c_clef(expr exact_center, reduction) = save reduced_il, reduced_slt, stem_width; reduced_il# = staff_space# * reduction; reduced_slt# = linethickness# * reduction; @@ -344,14 +357,14 @@ def draw_neo_mensural_c_clef(expr exact_center, reduction) = enddef; -fet_beginchar("neo-mensural c clef", "neo_mensural_c", "neomenscclef") +fet_beginchar("neo-mensural c clef", "neomensural-c", "neomenscclef") if test = 1: draw_staff(-1,3, 0.0); fi; - draw_neo_mensural_c_clef((0,0), 1.0); + draw_neomensural_c_clef((0,0), 1.0); fet_endchar; -fet_beginchar("neo-mensural c clef", "neo_mensural_c_change", "cneomenscclef") - draw_neo_mensural_c_clef((0,0), .8); +fet_beginchar("neo-mensural c clef", "neomensural-c_change", "cneomenscclef") + draw_neomensural_c_clef((0,0), .8); fet_endchar; @@ -402,53 +415,53 @@ def draw_petrucci_c_clef(expr exact_center, flare_align, reduction) = enddef; -fet_beginchar("petrucci c1 clef", "petrucci_c1", "petruccic1clef") +fet_beginchar("petrucci c1 clef", "petrucci-c1", "petruccic1clef") if test = 1: draw_staff(-1,3, 0.0); fi; draw_petrucci_c_clef((0,0), +2, 1.0); fet_endchar; -fet_beginchar("petrucci c1 clef", "petrucci_c1_change", "cpetruccic1clef") +fet_beginchar("petrucci c1 clef", "petrucci-c1_change", "cpetruccic1clef") draw_petrucci_c_clef((0,0), +2, .8); fet_endchar; -fet_beginchar("petrucci c2 clef", "petrucci_c2", "petruccic2clef") +fet_beginchar("petrucci c2 clef", "petrucci-c2", "petruccic2clef") if test = 1: draw_staff(-1,3, 0.0); fi; draw_petrucci_c_clef((0,0), +1, 1.0); fet_endchar; -fet_beginchar("petrucci c2 clef", "petrucci_c2_change", "cpetruccic2clef") +fet_beginchar("petrucci c2 clef", "petrucci-c2_change", "cpetruccic2clef") draw_petrucci_c_clef((0,0), +1, .8); fet_endchar; -fet_beginchar("petrucci c3 clef", "petrucci_c3", "petruccic3clef") +fet_beginchar("petrucci c3 clef", "petrucci-c3", "petruccic3clef") if test = 1: draw_staff(-1,3, 0.0); fi; draw_petrucci_c_clef((0,0), 0, 1.0); fet_endchar; -fet_beginchar("petrucci c3 clef", "petrucci_c3_change", "cpetruccic3clef") +fet_beginchar("petrucci c3 clef", "petrucci-c3_change", "cpetruccic3clef") draw_petrucci_c_clef((0,0), 0, .8); fet_endchar; -fet_beginchar("petrucci c4 clef", "petrucci_c4", "petruccic4clef") +fet_beginchar("petrucci c4 clef", "petrucci-c4", "petruccic4clef") if test = 1: draw_staff(-1,3, 0.0); fi; draw_petrucci_c_clef((0,0), -1, 1.0); fet_endchar; -fet_beginchar("petrucci c4 clef", "petrucci_c4_change", "cpetruccic4clef") +fet_beginchar("petrucci c4 clef", "petrucci-c4_change", "cpetruccic4clef") draw_petrucci_c_clef((0,0), -1, .8); fet_endchar; -fet_beginchar("petrucci c5 clef", "petrucci_c5", "petruccic5clef") +fet_beginchar("petrucci c5 clef", "petrucci-c5", "petruccic5clef") if test = 1: draw_staff(-1,3, 0.0); fi; draw_petrucci_c_clef((0,0), -2, 1.0); fet_endchar; -fet_beginchar("petrucci c5 clef", "petrucci_c5_change", "cpetruc5iceclef") +fet_beginchar("petrucci c5 clef", "petrucci-c5_change", "cpetruc5iceclef") draw_petrucci_c_clef((0,0), -2, .8); fet_endchar; @@ -487,32 +500,31 @@ def draw_mensural_c_clef(expr exact_center, reduction) = set_char_box(0 - xpart exact_center, 2reduced_il# + xpart exact_center, - -yoffs# + 2.2 half_reduced_il# + staff_space# - ypart exact_center, - yoffs# + 2.2 half_reduced_il# + ypart exact_center); + 2.2 half_reduced_il# + staff_space# - 2 ypart exact_center, + 2.2 half_reduced_il# + 2 ypart exact_center); enddef; -fet_beginchar("mensural c clef", "mensural_c", "menscclef") +fet_beginchar("mensural c clef", "mensural-c", "menscclef") if test = 1: draw_staff(-1,3, 0.0); fi; draw_mensural_c_clef((0,0), 1.0); fet_endchar; -fet_beginchar("mensural c clef", "mensural_c_change", "cmenscclef") +fet_beginchar("mensural c clef", "mensural-c_change", "cmenscclef") draw_mensural_c_clef((0,0), .8); fet_endchar; def draw_diamond(expr exact_center, reduction) = - save stem_width, reduced_il, reduced_nht, holeheight, beamheight; + save stem_width, reduced_nht, holeheight, beamheight; save rh_height, rh_width; stem_width# = 1.4 reduced_slt#; - reduced_il# = staff_space# * reduction; reduced_nht# = noteheight# * reduction; holeheight# = 3 reduced_slt#; beamheight# = 0.4(reduced_nht# - holeheight#); - rh_height# = 1.2reduced_il#; + rh_height# = 1.2 staff_space# * reduction; rh_width# / rh_height# = tand(30); define_pixels(beamheight); @@ -520,16 +532,21 @@ def draw_diamond(expr exact_center, reduction) = define_pixels(rh_height); define_pixels(rh_width); + save xoffs, yoffs; + xoffs# = xpart exact_center; + yoffs# = ypart exact_center; + define_pixels(xoffs, yoffs); + pickup pencircle xscaled beamheight yscaled stem_width rotated 45; draw - exact_center + (-rh_width/2, 0) -- - exact_center + (0, rh_height/2) -- - exact_center + (+rh_width/2, 0) -- - exact_center + (0, -rh_height/2) -- + (xoffs - rh_width/2, yoffs) -- + (xoffs, yoffs + rh_height/2) -- + (xoffs + rh_width/2, yoffs) -- + (xoffs, yoffs - rh_height/2) -- cycle; enddef; @@ -542,49 +559,50 @@ def draw_petrucci_f_clef(expr exact_center, reduction) = % col. 1649 ("Contredanse"), fig. 2. % - save reduced_il, reduced_slt; + save interline, reduced_il, reduced_slt; + interline# = staff_space#; reduced_il# = staff_space# * reduction; reduced_slt# = linethickness# * reduction; - define_pixels(reduced_il); - define_pixels(reduced_slt); draw_brevis(exact_center, reduced_il#, reduced_il#, reduced_slt#); + draw_diamond(exact_center + (1.6interline#*reduction, interline#/2), + reduction); + draw_diamond(exact_center + (1.6interline#*reduction, -interline#/2), + reduction); + + define_pixels(interline); + define_pixels(reduced_il); + define_pixels(reduced_slt); - save stem_width, interline; + save stem_width; stem_width# = 1.4 reduced_slt#; - interline# = staff_space#; define_pixels(stem_width); - define_pixels(interline); - addto currentpicture also currentpicture - yscaled -1 shifted (0, 2*(ypart exact_center)); - addto currentpicture also currentpicture - xscaled -1 shifted (2x4l,0); + save xoffs, yoffs; + xoffs# = xpart exact_center; + yoffs# = ypart exact_center; + define_pixels(xoffs, yoffs); % brevis stem pickup pencircle xscaled stem_width yscaled blot_diameter; - rt z8 = exact_center + (reduced_il, 0); + rt z8 = (xoffs + reduced_il, yoffs); z9 = z8 + (0, -4reduced_il); draw z8 .. z9; - % upper diamond - draw_diamond(exact_center + (1.6interline*reduction, interline/2), - reduction); + % upper diamond's stem pickup pencircle xscaled stem_width yscaled blot_diameter; - z10 = exact_center + - (1.6interline*reduction + stem_width/2, interline*reduction); + z10 = (xoffs + 1.6interline*reduction + stem_width/2, + yoffs + interline*reduction); top z11 = z10 + (0, 1.5interline*reduction); - draw z10 .. z11; % diamond stem + draw z10 .. z11; - % lower diamond - draw_diamond(exact_center + (1.6interline*reduction, -interline/2), - reduction); + % lower diamond's stem pickup pencircle xscaled stem_width yscaled blot_diameter; - z12 = exact_center + - (1.6interline*reduction - stem_width/2, -interline*reduction); + z12 = (xoffs + 1.6interline*reduction - stem_width/2, + yoffs - interline*reduction); bot z13 = z12 + (0, -3.5interline*reduction); - draw z12 .. z13; % diamond stem + draw z12 .. z13; save reduced_il, rh_height, rh_width; reduced_il# = staff_space# * reduction; @@ -597,13 +615,13 @@ def draw_petrucci_f_clef(expr exact_center, reduction) = enddef; -fet_beginchar("petrucci f clef", "petrucci_f", "petruccifclef") +fet_beginchar("petrucci f clef", "petrucci-f", "petruccifclef") if test = 1: draw_staff(-1,3, 0.0); fi; draw_petrucci_f_clef((0,0), 1.0); fet_endchar; -fet_beginchar("petrucci f clef", "petrucci_f_change", "cpetruccifclef") +fet_beginchar("petrucci f clef", "petrucci-f_change", "cpetruccifclef") draw_petrucci_f_clef((0,0), .8); fet_endchar; @@ -623,6 +641,11 @@ def draw_mensural_f_clef(expr exact_center, reduction) = dot_diameter# = 0.1 reduction * staff_space#; define_pixels(width, stem_width, staff_space, dot_diameter); + save xoffs, yoffs; + xoffs# = xpart exact_center; + yoffs# = ypart exact_center; + define_pixels(xoffs, yoffs); + pickup pencircle xscaled 0.2width yscaled stem_width @@ -631,12 +654,12 @@ def draw_mensural_f_clef(expr exact_center, reduction) = % half circle lft z5 = (0, 0); draw halfcircle scaled width rotated -90 - shifted (z5-exact_center); + shifted (z5-(xoffs, yoffs)); % upper dot - rt x2 = xpart exact_center + width; - top y1 = ypart exact_center + 0.5width; + rt x2 = xoffs + width; + top y1 = yoffs + 0.5width; z2 - z1 = (dot_diameter, -dot_diameter); draw z1 -- z2; @@ -652,130 +675,17 @@ def draw_mensural_f_clef(expr exact_center, reduction) = 0.5width# + ypart exact_center); enddef; -fet_beginchar("mensural f clef", "mensural_f", "mensfclef") +fet_beginchar("mensural f clef", "mensural-f", "mensfclef") if test = 1: draw_staff(-1,3, 0.0); fi; draw_mensural_f_clef((0,0), 1.0); fet_endchar; -fet_beginchar("mensural f clef", "mensural_f_change", "cmensfclef") +fet_beginchar("mensural f clef", "mensural-f_change", "cmensfclef") draw_mensural_f_clef((0,0), .8); fet_endchar; -def draw_mensural_g_clef(expr exact_center, reduction) = - % - % TODO: Rewrite me! This clef looks completely awful! --jr - % - - - % - % This code is completely undebuggable. - % - % the shift command is forbidden because (pen)labels come out - % completely wrong - % - - % - % inspired by Francisco Guerrero, "Lib. 1. Missarum" (1566), - % in: MGG, volume 3, col. 858 ("Ducis"); also by Stefano - % Fabri, "Quam speciosa veteranis" (1611), in: MGG, volume 3, - % col. 1698 ("Fabri"); also by Philippus Dulichius, - % "Fasciculus novus ..." (1598), in: MGG, volume 3, col. 919 - % ("Dulichius"), fig. 1; also by Noe Faignient, "Ic sal de - % Heer myn God gebenedye" (1568), in: MGG, volume 3, col. 1735 - % ("Faignient"). - % - % Metafont code partially inspired by Schwabacher 'G' of yswab - % font. - - save reduced_il, stem_width, height, width, apex_o, hair; - - reduced_il#=staff_space#*reduction; - - set_char_box(0 - xpart exact_center, - 1.2reduced_il# + xpart exact_center, - 0.8reduced_il# - ypart exact_center, - 1.5reduced_il# + ypart exact_center); - - stem_width# = 0.17 reduced_il#; - height# = 1.5 reduced_il#; - width# = 1.13 reduced_il#; - apex_o# = 0.02 reduced_il#; - hair# = 3 linethickness#; - define_pixels(reduced_il, stem_width, height, width, apex_o, hair); - - penpos1(2 stem_width, -142); - z1l = (0.715 width, 0.742 height); - penpos1'(hair, -90); - z1'l = z1r; - penpos2(1.179 stem_width, -142); - z2l = (width, 0.466 height); - penpos3(hair, 77); - z3 = (0.764 width, 0.067 height); - z4 = (0.59 width, -apex_o); - penpos5(1.179 stem_width, 32); - z5l=(0, 0.457 height); - penpos6(hair, -56.5); - z7 = (x4 - 0.843 stem_width, height + apex_o); - z7 - z6l = whatever * dir33.5; - penpos8(1.286 stem_width, -130); - z8r = (0.715 width, 0.742 height) + (-apex_o, apex_o); - z6r - z8r = whatever * (z7 - z8l); - filldraw - z1'r{dir45} .. z2r{down} .. z3r{dir207} .. z5r{up} .. - z6r{z7-z6l} & z6r -- z8r -- z8l -- z7 --- z6l ... - z5l{down} .. z4{right} .. z3l{dir27} .. z2l{up} .. - z1l{1/3[z6l,z7]-z1l} & z1l -- z1r -- z1'r & cycle - shifted (-exact_center + (0, -0.75reduced_il)); - - penpos9(stem_width, 0); - x9r = x4; y9 = 0.3 height; - - pickup pencircle - scaled stem_width - rotated 45; - draw z9 -- (z9 + (0, -0.4reduced_il)) - shifted (-exact_center + (0, -0.75reduced_il)); - - pickup pencircle - xscaled stem_width - yscaled hair - rotated 30; - - draw halfcircle - scaled 0.5 reduced_il - rotated -90 - shifted z8 - shifted (0, 0.25reduced_il) - shifted (-exact_center + (0, -0.75reduced_il)); - - draw halfcircle - scaled 0.4 reduced_il - rotated 90 - shifted (z8 + (0, 0.45 reduced_il)) - shifted (0, 0.25reduced_il) - shifted (-exact_center + (0, -0.75reduced_il)); -enddef; - - -if 0 = 1: - % - % This clef is switched due to path problems at smaller sizes. - % -fet_beginchar("mensural g clef", "mensural_g", "mensgclef") - if test = 1: - draw_staff(-1,3, 0.0); - fi; - draw_mensural_g_clef((0,0), 1.0); -fet_endchar; -fet_beginchar("mensural g clef", "mensural_g_change", "cmensgclef") - draw_mensural_g_clef((0,0), .8); -fet_endchar; - -fi; - - def draw_petrucci_g_clef(expr exact_center, reduction) = % inspired by Josquin Desprez, "Stabat Mater", Libro tertio, % 1519, printed by Petrucci, in: MGG, volume 7, Table 11. @@ -794,21 +704,26 @@ def draw_petrucci_g_clef(expr exact_center, reduction) = save za, zb, zc, zd, ze, zf, zg, zh, zi, zj; pair za, zb, zc, zd, ze, zf, zg, zh, zi, zj; + save xoffs, yoffs; + xoffs# = xpart exact_center; + yoffs# = ypart exact_center; + define_pixels(xoffs, yoffs); + pickup pencircle xscaled 0.50 reduced_slt yscaled 0.22 reduced_il rotated -35; - lft za = exact_center + (0.80 reduced_il, +0.00 reduced_il); - lft zb = exact_center + (1.00 reduced_il, +1.20 reduced_il); - lft zc = exact_center + (0.70 reduced_il, +2.00 reduced_il); - lft zd = exact_center + (0.30 reduced_il, +3.00 reduced_il); - lft ze = exact_center + (0.80 reduced_il, +3.70 reduced_il); - lft zf = exact_center + (1.00 reduced_il, +3.00 reduced_il); - lft zg = exact_center + (0.60 reduced_il, +2.00 reduced_il); - lft zh = exact_center + (0.30 reduced_il, +1.70 reduced_il); - lft zi = exact_center + (0.00 reduced_il, +0.75 reduced_il); - lft zj = exact_center + (0.20 reduced_il, +0.60 reduced_il); + lft za = (xoffs + 0.80 reduced_il, yoffs + 0.00 reduced_il); + lft zb = (xoffs + 1.00 reduced_il, yoffs + 1.20 reduced_il); + lft zc = (xoffs + 0.70 reduced_il, yoffs + 2.00 reduced_il); + lft zd = (xoffs + 0.30 reduced_il, yoffs + 3.00 reduced_il); + lft ze = (xoffs + 0.80 reduced_il, yoffs + 3.70 reduced_il); + lft zf = (xoffs + 1.00 reduced_il, yoffs + 3.00 reduced_il); + lft zg = (xoffs + 0.60 reduced_il, yoffs + 2.00 reduced_il); + lft zh = (xoffs + 0.30 reduced_il, yoffs + 1.70 reduced_il); + lft zi = (xoffs + 0.00 reduced_il, yoffs + 0.75 reduced_il); + lft zj = (xoffs + 0.20 reduced_il, yoffs + 0.60 reduced_il); draw za{-1,2} .. zb .. zc .. zd .. ze .. zf .. zg .. zh .. zi .. zj; @@ -820,24 +735,55 @@ def draw_petrucci_g_clef(expr exact_center, reduction) = yscaled 0.33 reduced_il rotated -35; - lft za = exact_center + (1.05 reduced_il, +0.45 reduced_il); - lft zb = exact_center + (0.55 reduced_il, +0.45 reduced_il); - lft zc = exact_center + (0.55 reduced_il, -0.45 reduced_il); - lft zd = exact_center + (1.05 reduced_il, -0.45 reduced_il); - lft ze = exact_center + (1.10 reduced_il, +0.00 reduced_il); - lft zf = exact_center + (0.80 reduced_il, +0.00 reduced_il); + lft za = (xoffs + 1.05 reduced_il, yoffs + 0.45 reduced_il); + lft zb = (xoffs + 0.55 reduced_il, yoffs + 0.45 reduced_il); + lft zc = (xoffs + 0.55 reduced_il, yoffs - 0.45 reduced_il); + lft zd = (xoffs + 1.05 reduced_il, yoffs - 0.45 reduced_il); + lft ze = (xoffs + 1.10 reduced_il, yoffs + 0.00 reduced_il); + lft zf = (xoffs + 0.80 reduced_il, yoffs + 0.00 reduced_il); draw za .. zb .. zc .. zd .. {up}ze -- zf; enddef; -fet_beginchar("petrucci g clef", "petrucci_g", "petruccigclef") +fet_beginchar("petrucci g clef", "petrucci-g", "petruccigclef") + if test = 1: + draw_staff(-1,3, 0.0); + fi; + draw_petrucci_g_clef((0,0), 1.0); +fet_endchar; +fet_beginchar("petrucci g clef", "petrucci-g_change", "cpetruccigclef") + draw_petrucci_g_clef((0,0), .8); +fet_endchar; + + +def draw_mensural_g_clef(expr exact_center, reduction) = + % TODO: Rewrite me. The former mensural g clef looked ugly, and the + % code was removed when it broke for small font sizes after some + % global changes in the font. Currently, the character is mapped to + % a copy of the petrucci g clef (which, after all, *is* a mensural g + % clef, but not the one that we have in mind here). -- jr + % + % Possible sources of inspiration for this clef include: Francisco + % Guerrero, "Lib. 1. Missarum" (1566), in: MGG, volume 3, col. 858 + % ("Ducis"); Stefano Fabri, "Quam speciosa veteranis" (1611), in: + % MGG, volume 3, col. 1698 ("Fabri"); Philippus Dulichius, + % "Fasciculus novus ..." (1598), in: MGG, volume 3, col. 919 + % ("Dulichius"), fig. 1; Noe Faignient, "Ic sal de Heer myn God + % gebenedye" (1568), in: MGG, volume 3, col. 1735 ("Faignient"). +enddef; + +% +% FIXME: This clef is preliminarily mapped to the petrucci g clef +% until the code for the mensural g clef will be rewritten. +% +fet_beginchar("mensural g clef", "mensural-g", "mensgclef") if test = 1: draw_staff(-1,3, 0.0); fi; draw_petrucci_g_clef((0,0), 1.0); fet_endchar; -fet_beginchar("petrucci g clef", "petrucci_g_change", "cpetruccigclef") +fet_beginchar("mensural g clef", "mensural-g_change", "cmensgclef") draw_petrucci_g_clef((0,0), .8); fet_endchar; @@ -869,12 +815,17 @@ def draw_hufnagel_do_clef(expr exact_center, reduction) = save za, zb, zc, zd, ze, zf; pair za, zb, zc, zd, ze, zf; - za = exact_center + (0.90reduced_il, +.45reduced_il); - zb = exact_center + (0.80reduced_il, +.45reduced_il); - zc = exact_center + (0.50reduced_il, +.60reduced_il); - zd = exact_center + (0.20reduced_il, +.45reduced_il); - ze = exact_center + (0.20reduced_il, -.45reduced_il); - zf = exact_center + (0.40reduced_il, -.55reduced_il); + save xoffs, yoffs; + xoffs# = xpart exact_center; + yoffs# = ypart exact_center; + define_pixels(xoffs, yoffs); + + za = (xoffs + 0.90reduced_il, yoffs + .45reduced_il); + zb = (xoffs + 0.80reduced_il, yoffs + .45reduced_il); + zc = (xoffs + 0.50reduced_il, yoffs + .60reduced_il); + zd = (xoffs + 0.20reduced_il, yoffs + .45reduced_il); + ze = (xoffs + 0.20reduced_il, yoffs - .45reduced_il); + zf = (xoffs + 0.40reduced_il, yoffs - .55reduced_il); draw za .. zb .. zc -- zd -- ze -- zf; set_char_box(0 - xpart exact_center, @@ -884,13 +835,13 @@ def draw_hufnagel_do_clef(expr exact_center, reduction) = enddef; -fet_beginchar("Hufnagel do clef", "hufnagel_do", "hufnageldoclef") +fet_beginchar("Hufnagel do clef", "hufnagel-do", "hufnageldoclef") if test = 1: draw_staff(-1,3, 0.0); fi; draw_hufnagel_do_clef((0,0), 1.0); fet_endchar; -fet_beginchar("Hufnagel do clef", "hufnagel_do_change", "chufnageldoclef") +fet_beginchar("Hufnagel do clef", "hufnagel-do_change", "chufnageldoclef") draw_hufnagel_do_clef((0,0), .8); fet_endchar; @@ -913,20 +864,25 @@ def draw_hufnagel_fa_clef(expr exact_center, reduction) = save za, zb, zc, zd, ze, zf; pair za, zb, zc, zd, ze, zf; - za = exact_center + (0.90reduced_il, +0.70reduced_il); - zb = exact_center + (0.80reduced_il, +0.70reduced_il); - zc = exact_center + (0.50reduced_il, +0.85reduced_il); - zd = exact_center + (0.20reduced_il, +0.70reduced_il); - ze = exact_center + (0.20reduced_il, -1.10reduced_il); + save xoffs, yoffs; + xoffs# = xpart exact_center; + yoffs# = ypart exact_center; + define_pixels(xoffs, yoffs); + + za = (xoffs + 0.90reduced_il, yoffs + 0.70reduced_il); + zb = (xoffs + 0.80reduced_il, yoffs + 0.70reduced_il); + zc = (xoffs + 0.50reduced_il, yoffs + 0.85reduced_il); + zd = (xoffs + 0.20reduced_il, yoffs + 0.70reduced_il); + ze = (xoffs + 0.20reduced_il, yoffs - 1.10reduced_il); draw za .. zb .. zc -- zd -- ze; save zg, zh, zi, zj; pair zg, zh, zi, zj; - zg = exact_center + (0.90reduced_il, -0.05reduced_il); - zh = exact_center + (0.80reduced_il, -0.05reduced_il); - zi = exact_center + (0.50reduced_il, +0.10reduced_il); - zj = exact_center + (0.20reduced_il, -0.05reduced_il); + zg = (xoffs + 0.90reduced_il, yoffs - 0.05reduced_il); + zh = (xoffs + 0.80reduced_il, yoffs - 0.05reduced_il); + zi = (xoffs + 0.50reduced_il, yoffs + 0.10reduced_il); + zj = (xoffs + 0.20reduced_il, yoffs - 0.05reduced_il); draw zg .. zh .. zi -- zj; set_char_box(0 - xpart exact_center, @@ -936,13 +892,13 @@ def draw_hufnagel_fa_clef(expr exact_center, reduction) = enddef; -fet_beginchar("Hufnagel fa clef", "hufnagel_fa", "hufnagelfaclef") +fet_beginchar("Hufnagel fa clef", "hufnagel-fa", "hufnagelfaclef") if test = 1: draw_staff(-1,3, 0.0); fi; draw_hufnagel_fa_clef((0,0), 1.0); fet_endchar; -fet_beginchar("Hufnagel fa clef", "hufnagel_fa_change", "chufnagelfaclef") +fet_beginchar("Hufnagel fa clef", "hufnagel-fa_change", "chufnagelfaclef") draw_hufnagel_fa_clef((0,0), .8); fet_endchar; @@ -957,13 +913,13 @@ def draw_hufnagel_do_fa_clef(expr exact_center, reduction) = enddef; -fet_beginchar("Hufnagel do/fa clef", "hufnagel_do_fa", "hufnageldofaclef") +fet_beginchar("Hufnagel do/fa clef", "hufnagel-do-fa", "hufnageldofaclef") if test = 1: draw_staff(-1,3, 0.0); fi; draw_hufnagel_do_fa_clef((0,0), 1.0); fet_endchar; -fet_beginchar("Hufnagel do/fa clef", "hufnagel_do_fa_change", +fet_beginchar("Hufnagel do/fa clef", "hufnagel-do-fa_change", "chufnageldofaclef") draw_hufnagel_do_fa_clef((0,0), .8); fet_endchar;