Skip to content

Ship a text face: every string is a .notdef box on a host without the fallback families #28

Description

@alessonqueirozdev-hub

Problem

This package ships no text face. pubspec.yaml declares exactly two families and both are music fonts (Bravura, Greciliae); assets/smufl/ holds Bravura.otf and no text font at all.

Every string the package draws — lyrics, tempo marks, rehearsal letters, dynamics text, fingerings, chord symbols — falls back to Academico, Century Schoolbook, Edwin, serif. On a host that provides none of those, every one of them renders as a .notdef box.

Measured: the generic serif family does not rescue it. A headless binary with a face registered literally as serif produced a byte-identical PNG to one with no text font at all.

The supported answer today

MusicTextFont.use / MusicScoreTheme.textFontFamily is a real escape hatch and, since 2.8.0, reaches every string the package draws. Measured with a face injected: ink went from 14 942 px to 6 886 px and .notdef boxes from 2 to 0 on the probe score.

So this is not "text is broken" — it is "the package makes the consumer supply something it could supply itself".

What closing this needs

An OFL-licensed text face committed to assets/, declared in pubspec.yaml, and used as the default when the consumer sets nothing. Candidates worth evaluating for a music package: Edwin (Verovio's, OFL, designed for exactly this), or a Century-Schoolbook-alike.

Acceptance criteria

  • A text face ships and is the default; the .notdef count on the probe score is 0 with no consumer configuration.
  • MusicTextFont.use still overrides it.
  • THIRD_PARTY_LICENSES.md records the licence, as it does for Bravura and Greciliae.
  • Archive-size impact stated in the PR — this package already carries ~5 MB of font assets.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    engravingGlyph placement, spacing, beams, stems, ties — how the notation looks on the pagehelp wantedExtra attention is neededpackagingpub.dev release, assets, archive contents, CI

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions