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