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.