Select Similar Elements: Same Beat

• Oct 4, 2019 - 07:07
Reported version
S5 - Suggestion
PR created

Not only would this allow for quick velocity settings, but it would also help alleviate that weird situation of having overlapping voices cancelling out certain dynamics.

So, for instance, the user should be able to click a note"Beat 1" and in the Select Similar Elements dialogue have: All Similar "Beats" and each Beat 1 of all measures in the score would be selected (notwithstanding any other filters, like similar voice etc). This would allow again for a quick adding of dynamic marks if need be, or velocity user changes. Also, with voices overlapping in a grand-staff - the problem where for instance if voice 2 plays the same note as voice 1,voice 1's dynamic markings don't actually play but voice-2 does, but when overlapped, there's no easy way to select the notes like this and disable their "play" attribute, especially difficult for harp like notation when there's a tendency to find two voices sharing the same note.

Obviously MS has the ability to recognize which beat the note is on: it is provided in the text of the status bar. This feature would provide a major increase in functionality for the customizer of dynamics in voicing.

I'd venture to say that this is a really important suggestion and not merely an 'on the side' suggestion.


Frequency Once Few

I agree. I've often wished I had this feature when there are a lot of accents on a certain beat. It would be nice to be able to select all notes on beat 1 in selections and press ctrl+v to add them all at once rather than ctrl+click each note on beat 1 first.

Closest thing for now is select a range then use Select / All Similar Elements in Range Selection, but this doesn't work as well if the notes have different durations, you'll end up selecting everything according to the longest duration.

Although somehow I'm understand the use case of wanting to assign a dynamic or other marking to beat 1 across all staves much better than I am understanding what seems to be some sort of highly unusual corner case interaction between dynamics on different voices on a single staff. A sample score and steps to reproduce the perceived problem with simply Ctrl+click would help in prioritizing this.

This is not a corner case. It is not uncommon for all of the strings to be playing 8th or 16th notes and have an accent on the first beat of every measure for several measures. This is 4 or 5 staves (the basses often do something different) over several measures. Being able to select all of the notes on beat 1 and pressing ctrl+v to add all of them at once would be a nice feature. This is only an example, there are other cases where this would be useful, including add the same dynamic to a certain beat on every staff regardless of the duration of the note.

No, as I said, the case you described seems clear enough - adding a marking across all staves. It's the originally mentioned case of multiple voices on a single staff and needing to uncheck Play for some reason I am less clear about. Seems if we're talking about two voices on one staff, there are only two things to select, and hence two Ctrl+clicks is faster than messing with a dialog. Plus I'm not understanding the sceanrio that requires unchecking Play - a workaround for some sort of bug? That's why a sample score and clear description of the specific case would be useful.

As it is, to solve the case you mention - which I run into often as well - I'm inclined to think that better than needing to go through the right-click menu, better might be to change the semantics of Alt+Shift+Up/Down and click / Shift+click to not extend the selection horizontally to encompass the longest note. I seem to recall there were some corruption issues that the current behavior was designed to circumvent. But, it actually works if you start the selection with the longer note, which seems counterintuitive to me. That it, if you have a half note on the top staff, sixteenth on the bottom, and you click the top half note then Shift+click the bottom sixteenth, you get what you want. But not if you do it the other way around - you end up with two full beats selected on the bottom staff. So this seems counterintuitive to me.

Anyhow, again, understanding the actual use cases we need to handle would be good efore attempting to implement anything.

In reply to by Marc Sabatella

The overlapping voice issue is a "corner case" compared to the dynamic marks in general definitely, especially in cross staff notation. Nonetheless it ought to be fixed up some how. If the user could [Select by Beat #] where this occurs, often on the first and third beats or something of the sort and then disable the playing of the second voice, it wouldn't be a problem at all (or at least an easy fix). The conversation had earlier related to alignment with the pictures such as with (still don't remember how to link directly an issue on here with titles:


If the treble clef were set with a pp dynamic, and then you select all of Voice-1 in the treble clef and give it a +60 dynamic so that the half notes have strong accents. The accents will get "overwritten" by the fact that the second voice overlaps them and so negate the dynamic change in playback.

This is a bug of some sort, but makes sense since MS is confused over having two same events playing, instead of handling it so that the "larger dynamic" gets honored instead. Or what if voice-1 were "softer" than voice two?

The point here is that with this corner case, the suggestion to allow per-beat selection would allow for instance, since this often happens on the first beat, to select all of beat-1 and then filter by voice-2 and then make those voices "non-playing" which would solve the problem.

The main idea though is for dynamic markings in general, either in adding a stress of some sort, dynamic mark, or even getting grittier and using the offsetting of velocities. Having "Select All Similar Elements: Select By Beat #" would be really functional for this type of behavior. The implementation would have to be careful to allow for floating point situations like with what results in tuples, e.g.: Beat # 4.33333.

In reply to by Marc Sabatella

The problem with expanding a selection is that if you have a 1/2 note on staff 1, and 8th note on staff 2 and quarter note on staff 3, you cannot extend the selection to all 3 staves, you must resort to ctrl+click. This isn't a big deal for 3 staves but is for 45 staves. Since the more... option has a voice checkbox, adding the same beat option to the more... dialog box would satisfy this issue all around.

@frfancha Nowhere did the original message say anything about multiple measures at once, nor did the first response before mine. So I interpreted it as literally same "tick". It's not at all clear that everyone agrees "same beat" really should mean, "same relative beat within measure". If it did mean that, then it would mean it across the entire score, so you'd also need to make a selection and further refine it to make it only apply to the selection, adding more steps to the (more common, I assume) case where you really only mean that specific beat of that specific measure.

But again, I still can't say how this applies to the original case, because I still don't understand it. @worldwideweary : I see a picture, but not a score, and the picture doesn't even show any dynamics, so I'm still not understanding what someone would be trying to select or why. I would prefer an actual real world score showing an actual world problem that isn't solved easily by two ctrl+clicks (or by fixing the underlying bug that is apparently being worked around) in order to understand the original request.

@mike320 - Yes, as I said, there are non-optimal behaviors in the vertical range selection as I described, but what if those were simply fixed? In your specific example, it actually does work to click if the order of the staves was 1, 3, 2 instead of 1, 2 3, but what if it were simply made easier to make the range selection you actually wanted? I suspect overall I'd find this easier than needing to fiddle with the Select / More dialog, but I am not 100% sure what this might look like, and I still have absolutely no idea how any of that applies or doesn't to the original use case. Maybe really we want both of these improvements. but I'd still need to understand if "same beat" should mean "same tick" or "same relative position within the measur,e across all measures of the entire score" (unless further restricted by another user action).

Indeed, but again, that wasn't stated originally, so my original understanding of his case was based on the single-measure case, and that's what I had in mind already. So I missed that detail when it was added later, after my initial response, but as I said, I'm still not convinced that is what everyone would want, given that it necessarily adds more steps when one doesn't want to select the same beat across the entire score. So, still waiting for clarification - does the need for that extra step make people think they are better off with what was originally requested rather than the modified request that came later? Or is everyone on board with the modified suggestion despite the fact that it adds steps to the process? Or are people still needing clarification on the extra steps (the need to first restrict to a selection, which requires multiple clicks)?

A grand staff, or a dual voice instrument has the ability to have C3 for instance be played at the same time by more than one voice. Which dynamic information should be utilized in playback? As it is, the clarity to this answer isn't manifest, and from experience, voice-2 ends up taking precedence over voice one. If this isn't clear enough for some reason, I can demonstrate with one measure mscz file:
Multi Voice Dynamic Test.mscz

Play it, and notice all notes are at 33 velocity, even though the voice-1 notes are set at 127.

How can the user alleviate this problem and get voice 1 to have strength of 127? One way is to disable the playback of voice 2 ONLY when they overlap. But this isn't an option right now and would have to be done manually. Now, if for 30 measures this was the style for some reason, the user could do a range selection of those thirty measures, select all of beat 1 + Voice 2, then uncheck play, and do this for beat 2, 3, 4 and be done. [4 Complex-actions], and the whole area would be taken care of.

I already said, maybe we should do both the "same beat" thing and amend how vertical range selection works - but it would still be necessary to understand if people would prefer "same beat" to mean that beat of that measure only, or that relative beat across all measures.

In reply to by Marc Sabatella

The suggestion is for the whole score when by itself. The original idea here was to have it part of the [Select all Similar Elements] dialogue so that the user could enable also "In Selection" , which could be one measure, three, or the entire score. Or only voice-3 for that matter, or only that system, as with the other standard options available.

@worldwideweary although your score is only one measure long, I think I can see what you mean. You would do your new "same beat" selection across all measures, four times (once for each beat), combined with same staff & same voice, and then you'd turn off the play property for those notes, thus working around the bug. Correct?

Or, we simply fix the bug so the louder of the two notes wins. Wouldn't that be preferable?

So I am not seeing this particular aspect of the issue as being common enough to worry about, but if it does happen to be helped by a command whose primary purpose is to solve the much more common real-world problem of wanting to apply a marking to all notes at a vertical time slice, great.

In reply to by Marc Sabatella

@Marc: That's correct, and it was only an afterthought in realizing that this feature would also be a "non-common" work-around to this particular situation, so I figured I should mention it also, while focusing mainly on the more standard activity of: adding dynamic marks/or whatever to particular beats, or velocity programming especially.

And yes, the stronger velocity would win in this instance, and also in my opinion as a default activity. I suppose the user could rarely want the lesser velocity to take precedence (like if voice-1 were given 13 velocity and wanted that to play, but that seems really weird to do). On the side: I think there was an issue sometime ago mentioned about not only velocity but duration having a problem when two voices interact with the same pitch, but that's another story and don't want to add that here for now.

OK, good to know. Because actually, the more I think about it, the more I think the best solution to the more common problem (wanting a marking applied to a vertical slice of the score) it to support that operation directly, no need for a selection first. Consider: right now, for elements like time signatures that normally are applied to all staves, we have Ctrl+double-click to force it to apply to one staff only. Well, what if we had Shift+double-click do the opposite - for elements like accents that are normally applied to individual elements, to instead apply to the entire vertical timeslice of each selected element? So, you could add an accent to the three specific notes of a pattern across all staves by selecting the notes on the top staff, then Shift+double-click the accent to apply it to those notes but also the corresponding notes on other staves.

Not saying there couldn't be a "same beat" option in the "More" dialog also, but as far as biggest usability win for this scenario, I kind of like this.

BTW, with 3.3, there is a cool new "Apply Current Palette Element" command that remembers the last-used palette item, allowing you to easily apply a given marking multiple times in a row. Somehow this seems relevant here as well.

In reply to by Marc Sabatella

That sounds pretty decent. So long as the dialogue thing also is considered (hopefully implemented), that sounds like a useful addition, especially for scores with a lot of instruments doing things like similar crescendo marks at a particular time spot, without the need for utilizing the Same Beat process of Selecting Similar. To have both of these working would be pretty slick.

Take it one step further: also allow your idea to utilize the keyboard to do it while in the palette. It doesn't seem that the user can do the equivalent of the [CTRL+Double Click] of a time signature for instance as it is if using only the keyboard while pressing enter for a palette item. At least not in 3.2.3. It would be pretty nice to do the equivalent also by pressing CTRL+Enter for instance when the palette item were selected, or with what you mentioned, also a SHIFT+Enter for the whole time-slot.

If [Shift+Double Click] plus keyboard [Shift+Enter] (and Ctrl+Enter/DoubleClick], AND the Select similar Beat #'s were implemented, even though these are little details, this would be a huge update for 3.3 or a little after if it didn't make it in just yet.

In implementing this feature, I realized after I got it working that a new option is also very useful for this in conjunction to [Select all similar beat], which is [Select all similar in same measure]. At first it may sound useless, since who only selects within one particular measure? But for instance, if you have a score with 16 instruments, and the user wants to add crescendo marks starting at the second beat of the first measure (and had a shortcut to start the dialogue for Select All Similar), the user can now do something like:

  • Select note at beat 2 in measure 1
  • Issue [Select all Similar dialogue]
  • Check [Beat] and [Measure] + OK
  • Now add crescendo (from palette, unfortunately the keyboard shortcut doesn't work on multiple instances). Alternatively something like adding a Stress mark also serves the example.

The point though is that this sequence contains only 4 actions, and it's accomplished. And, although you'd have to tab through the S.A.S dialogue, they can all be done with the keyboard!

At any rate. I've got to do a little more testing first, and then I'll put up a pull request. It also would need "Translate" strings since there will be new "beat" and "measure" options in the dialogue boxes. Hope it turns out to be useful.

Update: Here's a .gif performing the following actions (hopefully it's not too bad to see + it's kind of big like 1.5mb):
1) Paste Text onto one particular beat of a measure in a tuplet.
2) Apply Staccato on first beat of all measures
3) Apply Stress on particular beat of particular measure
4) Apply Crescendo in bulk on first measure first beat.