To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Tag: | Revision:

root / README @ 18:809fcc3d7f4e

History | View | Annotate | Download (8.48 KB)

1 17:ea8865f488a0 cannam
2
Vamp Plugin Tester
3
==================
4
5
This program tests Vamp audio feature extraction plugins
6
(http://vamp-plugins.org/) for certain common failure cases.
7
8
To test a single plugin, run vamp-plugin-tester with the name of your
9
plugin library and plugin identifier, separated by a colon.  For example,
10
11
  $ vamp-plugin-tester vamp-example-plugins:amplitudefollower
12
13
The plugin library must be installed in the Vamp plugin path (you
14
cannot give the path to the library file).
15
16
If you run vamp-plugin-tester with no arguments, it will test all
17
plugins found in your Vamp plugin path.
18
19
20
Options
21
=======
22
23
Supply the -v or --verbose option to tell vamp-plugin-tester to print
24
out the whole content of its returned feature log for diagnostic
25
purposes each time it prints an error or warning that arises from the
26
contents of a returned feature.
27
28
Supply the -n or --nondeterministic option to tell vamp-plugin-tester
29
that your plugins are expected to return different results each time
30
they are run.  The default behaviour is to treat different results on
31
separate runs with the same input data as an error.
32
33
34
Errors and Warnings
35
===================
36
37
Each test may cause one or several notes, warnings, or errors to be
38
printed.  A note is printed when behaviour is observed that may be
39
correct behaviour but that is not always anticipated by the plugin
40
developer.  A warning is printed when behaviour is observed that is
41
technically legal but that in practice most often happens by mistake.
42
An error is printed when behaviour is observed that cannot be correct.
43
44
vamp-plugin-tester prints all of its commentary to the standard
45
output.  Standard error is usually used for diagnostic output printed
46
by the plugins themselves.
47
48
In addition to reporting on tests, vamp-plugin-tester runs some tests
49
that are intended to provoke the plugin into unexpected behaviour such
50
as memory errors.  If vamp-plugin-tester crashes during a test, this
51
may be why.  Also, if you have access to a memory checker utility such
52
as valgrind, you are advised to run vamp-plugin-tester under it so as
53
to be informed of any memory errors that do not happen to cause
54
crashes.
55
56
57
Error and Warning Reference
58
===========================
59
60
 ** ERROR: Failed to load plugin
61
62
 The plugin could not be loaded.  Remember that the plugin must be
63
 installed in the Vamp plugin path.
64
65
 ** ERROR: (plugin|parameter|output) identifier <x> contains invalid characters
66
67
 An identifier contains characters other than the permitted set (ASCII
68
 lower and upper case letters, digits, "-" and "_" only).
69
70
 ** ERROR: <field> is empty
71
72
 A mandatory field, such as the name of a parameter or output,
73
 contains no text.
74
75
 ** WARNING: <field> is empty
76
77
 An optional field, such as the description of a parameter or output,
78
 contains no text.
79
80
 ** ERROR: Plugin parameter <x> maxValue <= minValue
81
82
 The minimum and maximum values given for a parameter are equal or in
83
 the wrong order.
84
85
 ** ERROR: Plugin parameter <x> defaultValue out of range
86
87
 The default value for a parameter is not within the range defined by
88
 the minimum and maximum values for the parameter.
89
90
 ** ERROR: Plugin parameter <x> is quantized, but quantize step is zero
91
92
 The quantizeStep value in a parameter with isQuantized true is set to
93
 zero.
94
95
 ** WARNING: Plugin parameter <x> value range is not a multiple of quantize step
96
97
 A parameter's stated maximum value is not one of the possible values
98
 obtained by adding multiples of the quantize step on to the minimum
99
 value.
100
101
 ** WARNING: Plugin parameter <x> has (more|fewer) value names than quantize steps
102
103
 A quantized parameter lists some value names for its quantize steps,
104
 but not the right number.
105
106
 ** WARNING: Plugin parameter <x> default value is not a multiple of quantize
107
 step beyond minimum
108
109
 The default value for a parameter is not a value that the user could
110
 actually obtain, if only offered the quantized values to choose from.
111
112
 ** ERROR: Data returned on nonexistent output
113
114
 The output number key for a returned feature is outside the range of
115
 outputs listed in the plugin's output descriptor list.
116
117
 ** NOTE: No results returned for output <x>
118
119
 The plugin returned no features on one of its outputs, when given a
120
 simple test file.  This may be perfectly reasonable behaviour, but
121
 you might like to know about it.
122
123
 ** NOTE: Plugin returns features with timestamps on OneSamplePerStep output
124
 ** NOTE: Plugin returns features with durations on OneSamplePerStep output
125
126
 Hosts will usually ignore timestamps and durations attached to any
127
 feature returned on a OneSamplePerStep output.
128
129
 ** ERROR: Plugin returns features with no timestamps on VariableSampleRate output
130
131
 Timestamps are mandatory on all features associated with a
132
 VariableSampleRate output.
133
134
 ** WARNING: Plugin returned one or more NaN/inf values
135
136
 The plugin returned features containing floating-point not-a-number
137
 or infinity values.  This warning may be associated with a test
138
 involving feeding some unexpected type of data to the plugin.
139
140
 ** ERROR: Consecutive runs with separate instances produce different results
141
142
 The plugin was constructed and run twice against the same input data,
143
 and returned different features each time.
144
145
 If you give the -n or --nondeterministic option, vamp-plugin-tester
146
 will downgrade this error to a note.
147
148
 ** ERROR: Consecutive runs with the same instance (using reset) produce different results
149
150
 The plugin was constructed, initialised, run against some input data,
151
 reset with a call to its reset() function, and run again against the
152
 same data; and it returned different features on each run.  This is
153
 often a sign of some simple error such as forgetting to implement
154
 reset().
155
156
 If you give the -n or --nondeterministic option, vamp-plugin-tester
157
 will downgrade this error to a note.
158
159
 ** ERROR: Simultaneous runs with separate instances produce different results
160
161
 Two instances of the plugin were constructed and run against the same
162
 input data, giving each block of data to one plugin's process call
163
 and then to the other's, "interleaving" the processing between the
164
 two instances (but within a single application thread); and the two
165
 instances returned different features.  This may indicate ill-advised
166
 use of static data shared between plugin instances.
167
168
 If you give the -n or --nondeterministic option, vamp-plugin-tester
169
 will downgrade this error to a note.
170
171
 ** WARNING: Consecutive runs with different starting timestamps produce the same result
172
173
 The plugin was run twice on the same audio data, but with different
174
 input timestamps, and it returned the same results each time.  While
175
 this is often unproblematic, it can indicate that a plugin failed to
176
 take the input timestamp into account when calculating its output
177
 timestamps (if any).
178
179
 If you give the -n or --nondeterministic option, vamp-plugin-tester
180
 will downgrade this warning to a note.
181
182
 ** ERROR: Explicitly setting current program to its supposed current value changes the results
183
184
 The plugin was constructed and run twice on the same data, once
185
 without changing its "program" setting, and again having set the
186
 program to the vaule returned by getCurrentProgram() (i.e. the same
187
 program that was supposed to be in effect already).  It returned
188
 different results for the two runs, suggesting that some internal
189
 data was changed in selectProgram in a way that differed from its
190
 default.
191
192
 If you give the -n or --nondeterministic option, vamp-plugin-tester
193
 will downgrade this error to a note.
194
195
 ** ERROR: Explicitly setting parameters to their supposed default values changes the results
196
197
 The plugin was constructed and run twice on the same data, once
198
 without changing any of its parameters, and again having set the
199
 parameters to their specified default values.  It returned different
200
 results for the two runs, suggesting that some internal data was
201
 changed when a parameter was set to its default, in a way that
202
 differed from the plugin's initially constructed state.
203
204
 If you give the -n or --nondeterministic option, vamp-plugin-tester
205
 will downgrade this error to a note.
206
207
 ** WARNING: Constructor takes some time to run: work should be deferred to initialise?
208
209
 The plugin took a long time to construct.  You should ensure that the
210
 constructor for the plugin runs as quickly as possible, because it
211
 may be called by a host that is only scanning the properties of all
212
 available plugins on startup.  Any serious initialisation work should
213
 be done in the initialise() function rather than the constructor.
214
215
216 18:809fcc3d7f4e cannam
Authors
217
=======
218
219
This program was written at the Centre for Digital Music at Queen
220
Mary, University of London, by Chris Cannam.  Copyright (c) 2009 QMUL.