4 ms·
For anyone using c++, my declarative system has some amount of support for clap: https://github.com/celtera/avendish https://github.com/celtera/avendish / https
by jcelerier 4y ago
For anyone using c++, my declarative system has some amount of support for clap: https://github.com/celtera/avendish https://github.com/celtera/avendish / https://celtera.github.io/avendish/ https://celtera.github.io/avendish/
But unlike clap, targetting this also gives direct access to a few other environments, namely Max, Pd, ossia score, with the list hopefully growing.
Here is an example minimal plugin : https://github.com/celtera/avendish/blob/main/examples/Raw/Minimal.hpp https://github.com/celtera/avendish/blob/main/examples/Raw/M...
Note that unlike pretty much every other c/c++ plugin API, the plugin code does not need to include any header, everything is done through reflection of struct members at compile-time. This means that it's dead easy to port plugins to e.g. microcontrollers.
Here's a per-sample noise generator which uses a small library of pre-made ports: https://github.com/celtera/avendish/blob/main/examples/Helpers/Noise.hpp https://github.com/celtera/avendish/blob/main/examples/Helpe...
And a very naive buffer-based audio filter : https://github.com/celtera/avendish/blob/main/examples/Helpers/Lowpass.hpp https://github.com/celtera/avendish/blob/main/examples/Helpe...
UI is supported without relying on a specific UI library, only on a canvas painter concept which can then target Qt, NanoVG, and others to come: https://github.com/celtera/avendish/blob/main/examples/Helpers/FFTDisplay.hpp https://github.com/celtera/avendish/blob/main/examples/Helpe...
It does not only support audio but also has an "API-free" gpu abstraction since it's tailored for media arts in general:
https://github.com/celtera/avendish/blob/main/examples/Gpu/DrawRaw.hpp https://github.com/celtera/avendish/blob/main/examples/Gpu/D...
since it binds directly to audio APIs at compile time, it has pretty much zero code size in itself, the smallest plugin it generates for VST2 is around 7kb IIRC