VSTPlugin v0.2.0 final release

Hi, I’m happy to announce the final release of VSTPlugin v0.2.0. You can download binaries here: https://git.iem.at/pd/vstplugin/-/releases

If possible, please report bugs at https://git.iem.at/pd/vstplugin/issues

Otherwise just leave them here in the comments.




  • VST2 shell plugin support (e.g. “Waves”, “Blue Ripple Sound”)
  • (experimental) VST3 support including sample accurate automation and auxiliary inputs/outputs for side-chaining
  • soft-bypass
  • potential Cocoa GUI editor for Supercollider
  • faster search/probe (multi-processing)
  • save search/probe results in a cache file to speed up subsequent searches
  • VSTPluginController: ‘set’, ‘map’ and ‘get’ now also accept parameter names instead of indices.
  • VSTPlugin.ar now accepts an ‘info’ argument, which allows ‘params’ to contain parameter names instead of indices. You can also omit the ‘path’ argument in ‘VSTPluginController.open’.
  • *Msg versions for all relevant methods to enable NRT synthesis and bundling.
  • You don’t have to wait anymore between creating a Synth and calling ‘open’, e.g.: VSTPluginController(Synth(\vst)).open("myPlugin");
  • the preset methods (‘readPrograms’, ‘writePrograms’, etc.) now have an ‘async’ parameter (like ‘reset’ and ‘vendorMethod’). By default, they are executed on the RT thread (except for the file IO). If ‘async’ is ‘true’, they are safely executed on the NRT thread (the plugin is suspended in the meantime).
  • the OSC interface is now stable and documented

bug fixes

  • fix broken GUI editor with certain (older) plugins
  • fixed possible crasher bugs when the UGen is freed while asynchronous commands are still running


  • use CMake for the whole project (not only for the SuperCollider part)
  • deprecated ‘parameterNames’ and ‘parameterLabels’ in plugin info. The info has now a member called ‘parameters’ which is an Array of parameter info Events (with ‘name’ and ‘label’ being the only members so far).
  • ‘set’ now always executes on the RT thread.
  • the ‘info’ argument for ‘VSTPluginControler.open’ has been renamed to ‘verbose’.
  • many internal changes to the OSC interface, UGen arguments and plugin info file structure.

internal changes

  • use .ini like syntax for plugin info
  • hard-bypass prefers the plugin’s bypass method
  • single event loop shared by all plugins
1 Like