#include "ardour/readable.h"
#include "ardour/transient_detector.h"
-#include "i18n.h"
+#include "pbd/i18n.h"
using namespace Vamp;
using namespace ARDOUR;
}
void
-TransientDetector::set_sensitivity (float val)
+TransientDetector::set_sensitivity (uint32_t mode, float val)
{
if (plugin) {
- plugin->selectProgram ("Percussive onsets");
- plugin->setParameter ("sensitivity", val);
+ // see libs/vamp-plugins/OnsetDetect.cpp
+ //plugin->selectProgram ("General purpose"); // dftype = 3, sensitivity = 50, whiten = 0 (default)
+ //plugin->selectProgram ("Percussive onsets"); // dftype = 4, sensitivity = 40, whiten = 0
+ plugin->setParameter ("dftype", mode);
+ plugin->setParameter ("sensitivity", std::min (100.f, std::max (0.f, val)));
+ plugin->setParameter ("whiten", 0);
}
}
// move f until we find a new value that is far enough away
- while ((f != t.end()) && (((*f) - (*i)) < gap_frames)) {
+ while ((f != t.end()) && gap_frames > 0 && (((*f) - (*i)) < gap_frames)) {
++f;
}