More issues with deleting tuplets (Change Voice)

I’m a new user and encountered what appeared to be a bug when using Change Voice on passages involving tuplets. After some searching it appears to be the same underlying issue as these two posts:

To reproduce this issue, create a new project with any one player, insert some music including a tuplet and also some notes after the tuplet, and with two-note chords for each note. Select it all and do Edit > Filter > Notes in Chords > Second Note or Single Notes. This selects the bottom notes and also the “3” from the triplet. Now right-click and do Voices > Change Voice > New Down-stem Voice. The lower notes are properly moved to the new voice, but the upper notes are corrupted: the triplet in the upper voice has been deleted and the notes from it have spilled out, overwriting notes after it.

If the “3” is manually deselected before Change Voice, then the upper voice is correct but the lower voice is written without the triplet. Either choice you make, one of the voices becomes corrupted.

As best I can tell from observation, the “Change Voice” feature operates by effectively “cutting” the selected contents and then “pasting” them into the new voice. From the previous posts–and I can confirm this simply by adding a second instrument and trying it–it appears the same problem occurs if you select some notes within the tuplet and manually cut and paste: if you select the tuplet when cutting, then it corrupts the remaining music, and if you don’t select the tuplet when cutting, it corrupts the music you’ve just cut (what will get pasted).

It was argued in the other threads that there is an ambiguity with cut/copy/paste, that the system does not know what your next operation will be and therefore can’t make the correct decision in all cases. However, there should be no ambiguity with “Change Voice”, as it’s a single built-in command. And, whether the workaround of deselecting the “3” is applied or not, one of the two voices gets corrupted. I’m not sure how this could be considered not a bug–right now, “Change Voice” simply does not work on passages involving tuplets where some but not all of the notes in the tuplets are selected.

I think the underlying fix should be something like this:

  • When performing “delete” operation (whether by itself or as a part of Cut or Change Voice):
    ---- For each selected tuplet, if either all of the notes within the tuplet are selected or none of them are, delete the tuplet with the current behavior. Otherwise, do not delete the tuplet, simply deselect it.
  • When performing “copy” operation (whether by itself or as part of Cut or Change Voice):
    ---- For each selected note, if it is within a tuplet, copy the tuplet as well.
    Hopefully this should be a simple fix that does not require any substantial changes to how tuplets are handled globally.

Thanks for taking the time to write this up. This is the expected behaviour at the moment, given the way this editing operation works (as you rightly say, the voice of everything you select, including the tuplet, is changed when you use the Change Voice command), but we should definitely come up with a way of retaining the tuplets in the original voice as well if some notes of the chord are left behind. This is on our backlog as something for us to look at in future.

2 Likes

I’m glad to learn that the behaviour of tuplets will be reviewed. I encountered a pretty bad violation of the principle of least surprise (technically known as a gotcha) the other day when trying to copy lyrics which included a tuplet, as the ‘tupletness’ did not follow the lyrics and could not be made to do so. The only way to copy the lyrics was in chunks bounded by tuplets.