Jojo-Schmitz / MuseScore

MuseScore is a open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!
http://musescore.org
Other
39 stars 5 forks source link

Enhancement: Allow commands [up-chord/down-chord] to work in range/list selection in a special way #606

Open worldwideweary opened 2 months ago

worldwideweary commented 2 months ago

The commands [up/down chord] work only with a single selection of a note/rest, moving through a chord, and then moves to the next voice above/below.

At the moment, it won't work while in a list selection of multiple notes, nor will it do anything while having a range selection.

Posited feature: allow a range selection to convert to a list selection, where [up] takes the list selection to the top of that chord and [down] takes to the bottom note. It will work on multiple chords at once in the range.

This will allow for something akin to the "Chord Levels Selector" Plugin but built in through traversal. And, in addition with Xiao Migros' changes (backported already) a list selection will still have a valid selection after deletion or [add interval] - so it kind of takes on a new charm that MS3.6 and before just didn't have

An example doing inversions on a range of chords: 1) Range selection 2) bottom-chord: selects bottom of voice 1 and 2 3) octave shift and then use bottom-chord some more to reach to bottom and continue 4) then finally delete.

demonstration.webm

Nifty. The only thing it doesn't really do that the Chord Level Selector plugin does is the "select all but particular voice", but whatever.

Update: Had to make use of some other personal changes to get this to work here, which is to allow to "stay" within the beat when using up/down the chord when going beyond the current chord. It's also an enhancement in my opinion, but you can test that ---

The old 3.6.2 way forces into a voice that isn't related to the beat:

2 olderUpDown.webm

With this change the beat takes precedence (the vertical space)

1newerUpDown.webm

worldwideweary commented 2 months ago

And with the ability to keep the list selection after deleting/adding intervals (was backported earlier), you can do something like this:

enh3.webm

worldwideweary commented 1 month ago

Would be nice for the 4.x users especially since the Chord Levels Selector doesn't work anymore since 4.4 or so I've "heard". Should probably one of these days update that, but haven't followed through with new Qt stuff