Automatic placement of single rests in multiple voice areas

• Feb 20, 2019 - 11:51
Reported version
S4 - Minor

Steps to reproduce:

Add a voice line that ends with a couple of rests. Add a second voice that ends with the same rests. Delete the ending rests of the second voice.

Now there is only one rest shared between the voices (which is as it should be), but it's placed above where it is expected.

See the attached screenshot for details.

Attachment Size
shared-rests-for-voices-bug.png 3.5 KB


This is the same as it was in version 2. To make the rests in voice 1 to move down, you must have the same rest in voice 2 that is invisible. As a result, you could not make a dotted half rest invisible in your example and have the rests move down. I think it would make sense to move the rests down if the voice 2 rest is deleted also.

I am unable to reproduce this issue in MuseScore 3 by following those steps. When I delete the rests in voice 2, the rests in voice 1 move down. That is, as long as each of the rests in voice 2 has the same duration as the rest in voice 1 that it displaces.

After further testing I see you are correct. As long as voice 2 has the same rest as voice 1, the rests move. This is an improvement. Better would be if deleting voice 2 would make it as though it never existed at that point in the measure, so in the example, deleting a dotted half rest would make the half followed by quarter rests in voice 1 move down. As a added bonus, any note not attached to one that has to point up should return to its default direction.

All I can say is that this definitely didn't happen for me. I deleted the rests in voice 2 and it still sits too high. As you can see in the screenshot.

Some more about my setup: It's a string quartet setup and I see the problem in Violin 2, Viola and Cello (haven't tested for Violin 1) and I'm working with continuous view, not page view.

I see that order matters. If you delete the rests from left to right, then the rests in voice 1 will move back to their default positions. If you delete them from right to left, then the rests in voice 1 will stay displaced.

I looked at this enough to see the rests are somehow still present in the score, and I suspect this has to to with the code to convert actual holes in the voice into rests that are marked as "gaps". I don't really understand how that code is designed to work, though.

Fix version