X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mf%2Ffeta-timesig.mf;h=116a6764a4ee6a3225ccae17c4f9d1dbe71a9762;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=3cb794c58687009060b219966aa9ed0900d0799f;hpb=b43244dd4eeca1a96e0cdb258231ef0b6cca1a8f;p=lilypond.git diff --git a/mf/feta-timesig.mf b/mf/feta-timesig.mf index 3cb794c586..116a6764a4 100644 --- a/mf/feta-timesig.mf +++ b/mf/feta-timesig.mf @@ -1,129 +1,108 @@ -% +% % feta-timesig.mf -- implement Time Signatures -% +% % source file of the Feta (not an abbreviation of Font-En-Tja) music font -% -% (c) 1998 Mats Bengtsson +% +% (c) 1998--2008 Mats Bengtsson , +% Christian Mondrup -fet_begingroup("timesig"); +fet_begingroup ("timesig"); -def set_C_width = - save left_width, right_width; - left_width# := 0.9 interline#; - right_width# := .7 interline#; - 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 protrudes to the right very slightly. +% def draw_C = - save hair, bulb_rad, left_fatness; - - - hair# := stafflinethickness#; - bulb_rad# := 0.4 interline#; - define_pixels(hair, bulb_rad); - left_fatness = 0.55; - - x1r = x5r; - y1r = .45 interline; - z2 = (0, interline); - z3r = (-left_width, 0); - z4 = (0, -interline); - z5r = (right_width - stafflinethickness, -0.4 interline); - - penpos1(hair, 0); - penpos2(stafflinethickness, 90); - penpos3(left_fatness * interline, 180); - penpos4(stafflinethickness, -90); - penpos5(hair, -5); - - draw_bulb(-1, z1l, z1r, bulb_rad, .8); - - fill z1l{up} .. z2l{left} .. z3l{down} .. z4l{right} .. - simple_serif(z5l, z5r, -90) .. - z4r{left} .. z3r{up} .. z2r{right} .. z1r -- cycle; - -% labels(1,2,3,4,5); - penlabels(1,2,3,4,5); + 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# + interline#, right_width# + interline#, - interline#, interline#); - - draw_C; -fet_endchar; -fet_beginchar ("2/2 meter", "C2/2", "allabreve") - set_C_width; - set_char_box(left_width# + interline#, right_width# + interline#, - 1.4 interline#, 1.4 interline#); - +fet_beginchar ("4/4 meter", "C44"); draw_C; - save excentricity; - pair excentricity; - excentricity = (-1.25 stafflinethickness, 0); - - draw_block((- .75 stafflinethickness, -d) + excentricity, (.75 stafflinethickness , h) + excentricity); fet_endchar; -path threequartercircle; -threequartercircle = halfcircle & quartercircle rotated 180; - -save Cdiameter,Cthickness; -Cdiameter# := 3/2 interline#; -Cthickness# := 2 stafflinethickness#; -define_pixels(Cdiameter,Cthickness); - -%% tempus imperfectum cum prolatione imperfecta -fet_beginchar ("Mensural 4/4 meter", "old4/4", "oldfourfourmeter") - set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, - .5 Cdiameter#, .5 Cdiameter#); - - pickup pencircle scaled Cthickness; - draw threequartercircle rotated 45 scaled Cdiameter; -fet_endchar; -fet_beginchar ("Mensural 2/2 meter", "old2/2", "oldallabreve") - set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, - interline#, interline#); - - pickup pencircle scaled Cthickness; - draw threequartercircle rotated 45 scaled Cdiameter; - draw_block((-Cthickness, -d), (0, h)); -fet_endchar; +fet_beginchar ("2/2 meter", "C22"); + save eccentricity, top_stemlen, bottom_stemlen, thick, left_pos; -%% tempus perfectum cum prolatione imperfecta -fet_beginchar ("Mensural 3/2 meter", "old3/2", "oldthreetwometer") - set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, - .5 Cdiameter#, .5 Cdiameter#); - - pickup pencircle scaled Cthickness; - draw fullcircle scaled Cdiameter; -fet_endchar; + draw_C; -%% tempus imperfectum cum prolatione perfecta -fet_beginchar ("Mensural 6/4 meter", "old6/4", "oldsixfourmeter") - set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, - .5 Cdiameter# + .5 interline#, .5 Cdiameter#+ .5 interline#); - - pickup pencircle scaled Cthickness; - draw threequartercircle rotated 45 scaled Cdiameter - shifted (0,.5 interline); - pickup pencircle scaled 3 stafflinethickness; - draw (0,.5 interline); -fet_endchar; + 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); -%% tempus perfectum cum prolatione perfecta -fet_beginchar ("Mensural 9/4 meter", "old9/4", "oldninefourmeter") - set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, - .5 Cdiameter# + .5 interline#, .5 Cdiameter#+ .5 interline#); - - pickup pencircle scaled Cthickness; - draw fullcircle scaled Cdiameter shifted (0,.5 interline); - pickup pencircle scaled 3 stafflinethickness; - draw (0,.5 interline); -fet_endchar; + 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");