Why does rectangular/dragging select include notes not inside the rectangle?
Is there a way to use dragging/rectangular select such that ONLY notes inside the rectangle are selected? I'm finding that all notes on the staff within the horizontal range are getting selected, effectively ignoring the vertical limits of the rectangle. As you drag the rectangle it highlights the expected notes, so it has the logic to do what I was hoping for, but once you release the mouse button, it expands the selection to all notes on the staff (within the horizontal scope of the rectangle) which definitely isn't what I want.
Comments
e
See https://musescore.org/en/handbook/3/selection-modes
In reply to See https://musescore.org/en… by Jojo-Schmitz
Yes, so I'm using "Drag selection" as outlined there. But nothing explains why the actual notes that are selected after releasing the mouse button expands to include all notes on the staff, even those above and below the rectangle I've dragged. And because of this it's very painful to take a long passage of music where all notes below a certain pitch need to be shifted into the left hand piano staff in order to facilitate cross-staff beaming.
The selection filter doesn't, as far as I can tell, allow you to specify a minimum or maximum pitch.
NB this has already been reported as a bug: https://musescore.org/en/node/290854
In reply to Yes, so I'm using "Drag… by Dylan Nicholson1
But #290854: Box Select (Shift + Drag Select) selects entire chord when only a note of a chord is selected. is not a bug...
And #318810: Suggestion for more efficient note selection has been closed
In reply to Yes, so I'm using "Drag… by Dylan Nicholson1
This is by design because the vast majority of the time when people want to make a selection, they want a range selection, not a discontinuous selection of individual notes. That's pretty rare to want - you describe a corner case probably only 1% of people will ever encounter - but in the cases where you do want it, Ctrl+click is the way to go. Or recognize that this is really going to need to be all notes within a given range for a particular voice, and thus the Selection Filter does do the job. Or simply move the notes as you enter them.
If you attach your score and describe a particular place where you are having trouble, we can understand and advise better.
In reply to Yes, so I'm using "Drag… by Dylan Nicholson1
I would also observe that it would probably be a simple matter for someone to design a plugin that automatically selected all notes within a range that are above/below a given pitch.
In reply to I would also observe that it… by Marc Sabatella
Sure, I'd be quite keen to have a go at writing a plugin. And if MuseScore is truly open source and taking outside contributions, I'm happy to have a go at submitting some - though I'd probably start with some simpler fixes first just to familiarise myself with the code and the build process etc.
In reply to Sure, I'd be quite keen to… by Dylan Nicholson1
Excellent! It's actually a very unusual time in our development cycle. See the Announcements forum if you haven't already, to wrap your head around all the changes happening for MuseScore 4.
In reply to Sure, I'd be quite keen to… by Dylan Nicholson1
A workaround using current facilities would be to use the "split staff" command to split it on a given pitch. Then do whatever you wanted and implode those two staves again; with finally removing the now obsolete 2nd stave.
You might also want to look into the PruneStack plugin, which for example can select all top (or all but the top) notes from a chord.
In reply to A workaround using current… by jeetee
There's no chords involved and as far as I can tell there's no way to beam together notes that start out on separate staves.
In reply to There's no chords involved… by Dylan Nicholson1
If no chords are involved, then PruneStack indeed won't help you, split staff and implode still likely might.
Not sure what you mean about beaming, but indeed, for notes to be beamed, they have to belong to the same staff and voice.
In reply to If no chords are involved,… by jeetee
"for notes to be beamed, they have to belong to the same staff and voice"
Regarding voices this is correct, only notes in the same voice can be beamed together. However, staff notes that are initially entered on one staff of a multi-staff instrument (e.g. piano) can be moved to the other staff together with any beaming - in fact MuseScore treats them as "belonging" to the staff they were entered on.
In reply to "for notes to be beamed,… by SteveBlower
So "technically" that would still make my statement true, whilst cross-staff notes are displayed on a different staff, they still belong to the original staff. As can be witnessed by the "gap" they leave in their origin staff as well as the reported staff for them in the status bar.
They are merely visually displaced but still belong to the same staff technically speaking.
In reply to So "technically" that would… by jeetee
Yes, it is MuseScore's special interpretation of "belonging".
The gap in the "origin" stave is normal notation practice. Taking a piano score as an example, a beamed set of notes that starts on the lower stave and ends on the upper stave would indicate that it is all to be played with the left hand. Rests would not be appropriate on the lower stave when the notes are moved to the upper stave as the left hand is not resting, as in this example from a Bergmueller Etude.
In reply to Yes, it is MuseScore's… by SteveBlower
I disagree it indicates they're to be played all in one hand, just that it's to be thought of musically as one "phrase". The music I'm working with is hundreds of measures of music that is beamed between staves but the staff still indicates the most appropriate hand. If you wanted to show that they all should be played by the same hand you'd typically leave them on the same staff with clef changes as needed.
In reply to If no chords are involved,… by jeetee
Yes they have to "belong" the same staff, but I can't see any way of assigning which staff notes belong to while retaining which staff they display on. That would seem quite a useful feature actually (you can do it with Encore, though that uses a different mechanism where piano staves are a special case - normally you can't beam between staves at all).
In reply to Yes they have to "belong"… by Dylan Nicholson1
The way to do this currently is to first cut and paste notes into their correct staves, then use cross-staff notation on them as required: https://musescore.org/en/handbook/3/cross-staff-notation
In reply to The way to do this currently… by jeetee
Yes but I have 100s of such notes. There's no straightforward to select all the notes under, say, middle C, and move to them to the LH staff for cross-staff beaming.
In reply to Yes but I have 100s of such… by Dylan Nicholson1
Now you can go over your new LH staff and cross-staff notes as required.
In reply to Right-click your RH staff… by jeetee
Just tried that, don't understand how it helps, I end up with the notes above middle C in voice 1 and notes below middle C in voice 2 on a single staff?
Point is I want to take all the notes below middle C and "shift" them to display on the LH staff, even though they still "belong" to the RH staff. Which seems to require manually ctrl+clicking on every note.
In reply to Just tried that, don't… by Dylan Nicholson1
It might help to take a step back and better understand how you got yourself into such a mess to begin with. i gather some sort of import was involved. Is there a reason the program you imported from couldn't have sorted this out for you, rather than trying to get MuseScore to try to clean up the mess after the fact?
Anyhow, if you have content split the way you want between voices, it should now be a simple matter to copy/paste the voice 2 notes to the bottom staff using the Selection Filter.
In reply to It might help to take a step… by Marc Sabatella
The source just had the pitches/durations, nothing else. Even if I'd played them into Musescore directly I'd have the same problem.
How can I copy/paste the voice 2 notes to the bottom staff such that they still belong to the top staff and can be beamed together with them?
I tried using the selection filter, ctrl+shift+down to "shift" their display to the LH staff, then changing to voice 1 - but they just jumped back up to the RH staff again!
So then I tried the other way - changing the notes in the RH staff to voice 2 - and finally I was able to get something like what I wanted, except there's a bunch of rests I don't want (yes I can hide them but they're still distracting when working with the score), and I can't get it back into voice 1 (which isn't strictly necessary but seems weird just to have everything in voice 2). I've attached the result of my experiments below.
My example is something like the following: https://storage.googleapis.com/wzukusers/user-19931444/images/5afacbe76…
Just a steady single stream of notes, where all notes above middle C are shown in the RH staff and all below in the LH staff, but are beamed together.
This is an example from a traditionally engraved score BTW, that also shows how stem spacing is usually done, where the stems are spaced evenly rather than the noteheads: https://makemusic.zendesk.com/hc/user_images/n07rWLkGOXdNBnZ1r5Ca3Q.png
In reply to The source just had the… by Dylan Nicholson1
When you say "the source just had the pitches durations", what do you mean by "the source"? A MIDI file? And how was that file created? An AI algorithm? Could that algorithm be adjusted to place things on different channels or on different tracks according to some sort of logic? Or, if it was created by hand in a DAW, could the person who created be taught how to enter notes onto separate channels or tracks within the DAW? Or if was created by a live performance, could the person who played it have instead played it one hand at a time? Or could they have used features of the DAW to split the track in two based on your preferred split?
That's what I mean when I talk about stepping back. It would be far simpler to import a MIDI file that already has reasonable data on this than to try to "unscramble the egg".
The example you show, though, doesn't involve moving notes between staves at all - cross staff beaming requires all notes to live on the same staff. So you shouldn't need to move them to a different staff, except in the cross-staff sense of selecting them and doing Ctrl+Shift+Down. No use of multiple voices or copy paste would be involved.
In reply to When you say "the source… by Marc Sabatella
That's what I've been saying all along - I just want to select ALL notes in a passage below a particular pitch and shift them to display on the lower staff (despite still belonging to the top staff).
The source MIDI file is something I don't have any control over.
In reply to That's what I've been saying… by Dylan Nicholson1
OK, but then how did talk of voice 2 or cut and paste ever come into it? That's part of what I'm still confused about. it's hard for us to understand the big picture here, which is why we need to ask questions.
Anyhow, yes, for this particular special case purpose, a plugin to select all notes below a particular pitch would be a nice solution. I thought we already agreed on that. I just thought there was some sort of new issue involving copy/paste or multiple voices.
In reply to OK, but then how did talk of… by Marc Sabatella
@jeetee suggested that as a way to achieve what I wanted, that's all.
In reply to @jeetee suggested that as a… by Dylan Nicholson1
Yes, I got put on the wrong foot because of the "move" wording and not knowing what your intention was. Apologies.
In reply to Yes, I got put on the wrong… by jeetee
Sorry, I tried to explain that in my first comment: "And because of this it's very painful to take a long passage of music where all notes below a certain pitch need to be shifted into the left hand piano staff in order to facilitate cross-staff beaming."
In reply to Just tried that, don't… by Dylan Nicholson1
If you're left with voice 2 notes after the mentioned steps, then you either have overlapping rhythms or didn't do the 2nd implode.
But looking at your example, you don't really have to move the notes (cut and paste) at all and the split staff method thus won't help you here.
What you can do is (when starting from a single staff with all notes):
1. Add the 2nd staff
2. Right-click on a note you wish to displace with cross-staff notation and choose Select > More
3. In that dialog use the same pitch option and in the 2nd half the "add to selection" option instead of the "replace selection" option.
This way you only have to click each pitch to be moved once and will likely be able to move most/all of them in one action after the initial selection.
In reply to If you're left with voice 2… by jeetee
Thanks, Select > More "same pitch" can definitely reduce the amount of work (as there are probably only 12 or so distinct pitches), but it's still painful.
In reply to Thanks, Select > More "same… by Dylan Nicholson1
Is it possible to assign a short-cut key for "add all notes of this pitch to selection"? In general none of the menus/dialogs seem to have keyboard accelerators, so the minimum number of keystrokes/mouse-clicks to perform this is still quite a lot.
In reply to Is it possible to assign a… by Dylan Nicholson1
No shortcut indeed, which is why a plugin would be the way to go.
In reply to No shortcut indeed, which is… by Marc Sabatella
Managed to get one working actually, only ~60 or so lines of code too, including prompting for the pitch value to select below, and works if you start with a range selection. Fair bit of trial and error involved but was a good way to get a better feel of how Musescore works internally.
In reply to Managed to get one working… by Dylan Nicholson1
That's fantastic! Can you submit your plugin to the official repository (https://musescore.org/en/plugins, click the "Add new plugin" link)? I could imagine it being useful to others as well, perhaps for different purposes. like, I recall someone wanting to identify all notes above the range of some given instrument so they could just move them down an octave.
In reply to That's fantastic! Can you… by Marc Sabatella
I do intend to at some point but the dialog to select the threshold pitch is way too rudimentary for it to be something I'd be happy sharing - if you or anyone has an example of an existing plugin with a dialog showing a field for selecting a pitch that I could crib from that'd be awesome.
In reply to I do intend to at some point… by Dylan Nicholson1
I don't think there is such a plugin, but the built-in split staff function is a dialog with only a pitch selector in and is very rudimentary as well..
In reply to I don't think there is such… by jeetee
Nah, that's fine. Mine's literally just a dialog with a textbox where you type a number in, with no margin around the textbox and just an OK button hard-up against it!
Is there a reasonably straightforward way to reuse that Split-Stave dialog in a plugin?
In reply to Nah, that's fine. Mine's… by Dylan Nicholson1
Though note that if my implementation of the drag/lasso list select functionality is accepted for merge there's less use for such a plugin, but it might still be useful for MU3 users until MU4 is released.
Also while that dialog LOOKS nice, it's a bit painful to use if you need to choose a split point a long way from c4 - any reason it doesn't allow typing?
Also how do I access this function in MU4?
In reply to Nah, that's fine. Mine's… by Dylan Nicholson1
No way to reuse the dialog from a plugin.
I guess it doesn't allow for typing because then the one that developed it didn't have to be bothered by input validation..
Not sure if the function was ported over the MS4 yet, probably not.
BTW I've implemented a "fix" for this in MU4 (not yet merged).
Note that the current stable build of MU4 doesn't support drag/lasso selection at all, so I first had to add that.
But basically if you hold down CTRL while dragging the rectangle and release it simply leaves the elements selected that were highlighted while dragging, instead of converting to a range.
Personally I'd still prefer it if SHIFT+drag didn't even draw a rectangle, or at least automatically adjusted it to be a rectangle that fully contained everything in the range, but it doesn't seem worth the effort at this point.
In reply to BTW I've implemented a "fix"… by Dylan Nicholson1
(this is now merged, BTW)