summaryrefslogtreecommitdiff
path: root/mf
diff options
context:
space:
mode:
authorPhil Holmes <mail@philholmes.net>2013-08-19 12:31:38 +0100
committerPhil Holmes <mail@philholmes.net>2013-08-29 10:21:42 +0100
commit2a3bafbcac63918eb9f72d8269c64beffe9f7ec1 (patch)
tree1565c13d7fe4095958230abafe83f0794d92ce90 /mf
parentcc2b7846eacc4901a8bfffa46788f6fff0415c2f (diff)
Changes how mensural flags are drawn
Diffstat (limited to 'mf')
-rw-r--r--mf/parmesan-flags.mf72
1 files changed, 28 insertions, 44 deletions
diff --git a/mf/parmesan-flags.mf b/mf/parmesan-flags.mf
index f7c903f874..9c136745d6 100644
--- a/mf/parmesan-flags.mf
+++ b/mf/parmesan-flags.mf
@@ -40,56 +40,39 @@ dir_down := -1;
%
def draw_mensural_outermost_flare (expr staffline_adjustment, d_) =
- define_pixels (linethickness, staff_space);
-
- save ellipse, pat, T;
- path ellipse, pat;
- transform T;
-
- T := identity xscaled 1.00 linethickness
- yscaled 0.22 staff_space
- rotated -35;
- pickup pencircle transformed T;
- ellipse := fullcircle transformed T;
-
- z11 = (+0.00 staff_space, -0.00 staff_space);
- z12 = (+0.15 staff_space, -0.00 staff_space);
+ save flag_end, flag_right;
if staffline_adjustment = between_staff_lines:
- z13 = (+0.45 staff_space, -0.35 staff_space);
- z14 = (+0.45 staff_space, -0.85 staff_space);
- z15 = (+0.00 staff_space, -2.00 staff_space);
+ flag_end := 1.9;
+ flag_right := 0.6;
elseif staffline_adjustment = on_staff_line:
- z13 = (+0.20 staff_space, -0.05 staff_space);
- z14 = (+0.20 staff_space, -1.15 staff_space);
- z15 = (+0.00 staff_space, -1.40 staff_space);
+ flag_end := 1.4;
+ flag_right := 0.5;
else: % staffline_adjustment = anywhere
- z13 = (+0.33 staff_space, -0.20 staff_space);
- z14 = (+0.33 staff_space, -1.00 staff_space);
- z15 = (+0.00 staff_space, -1.70 staff_space);
+ flag_end := 1.7;
+ flag_right := 0.6;
fi;
- pat := z13{z13 - z12}
- .. {z15 - z14}z14;
-
- fill get_subpath (ellipse, z11 - z12, z12 - z11, z11)
- -- get_subpoint (ellipse, z12 - z11, z12)
- -- get_subpoint (ellipse, z13 - z12, z12)
- -- get_subpoint (ellipse, direction 0 of pat, z13)
- {direction 0 of pat}
- .. {direction 1 of pat}
- get_subpoint (ellipse, direction 1 of pat, z14)
- -- get_subpath (ellipse, z15 - z14, z14 - z15, z15)
- -- get_subpoint (ellipse, -direction 1 of pat, z14)
- {-direction 1 of pat}
- .. {-direction 0 of pat}
- get_subpoint (ellipse, -direction 0 of pat, z13)
- -- get_subpath (ellipse, z12 - z13, z11 - z12, z12)
- -- cycle;
+ penpos1 (0.25 staff_space, 90);
+ penpos2 (0.2 staff_space, 0);
+ penpos3 (0.1 staff_space, -35);
+ z1r = (0, 0);
+ z2r = (flag_right * staff_space, -0.4 staff_space);
+ z3l = (0, -1.0 * flag_end * staff_space);
+ fill z1l
+ .. tension 2.0
+ .. z2l
+ .. tension 3.0
+ .. { dir -125 }z3l{ dir -125 }
+ .. { dir 55 }z3r{dir 55 }
+ .. tension 3.0
+ .. z2r
+ .. tension 2.0
+ .. z1r
+ -- cycle ;
+ draw_square_block ((-0.5 stemthickness_rounded, 0),
+ (0, -0.25 staff_space));
- if d_ = dir_up:
- labels (11, 12, 13, 14, 15);
- fi;
enddef;
@@ -184,7 +167,8 @@ def draw_mensural_flag (expr staffline_adjustment, flares, d_) =
if d_ = dir_down:
currentpicture := currentpicture xscaled -1
- yscaled -1;
+ yscaled -1
+ shifted (-0.5 stemthickness_rounded, 0);
fi;
enddef;