%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
save black_notehead_width, noteheight;
-save slash_thick, slash_slope, overdone_heads, solfa_noteheight;
-numeric black_notehead_width, noteheight, slash_thick;
+save half_notehead_width, whole_notehead_width, slash_thick;
+save slash_slope, overdone_heads, solfa_noteheight;
+
+numeric noteheight;
+numeric slash_thick;
+numeric black_notehead_width;
+numeric whole_notehead_width;
+numeric half_notehead_width;
fet_begingroup ("noteheads");
undraw_inside_ellipse (1.30, 125 - puff_up_factor * 10,
0.68, 2 stafflinethickness#);
+ whole_notehead_width# := charwd;
+
draw_staff (-2, 2, 0);
fet_endchar;
draw_outside_ellipse (1.53 - puff_up_factor / 3.0, 34, 0.66, 0.17);
undraw_inside_ellipse (3.25, 33, 0.81, 2.5 stafflinethickness#);
+ half_notehead_width# := charwd;
+
draw_staff (-2, 2, 0);
fet_endchar;
enddef;
+%
+%
+% UGH : xs not declared as argument.
+%
def define_triangle_shape (expr stemdir) =
save triangle_a, triangle_b, triangle_c;
save triangle_out_a, triangle_out_b, triangle_out_c;
& {direction infinity of triangle_out_c}z1'l
.. cycle;
+
labels (0, 10, 20, 30);
penlabels (1, 1', 2, 2', 3, 3', 12, 23, 31);
% attachment Y
if stemdir = 1:
charwy := ypart exact_right_point;
- charwx := xpart exact_right_point;
+ charwx := xpart exact_right_point + .5 pen_thick# * xs;
else:
charwy := -ypart exact_down_point;
- charwx := (width# - xpart exact_down_point);
+ charwx := (width# - (xpart exact_down_point - 0.5 * xs * pen_thick#));
fi
enddef;
enddef;
-fet_beginchar ("Half trianglehead", "d1triangle");
+fet_beginchar ("Half trianglehead (downstem)", "d1triangle");
draw_small_triangle_head (-1);
draw_staff (-2, 2, 0);
fet_endchar;
-fet_beginchar ("Half trianglehead", "u1triangle");
+fet_beginchar ("Half trianglehead (upstem)", "u1triangle");
draw_small_triangle_head (1);
draw_staff (-2, 2, 0.5);
enddef;
-fet_beginchar ("Quart trianglehead", "u2triangle");
+fet_beginchar ("Quart trianglehead (upstem)", "u2triangle");
draw_closed_triangle_head (1);
draw_staff (-2, 2, 0);
fet_endchar;
-fet_beginchar ("Quart trianglehead", "d2triangle");
+fet_beginchar ("Quart trianglehead (downstem)", "d2triangle");
draw_closed_triangle_head (-1);
draw_staff (-2, 2, 0.5);
%
save solfa_pen_thick;
-solfa_pen_thick# = 2 stafflinethickness#;
+solfa_pen_thick# = 1.75 stafflinethickness#;
define_blacker_pixels (solfa_pen_thick);
-solfa_whole_width := 1.8;
-solfa_half_width := 1.35;
-solfa_quarter_width := 1.35;
+save solfa_base_notewidth;
+solfa_base_notewidth# := black_notehead_width#;
+solfa_whole_width := whole_notehead_width# / black_notehead_width#;
+solfa_half_width := half_notehead_width# / black_notehead_width#;
+solfa_quarter_width := 1.0;
def draw_do_head (expr width_factor, dir) =
save p_in, p_out;
path p_in, p_out;
pair left_dist, right_dist;
- set_char_box (0, width_factor * solfa_noteheight#,
+ set_char_box (0, width_factor * solfa_base_notewidth#,
0.5 solfa_noteheight#, 0.5 solfa_noteheight#);
pickup pencircle scaled solfa_pen_thick;