Mercurial > hg > vamp-plugin-sdk
comparison README @ 18:b4043af42278
* Some textual changes
author | cannam |
---|---|
date | Mon, 10 Apr 2006 10:31:19 +0000 |
parents | 61887dda7fe0 |
children | 0e7aa8fabd76 |
comparison
equal
deleted
inserted
replaced
17:a67eeb9d6341 | 18:b4043af42278 |
---|---|
3 ==== | 3 ==== |
4 | 4 |
5 An API for audio analysis and feature extraction plugins. | 5 An API for audio analysis and feature extraction plugins. |
6 | 6 |
7 Vamp is an API for C and C++ plugins that process sampled audio data | 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 | 8 to produce descriptive output (measurements or semantic observations). |
9 features of the audio or semantic output based on them. | |
10 | 9 |
11 The principal differences between Vamp and a real-time audio | 10 The principal differences between Vamp and a real-time audio |
12 processing plugin system such as VST are: | 11 processing plugin system such as VST are: |
13 | 12 |
14 * Vamp plugins may output complex multidimensional data with labels. | 13 * Vamp plugins may output complex multidimensional data with labels. |
23 based on its input until the end of a processing run and then | 22 based on its input until the end of a processing run and then |
24 return all results at once. | 23 return all results at once. |
25 | 24 |
26 * Vamp plugins have more control over their inputs than a typical | 25 * Vamp plugins have more control over their inputs than a typical |
27 real-time processing plugin. For example, they can indicate to | 26 real-time processing plugin. For example, they can indicate to |
28 the host the permitted range of processing block sizes, and can | 27 the host their preferred processing block and step sizes, and these |
29 request input data in the frequency domain instead of the time | 28 may differ. |
30 domain. | 29 |
30 * Vamp plugins may ask to receive data in the frequency domain | |
31 instead of the time domain. The host takes the responsibility | |
32 for converting the input data using an FFT of windowed frames. | |
33 This simplifies plugins that do straightforward frequency-domain | |
34 processing and permits the host to cache frequency-domain data | |
35 when possible. | |
31 | 36 |
32 * A Vamp plugin is configured once before each processing run, and | 37 * A Vamp plugin is configured once before each processing run, and |
33 receives no further parameter changes during use -- unlike real | 38 receives no further parameter changes during use -- unlike real |
34 time plugin APIs in which the input parameters may change at any | 39 time plugin APIs in which the input parameters may change at any |
35 time. This also means that fundamental properties such as the | 40 time. This also means that fundamental properties such as the |
36 number of values per output or the preferred processing block | 41 number of values per output or the preferred processing block |
37 size can depend on the input parameters. | 42 size may depend on the input parameters. |
38 | 43 |
39 | 44 |
40 About this SDK | 45 About this SDK |
41 ============== | 46 ============== |
42 | 47 |
50 platform) exposing one C-linkage entry point (vampGetPluginDescriptor) | 55 platform) exposing one C-linkage entry point (vampGetPluginDescriptor) |
51 which returns data defined in the rest of this C header. | 56 which returns data defined in the rest of this C header. |
52 | 57 |
53 Although this is the official API for Vamp, we don't recommend that | 58 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 | 59 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 | 60 (below) is likely to be preferable for most purposes, and is better |
56 documented. | 61 documented. |
57 | 62 |
58 * vamp-sdk | 63 * vamp-sdk |
59 | 64 |
60 C++ classes for straightforwardly implementing Vamp plugins and hosts. | 65 C++ classes for straightforwardly implementing Vamp plugins and hosts. |
61 Plugins should subclass Vamp::Plugin (in vamp-sdk/Plugin.h) and then | 66 |
62 use a Vamp::PluginAdapter to expose the correct C API for the plugin. | 67 Plugins should subclass Vamp::Plugin and then use a |
68 Vamp::PluginAdapter to expose the correct C API for the plugin. Read | |
69 vamp-sdk/PluginBase.h and Plugin.h for code documentation. | |
70 | |
63 Hosts may use the Vamp::PluginHostAdapter to convert the loaded | 71 Hosts may use the Vamp::PluginHostAdapter to convert the loaded |
64 plugin's C API back into a Vamp::Plugin object. | 72 plugin's C API back into a Vamp::Plugin object. |
65 | 73 |
66 * examples | 74 * examples |
67 | 75 |
78 | 86 |
79 | 87 |
80 Building the SDK | 88 Building the SDK |
81 ================ | 89 ================ |
82 | 90 |
83 Edit the Makefile for your platform according to the comments in it. | 91 Edit the Makefile to suit your platform according to the comments in |
84 Type "make". | 92 it. Type "make". |
85 | 93 |
86 | 94 |
87 Licensing | 95 Licensing |
88 ========= | 96 ========= |
89 | 97 |
90 This plugin SDK is freely redistributable under the "new BSD" licence. | 98 This plugin SDK is freely redistributable under a "new-style BSD" |
91 See the file COPYING for more details. In short, you are permitted to | 99 licence. See the file COPYING for more details. In short, you are |
92 reuse the SDK and example plugins in any commercial or non-commercial, | 100 permitted to reuse the SDK and example plugins in any commercial or |
93 proprietary or open-source application under almost any conditions. | 101 non-commercial, proprietary or open-source application or plugin under |
102 almost any conditions provided you retain the original copyright note. | |
94 | 103 |
95 | 104 |
96 See Also | 105 See Also |
97 ======== | 106 ======== |
98 | 107 |