X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mf%2Ffeta-timesig.mf;h=ffaa1883f99ed17bf4df7152fb32a5820c94ca32;hb=8cab78caa0db1ba14f2e52e4c1ddbb541ea0e5cb;hp=4cdf404b329938dddd01760018c8bd55a4522bc8;hpb=014f0f6a4f09a4b93d0041cc8237fd3c7a5ad389;p=lilypond.git diff --git a/mf/feta-timesig.mf b/mf/feta-timesig.mf index 4cdf404b32..ffaa1883f9 100644 --- a/mf/feta-timesig.mf +++ b/mf/feta-timesig.mf @@ -1,193 +1,108 @@ -% +% % feta-timesig.mf -- implement Time Signatures -% +% % source file of the Feta (not an abbreviation of Font-En-Tja) music font -% -% (c) 1998--1999 Mats Bengtsson , -% Christian Mondrup +% +% (c) 1998--2009 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); -enddef; + save hair, bulb_rad, left_fatness; + save left_width, right_width; + save width, lower_offset; -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; + width# := 1.8 staff_space# - stafflinethickness#; -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#); - - draw_C; - save excentricity; - pair excentricity; - excentricity = (-1.25 stafflinethickness, 0); + left_width := 1.0 staff_space; + right_width := 0.8 staff_space; - draw_block((- .75 stafflinethickness, -d) + excentricity, (.75 stafflinethickness , h) + excentricity); -fet_endchar; + hair := stafflinethickness; -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; + bulb_rad := 0.40 staff_space - .6 stafflinethickness; + left_fatness := 0.55 * staff_space; + lower_offset := 0.3 stafflinethickness; -%% tempus imperfectum cum prolatione imperfecta proportio dupla -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; + set_char_box (0, width#, staff_space#, staff_space#); -%% 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; + d := d - feta_shift; -%% 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 Cdiameter#); - - pickup pencircle scaled Cthickness; - draw threequartercircle rotated 45 scaled Cdiameter; - pickup pencircle scaled 4 stafflinethickness; - draw (0,0); -fet_endchar; + 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); -%% 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 Cdiameter#); - - pickup pencircle scaled Cthickness; - draw fullcircle scaled Cdiameter; - pickup pencircle scaled 4 stafflinethickness; - draw (0,0); -fet_endchar; + x5r = x1r + lower_offset; + y5r = -0.37 h; -%% tempus perfectum cum prolatione imperfecta proportio dupla -fet_beginchar ("Mensural 3/4 meter", "old3/4", "oldthreefourmeter") - set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, - interline#, interline#); - - pickup pencircle scaled Cthickness; - draw fullcircle scaled Cdiameter; - draw_block((-Cthickness/2, -d), (Cthickness/2, h)); -fet_endchar; + penpos1 (hair, 10); + penpos2 (stafflinethickness_rounded, 90); + penpos3 (left_fatness, 180); + penpos4 (stafflinethickness_rounded, -90); + penpos5 (hair, -13); -%% tempus imperfectum cum prolatione perfecta proportio dupla -fet_beginchar ("Mensural 6/8 meter", "old6/8", "oldsixeightmeter") - set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, - interline#, interline#); - - pickup pencircle scaled Cthickness; - draw threequartercircle rotated 45 scaled Cdiameter; - pickup pencircle scaled 4 stafflinethickness; - draw (0,0); - draw_block((-Cthickness/2, -d), (Cthickness/2, h)); -fet_endchar; + draw_bulb (-1, z1l, z1r, bulb_rad, .8); -%% tempus perfectum cum prolatione perfecta proportio dupla -fet_beginchar ("Mensural 9/8 meter", "old9/8", "oldnineeight") - set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, - interline#, interline#); - - pickup pencircle scaled Cthickness; - draw fullcircle scaled Cdiameter; - pickup pencircle scaled 4 stafflinethickness; - draw (0,0); - draw_block((-Cthickness/2, -d), (Cthickness/2, h)); -fet_endchar; + 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; -%% tempus imperfectum cum prolatione imperfecta diminutio simplex -fet_beginchar ("Mensural 4/8 meter", "old4/8", "oldfoureightmeter") - set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, - .5 Cdiameter#, .5 Cdiameter#); - - pickup pencircle scaled Cthickness; - draw threequartercircle rotated 225 scaled Cdiameter; -fet_endchar; -%% tempus imperfectum cum prolatione perfecta diminutio simplex -fet_beginchar ("Mensural 6/8 meter", "old6/8alt", "oldsixeightmeteralt") - set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, - .5 Cdiameter#, .5 Cdiameter#); - - pickup pencircle scaled Cthickness; - draw threequartercircle rotated 225 scaled Cdiameter; - pickup pencircle scaled 4 stafflinethickness; - draw (0,0); +fet_beginchar ("4/4 meter", "C44"); + draw_C; fet_endchar; -%% tempus imperfectum cum prolatione imperfecta diminutio duplex -fet_beginchar ("Mensural 2/4 meter", "old2/4", "oldtwofourmeter") - set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#, - interline#, interline#); - - pickup pencircle scaled Cthickness; - draw threequartercircle rotated 225 scaled Cdiameter; - draw_block((-Cthickness, -d), (0, h)); + +fet_beginchar ("2/2 meter", "C22"); + save eccentricity, top_stemlen, bottom_stemlen, thick, left_pos; + + draw_C; + + 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");