In triplet in last Half Note of 6/4, changing last Quarter Note in triplet to Eight causes corruption

• Aug 31, 2020 - 15:49
Reported version
3.5
Priority
P1 - High
Type
Functional
Frequency
Once
Severity
S3 - Major
Reproducibility
Always
Status
closed
Regression
Yes
Workaround
Yes
Project

1) Create score in 6/4
2) Enter three half notes
3) Change third half note to triplet
4) Change third quarter note of the triplet to eight note

Expected two eight notes to replace the quarter

What happens is a lot of smaller notes appear in a strange way, corrupting the duration of the bar

(also it seems my attached file shows other problem, where I tried to change the color of the texts to match the notes and make the example more clear, but the color of the text is not saved)

Attachment Size
bug.mscz 5.92 KB

Comments

Workaround No Yes

Also: the rests with even number of flag/nubs (what are they called) appear first, from longest to shortest, then the odd ones. So 2, 4, 6, 8, 3, 5, 7 (16th, 64th, 256th, 1024th, 32nd, 64th, 128th) in that order. In addition, a 1024th is missing, This is likely the problem. This also means that when opening it says it is corrupted.

Attachment Size
6_4_bug.mscz 4.79 KB
Workaround No Yes

Workaround: You can create the tuplet in a place where the corruption does not happen (I usually find an empty measure) then copy it to the end of the measure.

Status PR created fixed

Fixed in branch 3.x, commit 4e559c7995

_Fix #309874: In triplet in last Half Note of 6/4, changing last Quarter Note in triplet to Eight causes corruption

A change was made in PR #6123 to use toRhythmicDurationList() rather than toDurationList() in Score::setRest() and Score::makeGap(), so that compound beats are split correctly in the case of a compound meter. But this splitting of compound beats should not happen when setting rests withing a tuplet._

Fix version
3.5.1