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