Why no SDK?

The short answer is: ‘time’. (or the lack thereof)

We had originally hoped to have full-featured scripting within the first release of Dorico, but it became clear that there were a huge number of other demands on the team’s time (some people just insist on having chords, drums, etc…). We did put a bit of the infrastructure in place, which you can still see in the Script menu, though the functionality is currently limited to macros. However, Dorico’s command system is still accessible through it, and some people have done some quite amazing things with the limited API. Search the forum for ‘Lua’ or ‘Scripts’ and you might find some of them. We know how valuable they are to users, and how they help to smooth over some of the gaps of missing functionality.

We do really want to revisit scripting in a future version, but one of the big things we need to do is work out how the API will look, and that is far from trivial. Another annoyance is that the Lua binding library we initially chose seems to have ceased development, so we’ll need to port to a new one. As Rob mentioned, the final API will probably look very different to how it is today, though I imagine that converting existing scripts to work in the new way will be simple. The great thing about Lua is that you can link against all kinds of 3rd party libraries, so you can work in C++ or .Net if you wish.

For some more context, here’s an old thread that shows some of our thinking:

See this article on how a user has implemented a Dorico script to apply slash notation: http://www.scoringnotes.com/tips/applying-slash-notation-dorico-via-lua-script/