X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mf%2Ffeta-accordion.mf;h=3920e36c4d4458fd2c526b41738cc53b062b919c;hb=02ecfc59e4e77633139ba19d9cf45701d17fac40;hp=f1058000873bdf7039b5987b5ee1cbf80f5e4736;hpb=0e5d83a9ceb4a143f83d22406d7eb816314ff9f7;p=lilypond.git diff --git a/mf/feta-accordion.mf b/mf/feta-accordion.mf index f105800087..3920e36c4d 100644 --- a/mf/feta-accordion.mf +++ b/mf/feta-accordion.mf @@ -1,9 +1,20 @@ +% Feta (not the Font-En-Tja) music font -- draw accordion symbols +% This file is part of LilyPond, the GNU music typesetter. % -% feta-accordion.mf -- draw accordion symbols +% Copyright (C) 1998--2010 Han-Wen Nienhuys % -% source file of the GNU LilyPond music typesetter +% LilyPond is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. % -% (c) 1998--2009 Han-Wen Nienhuys +% LilyPond is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with LilyPond. If not, see . fet_begingroup ("accordion"); @@ -19,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; @@ -90,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); @@ -103,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#; @@ -160,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; @@ -233,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; @@ -361,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#; @@ -441,5 +452,97 @@ fet_beginchar ("accOldEE", "accOldEE") fi; fet_endchar; +fet_beginchar ("accordion push", "push"); + save width, height; + + height# := 2.0 staff_space# + 3.0 stafflinethickness#; + width# := 0.4 height#; + + define_pixels(height, width); + + save linewidth; + + linewidth# := stafflinethickness# + .05 staff_space#; + define_whole_blacker_pixels (linewidth); + + set_char_box (width#, 0, + 0, height#); + + pickup pencircle scaled linewidth; + + lft x1 = -width; + top y1 = height; + + rt x2 = 0; + y2 = 0.5 * (y1+y3); + + x3= x1; + bot y3 = 0; + + save pat; + + path pat; + + pat = z1 -- z2 -- z3; + + draw pat; + +fet_endchar; + +fet_beginchar ("accordion pull", "pull"); + save width, height; + + height# := 2.0 staff_space# + 3.0 stafflinethickness#; + width# := 0.4 height#; + + define_pixels(height, width); + + save linewidth; + + linewidth# := stafflinethickness# + .05 staff_space#; + define_whole_blacker_pixels (linewidth); + + set_char_box (width# - linewidth#, linewidth#, + 0, height#); + + pickup pencircle scaled linewidth; + + save penradius; + penradius := linewidth / 2; + + rt x1 = linewidth; + bot y1 = 0; + + x2 = x1; + top y2 = height; + + lft x3= -width + linewidth; + y3 = y2; + + x4 = x3; + y4 = y2 - linewidth; + + 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; + +fet_endchar; fet_endgroup ("accordion");