Intro
1. general
2. coding
3. dsp
4. in detail
credits
1. general

What is a VST Plug-in?
Steinberg created the VST plugin standard and introduced it with their Cubase VST audio sequencer product line. Quoting from the Steinberg VST SDK:

"In the widest possible sense a VST-Plug-in is an audio process. A VST Plug-in is not an application. It needs a host application that handles the audio streams and makes use of the process the VST plug-in supplies. Generally speaking, it can take a stream of audio data, apply a process to the audio and send the result back the host application. [...]: The host does not maintain any information about what the plug-in did with the last block of data it processed. From the host application's point of view, a VST Plug-In is a black box with an arbitrary number of inputs, outputs, and associated parameters. The Host needs no knowledge of the plug-in process to be able to use it."

What is the difference between VST1.0 and VST2.0?
VST 1.0 was (obviously) the first version of the VST standard Steinberg created. It supported only creation of effect plugins. VST 2.0 introduced some great features, most notably the possibility to create VSTi (VST instruments=synthesizers) and synchronization to the host tempo. Almost all hosts/plugins today support the VST 2.0 standard, but since it is downward compatible, a VST 1.0 plugin will normally run in a VST 2.0 environment and (limited) vice versa.

What platforms are available/supported for developing/running plugins? Currently the VST SDK supports Microsoft Windows, Apple Macintosh MacOS, BeOS and SGI (MOTIF) as operating system platforms. You have to compile your plugin on every platform independently of course. To my knowledge, the only two systems currently used for VST are Windows and MacOS.

What is the Steinberg VST SDK and where to get it?
The VST SDK is written and distributed with a free license by Steinberg GmbH on their website (http://www.steinberg.net/developers/VST2SDKAbout.phtml). It is a collection of C++ classes that you need to write your own plugins. Think of it as a basis that supplies all the necessary functions. Also included is a manual and a license you have to agree to, as well as some example projects. For the latest VSTSDK beta releases (currently at version 2.2) and latest versions of the VSTGUI, you might check out Yvan Grabit's site: http://ygrabit.steinberg.de

Where should I start?
(note: Steinberg has re-structured their site, so this is a bit out-dated. follow the links in the links-section...)
First of all you should already have a compiler on your computer and know how to use it (see below). Then download the official SDK from the Steinberg site (http://www.steinberg.net/developers/VST2SDKAbout.phtml) and read the included manual and license agreement carefully. If you vaguely understood what was written in the manual and you are still interested in coding plugins, then subscribe to the Steinberg VST developer list (http://service.steinberg.net/webdoc.nsf/show/devarchive). This is the most important resource for all VST development related problems/questions/suggestions and many VST experts (including Charlie Steinberg himself) are on it.

What about writing my own VST plugin host software?
There is currently no SDK for VST host software, but some people on the Steinberg mailing list have made templates, you should ask there. Basically, you can look at the "AudioEffectX"-class and see for yourself what functions the host should support.

What about DirectX plugins/DXi?
Hey, this is the VST FAQ :-) ! But yes, there is also some sort of SDK for the DirectX interface available. Since it was not developed by Steinberg but by Microsoft, you have got to download it there: http://www.microsoft.com/directx But bear in mind that this is not really helpful in my opinion, it is very complex and confusing stuff and the DirectX plugin filters are only a small part of the SDK. More links to DirectX programming are http://www.thedirectxfiles.com (SDK/Visual C++ projects) and http://www.cloneensemble.com (DirectX audio plugin SDK for Delphi, very good!). Still I do not recommend beginners to start with DX programming, it's way more complicated than VST!!!

What about Digidesign ProTools RTAS/AudioSuite/TDM plugins?
As far as I know, the interface documentation for these plugin standards is not available for the public and there is no SDK or any source code projects to download.

Are there any open source plugins to learn from?
Yes, here's a collection of hopefully helpful projects:

Tobybear's Delphi VST template: my own VST Delphi project for D3 or above, with own GUI, also Delphi source codes for several VST plugins is available (MadShifta, CowDelay, VSTChess)
www.tobybear.de

Destroy FX: various weird but excellent plugins with source code and project files for different platforms/compilers
www.smartelectronix.com/~destroyfx

Freeverb: One of the best reverb plugins around, with C++ source code!
home.onet.co.uk/~jzracc/freeverb.htm
(please note that Jezar currently does something with sheep and his site is not available)

Black Water Reverb: this is Freeverb with an added GUI:
www.amazing-demo.com/download.htm

Neosweep: good sweeping filter source
www.a0audio.com

PVOC VST plugins: various plugins with sources
www.bath.ac.uk/~masrwd/pvplugs.html



Site adapted and maintained by Urs
Original music-dsp site created and maintained by bram & david
Original graphic design by line.out | Site hosted by NN
VST Technology by Steinberg Media AG
Number of unique visitors (since january 2002):