Skip to content

Extensions overview

Igor edited this page Aug 15, 2024 · 2 revisions

Extensions

In progress

Extensions are a way to extend the basic functionality and add new features to the application.

The application has built-in extensions, we can find them at Home - Plugins. We can also install third-party extensions.

TODO how install third-party

Before the extension will work, we need to enable it. This can be done at Home - Plugins. Enabled extensions will be available for calling from the Menu - Plugins.

Development

Now we have two types of extensions:

  • forms are extensions that have a user interface through which we can control the extension logic.
  • macros are extensions without a user interface, having only a script that performs some actions (usually some kind of automation)

There is also a special type - complex. This is an extension that can consist of several forms, or a form and macros.

Each extension consists of a mainfest.json file that describes the extension - its identifier, type, title, icon, scripts, config and etc. Qml is used to create forms interfaces, and javascript is used to write macros scripts. API is provided to access the application, and API UI is provided UI controls.

Testing

Translation

Compilation

  1. Set up developer environment
  2. Install Qt and Qt Creator
  3. Get MuseScore's source code
  4. Install dependencies
  5. Compile on the command line
  6. Compile in Qt Creator

Beyond compiling

  1. Find your way around the code
  2. Submit a Pull Request
  3. Fix the CI checks

Misc. development

Architecture general

Audio

Engraving

Extensions

Google Summer of Code

References

Clone this wiki locally