Adjust includes for subrepo aubio
[vamp-aubio-plugins.git] / plugins / Pitch.cpp
index f1620c4..5fd3730 100644 (file)
@@ -31,6 +31,7 @@ getFrequencyForMIDIPitch(int midiPitch)
 Pitch::Pitch(float inputSampleRate) :
     Plugin(inputSampleRate),
     m_ibuf(0),
 Pitch::Pitch(float inputSampleRate) :
     Plugin(inputSampleRate),
     m_ibuf(0),
+    m_obuf(0),
     m_pitchdet(0),
     m_pitchtype(PitchYinFFT),
     m_minfreq(getFrequencyForMIDIPitch(32)),
     m_pitchdet(0),
     m_pitchtype(PitchYinFFT),
     m_minfreq(getFrequencyForMIDIPitch(32)),
@@ -99,13 +100,7 @@ Pitch::initialise(size_t channels, size_t stepSize, size_t blockSize)
     m_ibuf = new_fvec(stepSize);
     m_obuf = new_fvec(1);
 
     m_ibuf = new_fvec(stepSize);
     m_obuf = new_fvec(1);
 
-    m_pitchdet = new_aubio_pitch
-        (const_cast<char *>(getAubioNameForPitchType(m_pitchtype)),
-         blockSize,
-         stepSize,
-         lrintf(m_inputSampleRate));
-
-    aubio_pitch_set_unit(m_pitchdet, "freq");
+    reset();
 
     return true;
 }
 
     return true;
 }
@@ -113,6 +108,15 @@ Pitch::initialise(size_t channels, size_t stepSize, size_t blockSize)
 void
 Pitch::reset()
 {
 void
 Pitch::reset()
 {
+    if (m_pitchdet) del_aubio_pitch(m_pitchdet);
+
+    m_pitchdet = new_aubio_pitch
+        (const_cast<char *>(getAubioNameForPitchType(m_pitchtype)),
+         m_blockSize,
+         m_stepSize,
+         lrintf(m_inputSampleRate));
+
+    aubio_pitch_set_unit(m_pitchdet, const_cast<char *>("freq"));
 }
 
 size_t
 }
 
 size_t