Pitch::Pitch(float inputSampleRate) :
Plugin(inputSampleRate),
m_ibuf(0),
+ m_obuf(0),
m_pitchdet(0),
m_pitchtype(PitchYinFFT),
m_minfreq(getFrequencyForMIDIPitch(32)),
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;
}
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