Loading…
Loading…
Rule
Gradus GE-018 · cite this code — it is permanent. Rule id accidental-public-api-schema-gap
A complete accidental vocabulary requires at minimum sharp, flat, natural, double sharp, double flat, and a courtesy/cautionary flag.
parsePitch() (jsonToScore.ts, VERIFIED lines 40-50) matches only `/^([A-G])([#b])?(-?\d+)$/` and its own doc comment (lines 34-38) explicitly states double sharps/flats ('C##4', 'Bbb3') 'return null' -- an agent cannot author a natural, a double sharp/flat, or request a parenthesized courtesy accidental at all (no such field exists on NoteObject).
SMuFL defines the full accidental glyph set including natural/double sharp/double flat and parenthesized variants; MusicXML's <accidental> element supports the same set plus a parentheses attribute -- table-stakes vocabulary Gradus already interoperates with via its own MusicXML export/import.
This rule can be decided from pitches, durations and voices — no layout required. A validator can check it before anything is drawn.
Gradus GE-018 — The public Notation API cannot express naturals, double accidentals, or courtesy marks. Gradus Engraving Rulebook v1.0. https://gradusmusic.com/engraving/rule/accidental-public-api-schema-gap
Rulebook v1.0 · text licensed CC-BY-4.0 · machine-readable at /api/v1/engraving/rules/accidental-public-api-schema-gap