-
Notifications
You must be signed in to change notification settings - Fork 91
Plugin Standards
There are a number of plugin standards out there right now, and different major versions of these interfaces look nothing like previous versions. Unfortunately, as these standards further fragment, the more proprietary and confusing creating a plugin can become.
VST is the most common, and VST2x is vastly different to VST3. VST3 was released ten years ago now (in 2008) and still is not supported by the majority of DAWs. The 2x versions are much simpler to implement in another language and are widely supported across DAWs, so they make a much more logical choice for implementation.
AudioUnit is only available on Apple platforms. v2 is very similar to VST from a practical and development standpoint, but v3 departs from this and follows an Apple framework approach which again is far more difficult to implement without Apple tools.
LV2 seems promising but is largely only supported on linux except for a few open source DAWs and audio editors.
All plugin host and plugin implementations are backwards compatible with previous versions (those who have implemented the new version can also use the old version, and plugins developed with the new version can be used in older DAWs). So, while the older plugins are lacking some nice features, there seems to be very little reason for most developers to bother updating to newer standards.
This is good for projects like rust-vst, as we believe standards should be free and open and not controlled by corporate interests, where doing so holds back the audio industry as a whole.
For the sake of this guide, since we have a VST2x implementation already, we will be focusing on vst-gui for now, but the information can be applied to multiple plugin types.