Wiki » History » Version 13

Chris Cannam, 2013-03-28 02:07 PM

1 1 Chris Cannam
h1. About the Vamp Test Plugin
2 1 Chris Cannam
3 4 Chris Cannam
The Vamp Test Plugin is a plugin that does no real work, does not analyse its input at all, and always returns the same results. (With one caveat: you should feed it at least 15 seconds of input audio, because it returns features across a 15-second span.)
4 4 Chris Cannam
5 5 Chris Cannam
It has several outputs, which are designed to test the host's handling of various aspects of the Vamp OutputDescriptor SampleType and SampleRate settings. Note that all output features have labels indicating the expected timing and (in some cases) values for the feature.
6 2 Chris Cannam
7 1 Chris Cannam
Think of it as the Vamp plugin equivalent of a TV test pattern or printer test page.
8 3 Chris Cannam
9 3 Chris Cannam
h2. Outputs
10 3 Chris Cannam
11 7 Chris Cannam
The plugin outputs are listed below, with a description and an example of Sonic Annotator's display of the output features. The output comes from the forthcoming Sonic Annotator v0.7.1 -- use of this plugin turned up a bug in 0.7 which 0.7.1 fixes!
12 5 Chris Cannam
13 5 Chris Cannam
h3. instants
14 5 Chris Cannam
15 6 Chris Cannam
The *instants* output is a @VariableSampleRate@ output containing ten instants explicitly timestamped at 1.5 second intervals. They are labelled by number and time.
16 5 Chris Cannam
17 5 Chris Cannam
<pre>
18 5 Chris Cannam
"test.wav",0.000000000,"1 of 10 at 0"
19 5 Chris Cannam
,1.500000000,"2 of 10 at 1.5"
20 5 Chris Cannam
,3.000000000,"3 of 10 at 3"
21 5 Chris Cannam
,4.500000000,"4 of 10 at 4.5"
22 5 Chris Cannam
,6.000000000,"5 of 10 at 6"
23 5 Chris Cannam
,7.500000000,"6 of 10 at 7.5"
24 5 Chris Cannam
,9.000000000,"7 of 10 at 9"
25 5 Chris Cannam
,10.500000000,"8 of 10 at 10.5"
26 5 Chris Cannam
,12.000000000,"9 of 10 at 12"
27 1 Chris Cannam
,13.500000000,"10 of 10 at 13.5"
28 6 Chris Cannam
</pre>
29 6 Chris Cannam
30 6 Chris Cannam
h3. curve-oss
31 6 Chris Cannam
32 6 Chris Cannam
The *curve-oss* output is a @OneSamplePerStep@ output containing 20 values from 0 to 0.95 in increments of 0.05. They have implicit timing, so their timestamps will depend on the process block size. The expected times are calculated by the plugin and returned in the feature labels.
33 6 Chris Cannam
34 6 Chris Cannam
<pre>
35 6 Chris Cannam
"test.wav",0.000000000,0,"1 of 20: 0 at 0"
36 6 Chris Cannam
,0.023219954,0.05,"2 of 20: 0.05 at 0.023"
37 6 Chris Cannam
,0.046439909,0.1,"3 of 20: 0.1 at 0.046"
38 6 Chris Cannam
,0.069659863,0.15,"4 of 20: 0.15 at 0.069"
39 6 Chris Cannam
,0.092879818,0.2,"5 of 20: 0.2 at 0.092"
40 6 Chris Cannam
,0.116099773,0.25,"6 of 20: 0.25 at 0.116"
41 6 Chris Cannam
,0.139319727,0.3,"7 of 20: 0.3 at 0.139"
42 6 Chris Cannam
,0.162539682,0.35,"8 of 20: 0.35 at 0.162"
43 6 Chris Cannam
,0.185759637,0.4,"9 of 20: 0.4 at 0.185"
44 6 Chris Cannam
,0.208979591,0.45,"10 of 20: 0.45 at 0.208"
45 6 Chris Cannam
,0.232199546,0.5,"11 of 20: 0.5 at 0.232"
46 6 Chris Cannam
,0.255419501,0.55,"12 of 20: 0.55 at 0.255"
47 6 Chris Cannam
,0.278639455,0.6,"13 of 20: 0.6 at 0.278"
48 6 Chris Cannam
,0.301859410,0.65,"14 of 20: 0.65 at 0.301"
49 6 Chris Cannam
,0.325079365,0.7,"15 of 20: 0.7 at 0.325"
50 6 Chris Cannam
,0.348299319,0.75,"16 of 20: 0.75 at 0.348"
51 6 Chris Cannam
,0.371519274,0.8,"17 of 20: 0.8 at 0.371"
52 6 Chris Cannam
,0.394739229,0.85,"18 of 20: 0.85 at 0.394"
53 6 Chris Cannam
,0.417959183,0.9,"19 of 20: 0.9 at 0.417"
54 6 Chris Cannam
,0.441179138,0.95,"20 of 20: 0.95 at 0.441"
55 5 Chris Cannam
</pre>
56 8 Chris Cannam
57 8 Chris Cannam
h3. curve-fsr
58 8 Chris Cannam
59 9 Chris Cannam
The *curve-fsr* output is a @FixedSampleRate@ output which contains 10 implicitly timed features with values from 0 to 0.9 in increments of 0.1. 
60 8 Chris Cannam
61 9 Chris Cannam
This output has a SampleRate of 2.5, so the features should appear at 0.4 second intervals.
62 10 Chris Cannam
63 10 Chris Cannam
<pre>
64 10 Chris Cannam
"test.wav",0.000000000,0,"1 of 10: 0 at 0"
65 10 Chris Cannam
,0.400000000,0.1,"2 of 10: 0.1 at 0.4"
66 10 Chris Cannam
,0.800000000,0.2,"3 of 10: 0.2 at 0.8"
67 10 Chris Cannam
,1.200000000,0.3,"4 of 10: 0.3 at 1.2"
68 10 Chris Cannam
,1.600000000,0.4,"5 of 10: 0.4 at 1.6"
69 10 Chris Cannam
,2.000000000,0.5,"6 of 10: 0.5 at 2"
70 10 Chris Cannam
,2.400000000,0.6,"7 of 10: 0.6 at 2.4"
71 10 Chris Cannam
,2.800000000,0.7,"8 of 10: 0.7 at 2.8"
72 10 Chris Cannam
,3.200000000,0.8,"9 of 10: 0.8 at 3.2"
73 10 Chris Cannam
,3.600000000,0.9,"10 of 10: 0.9 at 3.6"
74 10 Chris Cannam
</pre>
75 11 Chris Cannam
76 11 Chris Cannam
h3. curve-fsr-timed
77 11 Chris Cannam
78 11 Chris Cannam
The *curve-fsr-timed* output is a @FixedSampleRate@ output in which the features have explicit timestamps. The features have values from 0 to 0.9 in increments of 0.1. They are not, however, equally spaced.
79 11 Chris Cannam
80 11 Chris Cannam
According to the "Vamp Plugin Programmers' Guide":http://vamp-plugins.org/guide.pdf, "The host may round the timestamp according to the sample rate given in the output descriptor's sampleRate field". In my view this is the right thing for a host to do, although it's technically optional. This output tests that behaviour by providing features at timestamps that do not lie on sample boundaries, along with a label indicating what the host would be expected to snap them to (always the nearest sample boundary).
81 11 Chris Cannam
82 12 Chris Cannam
The output has a SampleRate of 2.5, so the features should be snapped to 0.4 second boundaries.
83 12 Chris Cannam
84 11 Chris Cannam
Thus:
85 11 Chris Cannam
86 11 Chris Cannam
<pre>
87 11 Chris Cannam
"test.wav",0.000000000,0,"1 of 10: 0 at 0 snap to 0"
88 11 Chris Cannam
,0.000000000,0.1,"2 of 10: 0.1 at 0 snap to 0"
89 11 Chris Cannam
,0.000000000,0.2,"3 of 10: 0.2 at 0.166 snap to 0"
90 11 Chris Cannam
,0.400000000,0.3,"4 of 10: 0.3 at 0.333 snap to 0.4"
91 11 Chris Cannam
,2.000000000,0.4,"5 of 10: 0.4 at 2 snap to 2"
92 11 Chris Cannam
,2.000000000,0.5,"6 of 10: 0.5 at 2 snap to 2"
93 11 Chris Cannam
,2.000000000,0.6,"7 of 10: 0.6 at 2.166 snap to 2"
94 11 Chris Cannam
,2.400000000,0.7,"8 of 10: 0.7 at 2.333 snap to 2.4"
95 11 Chris Cannam
,4.000000000,0.8,"9 of 10: 0.8 at 4 snap to 4"
96 11 Chris Cannam
,4.000000000,0.9,"10 of 10: 0.9 at 4 snap to 4"
97 11 Chris Cannam
</pre>
98 13 Chris Cannam
99 13 Chris Cannam
h3. curve-vsr
100 13 Chris Cannam
101 13 Chris Cannam
The *curve-vsr* output is a @VariableSampleRate@ output which contains 10 explicitly timed features at 0.25 second intervals with values from 0 to 0.9 in increments of 0.1. 
102 13 Chris Cannam
103 13 Chris Cannam
<pre>
104 13 Chris Cannam
"test.wav",0.000000000,0,"1 of 10: 0 at 0"
105 13 Chris Cannam
,0.750000000,0.1,"2 of 10: 0.1 at 0.75"
106 13 Chris Cannam
,1.500000000,0.2,"3 of 10: 0.2 at 1.5"
107 13 Chris Cannam
,2.250000000,0.3,"4 of 10: 0.3 at 2.25"
108 13 Chris Cannam
,3.000000000,0.4,"5 of 10: 0.4 at 3"
109 13 Chris Cannam
,3.750000000,0.5,"6 of 10: 0.5 at 3.75"
110 13 Chris Cannam
,4.500000000,0.6,"7 of 10: 0.6 at 4.5"
111 13 Chris Cannam
,5.250000000,0.7,"8 of 10: 0.7 at 5.25"
112 13 Chris Cannam
,6.000000000,0.8,"9 of 10: 0.8 at 6"
113 13 Chris Cannam
,6.750000000,0.9,"10 of 10: 0.9 at 6.75"
114 13 Chris Cannam
</pre>