[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GSoC 2020: blot diameter and positioning of flags

From: Owen Lamb
Subject: GSoC 2020: blot diameter and positioning of flags
Date: Wed, 5 Aug 2020 18:08:32 -0700

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

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?


Attachment: Emmentaler flag example.png
Description: PNG image

Attachment: Bravura flag example.png
Description: PNG image

reply via email to

[Prev in Thread] Current Thread [Next in Thread]