]> git.donarmstrong.com Git - lilypond.git/blobdiff - mf/feta-accordion.mf
Midi2ly: if --duration-quant == first note, still write duration. Fixes #1575.
[lilypond.git] / mf / feta-accordion.mf
index 645d6d8b47ab987c94da60c0fb83f3b1e3b7931f..97de6e494c9aedbe4339742e9d2f04385fd41de5 100644 (file)
@@ -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 <hanwen@xs4all.nl>
+% Copyright (C) 1998--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
 %
 % LilyPond is free software: you can redistribute it and/or modify
 % it under the terms of the GNU General Public License as published by
@@ -480,9 +480,34 @@ fet_beginchar ("accordion push", "push");
        x3 = x1;
        bot y3 = 0;
 
-       draw z1
-            -- z2
-            -- z3;
+       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;