Next/Previous System command: opinion

• Jan 9, 2020 - 01:42

In thinking about implementing a command (keyboard shortcut) for [next/previous system], see: #293732: Next System Shortcut, I've run across an implementation question. I realize that in a sense this a superfluous command to have, as often a system only contains something like 4 or 5 measures. The user merely has to press [next measure] with (ctrl+left/right) a few times and is on the next system at the same instrument staff as previously.

However, if the user is in a score with, for example, 12 instruments, and is at the bottom of the system while copying a score, and now ready to move over to the next system to begin input at the beginning (the top left of the next system)... from the keyboard perspective the user will have to do something like:

[next measure] however many times to get to the next system, and then
[alt+up] to traverse back up to the top most instrument. This could be something like 10-15 command presses.

It's in thinking about this that I'm re-entertaining that a potential [next/previous system] command shouldn't stay on the same instrument as the user is currently, but move to the top-left of the next/previous system (upon the first instrument). Another stronger reason for this is that pressing [next system] would be equivalent to pressing [next measure] if the user were at the last measure of a system. Instead of having such a similar functionality with [next/previous measure], I'm thinking that [next/previous system] would be more useful if it always brought the user to the top-left most of the next/previous system.

I wonder if anyone has any input about this or opinion? I'd be interested to know before doing a pull request.


As I mentioned in the PR comments, to me next system is indeed superfluous, but more useful is a "next empty measure" command. Or, hmm, really, a "first empty measure after last non-empty measure" command, so it skips over random empty measures within a score and really gets you to wherever you left off, whether it happens to be at the beginning of the next system or somewhere else further along.

A command to quickly take you to the top staff to me is also useful, but separate. Sometimes I want the top staff where I am now, not the top staff where I left off. Or, when jumping to where I left off, sometimes (most of the time, probably) I want to continue on the current staff,

In reply to by Marc Sabatella

Thanks for your input, Marc.

It seems to me that if [Go to next empty measure (after last empty measure)] + [Go to top staff]" were implemented, using them in that order would give equivalent results to my personal use case of the: go to top/beginning of next system while inputting a score per-system, yet (hopefully) using those two shortcuts instead would provide for more use cases to other users.

With that in mind, I'll rethink the PR and code and see if I can't figure out how to get that going. Any further ideas of course are welcome... since ultimately this idea is just one manifestation for a few more flexible options regarding score traversal for the purposes of input / perusal.

In reply to by worldwideweary

As far as resuing code goes, maybe there is something in the "remove empty trailing measures" command that would work. The first empty trailing measure is where I'd suggest going. And such a command would turn me from "I can't imagine why anyone would want this" to "I'd use this practically every day" :-)

In reply to by Marc Sabatella

Hey Marc, I'd value your opinion on the following question:

There's an option here implementation wise, which is either to go to:

(1) First empty trailing measure per entire score as with how the delete trailing measures functions as it is. Or,

(2) First empty trailing measure per that particular staff

(2) would mean for instance, in a 12 staff score, if staff-three had five measures full of notes and the user were in staff-three, this function would go to the sixth measure and not take into consideration what the other staves were doing.

If, for example, staff-one was completely full except for the last measure, let's say measure 100, then no matter what staff the user were on, using version (1), the result would be to go to measure 100 on whatever staff.

(2) would be peculiar to each individual staff.

I wonder what would be most useful overall? It seems to me each individual staff should be taken into consideration, and so version (2) would be most useful, but then the delete trailing measure code as a starting point would need to be more greatly modified. Thanks for any insight.

In reply to by worldwideweary

I thought of that question as well. For me personally, probably 1) makes more sense more often, but either way, it's going to be what I want some times, not other times. 1) especially makes sense if the command also jumps to the top staff - it makes it clear this is really a "continue where I left off" command. There's actually no way to mimic that behavior with the two commands (go to first empty trailing measure, go to top staff) if option 2) were chosen. There would be no way to actually be sure you're getting to the first empty trailing measure for the whole score. So that makes me prefer 1). And then I still like having the "go to top staff" command separate, because realistically I might want it in any number of other cases, and I don't walways want it here.

In reply to by Marc Sabatella

Thanks for the input. After reading your reply and showing that the entire-score version (1) would be more useful to you, the idea of having both (1) and (2) working with the same command came to mind, but -- as always -- with a slight trade off, and I'd like your opinion on the trade-off of this idea:

If there is no selection (no active element), go to the trailing measure of the entire score. The problem with this is that then there's no staff involved, so selection would have to default to the top staff since there's no selection to base what staff to use, and also, the user has to press escape explicitly first before issuing the command in order to get full score 'first empty trailing measure'.

But the gain with that would be to have the same command double as (2) mentioned above if: the user were in note-entry mode or had a note/chord selected on a particular staff and issued this command, then selection would go to the beginning of that particular staff's particular empty trailing measure instead of the entire score's empty trailing measure.

I wonder if you think that would be a worthy trade-off, or have any ideas to some how get both functions to work in some way besides that?

...and either way, still implement a top function that can be defined by users who would find it useful.

By the way, the [Go to top staff] as recommended by Marc can also double in the same vein: if there is no selection at all in the score, there's no active measure, then should this command do nothing or something alternative? I chose to have it go to the top of the first measure of the entire score, so in a sense it doubles as a "Go to the beginning of score and to the first/top-most staff" when no element is active. This also seems fairly decent and I'm liking the results so far with my local build.

PR is created with a link in the issue tracker:

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