X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mf%2Ffeta-timesig.mf;h=4f2356629309d2373c527c40d90c7f5c3ec59155;hb=bec6d0f547819d4003c5ce987f8fe589818e4712;hp=190bbe4d8f800647a9b66ef0246dd3c189aea30d;hpb=d9b43b93f2c885409bafdb157138158f65cc49aa;p=lilypond.git diff --git a/mf/feta-timesig.mf b/mf/feta-timesig.mf index 190bbe4d8f..4f23566293 100644 --- a/mf/feta-timesig.mf +++ b/mf/feta-timesig.mf @@ -1,72 +1,108 @@ -% +% % feta-timesig.mf -- implement Time Signatures -% +% % source file of the Feta (not an abbreviation of Font-En-Tja) music font -% -% (c) 1998--2002 Mats Bengtsson , +% +% (c) 1998--2007 Mats Bengtsson , % Christian Mondrup -fet_begingroup("timesig"); +fet_begingroup ("timesig"); -def set_C_width = - save left_width, right_width; - left_width# := 1.0 staff_space#; - right_width# := 0.8 staff_space#; - define_pixels(left_width,right_width); -enddef; + +% +% Originally by Mats B. nuked by Han-Wen, inspired by +% Baerenreiter BA320 (Bach Cello Suites, Suite III). +% +% Notes: +% +% * The inside curve of the C is rather straight. +% * The outside curve of the C is rather round. +% * Right tips of the C point slightly outward. +% * Lower tip protudes to the right very slightly. +% def draw_C = - save hair, bulb_rad, left_fatness; - - - hair# := stafflinethickness#; - bulb_rad# := 0.4 staff_space#; - define_pixels(hair, bulb_rad); - left_fatness = 0.55; - - x1r = x5r; - y1r = .45 staff_space; - z2 = (0, staff_space); - z3r = (-left_width, 0); - z4 = (0, -staff_space); - z5r = (right_width - stafflinethickness, -0.4 staff_space); - - penpos1(hair, 10); - penpos2(stafflinethickness, 90); - penpos3(left_fatness * staff_space, 180); - penpos4(stafflinethickness, -90); - penpos5(hair, -5); - z6l = z1l; - penpos6(hair, 0); - - draw_bulb(-1, z6l, z6r, bulb_rad, .8); - - fill z1l{dir (100)} .. z2l{left} .. z3l{down} .. z4l{right} .. - simple_serif(z5l, z5r, -90) .. - z4r{left} .. z3r{up} .. z2r{right} .. {dir (-80)}z1r -- cycle; - - penlabels(1,2,3,4,5,6); + save hair, bulb_rad, left_fatness; + save left_width, right_width; + save width, lower_offset; + + width# := 1.8 staff_space# - stafflinethickness#; + + left_width := 1.0 staff_space; + right_width := 0.8 staff_space; + + hair := stafflinethickness; + + bulb_rad := 0.40 staff_space - .6 stafflinethickness; + left_fatness := 0.55 * staff_space; + lower_offset := 0.3 stafflinethickness; + + set_char_box (0, width#, staff_space#, staff_space#); + + d := d - feta_shift; + + x1r = w; + x3r = 0; + y1r = .45 h; + y2r = h + vround (.5 stafflinethickness_rounded); + y4r = -d - vround (.5 stafflinethickness_rounded); + x2 = x4; + x2 = x3r + h; + y3r = .5 (h - d); + + x5r = x1r + lower_offset; + y5r = -0.37 h; + + penpos1 (hair, 10); + penpos2 (stafflinethickness_rounded, 90); + penpos3 (left_fatness, 180); + penpos4 (stafflinethickness_rounded, -90); + penpos5 (hair, -13); + + draw_bulb (-1, z1l, z1r, bulb_rad, .8); + + save s; + s := 0.735; + + fill z1l{dir (100)} + .. z2l{left} + ..tension 0.8.. z3l{down} + ..tension 0.8.. z4l{right} + .. simple_serif (z5l, z5r, -90) + .. z4r{left} + .. super_curvelet (z4r, z3r, s, -1) + .. z3r{up} + .. super_curvelet (z3r, z2r, s, 1) + .. z2r{right} + .. {dir (-80)}z1r + -- cycle; + + penlabels (1, 2, 3, 4, 5); + + draw_staff (-2, 2, 0); enddef; -fet_beginchar ("4/4 meter", "C4/4", "fourfourmeter") - set_C_width; - set_char_box(left_width# + staff_space#, right_width# + staff_space#, - staff_space#, staff_space#); +fet_beginchar ("4/4 meter", "C44"); draw_C; fet_endchar; -fet_beginchar ("2/2 meter", "C2/2", "allabreve") - set_C_width; - set_char_box(left_width# + staff_space#, right_width# + staff_space#, - 1.4 staff_space#, 1.4 staff_space#); - + +fet_beginchar ("2/2 meter", "C22"); + save eccentricity, top_stemlen, bottom_stemlen, thick, left_pos; + draw_C; - save excentricity; - pair excentricity; - excentricity = (-1.25 stafflinethickness, 0); - draw_block((- .75 stafflinethickness, -d) + excentricity, (.75 stafflinethickness , h) + excentricity); + eccentricity = -1.75 stafflinethickness - 0.025 staff_space; + top_stemlen# = bottom_stemlen# = 1.4 staff_space#; + thick# = stafflinethickness# + 0.05 staff_space#; + define_whole_pixels (top_stemlen, bottom_stemlen); + define_whole_blacker_pixels (thick); + + bottom_stemlen := bottom_stemlen - feta_shift; + + draw_block ((x2 + eccentricity, -bottom_stemlen), + (x2 + eccentricity + thick, top_stemlen)); fet_endchar; -fet_endgroup("timesig"); +fet_endgroup ("timesig");