Repeat, Jump, Volta, Play Count question
I've been fiddling a lot with repeats, jumps, voltas and as far as I undernstand, there is a hidden variable, that starts with a value of 1, then:
- Repeats will bump its value +1 until "Play count" is reached or "Play count" times... not sure about the last part
- voltas are gates that will let the "cursor" to pass though if this variable is in the list of the volta's "Repeat list", otherwise the cursor will jump to the next ... this I could not test enough, as it will jump to the next available volta, then check... but will jump to the first available marker if no volta has the proper values in their repeat list...
Anyway, would be good to know if this is the case, and if it is, is there something that can alter the value of this variable without a repeat bar? I would settle with jumps being able to alter it. :)
Comments
The playcount indeed starts at 1 and is increased by 1 when a normal repeat happens (end repeat barline). It is counted in related to the repeat start point, which either is the most recent repeat start barline or the start of the current section.
That means that when you pass a repeat start barline, the playcount is reset to 1.
Volta's indeed act as a gate/filter where their repeat list is compared against the current value of the play count. If there is no match, the measures spanned by the volta are skipped. For a closed volta, that range is quite obvious; for an open volta that range is either until an end repeat is encountered, or a different volta, or the section ends (there might be some detailed cases I'm missing here).
A jump affects the playcount in the following way:
(A) By default the playcount will be set to the "final" playcount for the jump target location. That is determined by looking backwards for the start repeat reference location for that jump target and then take into account the play count of all the end repeat barlines associated with it.
(B) It is reset to 1 if the Jump instruction has the "play with repeats" option enabled.
The main exception to this is when the jump target itself is covered by a Volta, in which case (A) is adjusted to be the highest entry in the volta repeatlist and case (B) is adjusted to be the lowest entry in it.
As for "testing this out"; have a look at the unit test files from MuseScore itself https://github.com/musescore/MuseScore/tree/3.x/mtest/libmscore/repeat . Those are 66 different test scenarios relating to repeats, jumps and voltas. Each one contains a description in the subtitle describing the intended playback order of the file.
So I guess the real underlying question is; why would you want a jump to alter it? What is the intended result you're trying to achieve?
In reply to So I guess the real… by jeetee
Quite often I find returning to the chorus after a repeated bridge with the wrong play count, so volta 2 is played again instead of volta 3, where I can jump to the end... If a jump could alter the play count, then I could have more control over proper verse/chorus/bridge/whatever order...
In reply to Quite often I find returning… by stephanvs
Most likely it is because there is no actual 3rd repeat at all?
But in the described case it'd be as easy as setting the play count of the end repeat at the end of the 2nd volta one higher than usual; cfr the "final repeat" calculation as mentioned above.
In reply to Most likely it is because… by jeetee
At measure 34 I had to put a repeat to increase play count. As volta is not standard 1 then 2 then 3, a Jump to Chorus would be more reasonable at measure 34, nevertheless, repeat does the job, play count is 2.
But then, volta 2 jumps to Bridge, with Play repeat set, otherwise play count remains 2 and second volta 1 is not played. I tried setting the repeat list of second volta 1 to 2, repeat list of second volta 2 to 3, but then playback stops at the end of second volta 1...
So, entering Bridge, play count is 1, repeat Bridge, play count is 2, jump to Chorus with play count 2, but I need play count 3 to enter first volta 3... I tried putting repeat at measure 46, increase play count, nothing works.
In reply to At measure 34 I had to put a… by stephanvs
Here's how I would write this; doesn't involve volta's for the chorus, nor repeats to send verse2 back to the chorus at all. Have a look at the changed labels and texts I've used.
The big difference is that the chorus endings unique to the following block (bridge/ending) are moved to be part of that block for easier roadmap readability; if you really want that volta notation there, then additional jump markers will be required as well.
In reply to Here's how I would write… by jeetee
I just understood what you posted here (Play until, Continue at). Thank you!