Loading…
Loading…
Rule
Gradus GE-418 · cite this code — it is permanent. Rule id vs-stacking-order-canonical
From the notehead outward: (1) notehead + its own accidental/ledger lines, (2) fingering, (3) articulation, (4) ornament, (5) slur/tie arc, (6) dynamics/hairpin, (7) tempo/expression/rehearsal text, (8) fermata and marcato (ALWAYS outermost, overriding the above order entirely per vs-fermata-marcato-always-outside).
Any two co-located items on one note/side render in an order inconsistent with the list above (itemized individually in vs-articulation-stack-order, vs-fermata-marcato-always-outside, vs-fingering-clearance, vs-hairpin-dynamic-alignment).
Synthesized from Gould, Behind Bars (scattered across the Articulation, Ornaments, Ties/Slurs, Dynamics, and Fingering chapters, no single consolidated table in the source) and Dorico's engraving-options grouping.
CONFIRMED (not merely synthesized) against VexFlow's actual implementation: `ModifierContext.preFormat` (modifiercontext.ts lines 148-163) runs categories in the EXACT order Dot, FretHandFinger, Accidental, Stroke, GraceNoteGroup, NoteSubGroup, StringNumber, Articulation, Ornament, Annotation, ChordSymbol, Bend, Vibrato — meaning items (2)-(6) above are not merely a convention Gradus should follow, they are the literal, hardcoded behavior of the rendering library Gradus already uses. Where sources differ on fingering-vs-articulation priority for rare simultaneous cases, this rulebook follows Gould (fingering innermost), which is also what VexFlow's category table already enforces.
Our own judgement, not a sourced convention — shown separately so the two are never confused.
This rule can be decided from pitches, durations and voices — no layout required. A validator can check it before anything is drawn.
Gradus GE-418 — Canonical priority order of items stacked on one side of a note, from the notehead outward. Gradus Engraving Rulebook v1.0. https://gradusmusic.com/engraving/rule/vs-stacking-order-canonical
Rulebook v1.0 · text licensed CC-BY-4.0 · machine-readable at /api/v1/engraving/rules/vs-stacking-order-canonical