Jump at Volta End makes last measure not skipped

• Nov 29, 2020 - 19:50
Reported version
3.5
Priority
P2 - Medium
Type
Functional
Frequency
Few
Severity
S3 - Major
Reproducibility
Always
Status
closed
Regression
No
Workaround
No
Project
Tags

Using the test file from https://musescore.org/en/node/313743

Expected Result: After the D.C. playback should use the "final playthrough" and skip the first volta
Actual Result: The D.C. breaks the volta interpretation, leaving m6 to be included in "final playthrough".

Underlying reason: Jumps break up voltas, which makes sense in the case where the Jump is trailing an open ended volta (the intended code path here). But it doesn't make sense when the Jump is enclosed within the volta's notated anchor point (be it open or closed).

Solution: Just as with overlapping voltas, it is required to duplicate and split the volta here. (istr there's already a TODO hook in the code for this)


Comments

Root cause is different from depicted above:
It's the combination of Volta end anchor with Jump and end repeat at the same point. The Jump closed the Volta (but was correctly enclosed in it), leading to the end repeat not being enclosed by it.

Unrolling then wrongly processes the end-repeat after the volta was skipped, leading to the erroneous inclusion of the measure containing it.

Fix version
3.6.0