A couple suggestions for VST3 hosting flexibility


I’ve now been using the juce VST3 hosting classes for a few months and I’m quite happy with it.
Way more digest than the Steinberg SDK.
I’m just missing a couple accessors to make my life easier:

  • it’s not possible to have hands on the host name which gets reported to a plug-in. The current implementation is always using the module name to provide host name to the plug-ins. Which is not accurate in the case your hosting implementation lays inside a DLL on windows for instance (the plug-in gets the DLL name instead of the Application name). Maybe this could be addressed at the AudioPluginFormat class level (constructor?) to make it consistent across the different plug-in formats (e.g. VSTPluginFormat uses JuceApplicationBase’s name… at the moment)
  • I don’t expect to see all the many super specific Steinberg optional interfaces to be handled in the Juce VST3PluginFormat, it’s normal. Access to the IComponent interface is already great since it covers most interfaces (e.g. if you need to provide IAudioPresentationLatency support) . But, sometimes, you need access to the IEditController interface (e.g. for further parameters info you might need in your automation engine). Since that interface is not necessarily available through the IComponent object, this would take another getPlatformSpecificData() accessors.

Do these make any sense?

Merging Technologies

They both seem like sensible suggestions. I’ll add this to our backlog.

What features of the IEditController are you missing? If I compare the contents of Steinberg’s ParameterInfo struct there’s more or less the same information available from JUCE’s parameter classes.

IEditController lets you retrieve a IUnitInfo interface. And IUnitInfo lets you retrieve the eventual Category String for better organization in an tree-like display for the available controls for automation (e.g. “EQ | Band#1| Freq”). It also allows to identify Bypass (well already available in recent Juce hosting) and Program Change controls.


OK. I’m on holiday for the next couple of weeks, but near the top of my todo list when I get back is to investigate better support for parameter groups, on both the plug-in and host sides. I suspect we’ll find a nicer way of pulling out the desired information. Identifying program change controls will require a little more thought.

1 Like