Creating a VSTi Wrapper for Godot

Hello I work on an experimental game project with Godot Engine.
I would like to import a VSTi Synth and make the game able to use it and toy with its parameters in real time .
But to do so I realized that I would have to make a plugin that would allow me to use VSTis in Godot .
I think I would have to write a module to make that option available to Godot’s Audio engine …
How complex do you guys think this task could end up getting?

Best regards,


Writing a plugin which hosts other VST plugins is pretty straightforward (with a little JUCE knowledge). Writing a plugin which hosts VST instruments is basically the same.

Juce does not have support for making Godot plugins, though. So the original poster would need to figure out how to solve whatever issues are specific to that.

Ah sorry, my fault … :flushed:

Hello, I kinda figured out how to wrap juce functions in a Godot plugin …
Which is nice … I was wondering now, if it would be possible to load for example the full AudioProcessorGraph XML I saved from Juce Host plugin, into my own plugin …
Also, can an AudioProcessorGraph work independently from the deviceManager?

Like just for buffer management …
For now I use the DeviceManager and just bypass the Sound Engine of Godot entirely …

But I think it would be more elegant to maybe let the game engine itself do the device management.

So my idea would be to just wrap a AudioProcessorGraph into classes inherited from Godot’s AudioStream and AudioStreamPlayer.

Do you think it would be sound to do that ???

My question is does a savefile of an AudioProcessorGraph has anything to do with device management?

*Basically I may use Juce Device Manager for Inputs, but I want to leave outputs to Godot in the end …

My gut says it should be possible. I can’t see any reason why it wouldn’t work, but others will know better. But I have to question whether is it practical to load VSTi’s in a game engine. I think the main reason most audio engines don’t support VST, or other proprietary plugin formats is that you can’t distribute them with your games without having each end-user buy a license for the plugin.

On the other hand, if you are only loading ‘native’ JUCE AudioProcessors then you’re good to go :wink:

1 Like