I'd be interested to know how they implemented plugin sandboxing. From the site:
> 3rd party plugins are the weak link for any digital audio workstation. Waveform Free addresses this by implementing plugin sandboxing. Once activated your work environment is protected by keeping plugin crashes contained. Instead of the host closing, the plugin is simply deactivated
VST plugins can execute whatever code they want once called by the host, so the only obvious way of sandboxing them is to have a separate process (bridging) per plugin. In fact, that's how the VST loaders in other hosts (eg. Buzz) have been doing it for many years. This inevitably introduces some overhead due to inter-process communication and synchronization, but it sounds like the sandboxing can be activated or deactivated here as well, so you have the choice between "fast and dangerous" vs. "slow but safe".
And since Tracktion is one of the flagship JUCE users, I'm willing to bet they're using the JUCE interprocess classes:
Not sure about other platforms, but on macOS you can start up an XPC service that loads a single plug-in. There's communication overhead, but it can usually be managed reasonably with careful design of the cross-process API.
Interesting and useful post. That being said, I think it ignores some valid solutions. For example, REAPER and some others offer the option to bridge specific plugins. This is often sufficient, since users generally just want to play with some specific cool-sounding but crashy plugins.
Then there's also the more technically difficult option of running the entire audio engine (including plugins) in one separate resilient process: if it crashes, it can be relaunched and its state restored by the main process. I believe Bitwig can do this. Cool but I wouldn't want to be the one implementing it!
In the Ardour world, the "bridge specific plugins" approach is accomplished by using JACK. There are several clients that can be used to run a single plugin (for at least a couple of plugin APIs). The level of integration drops noticeably, and it does mean that you have to use JACK which for some people seems to be a burden. But it also leverages the generality of JACK's inter-application audio/MIDI to avoid complexity in the host itself.
As I said in the article, we are averse to complex engineering solutions to the problem of plugins that crash.
> 3rd party plugins are the weak link for any digital audio workstation. Waveform Free addresses this by implementing plugin sandboxing. Once activated your work environment is protected by keeping plugin crashes contained. Instead of the host closing, the plugin is simply deactivated