/ VST Home
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
- Provide A Runloop On Linux
- [3.0.0] Interfaces supported by the plug-in
- [3.0.0] Multiple Dynamic I/O Support
- [3.0.0] Silence flags
- [3.0.0] Interfaces supported by the host
- [3.0.1] Parameter MIDI Mapping
- [3.0.2] Parameter Finder
- [3.1.0] Audio Presentation Latency
- [3.1.0] UI Group Editing, Dirty State & Open Editor Request
- [3.1.0] KnobMode, Open Help & Open Aboutbox
- [3.5.0] Note Expression
- [3.5.0] Key Switch
- [3.5.0] Remote Presentation of Parameters
- [3.5.0] Context Menu
- [3.5.0] Enhanced Linked Parameters
- [3.6.0] iOS Inter-App Audio
- [3.6.0] Preset Meta-Information
- [3.6.5] Channel Context Info
- [3.6.5] Unit-Bus Assignment Change
- [3.6.5] Prefetchable
- [3.6.5] Automation State
- [3.6.6] PlugView Content Scaling
- [3.6.8] Request Bus Activation
- [3.6.10] UI Snapshots
- [3.6.11] NoteExpression Physical UI Mapping
- [3.6.12] Legacy MIDI CC Out Event
- [3.6.12] MIDI Learn
- [3.6.12] Host Query Interface Support
- [3.6.12] MPE support for Wrappers
- [3.7.0] Parameter Function Name
- [3.7.0] Progress Display
- [3.7.0] Process Context Requirements
- [3.7.0] Control Voltage Bus Flag
- [3.7.5] Module Info
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.
VST-MA is a component model system which is used in all Steinberg host applications as the basic layer for plug-in support.
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.
How to transfer data from the realtime process function to the edit controller.
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.
Unlike in VST 2, MIDI is not included in VST 3.
Minimum Host requirements for VST 3 support.
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 the host about which key switches are currently used.
How to better support remote devices/controllers (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 ask the host to create a progress for specific tasks which take some time.
To get accurate process context information (Vst::ProcessContext), it is now required to implement this interface.
Allows a plug-in to ask the host for the current system time.
These interfaces allow you to send data with a direct and thread-safe connection from the realtime audio context of the audio processor to the non-realtime audio context of the edit controller.