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