Prerequisites
Set up a development build first.
Choosing the plug-in API to use
ossia score provides two plug-in APIs.
Avendish API
Use Avendish for audio, MIDI, control, video and GPU processors. A processor can fit in a single C++ header and can also target other hosts, such as VST.
Read the score avendish plug-in documentation to get started.
Avendish also covers dynamic ports, file/folder controls, GPU processing and custom control layouts. Some interfaces, notably scene ports, are specific to score’s binding: consult the score integration guide and upstream binding-support notes before targeting another host.
Score API
The score API extends the editor, processes, protocols and other application services. Most of score itself uses this API; see the built-in plug-ins.
The add-on tutorial and its documentation introduce the API. Start a project with one of the GitHub templates and follow its README.
Loading and distributing add-ons
Compile an add-on with score, build it separately against the matching score build’s exported headers, or let score’s JIT compiler load its source at run time.
The ossia SDK (OSSIA_SDK) supplies compilers and dependencies for building score. The score SDK supplies the headers used by run-time JIT add-ons; external CMake builds access those exported headers through SCORE_SDK.
Install the package and manifest in the configured Packages directory. Restart after rebuilding a binary; on Windows, close score before replacing a loaded DLL. Binary packages must match the application build, operating system, architecture and compiler ABI.
Official Windows builds use llvm-mingw. MSYS2 CLANG64 is the development alternative. MSVC is supported for exceptional Qt WebEngine builds, not official releases.
See Avendish add-ons for SDK setup and the --compile-node and --compile-addon commands.