Where comes the information about glyph ranges from?

I have a rather technical question. I’ll provide some background in the next paragraph, you may skip that if you want.

I want to use the Smufl compliant font MuseJazzText for chord symbols, as well as MuseJazz for some other musical symbols. But it turned out that whenever I try to print a page where one of these fonts is used my printer crashes. The printjob is sent to it properly, the printer wakes up from sleep mode, but nothing happens. Same happens when using these fonts in a simple text document, so no fault on Doricos side. I downloaded the free trial version of the font editing software “Glyphs”. When I tried to export a new version of the font the software complained about a few glyphs’s names starting with a number, f.i. “4stringTabClef”. I renamed these glyphs to f.i.“fourStringTabClef”, exported the font with a different name and installed in onto my system. Wonderful thing is: it works! I can use these fonts in any application and it will print. With one little caveat:

When I go to Engrave-> Musical symbols I can change the appearance of any symbol by selecting any glyph from any font that is installed on my system. When I choose a Smufl-compliant font (also the original MuseJazz), I can then choose a subcategory like “Standard accidentals 12EDO” like in the image:

However, when I select my custom version of the MuseJazz font, these categories are unavailable, alongside some basic latin ranges (which are empty) I only can find all glyphs in the generic “Basic Private Use Area”. As this is a long list it is very tedious to look for one specific glyph.

The Smufl specification mentions some support files, one of them being “classes.json”, but I cannot find any of them installed on my system.


From where does Dorico get the information about these subcategories of glyph ranges? Is it stored within the font itself and gets lost when I import and re-export the font into a font-editor? Is it stored somewhere else? Or is it even hardcoded into Dorico itself? The latter I can not imagine, as the original MuseJazz font provides these categories but is unusable for the aforementioned reasons.

I haven’t tested my answer extensively, but I do believe that you do need to at least make the metadata available to Dorico. Whether Dorico actually does something with this metadata for this specific case, I don’t know, although I could hazard a guess that not really.

You can read about the installation instruction for a metadata file in the SMuFL specification.

Dorico uses the presence of the SMuFL metadata file as a guide for whether the font is SMuFL-compliant. It won’t show SMuFL codepoint ranges for non-SMuFL fonts. Having the metadata file is in fact a crucial part of SMuFL compliance.

Thanks, Daniel, this clears everything up.

So that information is baked into the dorico code and only applied if the selected font will be recognized as SMuFL compliant.

Meanwhile I had found the location of the SMuFL metadata for the three other fonts, made a new folder for my custom version and put a renamed copy of the MuseJazz.json file into it. I also had changed the name of the faulty named TabClefs in that file but had overlooked that the fontname itself in the json file has also to be changed.

Now it works. Wouldn’t have thought that this woul de so easy…