Mercurial > hg > vamp-plugin-sdk
comparison README @ 14:b63909cbbf57
* Add README file
| author | cannam |
|---|---|
| date | Thu, 06 Apr 2006 16:36:24 +0000 |
| parents | |
| children | 61887dda7fe0 |
comparison
equal
deleted
inserted
replaced
| 13:85801331454c | 14:b63909cbbf57 |
|---|---|
| 1 | |
| 2 Vamp | |
| 3 ==== | |
| 4 | |
| 5 An API for audio analysis and feature extraction plugins. | |
| 6 | |
| 7 Vamp is an API for C and C++ plugins that process sampled audio data | |
| 8 to produce descriptive output, such as measurements of particular | |
| 9 features of the audio or semantic output based on them. | |
| 10 | |
| 11 The principal differences between Vamp and a real-time audio | |
| 12 processing plugin system such as VST are: | |
| 13 | |
| 14 * Vamp plugins may output complex multidimensional data with labels. | |
| 15 As a consequence, they are likely to work best when the output | |
| 16 data has a much lower sampling rate than the input. (This also | |
| 17 means it is usually desirable to implement them in C++ using the | |
| 18 high-level base class provided rather than use the raw C API.) | |
| 19 | |
| 20 * While Vamp plugins receive data block-by-block, they are not | |
| 21 required to return output immediately on receiving the input. | |
| 22 A Vamp plugin may be non-causal, preferring to store up data | |
| 23 based on its input until the end of a processing run and then | |
| 24 return all results at once. | |
| 25 | |
| 26 * Vamp plugins have more control over their inputs than a typical | |
| 27 real-time processing plugin. For example, they can indicate to | |
| 28 the host the permitted range of processing block sizes, and can | |
| 29 request input data in the frequency domain instead of the time | |
| 30 domain. | |
| 31 | |
| 32 * A Vamp plugin is configured once before each processing run, and | |
| 33 receives no further parameter changes during use -- unlike real | |
| 34 time plugin APIs in which the input parameters may change at any | |
| 35 time. This also means that fundamental properties such as the | |
| 36 number of values per output or the preferred processing block | |
| 37 size can depend on the input parameters. | |
| 38 | |
| 39 | |
| 40 About this SDK | |
| 41 ============== | |
| 42 | |
| 43 This Software Development Kit contains the following: | |
| 44 | |
| 45 * vamp/vamp.h | |
| 46 | |
| 47 The formal C language plugin API for Vamp plugins. | |
| 48 | |
| 49 A Vamp plugin is a dynamic library (.so, .dll or .dylib depending on | |
| 50 platform) exposing one C-linkage entry point (vampGetPluginDescriptor) | |
| 51 which returns data defined in the rest of this C header. | |
| 52 | |
| 53 Although this is the official API for Vamp, we don't recommend that | |
| 54 you program directly to it. The C++ abstraction in the SDK directory | |
| 55 (below) is likely to be preferable for most purposes and also better | |
| 56 documented. | |
| 57 | |
| 58 * vamp-sdk | |
| 59 | |
| 60 C++ classes for straightforwardly implementing Vamp plugins and hosts. | |
| 61 Plugins should subclass Vamp::Plugin (in vamp-sdk/Plugin.h) and then | |
| 62 use a Vamp::PluginAdapter to expose the correct C API for the plugin. | |
| 63 Hosts may use the Vamp::PluginHostAdapter to convert the loaded | |
| 64 plugin's C API back into a Vamp::Plugin object. | |
| 65 | |
| 66 * examples | |
| 67 | |
| 68 Example plugins implemented using the C++ classes. ZeroCrossing | |
| 69 calculates the positions and density of zero-crossing points in an | |
| 70 audio waveform; SpectralCentroid calculates the centre of gravity of | |
| 71 the frequency domain representation of each block of audio. | |
| 72 | |
| 73 * host | |
| 74 | |
| 75 The simplest possible Vamp host -- this doesn't even process anything | |
| 76 yet, just loads the plugins and prints out their names. | |
| 77 | |
| 78 | |
| 79 Building the SDK | |
| 80 ================ | |
| 81 | |
| 82 Edit the Makefile for your platform according to the comments in it. | |
| 83 Type "make". | |
| 84 | |
| 85 | |
| 86 Licensing | |
| 87 ========= | |
| 88 | |
| 89 This plugin SDK is freely redistributable under the "new BSD" licence. | |
| 90 See the file COPYING for more details. In short, you are permitted to | |
| 91 reuse the SDK and example plugins in any commercial or non-commercial, | |
| 92 proprietary or open-source application under almost any conditions. | |
| 93 | |
| 94 | |
| 95 See Also | |
| 96 ======== | |
| 97 | |
| 98 Sonic Visualiser, an interactive open-source graphical audio | |
| 99 inspection, analysis and visualisation tool supporting Vamp plugins. | |
| 100 | |
| 101 | |
| 102 Chris Cannam | |
| 103 Centre for Digital Music | |
| 104 Queen Mary, University of London |
