comparison src/ConstantQ.cpp @ 178:2420733abeb6

Merge
author Chris Cannam <c.cannam@qmul.ac.uk>
date Fri, 17 Jul 2015 15:49:42 +0100
parents 7d4f4c51a4ad
children
comparison
equal deleted inserted replaced
174:5ed6e970541b 178:2420733abeb6
120 120
121 for (int i = 1; i < m_octaves; ++i) { 121 for (int i = 1; i < m_octaves; ++i) {
122 122
123 int factor = pow(2, i); 123 int factor = pow(2, i);
124 124
125 Resampler *r = new Resampler 125 Resampler *r;
126 (sourceRate, sourceRate / factor, 50, 0.05); 126
127 if (m_inparams.decimator == CQParameters::BetterDecimator) {
128 r = new Resampler
129 (sourceRate, sourceRate / factor, 50, 0.05);
130 } else {
131 r = new Resampler
132 (sourceRate, sourceRate / factor, 25, 0.3);
133 }
127 134
128 #ifdef DEBUG_CQ 135 #ifdef DEBUG_CQ
129 cerr << "forward: octave " << i << ": resample from " << sourceRate << " to " << sourceRate / factor << endl; 136 cerr << "forward: octave " << i << ": resample from " << sourceRate << " to " << sourceRate / factor << endl;
130 #endif 137 #endif
131 138
335 RealSequence ro(m_p.fftSize, 0.0); 342 RealSequence ro(m_p.fftSize, 0.0);
336 RealSequence io(m_p.fftSize, 0.0); 343 RealSequence io(m_p.fftSize, 0.0);
337 344
338 m_fft->forward(m_buffers[octave].data(), ro.data(), io.data()); 345 m_fft->forward(m_buffers[octave].data(), ro.data(), io.data());
339 346
340 RealSequence shifted; 347 m_buffers[octave] = RealSequence(m_buffers[octave].begin() + m_p.fftHop,
341 shifted.insert(shifted.end(), 348 m_buffers[octave].end());
342 m_buffers[octave].begin() + m_p.fftHop, 349
343 m_buffers[octave].end()); 350 ComplexSequence cv(m_p.fftSize);
344 m_buffers[octave] = shifted;
345
346 ComplexSequence cv;
347 for (int i = 0; i < m_p.fftSize; ++i) { 351 for (int i = 0; i < m_p.fftSize; ++i) {
348 cv.push_back(Complex(ro[i], io[i])); 352 cv[i] = Complex(ro[i], io[i]);
349 } 353 }
350 354
351 ComplexSequence cqrowvec = m_kernel->processForward(cv); 355 ComplexSequence cqrowvec = m_kernel->processForward(cv);
352 356
353 // Reform into a column matrix 357 // Reform into a column matrix