Have shortcut for Real-time (manual) advance also be used to initial Real-time (manual) entry mode too
It would be great if I could start the real-time (manual) input by simply pressing the shortcut assigned to it. By default, it is enter, but that doesn't do anything if I don't have that note entry mode already enabled.
Also, would be great to put the key of the shortcut in the hovering tooltip when mouse over the command in note entry menu. Currently the mouseover menu looks like:
It would be great if "Enter" was written on the right side of the menu, like the other shortcuts are.
I also think that the tooltip text could be amend to: "a key or pedal (set in preferences) to set the tempo".
The main reason I ask for this is because it was very hard for me to figure out how to actually start this feature from scratch when I didn't have internet access yesterday morning. So I want someone who doesn't have internet access to know how to set the shortcut key and what it is just by reading the tooltip.
Comments
That key adds a line break if a barline is selected.
Actually it doesn't. There are two enter keys: Enter (Return) and Enter (NumPad). Realt-ime (manual) is bound by default to Enter (NumPad), while Enter (Return) controlls newline.
Should probably have the shortcut indicate the difference between NumPad vs Return.
Most laptops smaller than 17 inches, and even some desktop keyboards, don't have a numeric keypad at all, so the two keys are one.
@Isaac, even if a keyboard only has one such key it will only work as Enter or Return, not both (unless pressing it along with fn or some other modifier simulates the other key, but even then it can only be one at any given moment).
Anyway, unfortunately the real-time modes only work with a MIDI keyboard and not the computer keyboard because MuseScore's shortcut system is currently only able to detect key-press events and not key-release events. I'd recommend assigning the shortcut to a MIDI key (or pedal). Enter was just used for debugging purposes.
@eric, I like your proposal to make the shortcut take you to real-time mode, but be aware that the manual advance key also activates auto advance in automatic real-time mode. Perhaps it could take you into the real-time mode you were most recently in?
I can't test it with a MIDI controller until after the weekend, but I'm pretty sure that I recall the single Enter/Return key on my MacBook working for real-time advance...
Yeah I like that idea.
Are you able to apply a line break to a barline on your macbook with the single Enter/Return key??
Yes, certainly it applies a line break. I'll be able to check about the advance this evening.
My apologies; what I was pretty sure I recalled was not the case. The single Enter/Return key on my MacBook does not work for real-time advance by default.
Does it work when you hold fn? (Not that it's much use having to press two buttons and having no hands left to press the keyboard keys.)
Shoogle, do you want to implement, or should I?
Don't let me stop you. ;)
Interestingly, a situation exists with the Backspace key, which MuseScore uses as an "undo" key during note entry. On Windows and Linux that's all the Backspace key does; if you want to delete something outside of note entry you have to use the Delete key. However, on Macs (which don't usually have Delete keys) the Backspace key is also used for deleting things outside of note entry. However, I assume this is due to special handling on the part of MuseScore, because when I boot my MacBook in Ubuntu I have to use fn+Backspace to simulate Delete.
In fact, it does work with Fn. Unfortunately, as you point out, these are twelve inches apart...
Regarding Backspace/Delete, you might find this interesting: #67371: [Mac OS X] Change "delete measure" and "whole measure rest" shortcuts to use Delete (backspace) instead of Forward-Delete key
I wouldn't worry too much about Macs not having seperate enter/return, considering user will in all likelihood reassign this feature to midi pedal anyway. Macs sortof have less keyboard button options, so no other simple alternatives.
Is it Mac-specific, or small-keyboard-specific? Certainly many Mac users have full extended keyboards, such as http://www.apple.com/shop/product/MB110LL/B/apple-keyboard-with-numeric…. Do non-Mac laptops without a numeric keypad still have two separate keys for Enter/Return?
The fact that that keyboard is sold as "keyboard with numeric keypad" says it all. In the Windows world that's just called a keyboard. ;)
However, as laptops get smaller we are starting to see more without Enter or Delete keys. I'm thinking mainly of Chromebooks here, but there are probably some netbook type PCs without them, or laptop/tablet hybrids.
On many windows laptop the numeric keyboard is simulated by using an fn key with keys on the alpha keyboard. So there is a single enter key. I'm not sure if the fn key sends the numeric enter code or not.
I actually run arch Linux on an old MacBook 2,1 and I had to press Fn-Del in order to delete notes.
I don't want to critise Apple, but part of their design philosophy is reducing user input options, and people seem to buy their stuff, so can't really argue with that. But then I don't think those people who buy Macs should be terribly upset when they find that they have to do special combinations for things that a seperate key or right mouse clcik on PCs. But whatever that is just my personal opinion. But I don't want to use up a seperate key just to satisfy Apple computers, consider that this is something they will reassign to midi pedal, or whatever keystroke they want. Is there any better keystroke to use?
Pu tit under shortcuts in preferences with the fn enter default and let Mac users change it if they don't like it.
Also we need to better communicate what the shortcut is. Here is what the default shortcut looks like in Windows preferences:
Clearly we need to communicate that is the (Numpad) Enter. For macs, I don't know the best way to communicate, but at least if put (Numpad) Enter then they will know it is not regular Enter.
I want the shortcut to be displayed in the note entry menu as well.
Also should that shortcut reflect which midi key I've assigned it to? Currently it doesn't show the midi key I assigned it to.
When you use the numeric keypad to enter a number for a shortcut it says NumPad+6 (for the 6). When I assign the numeric keypad enter it says NumPad+enter. When I use the Alpha keyboard it says Return. So on Windows (10 at least) it already distinguishes between the different keys.
A couple things:
First, even though the MuseScore preferences dispalys that shortcut as plain "Enter" as default preferences, however interestingly if I actually set the shortcut and press then numpad's enter key, then the shortcut displays as "NumPad+Enter" as show below:
So basically I think we need to fix this preferences dialog to properly display the initial default shortcut as "NumPad+Enter".
Second, I just discovered on my IBM ThinkPad X60s, that there doesn't appear to be any way to do numpad-enter, not even with pressing some combination of Fn+Enter or Fn+NumLk, it seems. Maybe there is a better default button that will work easily across Macbooks, Labtops, Netbooks, Chromebooks, in addition to full-sized keyboards. (Although again, maybe not, considering that people can override this).
Third, I notice when just using computer keyboard with manual real-time input, that when I hold down a key (a,b,c,d,e,f,g) that the OS will eventually turn it into repeated keystrokes. So this causes a bit of a problem when inputing a long note, if I'm not able to complete the note within the time I'm able to press as many enters that I need. Maybe there is a way for enter (or whatever reassigned keystroke) to be able to halt the OS's conversion of held key into repeated keystrokes.
It would be great if real-time input worked on any regular labtop keyboard without external midi controller/pedal, even though I know it works best with external midi.
> It would be great if real-time input worked on any regular laptop keyboard.
Indeed it would! Unfortunately MuseScore's shortcut system (built on Qt) only detects key-press events, not key-release events, so this is not possible without re-implementing Qt's shortcut systems.
@shoogle, I just discovered:
http://doc.qt.io/qt-5/qkeyevent.html#isAutoRepeat
http://doc.qt.io/qt-5/qshortcut.html#autoRepeat-prop
So I think it would be possible to test isAutoRepeat() for (a,b,c,d,e,f,g) and not insert a note if isAutoRepeat is true... Maybe I will file a separate feature request for this.
Is there any shortcut where we would want autorepeat set to on?
@Jojo, well now that I think about it, I'm thinking it might be useful to have autorepeat on for inserting rests and even (a,b,c,d,e,f,g), but just not if in real-time note entry mode.
If I want 3 times a, I type a 3 times.
So I'm not totally disagreeing with you...I'm still trying to think in my head what is the best behavior. I know I don't want autorepeat when in real-time. But I'm thinking there might be uses for autorepeat sometimes. For instance if I wanted to fill the score with a ton of quarter rests or maybe fill with a ton of quarter note A's...so I might just hold down 0 or a while in regular note input mode. Of course I know there are other ways to input a bunch of repeated notes, such as copy & pasting. But I think auto-repeat is usually standard keyboard input. I just think that there are only a few cases where want to disable auto-repeat, so far all I can think of is when in real-time mode.
Another case where I know auto-repeat is useful is for navigating left & right arrows. Holding Q/W also seems to be a nice way to get to smallest and largest duration (I'm not sure it is terribly useful, but it at least makes sense). But then there are some inputs that don't make sense with autorepeat, like holding to spacebar to continually start & stop playback, or pressing '.' to repeatedly add dot and remove dot...
Score navigation is the only use that I can think of. Auto-repeat is too quick (and therefore inaccurate) to be useful for adding things to the score.
But I would consider testing for auto-repeat to be a bit of a hack compared to detecting the key-release event. You have to wait a little while for the key to start auto-repeating, then it will flood the system with events, and then you will have to wait a little while to make sure no more events are received. Seems like it would be easier (and more accurate) just to handle a single key-release event.
I wouldn't consider testing for auto-repeat to be a "hack". Also I'm not quite sure I understand what problem there is with being "flooded" by auto-repeats...they only happen a few times a second, and it is just a simple test to break out of the key handling function. I think having to detect the key-release event is a bit complicated because it would require keeping track of state.
So I do notice when when extending a crescendo (or any hairpin) when I'm in a big score, when I double click it and hold down Shift while press right to cover a large number of measures, I notice that I can easily be overwhelmed by the amount of times that auto-repeat happens, I think primarily due to the choppiness from to the lag that that layout update code incurs. So I unexpectedly over shoot the measure I wanted to end the hairpin at. I also don't see the scoreview update the visual for each time auto repeat happens. I do like the autorepeat here. But maybe it needs to wait for the actual scoreview paint event to complete before accepting another auto-repeat keyevent. That way I can see my hairpin grow step by step, instead of jumping several measures at a time.