X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mf%2Ffeta-noteheads.mf;h=c45969ed6a60da78bbdb1117307c57477d7e7dae;hb=505fa5b0ee7bf06bcefea05a3854c31e63e991ba;hp=87d9034713359aeb5e9cd0d4266334c8cbbf23ae;hpb=a1ce4a26eb893c1f752d260394a977ab811e3368;p=lilypond.git diff --git a/mf/feta-noteheads.mf b/mf/feta-noteheads.mf index 87d9034713..c45969ed6a 100644 --- a/mf/feta-noteheads.mf +++ b/mf/feta-noteheads.mf @@ -1,7 +1,7 @@ % Feta (not the Font-En-Tja) music font -- implement noteheads % This file is part of LilyPond, the GNU music typesetter. % -% Copyright (C) 1997--2011 Jan Nieuwenhuizen +% Copyright (C) 1997--2012 Jan Nieuwenhuizen % & Han-Wen Nienhuys % & Juergen Reuter % @@ -82,42 +82,64 @@ endgroup; enddef; -% -% dimensions aren't entirely right. -% def draw_longa (expr up) = save stemthick, fudge; stemthick# = 2 stafflinethickness#; define_whole_blacker_pixels (stemthick); - fudge = hround (blot_diameter / 2); + % Longas of smaller design sizes should have their lines farther + % apart (the overlap with notehead ellipsoid should be smaller). + fudge = hround (blot_diameter + * min (max (-0.15, + (0.9 + - (20 / (design_size + 4)))), + 0.3)); draw_outside_ellipse (1.80, 0, 0.707, 0); undraw_inside_ellipse (1.30, 125, 0.68, 2 stafflinethickness#); + set_char_box (stemthick#, + width# + stemthick#, + noteheight# / 2, + noteheight# / 2); + pickup pencircle scaled stemthick; + % Longas of smaller design sizes should have their lines longer. + line_length := min (max (0.7, (64/60 - (design_size / 60))), 0.85); + + % Line lengths between 0.72 and 0.77 are not nice + % because they are neither separate nor connected + % when there is an interval of fourth. + if line_length < 0.75: + quanted_line_length := min (0.72, line_length); + else: + quanted_line_length := max (0.77, line_length); + fi; + + final_line_length := quanted_line_length * staff_space; + if up: - bot y1 = -d; - top y2 = h; + bot y1 = -final_line_length; + top y2 = final_line_length; rt x1 - fudge = 0; x1 = x2; - fudge + lft x3 = w; + fudge + lft x3 = width; x4 = x3; top y4 = h + 3.0 staff_space; y3 = y1; else: bot y1 = -d - 3.0 staff_space; - top y2 = h; + top y2 = final_line_length; rt x1 - fudge = 0; x1 = x2; - fudge + lft x3 = w; + fudge + lft x3 = width; x4 = x3; y4 = y2; - bot y3 = -d; + bot y3 = -final_line_length; fi; draw_gridline (z1, z2, stemthick);