MuseScore icon indicating copy to clipboard operation
MuseScore copied to clipboard

[MU4 Task] (Re-)Implement playback for multi-measure repeats

Open cbjeukendrup opened this issue 2 years ago • 10 comments

Task description The new MPE playback rendering system does not yet support playback for multi-measure repeats (single-measure repeats do work). The old MIDI rendering system did (before it was replaced for playback; it is still used for MIDI export nowadays). Schermafbeelding 2022-03-27 om 15 25 00

cbjeukendrup avatar Mar 27 '22 13:03 cbjeukendrup

It has nothing to do with MusePlaybackEvents. See notes from PlaybackModelTests_Repeat_Last_Measure which is intentionally disabled until the fix

vpereverzev avatar Mar 29 '22 15:03 vpereverzev

@vpereverzev Actually, I think there are some significant differences between "measure repeats" and other kinds of repeats:

  • measure repeats apply only to the staves on which they appear, while other repeats apply to all staves
  • other repeats are about jumping through the score (as in, the playback cursor should jump), while in the case of measure repeats, the normal playback flow just goes on, and you only hear the music from previous measures being "echoed".

Do you really think that RepeatSegment/RepeatList should be extended for this?

cbjeukendrup avatar Mar 29 '22 18:03 cbjeukendrup

RepeatSegments are entirely not foreseen for this type of logic and indeed act as a playback roadmap for entire measures. I'd rather expect the equivalent of the old renderPlayEvents(element) to do the substitution here. (just my 2cents)

jeetee avatar Mar 29 '22 18:03 jeetee

I should point out that in the latest nightly, regular repeats aren't working. Don't know if this has also been intentionally switched off for now, or not.

image

Also, the element for multimeasure repeats is not in any palette anymore.

Tantacrul avatar Jul 03 '22 12:07 Tantacrul

Moving this to Post Beta. For this release we only strictly need to get ordinary repeats working.

Tantacrul avatar Sep 12 '22 18:09 Tantacrul

Now that the beta is out I hope this pull request gets reviewed soon. 🙃

RobFog avatar Oct 24 '22 14:10 RobFog

@RobFog Unfortunately, there are performance issues with this PR. It turns out to be tough to find a good solution that is not a completely awful hack and doesn't affect performance badly. Other team members have looked at it too, but haven't found the perfect solution either. So I highly doubt that this will be merged soon. However, you're right that this maybe deserves a friendly bump :)

@vpereverzev FYI :)

cbjeukendrup avatar Oct 24 '22 18:10 cbjeukendrup

fixed in https://github.com/musescore/MuseScore/pull/14395

RomanPudashkin avatar Nov 09 '22 08:11 RomanPudashkin

@RomanPudashkin - I don't believe we implemented fixes for multi-measure repeats, only for regular "last bar" repeats, so this issue should stay open, I think.

I also do not think we should attempt to implement multi-measure repeats for 4.0.

Tantacrul avatar Nov 09 '22 10:11 Tantacrul

Reopened and updated to represent the current situation: single-measure repeats are working now, but multi-measure repeats are not, whereas they used to work with the old playback system in MS4 before it was replaced with the MPE system.

cbjeukendrup avatar Nov 11 '22 00:11 cbjeukendrup

bump on this issue?

nnabahi15 avatar May 07 '23 05:05 nnabahi15

The issue is on the list for the very next update, and a fix is already pending. So unless someone decides that the fix is not nice, or for some other reason decides that we shouldn't fix this right now, the fix will be in 4.1.

cbjeukendrup avatar May 07 '23 12:05 cbjeukendrup

The issue is on the list for the very next update, and a fix is already pending. So unless someone decides that the fix is not nice, or for some other reason decides that we shouldn't fix this right now, the fix will be in 4.1.

Has @bkunda or @DmitryArefiev tested the implementation yet? If not, I can also take a look.

Ignore this if the fix isn't ready for testing yet.

Tantacrul avatar May 07 '23 12:05 Tantacrul