annotate rationale.html @ 128:817c3988afc7 website tip

Add a page about the Vamp Plugin Pack, including links to download mirrors
author Chris Cannam
date Tue, 11 Aug 2020 16:41:11 +0100
parents 1982d4ba2ea3
children
rev   line source
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 &ndash;
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>