X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mf%2Fparmesan-clefs.mf;h=a291e3613afc8f8604291c115ecf986c36dd5170;hb=HEAD;hp=34a09cf20bc40d7b0def688c2af66fc54731362f;hpb=6a1a605d8235d799c5f19f334c9341e19e2d587c;p=lilypond.git diff --git a/mf/parmesan-clefs.mf b/mf/parmesan-clefs.mf index 34a09cf20b..a291e3613a 100644 --- a/mf/parmesan-clefs.mf +++ b/mf/parmesan-clefs.mf @@ -1,13 +1,12 @@ % Feta (not the Font-En-Tja) music font -- ancient clefs % This file is part of LilyPond, the GNU music typesetter. % -% Copyright (C) 2001--2012 Juergen Reuter +% Copyright (C) 2001--2015 Juergen Reuter % -% -% LilyPond is free software: you can redistribute it and/or modify +% The LilyPond font is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or -% (at your option) any later version. +% (at your option) any later version, or under the SIL Open Font License. % % LilyPond is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -126,9 +125,7 @@ enddef; fet_beginchar ("Ed. Vat. do clef", "vaticana.do"); - if test = 1: - draw_staff (-1, 3, 0.0); - fi; + draw_staff_if_debugging (-1, 3); draw_vaticana_do_clef ((0, 0), 1.0); fet_endchar; @@ -195,9 +192,7 @@ enddef; fet_beginchar ("Ed. Vat. fa clef", "vaticana.fa"); - if test = 1: - draw_staff (-1, 3, 0.0); - fi; + draw_staff_if_debugging (-1, 3); draw_vaticana_fa_clef ((0, 0), 1.0); fet_endchar; @@ -283,9 +278,7 @@ enddef; fet_beginchar ("Ed. Med. do clef", "medicaea.do"); - if test = 1: - draw_staff (-1, 3, 0.0); - fi; + draw_staff_if_debugging (-1, 3); draw_medicaea_do_clef ((0, 0), 1.0); fet_endchar; @@ -353,9 +346,7 @@ enddef; fet_beginchar ("Ed. Med. fa clef", "medicaea.fa"); - if test = 1: - draw_staff (-1, 3, 0.0); - fi; + draw_staff_if_debugging (-1, 3); draw_medicaea_fa_clef ((0, 0), 1.0); fet_endchar; @@ -443,6 +434,7 @@ def draw_brevis (expr exact_center, bwidth, bheight, blinethickness) = penlabels (1, 2, 3); enddef; + % % Draw two brevis notes; the second one shifted down by `shift'. % The other parameters are the same as with `draw_brevis'. @@ -522,87 +514,6 @@ def draw_double_brevis (expr exact_center, bwidth, bheight, enddef; -% -% Draw three brevis notes; the second one shifted down by `shift', -% the third one by `2 shift'. -% The other parameters are the same as with `draw_brevis'. -% -def draw_triple_brevis (expr exact_center, bwidth, bheight, - blinethickness, shift) = - save brevis_width, brevis_height, linethickness; - - brevis_width# = bwidth; - brevis_height# = bheight; - linethickness# = blinethickness; - - save beam_width, beam_height; - save serif_size, serif_protrude, hole_height; - - beam_width# = 1.4 linethickness#; - hole_height# = 3 linethickness#; - 2 beam_height# + hole_height# = brevis_height#; - serif_size# = (hole_height# - linethickness#) / 2; - serif_protrude# = 1.5 serif_size#; - - 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); - - z1l = (xoffs, yoffs - linethickness); - z2r = z1r + serif_size * (1, -1); - z3l = z2l + (-serif_size, -serif_protrude); - - penpos1 (beam_width, 0); - penpos2 (beam_height, 90); - penpos3 (beam_width, 180); - - z7 = z1 shifted (0, -2 shift); - z8 = z2 shifted (0, -2 shift); - z9 = z3 shifted (0, -2 shift); - - penpos7 (beam_width, 0); - penpos8 (beam_height, 90); - penpos9 (beam_width, 180); - - save pat_in, pat_out; - path pat_in, pat_out; - - pat_out := z9r{down} - .. z9l{up} - .. z8l{right}; - pat_out := pat_out - -- reverse pat_out xscaled -1 - shifted (2 xoffs + brevis_width, 0); - pat_out := pat_out - -- reverse pat_out yscaled -1 - shifted (0, -2 yoffs) - -- cycle; - - fill pat_out; - - pat_in := z1r{down} - .. z2r{right}; - pat_in := pat_in - -- reverse pat_in xscaled -1 - shifted (2 xoffs + brevis_width, 0); - pat_in := pat_in - -- reverse pat_in yscaled -1 - shifted (0, 2 yoffs) - -- cycle; - - unfill pat_in; - unfill pat_in shifted (0, -shift); - unfill pat_in shifted (0, -2 shift); - - penlabels (1, 2, 3, 7, 8, 9); -enddef; - - def draw_neomensural_c_clef (expr exact_center, reduction) = save reduced_il, reduced_slt, stem_width; @@ -670,9 +581,7 @@ enddef; fet_beginchar ("neo-mensural c clef", "neomensural.c"); - if test = 1: - draw_staff (-1, 3, 0.0); - fi; + draw_staff_if_debugging (-1, 3); draw_neomensural_c_clef ((0, 0), 1.0); fet_endchar; @@ -777,9 +686,7 @@ enddef; fet_beginchar ("petrucci c1 clef", "petrucci.c1"); - if test = 1: - draw_staff (-1, 3, 0.0); - fi; + draw_staff_if_debugging (-1, 3); draw_petrucci_c_clef ((0, 0), +2, 1.0); fet_endchar; @@ -790,9 +697,7 @@ fet_endchar; fet_beginchar ("petrucci c2 clef", "petrucci.c2"); - if test = 1: - draw_staff (-1, 3, 0.0); - fi; + draw_staff_if_debugging (-1, 3); draw_petrucci_c_clef ((0, 0), +1, 1.0); fet_endchar; @@ -803,9 +708,7 @@ fet_endchar; fet_beginchar ("petrucci c3 clef", "petrucci.c3"); - if test = 1: - draw_staff (-1, 3, 0.0); - fi; + draw_staff_if_debugging (-1, 3); draw_petrucci_c_clef ((0, 0), 0, 1.0); fet_endchar; @@ -816,9 +719,7 @@ fet_endchar; fet_beginchar ("petrucci c4 clef", "petrucci.c4"); - if test = 1: - draw_staff (-1, 3, 0.0); - fi; + draw_staff_if_debugging (-1, 3); draw_petrucci_c_clef ((0, 0), -1, 1.0); fet_endchar; @@ -829,9 +730,7 @@ fet_endchar; fet_beginchar ("petrucci c5 clef", "petrucci.c5"); - if test = 1: - draw_staff (-1, 3, 0.0); - fi; + draw_staff_if_debugging (-1, 3); draw_petrucci_c_clef ((0, 0), -2, 1.0); fet_endchar; @@ -841,97 +740,104 @@ fet_beginchar ("petrucci c5 clef", "petrucci.c5_change"); fet_endchar; -def draw_mensural_c_clef (expr exact_center, reduction) = - % inspired by Ockeghem, "Missa Prolationum", in: MGG, volume - % 9, table 94. - - save reduced_il; +def draw_mensural_c_clef (expr exact_center, reduction, fill_char) = + save reduced_il, vert_thick, hor_thick, blot_rad; reduced_il# = staff_space# * reduction; + vert_thick# = linethickness# * 1.4; + hor_thick# = staff_space# * reduction * 0.25; + + blot_rad = blot_diameter / 2; + + define_pixels (reduced_il, vert_thick, hor_thick); + + pickup pencircle scaled blot_diameter; + + penpos1 (vert_thick, 0); + penpos2 (vert_thick, 0); + penpos3 (hor_thick, 90); + penpos4 (hor_thick, 90); + penpos5 (hor_thick, 90); + penpos6 (hor_thick, 90); + penpos7 (vert_thick, 0); + penpos8 (hor_thick, 90); + + z1l = (0, 0); + x2l = 0; + top y2 = 2.2 reduced_il; + z3 = (vert_thick, 0.75 reduced_il); + z4 = z3 + (reduced_il - vert_thick, 0); + z5 = z4 + (vert_thick, -0.5 reduced_il); + z6 = z5 - (reduced_il, 0); + z7 = z4 + (0.5 vert_thick, 0.5 reduced_il); + z8 = z5 - (vert_thick, 0); + + save pat, pat_mid; + path pat, pat_mid; + + pat = z1l + -- z2l{up} + .. z2 + (0, blot_rad) + .. {down}z2r + -- top z3r{down} + .. {right}rt z3r + -- lft z4r{right} + .. {up}top z4r + -- z7l{up} + .. z7 + (0, blot_rad) + .. {down}z7r + -- top z5l{down} + .. {left}lft z5l + -- rt z6l{left} + .. {down}bot z6l + --z1r; + pat := pat + -- reverse pat yscaled -1 + -- cycle; + fill pat; - define_pixels (reduced_il); - - draw_triple_brevis (exact_center + (0, 0.5 staff_space#), - 2 reduced_il#, 0.8 staff_space#, - 0.8 linethickness#, staff_space); - - save half_reduced_il; - - half_reduced_il# = staff_space# * sqrt (reduction); - - define_pixels (half_reduced_il); - - set_char_box (0 - xpart exact_center, - 2 reduced_il# + xpart exact_center, - 2.2 half_reduced_il# + staff_space# - - 2 ypart exact_center, - 2.2 half_reduced_il# + 2 ypart exact_center); - - save xoffs, yoffs; - - xoffs# = xpart exact_center; - yoffs# = ypart exact_center; - - define_pixels (xoffs, yoffs); - - save ellipse, T; - path ellipse; - transform T; + if fill_char: + pat_mid = bot z3l{up} + .. {right}rt z3l + -- lft z4l{right} + .. {down}bot z4l + -- top z8r{down} + .. {left}lft z8r + -- rt z6r{left} + .. {up}top z6r + --cycle; + unfill pat_mid; + + pat_mid := pat_mid shifted (0, -reduced_il); + unfill pat_mid; + fi; - T := identity xscaled 1.4 linethickness - yscaled blot_diameter; - pickup pencircle transformed T; - ellipse := fullcircle transformed T; + set_char_box (0, reduced_il# + vert_thick#, + 2.2 reduced_il#, 2.2 reduced_il#); - lft x11 = lft x13 = xoffs; - top y11 = yoffs + 2.2 half_reduced_il; - bot y13 = yoffs - 2.2 half_reduced_il - staff_space; - rt x15 = rt x17 = xoffs + brevis_width; - y15 = yoffs + 1.4 half_reduced_il; - y17 = yoffs - 1.4 half_reduced_il - staff_space; + penlabels (1, 2, 3, 4, 5, 6, 7, 8); +enddef; - z12 = z14 yscaled -1 shifted (0, -staff_space); - z14 = z9; - z16 = z18 yscaled -1 shifted (0, -staff_space); - rt z18 = lft z14 shifted (brevis_width, 0); - penpos12 (1.4 linethickness, 0); - penpos14 (1.4 linethickness, 0); - penpos16 (1.4 linethickness, 0); - penpos18 (1.4 linethickness, 0); +fet_beginchar ("mensural c clef", "mensural.c"); + draw_staff_if_debugging (-1, 3); + draw_mensural_c_clef ((0, 0), 1.0, true); +fet_endchar; - fill get_subpath (ellipse, up, down, z11) - -- z12l - -- z12r - -- cycle; - fill get_subpath (ellipse, down, up, z13) - -- z14r - -- z14l - -- cycle; - fill get_subpath (ellipse, up, down, z15) - -- z16l - -- z16r - -- cycle; - fill get_subpath (ellipse, down, up, z17) - -- z18r - -- z18l - -- cycle; - labels (11, 13, 15, 17); - penlabels (12, 14, 16, 18); -enddef; +fet_beginchar ("mensural c clef", "mensural.c_change"); + draw_mensural_c_clef ((0, 0), .8, true); +fet_endchar; -fet_beginchar ("mensural c clef", "mensural.c"); - if test = 1: - draw_staff (-1, 3, 0.0); - fi; - draw_mensural_c_clef ((0, 0), 1.0); +fet_beginchar ("black mensural c clef", "blackmensural.c"); + draw_staff_if_debugging (-1, 3); + draw_mensural_c_clef ((0, 0), 1.0, false); fet_endchar; -fet_beginchar ("mensural c clef", "mensural.c_change"); - draw_mensural_c_clef ((0, 0), .8); +fet_beginchar ("black mensural c clef", "blackmensural.c_change"); + draw_mensural_c_clef ((0, 0), 0.8, false); fet_endchar; @@ -1104,9 +1010,7 @@ enddef; fet_beginchar ("petrucci f clef", "petrucci.f"); - if test = 1: - draw_staff (-1, 3, 0.0); - fi; + draw_staff_if_debugging (-1, 3); draw_petrucci_f_clef ((0, 0), 1.0); fet_endchar; @@ -1212,9 +1116,7 @@ enddef; fet_beginchar ("mensural f clef", "mensural.f"); - if test = 1: - draw_staff (-1, 3, 0.0); - fi; + draw_staff_if_debugging (-1, 3); draw_mensural_f_clef ((0, 0), 1.0); fet_endchar; @@ -1444,9 +1346,7 @@ enddef; fet_beginchar ("petrucci g clef", "petrucci.g"); - if test = 1: - draw_staff (-1, 3, 0.0); - fi; + draw_staff_if_debugging (-1, 3); draw_petrucci_g_clef ((0, 0), 1.0); fet_endchar; @@ -1478,9 +1378,7 @@ enddef; % until the code for the mensural g clef will be rewritten. % fet_beginchar ("mensural g clef", "mensural.g"); - if test = 1: - draw_staff (-1, 3, 0.0); - fi; + draw_staff_if_debugging (-1, 3); draw_petrucci_g_clef ((0, 0), 1.0); fet_endchar; @@ -1569,9 +1467,7 @@ enddef; fet_beginchar ("Hufnagel do clef", "hufnagel.do"); - if test = 1: - draw_staff (-1, 3, 0.0); - fi; + draw_staff_if_debugging (-1, 3); draw_hufnagel_do_clef ((0, 0), 1.0); fet_endchar; @@ -1665,9 +1561,7 @@ enddef; fet_beginchar ("Hufnagel fa clef", "hufnagel.fa"); - if test = 1: - draw_staff (-1, 3, 0.0); - fi; + draw_staff_if_debugging (-1, 3); draw_hufnagel_fa_clef ((0, 0), 1.0); fet_endchar; @@ -1689,9 +1583,7 @@ enddef; fet_beginchar ("Hufnagel do/fa clef", "hufnagel.do.fa"); - if test = 1: - draw_staff (-1, 3, 0.0); - fi; + draw_staff_if_debugging (-1, 3); draw_hufnagel_do_fa_clef ((0, 0), 1.0); fet_endchar;