# Vamp Plugins

## News and updates

News about Vamp Plugin SDK updates and some other relevant work.

### 2019–11–13 — Vamp plugin SDK v2.9 now available

Version 2.9 of the Vamp plugin SDK is now available.

This is a bug-fix release, but it also changes the base supported C++ standard from C++98 to C++11, hence the increase to the minor version rather than point version. For more details, see the changelog at

> http://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/CHANGELOG

### 2019–02–07 — Vamp plugin SDK v2.8 now available

Version 2.8 of the Vamp plugin SDK is now available.

This is a maintenance and minor feature release. For more details, see the changelog at

> http://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/CHANGELOG

### 2017–03–06 — Vamp plugin SDK v2.7.1 now available

Version 2.7.1 of the Vamp plugin SDK is now available.

This is a bug-fix release, fixing a potential crash in host applications.

### 2017–03–03 — Vamp plugin SDK v2.7 now available

Version 2.7 of the Vamp plugin SDK is now available.

Vamp is a plugin API for audio analysis and feature extraction plugins written in C or C++. Its SDK features an easy-to-use set of C++ classes for plugin and host developers, a reference host implementation, example plugins, and documentation. It is supported across Linux, OS/X, and Windows.

A documentation guide to writing plugins using the Vamp SDK can be found at http://www.vamp-plugins.org/guide.pdf.

Version 2.7 is a bugfix and minor enhancement release. For more details, see the changelog at

> http://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/CHANGELOG

### 2015–09–09 — jVamp v1.3 released

Announcing v1.3 of jVamp, a Java/JNI interface allowing the use of native-code Vamp plugins from host applications written in Java or other JVM languages.

This release simplifies the API, removing an unnecessary dispose() call and eliminating a class of native-heap memory leak.

See https://code.soundsoftware.ac.uk/projects/jvamp for more details and downloads.

### 2015–09–09 — Vamp Test Plugin v1.1 released

Version 1.1 of Vamp Test Plugin, the world's least interesting Vamp plugin, is now available.

Vamp Test Plugin is the equivalent of a TV test signal: it produces a set of very simple static outputs intended to help the authors of Vamp hosts check that they are handling plugin output sample types correctly. This release adds an output which is calculated from the input (to facilitate testing that input blocks are provided correctly) and a frequency-domain version of the same.

See https://code.soundsoftware.ac.uk/projects/vamp-test-plugin for more information.

If you are the author of a Vamp host, you might find it useful.

### 2015–09–09 — Vamp Plugin Tester v1.1 released

Version 1.1 of the Vamp plugin tester, a program that loads and tests Vamp plugins for various common failure cases, is now available.

Info and downloads:

> https://code.soundsoftware.ac.uk/projects/vamp-plugin-tester

Change log:

> https://code.soundsoftware.ac.uk/projects/vamp-plugin-tester/repository/entry/CHANGELOG

The tester can't check whether you're getting the right results, but it can help you write more resilient and better-behaved plugins. It's a really good idea to run the tester on any new plugin before you release it.

There is some documentation in the README file, but the short version is that you run it at a command prompt with the library name and plugin name, colon-separated, as an argument:

    $ ./vamp-plugin-tester vamp-example-plugins:spectralcentroid

... and see what it has to say about your plugins.

If it crashes in the middle of one of its tests, that probably means that your plugin has crashed when faced with some unexpected input. Run it in a debugger, or a memory checking utility if you have one, to find out where.

### 2015–06–26 — Python Vamp host v1.0 released

This week we released v1.0 of a Python module for loading and using Vamp plugins for audio analysis.

You can find it in PyPI:

> https://pypi.python.org/pypi/vamp/

and the code project is here:

> https://code.soundsoftware.ac.uk/projects/vampy-host

### 2015–06–16 — Vamp plugin SDK v2.6 now available

Version 2.6 of the Vamp plugin SDK is now available.

Vamp is a plugin API for audio analysis and feature extraction plugins written in C or C++. Its SDK features an easy-to-use set of C++ classes for plugin and host developers, a reference host implementation, example plugins, and documentation. It is supported across Linux, OS/X, and Windows.

A documentation guide to writing plugins using the Vamp SDK can be found at http://www.vamp-plugins.org/guide.pdf.

Version 2.6 is a bugfix and minor enhancement release. For more details, see the changelog at

> http://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/CHANGELOG

### 2013–05–16 — Vamp Test Plugin v1.0 released

Version 1.0 of the Vamp Test Plugin is now available.

This, the world's least interesting Vamp plugin, is the equivalent of a TV test signal: it produces a set of very simple static outputs intended to help the authors of Vamp hosts check that they are handling plugin output sample types correctly.

See https://code.soundsoftware.ac.uk/projects/vamp-test-plugin for more information.

If you are the author of a Vamp host, you might find it useful.

### 2013–05–10 — Vamp plugin SDK v2.5 now available

Version 2.5 of the Vamp plugin SDK is now available.

Vamp is a plugin API for audio analysis and feature extraction plugins written in C or C++. Its SDK features an easy-to-use set of C++ classes for plugin and host developers, a reference host implementation, example plugins, and documentation. It is supported across Linux, OS/X, and Windows.

A documentation guide to writing plugins using the Vamp SDK can be found at http://www.vamp-plugins.org/guide.pdf.

Version 2.5 is a bugfix release. For more details, see the changelog at

> http://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/CHANGELOG

The most significant fix in this release is in the host SDK, and affects the handling of output timestamps in the (little used) FixedSampleRate output type.

### 2012–11–23 — jVamp: Vamp plugins in Java applications

jVamp is a JNI (Java Native Interface) library that permits Java applications to load and use Vamp audio analysis plugins.

jVamp is intended for application developers who are interested in adding capabilities to Java applications or a Java environment; it's not currently something that an end-user would normally wish to install. But if you are working in Java, you might well find it interesting.

Note that jVamp is intended to be compatible with the Android NDK as well as desktop Java, though it hasn't been tested there (and existing binary distributions of plugins do not usually include ARM builds).

See http://code.soundsoftware.ac.uk/projects/jvamp for more information.

### 2009–10–28 — VamPy: Vamp plugins in Python

VamPy, a Python wrapper for the Vamp plugin API, is now available.

Using VamPy you can write audio analysis or visualisation plugins for use in Vamp hosts with a quick and dynamic environment that is somewhat like working in Matlab or other high-level modelling environments. VamPy has full two-way support for NumPy, an efficient numerical library for Python, and for the dynamic typing of Python.

You can download VamPy from :
http://www.vamp-plugins.org/vampy.html

### 2009–10–02 — New tutorials about how to get your first plugin to compile

There are two new tutorials now available on the (also new) wiki at this site, both entitled "From Method To Plugin" and describing how to get your code compiled and running as a Vamp plugin. One tutorial covers OS/X, the other Windows.

- Using OS/X command-line tools: http://vamp-plugins.org/wiki/mtp1
- Using Visual C++ on Windows: http://vamp-plugins.org/wiki/mtp2

I hope these are helpful! If you find any errors, please let me know (or create an account on the wiki and correct them!)

The wiki homepage is at http://vamp-plugins.org/wiki/, and we'd welcome any contributions that might be interesting to other users or developers of plugins.

### 2008–12–12 — Vamp plugin SDK v2.0 now available

Version 2.0 of the Vamp plugin SDK is now available.

Vamp is a plugin API for audio analysis and feature extraction plugins written in C or C++. Its SDK features an easy-to-use set of C++ classes for plugin and host developers, a reference host implementation, example plugins, and documentation. It is supported across Linux, OS/X and Windows.

A documentation guide to writing plugins using the Vamp SDK can be found at http://www.vamp-plugins.org/guide.pdf.

##### What's new in 2.0?

- Each returned feature can now specify a proper duration as well as start time, value array, and label.
- A new PluginSummarisingAdapter is provided in the host SDK, permitting hosts to easily obtain summary results such as averages based on a plugin's returned features.
- An RDF ontology is provided for the description of Vamp plugin capabilities and configurations (see http://omras2.org/VampOntology).
- The SDK libraries have been reorganised so as to draw a clearer distinction between plugin and host SDKs.
- Better platform-specific build documentation is provided (in the build directory), particularly for MSVC builds which now also feature project files for the example plugins.
- Two new example plugins have been added (Simple Power Spectrum and Fixed Tempo Estimator).
- The command-line host provided now has an extra-informative plugin information listing option (`--list-full`).

##### Backward compatibility

A detailed compatibility statement is included in the SDK, but to summarise:

- Plugins and hosts built with 1.x and 2.0 SDKs are mutually compatible. You can load old plugins in new hosts and new plugins in old hosts.
- Plugins written for 1.x can be compiled against 2.0 without modification.
- Hosts written for 1.x will require some changes to #include directives, but most hosts should compile against 2.0 without other modifications.
- Although the plugin binary interface is compatible with 1.x, the SDK libraries are not binary compatible with the 1.x libraries. Plugins and host code will need to be recompiled if they are to be updated to 2.0, not just re-linked.

### 2008–07–09 — Vamp plugin SDK v1.3 now available

Version 1.3 of the Vamp plugin SDK is now available.

Vamp is a plugin API for audio analysis and feature extraction plugins written in C or C++. Its SDK features an easy-to-use set of C++ classes for plugin and host developers, a reference host implementation, example plugins, and documentation. It is supported across Linux, OS/X and Windows.

Version 1.3 is a maintenance release, with several bugfixes (almost all of which only affect hosts, not plugins) and no new features.

Changes since 1.2:

- PluginBufferingAdapter has several important fixes to bugs that could cause incorrect timings or output descriptors to be returned
- Conversion between real-time and frames has been improved to avoid rounding error in round-trip calculations
- Plugin lookup no longer relies on non-portable DT_REG
- The SDK now compiles with gcc 4.3

Plugins and hosts remain binary compatible with those built using the 1.0 version of the SDK.

### 2008–03–05 — New developer documentation available

A new guide to writing Vamp plugins in C++ is now up on the website. You can get to it from the developer documentation page:

> http://www.vamp-plugins.org/develop.html

or this direct link:

> http://www.vamp-plugins.org/guide.pdf

No big claims for how well organised, written, or (especially!) illustrated it is, but there is a decent amount of information in it and it's likely to be mostly right.

There is also a recent introductory presentation available here:

> http://www.vamp-plugins.org/vamp-programmer-presentation.pdf

### 2008–02–28 — Vamp plugin SDK v1.2 now available

Version 1.2 of the Vamp plugin SDK is now available.

Vamp is a plugin API for audio analysis and feature extraction plugins written in C or C++. Its SDK features an easy-to-use set of C++ classes for plugin and host developers, a reference host implementation, example plugins, and documentation. It is supported across Linux, OS/X and Windows.

Version 1.2 contains a further addition to the host extension classes introduced in 1.1: a buffering adapter that hosts may use to avoid having to negotiate the plugin's preferred input step and block sizes. This release also includes a Visual C++ project file as well as Makefiles tailored to Linux and OS/X.

Plugins and hosts remain 100% binary compatible with those built using the 1.0 version of the SDK.

### 2007–10–19 — Vamp plugin SDK v1.1b now available

Version 1.1b of the Vamp plugin SDK is now available.

Vamp is a plugin API for audio analysis and feature extraction plugins written in C or C++. Its SDK features an easy-to-use set of C++ classes for plugin and host developers, a reference host implementation, example plugins, and documentation. It is supported across Linux, OS/X and Windows.

Version 1.1b is a minor update with a small number of build and bug fixes.

The prior version 1.1 of the SDK introduced a new set of classes designed to make it very simple for an application to use Vamp plugins, without needing to do complicated plugin lookup or audio processing themselves.

Plugins and hosts remain 100% binary compatible with those built using the 1.0 version of the SDK.