SMUFL scripting: generting json file

Hi,

I’d like to make a SMUFL music font for my music notation software, so I found this link that describes the process for Glyphs app users:

But the generate_font_metadata.py seems not to work at all, even I could generate the smufl font JSON but with no extra metadata inside. Please, may any body helps?

Here is a link of Bravura font to use as an example:

Thanks a lot for your kind help.

I have too little knowledge about this notation system, but my guess is that the best course of action is to post an issue in their issue tracker because I do not know if the people who manage SMuFL are in this forum:

1 Like

I’ll try to remember to take a look at those scripts when I have spare energy. I use my own tools, but they’re not ready for release.

1 Like

Hi Nor, apologies for taking so long to look at this. Schedules have been a bit off during this pandemic with some personal grief on top of the global grief.

I tried a simple test with a single noteheadBlack (uniE0A4) and it seemed to work.

Perhaps describe what you did and saw? Happy to take a look further. Or maybe you solved the issue? I saw you released some of your fonts as SMuFL fonts. Great!

Here’s what I did:

  1. Copied the scripts and referenced json files into a subdirectory under the Scripts directory, e.g.:
    ~/Library/Application Support/Glyphs/Scripts/smufl/
  2. Reloaded the Scripts withing Glyphs via Scripts > Reload Scripts (Option-Shift-Command-Y).
  3. Selected to run Scripts > smufl > Set metadata…
    a. Any errors will show up in the Macro window.
  4. Selected to run Scripts > smufl > Generate SMuFL metadata…
    a. By default, the metadata is stored on the Desktop with the filename using the font name and current date/time.

I saw the glyphBBoxes set in the .json file and glyphsWithAnchors set when I added an anchor. Note that it’s up to you to use the anchor names that match the SMuFL specification.

I’ll note that these scripts store data in each glyph’s userData and use the unicode value to set that data.

For the populate ranges or just creating glyphs, I’d take a different approach and use a custom GlyphData.xml with list filters in the left sidebar. Then, one can take advantage of how Glyphs works to create glyphs by the SMuFL name or unicode and use the lists to do so are see what’s missing in the ranges you want and define.

1 Like

Hi jk!

Thanks a lot for your input. I will try to describe my issue. In Glyphs script folder I created a folder named ‘smufl glyphs’ where I put these files:

  • set_metadata_and_category.py
  • set_display_name_to_glyph_name.py
  • set_display_name_to_glyph_description.py
  • ranges.json populate_ranges.py
  • glyphnames.json
  • generate_font_metadata.py
  • classes.json bravura_metadata.json

I select all my NorPen (music font) glyphs then click ‘Set metadata on selected (or all) glyphs…’ then click ‘Generate SMuFL metadata JSON (Anchors +BBoxes)’ I get an exported .json file on my dektop, when I open it it only displays he engraving infos like below:

{
“engravingDefaults”: {
“arrowShaftThickness”: 0.16,
“barlineSeparation”: 0.4,
“beamSpacing”: 0.25,
“beamThickness”: 0.5,
“bracketThickness”: 0.5,
“dashedBarlineDashLength”: 0.5,
“dashedBarlineGapLength”: 0.25,
“dashedBarlineThickness”: 0.16,
“hairpinThickness”: 0.16,
“legerLineExtension”: 0.4,
“legerLineThickness”: 0.16,
“lyricLineThickness”: 0.16,
“octaveLineThickness”: 0.16,
“pedalLineThickness”: 0.16,
“repeatBarlineDotSeparation”: 0.16,
“repeatEndingLineThickness”: 0.16,
“slurEndpointThickness”: 0.1,
“slurMidpointThickness”: 0.22,
“staffLineThickness”: 0.13,
“stemThickness”: 0.12,
“subBracketThickness”: 0.16,
“textEnclosureThickness”: 0.16,
“thickBarlineThickness”: 0.5,
“thinBarlineThickness”: 0.16,
“tieEndpointThickness”: 0.1,
“tieMidpointThickness”: 0.22,
“tupletBracketThickness”: 0.16
},
“fontName”: “NorPen”,
“fontVersion”: 1.12,
“glyphBBoxes”: {
“null”: {
“bBoxNE”: [
4.504,
3.616
],
“bBoxSW”: [
-0.368,
-0.92
]
}
},
“glyphsWithAnchors”: {},
“optionalGlyphs”: {}
}

Am I doing something wrong?

The JSON files I exported for my BopMusicSMFL and RealScoreSMFL for use with Dorico where done on FontLab 5.2 through a VMware machine on my macOS 10.15.6 running Windows 8 and

But I’m really interested in your tips and your customized stuff :smiley: I appreciate your kind help.
—Nor Eddine Bahha
https://norfonts.ma