# Vamp Plugins

## Comparing Vamp and VST

The principal technical differences between Vamp and a real-time audio plugin system such as VST are:

- Vamp plugins may output complex multidimensional data with labels. As a consequence, they are likely to work best when the output data has a much lower sampling rate than the input.
- While Vamp plugins receive their data block-by-block, they are not required to return output immediately on receiving the input. A Vamp plugin may be non-causal, preferring to store up data based on its input until the end of a processing run and then return all results at once.
- Vamp plugins have more control over their inputs than a typical real-time processing plugin. For example, they can indicate to the host their preferred processing block and step sizes, and these do not have to be equal.
- Vamp plugins may ask to receive data in the frequency domain instead of the time domain. The host takes the responsibility for converting the input data using an FFT of windowed frames. This simplifies plugins that do straightforward frequency-domain processing and permits the host to cache frequency-domain data when possible.
- A Vamp plugin is configured once before each processing run, and receives no further parameter changes during use – unlike real time plugin APIs in which the input parameters may change at any time. This means that fundamental properties such as the number of values per output or the preferred processing block size may depend on the input parameters. Many Vamp plugins would be unable to work without this guarantee.
- Vamp plugins do not have to be able to run in real time.