Some small ideas for improving current note input workflow

• Jun 15, 2020 - 17:20

In a few previous discussions such as and, the idea of a note input workflow has been mentioned is rather unlike anything MuseScore current supports directly, but it occurs to me there might be a way to make something like this happen pretty easily.

The idea as I understand it is is that people want to enter notes not using the mouse to click pitches and not using note letter name shortcuts, but using some sort of scheme where you enter a note at the same pitch as the previous note then use the cursor up/down to adjust it. The idea would be you could enter a scale as shortcut, up, shortcut, up, shortcut, up, etc - for some particular shortcut. The trick is in figuring out how to specify the duration.

BTW, I gather this is the native method for entering notes in Capella, except I think it's the other way around - up/down affect the note input cursor more or less like it does for tablature input in MuseScore, then you hit the shortcut to enter the note at that pitch. Sibelius has a kind of hacky approximation of this using the "R" command to add the note, then you change its duration, then you move it up or down.

In MuseScore, "R" does exactly this in step-time note input mode, but without an easy way to specify a different duration. Q & W exist but aren't necessarily the most natural to most people, and it can require multiple presses. Somehow I think people would prefer to just select the duration. I have considered and actually implemented a command that would apply duration (and accidental) retroactively in step-time note input mode. So you could press "R 4 shortcut" and it would repeat the previous note then change it to an eighth. This seems like it would be quite useful for this workflow..

But another idea is to use rhythm mode, which already provides a way of entering different rhythms wich a single keypress - just type the number for a duration and a note is entered immediately. The only problem is the note is always the middle staff line. That's because we initially envisioned this as a mode to enter a bunch of "dummy" pitches that you later go back and use repitch for. But, it could totally be used for the workflow I am describing if only pressing a shortcut used the last pitch rather than always jumping to the middle staff line. For people using this mode as originally intended, it wouldn't change anything. but if after entering a note you immediately repitch it using the up/down keys, this would allow repeating the previous pitch but with a new duration by simply pressing the duration. Seems a nice win for lots of purposes, also including things like drumset input, you might well want lots of notes of the same pitch over and over but not necessarily the middle line and definitely not all the same duration.

Biggest drawback of using rhythm mode in this way is ties, which are awkward to enter currently. Still thinking about that one.


BTW, when I say I implemented a command for apply duration retroactively, I mean I wrote the code and submitted a PR, which I later closed - I don't mean it's actually in any version of MuseScore. But I'm dusting it off for reconsideration. As a new command, it might be too late for 3.5. But the idea of having duration shortcuts repeat previous pitch rather than always using the middle line seems pretty safe.

Unrelated except that it falls under the same umbrella of being very small but hopefully impactful changes we could make:

In "insert" note input mode, delete doesn't. It should. That is, Delete in this mode should what Ctrl+Delete does in normal mode. Also, 0 should insert rests rather than replace. And Ctrl+Shift+0 should insert a rest in other note input modes. And Ctrl+Delete should also work in other note input modes.

As I suggested in one of the threads you linked, some of the changes that I'd like to see are as follows:

  1. Streamline the input of dotted notes: Currently, you hit the period key to toggle a mode where all notes are dotted. To enter a syncopated rhythm (e.g. dotted-quater eighth, dotted-quarter eighth) you need to hit dot once for each note, to toggle this mode on and off. ( in this example, . 5 . 4 . 5 . 4). To sreamline, Instead of using the period key to toggle dotted notes, efficient rhythm entry if the shift key entered dotted notes. (Shift+5 would give you a dotted quarter. So my syncopated example would be Shift+5 4 Shift+5 4).

  2. Two options for ties. The thing that makes them awkward is that I have to enter both notes, then go back to the first note and hit +. Eliminating the backwards navigation step would improve this:

    a. I could hit the first note duration, then hit +, then hit the second note duration, and have the tie between the first and second notes. Hitting plus would put you in a temporary state where Musescore was waiting for input to figure out what to do. (To enter a half note tied to an eighth, you'd enter 6 + 4)

    b. I could hit the first note duration, them hit the second note duration, then hit +, and the tie would go backward from the second note to the first. I think this would just involve implementing a single action called "Tie the last two notes" and binding it to the + key when in rhythm entry mode. (To enter a half note tied to an eighth, you'd enter 6 4 +)

In reply to by Ken Bloom

I understand the reasoning behind 1), but I would observe that this same could apply to step-time input, and I neither want to introduce an inconsistency nor a change to the average person's workflow. Also, Shift+number keys are not available as standard shortcuts because on some keyboards, the numbers themselves require Shift (eg, French AZERTY). There are other possible solutions to this, but I'm not sure there is a good "quick fix" here. One I can see once it is acceptable to add new commands (may be too late for 3.5) - a command that changes the currently selected duration so dotted quarter becomes eighth or vice versa (and similarly for other note values). So, 5 . C shortcut D shortcut D shortcut E shortcut F etc.

For ties, yes, the two options you mention are exactly the two I have in mind. The first I like better, it makes the tie a toggle like accidental and feels consistent, and it handles chords nicely. But the tie button isn't currently set up to be a toggle so that might end up being complicated. The second is probably simpler to implement but feels a little ickier to me, especially if the first note is actually a chord, then you enter a single note, then you hit the tie button. But yeah, that's the kind of thing I'd love to hear more input on.

In reply to by Marc Sabatella


Agreed! For example... C/D/E/F in input mode and quarter notes. I realize that I was mistaken: I wish to modify the C in half note, but without this action "eats" the next note, here the D. It is the central point it seems to me, and the main point of recriminations.
Currently, among other ways, by switching with a shortcut the "Insert" and "Step-Time default" modes, I can eventually achieve this. I am temporarily creating a 5/4 measure.
This is where the possibility of deleting the unwanted time/note to bring the measure back to 4/4 is introduced. At present, as you say, this is not possible, and therefore implies news actin ie go back to normal mode, and then re-switch to input mode (no-friendly!)

That would be a first step. Of course, the best would be not to have to switch from one mode to another to insert notes really (don't eat the next notes already in place, main point again).

In reply to by cadiz1

I have submitted a PR for Ctrl+Delete in note input mode:

Both this and the rhythm mode PR are at least potentially able to be included in 3.5 in that they don't introduce anything new in terms of translation or documentation - they just enable some things to work that currently don't. But I acknowledge it would have been better timing had I gotten to this a few weeks earlier. We'll see. If not 3.5, then hopefully some other interim release - it doesn't seem like something that needs to wait until MuseScore 4. Whereas anything more ambitious probably will need to wait.

In reply to by Marc Sabatella

I had seen, indeed. Thanks.
Although it will probably be useful, this function to delete notes or rests in input mode will not bring what I had assumed a few days ago. I made a mistake (out of a desire to find something quickly maybe!)
To use my previous example:
Step-time mode (Alt/W shortcut, eg): C/D/E/F, in quarter notes.
My mistake, I wanted a C half note
Insert mode (Alt/Q,eg): go to first beat / 6 /C

My hope is to temporarily create a 5/4 measure. Then I could delete (Ctlr + Del), now, or later (in any case, the "+" and "-" display irregular measures, so no risk) this or that note (or beat), say the F.
Relatively user-friendly it seems to me. And above all, it avoids this tension, this feeling among users (at least among some who are new to the program or to editing music notation ? ) that the current program "eats" the next note, the one that has already been entered, and that you don't want to do again.

You could retort that, in any case, I'll have to do one more action, that of deleting this or that note (say the F). Nevertheless, I keep my hand, I don't suffer the deletion of the D by the program.

Unfortunately, at the moment, I don't know why I didn't see it (?), when I type the C half note, in fact, it really (!) inserts a new C half note (well, yes, that's what it's supposed to do!), when I would have liked it to simply lengthen the first note.

That's exactly how Guitar Pro works, for example. Irregular measures are displayed differently (measures are striped red, as soon as the cursor moves to the next measure), and another huge advantage is that there is only one mode in Guitar Pro. I don't know how other programs work, Dorico or others, if there is.

And so, to finish on my example: you get a 6/4 (!) measure, C half note, then the first series, C/D/E/F. Of course, I can delete two beats, but that's not the point and becomes counterproductive. So I am disappointed for that, and I don't know what to think anymore (or rather, I was wrong, my bad, this Insert mode as it currently works is not the right tool.) Or another way, sort of Extended/Extension mode! :(

In reply to by cadiz1

I definitely support the idea of someday adding a command that lengthens a note, pushes subsequent notes in the measure to the right, and increases the measure duration. But this to me is something to be considered for MuseScore 4 as part of some broader changes that might include other aspects of what we sometimes refer to as a "scratch pad" mode.

As it is, though, it does seem to me that you can easily do what you describe here, once my change is in place. Ctrl+Delete to delete the quarter note C, then Ctrl+Shift+C to insert a new C. End result is a 5/4 bar, half note C followed by quarter notes D E F, no change of modes required. It seems like a pretty simple way to do exactly what you say you want. Am I missing something? Yes, it's one more click than the "lengthen-note-and-push-other-notes-to-the-right-and-increase-measure-duration" command, but still better than what you are describing doing now.

In reply to by Marc Sabatella

Short term I don't think I'm comfortable with either of the tie ideas. So instead for now I will mention the better workaround I just thought of: hit "+" then use Q/W to change the duration. Works great, including with chords (and with Shift for dots). But I do plan to submit a pull request to change the default pitch to be "same as last (if appropriate)" rather than always middle line. Middle line will still be the initial default, so it will continue to work as always when not repitching as you go.

No promises on when it will go in to a release, though

In reply to by Marc Sabatella

How about using the mouse wheel to scroll through rhythms? Click on the staff where you want a note to appear, and a note appears there, but you can change it on the fly with the mouse wheel. This way you can use the keyboard for pitch input with the left hand while changing the rhythm simultaneously with the mouse on the right hand. Or maybe not. I'll back away slowly now.....
