This plugin uses the “Dorico API,” which enables direct communication between programs. It does not rely on MIDI or key commands. While versatile, the Dorico API is complex and lacks comprehensive documentation in some areas. It’s unclear which parts of Dorico can be controlled remotely through the API, but I have discovered that tracks (such as mute and solo) cannot be controlled using the API.
Currently, the most practical way I’ve found to define remote control commands is to mimic the actions in Dorico. I am not sure this will produce a usable plugin; I need feedback from experienced Dorico users (which I lack) about how feasible this plugin is.
When you perform an action in Dorico, it generates an internal command, executes it, and logs that command. The plugin reads this log and displays all the commands it finds in a dropdown menu, allowing you to select commands and copy them to a command list area. (The plugin checks the log file every 5 seconds, so there might be a short delay before new commands appear in the plugin.)
When you press the button, all commands in the command list are sent to Dorico, one at a time. You can edit the commands as you like and write your own commands if you know what they look like.
If things are moving too quickly (for Dorico), you can insert a “Wait” command between Dorico commands, just like “Wait.1000” (in milliseconds).
The first time the plugin connects to Dorico, you’ll see a popup in Dorico asking you to allow the remote connection. This only happens the first time.
Currently, there is no feedback from Dorico to the plugin other than acknowledgments of sent commands. An “OK” response from Dorico indicates that it has received and understood the command; it does not mean the command was successfully executed. For example, you can send an “Open Project” command with a file path that doesn’t exist, and Dorico will reply “OK” since the command itself is correct.
You can download the plugin from the latest post in the “Discussions” category. Unzip the .streamDeckPlugin file and “execute” it; this will install the plugin to Stream Deck. I’d appreciate any feedback, even if it is “this is useless” (which I kind of expect…)