Found by review on #671 (which closes #670), and left for a separate change.
#670's rule prints an unsupported short excursion at the pitch the melody returned to, so a head that used to carry an accidental now repeats its neighbour. Two consequences nothing measures today.
Repeated-note runs grow. PlayablePartCheck does not count them; the reviewer's own driver did, and on the field recordings both the number of adjacent same-pitch head pairs and the longest run of them rise. Whether a longer run of one pitch reads better than the scattered accidentals it replaced is a question for a player, and the harness cannot answer it: it measures sounding time against the harmony, not what the page looks like. A run-length column would make the trade visible, and it is the column that would say when the rule has gone too far.
A melisma mark can contradict the printed heads. Melismas.marked decides at analysis time, from PlayableMelody.sungSyllables, which deliberately does not get the excursion pass — the pass needs the whole head sequence, and feeding it back would make marking depend on its own output. So a syllable can be marked as one the melody moves under and then print all its heads on one pitch. On the field recordings this affects a handful of marked syllables. The mark is not wrong about the estimate; it is stale about the arrangement. Options: re-run the mark decision against the printed heads at render time, or let the reduction drop a mark whose heads it flattened.
Neither blocks #670: the first is a page property that has never been measured, and the second is a small inconsistency in a mark that only chooses between collapsing a run and printing it.
Found by review on #671 (which closes #670), and left for a separate change.
#670's rule prints an unsupported short excursion at the pitch the melody returned to, so a head that used to carry an accidental now repeats its neighbour. Two consequences nothing measures today.
Repeated-note runs grow.
PlayablePartCheckdoes not count them; the reviewer's own driver did, and on the field recordings both the number of adjacent same-pitch head pairs and the longest run of them rise. Whether a longer run of one pitch reads better than the scattered accidentals it replaced is a question for a player, and the harness cannot answer it: it measures sounding time against the harmony, not what the page looks like. A run-length column would make the trade visible, and it is the column that would say when the rule has gone too far.A melisma mark can contradict the printed heads.
Melismas.markeddecides at analysis time, fromPlayableMelody.sungSyllables, which deliberately does not get the excursion pass — the pass needs the whole head sequence, and feeding it back would make marking depend on its own output. So a syllable can be marked as one the melody moves under and then print all its heads on one pitch. On the field recordings this affects a handful of marked syllables. The mark is not wrong about the estimate; it is stale about the arrangement. Options: re-run the mark decision against the printed heads at render time, or let the reduction drop a mark whose heads it flattened.Neither blocks #670: the first is a page property that has never been measured, and the second is a small inconsistency in a mark that only chooses between collapsing a run and printing it.