Loading…
Loading…
Rule
Gradus GE-050 · cite this code — it is permanent. Rule id beam-satb-shared-stave-stem-separation
When two independent voices share one staff (the SATB grand-staff convention: S+A on treble, T+B on bass), each voice's stems — and therefore its beams — must consistently point one fixed direction (upper voice up, lower voice down) so the two voices' beamed groups don't visually merge or cross through each other, even with zero actual voice-crossing in pitch.
Without a forced stem direction, VexFlow's default per-beam-group stem calculation (`calculateStemDirection`, based on the group's own summed line position) can assign the SAME direction to both voices sharing a stave whenever their pitches briefly overlap in register, causing their beams to visually lattice through the middle of the staff.
Gould, Behind Bars, ch. on multi-voice/SATB notation — fixed stem direction per voice on a shared stave is the standard convention.
This rule can be decided from pitches, durations and voices — no layout required. A validator can check it before anything is drawn.
Gradus GE-050 — Voices sharing one stave (SATB soprano+alto, tenor+bass) must keep separated, non-recomputed stem directions so their beams don't lattice. Gradus Engraving Rulebook v1.0. https://gradusmusic.com/engraving/rule/beam-satb-shared-stave-stem-separation
Rulebook v1.0 · text licensed CC-BY-4.0 · machine-readable at /api/v1/engraving/rules/beam-satb-shared-stave-stem-separation