Volta at the beginning of a simple repeat doesn't work.

• Nov 17, 2021 - 12:45
Reported version
3.6
Type
Functional
Frequency
Once
Severity
S3 - Major
Reproducibility
Always
Status
by design
Regression
No
Workaround
No
Project

Volta, if situated in the the first measure of the simple repeat section is not working correctly.
In this example, they are 2 joined voltas at the beginning of the repeat section.
The first time of the repeat, all is OK. The second time, the voltas are not taken in account..

Attachment Size
Issue in voltas in a simple repeat.mscz 9.78 KB

Comments

Frequency Once

Voltas are alternative endings, that your 2nd case does work is more of an added benefit rather than the 1st case being a bug.

Status active by design

As mentioned a volta is intended to be used as an alternative ending. Your first case (scenario A) is not working as you expect it, because it has to cater to a different (valid standard) interpretation instead.

In your scenario A, the first volta is processed before the start repeat barline is; meaning that once you have hit the end repeat and are returning to the start repeat; that volta itself is not reprocessed.
The volta is also not compared against that start repeat playback counter, but to the start of the score repeat playback counter. The internal order is:
(start of score)(volta 1)(start repeat)(volta 2)(end repeat)

Now the reason for this is that the following standard notation now does work out of the box because of that processing order:
326541-repeat-at-start-of-volta.png
In this scenario (taken from the automated test suite) it is much more obvious why this interpretation order of a start repeat with a volta start is required; that 2nd volta must be compared against the playback count from the start repeat of m2. If it were instead compared against the start repeat of the same m5, as you request, it would simply result in those 3 measure being skipped entirely.

This interpretation order also explains why scenario B does work as intended, as both voltas are entirely enclosed within the repeat markings:
(start repeat)(volta1)(volta2)(end repeat)(end of score)

Now knowing all that, you kind of can make this work in specific situations. And those are when you have the volta at the start of the score (likely will also work at the start of a section) and no start repeat there. Because the interpretation order then is:
(start of score)(volta 1)(volta 2)(end repeat)(end of score)
once again resulting in the volta being enclosed within its playback reference.