diff --git a/libs/ardour/ardour/onset_detector.h b/libs/ardour/ardour/onset_detector.h index 40eac9b465..a77b84f890 100644 --- a/libs/ardour/ardour/onset_detector.h +++ b/libs/ardour/ardour/onset_detector.h @@ -37,6 +37,7 @@ public: void set_silence_threshold (float); void set_peak_threshold (float); + void set_minioi (float); void set_function (int); int run (const std::string& path, Readable*, uint32_t channel, AnalysisFeatureList& results); diff --git a/libs/ardour/onset_detector.cc b/libs/ardour/onset_detector.cc index 60fea6dabb..eb64a77433 100644 --- a/libs/ardour/onset_detector.cc +++ b/libs/ardour/onset_detector.cc @@ -92,6 +92,16 @@ OnsetDetector::set_peak_threshold (float val) } } +void +OnsetDetector::set_minioi (float val) +{ +#ifdef HAVE_AUBIO4 + if (plugin) { + plugin->setParameter ("minioi", val); + } +#endif +} + void OnsetDetector::set_function (int val) { diff --git a/libs/vamp-plugins/Onset.cpp b/libs/vamp-plugins/Onset.cpp index 93f90f9469..03e35ba3fe 100644 --- a/libs/vamp-plugins/Onset.cpp +++ b/libs/vamp-plugins/Onset.cpp @@ -166,6 +166,12 @@ Onset::reset() 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 }