diff vamp/CQVamp.cpp @ 147:1060a19e2334

Report validity of CQKernel construction, and avoid NaN values for invalid parameters. Also documentation.
author Chris Cannam <c.cannam@qmul.ac.uk>
date Thu, 10 Jul 2014 12:19:39 +0100
parents 1e33f719dde1
children 459beada2635
line wrap: on
line diff
--- a/vamp/CQVamp.cpp	Fri Jun 20 10:33:11 2014 +0100
+++ b/vamp/CQVamp.cpp	Thu Jul 10 12:19:39 2014 +0100
@@ -286,8 +286,12 @@
             (m_maxMIDIPitch, 0, m_tuningFrequency);
     }
 
-    CQParameters p(m_inputSampleRate, m_minFrequency, m_maxFrequency, m_bpo);
-    m_cq = new CQSpectrogram(p, m_interpolation);
+    reset();
+
+    if (!m_cq || !m_cq->isValid()) {
+        cerr << "CQVamp::initialise: Constant-Q parameters not valid! Not initialising" << endl;
+        return false;
+    }
 
     return true;
 }
@@ -295,11 +299,9 @@
 void
 CQVamp::reset()
 {
-    if (m_cq) {
-	delete m_cq;
-        CQParameters p(m_inputSampleRate, m_minFrequency, m_maxFrequency, m_bpo);
-        m_cq = new CQSpectrogram(p, m_interpolation);
-    }
+    delete m_cq;
+    CQParameters p(m_inputSampleRate, m_minFrequency, m_maxFrequency, m_bpo);
+    m_cq = new CQSpectrogram(p, m_interpolation);
     m_haveStartTime = false;
     m_columnCount = 0;
 }