diff NNLSChroma.cpp @ 164:3c731acad404

Fix some problems from the plugin tester: zero sample rate with fixed sample type outputs; mismatching parameter id ("spectralshape" in Chordino, "s" in NNLSBase -- changing this in Chordino won't break anything as it would never have worked under that name anyway); some NaN values
author Chris Cannam
date Fri, 04 Sep 2015 16:45:37 +0100
parents 59b26f52550d
children
line wrap: on
line diff
--- a/NNLSChroma.cpp	Fri Sep 04 12:22:09 2015 +0100
+++ b/NNLSChroma.cpp	Fri Sep 04 16:45:37 2015 +0100
@@ -84,6 +84,9 @@
     
     int index = 0;
 
+    float featureRate =
+        (m_stepSize == 0) ? m_inputSampleRate/2048 : m_inputSampleRate/m_stepSize;
+
     OutputDescriptor logfreqspecOutput;
     logfreqspecOutput.identifier = "logfreqspec";
     logfreqspecOutput.name = "Log-Frequency Spectrum";
@@ -95,7 +98,7 @@
     logfreqspecOutput.isQuantized = false;
     logfreqspecOutput.sampleType = OutputDescriptor::FixedSampleRate;
     logfreqspecOutput.hasDuration = false;
-    logfreqspecOutput.sampleRate = (m_stepSize == 0) ? m_inputSampleRate/2048 : m_inputSampleRate/m_stepSize;
+    logfreqspecOutput.sampleRate = featureRate;
     list.push_back(logfreqspecOutput);
     m_outputLogfreqspec = index++;
 
@@ -110,7 +113,7 @@
     tunedlogfreqspecOutput.isQuantized = false;
     tunedlogfreqspecOutput.sampleType = OutputDescriptor::FixedSampleRate;
     tunedlogfreqspecOutput.hasDuration = false;
-    tunedlogfreqspecOutput.sampleRate = (m_stepSize == 0) ? m_inputSampleRate/2048 : m_inputSampleRate/m_stepSize;
+    tunedlogfreqspecOutput.sampleRate = featureRate;
     list.push_back(tunedlogfreqspecOutput);
     m_outputTunedlogfreqspec = index++;
     
@@ -125,7 +128,7 @@
     semitonespectrumOutput.isQuantized = false;
     semitonespectrumOutput.sampleType = OutputDescriptor::FixedSampleRate;
     semitonespectrumOutput.hasDuration = false;
-    semitonespectrumOutput.sampleRate = (m_stepSize == 0) ? m_inputSampleRate/2048 : m_inputSampleRate/m_stepSize;
+    semitonespectrumOutput.sampleRate = featureRate;
     list.push_back(semitonespectrumOutput);
     m_outputSemitonespectrum = index++;
     
@@ -141,7 +144,7 @@
     chromaOutput.isQuantized = false;
     chromaOutput.sampleType = OutputDescriptor::FixedSampleRate;
     chromaOutput.hasDuration = false;
-    chromaOutput.sampleRate = (m_stepSize == 0) ? m_inputSampleRate/2048 : m_inputSampleRate/m_stepSize;
+    chromaOutput.sampleRate = featureRate;
     list.push_back(chromaOutput);
     m_outputChroma = index++;
     
@@ -157,7 +160,7 @@
     basschromaOutput.isQuantized = false;
     basschromaOutput.sampleType = OutputDescriptor::FixedSampleRate;
     basschromaOutput.hasDuration = false;
-    basschromaOutput.sampleRate = (m_stepSize == 0) ? m_inputSampleRate/2048 : m_inputSampleRate/m_stepSize;
+    basschromaOutput.sampleRate = featureRate;
     list.push_back(basschromaOutput);
     m_outputBasschroma = index++;
     
@@ -173,7 +176,7 @@
     bothchromaOutput.isQuantized = false;
     bothchromaOutput.sampleType = OutputDescriptor::FixedSampleRate;
     bothchromaOutput.hasDuration = false;
-    bothchromaOutput.sampleRate = (m_stepSize == 0) ? m_inputSampleRate/2048 : m_inputSampleRate/m_stepSize;
+    bothchromaOutput.sampleRate = featureRate;
     list.push_back(bothchromaOutput);
     m_outputBothchroma = index++;    
     return list;