Revision 190:060c75dcce37 vamp/CQVamp.cpp

View differences:

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