X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mf%2Ffeta-scripts.mf;h=83859dbe66fc2b4af51bd7bf63947d9700db6913;hb=5b1f3adfe5e3561eaa0f9440e0697054084b7107;hp=8496fd7c650977b03780e952b1b2e694d7e97384;hpb=f018757016404595c92e21346ae0661dafe7ea46;p=lilypond.git diff --git a/mf/feta-scripts.mf b/mf/feta-scripts.mf index 8496fd7c65..83859dbe66 100644 --- a/mf/feta-scripts.mf +++ b/mf/feta-scripts.mf @@ -1,7 +1,7 @@ % Feta (not the Font-En-Tja) music font -- implement scripts % This file is part of LilyPond, the GNU music typesetter. % -% Copyright (C) 1997--2010 Han-Wen Nienhuys +% Copyright (C) 1997--2012 Han-Wen Nienhuys % Jan Nieuwenhuizen % % @@ -620,6 +620,44 @@ fet_beginchar ("halfopen (unstopped)", "halfopen"); fet_endchar; +fet_beginchar ("halfopen vertical", "halfopenvertical"); + save thin, height, width, thick, factor, slash; + + factor := 3/2; + height# = 5/4 width#; + height# = staff_space#; + thin = 0.6 linethickness + 0.06 staff_space; + slash# = 1.05 linethickness#; + + set_char_box (width# / 2, width# / 2, + height# / 2, height# / 2); + + define_pixels (width, height, slash); + + 2 thick + 0.6 (height - 2 thin) = width; + + penpos1 (thick, 0); + penpos2 (thin, 90); + penpos3 (thick, 180); + penpos4 (thin, 270); + z1r = (w, 0); + z2r = (0, h); + z3r = (-w, 0); + z4r = (0, -h); + + penlabels (1, 2, 3, 4); + + penstroke z1e{up} + .. z2e{left} + .. z3e{down} + .. z4e{right} + .. cycle; + + draw_brush ((0, -h * factor), slash, + (0, h * factor), slash); +fet_endchar; + + fet_beginchar ("plus (stopped)", "stopped"); save hthick, vthick, size, outer_hsize, outer_vsize; @@ -1217,20 +1255,25 @@ fet_beginchar ("Varied Segno", "varsegno"); bulbradius = length (z1l - z1'); pickup pencircle scaled 2 bulbradius; - drawdot z1'; + save se_dir, nw_dir; + pair se_dir, nw_dir; + se_dir := dir -loopangle; + nw_dir := dir (180 - loopangle); + + draw_bulb (-1, z1r, z1l, bulbradius, .8); penstroke z1e .. z2e .. z3e - .. z4e{dir (-loopangle)} - .. z5e{dir (-loopangle)} - .. z6e - .. z7e - .. z8e - .. z9e{dir (-loopangle)} - .. z10e{dir (-loopangle)} - .. z11e - .. {dir (180 - loopangle)}z12e; + ... {se_dir}z4e + -- z5e{se_dir} + ... z6e + ... z7e{nw_dir} + ... z8e + ... {se_dir}z9e + -- z10e{se_dir} + ... z11e + ... {nw_dir}z12e; addto currentpicture also currentpicture scaled -1; penlabels (1, 1', 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); @@ -1442,17 +1485,18 @@ enddef; fet_beginchar ("Arpeggio", "arpeggio"); + begingroup; save height, overshoot, width; - height# = staff_space#; - width# = 0.8 height#; - overshoot# = 0.25 staff_space#; + height# := staff_space#; + width# := 0.8 * height#; + overshoot# := 0.25 * staff_space#; define_pixels (height, overshoot, width); - set_char_box (0, width#, 0, height#); draw_arpeggio; penlabels (range 1 thru 9); draw_staff (-2, 2, 0.0); + endgroup; fet_endchar; @@ -1463,7 +1507,8 @@ fet_endchar; % fet_beginchar ("Trill_element", "trill_element"); - save height, overshoot; + begingroup; + save height, overshoot, width; height# = staff_space#; width# = 0.8 height#; overshoot# = 0.25 staff_space#; @@ -1475,6 +1520,7 @@ fet_beginchar ("Trill_element", "trill_element"); currentpicture := currentpicture shifted -(width / 2, height / 2); currentpicture := currentpicture rotated 90; currentpicture := currentpicture shifted (height / 2, width / 2); + endgroup; fet_endchar;