Tricks for more efficient note-entry?

They don’t mean different things in the different sections. It may not make sense to you that Ctrl is used to mean Cmd on Mac, but it’s logical in that the same JSON files can be distributed with Mac and Windows versions of Dorico. In almost every case, shortcuts that use Ctrl on Windows substitute Cmd on Mac.

alright I see what you mean that CTRL-C on windows is usually CMD-C on Mac…so that’s why Dorico team is using those CTRL to represent the same concept on both platforms, despite confusion over the fact that Mac also has its own CTRL key

DO you have any idea what they may have put PitchDown in the Mac section instead of the common section like Pitch and PitchUP?

Yes. Macs have four modifier keys, basically: Cmd, Alt, Shift and Ctrl. Windows only have three: Ctrl, Alt and Shift. The Windows key is basically unusable by third-party programs.

The note down commands on Mac are simply Ctrl-pitch (aka Meta-pitch). They can’t be Ctrl-pitch on Windows, because, for instance, Ctrl-A is Select All, Ctrl-C is Copy, etc.

The team could have made it Cmd-Opt-pitch on Mac in order to be consistent, but why use two modifier keys when you have a single spare one?

(Oh, and the Alt/Option key is problematic on both Mac and Windows - there are many Alt/Opt combinations that are dead keys for accented characters, so that’s probably why that single modifier key was avoided.)

So they put it in the Mac section for that particular case because of key conflicts… But for me to DELETE their key assignments, I could do that in either section or would I need to do it in the Mac section? And if I use keys that don’t conflict with anything else…then could I put the new entry in the common section or should I just always use the Mac section to make absolutely sure I’m not conflicting with common? Still not entirely clear how and when to know that I need to put my overrides in one section or the other.

I’m still not getting things to work with those PitchUp and PitchDown overrides…, so trying to figure out the subtle thing I need to do differently. and wondering if its related to the common vs Mac section…

what I want to do is to use Ctrl-C for PitchUP and Option-C for pitch down. This is what I tried so far…but PitchUp and PitchDown don’t respond.

key commands_en.json
{
	"common" : {
		"contexts" : [
			
			{
				"context" : "kStepTimeInput",
				"shortcuts" : [
                    {
						"NoteInput.ShowCommentDialog" : [ "Alt+Shift+C", "DELETE:Alt+C" ]
					},	
					{
						"NoteInput.Pitch?Pitch=A&Up=true" : [ "Meta-A","DELETE:Shift+Alt+A" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=B&Up=true" : [ "Meta-B","DELETE:Shift+Alt+B" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=C&Up=true" : [ "Meta-C","DELETE:Shift+Alt+C" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=D&Up=true" : [ "Meta-D","DELETE:Shift+Alt+D" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=E&Up=true" : [ "Meta-E","DELETE:Shift+Alt+E" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=F&Up=true" : [ "Meta-F","DELETE:Shift+Alt+F" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=G&Up=true" : [ "Meta-G","DELETE:Shift+Alt+G" ]
					}
				]
			},
			
			
			{
				"context" : "kWriteMode",
				"shortcuts" : [
					
					{
						"NoteInput.SetDotted" : [ "Num+.", "." ]
					},
					
					{
						"NoteInput.NoteValue?LogDuration=kCrotchet" : [ "3", "DELETE:6" ]
					},
					
					{
						"NoteInput.NoteValue?LogDuration=kDemiSemiQuaver" : [ "6", "DELETE:3" ]
					},
					
					{
						"NoteInput.NoteValue?LogDuration=kHemiDemiSemiQuaver" : [ "7", "DELETE:2" ]
					},
					
					{
						"NoteInput.NoteValue?LogDuration=kMinim" : [ "2", "DELETE:7" ]
					},
					
					{
						"NoteInput.NoteValue?LogDuration=kQuaver" : [ "4", "DELETE:5" ]
					},
					
					{
						"NoteInput.NoteValue?LogDuration=kSemiQuaver" : [ "5", "DELETE:4" ]
					},
					
					{
						"NoteInput.NoteValue?LogDuration=kSemibreve" : [ "1", "DELETE:8" ]
					},
					
					{
						"NoteInput.NoteValue?LogDuration=k128Note" : [ "DELETE:1" ]
					},
					
					{
						"NoteInput.NoteValue?LogDuration=kBreve" : [ "DELETE:9" ]
					}
				]
			}
		]
	},
	"delta" : "true",
	"mac" : {
		"contexts" : [
			
			{
				"context" : "kStepTimeInput",
				"shortcuts" : [
					{
						"NoteInput.Pitch?Pitch=A&Down=true" : [ "Alt-A","DELETE:Meta+A" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=B&Down=true" : [ "Alt-B","DELETE:Meta+B" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=C&Down=true" : [ "Alt-C","DELETE:Meta+C" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=D&Down=true" : [ "Alt-D","DELETE:Meta+D" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=E&Down=true" : [ "Alt-E","DELETE:Meta+E" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=F&Down=true" : [ "Alt-F","DELETE:Meta+F" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=G&Down=true" : [ "Alt-G","DELETE:Meta+G" ]
					}
				]
			}
		]
	},
	"version" : "3.5.12"
}

As I sit here thinking about it though, I guess I should put the Meta-C overrides in the Mac section, since that probably conflicts with a bunch of windows key commands like duh…ctrl-C.

Option-C should be working though…don’t understand why its not.

I’ve never edited these specific ones, and I’m watching MasterChef right now…

Do the contexts in the user JSON match the contexts in the factory JSON?
Have you cross-referenced your new shortcuts against the existing shortcuts in both the user JSON and the factory JSON?
Have you double-checked that the shortcuts you’re trying to assign aren’t dead keys (either by reusing combinations that you’ve already deleted, or by programming them via Dorico’s Preferences dialog and then double-checking they work)?

I’ve never edited these specific ones, and I’m watching MasterChef right now…

Please watch your show and chat on this later! :wink:

Do the contexts in the user JSON match the contexts in the factory JSON?

Not sure what you mean. If you’re talking about the names of the commands, see above, yes they do

Have you cross-referenced your new shortcuts against the existing shortcuts in both the user JSON and the factory JSON?

Not sure what you mean here. I already explained that the factory Jason had the PitchDown in the Mac section… what do you mean here?

Have you double-checked that the shortcuts you’re trying to assign aren’t dead keys

Not sure what you are meaning exactly, but before I decided on using these combinations, I tried them all out to see if they did anything else, the only one was the comment function with option-C, which I changed to Shift-Option-C (see my json above)

or by programming them via Dorico’s Preferences dialog and then double-checking they work)?

I am unable to program PitchUP and PitchDown in the preferences dialog as I already explained. If you know a way to do so, I would much prefer to do it that way, but I couldn’t figure out a way to do that.

“Do the contexts match” - I mean that if you want to delete something that’s in the Mac kWhatever context in the factory JSON, you should set up an identical context structure in the user JSON.

“Do the shortcuts work” - I mean there are a load of combinations that simply don’t work. Maybe they’re reserved by the operating system, maybe they’re a bug in the Qt framework on which Dorico is built, maybe they’re a dead key that isn’t recognised as anything until you type another key (imagine typing an accented e by typing Alt-e e; the character doesn’t properly appear until you type the second E).
The only way to check that a combination is valid is by assigning that combination to anything from within Dorico Preferences, then testing that combination. If it works, great; delete the binding and bind to whatever you like within the JSON. If it doesn’t work, don’t lose sleep - find another combination that works instead.

Got it working. I was using a “-” symbol with the modifiers instead of “+” in the json. That’s why not working. I moved both PitchUP and PitchDown into the Mac section in order to avoid conflict with Windows Ctrl-C, Ctrl-A, etc… Seems to work now. Here it is in case anyone is wondering:

key commands_en.json
{
	"common" : {
		"contexts" : [
			
			{
				"context" : "kStepTimeInput",
				"shortcuts" : [
					
					{
						"NoteInput.ShowCommentDialog" : [ "DELETE:Alt+C" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=A&Up=true" : [ "DELETE:Shift+Alt+A" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=B&Up=true" : [ "DELETE:Shift+Alt+B" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=C&Up=true" : [ "DELETE:Shift+Alt+C" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=D&Up=true" : [ "DELETE:Shift+Alt+D" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=E&Up=true" : [ "DELETE:Shift+Alt+E" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=F&Up=true" : [ "DELETE:Shift+Alt+F" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=G&Up=true" : [ "DELETE:Shift+Alt+G" ]
					}
				]
			},
			
			{
				"context" : "kWriteMode",
				"shortcuts" : [
					
					{
						"NoteInput.SetGridResolution?RhythmicGridResolutionValue=kSemibreve" : [ "Meta+Alt+Num+1" ]
					},
					
					{
						"NoteInput.SetGridResolution?RhythmicGridResolutionValue=kCrotchet" : [ "Meta+Alt+Num+3" ]
					},
					
					{
						"NoteInput.SetGridResolution?RhythmicGridResolutionValue=kMinim" : [ "Meta+Alt+Num+2" ]
					},
					
					{
						"NoteInput.SetGridResolution?RhythmicGridResolutionValue=kQuaver" : [ "Meta+Alt+Num+4" ]
					},
					
					{
						"NoteInput.SetGridResolution?RhythmicGridResolutionValue=kSemiquaver" : [ "Meta+Alt+Num+5" ]
					},
					
					{
						"NoteInput.SetGridResolution?RhythmicGridResolutionValue=kDemisemiquaver" : [ "Meta+Alt+Num+6" ]
					},
					
					{
						"NoteInput.SetDotted" : [ "Num+.", "." ]
					},
					
					{
						"NoteInput.NoteValue?LogDuration=kCrotchet" : [ "3", "DELETE:6" ]
					},
					
					{
						"NoteInput.NoteValue?LogDuration=kDemiSemiQuaver" : [ "6", "DELETE:3" ]
					},
					
					{
						"NoteInput.NoteValue?LogDuration=kHemiDemiSemiQuaver" : [ "7", "DELETE:2" ]
					},
					
					{
						"NoteInput.NoteValue?LogDuration=kMinim" : [ "2", "DELETE:7" ]
					},
					
					{
						"NoteInput.NoteValue?LogDuration=kQuaver" : [ "4", "DELETE:5" ]
					},
					
					{
						"NoteInput.NoteValue?LogDuration=kSemiQuaver" : [ "5", "DELETE:4" ]
					},
					
					{
						"NoteInput.NoteValue?LogDuration=kSemibreve" : [ "1", "DELETE:8" ]
					},
					
					{
						"NoteInput.NoteValue?LogDuration=k128Note" : [ "DELETE:1" ]
					},
					
					{
						"NoteInput.NoteValue?LogDuration=kBreve" : [ "DELETE:9" ]
					},
					
					{
						"NoteInput.SetAccidental?Type=kSharp" : [ "Num+-" ]
					},
					
					{
						"NoteInput.SetAccidental?Type=kNatural" : [ "Num+Enter" ]
					},
					
					{
						"NoteInput.SetAccidental?Type=kFlat" : [ "Num++" ]
					},
					
					{
						"NoteInput.Tie" : [ "Num+0", "T" ]
					}
				]
			},
			
			{
				"context" : "kMusicEditable",
				"shortcuts" : [
					
					{
						"NoteInput.ShowCommentDialog" : [ "Alt+Shift+C" ]
					}
				]
			}
		]
	},
	"delta" : "true",
	"mac" : {
		"contexts" : [
			
			{
				"context" : "kStepTimeInput",
				"shortcuts" : [
					
					{
						"NoteInput.Pitch?Pitch=A&Down=true" : [ "Alt+A", "DELETE:Meta+A" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=B&Down=true" : [ "Alt+B", "DELETE:Meta+B" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=C&Down=true" : [ "Alt+C", "DELETE:Meta+C" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=D&Down=true" : [ "Alt+D", "DELETE:Meta+D" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=E&Down=true" : [ "Alt+E", "DELETE:Meta+E" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=F&Down=true" : [ "Alt+F", "DELETE:Meta+F" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=G&Down=true" : [ "Alt+G", "DELETE:Meta+G" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=A&Up=true" : [ "Meta+A" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=B&Up=true" : [ "Meta+B" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=C&Up=true" : [ "Meta+C" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=D&Up=true" : [ "Meta+D" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=E&Up=true" : [ "Meta+E" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=F&Up=true" : [ "Meta+F" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=G&Up=true" : [ "Meta+G" ]
					}
				]
			}
		]
	},
	"version" : "3.5.12"
}

I can tell you already that just these couple of key remapping is making me at least 3x faster then yesterday…which isn’t saying much, yesterday I was going slow as molasses, but I think with a little practice I can get even faster then this…

I think it it sometimes makes sense to use midi keyboard and sometimes not. I like that I can quickly jump to pitch-first mode to find some note or chord…and flip back to duration mode after that, which I think is really faster. but it just kind of depends. If I were going to enter a long run of 16th notes, for example, I’d in duration-first mode, select 16th, then play the run on the keyboard…wala…done. That’s way faster then pitch first.

But anyway, still figuring out when to use which tricks at what moments, but I can see the light at the end of tunnel.

2 Likes

I’ve been missing precisely this method of entry too. There really is no beating it. I tried to make it work with my left pinky on alt (right-alt, that is) with forefingers on arrows and right hand on numpad for note values; just didn’t quite cut it. But Leo’s suggestion does look tempting indeed.

If you just want to try it out,

delete the ARROW key commands from “Move Up”, “Move Down”, “Navigate Up”, “Navigate Down”. then add the arrows to “Raise Pitch By Step” and “Lower Pitch by Step”.

alight, now go to NoteEntry mode, enable pitch-first mode. Hit any pitch to get started. After that you should be able to just use the up/down to adjust the pitch followed by a duration key to lock it in. Just like the finale video above.

I actually like this it will come in handy, so thanks for the idea… I’m keeping it installed this way, along with my other changes to duration keypads, etc.

Based on Mac…

Key Function
CMD+up Move cursor Up next stave
CMD+down Move cursor Down next stave
ALT+CMD+up Move Up to Top stave
ALT+CMD+down Move Down to Bottom stave
UP move note up
DOWN move note down
ALT+UP move note up one octave
ALT+DOWN move note down one octave
SHIFT+ALT+UP move note up chromatic
SHIFT+ALT+DOWN move note down chromatic

It works quite well. The only thing that is maybe a bit weird is that if you are used to using up/down to move the cursor, then you may start accidentally moving notes a lot until you get used to using CMD+up instead of UP for that. Left/Right don’t move notes, they navigate notes. So its inconsistent for Up/Down to move notes…but I think this is a worthwhile compromise…because actually now its super dead simple to move notes!

Here’s my whole json file in case its helpful for anyone as a reference, you may or may not want some of the other things in it:

keycommands_en.json
{
	"common" : {
		"contexts" : [
			
			{
				"context" : "kStepTimeInput",
				"shortcuts" : [
					
					{
						"NoteInput.ShowCommentDialog" : [ "DELETE:Alt+C" ]
					},
					
					{
						"NoteInput.MoveDown" : [ "Ctrl+Num+Down", "DELETE:Down", "DELETE:Num+Down" ]
					},
					
					{
						"NoteInput.MoveUp" : [ "Ctrl+Num+Up", "DELETE:Up", "DELETE:Num+Up" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=A&Up=true" : [ "DELETE:Shift+Alt+A" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=B&Up=true" : [ "DELETE:Shift+Alt+B" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=C&Up=true" : [ "DELETE:Shift+Alt+C" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=D&Up=true" : [ "DELETE:Shift+Alt+D" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=E&Up=true" : [ "DELETE:Shift+Alt+E" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=F&Up=true" : [ "DELETE:Shift+Alt+F" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=G&Up=true" : [ "DELETE:Shift+Alt+G" ]
					}
				]
			},
			
			{
				"context" : "kWriteMode",
				"shortcuts" : [
					
					{
						"NoteInput.SetGridResolution?RhythmicGridResolutionValue=kHemiDemisemiquaver" : [ "Meta+Alt+Num+1" ]
					},
					{
						"NoteInput.SetGridResolution?RhythmicGridResolutionValue=kDemisemiquaver" : [ "Meta+Alt+Num+2" ]
					},
					{
						"NoteInput.SetGridResolution?RhythmicGridResolutionValue=kSemiquaver" : [ "Meta+Alt+Num+3" ]
					},
					{
						"NoteInput.SetGridResolution?RhythmicGridResolutionValue=kQuaver" : [ "Meta+Alt+Num+4" ]
					},
					{
						"NoteInput.SetGridResolution?RhythmicGridResolutionValue=kCrotchet" : [ "Meta+Alt+Num+5" ]
					},
					{
						"NoteInput.SetGridResolution?RhythmicGridResolutionValue=kMinim" : [ "Meta+Alt+Num+6" ]
					},
					{
						"NoteInput.SetGridResolution?RhythmicGridResolutionValue=kSemibreve" : [ "Meta+Alt+Num+7" ]
					},
					
					
					
					{
						"NoteInput.SetDotted" : [ "Num+.", "." ]
					},
					
					{
						"NoteInput.Tie" : [ "Num+0", "T" ]
					},
					



					{
						"NoteInput.NoteValue?LogDuration=kHemiDemiSemiQuaver" : [ "1", "DELETE:2" ]
					},
					{
						"NoteInput.NoteValue?LogDuration=kDemiSemiQuaver" : [ "2", "DELETE:3" ]
					},
					{
						"NoteInput.NoteValue?LogDuration=kSemiQuaver" : [ "3", "DELETE:4" ]
					},
					{
						"NoteInput.NoteValue?LogDuration=kQuaver" : [ "4", "DELETE:5" ]
					},
					{
						"NoteInput.NoteValue?LogDuration=kCrotchet" : [ "5", "DELETE:6" ]
					},
					{
						"NoteInput.NoteValue?LogDuration=kMinim" : [ "6", "DELETE:7" ]
					},
					{
						"NoteInput.NoteValue?LogDuration=kSemibreve" : [ "7", "DELETE:8" ]
					},
					
					
					{
						"NoteInput.NoteValue?LogDuration=k128Note" : [ "DELETE:1" ]
					},
					{
						"NoteInput.NoteValue?LogDuration=kBreve" : [ "DELETE:9" ]
					},
					


					{
						"NoteInput.SetAccidental?Type=kSharp" : [ "Num+-" ]
					},
					
					{
						"NoteInput.SetAccidental?Type=kNatural" : [ "Num+Enter" ]
					},
					{
						"NoteInput.SetAccidental?Type=kFlat" : [ "Num++" ]
					},
					

					{
						"NoteInput.MoveDownBottom" : [ "Meta+Ctrl+Num+Down", "DELETE:Ctrl+Down", "DELETE:Ctrl+Num+Down" ]
					},
					{
						"NoteInput.MoveUpTop" : [ "Meta+Ctrl+Num+Up", "DELETE:Ctrl+Up", "DELETE:Ctrl+Num+Up" ]
					}
				]
			},
			
			{
				"context" : "kMusicEditable",
				"shortcuts" : [
					
					{
						"NoteInput.ShowCommentDialog" : [ "Alt+Shift+C" ]
					},
					
					{
						"EventEdit.NavigateUp" : [ "Ctrl+Num+Up", "DELETE:Up", "DELETE:Num+Up" ]
					},
					
					{
						"EventEdit.NavigateDown" : [ "Ctrl+Num+Down", "DELETE:Down", "DELETE:Num+Down" ]
					},
					
					{
						"EventEdit.NavigateUpNextStave" : [ "Meta+Ctrl+Num+Up", "DELETE:Ctrl+Up", "DELETE:Num+Ctrl+Up" ]
					},
					
					{
						"EventEdit.NavigateDownNextStave" : [ "Meta+Ctrl+Num+Down", "DELETE:Ctrl+Down", "DELETE:Num+Ctrl+Down" ]
					},
					
					{
						"NoteEdit.PitchDown" : [ "Num+Down", "DELETE:Alt+Down", "DELETE:Alt+Num+Down" ]
					},
					
					{
						"NoteEdit.PitchUp" : [ "Num+Up", "DELETE:Alt+Up", "DELETE:Alt+Num+Up" ]
					},
					
					{
						"NoteEdit.PitchUpOctave" : [ "Alt+Num+Up", "DELETE:Ctrl+Alt+Up", "DELETE:Ctrl+Alt+Num+Up" ]
					},
					
					{
						"NoteEdit.PitchDownOctave" : [ "Alt+Num+Down", "DELETE:Ctrl+Alt+Down", "DELETE:Ctrl+Alt+Num+Down" ]
					}
				]
			}
		]
	},
	"delta" : "true",
	"mac" : {
		"contexts" : [
			
			{
				"context" : "kStepTimeInput",
				"shortcuts" : [
					
					{
						"NoteInput.Pitch?Pitch=A&Down=true" : [ "Alt+A", "DELETE:Meta+A" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=B&Down=true" : [ "Alt+B", "DELETE:Meta+B" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=C&Down=true" : [ "Alt+C", "DELETE:Meta+C" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=D&Down=true" : [ "Alt+D", "DELETE:Meta+D" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=E&Down=true" : [ "Alt+E", "DELETE:Meta+E" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=F&Down=true" : [ "Alt+F", "DELETE:Meta+F" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=G&Down=true" : [ "Alt+G", "DELETE:Meta+G" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=A&Up=true" : [ "Meta+A" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=B&Up=true" : [ "Meta+B" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=C&Up=true" : [ "Meta+C" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=D&Up=true" : [ "Meta+D" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=E&Up=true" : [ "Meta+E" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=F&Up=true" : [ "Meta+F" ]
					},
					
					{
						"NoteInput.Pitch?Pitch=G&Up=true" : [ "Meta+G" ]
					}
				]
			}
		]
	},
	"version" : "3.5.12"
}

I presume that by Alt/Option key you mean what is called on my German keyboard Alt Gr. (aka Alternate Graphic). As far as I can determine by experiment, this only enables the typing of about a dozen extra characters: ² ³ { [ ] } \ @ € ~ | , which might leave the rest of possible combinations free for use.

In days of simpler operating systems like CP/M it was possible to write software that would intercept any keystroke and divert it to another use. In this way, when using EMACS I was able to define the keypad numbers as navigators “go to end of paragraph”, “go to previous screen”, etc, by means of a modifier that toggled between the numbers and these definitions. This made moving about in the text very much faster. Obviously, modern operating systems are more involved, as the JSON files show, but keyboards havent changed much in the past 40 years: they basically send out a number that is coded according to the position of the key on the board, and this is then intercepted at a low level by the software and interpreted according to location and required function.
David

No, I meant the left Alt key. US (Windows) keyboard layouts don’t differentiate between the two Alt keys; they both do the same thing.

hmm yes, some sort of rumpty-tumpty-tum feature?

Odd how brains work! the name of the pitch just pops straight into my head - not sure I could deal with the extra key presses but fair play to you! The biggest issue for me in QWERTY input is octave transfer - I do like the idea of mapping +/- to octaves that might help me - at the moment pressing alt-command-up arrow after input is hugely cumbersome.

Hidden (to me) on the Quick Reference Card, underneath the keypad on the front page, is the information that Alt+Shift+A-G will produce the note an octave higher than Dorico expects it to be. Ctl+Alt+A-G gives the octave below.

1 Like

I am trying to get used to the number pad for durations, I find that the fact that a 1/2 note is not in the same row as a 1/4 note is a distraction to me. More than that, the need to move to the full stop for a dot of augmentation breaks the rhythm of the work. I am wondering whether interchanging the F-keys and the keypad keys might 4 solve the first problem – just wondering!

On the other hand, a dedicated non QWERTZ keyboard for Dorico might be the best solution. Does anyone make such a thing?

David

You could use Metagrid on an iPad as a dedicated input device, configured to whatever you want.

I can’t remember if Dorico uses the numpad dot for augmentation or not, – if not, then I customized that. I regularly have to type breves and semiquavers, so different rows for different notes is inevitable.