Wiki » History » Version 14
Version 13 (Chris Cannam, 2013-05-17 10:21 PM) → Version 14/30 (Chris Cannam, 2013-05-17 10:22 PM)
h1. Wiki
h2. The method
*The
* The method to be implemented* implemented is that from "Anssi's Constant-Q Toolbox page":http://www.eecs.qmul.ac.uk/~anssik/cqt/.
* The MATLAB toolbox reference implementation is "here":/projects/constant-q-toolbox.
* The "QM-DSP":/projects/qm-dsp library 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.
*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?
*What other modern methods* exist in C++?
h2. What we want it for
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.
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.
h2. Implementation notes
The Schörkhuber/Klapuri method has (at least) three useful qualities:
# It's mathematically diligent. Decisions such as kernel and window shape are explained and supported in the paper.
# It is invertible.
# There is a MATLAB implementation available, and others have tested it.
h2. The method
*The
* The method to be implemented* implemented is that from "Anssi's Constant-Q Toolbox page":http://www.eecs.qmul.ac.uk/~anssik/cqt/.
* The MATLAB toolbox reference implementation is "here":/projects/constant-q-toolbox.
* The "QM-DSP":/projects/qm-dsp library 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.
*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?
*What other modern methods* exist in C++?
h2. What we want it for
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.
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.
h2. Implementation notes
The Schörkhuber/Klapuri method has (at least) three useful qualities:
# It's mathematically diligent. Decisions such as kernel and window shape are explained and supported in the paper.
# It is invertible.
# There is a MATLAB implementation available, and others have tested it.