+% o The glyph is centered between three stafflines or five stafflines
+% (clef, `c' meter). We have this:
+%
+% ___________ a
+% ___________ 1
+% ___________ a
+%
+% whitespace
+%
+% ___________ a
+% ...... ___________ 1 .................. x axis
+% ___________ a
+%
+% whitespace
+%
+% ___________ a
+% ___________ 1
+% ___________ a
+%
+% As can be seen, we get symmetry if we split staff lines into two
+% equal parts `a' and a pixel line with thickness 1. Consequently, we
+% use the following algorithm:
+%
+% . Decrease the height `h' by 1 temporarily.
+%
+% . Compute the path for the upper half of the glyph.
+%
+% . Mirror the path at the x axis.
+%
+% . Shift the upper half one pixel up and connect it with the lower path.
+%
+% . Restore height and decrease `d' by 1.
+%
+% o The glyph is centered between two or four staff lines, and the origin is
+% the middle of the whitespace. Assuming that the the whitespace consists
+% of an odd number of pixels, we have this:
+%
+% -----------
+% b
+% 1
+% b
+% ___________
+% b
+% .................. 1 ................. x axis
+% b
+% ___________
+% b
+% 1
+% b
+% ___________
+%
+% For symmetrical glyphs, this leads to a similar algorithm as above.
+% Glyphs which can't be constructed from an upper and lower part need
+% to be handled differently, namely to shift up the vertical center by
+% half a pixel:
+%
+% ___________
+% b
+%
+% 0.5
+% .................. 0.5 ................ x axis
+%
+% b
+% ___________
+%
+
+feta_eps := 0;
+feta_shift := 0;
+feta_space_shift := 0;
+
+% Use this for paths with a slant of 45 degrees to assure that
+% the middle point of a penpos gets covered.
+pair feta_offset;
+feta_offset := (0, 0);
+
+if known miterlimit:
+ pickup nullpen;
+else:
+ feta_eps := eps;
+
+ if odd stafflinethickness_rounded:
+ feta_shift := 1;
+ fi;
+
+ if odd (staff_space_rounded - stafflinethickness_rounded):
+ feta_space_shift := 1;
+ fi;
+
+ feta_offset := (0.5, 0.5);
+
+ pickup pencircle scaled 1;
+fi;
+
+feta_fillpen := savepen;