Open clnoel opened 2 years ago
I have a couple of questions that may help me understand the issue better. It’s not an objection that this is broken, just trying to get to the core of why this is needed.
descant
voice was labeled in a useful way within the soprano part. Why then would the encoder not have also labeled the other voice or voices in a useful way to let them to be included in the stem-down layout, simply omitting descant
from the list of included voices? The example seems to be putting an artificial roadblock in the way of the encoder doing something simple?
I feel like
mode
is kind of central and necessary when talking about usingpart-voice
in layouts. Here's a thought example: Imagine a choral piece, where the final chorus has a high-soprano descant. It's the only place in the whole piece where the sopranos would split, and for the set of measures where it exists, the relevant sequences are labelledvoice="descant"
, and no other voices are labelled, even in those measures.In the descant layout, how does the algorithm know to not repeat the descant sequence in the stem-down voices? The only way for it to know that is if we assume that a note can only show up in a system layout once, and that is patently false as you could easily just add a whole part to more than one staff layout. In order for that layout to work, we need to add
<part-layout part="soprano" part-voice="descant" mode="exclude"/>
to the downstem voices. We can't assume that any note only shows up in a system layout once, or that apart
refers only to the unlabeled sequences.Originally posted by @clnoel in https://github.com/w3c/mnx/issues/185#issuecomment-976894088