Awesome
ossia score plug-ins
This add-on provides the groundwork for a stable plug-in API for ossia score.
Unlike most plug-in APIs for multimedia software and APIs such as LV2, VST, PureData or Max objects, ... it has the particularity of not requiring inheritance, filling of pointer functions, etc. In particular, it is possible to write a score plug-in without using any library / header at all, just by defining simple C++ structures. Reflection features of modern C++ are then used to construct the run-time structures from it.
The following blog post: https://ossia.io/posts/reflection/ explains the rationale and the implementation; an example is provided below.
There are multiple examples, which can act as a tutorial of sorts ; the comments in e.g. example 5 expects that you have read examples 1 to 4:
Simple examples
These examples showcase the basic usage of the API for the most common cases of processors found in multimedia systems.
- 1 - Hello World
- 2 - Trivial value generator
- 3 - Trivial value filter
- 4 - Simple audio effect
- 5 - Audio effect with side-chains
- 6 - MIDI Synthesizer
- 7 - Texture Generator
- 8 - Texture Filter
Advanced features
These examples showcase sore more ossia-specific features:
- Sample-accurate control values:
- Dynamic multichannel handling:
- All the GUI controls that can currently be used
Going deeper
- How to write a score plug-in without having any dependency on score:
- How to, instead, use score's data structures directly (which gives slightly better performance at the expense of interoperability and ease-of-use):