Just released a very cool new feature in the soul command-line tool. We had a rudimentary C++ generator in there, but I’ve spent a few weeks pimping it, so that now it can take a SOUL patch and spit out a folder containing a full, ready-to-build, 100% C++ JUCE project.
So for example you might run
soul generate --juce examples/patches/Reverb/Reverb.soulpatch --output=Reverb
and it will create a folder
Reverb/ Reverb.jucer Reverb.cpp Reverb.h Main.cpp README.txt
Double-click the .jucer file to open it in projucer, hit “save” and you can build a VST/AU/AAX/standalone plugin for whatever OS you’re on.
The code it emits is completely dependency-free (except for JUCE of course), and there’s no JIT involved, it’s a pure-C++ version of the SOUL code.
A nice aspect of the code it generates is that it defines a juce::AudioPluginInstance class which you can override to customise it, e.g. you add your own GUI, and I’ve tried to arrange things so that you can customise without having to change anything inside the generated files.
There’s been a fair amount of behind-the-scenes work to get here, and it’s fresh code, so let us know how you get on, and any problems.
Obviously the next step will be for us to add this to the website, so that you can go to https://soul.dev, tinker around to build yourself a patch, then simply download a zip of a JUCE project that can build a native VST of it