Custom accidentals with multiple glyphs scale incorrectly on grace notes

When using a custom Tonality System where the accidentals have multiple glyphs in one (e.g., Helmholtz-Ellis) grace notes do not scale correctly. The glyp itself scales just fine, but the offset values aren’t scaling properly so it’s in a wacky spot.

Screenshot attached, using Dorico 2.2.10 on Windows 10. Font is Bravura.

Welcome to the forum, Andrew! Please see this earlier thread.

Thanks Daniel! You’re the best. I couldn’t find that one searching for some reason.

This didn’t actually straight-out fix my problem (though it did give me hope). I did find a workaround that makes the problem less severe, but I’m pretty sure there’s still a bug. Read on -

What did fix my problem was making sure that the attachment settings were “baseline” rather than “center.” But I think that only fixed it because then the Y-offset could be 0.0, so there was no scaling problem to be had. My guess is that the reason that the fix (re-creating the accidentals in a different order) works is because the default attachment settings assume left-to-right entry, so your X-offset is 0.0 or at most 1.0 for minimal spacing. The original bug was about X-spacing, so making sure the Attachment Settings let you enter a very small X-offset would naturally fix the spacing-scaling error.

As a more dramatic example, I’ve attached an example where I created the accidentals left-to-right. Attachment settings are “from Middle Right,” “to Bottom Left,” and Y-offset is 7.0. The center of the grace note is aligned with the center of the accidental, and you can see that the Y-offset from the middle-right of the main accidental (the quarter-tone sharp) positions the flat in the same place both times. Attaching a screenshot of the Tonality Editor window as well, so you can clearly see that the undecimal 1/4-tone sharp is the “primary” accidental.

Thanks a lot! Just switched from Lilypond after ~9 years of developing all sorts of extensions and custom Scheme scripts, and so far I dig it. Learning the Lua script is next on the list, once this piece is done.

Edit: This doesn’t actually solve everything, in part because the baselines with Bravura’s Helmholtz-Ellis notation aren’t all correct. The baseline on the 7-limit sharp alteration should actually be where the blue arrow is on the attached file.


I’m also interested in learning it, but the impetus is pretty low at the moment. It’s not yet fully functional in Dorico, as I understand. And the pace of development is still so rapid that even if I did learn it and manage to write a script, there’s a sporting chance whatever functionality I had achieved would be natively possible in a few months.

Andrew, if you’re able to help me fix the baseline positioning of the characters in the Helmholtz-Ellis JI range, I’d be grateful for the assistance.

Okay, piece complete, returning to earth – how might I help fix the baseline accidentals? Maybe just give the exact offsets in Fontforge or something?

(Also, just making sure the bug “grace note scaling does not also scale staff-size-offsets for custom accidentals” made it on the tracker…)

thanks for the tweet!

Andrew, yes, if you want to send me a list of the glyph code points that need to be changed and the amount by which they need to be offset, that would be helpful. Perhaps you could even just send me a version of Bravura with the edits made in FontForge: provided you send me the list of the affected glyphs as well as the edited font, I’ll be able to translate the necessary changes back into FontLab.