Browse the VST 3 SDK's technical documentation. The full VST 3 API reference is only available in the VST 3 Package that you can download or find online here.
- VST 3 API Documentation
- VST Module Architecture
- Parameters and Automation
- VST 3 Units
- Presets & Program Lists
- Complex Plug-in Structures / Multi-timbral Instruments
- VST 3 Workflow Diagrams
- VST 3 Locations / Format
- About MIDI in VST 3
- Change History
- [3.0.0] Interfaces supported by the plug-in
- [3.0.0] Interfaces supported by the host
- [3.0.1] Parameter MIDI Mapping Support
- [3.0.2] Parameter Finder Support
- [3.1.0] Audio Presentation Latency Support
- [3.1.0] UI Group Editing, Dirty State and Open Editor Request Support
- [3.1.0] KnobMode / openHelp / openAboutBox Support
- [3.5.0] Note Expression Support
- [3.5.0] Key Switch Support
- [3.5.0] Remote Representation of Parameters Support
- [3.5.0] Context Menu Support
- [3.5.0] Better Support of Linked Parameters
- [3.6.0] iOS Inter-App Audio Support
- [3.6.0] Preset Meta-Information Support
- [3.6.5] Channel Context Info Support
- [3.6.5] Unit-Bus Assignment Change Support
- [3.6.5] Prefetchable Support
- [3.6.5] Automation State Support
- [3.6.6] PlugView Content Scale Support
- [3.6.8] Request Bus Activation
- [3.6.10] Snapshots inside the VST 3 Bundle Support
- [3.6.11] NoteExpression Physical UI Mapping Support
- [3.6.12] Legacy MIDI CC Out Event
- [3.6.12] MIDI Learn Support
- [3.6.12] PlugInterface Support from Host
- [3.6.12] MPE support in Wrappers
- [3.7.0] Parameter Function Name
- [3.7.0] IProgress Support
- [3.7.0] Process Context Requirements
The VST 3 API is an interface collection designed for realtime audio processing components. Such a component can be an audio effect or an audio instrument.
Description of how parameters are defined and used in VST 3
A unit is a logical section of the plug-in.
How presets and program lists are handled in VST 3
How to handle complex plug-in structures and multi-timbrality.
Some useful graphical call sequences a VST 3 compliant host should follow.
Formats definition of a VST 3 Plug-in and its preset and where they are located on different platforms.
List of interfaces supported/implemented by the plug-in in VST 3.0.0
List of interfaces supported/implemented by the host in VST 3.0.0
How the mapping works between MIDI CCs and parameters.
How the host can retrieve the parameter where the mouse cursor is located.
Inform the plug-in about how long from the moment of generation/acquiring (from file or from Input) it will take for its input to arrive, and how long it will take for its output to be presented (to output or to speaker).
Improvement of the plug-in's integration in the host (dirty state, request Open Editor, group editing)
Extension to allow the host to inform the plug-in about the host knob mode
A new way to control / modify / change a specific played note during playback.
Allows information exchange between the plug-in and host about which key switches are currently used.
How to better support remote (UI and hardware) for parameters.
A plug-in can ask the host to create a context menu for a given exported parameter ID or a generic context menu.
This allows the host to start a parameter editing action which can generate other parameter changes (like linked parameters) and this in one session (between a beginEdit and endEdit).
iOS InterApp-Audio application out of your VST 3 plug-in
Interface to access preset meta information from stream, used, for example, in setState in order to inform the plug-in about the current context in which the preset loading occurs
Allows the host to inform the plug-in about the context in which the plug-in is instantiated, mainly channel based info (color, name, index,...).
The plug-in has the possibility to inform the host with notifyUnitByBusChange that something has changed in the bus - unit assignment,
Indicates if the plug-in supports prefetch (dynamically)
Hosts can inform the plug-in about its current automation state (Read/Write/Nothing).
This interface communicates the content scale factor from the host to the plug-in view on systems where plug-ins cannot get this information directly like Microsoft Windows.
Allows the plug-in to request the host to activate or deactivate a specific bus.
a VST 3 bundle can contain pre-rendered snapshot images for a VST 3 host as a visual representation of the plug-in UI
With this plug-in interface, the host can retrieve the preferred physical mapping associated to note expression supported by the plug-in.
This kind of event is reserved for generating MIDI CC as output event for kEvent Bus during the process call.
If this interface is implemented by the edit controller, the host will call this method whenever there is live MIDI-CC input for the plug-in.
Allows a plug-in to ask the host if a given plug-in interface is supported/used by the host
This interface allows the host to get a parameter associated to a specific meaning (a functionName) for a given unit
Allows the plug-in to request the host to create a progress for some specific tasks which take some time.
To get accurate process context information (Vst::ProcessContext), it is now required to implement this interface
Unlike in VST 2, MIDI is not included in VST 3.
VST-MA is a component model system which is used in all Steinberg host applications as the basic layer for plug-in support.