By having short names for the co-ordinates of the points we're
considering, we can make the conditions easier to read, which will
help as the conditions become more complex.
It now records how it wants to move each point and them actually moves
the points in a second pass. This avoids a problem where moving one
point would cause the loop not to correctly recognise the types of
adjacent points in the path. This in particular affected glyphs with
sharp upper corners (like &) with weights >= 50.
It's necessary to build the glyph complement, and I think the source
distribution should include everything necessary to build the binaries
in it. It doesn't need to include things that are only used for the
Web site, though.
"circleplus" is the AGLFN name, but it was called "uni2259" in
Bedstead 002.000 and 002.001, so the old name should stay for
compatibility, for instance with existing PostScript files.
The consequence of this is to narrow the diagonal strokes. They go
from being 6% wider than horizontal and vertical strokes to being 0.4%
wider. I like the consistency, but it also has a practical advantage:
at round pixel sizes the daigonal edges no longer pass through pixel
centres. This means that we're no longer at the mercy of rasterizer
tie-breaking rules so (for instance) Ghostscripts rasterizations are
symmetric now.
Since the shape of diagonal lines on a real SAA5050 is determined by
both edges of a clock whose duty cycle is only specified as being
between 0.4 and 0.6, I claim this is still within the tolerances of
the original.
I thought repeat marks might be useful, and ended up doing a few others.
The repeat marks and clefs are based on the assumption that a five-line
stave fills the character cell and that you're using the clefs in their
most common position.
The OpenType spec isn't entirely confident here, but it seems to think
that name ID 16 is unnecessary if it's identical to 1, and it makes
sense to me that 16/17 should go together as a pair just like 1/2 do.
Without then, the feature doesn't work, and more surprisingly
FontForge puts the description of the feature into string ID 0, which
is meant to be the copyright notice.