+puff_up_factor = (linethickness# - 0.1 staff_space#) / (0.1 staff_space#);
+
+
+stemthickness# := 1.3 stafflinethickness#;
+stemthickness_rounded# := stemthickness#;
+ledgerlinethickness# := 2 stafflinethickness#;
+ledgerlinethickness_rounded# := ledgerlinethickness#;
+
+define_pixels (staff_space, stemthickness, stafflinethickness,
+ ledgerlinethickness, linethickness);
+define_whole_pixels (staff_space_rounded);
+define_whole_blacker_pixels (stemthickness_rounded);
+define_whole_vertical_blacker_pixels (stafflinethickness_rounded,
+ ledgerlinethickness_rounded,
+ linethickness_rounded);
+
+if ledgerlinethickness_rounded > 2 stafflinethickness_rounded:
+ ledgerlinethickness_rounded := 2 stafflinethickness_rounded;
+fi;
+
+%
+% Because of the engraving/stamping process, no traditional
+% characters have sharp edges and corners.
+% The following variable controls the amount of `roundness'.
+%
+% This is not a meta variable: it is related to absolute sizes.
+%
+% FIXME: According to [Wanske], only outside corners should be round
+% I don't think we do this anywhere -- jcn
+%
+
+blot_diameter# = .40 pt#;
+if (blot_diameter# * hppp) < 1:
+ blot_diameter# := 1 / hppp;
+fi
+if (blot_diameter# * vppp) < 1:
+ blot_diameter# := 1 / vppp;
+fi
+
+define_pixels (blot_diameter);
+
+
+%
+% symmetry
+% --------
+%
+% Some glyphs have to be positioned exactly between stafflines (clefs,
+% note heads). This needs some care at lower resolutions.
+%
+% Most glyphs use the staffline thickness and the space between two
+% staff lines as the fundamental parameters. The latter is the distance
+% between the middle of one staff line to the middle of the next. To
+% say it differently, the value `staff_space' is the sum of one staff line
+% thickness and the whitespace between two adjacent staff lines.
+%
+% Normally, feta's vertical origin for glyphs is either the middle
+% between two staff lines or the middle of a staff line. For example, the
+% lower edge of the central staff line is at the vertical position
+% `-<staffline thickness> / 2', and the upper edge at
+% `<staffline thickness> / 2'. Here we need a value rounded to an integer
+% (the feta code uses `stafflinethickness_rounded' for that purpose).
+%
+% If we have an odd number of pixels as the staffline thickness, Metafont
+% rounds `-stafflinethickness_rounded / 2' towards zero and
+% `stafflinethickness_rounded / 2' towards infinity. Example: `round -1.5'
+% yields -1, `round 1.5' yields 2. The whitespace between staff lines is
+% handled similarly. If we assume that stafflinethickness_rounded is odd,
+% we have the following cases:
+%
+% o The glyph is centered between three stafflines or five stafflines
+% (clef, `c' meter). We have this:
+%
+% ___________ a
+% ___________ 1
+% ___________ a
+%
+% whitespace