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 |