+#ifdef HAVE_AUBIO4
+ if (m_onsetdet) del_aubio_onset(m_onsetdet);
+
+ m_onsetdet = new_aubio_onset
+ (const_cast<char *>(getAubioNameForOnsetType(m_onsettype)),
+ m_blockSize,
+ m_stepSize,
+ lrintf(m_inputSampleRate));
+
+ aubio_onset_set_threshold(m_onsetdet, m_threshold);
+ aubio_onset_set_silence(m_onsetdet, m_silence);
+ aubio_onset_set_minioi(m_onsetdet, m_minioi);
+
+ m_delay = Vamp::RealTime::frame2RealTime(4 * m_stepSize,
+ lrintf(m_inputSampleRate));
+
+ m_lastOnset = Vamp::RealTime::zeroTime - m_delay - m_delay;
+#else
+ if (m_onsetdet) aubio_onsetdetection_free(m_onsetdet);
+ if (m_peakpick) del_aubio_peakpicker(m_peakpick);
+
+ m_peakpick = new_aubio_peakpicker(m_threshold);
+ m_onsetdet = new_aubio_onsetdetection(m_onsettype, m_blockSize, m_channelCount);
+#endif