Vamp is an audio processing plugin system for plugins that extract descriptive information from audio data — typically referred to as audio analysis plugins or audio feature extraction plugins.
You will find developer resources and information about the plugin format here. Please refer to the website for user documentation and details about available plugins and hosts.
Two C++ SDKs are available, producing generally compatible results but with certain technical tradeoffs.
-
vamp-plugin-sdk
is the original C++ SDK for writing both plugins and hosts. It supports all Vamp features and is compatible with C++11 or newer standards.- Plugins built with this SDK can be used in all Vamp hosts, although some hosts can only handle limited subsets of feature types regardless of the SDK used.
- Hosts built with this SDK can load all Vamp plugins.
-
rt-vamp-plugin-sdk
is an alternative C++ SDK for use in real-time performance-critical applications, supporting a limited subset of output feature types and requiring C++20 or newer.- Plugins built with this SDK can be used in all Vamp hosts. They can only return a limited subset of feature types, but if your plugin requires only those feature types and you are confident this won't change, there is no technical disadvantage to using this SDK.
- Hosts built with this SDK can load all Vamp plugins that use the same limited subset of feature types. But only those plugins also built with this SDK will be real-time safe.
-
vamp-plugin-tester
is a command-line testing host for Vamp plugins. It runs a considerable number of tests and reports any problems it finds. It should be used before making any public release of a plugin. -
vamp-test-plugin
is a test plugin for use when writing Vamp hosts. Unlike the plugin tester, it can't run any tests itself but provides a variety of different output types which you can use to check the behaviour of your host.
In general the SDK and accompanying tools are provided under permissive BSD/MIT license terms, to be used and redistributed in software of any type. Please check the individual repositories for more details.