Loading…
Loading…
Rule
Gradus GE-178 · cite this code — it is permanent. Rule id spacing-furniture-decomposition
Each element of a system's opening furniture has its own, independently well-defined width (a clef glyph's advance width, a key signature's accidental count, a time signature's digit-column width, an opening barline's stroke width) — collapsing them into one constant makes it impossible to fix one term (e.g. correct the key-signature bucket, per spacing-furniture-keysig-graduated-width) without also silently affecting the others, and makes it impossible to diagnose WHICH element under- or over-reserved space when a block overflows.
`FIXED_EXTRAS_BASE = 90` (line 32) is a single opaque constant with no comment or breakdown explaining what portion is clef vs. opening-barline vs. base padding; `fixedExtras = FIXED_EXTRAS_BASE + keySigExtra + barlineCount * 12` (line 797) adds only the key-signature and barline terms on top of that opaque base — meaning the clef's own width (measured: treble clef `gClef` ha=1756 -> 70.2 VF units; bass clef `fClef` ha=897 -> 35.9 VF units, a difference of roughly 2x) is baked into `FIXED_EXTRAS_BASE` as an averaged, undifferentiated constant. A grand-staff or open-score block whose staves mix treble and bass clefs (common in Gradus's SATB/grand-staff layouts) uses the SAME `fixedExtras` for both staves even though a treble clef needs roughly twice the bass clef's furniture width — the pre-render estimate cannot possibly be correct for both staves simultaneously with one shared constant.
Gould, Behind Bars and Read, Music Notation both treat clef width, key-signature width, and time-signature width as separate topics with separate rules (each has its own chapter); this rule's specific claim — that lumping them is itself a diagnosability defect — is a Gradus-internal software-engineering observation grounded in the code read.
This rule can be decided from pitches, durations and voices — no layout required. A validator can check it before anything is drawn.
Gradus GE-178 — Clef, key-signature, time-signature, and opening-barline width must be tracked as four separate, independently-correct terms, not one lump constant. Gradus Engraving Rulebook v1.0. https://gradusmusic.com/engraving/rule/spacing-furniture-decomposition
Rulebook v1.0 · text licensed CC-BY-4.0 · machine-readable at /api/v1/engraving/rules/spacing-furniture-decomposition