Mercurial > hg > constant-q-cpp
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 |