Revision 190:060c75dcce37 vamp/CQVamp.cpp
| vamp/CQVamp.cpp | ||
|---|---|---|
| 61 | 61 |
m_maxMIDIPitch(defaultMaxMIDIPitch), |
| 62 | 62 |
m_tuningFrequency(defaultTuningFrequency), |
| 63 | 63 |
m_bpo(defaultBPO), |
| 64 |
m_atomOverlap(4), |
|
| 65 |
m_useDraftDecimator(false), |
|
| 64 | 66 |
m_interpolation(CQSpectrogram::InterpolateLinear), |
| 65 | 67 |
m_cq(0), |
| 66 | 68 |
m_maxFrequency(defaultMaxFrequency), |
| ... | ... | |
| 114 | 116 |
int |
| 115 | 117 |
CQVamp::getPluginVersion() const |
| 116 | 118 |
{
|
| 117 |
return 2;
|
|
| 119 |
return 3;
|
|
| 118 | 120 |
} |
| 119 | 121 |
|
| 120 | 122 |
string |
| 121 | 123 |
CQVamp::getCopyright() const |
| 122 | 124 |
{
|
| 123 |
return "Plugin by Chris Cannam. Method by Christian Schörkhuber and Anssi Klapuri. Copyright (c) 2015 QMUL. BSD/MIT licence."; |
|
| 125 |
return "Plugin by Chris Cannam. Method by Christian Schörkhuber and Anssi Klapuri. Copyright (c) 2015-2017 QMUL. BSD/MIT licence.";
|
|
| 124 | 126 |
} |
| 125 | 127 |
|
| 126 | 128 |
CQVamp::ParameterList |
| ... | ... | |
| 198 | 200 |
desc.quantizeStep = 1; |
| 199 | 201 |
list.push_back(desc); |
| 200 | 202 |
|
| 203 |
desc.identifier = "atomoverlap"; |
|
| 204 |
desc.name = "Overlap"; |
|
| 205 |
desc.unit = ""; |
|
| 206 |
desc.description = "Overlap factor for CQ kernel atoms (higher = more output values per unit time)"; |
|
| 207 |
desc.minValue = 1; |
|
| 208 |
desc.maxValue = 8; |
|
| 209 |
desc.defaultValue = 4; |
|
| 210 |
desc.isQuantized = true; |
|
| 211 |
desc.quantizeStep = 1; |
|
| 212 |
list.push_back(desc); |
|
| 213 |
|
|
| 214 |
desc.identifier = "draftdecimator"; |
|
| 215 |
desc.name = "Use Draft Decimator"; |
|
| 216 |
desc.unit = ""; |
|
| 217 |
desc.description = "Trade off some decimator quality for faster speed"; |
|
| 218 |
desc.minValue = 0; |
|
| 219 |
desc.maxValue = 1; |
|
| 220 |
desc.defaultValue = 0; |
|
| 221 |
desc.isQuantized = true; |
|
| 222 |
desc.quantizeStep = 1; |
|
| 223 |
list.push_back(desc); |
|
| 224 |
|
|
| 201 | 225 |
desc.identifier = "interpolation"; |
| 202 | 226 |
desc.name = "Interpolation"; |
| 203 | 227 |
desc.unit = ""; |
| ... | ... | |
| 239 | 263 |
if (param == "maxfreq" && !m_midiPitchParameters) {
|
| 240 | 264 |
return m_maxFrequency; |
| 241 | 265 |
} |
| 266 |
if (param == "atomoverlap") {
|
|
| 267 |
return m_atomOverlap; |
|
| 268 |
} |
|
| 269 |
if (param == "draftdecimator") {
|
|
| 270 |
return m_useDraftDecimator ? 1.f : 0.f; |
|
| 271 |
} |
|
| 242 | 272 |
std::cerr << "WARNING: CQVamp::getParameter: unknown parameter \"" |
| 243 | 273 |
<< param << "\"" << std::endl; |
| 244 | 274 |
return 0.0; |
| ... | ... | |
| 261 | 291 |
m_minFrequency = value; |
| 262 | 292 |
} else if (param == "maxfreq" && !m_midiPitchParameters) {
|
| 263 | 293 |
m_maxFrequency = value; |
| 294 |
} else if (param == "atomoverlap") {
|
|
| 295 |
m_atomOverlap = int(value + 0.5f); |
|
| 296 |
} else if (param == "draftdecimator") {
|
|
| 297 |
m_useDraftDecimator = (value > 0.5f); |
|
| 264 | 298 |
} else {
|
| 265 | 299 |
std::cerr << "WARNING: CQVamp::setParameter: unknown parameter \"" |
| 266 | 300 |
<< param << "\"" << std::endl; |
| ... | ... | |
| 303 | 337 |
{
|
| 304 | 338 |
delete m_cq; |
| 305 | 339 |
CQParameters p(m_inputSampleRate, m_minFrequency, m_maxFrequency, m_bpo); |
| 340 |
p.atomHopFactor = 1.0 / double(m_atomOverlap); |
|
| 341 |
p.decimator = (m_useDraftDecimator ? |
|
| 342 |
CQParameters::FasterDecimator : |
|
| 343 |
CQParameters::BetterDecimator); |
|
| 306 | 344 |
m_cq = new CQSpectrogram(p, m_interpolation); |
| 307 | 345 |
m_haveStartTime = false; |
| 308 | 346 |
m_columnCount = 0; |
Also available in: Unified diff