Headless VST3 host; some plugins render silence

I have built this command line host. I load VST3 plugins and vst presets and then render stuff. Works 95% of the time. But every now and then I come across a plug-in that just won’t work. Recently it is Ezkeys 2. I’ve tried so many things but the buffer contains near zeroes. So it’s silent but not perfect digital silence.

In a fresh daw session, loading said plug-in and preset works as it should.

Is there some way to query plugins that they are ready or finished loading or similar? I’ve even tried adding adding safeguards so that buffer process runs up to 1000 times and then aborts if buffers keep ending up empty.

Do some plugins require the UI to actually load in order to function?

Any ideas on what to try?

On what platform are you running? Some plugins may require the GUI message loop to be running in order for certain functionality to work. A console app won’t necessarily have such a message loop.

Bulding for both Mac (intel and arm64) and Windows. But testing mainly on Mac (arm64).
Ok interesting. So is there a way to “fake” a GUI message loop without actually rendering the UI?

The most straightforward way is probably to use JUCE’s GUI template project as a starting point, but to avoid displaying any windows. Such a project can still be run from the command line, but will additionally have access to the platform GUI message loop.

1 Like