Replace default font 04B_03__.TTF with norns.ttf containing 86 new glyphs #1783
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR includes a new font,
norns.ttf
, which replaces the default04B_03__.TTF
.What's new
Includes existing glyphs from 04B_03 with three changes:
Adds 86 additional glyphs:
Why a font/why a new name?
The reasoning behind adding so many text glyphs, rather than expanding
lib/ui
is that these have the advantage of being usable in script preview text, menus, param names, etc...The new name is intended to distinguish the font from the original, considering 1.) it now has more than double the original glyphs of the original (up from 99 to 238) and 2.) flexibility is needed to modify the font without misattributing changes or additions to the original designer. I reached out to 04B_03's creator, Yuji Oshimoto, and was granted express permission to create a new font based on the original typeface for this purpose.
Risks/issues
I've workshopped the font around the Norns Study Group and the feedback has been positive, but there are some risks to be aware of.
Even though care has been taken to change existing glyphs only where necessary- and those changes are quite minor- scripts will be affected. I've made sure that the previous glyphs are still available at new code points, so I hope script authors can implement a quick fix if needed.
Unicode does not have code points for musical superscripts. My approach to this has been to use the code points from a Private Use Area block used by the Standard Music Font Layout (SMuFL) specification, specifically Chord symbols and Standard accidentals (12-EDO).
Where we deviate from the SMuFL spec is that we are using those code points explicitly for superscripts, not full-size glyphs. The spec assumes a more modern font format like OpenType which can embed stylistic alternatives for individual glyphs.
Since we're working with TrueType in a constrained application, I think this is the best compromise. To wit, the full-sized versions of these glyphs already have dedicated unicode code points and this way we are using the closest thing to a standard that exists in this format.
Creating the .ttf binary is a bit more complicated as I've found some tools like PixelForge don't support 4-byte code points so some remapping and metadata cleanup is required using a different tool such as Typelight. Nothing too onerous and I'm happy to facilitate, but I've created a repo with instructions and source files for future maintainers just in case.
Additional details available in attached pdf