[Piano Roll] The deletion behavior in the piano roll

• Mar 10, 2016 - 09:10

As I described here: https://github.com/musescore/MuseScore/pull/2420 ,
Replacing all notes with corresponding rests seems to be wired.

I think we should implement a partial range selection, a smart rests replacement ( replacing with the least number of rests), or just an only deletion of notes, without adding rests.

What solution do you think is the best ?


I see no reason why deletion in the piano roll should work differently than deletion elsewhere. In fact, at some underlying level, I'd hope they use the same support functions. Currently, using normal editing functions (not the piano roll), deleting a range selection already does replace with a minimal set of rests (which is not necessarily correct - it will happily place a half rest across beats 2-3 of a 4/4 measure). On the other hand, deleting a list selection replaces with rests individually (which makes sense since there is no guarantee the notes are contiguous). Assuming trhe piano roll editor can have a simialr concept of range versus list selection, I'd expect the same results as for normal edits.

In any case, deletion of notes only - without replacing them with something is not an option. This would leave holes in the score - places where one note ends and then there is nothing to mark the gap before the next notes starts. Standard music notation does not allow for this of course. However, there are number of (sometimes extremely vocal) requests for a special delete command that not only deletes the note, but *also* takes some unspecified number of subsequent notes and moves them in time to fill the gap. We'd still need a rest to fill the gap now produced at the end of the passage that was moved earlier in time, of course. It's certainly a valid request, but again, I would expect this new special delete command (Ctrl+Delete, perhaps) would work the same in regular editing as in the piano roll.

In reply to by luyikai

Not sure what distinction you are making between "partial" selection in piano roll versus list selection - I'm not familiar enough with the piano roll to know what options are available. At some level, range and list are really the only kinds of selections I know abut, so I would have to assume what you are talking about translates into one of those. Can you give me a series of steps to follow to demonestrate what you mean?

In reply to by Marc Sabatella

My concern is just that we be consistent. For two reasons: 1) user will be unpleasantly surprised if deleting ntoes does one thing normally but something different in piano roll, and 2) having two different implementations of the delete operation means twice as much code to maintain, twice as many opportunities for bugs. So on the assumption that the selections in the piano roll realy do work out to the equivalent of range or list selections, then I think both the user and the development team are better served if we use the same implementation of the delete operation.

In reply to by Marc Sabatella

As I said before, "We can make it work when all the notes in a particular range of time are selected. Except for this case, we delete individual notes. Does this sound good?"

This can be the nearest behavior, while we can let selection always work as a list selection, which is also a natural way. Which do you think is better?

In reply to by Ingrid.Sterckx…

The piano roll editor only edits one staff at a time. One staff is a "keyboard model" -- any note can be on or off, no more -- that's why there's a keyboard at the left. If other staves were involved, that wouldn't be so -- although one can CERTAINLY imagine multiple piano-roll editors windows open at the same time for different staves (which wouldn't be "all together", but would be better than now).

Do you still have an unanswered question? Please log in first to post your question.