comparison examples/vamp-example-plugins.txt @ 255:88ef5ffdbe8d

* docs
author cannam
date Wed, 12 Nov 2008 14:11:01 +0000
parents
children f80e34e36a79
comparison
equal deleted inserted replaced
254:e02c93c4de8f 255:88ef5ffdbe8d
1
2 Vamp Example Plugins
3 ====================
4
5 The vamp-example-plugins library contains a number of Vamp audio
6 analysis plugins provided as part of the Vamp plugin SDK.
7
8 These are simple, but sometimes useful, plugins whose source code you
9 are free to study and reuse in any proprietary or non-proprietary
10 plugins of your own without any licensing obligation.
11
12 User documentation for the individual plugins in this library follows.
13
14
15 Amplitude Follower
16 ==================
17
18 System identifier: vamp-example-plugins:amplitudefollower
19 RDF URI: http://vamp-plugins.org/rdf/plugins/vamp-example-plugins#amplitudefollower
20
21 Amplitude Follower tracks and returns the amplitude of the audio
22 signal, block by block. It uses a method from the SuperCollider audio
23 processing language, implemented as a Vamp plugin by Dan Stowell.
24
25 Parameters
26 ----------
27
28 Attack time (seconds)
29 Release time (seconds)
30
31 Outputs
32 -------
33
34 Amplitude
35 ~~~~~~~~~
36
37 The estimated peak amplitude (in volts) for the current processing block.
38
39
40 Simple Fixed Tempo Estimator
41 ============================
42
43 System identifier: vamp-example-plugins:fixedtempo
44 RDF URI: http://vamp-plugins.org/rdf/plugins/vamp-example-plugins#fixedtempo
45
46 Simple Fixed Tempo Estimator analyses a fragment of audio and
47 estimates its tempo. It assumes that its input is of fixed tempo, and
48 it analyses only the first (small but configurable number of) seconds
49 before returning a result, discarding all subsequent input.
50
51 The plugin calculates an overall energy rise function across a series
52 of short frequency-domain input frames, takes the autocorrelation of
53 this function, filters it to stress possible metrical patterns,
54 locates peaks, and converts from autocorrelation lag to the
55 corresponding tempo.
56
57 The filtering process involves searching for peaks at simple
58 metrically related intervals (at a given autocorrelation lag as well
59 as at 0.5, 2, and 4 times that lag), boosting each peak that shows
60 strong related peaks. A simplistic perceptual curve is also applied
61 in order to increase the probability of detecting a "likely" tempo.
62 For improved tempo precision, each tempo with strong related peaks is
63 averaged with the tempi calculated from those peaks.
64
65 The method is mainly tuned for 4/4 pop and dance rhythms.
66
67 This plugin returns many of its intermediate calculations as
68 additional outputs, as well as the most favoured tempo. Although as a
69 tempo estimator it's still fairly primitive, it is intended to provide
70 a useful example of a slightly more complex feature extraction plugin
71 than the other examples, as well as one that returns several different
72 types of output at a time.
73
74 Parameters
75 ----------
76
77 Minimum estimated tempo, Maximum estimated tempo (bpm) - These
78 parameters control the range of values within which the tempo
79 estimator will return its estimate.
80
81 Input duration to study (seconds) - The tempo estimator uses only the
82 first part of its input, discarding any that follows. This parameter
83 controls how much input it will use. There is no value in increasing
84 this beyond 8x the duration of the slowest returned beat. The default
85 of 10 seconds is likely to be appropriate for most purposes.
86
87 Outputs
88 -------
89
90 Tempo
91 ~~~~~
92
93 The tempo estimator's best guess at the tempo of its input, in beats
94 per minute.
95
96 This is returned as a feature whose timestamp and duration cover the
97 range of the input which was used in estimating the tempo, with a
98 single value containing the tempo.
99
100 Tempo candidates
101 ~~~~~~~~~~~~~~~~
102
103 Several guesses at the possible tempo. This output is returned as a
104 single feature whose timestamp and duration cover the range of the
105 input which was used in estimating the tempo, with up to 10 bins
106 containing one tempo value in each bin, with the "best guess" tempo in
107 bin 0.
108
109 Detection function
110 ~~~~~~~~~~~~~~~~~~
111
112 The basic onset detection function used in tempo estimation.
113
114 Autocorrelation function
115 ~~~~~~~~~~~~~~~~~~~~~~~~
116
117 The autocorrelation of the onset detection function.
118
119 Filtered Autocorrelation
120 ~~~~~~~~~~~~~~~~~~~~~~~~
121
122 The autocorrelation after filtering to boost values with possible
123 metrically related peaks and to apply perceptual weighting. The peak
124 value of this function is the one that will be used as the "best
125 guess".
126
127
128 Simple Percussion Onset Detector
129 ================================
130
131 System identifier: vamp-example-plugins:percussiononsets
132 RDF URI: http://vamp-plugins.org/rdf/plugins/vamp-example-plugins#percussiononsets
133
134 Simple Percussion Onset Detector estimates the locations of percussive
135 onsets in the audio signal. It uses a method described in "Drum
136 Source Separation using Percussive Feature Detection and Spectral
137 Modulation" by Dan Barry, Derry Fitzgerald, Eugene Coyle and Bob
138 Lawlor, ISSC 2005.
139
140 The principle is to exploit the broadband nature of noisy percussive
141 onsets by identifying only those frames in which the energy rise shows
142 a broadband profile.
143
144 The plugin takes a series of frequency domain frames, and examines
145 each frame to count the number of bins whose energy content has
146 increased by more than a certain threshold since the prior frame.
147 Frames in which this number is at a peak relative to prior and
148 following frames and also exceeds another threshold value are
149 classified as percussive onsets.
150
151 Parameters
152 ----------
153
154 Energy rise threshold (dB) - The rise in energy within a bin from one
155 frame to the next that is required for a bin to be counted toward the
156 detection function's bin count. This roughly corresponds to how
157 "loud" a percussive sound must be in order to be detected.
158
159 Sensitivity (%) - The proportion of bins that must exceed the energy
160 rise threshold in order for an onset to be detected (at frames in
161 which the detection function peaks). This roughly corresponds to how
162 "noisy" a percussive sound must be in order to be detected.
163
164 Outputs
165 -------
166
167 Onsets
168 ~~~~~~
169
170 The estimated onset locations.
171
172 Detection Function
173 ~~~~~~~~~~~~~~~~~~
174
175 The energy rise detection function whose peaks were used to estimate
176 onset locations.
177
178
179 Simple Power Spectrum
180 =====================
181
182 System identifier: vamp-example-plugins:powerspectrum
183 RDF URI: http://vamp-plugins.org/rdf/plugins/vamp-example-plugins#powerspectrum
184
185 Simple Power Spectrum returns a power spectrum calculated from
186 windowed short-time Fourier transforms of the input audio. (The power
187 spectrum for a frame consists of a sequence of the squares of the
188 magnitudes of the complex values for each frequency bin in the result
189 of the Fourier transform.)
190
191 This very simple plugin is an illustration of the fact that if a
192 plugin requests frequency-domain input, its input will already be in
193 the form needed for a spectrum such as this. The plugin has no work
194 left to do except to calculate the squared magnitude from the
195 cartesian complex representation.
196
197 This plugin also illustrates how to return "grid-type" visualisation
198 data from a Vamp plugin.
199
200 Parameters
201 ----------
202
203 None.
204
205 Outputs
206 -------
207
208 Power Spectrum
209 ~~~~~~~~~~~~~~
210
211 The power spectrum calculated from the input frame. This output
212 returns a single feature per processing block, containing
213 blocksize/2+1 power values corresponding to the FFT bins from DC to
214 Nyquist inclusive. The DC bin is always returned.
215
216
217 Spectral Centroid
218 =================
219
220 System identifier: vamp-example-plugins:spectralcentroid
221 RDF URI: http://vamp-plugins.org/rdf/plugins/vamp-example-plugins#spectralcentroid
222
223 Spectral Centroid calculates the "centre of gravity" of the frequency
224 spectrum for each input frame.
225
226 Parameters
227 ----------
228
229 None.
230
231 Outputs
232 -------
233
234 Log Frequency Centroid
235 ~~~~~~~~~~~~~~~~~~~~~~
236
237 The centroid of the log-weighted frequency spectrum. That is, the sum
238 across Fourier transform output bins of the logarithm of the bin
239 frequency multiplied by the bin magnitude, divided by the sum of the
240 bin magnitudes, and the inverse logarithm taken so as to give the
241 result as a frequency in Hz.
242
243 Linear Frequency Centroid
244 ~~~~~~~~~~~~~~~~~~~~~~~~~
245
246 The centroid of the linear-weighted frequency spectrum. That is, the
247 sum across Fourier transform output bins of the bin frequency
248 multiplied by the bin magnitude, divided by the sum of the bin
249 magnitudes. The result is a frequency in Hz.
250
251
252 Zero Crossings
253 ==============
254
255 System identifier: vamp-example-plugins:zerocrossing
256 RDF URI: http://vamp-plugins.org/rdf/plugins/vamp-example-plugins#zerocrossing
257
258 Zero Crossings calculates the positions and density of "zero-crossing"
259 points in an audio waveform. For the purposes of this plugin, that
260 means those positions at which the sampled value switches from
261 zero-or-less to greater-than-zero, or vice versa.
262
263 Parameters
264 ----------
265
266 None.
267
268 Outputs
269 -------
270
271 Zero Crossing Counts
272 ~~~~~~~~~~~~~~~~~~~~
273
274 The number of zero-crossing points found in the current block of
275 samples, as a single-valued feature returned per processing block.
276
277 Zero Crossings
278 ~~~~~~~~~~~~~~
279
280 The locations of zero-crossing points, returning one feature
281 timestamped to the zero-crossing location, without values, for each
282 crossing point.
283