Modify how repeats are counted OR arbitrary end point?

• Jun 15, 2022 - 23:51

This is really two separate questions regarding different angles on the same problem.

The attached demo, as it appears visually, is, I believe, clear enough in its intent to a human performer: play through (with repeat), taking the first ending both times; at the end, jump back to segno and play the repeated section twice more, taking the first ending, then the second, and stop at the end barline.

MuseScore unfortunately does not register voltas this way, and counts the consecutive repeats as "1" and "2" both times, as a result taking the first ending all four times. If I could fix the problem at this level, that would be ideal.

Failing that, I've tried to work around it by adding a coda behind the scenes, forcing it to skip to the second ending at the appropriate time (make sure to 'show invisible' to see these elements). This works, except now I can't force it to stop at the Fine, since the D.S. is no longer serving that role. Is there another way to make it register the Fine/arbitrarily stop, or another workaround for my workaround?

(Not relevant to what I'm trying to do, but there's a bug present in both this demo and my actual score where the D.S. activates twice.)

Attachment Size
demo.mscz 5.52 KB


To be clear; I as a human would not interpret this how you wrote it.
I'd play it as follows:
1-8 (repeat1), 5-8 (repeat2), 5-8 (repeat3), 5-7, 9 (repeat4), 10-13 (D.S al F with rep),
5-8 (repeat1), 5-8 (repeat2), 5-8 (repeat3), 5-7, 9 (repeat4 and Fine reached).

Compare that to the playback map you wrote in text:
1-8 (repeat1), 5-8 (repeat2), 10-13 (jump)
5-8 (onceMore), 5-7,9(twice more) and Fine

The way to normally write this would involve no voltas and jump with coda instead, moving your current m9 to the end of the score:

Attachment Size
332869-demo.mscz 5.05 KB

The bug you refer to is unfortunately not fixable without breaking intended behavior. And it is caused by you having that volta/coda in the middle of the score.
When jumping into a volta, usually this means taking on the play count of that volta as a repeat counter reference (which here would equal repeat4, an otherwise non-existent repeat count in your roadmap). But to be able to make further repeats/voltas in a coda work, the repeatcount after jumping to a coda is also reset to 1 to provide a "clean start" for the coda.
Because you have no active instruction that makes this stop at Fine, playback encounters the D.S. instruction again, but with a clean playback history of being there the first time; thus "honoring" the jump.

Do you still have an unanswered question? Please log in first to post your question.