Feature request: Add default Music Text font styles/weights to SMuFL JSON metadata

Hi Dorico team,

I would like to suggest an extension to the SMuFL font metadata JSON used by Dorico and other notation applications.

At the moment, SMuFL includes engravingDefaults.textFontFamily, which allows a SMuFL music font to specify the preferred text font family that should be paired with it. This is very useful, but it only defines the text font family, not the actual default text faces/styles that should be used for Regular, Bold, Italic, and Bold Italic.

For third-party SMuFL fonts that include a matching Music Text font, this creates an incomplete workflow. The application can know the preferred text family, but it cannot reliably know which exact font face should be used for each style.

I would like to propose adding an optional JSON structure such as:

{
  "engravingDefaults": {
    "textFontFamily": ["Example Text", "serif"],
    "textFontStyles": {
      "regular": {
        "family": "Example Text",
        "style": "Regular",
        "weight": 400,
        "italic": false
      },
      "bold": {
        "family": "Example Text",
        "style": "Bold",
        "weight": 700,
        "italic": false
      },
      "italic": {
        "family": "Example Text",
        "style": "Italic",
        "weight": 400,
        "italic": true
      },
      "boldItalic": {
        "family": "Example Text",
        "style": "Bold Italic",
        "weight": 700,
        "italic": true
      }
    }
  }
}

This would allow SMuFL font designers to define the intended default Music Text font styles directly in the metadata file. Dorico could then automatically set the correct Default Music Text Font and related styles when a third-party SMuFL music font is selected, instead of requiring the user to set them manually.

This would make third-party SMuFL fonts behave more consistently with bundled fonts, and it would make the SMuFL JSON metadata more complete for real-world font families that include separate music-text companions.

The new field could be optional, so existing SMuFL fonts would remain fully compatible.

Suggested field name: textFontStyles, textFontFaces, or textFontStyleMap.

Thank you for considering this improvement.
—Nordine.
@Philip_R @Chase43078 @FredGUnn @dspreadbury

What’s the purpose of defining entries for weights like regular, italic, bold, and bold italic when presumably you’re going to use the same font family in all cases? And why hardcode those specific style names, when these days fonts can use extended style names that are essentially arbitrary? I’m afraid I don’t see what this achieves at all.

Perhaps you could say more about the underlying requirement here, rather than your proposed solution?

The JSON you propose doesn’t seem to reference the matching Music Text font specifically. There should be a clear distinction between the recommended (but optional) text fonts and the required music text font, which would be a part of the SMuFL install package.

It would be great if the scope of engravingDefaults was extended to include:

  • gap between time signature numerator and denominator. In cases where time signature glyphs are shorter than 2 spaces (as used by some publishers).
  • size of small clefs (gClefSmall, cClefSmall, fClefSmall). This is somewhat specific to how Dorico handles these, but the size of small clefs should have an “as designed” size value.

And in Dorico, it would be great to have more support for OpenType ligatures and contextual alternatives. E.g. for multisegment lines and parenthesized accidentals.

Okay, forget it.