Possibilities for Plugin Parameters » History » Version 14

Chris Cannam, 2014-05-21 12:25 PM

1 1 Chris Cannam
h1. Possibilities for Plugin Parameters
2 1 Chris Cannam
3 1 Chris Cannam
Two directions we could take:
4 1 Chris Cannam
5 1 Chris Cannam
 # No parameters
6 1 Chris Cannam
 # Enough parameters to be interesting
7 2 Chris Cannam
8 5 Chris Cannam
h3. Fast and Slow modes
9 4 Chris Cannam
10 2 Chris Cannam
A problem with "no parameters" is that there is such a big difference in [[Speed|processing speed]] between different configurations. There's a strong case to be made for offering at least a choice between fast/draft mode and slow/thorough mode.
11 4 Chris Cannam
12 4 Chris Cannam
 * The most obvious difference would be that "fast mode" should suppress the 5-step shift factor. 
13 4 Chris Cannam
 * We might also consider using a finer-grained time step in "slow mode". I think the current 40ms step results in audible jitter, though I may be wrong (possibly any timing imprecision results mostly from some other aspect of the method).
14 14 Chris Cannam
 * We could do more EM iterations in slow mode.
15 14 Chris Cannam
 * Our CQ transform goes down to 27.5 Hz, but the lowest note we ever return is over 60Hz. Fast mode could possibly drop the bottom CQ octave and just fill it with zeros.
16 1 Chris Cannam
17 12 Chris Cannam
h3. Note threshold
18 12 Chris Cannam
19 5 Chris Cannam
h3. Instrument restrictions
20 5 Chris Cannam
21 5 Chris Cannam
Presumably the method can run much faster if we are able to tell it that a piece has only one instrument in it. We might offer a dropdown of "all known instruments", "piano", "trombone" etc.
22 1 Chris Cannam
23 13 Chris Cannam
Apart from speeding up the plugin by reducing the number of templates to consider, this could also get better results by adding other templates (e.g. multiple versions of a single instrument -- if you only have piano, it could use all 3 piano templates, whereas for multiple instruments you don't necessarily want to take the time?) or adjusting other parameters (e.g. sparsity constraints for monophonic instruments).
24 13 Chris Cannam
25 10 Chris Cannam
We could separately have options for instruments to detect and instruments to return -- e.g. detect all instruments but return only the piano, or detect only the piano and return that, etc.
26 10 Chris Cannam
27 10 Chris Cannam
That sounds confusing. But the confusion may be intrinsic to the meaning of "which instrument I detect" -- if you tell the plugin to detect only piano, that doesn't mean it will separate out the piano from other instruments; you have to get it to detect all the other instruments too, if you want to be able to separate out the piano. Detecting only the piano basically means you're telling it there are no other instruments, as a pure performance optimisation.
28 10 Chris Cannam
29 10 Chris Cannam
It may be possible to phrase this so as to resolve some of the confusion. But it's also possible that the instrument identification isn't reliable enough to base a feature like this on anyway? I don't know, I haven't tested...
30 9 Chris Cannam
31 8 Chris Cannam
h3. ...and Possibilities for Plugin Outputs
32 3 Chris Cannam
33 6 Chris Cannam
Currently we have one main output
34 3 Chris Cannam
35 7 Chris Cannam
 * Note transcription, including pitch in Hz and velocity
36 6 Chris Cannam
37 6 Chris Cannam
and three "intermediate data" outputs
38 6 Chris Cannam
39 1 Chris Cannam
 * Raw constant-Q
40 3 Chris Cannam
 * Filtered constant-Q
41 6 Chris Cannam
 * Pitch activation matrix
42 5 Chris Cannam
43 11 Chris Cannam
May be worth remarking that as SV displays the outputs in alphabetical order, Note Transcription is not the first (filtered CQ is). That's bad, and suggests the filtered CQ output should be renamed or removed.
44 11 Chris Cannam
45 5 Chris Cannam
What else does the plugin know, that might be interesting?
46 1 Chris Cannam
47 5 Chris Cannam
 * Identity of predominant instrument, or of the estimated instrument for each note (not currently returned through the note transcription)
48 7 Chris Cannam
 * Approximate tuning, from the 5-step shift factor -- we currently return pitch in Hz but it's calculated only from the MIDI note, is there any merit in optionally returning a theoretically finer tuning?