Loading…
Loading…
Rule
Gradus GE-092 · cite this code — it is permanent. Rule id transposition-omitted-for-known-transposing-instrument
When an instrument's name unambiguously implies a transposing instrument (e.g. 'Clarinet in Bb', 'Horn in F', 'Trumpet in Bb', 'Alto Saxophone', 'English Horn'), its `transposition` field should be auto-inferred from that name exactly as `clef` already is — leaving it at its 0 default silently produces a part written and sounding at the same pitch, which is wrong for every one of those instruments. This is a distinct, arguably higher-risk fault than supplying the wrong SIGN on an explicit value (transposition-field-sign-convention-mismatch): it requires no incorrect value at all, only silence — the schema's own default path, and therefore the path of least resistance for an agent author who does not already know the instrument transposes.
Adler, The Study of Orchestration, is the standard reference for which instruments transpose and by how much; this rule's remedy directly extends the SAME name-inference convention Gradus already applies to clef (jsonToScore.ts's `inferClef`), so the fix is architectural consistency with existing, working code, not a new design.
This rule can be decided from pitches, durations and voices — no layout required. A validator can check it before anything is drawn.
Gradus GE-092 — An instrument name that implies transposition, left at the field's 0 default, silently produces an un-transposed part. Gradus Engraving Rulebook v1.0. https://gradusmusic.com/engraving/rule/transposition-omitted-for-known-transposing-instrument
Rulebook v1.0 · text licensed CC-BY-4.0 · machine-readable at /api/v1/engraving/rules/transposition-omitted-for-known-transposing-instrument