musescore / MuseScore

MuseScore is an open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!
https://musescore.org
Other
12.07k stars 2.6k forks source link

Cannot enter notes in "gaps" in secondary voices using the keyboard #17931

Closed cbjeukendrup closed 1 month ago

cbjeukendrup commented 1 year ago

Issue type

UI bug

Steps to reproduce

  1. Make a score with notes in voice 2 (or 3 or 4).
  2. Delete one of those notes, and delete the resulting rest, creating a gap (this is supported functionality).
  3. Now, try to move the note input cursor to that gap, in order to enter new notes in the gap. It won't let you.

(With the mouse, it does work, though.)

Screenshots/Screen recordings

https://github.com/musescore/MuseScore/assets/48658420/c15b0c5a-0ea5-46e9-8bd9-43d0a68930ff

MuseScore Version

at least master

Regression

No.

Operating system

macOS 13

Additional context

Came up in https://github.com/musescore/MuseScore/issues/17926

MarcSabatella commented 1 year ago

For this reason among others I’ve often wished we would simply disallow deleting rests and have delete mark them invisible instead. But FWIW, the workaround has always been to do voice exchange twice. The first fills the the holes, the second sets things back.

In theory one could redesign input navigation to not skip these holes. Probably wouldn’t even be particularly difficult. After all, we already handle the case of the input cursor not being on any actual chordrest when first entering an empty measure in voices greater than 1. Basically that’s just a big measure-long hole.

bkunda commented 7 months ago

It does seem like the most sensible solution here is to make the delete action affect the rest's visibility, rather than deleting it outright (which makes no musical sense).

Currently, rendering a rest invisible seems to cause other voices to recalculate their position in the same way as deleting it does – which is good. So I'd expect that simply changing the "del" behaviour to effect invisibility will solve this.

Jojo-Schmitz commented 7 months ago

It won't solve it for existing scores though, but Marc's approach would.

Swapping voices twice brings these 'missing' rests back though (and this is the workaround used ever since) Oops, Marc mentioned that earlier...