Mercurial > hg > constant-q-cpp
diff src/ConstantQ.cpp @ 127:8996465e39fc
Expose some more processing parameters, use a single parameter class
author | Chris Cannam <c.cannam@qmul.ac.uk> |
---|---|
date | Fri, 16 May 2014 10:12:03 +0100 |
parents | 2375457f2876 |
children | 9bdabd830609 |
line wrap: on
line diff
--- a/src/ConstantQ.cpp Fri May 16 09:06:34 2014 +0100 +++ b/src/ConstantQ.cpp Fri May 16 10:12:03 2014 +0100 @@ -47,17 +47,15 @@ //#define DEBUG_CQ 1 -ConstantQ::ConstantQ(double sampleRate, - double minFreq, - double maxFreq, - int binsPerOctave) : - m_sampleRate(sampleRate), - m_maxFrequency(maxFreq), - m_minFrequency(minFreq), - m_binsPerOctave(binsPerOctave), +ConstantQ::ConstantQ(CQParameters params) : + m_inparams(params), + m_sampleRate(params.sampleRate), + m_maxFrequency(params.maxFrequency), + m_minFrequency(params.minFrequency), + m_binsPerOctave(params.binsPerOctave), m_fft(0) { - if (minFreq <= 0.0 || maxFreq <= 0.0) { + if (m_minFrequency <= 0.0 || m_maxFrequency <= 0.0) { throw std::invalid_argument("Frequency extents must be positive"); } @@ -89,7 +87,7 @@ ConstantQ::initialise() { m_octaves = int(ceil(log2(m_maxFrequency / m_minFrequency))); - m_kernel = new CQKernel(m_sampleRate, m_maxFrequency, m_binsPerOctave); + m_kernel = new CQKernel(m_inparams); m_p = m_kernel->getProperties(); // Use exact powers of two for resampling rates. They don't have