X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mf%2Ffeta-accordion.mf;h=c96ff8d06cbe57f3d7e40525d13980fbc4e0211f;hb=b16d78084944afc117e8bb972d277e70c6d23208;hp=1a9e3625d984b73c31526796a5acb82c8936d599;hpb=82e0b415a5345281fb58f4e3ddfdda73da06407a;p=lilypond.git diff --git a/mf/feta-accordion.mf b/mf/feta-accordion.mf index 1a9e3625d9..c96ff8d06c 100644 --- a/mf/feta-accordion.mf +++ b/mf/feta-accordion.mf @@ -1,7 +1,7 @@ % Feta (not the Font-En-Tja) music font -- draw accordion symbols % This file is part of LilyPond, the GNU music typesetter. % -% Copyright (C) 1998--2010 Han-Wen Nienhuys +% Copyright (C) 1998--2012 Han-Wen Nienhuys % % LilyPond is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by @@ -30,7 +30,7 @@ accreg_lh# := 1.0 staff_space#; define_pixels (accreg_dot_size, accreg_linethickness, accreg_lh); -fet_beginchar ("accDiscant", "accDiscant") +fet_beginchar ("accordion register discant", "discant") save r, pat, lh, lt; path pat; @@ -101,7 +101,7 @@ fet_beginchar ("accDiscant", "accDiscant") fet_endchar; -fet_beginchar ("accDot", "accDot") +fet_beginchar ("accordion register dot", "dot") set_char_box (accreg_dot_size# / 2, accreg_dot_size# / 2, accreg_dot_size# / 2, accreg_dot_size# / 2); @@ -114,7 +114,7 @@ fet_beginchar ("accDot", "accDot") fet_endchar; -fet_beginchar ("accFreebase", "accFreebase") +fet_beginchar ("accordion register freebass", "freebass") save r, lh, lt; r# = accreg_lh#; @@ -171,7 +171,7 @@ fet_beginchar ("accFreebase", "accFreebase") fet_endchar; -fet_beginchar ("accStdbase", "accStdbase") +fet_beginchar ("accordion register stdbass", "stdbass") save r, p, lh, lt; path pat; @@ -244,7 +244,7 @@ fet_beginchar ("accStdbase", "accStdbase") fet_endchar; -fet_beginchar ("accBayanbase", "accBayanbase") +fet_beginchar ("accordion register bayanbass", "bayanbass") save lh, lt; lh = vround accreg_lh; @@ -372,7 +372,7 @@ def def_some_vars = enddef; -fet_beginchar ("accOldEE", "accOldEE") +fet_beginchar ("accordion oldEE", "oldEE") save r, pp, ir, lh, lt, stroke_width; r# = staff_space#; @@ -452,7 +452,8 @@ fet_beginchar ("accOldEE", "accOldEE") fi; fet_endchar; -fet_beginchar ("Accordion push", "push"); + +fet_beginchar ("accordion push", "push"); save width, height; height# := 2.0 staff_space# + 3.0 stafflinethickness#; @@ -474,22 +475,43 @@ fet_beginchar ("Accordion push", "push"); top y1 = height; rt x2 = 0; - y2 = 0.5 * (y1+y3); + y2 = 0.5 * (y1 + y3); - x3= x1; + x3 = x1; bot y3 = 0; - save pat; - - path pat; - - pat = z1 -- z2 -- z3; - - draw pat; - + save nw_offset, ne_offset; + pair nw_offset, ne_offset; + save sw_offset, se_offset, line_radius; + pair sw_offset, se_offset; + + line_radius := linewidth / 2; + nw_offset := line_radius * unitvector (z1 - z2); + ne_offset := nw_offset rotated -90; + sw_offset := line_radius * unitvector (z3 - z2); + se_offset := sw_offset rotated 90; + + z4 = ((z1 - ne_offset) + -- (z2 - ne_offset)) + intersectionpoint + ((z2 - se_offset) + -- (z3 - se_offset)); + + fill z1 + ne_offset + -- z2 + ne_offset + .. rt z2 {down} + .. z2 + se_offset + -- z3 + se_offset + .. z3 + sw_offset {- se_offset} + .. z3 - se_offset + -- z4 + -- z1 - ne_offset + .. z1 + nw_offset {ne_offset} + .. cycle; fet_endchar; -fet_beginchar ("Accordion pull", "pull"); + +fet_beginchar ("accordion pull", "pull"); save width, height; height# := 2.0 staff_space# + 3.0 stafflinethickness#; @@ -525,24 +547,17 @@ fet_beginchar ("Accordion pull", "pull"); x5 = x1; y5 = y4; - save pat; - - path pat; - - pat = z1 + penradius * right {up} -- - z2 + penradius * right {up} .. - z2 + penradius * up {left} -- - z3 + penradius * up {left} .. - z3 + penradius * left {down} -- - z4 + penradius * left {down} .. - z4 + penradius * down {right} -- - z5 + penradius * (down + left) -- - z1 + penradius * left {down} .. - z1 + penradius * down {right} .. - cycle; - - fill pat; - + fill z1 + penradius * right {up} + -- z2 + penradius * right {up} + .. z2 + penradius * up {left} + -- z3 + penradius * up {left} + .. z3 + penradius * left {down} + -- z4 + penradius * left {down} + .. z4 + penradius * down {right} + -- z5 + penradius * (down + left) + -- z1 + penradius * left {down} + .. z1 + penradius * down {right} + .. cycle; fet_endchar; fet_endgroup ("accordion");