From: Janek Warchol <lemniskata.bernoullego@gmail.com>
Date: Sat, 6 Aug 2011 08:02:59 +0000 (+0200)
Subject: change longas similarly to how breves were changed
X-Git-Tag: release/2.15.12-1~24
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=72b2acb98422cde09729517d2a62d382f7b73814;p=lilypond.git

change longas similarly to how breves were changed

Put vertical lines farther apart,
make them longer to increase readability
and include them in X-extent.
---

diff --git a/mf/feta-noteheads.mf b/mf/feta-noteheads.mf
index 87d9034713..8fee280831 100644
--- a/mf/feta-noteheads.mf
+++ b/mf/feta-noteheads.mf
@@ -82,42 +82,62 @@ endgroup;
 enddef;
 
 
-%
-% dimensions aren't entirely right.
-%
 def draw_longa (expr up) =
 	save stemthick, fudge;
 
 	stemthick# = 2 stafflinethickness#;
 	define_whole_blacker_pixels (stemthick);
 
-	fudge = hround (blot_diameter / 2);
+	% Longas of smaller design sizes should have their lines farther
+	% apart (the overlap with notehead ellipsoid should be smaller).
+	fudge = hround (blot_diameter
+			* min (max (-0.15,
+				    (0.9
+				     - (20 / (design_size + 4)))),
+			       0.3));
 
 	draw_outside_ellipse (1.80, 0, 0.707, 0);
 	undraw_inside_ellipse (1.30, 125, 0.68, 2 stafflinethickness#);
 
+	set_char_box (stemthick#,
+	              width# + stemthick#,
+	              noteheight# / 2,
+	              noteheight# / 2);
+
 	pickup pencircle scaled stemthick;
 
+	% Longas of smaller design sizes should have their lines longer.
+	line_length := min (max (0.7, (64/60 - (design_size / 60))), 0.85);
+
+	% Line lengths between 0.72 and 0.77 are not nice
+	% because they are neither separate nor connected
+	% when there is an interval of fourth.
+	if line_length < 0.75:
+		quanted_line_length := min (0.72, line_length);
+	else:
+		quanted_line_length := max (0.77, line_length);
+	fi;
+
 	if up:
-		bot y1 = -d;
-		top y2 = h;
+		bot y1 = -quanted_line_length * staff_space;
+		top y2 = quanted_line_length * staff_space;
 		rt x1 - fudge = 0;
 		x1 = x2;
 
-		fudge + lft x3 = w;
+		fudge + lft x3 = width;
 		x4 = x3;
 		top y4 = h + 3.0 staff_space;
 		y3 = y1;
 	else:
 		bot y1 = -d - 3.0 staff_space;
-		top y2 = h;
+		top y2 = quanted_line_length * staff_space;
 		rt x1 - fudge = 0;
 		x1 = x2;
 
-		fudge + lft x3 = w;
+		fudge + lft x3 = width;
 		x4 = x3;
 		y4 = y2;
-		bot y3 = -d;
+		bot y3 = -quanted_line_length * staff_space;
 	fi;
 
 	draw_gridline (z1, z2, stemthick);