Open wizofaus opened 1 week ago
While in Note Input you can change the duration of the just-entered note with Shift+q or Shift+w
Even more reason to allow changing it to a specific duration via the number keys! Shift+q appears to change a note to 3/4 of its duration and shift+W to 1.5x unless already dotted, then it goes to 2/3 or 4/3 the length respectively. Meaning if the current duration is 1/8 notes and I enter a pitch then realise/decide it should be a whole note I have to press shift+w ~7 times.
I like very much how Dorico handles this. Their shortcuts system is very rigid: just pressing keys without modifiers always affects just the UI state (e.g. selected duration, navigation through the score), while pressing ALT+key modifies the selected element, e.g. edit its duration or move it around or length/shorten it. It's of course more than 10 years too late to implement that in MuseScore, but maybe we can partly implement it to support this feature request. ALT+number is already taken though.
Separately from that, it's certainly not inconceivable that we will add a "pitch before rhythm" note input mode. We'll need to spend some thought though about how we would present that in the UI because having just a list with a lot of different modes is perhaps not ideal.
But surely Alt+A...G activate menus, at least on Windows - or does Dorico not use A-G to change pitches?
Anyway I'm not suggesting the need for a whole "pitch before rhythm" mode that allows you to put in a bunch of pitches then assign a rhythm to them, though I would think there's a case for the existing "rhythm-only entry mode" working like that (rather than just duplicating the pitch of the last entered note, which appears to be what it does). I also don't know why it's called "rhythm only" as clearly it does allow entering pitches too!
It’s not necessary to delete the current note - just re-enter it directly on top of the exist one and it is replaced.
Once upon a time I implemented an experimental “apply current note input state” command for MU3 to retroactively apply whatever duration and accidental is selected in the toolbar to the currently selected note. It was dead simple to implement and worked well enough, but no one seemed all that excited by it and it was never merged. It’s still not a bad idea, IMHO. Compared to the suggestion here, it means you don’t need to back up to make it work and thus feels rather more natural to me.
I am also not crazy about having the duration keys do two different things depending on whether you just pressed cursor left or not - that feels like a hack and likely to be a bit error prone.
But instead of keying off use of recent Left, it could make more sense to key off cursor position == current selection, which is basically only true after using cursor keys (otherwise cursor position is always ahead of the selection). And while it could be argued this would seem like a regression to anyone who actually planned to reenter the passage anyhow, if that was the case, it’s mostly harmless to change the selected note duration.
But a modifier to make the duration keys apply retroactively is fine too.
I wasn't suggesting the logic should be "did the user just press the left-arrow", but rather, as you say, change the duration of the note where the input cursor is.
Why not, in the above mentioned case of inserting an 1/8 note and realizing you want it to be whole,
That is a super clever two-keystroke workaround for sure, never would have occurred to me. Still not as convenient as the separate shortcut set for retroactive application, or the separate command to retroactively apply the current input state. But of course it has the advantage of being something we can use now :-)
Your idea
After adding a note while in note input mode, I'd like the ability to change its duration without exiting note input mode, e.g. by pressing the left-arrow key first to indicate the just-entered note is selected, then pressing a duration key (1-8) to change its duration.
Problem to be solved
It's pretty easy while entering notes to think "pitch first, duration after", but MuseScore's note input mode doesn't seem to facilitate this at all currently. Press left arrow before pressing the number seems like a reasonably intuitive way to do this given the way duration changes work outside of note input mode, but it doesn't work. It's sort of possible by toggling on "rhythm only" mode (which there's no shortcut key by default, but you can assign one), then changing duration, then switching back to regular "step time" entry (also has no shortcut by default) then pressing the right-arrow key again, but it's fairly clunky.
Prior art
I understand Finale and other notation packages have a mode for specifying pitch first then duration.
Additional context
The obvious "workaround" is to delete the pitch, change the entry duration and re-enter it, but I would say that requires more mental gymnastics (I don't think I've done something "wrong" per se that needs to be deleted, I just want to amend what I just entered - and I have to hit a different key dependent on the actual pitch).
Checklist