Jump into Volta "with Repeats"
While working on #269603: Repeats, Jumps and Volta follow-up a scenario arose for which I'm unsure what the 'proper' handling in playback should be. Given the following sample:
The current implementation (2.2 & master) plays pack as follows if the DS has playRepeats turned off:
1,2,3,4, 1, 5,6,7, (jumps to segno in m3, but then skips that volta), 5, 8
In order to unify the code between having playRepeats enabled and disabled; my new algorithm could do one of the following (still consider playRepeats to be off):
1,2,3,4, 1, 5,6,7, (attempt to jump, but don't find the segno as it's hidden by its volta => consider this jump invalid and ignore it), 8
1,2,3,4, 1, 5,6,7, (find the jump, assume the composer really wants to jump there and rewind the score back to the segno), 3, 4, 1, 5, 8
Keeping the current implementation is possible as well, but would require special handling, something I'd rather avoid.
Any arguments for picking scenario A/B over the other? My personal preference now would be scenario A, as scenario B (in this case) would basically be the same as having playRepeats turned on.
Just for completeness sake, the roadmap that will be taken with playRepeats set enabled will be:
1,2,3,4, 1, 5,6,7, 3,4, 1, 5, 8