Headless plugin clients


Hi all,
I’m working on an embedded Linux project where a headless system can host VsT plugins.

The host doesn’t use JUCE, but we had to support a plugin written with it. At the moment, it’s possible to build headless standalone Linux apps in JUCE, but X11 & friends are still a dependency for audio plugin clients.

I experimented a little and it turned out that hacking the codebase to remove that dependency was much easier than I thought. Disclaimer: I’m not a JUCE expert at all, so any feedback is welcome!

You can try it out here:

This is still WIP, tested with few plugins and, especially, not integrated with the Projucer. You need to define JUCE_HEADLESS_PLUGIN_CLIENT=1 to activate the option.

Basically, I just mocked up the relevant methods in juce_gui_basics/native/, so this is similar to having a separate architecture target. From the plugin POV, it should be equivalent to the situation where the host never shows your UI, so you can instantiate graphic components etc.


Removing X dependency and just use OpenGLES/framebuffer graphics on linux
NAMM 2018 Elk - Game Changer? 🤔
Building with Travis CL