Hello!
I’m working on some changes to the SDK and plugin format, which I’m calling SDK v0.15.0 but it will be bumped to SDK v1.0. This should be merged in today or tomorrow
- Plugins are distributed as a tarball with the extension
.mmplugin
.
The SDK automatically creates this tarball. This should make it easier to distribute.
The .mmplugin
file contains the same things as the prior format, plus:
- The
plugin.json
file that Rack uses. You have to specify the path to this in the plugin CMakeLists file. - A file named
SDK-x.x.x
which is automatically generated by cmake. This is used for checking the plugin’s SDK version before attempting to load it.
Regarding the plugin.json
file, I’m just grabbing the slug and “name” (display name) of the brand only. In the near future we’ll scan all the modules in the json file, too (tags, display names, etc)
Another new thing is that we now officially support native plugins! MetaModule has it’s own audio plugin format called CoreProcessor. If someone is designing a plugin for MetaModule from scratch or from some other project that’s not a VCV Rack plugin, then this might be the best way to go. I made an example plugin in the metamodule-plugin-examples
repo to demonstrate this.
Post-v1.0:
- I have a proof-of-concept working to support text-only “screen” element. That is, it will dynamically re-draws text in certain elements. The font and color can be customized. In order for a VCV-ported plugin to take advantage of this, it would need a few lines of code added somewhere. Details later…
- I’d like to also zip the
.mmplugin
tarball. In order to be backwards compatible firmware will support zipped and non-zipped plugins.