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 @ 62:247a0c471a51

History | View | Annotate | Download (11.8 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
17
Options
18
=======
19
20 27:5dcdc86d45d4 cannam
Supply the -a or --all option to tell vamp-plugin-tester to test all
21
plugins found in your Vamp path.
22
23 17:ea8865f488a0 cannam
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 41:4d04c4fa1905 Chris
Supply the -t or --test option with a test ID argument to tell
34
vamp-plugin-tester to run only a single test, rather than the complete
35
test suite. To find out what test ID to use for a given test, run
36
vamp-plugin-tester with the --list-tests or -l option.
37
38 17:ea8865f488a0 cannam
39
Errors and Warnings
40
===================
41
42
Each test may cause one or several notes, warnings, or errors to be
43
printed.  A note is printed when behaviour is observed that may be
44
correct behaviour but that is not always anticipated by the plugin
45
developer.  A warning is printed when behaviour is observed that is
46
technically legal but that in practice most often happens by mistake.
47
An error is printed when behaviour is observed that cannot be correct.
48
49
vamp-plugin-tester prints all of its commentary to the standard
50
output.  Standard error is usually used for diagnostic output printed
51
by the plugins themselves.
52
53 19:34d52412039c cannam
In addition to reports, vamp-plugin-tester runs some tests that are
54
intended to provoke the plugin into unexpected behaviour such as
55
memory errors.  If vamp-plugin-tester crashes during a test, this may
56
be why.  If you have access to a memory checker utility such as
57
valgrind, you are advised to run vamp-plugin-tester under it so as to
58
be informed of any memory errors that do not happen to cause crashes
59
(as well as memory leaks).  The vamp-plugin-tester binaries
60
distributed by QMUL have been compiled with debug information
61
included, in order to facilitate this type of use.
62 17:ea8865f488a0 cannam
63
64
Error and Warning Reference
65
===========================
66
67
 ** ERROR: Failed to load plugin
68
69
 The plugin could not be loaded.  Remember that the plugin must be
70
 installed in the Vamp plugin path.
71
72 24:064ad81ea53c cannam
 Normally this message will be preceded by one of the following
73
 errors:
74
75 26:eff1772ba397 cannam
   Invalid plugin key <key> in loadPlugin
76 24:064ad81ea53c cannam
77 26:eff1772ba397 cannam
    - The argument given to vamp-plugin-tester could not be split
78
      into library name and plugin identifier.  Check the usage
79
      description above.
80
81
   No library found in Vamp path for plugin <key>
82
83
    - No Vamp plugin library of that name was found in the Vamp path.
84
      This message will often be accompanied by one of the following
85
      errors; if it isn't, then that probably means the file did not
86
      exist at all.
87 24:064ad81ea53c cannam
88
   Plugin <id> not found in library <name>
89
90
    - The library was found and loaded and was apparently a valid
91
      Vamp plugin library, but it didn't contain a plugin of that id.
92
      Check you typed the id correctly, and if this is your library,
93
      check that the vampGetPluginDescriptor function returns the
94
      plugin descriptor properly.
95
96
   Unable to load library <name>
97
98
    - A dynamic library of that name was found, but the system library
99
      loader could not load it.  Perhaps it depends on another library
100 26:eff1772ba397 cannam
      that is not available, or it was built for the wrong architecture.
101
      There may be more information in the error message.
102 24:064ad81ea53c cannam
103
   No vampGetPluginDescriptor function found in library <name>
104
105
    - A dynamic library of that name was found and loaded, but it
106
      lacked the necessary public vampGetPluginDescriptor function.
107
108
      * Are you sure this is a Vamp plugin library?
109
      * If you made it, did you remember to include the global
110
        vampGetPluginDescriptor function in your library along with
111
	your plugin classes?
112
      * If you are using Visual C++, did you remember to mark the
113
        vampGetPluginDescriptor symbol exported, as described in
114
        the README.msvc file in the SDK?
115
116 17:ea8865f488a0 cannam
 ** ERROR: (plugin|parameter|output) identifier <x> contains invalid characters
117
118
 An identifier contains characters other than the permitted set (ASCII
119
 lower and upper case letters, digits, "-" and "_" only).
120
121
 ** ERROR: <field> is empty
122
123
 A mandatory field, such as the name of a parameter or output,
124
 contains no text.
125
126
 ** WARNING: <field> is empty
127
128
 An optional field, such as the description of a parameter or output,
129
 contains no text.
130
131
 ** ERROR: Plugin parameter <x> maxValue <= minValue
132
133
 The minimum and maximum values given for a parameter are equal or in
134
 the wrong order.
135
136
 ** ERROR: Plugin parameter <x> defaultValue out of range
137
138
 The default value for a parameter is not within the range defined by
139
 the minimum and maximum values for the parameter.
140
141
 ** ERROR: Plugin parameter <x> is quantized, but quantize step is zero
142
143
 The quantizeStep value in a parameter with isQuantized true is set to
144
 zero.
145
146
 ** WARNING: Plugin parameter <x> value range is not a multiple of quantize step
147
148
 A parameter's stated maximum value is not one of the possible values
149
 obtained by adding multiples of the quantize step on to the minimum
150
 value.
151
152
 ** WARNING: Plugin parameter <x> has (more|fewer) value names than quantize steps
153
154
 A quantized parameter lists some value names for its quantize steps,
155
 but not the right number.
156
157
 ** WARNING: Plugin parameter <x> default value is not a multiple of quantize
158
 step beyond minimum
159
160
 The default value for a parameter is not a value that the user could
161
 actually obtain, if only offered the quantized values to choose from.
162
163
 ** ERROR: Data returned on nonexistent output
164
165
 The output number key for a returned feature is outside the range of
166
 outputs listed in the plugin's output descriptor list.
167
168
 ** NOTE: No results returned for output <x>
169
170
 The plugin returned no features on one of its outputs, when given a
171
 simple test file.  This may be perfectly reasonable behaviour, but
172
 you might like to know about it.
173
174 62:247a0c471a51 Chris
 ** ERROR: Plugin output <x> has FixedSampleRate but gives sample rate as 0
175
176
 A plugin output that has a sample type of FixedSampleRate must have a
177
 non-zero sample rate. See
178
 https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/wiki/SampleType
179
180 17:ea8865f488a0 cannam
 ** NOTE: Plugin returns features with timestamps on OneSamplePerStep output
181
 ** NOTE: Plugin returns features with durations on OneSamplePerStep output
182
183
 Hosts will usually ignore timestamps and durations attached to any
184 62:247a0c471a51 Chris
 feature returned on a OneSamplePerStep output. See
185
 https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/wiki/SampleType
186 17:ea8865f488a0 cannam
187
 ** ERROR: Plugin returns features with no timestamps on VariableSampleRate output
188
189
 Timestamps are mandatory on all features associated with a
190 62:247a0c471a51 Chris
 VariableSampleRate output. See
191
 https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/wiki/SampleType
192 17:ea8865f488a0 cannam
193
 ** WARNING: Plugin returned one or more NaN/inf values
194
195
 The plugin returned features containing floating-point not-a-number
196
 or infinity values.  This warning may be associated with a test
197
 involving feeding some unexpected type of data to the plugin.
198
199
 ** ERROR: Consecutive runs with separate instances produce different results
200
201
 The plugin was constructed and run twice against the same input data,
202
 and returned different features each time.
203
204
 If you give the -n or --nondeterministic option, vamp-plugin-tester
205
 will downgrade this error to a note.
206
207
 ** ERROR: Consecutive runs with the same instance (using reset) produce different results
208
209
 The plugin was constructed, initialised, run against some input data,
210
 reset with a call to its reset() function, and run again against the
211
 same data; and it returned different features on each run.  This is
212
 often a sign of some simple error such as forgetting to implement
213
 reset().
214
215
 If you give the -n or --nondeterministic option, vamp-plugin-tester
216
 will downgrade this error to a note.
217
218
 ** ERROR: Simultaneous runs with separate instances produce different results
219
220
 Two instances of the plugin were constructed and run against the same
221
 input data, giving each block of data to one plugin's process call
222
 and then to the other's, "interleaving" the processing between the
223
 two instances (but within a single application thread); and the two
224
 instances returned different features.  This may indicate ill-advised
225
 use of static data shared between plugin instances.
226
227
 If you give the -n or --nondeterministic option, vamp-plugin-tester
228
 will downgrade this error to a note.
229
230
 ** WARNING: Consecutive runs with different starting timestamps produce the same result
231
232
 The plugin was run twice on the same audio data, but with different
233
 input timestamps, and it returned the same results each time.  While
234
 this is often unproblematic, it can indicate that a plugin failed to
235
 take the input timestamp into account when calculating its output
236
 timestamps (if any).
237
238
 If you give the -n or --nondeterministic option, vamp-plugin-tester
239
 will downgrade this warning to a note.
240
241
 ** ERROR: Explicitly setting current program to its supposed current value changes the results
242
243
 The plugin was constructed and run twice on the same data, once
244
 without changing its "program" setting, and again having set the
245
 program to the vaule returned by getCurrentProgram() (i.e. the same
246
 program that was supposed to be in effect already).  It returned
247
 different results for the two runs, suggesting that some internal
248
 data was changed in selectProgram in a way that differed from its
249
 default.
250
251
 If you give the -n or --nondeterministic option, vamp-plugin-tester
252
 will downgrade this error to a note.
253
254
 ** ERROR: Explicitly setting parameters to their supposed default values changes the results
255
256
 The plugin was constructed and run twice on the same data, once
257
 without changing any of its parameters, and again having set the
258
 parameters to their specified default values.  It returned different
259
 results for the two runs, suggesting that some internal data was
260
 changed when a parameter was set to its default, in a way that
261
 differed from the plugin's initially constructed state.
262
263
 If you give the -n or --nondeterministic option, vamp-plugin-tester
264
 will downgrade this error to a note.
265
266 62:247a0c471a51 Chris
 ** ERROR: Call to reset after setting parameters, but before processing, changes the results (parameter values not retained through reset?)
267
268
 The plugin was constructed and run twice on the same data. The first
269
 time, its parameters were set to some arbitrary values and it was
270
 initialised and run. The second time, its parameters were set to the
271
 same values and it was initialised, then reset(), then run. The two
272
 runs returned different results, suggesting that perhaps some
273
 parameter value was being modified within the reset() function. (This
274
 function should reset internal state within the plugin, but not
275
 parameter configuration.)
276
277
 If you give the -n or --nondeterministic option, vamp-plugin-tester
278
 will downgrade this error to a note.
279
280 17:ea8865f488a0 cannam
 ** WARNING: Constructor takes some time to run: work should be deferred to initialise?
281
282
 The plugin took a long time to construct.  You should ensure that the
283
 constructor for the plugin runs as quickly as possible, because it
284
 may be called by a host that is only scanning the properties of all
285
 available plugins on startup.  Any serious initialisation work should
286
 be done in the initialise() function rather than the constructor.
287
288
289 18:809fcc3d7f4e cannam
Authors
290
=======
291
292
This program was written at the Centre for Digital Music at Queen
293 58:843e31e6df21 Chris
Mary, University of London, by Chris Cannam.  Copyright (c) 2009-2015 QMUL.