| 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;
|