How can I gain access to Dorico's Remote API?

Hello all,

apologies for my newbie question, but it seems I’m unable to find a straightforward answer on the forum. Is it possible to get to Dorico’s Remote API? Is it even accesible for an average user?
Many thanks in advance for any hints on that.

Welcome to the forum, Alex. Drop me an email at d dot spreadbury at steinberg dot de and I’ll provide you with the relevant material. If you’ve already got some software development experience, you shouldn’t find it too hard to get up and running.

1 Like

That’s superb, thank you so much, Daniel!

I know this is an old post, but if you’re willing to provide a list of available api/remote control commands, I’m hoping to add a button or two to NYC Music Services’ superb Notation Express plugin… I’ll email you this as well, and thanks in advance!

anyone know if there is a way to drive the remote API using Keyboard Maestro in some way? I am guessing probably not for now, but Keyboard Maestro does have a lot of capabilities to extend into things, but I wonder is the Remote API only available through C/C++/C# or what current environments can use it? Presumably its a web based so any language that can drive web sockets?

1 Like

Following…

Dorico’s remote control API uses websockets, so anything that can drive websockets can communicate with Dorico.

I read somewhere that the remote control API requires a handshaking protocol and that may be where KM will not be able to go there, I will look into it later. You sent me the link to your SDK docs today thank you, I will investigate it at some point.

Just thinking out loud here about Keyboard Maestro access to the Remote API…it may be neccessary to run some kind of small local proxy deamon which can do the handshaking required with dorico…and then allowing another client like Keyboard Maestro to connect to it and issue commands to dorico. Maybe via OSC or something i don’t know exactly right now, i will consider some things, but in any case, I will check this all out later. Daniel thanks again for the link to SDK

I’ve written a .NET library in C# for communicating with the Remote API: NuGet Package, Source Code. If you’re not using .NET it should be pretty straightforward to port the relevant bits of code to whatever language/framework you’re using.

5 Likes

so I played around today with Dorico’s websocket api, did some handshaking using javascript from node. pretty straight forward to establish connection and issue a few commands. it will take me quite some time to understand what all the commands are exactly. I am slowly figuring out that they closely resemble what the script recorder records…so I can probably figure out some things that way. Also not 100% clear about when and why Dorico is sending status and selection change messages back to the Node client…so there is a data flow protocol there I am still learning to understand. But seems pretty straight forward.

Regardingly Keyboard Maestro, i think it could be done, but I think I will personally not be following that path. KM does have the capability to tap into Javacript automation system of MacOS, which in theory provides a way to write to files and save properties, such as the token. It would have to disconnect and reconnect to dorico for each command though, which would be slow. I don’t think there is a way for KM to keep that connection to dorico connected and alive in all the time without blocking. So…guess KM will have to be happy with sending key commands to dorico, which is fine too. Maybe someone will have a better idea about KM extensibility. I am not a regular on their forum.

I am probably gonna just buy Notation express now since they ahve already worked out completely the SD plugin and all the various commands and include a bunch of keys programmed with presumably the underlying commands for Dorico embedded in there in a way that could easily be copied and turned into longer macros as I see fit. not entirely sure about that, but that is just my guess.

following up, I did purchase StreamDeck Mobile lifetime and Notation Expression classic to try it out, I was mainly interested in the SD plugin which accessed Dorico’s remote APi. After quickly getting into it its obvious to me its not what i need. I have requested refund from both, (update - Notation Central will not refund for this product, StreamDeck will likely refund as it is through the Apple Store, its in progress)

Regarding the use of Notation Express’ SD plugin, I was also disappointed to find that its a completely closed black box implementation, probably coded in C++ with all Dorico API stuff completely hard coded inside. So you get some set of pre-canned commands that do whatever they do…and the included profiles include buttons with icons and labels…presumably the label of each button looks up a hard coded command inside their plugin that does something based on the label you use for each button. However there is little or no ability to then build upon that for building many of the macros I wanted to do, since its buried inside their black box plugin…we don’t have direct access to the Dorico Remote APi through their plugin. That was actually the main reason I purchased it. I actually don’t care about using most of the included buttons/commands they provide, which essentially mainly just do what I can do directly from my QWERTY keyboard. I was much more interested in building some more complex macros using the Dorico Remote API through their plugin. I don’t see it as being useful generally, its only suitable for using their command buttons.

I might have considered getting XL version later to see if it provides more usefulness but i was rather turned off by their unwillingness to refund, so I doubt I will circle back around to Notation Express at all. I know a lot of people are happy with the StreamDeack and Notation Express, so I am sure it suits some people just fine. it was a wasted $25 experiment for me (they gave me a $5 “courtesy” refund).

I’m not sure what I think about SD in general, I had other problems with it in general I won’t’ go into now, probably related to the mac my dorico mac is temporarily being accessed only via remote access software AnyDesk. I’ll probably fool around with the free version of SD some more to see if I can use it in some way. But more likely I will gravitate towards completely different solution there as well.

SD macro implementation is VERY VERY basic. KeyBoard maestro has a much more robust macro capability. so my next foray if anything would probably be to go back to trying KM or perhaps some other ipad apps. I’m not in a situation to use an actual hardware SD right now, but maybe in the future I will reconsider that.

I still have to get a handle on exactly the messaging flow of dorico’s api…in order to make sure the SD plugin would handle all of that and keep it simple for setting up buttons to do things, so we’ll see… later on I will post here a test javascript script I made that can do the basic handshaking with dorico in case anyone is interested. it was not hard. Understanding the dorico messaging protocol beyond that is what I would need to do next.

sounds like a lot of work though…probably I’ll just go back to using key command sequencing macro out stuff. I wish Steinberg would make a general purpose SD plugin for dorico to access the REMOTE api, it could be very helpful.

4 Likes

Thanks @Dewdman42 for the deep research - I had similar ideas, and you answered many questions I had!

2 Likes

Notation Central will not refund for notation express fwiw. Very disappointing. Last purchase I will make with them. Anyway that’s my report

Here it is a video I did about creating your own custom commands using Streamdeck + Notation Express

3 Likes

I can’t see the video:

**Leigh

That is strange, it is a simple YouTube link maybe it is related with the way it is incorporated in the forum. Please copy the link and open it directly on the browser

Hi, any way of getting the Dorico’s remote API 2025? @dspreadbury mail didnt work

2 Likes

+1 that would be really helpful

Hi there,

I also would like to fiddle with it. Any news about that?