%
% source file of LilyPond's pretty-but-neat music font
%
-% (c) 2001--2006 Juergen Reuter <reuter@ipd.uka.de>
+% (c) 2001--2007 Juergen Reuter <reuter@ipd.uka.de>
%
% Neo-mensural heads originally by
% Christian Mondrup and Mats Bengtsson
%
% (ze is wel breed)
%
-fet_beginchar ("Neo-mensural maxima notehead", "s-3neomensural");
+fet_beginchar ("Neo-mensural maxima notehead", "sM3neomensural");
draw_neomensural_longa (2.6 staff_space#);
fet_endchar;
-fet_beginchar ("Neo-mensural longa notehead", "s-2neomensural");
+fet_beginchar ("Neo-mensural longa notehead", "sM2neomensural");
draw_neomensural_longa (2 staff_space#);
fet_endchar;
-fet_beginchar ("Neo-mensural brevis notehead", "s-1neomensural");
+fet_beginchar ("Neo-mensural brevis notehead", "sM1neomensural");
draw_neomensural_brevis (2 staff_space#);
fet_endchar;
fet_endchar;
-fet_beginchar ("Mensural maxima notehead", "s-3mensural");
+fet_beginchar ("Mensural maxima notehead", "sM3mensural");
draw_mensural_longa (2.0 staff_space#);
fet_endchar;
-fet_beginchar ("Mensural longa notehead", "s-2mensural");
+fet_beginchar ("Mensural longa notehead", "sM2mensural");
draw_mensural_longa (staff_space#);
fet_endchar;
-fet_beginchar ("Mensural brevis notehead", "s-1mensural");
+fet_beginchar ("Mensural brevis notehead", "sM1mensural");
draw_mensural_brevis (staff_space#);
fet_endchar;
save stem_bt;
if left_stem:
- z11 = (0.00 wd + 0.6 linethickness / 2, yoffs - 1.1 ht);
- z12 = (0.00 wd + 0.6 linethickness / 2, yoffs);
- draw_rounded_block ((0, yoffs - 1.1 ht -
- linethickness / 2),
- (0.6 linethickness, yoffs),
+ pickup pencircle scaled 0.6 linethickness;
+
+ lft x11 = x1 - linethickness / 2;
+ bot y11 = yoffs - 1.1 ht - linethickness / 2;
+ x12 = x11;
+ y12 = y1;
+
+ draw_rounded_block (bot lft z11, top rt z12,
0.6 linethickness);
stem_bt# = yoffs# - 1.1 ht#;
+
+ labels (11, 12);
else:
stem_bt# = 0;
fi;
define_pixels (ht, wd);
- pickup pencircle xscaled linethickness
- yscaled 0.44 ht;
-
- save ellipse;
+ save ellipse, T;
path ellipse;
+ transform T;
- ellipse := reverse fullcircle xscaled linethickness
- yscaled 0.44 ht;
+ T := identity xscaled linethickness
+ yscaled 0.44 ht;
+ pickup pencircle transformed T;
+ ellipse := reverse fullcircle transformed T;
z1 = (rt 0.00 wd, top -0.28 ht);
z2 = (0.11 wd, -0.14 ht);
z3 = (2/6 wd, -convexity);
z4 = (0.50 wd - blot_diameter / 2, +convexity);
- save height, ellipse;
- path ellipse;
+
+ save height;
height = 2 ypart (directionpoint right of (z1
.. z2
.. z3
.. z4));
- pickup pencircle xscaled blot_diameter
- yscaled (h + d - height);
+ save ellipse, T;
+ path ellipse;
+ transform T;
- ellipse := fullcircle xscaled blot_diameter
- yscaled (h + d - height);
+ T := identity xscaled blot_diameter
+ yscaled (h + d - height);
+ pickup pencircle transformed T;
+ ellipse := fullcircle transformed T;
% Adjust vertical coordinates to touch bounding box.
y1 := top -d;
z1 = (0.00 wd + blot_diameter / 2, 0);
z2 = (0.4 wd - blot_diameter / 2, 0);
- fill get_subpath (ellipse, left, right, z1)
- -- get_subpath (ellipse, right, left, z2)
- -- cycle;
-
labels (1, 2);
pickup pencircle scaled linethickness;
if left_down_stem:
- set_char_box (0.0, 0.4 wd#, 1.25 ht#, 0.25 ht#);
+ z4 = (0.00 wd + linethickness / 2, -1.25 ht);
+
+ fill get_subpath (ellipse, left, down, z1)
+ -- top lft z4{down}
+ .. z4{right}
+ .. top rt z4{up}
+ -- (rt x4, -.5 ht / 2)
+ -- get_subpath (ellipse, right, left, z2)
+ -- cycle;
- z4 = (0.00 wd + linethickness / 2, blot_diameter / 2);
- z5 = (0.00 wd + linethickness / 2, -1.25 ht);
+ labels (4);
- draw_rounded_block (lft z5, rt z4, linethickness);
+ set_char_box (0.0, 0.4 wd#, 1.25 ht#, 0.25 ht#);
elseif left_up_stem:
- set_char_box (0.0, 0.4 wd#, 0.25 ht#, 1.25 ht#);
+ z4 = (0.00 wd + linethickness / 2, +1.25 ht);
+
+ fill get_subpath (ellipse, down, right, z1)
+ -- get_subpath (ellipse, right, left, z2)
+ -- (rt x4, .5 ht / 2)
+ -- bot rt z4{up}
+ .. z4{left}
+ .. bot lft z4{down}
+ -- cycle;
- z4 = (0.00 wd + linethickness / 2, -blot_diameter / 2);
- z5 = (0.00 wd + linethickness / 2, +1.25 ht);
+ labels (4);
- draw_rounded_block (lft z4, rt z5, linethickness);
+ set_char_box (0.0, 0.4 wd#, 0.25 ht#, 1.25 ht#);
else:
+ fill get_subpath (ellipse, left, right, z1)
+ -- get_subpath (ellipse, right, left, z2)
+ -- cycle;
+
set_char_box (0.0, 0.4 wd#, 0.25 ht#, 0.25 ht#);
fi;
- labels (4, 5);
fet_endchar;
enddef;