How to make a program that hosts compiled plugins

Programs such as the JUCE AudioPluginHost, or PluginDoctor, or any DAW, are able to interact with plugins in ways such as changing their parameters through automation, and using the plugin to process audio. Does JUCE support building a program that hosts plugins?

The Juce AudioPluginHost is itself coded with Juce, so yes.

Some classes you will want to take a look at for the plugin hosting :

  • AudioPluginFormatManager
  • KnownPluginList
  • AudioPluginFormat
  • AudioPluginInstance

(There are probably more that are involved, but that gives some idea)

1 Like

I’m building a Plugin host with JUCE right now. Its perfectly feasible to do it all in JUCE, but I recommend anyone starting out with this, include Tracktion as a dependency in their project, too.

@austrianaudioJV Can you say more about what Tracktion offers here? I’m planning on expanding my app into a host soon but I’m also thinking of ditching Tracktion (for other reasons). It would be really good to know ahead of time if this is a mistake.

1 Like

Its pretty simple to understand the reasoning for using Tracktion once you create an Edit with Waveform, and then can load the Edit into your app with Tracktion framework. This is extremely powerful for development - Edits can be simple or they can be sophisticated, and you can use it as the shell for your plugin hosting requirements.

Tracktion is a lot of the work of plugin hosting and instantiation and session management, already done. You’ll end up writing a lot of that yourself if you don’t take care to understand what Tracktion can do for you in advance …