Increasing the duration of multiple notes causes crash
Steps to reproduce:
1) Open any of the example scores.
2) Select all.
3) Increase the duration (for example, add an augmentation dot or change to quarter or half note).
Expected result:
MuseScore does not crash. (See notes.)
Actual result:
MuseScore crashes. (Except for score B, when changing to quarter notes.)
Notes:
For scores A and B (at least for adding an augmentation dot or increasing to quarter notes) I would generally expect the behavior to be the same as that which occurs when one replaces step 2) by '2a) Right-click on a note and choose "Select > All Similar Elements".' Namely, the notes increase their lengths to the requested duration, preserving their start times. This is consistent with what happens when you decrease the durations.
However, if the new notes would overlap, the 'right' behavior ceases to be clear to me. In fact, one could argue that the semantics should be to increase the rest durations as well as the note durations, in which case the 'right' behavior is unclear for all of the cases.
For smaller selections (how much smaller depends on the score and the chosen duration), MuseScore does not crash; however, it still behaves rather strangely. For non-dotted durations, the only duration of the first note changes, pushing the rest of the selection right and removing any pre-existing notes that those note would overlap with. For dotted (or multiply-dotted) durations, the results are pretty weird (try selecting the first measure in score A and adding triple augmentation dots). (Neither of these is consistent with what happens if you select only the notes.)
Tested on:
OS: macOS 10.15, Arch.: x86_64, MuseScore version (64-bit): 3.5.0.28537, revision: 43c5553
OS: macOS 10.15, Arch.: x86_64, MuseScore version (64-bit): 3.5.0.29047, revision: f4c0004
OS: macOS 10.15, Arch.: x86_64, MuseScore version (64-bit): 4.0.0.29069, revision: 81b3238
A typical crash log is attached (from the first version listed).
Attachment | Size |
---|---|
MuseScoreCrashReport.txt | 99.96 KB |
Score_A.mscz | 3.25 KB |
Score_B.mscz | 3.26 KB |
Score_C.mscz | 3.73 KB |
Comments
I can't reproduce a crash in the first two, but can with the third. The trigger seems to be if the increase in duration of the last note would exceed the length of the score, but I can't be 100% sure. Crash happens inside a "lambda" (?) function I have no idea how to debug, unfortunately.
IIRC these lambdas got introduced with 3.5, so this got to be a 3.5 regression, right?
Or does it reproduce with earlier versions too?
Therte might be some new lambdas in 3.5, not really sure, but the code I'm talking about has been there since the multiple-duration-change feature was implemented as far as I know. Anyhow, someone would have to test to be sure.
I'm talking about this block here:
https://github.com/musescore/MuseScore/blame/3.x/libmscore/score.cpp#L2…
It's several levels deep within the sort that the crash happens.
OS: macOS 11.1 (identified as 10.16) , Arch.: x86_64, MuseScore version (64-bit): 3.5.0.28537, revision: 43c5553
Jan. 2021 still not patched. When increasing duration of notes in multiple measures Musescore crashes every time. The opposite (decreasing duration), however, does not crash Musescore.
2 users reporting this is not "Many"...
MuseScore 3.5.0 is pretty outdated, you should be at least using 2.5.2, or even 3.6.0 (or maybe better wait for 3.6.1, due some time this week)
And for my part, I am unable to reproduce despite several trials/combinations etc. (3.6 /Windows10)
"When increasing duration of notes in multiple measures Musescore crashes every time"
So, please attach a score (or excerpt, or specific test file from scratch) where you notice this, and by precising the range selection you do etc.
enable -> unable?
In reply to enable -> unable? by Jojo-Schmitz
Typo! 😱 (edited)
I can't reproduce either, with none of the scores from the initial report