Wiki » History » Version 16
Chris Cannam, 2013-05-17 10:24 PM
1 | 1 | Chris Cannam | h1. Wiki |
---|---|---|---|
2 | 1 | Chris Cannam | |
3 | 10 | Chris Cannam | h2. The method |
4 | 10 | Chris Cannam | |
5 | 14 | Chris Cannam | *The method to be implemented* is that from "Anssi's Constant-Q Toolbox page":http://www.eecs.qmul.ac.uk/~anssik/cqt/. |
6 | 1 | Chris Cannam | |
7 | 1 | Chris Cannam | * The MATLAB toolbox reference implementation is "here":/projects/constant-q-toolbox. |
8 | 1 | Chris Cannam | |
9 | 16 | Chris Cannam | * The "QM-DSP":/projects/qm-dsp library also contains a Constant-Q implementation: there is a Vamp plugin of it in the "QM Vamp Plugins":/projects/qm-vamp-plugins set. I believe it is based on the method of Brown and Puckette. Our version isn't very good. Among other things, we should aim to produce an improved plugin. But this one may be useful as an extra reference. |
10 | 4 | Chris Cannam | |
11 | 8 | Chris Cannam | *Has anyone already made one* corresponding directly to the Schörkhuber/Klapuri method? We don't want to duplicate effort. And if someone has, why don't I know about it? -- can we do anything to help make it more universally known? |
12 | 9 | Chris Cannam | |
13 | 9 | Chris Cannam | *What other modern methods* exist in C++? |
14 | 10 | Chris Cannam | |
15 | 10 | Chris Cannam | h2. What we want it for |
16 | 1 | Chris Cannam | |
17 | 11 | Chris Cannam | The immediate requirement is as the first step in implementing Emmanouil Benetos and Simon Dixon's "music transcription":http://www.mitpressjournals.org/doi/abs/10.1162/COMJ_a_00146 method for a Vamp plugin. |
18 | 11 | Chris Cannam | |
19 | 11 | Chris Cannam | But the reason we aren't using the QM-DSP constant-Q implementation is that it simply isn't good enough, and that means it isn't really good enough for the rest of the world either. We should make a better one to improve upon the existing QM Vamp Plugin as well. |
20 | 13 | Chris Cannam | |
21 | 13 | Chris Cannam | h2. Implementation notes |
22 | 13 | Chris Cannam | |
23 | 13 | Chris Cannam | The Schörkhuber/Klapuri method has (at least) three useful qualities: |
24 | 13 | Chris Cannam | |
25 | 1 | Chris Cannam | # It's mathematically diligent. Decisions such as kernel and window shape are explained and supported in the paper. |
26 | 14 | Chris Cannam | # It is invertible. |
27 | 14 | Chris Cannam | # There is a MATLAB implementation available, and others have tested it. |