annotate rationale.html @ 101:bb33b0c75481 rdfquery

Remove download.html (now dynamic)
author Chris Cannam
date Tue, 24 Jun 2014 13:32:30 +0100
parents 0976232e353b
children e4bb9267c009
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>
cannam@0 18 <li><a href="rationale.html">Rationale</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@0 21 <li><a href="http://vamp-plugins.org/forum/">Forum</a></li>
cannam@35 22 <li><a href="http://vamp-plugins.org/wiki/">Wiki</a></li>
cannam@0 23 </ul></div>
cannam@0 24
cannam@0 25 <h2 id="firstpara">Comparing Vamp and VST</h2>
cannam@0 26
cannam@0 27 <p>The principal technical differences between Vamp and a real-time audio
cannam@0 28 plugin system such as VST are:</p>
cannam@0 29
cannam@0 30 <ul>
cannam@0 31
cannam@0 32 <li>Vamp plugins may output complex multidimensional data with
cannam@0 33 labels. As a consequence, they are likely to work best when the
cannam@0 34 output data has a much lower sampling rate than the input.</li>
cannam@0 35
cannam@0 36 <li>While Vamp plugins receive their data block-by-block, they
cannam@0 37 are not required to return output immediately on receiving the
cannam@0 38 input. A Vamp plugin may be non-causal, preferring to store up
cannam@0 39 data based on its input until the end of a processing run and
cannam@0 40 then return all results at once.</li>
cannam@0 41
cannam@0 42 <li>Vamp plugins have more control over their inputs than a
cannam@0 43 typical real-time processing plugin. For example, they can
cannam@0 44 indicate to the host their preferred processing block and step
cannam@0 45 sizes, and these do not have to be equal.</li>
cannam@0 46
cannam@0 47 <li>Vamp plugins may ask to receive data in the frequency domain
cannam@0 48 instead of the time domain. The host takes the responsibility
cannam@0 49 for converting the input data using an FFT of windowed frames.
cannam@0 50 This simplifies plugins that do straightforward frequency-domain
cannam@0 51 processing and permits the host to cache frequency-domain data
cannam@0 52 when possible.</li>
cannam@0 53
cannam@0 54 <li>A Vamp plugin is configured once before each processing run,
cannam@0 55 and receives no further parameter changes during use &ndash;
cannam@0 56 unlike real time plugin APIs in which the input parameters may
cannam@0 57 change at any time. This means that fundamental properties such
cannam@0 58 as the number of values per output or the preferred processing
cannam@0 59 block size may depend on the input parameters. Many Vamp
cannam@0 60 plugins would be unable to work without this guarantee.</li>
cannam@0 61
cannam@0 62 <li>Vamp plugins do not have to be able to run in real time.</li>
cannam@0 63
cannam@0 64 </ul>
cannam@0 65
cannam@0 66
cannam@0 67 </body>
cannam@0 68 </html>