Virtual Studio Technology (VST) is a software interface that integrates software audio synthesizer and effect plugins with audio editors and recording systems. VST and similar technologies use digital signal processing to simulate traditional recording studio hardware in software. Thousands of plugins exist, both commercial and freeware, and a large number of audio applications support VST under license from its creator, Steinberg.
Though Steinberg pioneered VST plug-ins there are certain other plug-in standards such as AU, AXX or ASIO developed by other DAW companies.
A DAW plug-in needs to support the range of standards, e.g. Guitar Rig supports Stand-alone, VST, Audio Units, ASIO, Core Audio, WASAPI, AAX Native (Pro Tools 10 or higher) .
Plug-ins can provide a wide amount of additional software to a DAW environment. Most notably virtual instruments or effects, for a large plug-in forum visit www.kvraudio.com
VST plugins generally run within a digital audio workstation (DAW), to provide additional functionality, though a few standalone plugin hosts exist which support VST. Most VST plugins are either instruments (VSTi) or effects, although other categories exist—for example spectrum analyzers and various meters. VST plugins usually provide a custom graphical user interface that displays controls similar to physical switches and knobs on audio hardware. Some (often older) plugins rely on the host application for their user interface.
VST instruments include software simulation emulations of well-known hardware synthesizers and samplers. These typically emulate the look of the original equipment as well as its sonic characteristics. This lets musicians and recording engineers use virtual versions of devices that otherwise might be difficult and expensive to obtain.
VST instruments receive notes as digital information via MIDI, and output digital audio. Effect plugins receive digital audio and process it through to their outputs. (Some effect plugins also accept MIDI input—for example MIDI sync to modulate the effect in sync with the tempo). MIDI messages can control both instrument and effect plugin parameters. Most host applications can route the audio output from one VST to the audio input of another VST (chaining). For example, output of a VST synthesizer can be sent through a VST reverb effect.
Virtual Studio Technology
VST plugins often have many controls, and therefore need a method of managing presets (sets of control settings). Steinberg Cubase VST introduced two file formats for storing presets: an FXP file stores a single preset, while an FXB file stores a whole bank of presets. These formats have since been adopted by many other VST hosts, although Cubase itself switched to a new system of preset management with Cubase 4.0. Many VST plugins have their own method of loading and saving presets, which do not necessarily use the standard FXP/FXB formats.
Steinberg's VST SDK is a set of C++ classes based around an underlying C API. The SDK can be downloaded from their website.
There are several ports available, such as a Delphi version by Frederic Vanmol, a Java version from the jVSTwRapper project at Sourceforge, and two .NET versions – Noise and VST.NET; this open source project also includes a framework that makes creating VST plugins easier and result in more structured code. VST .NET also provides support for writing managed host applications with a managed class that allows loading an unmanaged Plugin. A notable language supporting VST is Faust considering that it is especially made for making signal processing plugins, often producing code faster than hand-written C++.
In addition, Steinberg have developed the VST GUI, which is another set of C++ classes, which can be used to build a graphical interface. There are classes for buttons, sliders and displays etc. Note that these are low level C++ classes and the look and feel still have to be created by the plugin manufacturer. VST GUI is part of the VST SDK and is also available as sourceforge project in http://sourceforge.net/projects/vstgui.
A large number of commercial and open-source VST's are written using the Juce C++ framework instead of direct calls to the VST SDK, because this allows multi-format (VST, AudioUnit and Real Time AudioSuite) binaries to be built from a single codebase.
Programming MIDI Guitar Sounds