Request: Shift-S System Break in Write Mode

Is there any chance that the Shift-S shortcut could be exposed to write mode?

No, because it stops a slur.

Ah yes. I input slurs by selecting them, so haven’t used that.
I’ll alter the request to ‘Is there any chance that a shortcut for System Break could be exposed to write mode?’

But he could presumably re-assign this in key commands if he uses his desired functionality more often…
D.D.

I raised this one a year or more ago. I’ve now got so used to Cmd-3, Shift-S, Cmd-2 that it’s lightning quick and second nature to me now.

If I recall correctly, I think that its place in Engrave is because altering the way that things are written is, essentially, what the Engrave mode does. When writing and formatting are sequential - i.e. writing first, formatting second - then that makes perfect sense and maybe that’s a good way of working anyway. But if you’re constantly switching between Write Mode and Engrave mode then it becomes a pain. It does test the perfectionist in you!! Personally, I can look only so many times at something I know I’m going to have to move later before I lose patience and just do it.

This raises the whole issue of mode-specific commands. I could see the team being hesitant to conflate these sorts of things, since they blur the lines of mode function. But I agree that there are several functions I’d like to access from write mode (I write in galley view, so this particular one doesn’t affect me, but there are others).

There are complex technical reasons for why it’s not currently easily possible for us to add system/frame break commands to write mode. In a nutshell there is a very different selection model in Write and Engrave mode. In write mode, offsets into notes and other objects (eg for the Nth note of a tie) and music frame chain information isn’t present, so if you were to try to create a break at that point, it isn’t aware of which frame you want to break. This is something that comes up a lot in the office and we hope to look at this in the future.

I think the team’s approach is right - this is one of those areas where users need to accept that the way Dorico is set up requires a particular way of working. The demarcation between the various modes is, for the most part, incredibly helpful.

Ah - you of course want to do it in Write Mode. Or perhaps a program like Keyboard Maestro could create a macro to execute all of the above 3 commands with 1 keystroke?

  • D.D.

Thanks. I have thought about macros but I realised there would probably be only a few instances where I’d use them (Shift-S being the most obvious one). They couldn’t - for example - move things around on screen or insert new frames etc. Haven’t given up on the idea entirely, though… :wink:

It seems to me that switch mode, shift-S, switch mode is inefficient every few bars. Leaving the formatting until later is not an option I can live with. I was actually surprised when Dorico came out that it wasn’t modeless, as that seemed to be the direction of travel of software generally. Strict modes would be fine if we all agreed on what was part of each process. To me system breaks are integral to writing as they structure the music (for commercial stuff).
Paul, maybe it could work only in the case that a barline was selected or something like that? This is one of the few areas where Dorico is a lot more fiddly and slow than Finale.

It would be a bit of a hack, but in fact I think you could do this today, with some compromise. We exposed the System Break and Frame Break commands in Elements, even though that flavour of Dorico doesn’t have Engrave mode. In Elements, these commands live in the Edit menu but don’t have shortcuts (because Shift+S stops a slur, and Shift+F opens the fingering popover in Write mode), but I think if you do some surgery on the keycommands_en.json file you can assign shortcuts that will make the commands work in Write mode.

Basically, if you find these lines:

					{
						"Edit.CreateFrameBreak": [ "Shift+F" ]
					},
					{
						"Edit.CreateSystemBreak": [ "Shift+S" ]
					}

in the “kEngraveMode” context and put them into the “kMusicEditable” context, and assign shortcuts that don’t conflict with any other shortcut in that mode, I think they’ll work. I suggest you check your JSON file using a linter before you try to load Dorico again, as it’s easy to mess up JSON syntax. The one I use is this one.

As for the compromise, the reason these commands are Engrave-mode only in Dorico Pro is because, as Paul says, the way selection works is different between Engrave and Write modes: in Write mode, the selection doesn’t (cannot) differentiate between different music frame chains, and breaks have to be created specifically for a particular frame chain. So when the command is used in Write mode, Dorico has to try to guess which frame chain it should put the break in. Normally this will work OK, but in layouts with custom frame chains or unusual layouts it just won’t work. This is acceptable in Elements, because it’s impossible to create those kinds of layouts in Elements.

Thank you so much Daniel, this is very useful!

Wow! Thank you Daniel! That works perfectly. I’ll be careful not to use it with custom frame chains. The kind of work that this is useful for is not the kind to do anything clever with frame chains.
I’m staggered!

Daniel, is this safe for 2.1, which seems to have disabled it?

Yes, it will work fine in 2.1 as well.

Thank you.

keycommands_en.json.png
I have many keycommands.json files (see picture)
And yet another with my own shortcuts in a different file;
My keycommands are in the default language;

I have followed the instructions Daniel, but now the keyboard is not working anymore;
What did I do wrong?

I have placed {
“Edit.CreateFrameBreak”: [ “Shift+Ctrl+Alt+F” ]
},
{
“Edit.CreateSystemBreak”: [ “Shift+Ctrl+Alt+S” ]
}
in the “kMusicEditable”" context;
and deleted {
“Edit.CreateFrameBreak”: [ “Shift+F” ]
},
{
“Edit.CreateSystemBreak”: [ “Shift+S” ]
}
in the “kEngraveMode” context
keycommands_en.zip (3.5 KB)

It works now! I forgot a comma.
Thank you!

Can’t get this to work with Elements 2.2.20. I added the above to the json file, and then looked at the key commands and actually had the same shortcut listed twice (shift+S twice for system break, shift+F twice for frame break) so it seems this is already supposed to be enabled by default? And indeed even after removing my changes, these still show as the default shortcuts (just once).

However, the shortcuts don’t actually work. I even tried removing the same shortcuts for “Stop Slur” and “Create Fingerings”, but that didn’t help.

Inserting the breaks from within the Edit menu works fine, so it seems it’s an issue with the key commands, not with the breaks themselves.

Thanks,
Dan