annotate README @ 17:ea8865f488a0

* Add README, tweak some messages
author cannam
date Fri, 20 Mar 2009 14:45:30 +0000
parents
children 809fcc3d7f4e
rev   line source
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