Plugins vs Extensions

• Jun 10, 2019 - 05:44

Hi,
I am reviewing the ability extending/adding optional functionality to MuseScore 3.1 and was wanting to know what is the difference between plugins and extensions? I can't seem to find any information on extension development and the difference between each.


Comments

A plugin is code you can write and install to perform tasks on user command. So, for instance, you could write a plugin that goes through all the notes in a score and, say, changing sforzato accents to marcato. Actually I have no idea if that is specifically possible, but that's the kind of thing a plugin can do - provide a new command a user can execute from a menu.

An extension does not involve code. It is just a set of palettes, templates, soundfonts, instrument definitions, and user interface settings (toolbar configuration, etc) that can be easily installed together. Palettes and user interface settings can be collected into "Workspaces" (like the Basic and Advanced workspaces that come with MuseScore), so you could have different workspaces for Basic Drum, Intermediate Drum, etc, each containing different palettes and toolbars.

There is no specific documentation I am aware of on creating extensions, and I'm not sure how "supported" the interface is, but all of the things I mentioned are things MuseScore supports individually, and the extension is basically just a ZIP file containing them all. If you open the MDL extension in a ZIP program, you'll see pretty much everything there is to know about them. So mostly, you focus on actually creating the templates, palettes, etc, then you worry about zipping them up.

"Official" extensions are provided by MuseScore as downloads that can be installed Help / Resource Manager, but it's possible to create your own that you install yourself by just dragging and dropping the extension fie into MuseScore.

In reply to by Marc Sabatella

Not offhand, but I also can't name more than a handful that use the term in any other way, nor can I think of any that do define something like our facility to see what term they use (I'm not aware of any using the terms you invented). And, some day it's conceivable the extension mechanism would include plugins as well, and then it would be functionally identical to other programs I can think of. So I can't really see how this slight limitation can be considered 'abuse"?

In reply to by Marc Sabatella

When I used the term many years ago in a commercial product of which i was the designer/implementor, the term meant user-written code, in whatever appropriate language, that would be executed in a constrained environment, extending the product to do what it couldn't do before (e.g., new commands), not so different from "plugins" here, not merely a saved set of settings.

In reply to by [DELETED] 1831606

To be clear: we are not the only ones who use the term extension to include things like collections of templates, palettes, and toolbar settings. In fact, that's pretty much industry standard in 2019, if not in 1989. The only thing that might be unusual - and what I thought you were referring to - was the fact that in our model, plugins are currently excluded from the collection. This may well change, though, as a result of the work being done for GSoC.

In reply to by [DELETED] 1831606

Do any of those programs even have anything like palettes, soundfonts, templates, or customizable user interface components? A better comparison is LibreOffice, which uses the term virtually the same way we do, except that, as I indicated, they don't exclude plugins from consideration, and probably in the near future we won't either. So is it really worth worrying about?

In reply to by Marc Sabatella

Excellent, thanks Marc !

I have been creating my own custom Palettes and adding Symbols to them however how does one assign a specific Symbol to a type for example the "Half Open" symbol as an Articulation symbol?

When i use the symbol it has none of the properties of the other articulation symbols in the library.

The same goes for repeats amongst other ones. (play last 2 bars and play last 4 bars)

Do you still have an unanswered question? Please log in first to post your question.