Free Stream Deck plugin for Dorico

Dear Dorico friends,

a couple of months ago, I started playing around with Dorico’s Remote Control API because I was just curious about how it works. The first experiments led to a C++ class and a shared library that take care of the communication between an external application and Dorico. To test them, I’ve also implemented two small demo programs allowing the user to send commands, like Edit.ShowAccidental, to Dorico and to show the corresponding JSON responses.

The more useful application based on the shared library is probably the Stream Deck plugin that was also born out of curiosity since I’d never created one before. It currently provides three actions that can be assigned to Stream Deck buttons (Connect/Disconnect, Send Command to Dorico, Send Multiple Commands to Dorico).

However, because I don’t have access to a Mac, the applications and the Stream Deck plugin only work on Windows for now.

So, long story short, if you would like to have a look at this stuff and want to try it out, you can find everything on GitHub (it’s free and Open Source):

  • Doremote: Windows DLL providing the core functionality
  • Doremote Deck: Stream Deck plugin based on the Windows DLL

These are the very first versions and they still might have issues. If you encounter any, I’d really appreciate it if you could let me know. General feedback is also welcome, of course.

Martin

3 Likes

Is this plugin what is required to complete the handshake with the SD? I’m on Mac, but I played around with the Dorico API a while back and could get it to work with API testing software, but could never figure out how to complete the handshake with the Stream Deck.

No, all the WebSocket stuff is managed by the DLL including the handshake. The Stream Deck plugin uses the higher level functions from the DLL to request a connection to Dorico and to send commands. The plugin should transparently handle the connection and can directly be used to populate the Stream Deck with buttons that send commands to Dorico.

However, it should also be possible to do the handshake directly within a Stream Deck plugin using Node.js but I haven’t tried this yet.

1 Like

I had some spare time at the weekend and started to implement a basic version of the plugin that only uses TypeScript and doesn’t rely on native shared libraries. So, in theory, it should also work on macOS. But I don’t know if it works right away on Macs or if it requires some digital signing.

The source code and a pre-built plugin package can be found here.

1 Like

I’m out of town and away from my SD until Tuesday night, but I’ll check it out then. Thanks!

1 Like