Loading…
Loading…
Rule
Gradus GE-358 · cite this code — it is permanent. Rule id tie-chord-accidental-and-content-in-export
Tying a chord requires ALL of its pitches to persist unchanged into the next chord; a chord tie is invalid if the chord's content differs at all — including a chord tone changing accidental with the same diatonic step.
`generateMusicXML`'s tie-pairing loop (musicxml-export.ts:587-606) tracks only `{ mi, ni, pitch }` per voice — `pitch` is the chord's ROOT/primary pitch only. `additionalPitches` (the chord's other tones) are never compared. A C-major triad (`pitch:0, additionalPitches:[4,7]`) marked `tiedToNext` and followed by a C-minor triad (`pitch:0, additionalPitches:[3,7]`) shares only the root — the exporter still emits a full chord tie, silently misrepresenting a change of harmony as a sustained chord.
Gould (chord tie = per-notehead tie, so per-notehead equality is required); Ross ('every member of the tied chord must reappear exactly').
This rule can be decided from pitches, durations and voices — no layout required. A validator can check it before anything is drawn.
Gradus GE-358 — MusicXML tie pairing must check every chord tone, not just the root pitch. Gradus Engraving Rulebook v1.0. https://gradusmusic.com/engraving/rule/tie-chord-accidental-and-content-in-export
Rulebook v1.0 · text licensed CC-BY-4.0 · machine-readable at /api/v1/engraving/rules/tie-chord-accidental-and-content-in-export