Hi all, I've been working on making flags appear at the correct position for both Emmentaler and Bravura, and I've hit a snag.
Emmentaler's flag glyphs are minimal: they deliberately don't overwrite a stem's tip, only overlapping with the stem in a thin, rectangular area (see the attached Emmentaler example). This works well for LilyPond, which draws stems using rounded rectangles whose roundness is determined by a blot-diameter value. An Emmentaler flag is vertically offset to line up with where its stem's rounded corner ends. However, SMuFL expects scoring programs to use plain rectangle primitives for drawing stems. With this in mind, Bravura's flags cover up whatever (flat) stem tip may have existed, providing a new tip that's hardcoded into the glyph (see the attached Bravura example, made by ignoring blot-diameter with regards to stem placement). Without a concept of blot-diameter, SMuFL does not expect the default position of a flag glyph to change in such a subtle manner, simply requiring it to be attached at the exact y-value at which the stem ends. This means that, at the moment, the SMuFL standard alone cannot reliably reproduce Emmentaler's slightly variable flag positioning. A quick-and-dirty fix would be for LilyPond to set blot-diameter to 0 when a SMuFL font other than Emmentaler is loaded, which will result in sharp rectangle corners as SMuFL expects. However, other programs wouldn't look quite the same with Emmentaler because of their straight rectangle stem primitives. For a full-on fix, I think it may be a good idea to see if we can get our blot-diameter / minimal flag concepts into SMuFL as a couple optional metadata items, so other fonts and notation programs can take advantage of them if they wish. Do you guys think that's worth it? Thanks, Owen