Changes to plugins for SDK v1.0

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.

This is now merged in as v1.0!

So if you update your firmware to v1.0.x, then you’ll also need to update your plugin SDK to the tagged v1.0.0

I merged in the support for text screens, and you can see it in the Braids clone.

1 Like