cannam@0
|
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
cannam@0
|
2 <html>
|
cannam@0
|
3 <head>
|
cannam@0
|
4 <link rel="stylesheet" media="screen" type="text/css" href="screen.css"/>
|
cannam@0
|
5 <link rel="icon" type="image/png" href="images/waveform.png"/>
|
cannam@0
|
6 <link rel="shortcut" type="image/png" href="images/waveform.png"/>
|
cannam@0
|
7 <title>Vamp Plugins</title>
|
cannam@0
|
8 <meta name="robots" content="index"/>
|
cannam@0
|
9 <meta name="keywords" content="vamp plugin api plugins sonic visualiser visualizer visualise visualize audio music spectrogram feature extraction feapi vsi dssi"/>
|
cannam@0
|
10 <meta name="description" content="Vamp is a system for plugins that extract feature information from audio data."/>
|
cannam@0
|
11 </head>
|
cannam@0
|
12 <body>
|
cannam@0
|
13 <h1 id="header"><span>Vamp Plugins</span></h1>
|
cannam@0
|
14
|
cannam@0
|
15 <div id="nav">
|
cannam@0
|
16 <ul>
|
cannam@0
|
17 <li class="first"><a href="index.html">Home</a></li>
|
Chris@120
|
18 <li><a href="news.html">News</a></li>
|
cannam@0
|
19 <li><a href="download.html">Download Plugins</a></li>
|
cannam@0
|
20 <li><a href="develop.html">Make Plugins</a></li>
|
cannam@35
|
21 <li><a href="http://vamp-plugins.org/wiki/">Wiki</a></li>
|
cannam@0
|
22 </ul></div>
|
cannam@0
|
23
|
cannam@0
|
24 <h2 id="firstpara">Comparing Vamp and VST</h2>
|
cannam@0
|
25
|
cannam@0
|
26 <p>The principal technical differences between Vamp and a real-time audio
|
cannam@0
|
27 plugin system such as VST are:</p>
|
cannam@0
|
28
|
cannam@0
|
29 <ul>
|
cannam@0
|
30
|
cannam@0
|
31 <li>Vamp plugins may output complex multidimensional data with
|
cannam@0
|
32 labels. As a consequence, they are likely to work best when the
|
cannam@0
|
33 output data has a much lower sampling rate than the input.</li>
|
cannam@0
|
34
|
cannam@0
|
35 <li>While Vamp plugins receive their data block-by-block, they
|
cannam@0
|
36 are not required to return output immediately on receiving the
|
cannam@0
|
37 input. A Vamp plugin may be non-causal, preferring to store up
|
cannam@0
|
38 data based on its input until the end of a processing run and
|
cannam@0
|
39 then return all results at once.</li>
|
cannam@0
|
40
|
cannam@0
|
41 <li>Vamp plugins have more control over their inputs than a
|
cannam@0
|
42 typical real-time processing plugin. For example, they can
|
cannam@0
|
43 indicate to the host their preferred processing block and step
|
cannam@0
|
44 sizes, and these do not have to be equal.</li>
|
cannam@0
|
45
|
cannam@0
|
46 <li>Vamp plugins may ask to receive data in the frequency domain
|
cannam@0
|
47 instead of the time domain. The host takes the responsibility
|
cannam@0
|
48 for converting the input data using an FFT of windowed frames.
|
cannam@0
|
49 This simplifies plugins that do straightforward frequency-domain
|
cannam@0
|
50 processing and permits the host to cache frequency-domain data
|
cannam@0
|
51 when possible.</li>
|
cannam@0
|
52
|
cannam@0
|
53 <li>A Vamp plugin is configured once before each processing run,
|
cannam@0
|
54 and receives no further parameter changes during use –
|
cannam@0
|
55 unlike real time plugin APIs in which the input parameters may
|
cannam@0
|
56 change at any time. This means that fundamental properties such
|
cannam@0
|
57 as the number of values per output or the preferred processing
|
cannam@0
|
58 block size may depend on the input parameters. Many Vamp
|
cannam@0
|
59 plugins would be unable to work without this guarantee.</li>
|
cannam@0
|
60
|
cannam@0
|
61 <li>Vamp plugins do not have to be able to run in real time.</li>
|
cannam@0
|
62
|
cannam@0
|
63 </ul>
|
cannam@0
|
64
|
cannam@0
|
65
|
cannam@0
|
66 </body>
|
cannam@0
|
67 </html>
|