Wiki » History » Version 15
Chris Cannam, 2013-05-17 10:23 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 | 15 | 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. |
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. |