Loading…
Loading…
Rule
Gradus GE-110 · cite this code — it is permanent. Rule id expr-hairpin-vocabulary-drift
There are exactly two hairpin directions (crescendo, decrescendo/diminuendo); an audit tool spanning multiple content surfaces needs one canonical vocabulary to compare across them.
Model A's `hairpins[].type` is `'cresc' | 'decresc'`; Model C's `HairpinType` is `'cresc' | 'dim'` — the same musical concept (diminuendo) is spelled two different ways depending on which file you're reading, so a cross-surface audit rule (e.g. expr-hairpin-text-redundant) must maintain two separate string-match tables or it will silently miss half the cases.
N/A (schema-consistency convention, not an engraving-authority rule) — flagged because it affects the audit engine's own reliability across surfaces.
This rule can be decided from pitches, durations and voices — no layout required. A validator can check it before anything is drawn.
Gradus GE-110 — Hairpin direction vocabulary must be identical across authoring surfaces. Gradus Engraving Rulebook v1.0. https://gradusmusic.com/engraving/rule/expr-hairpin-vocabulary-drift
Rulebook v1.0 · text licensed CC-BY-4.0 · machine-readable at /api/v1/engraving/rules/expr-hairpin-vocabulary-drift