PlugIn Development

Sibelius has its Scripting Language since years, and a lot of us musicians are coders and expected this to be available at least at version 3.0 Now Doric is matured and still there is no way to write custom plugins. The best would be some API Interface, for instance for C++ or Python, so we can develope PlugIns using Juce - not only VST3 PlugIns, but basically anything. An API would be even better than a scripting language imho. Please, please give us a opportunity, as this is the last thing keeping me at Sibelius currently…


I would be curious to know witch function you would wish a plugin would made possible (maybe the first three most important that you think of)?.
(In my fortunately-old Sibelius days I hated plugins: they were poorly written and very cumbersome to use, just my opinion)

1 Like

Without really giving this much thought, two for me would be better cautionary accidental options, and flagging any bars that don’t have the correct number of beats.

Worth reading this topic and see @dspreadbury 's views.

@abeschorner can you give a concrete example of what you desire?

In addition to the Cautionary Accidentals and Incomplete Bars plug-ins I mentioned above, for a third I’d be curious if it would be possible to have a “PreFlight” plug-in that could check to confirm all fonts are correctly installed, no text or music entries fall outside of the frame, highlight collisions, confirm proper page turns, etc. Perhaps the Incomplete Bars finder could be rolled into that as well.

1 Like

There are many plug-ins that would be of great use, as @FredGUnn points out a few of them. I use about 15 daily in Sibelius, mainly for “QA” tasks. I could make a long list but I wait until there is any function in Dorico for it, and then commission work for any programmer on the forum that offers such services.

1 Like

What’s the difference between a plug-in and a script? If a script could check for incomplete bars and missing bits and pieces, wouldn’t that solve the problem just as well?

I’d suggest that if you have to run 15 plug-ins every day, then something is very deficient in the program itself. (Cf. Finale.)

Dorico’s scripting interface has great potential, if it could query the project data for the status of objects (e.g. if pitch == G; if selection is Trill; if property is “showAccidental”, etc).

It wouldn’t be long before a body of scripts could be available that cover a range of uses, which could then be more easily modified by users who may not be abel to program from scratch.

My guess (…) would be that a “real” plugin would come with some sort of user interface, where I can tweak settings easily and get the result shown nicely.

I don’t really know, and am fine with either as long as they can provide some additional functionality. I’m not sure if there would be a difference in what type of information could be visible to a script vs plug-in either. It would be cool if a PreFlight script or plug-in could point out stuff like this that exceeds the frame…

… but I don’t know if that info would even be visible to the script or plug-in.

1 Like

With Plug-in I include scripts. I welcome any enhancement of such functionality.
Dorico does add a lot of built-in rules that Sibelius needs additional steps to verify/check, but Dorico is far from perfect when it comes to QA, batch handling (is there any?), etc. Dorico might have been designed with a special “MO” in mind, but that does not mean it is always the right way, or the preferred “MO” IMHO. I long for the day when clever users can write scripts. Perhaps we can get a library of useful scripts to benefit all.

In my case, I want to annotate notes and export them to an extended MusicXML script as well as. Perhaps I also want to code some tool for them generation, based on a GenerativeAI NN using the annotation (basically that is exactly what I want to do). Or for automatic harmonic analysis or chording. You name it…
And I definitely do not want my own ideas to wait in some priority lane from the Dorico coding team, where most of them will probably be never implemented. I want the chance to do that myself. Fast.

What is this?

There already are some modest libraries for general use available. I know, because I wrote them – see here, here and here. The fundamental limitations mentioned above do apply, but scripting is a thing in Dorico, and has been since version 1.


MusicXML is a standard XML dialect for music, which I want to extend for my annotations.

Aren’t you going to have to submit feature changes to MusicXML to the responsible committee? Otherwise it’s just your private language, not much use for interchange. Unless I misunderstand you completely.

Here is an example that a plug-in might help with:

Starting with a selected note I built a script to 1) switch to engrave mode, 2) enter guitar RH finger i, 3) add an up-arrowhead articulation for rasgueado notation, 4) switch to engrave mode, 5) move the i to lie above the stem (it would be great if this also appeared on the tab but it doesn’t seem to) and 5) move the the up arrow to be centered laterally on the stem in the music notation staff below the top and any beams, 6) move the the up arrow to be centered laterally on the stem in the tablature staff, 7) return to write mode.

It does not seem to work at all, the i is missing and the up-arrows have not been moved. The word Script brings no responses in the on-line help. A plug-in would be nice. Or adding options to place fingering above stems and other items inside stems (avoiding notes and beams including trills), in both music and tab notation or perhaps there is another way…