From b03e2f00e3640a4d49ceecc858ff521e5ea65903 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 30 Mar 2015 11:29:31 +0200 Subject: hack AudioAnalyzer for VAMP Onsetdetect This works around a bug in OnsetDetector. It requests a buffer of 1114 samples but later FFT bails out if the buffer size is not a power-of-two. Also large buffersizes fail. Work-around: use ADAPT_ALL_SAFE (no buffersize adapter), use a reasonably small buffersize. The current settings work, even though it produces the following warnings (vamp-plugins/OnsetDetect.cpp) WARNING: OnsetDetector::initialise: Possibly sub-optimal step size for this sample rate: 512 (wanted 557) WARNING: OnsetDetector::initialise: Possibly sub-optimal block size for this sample rate: 1024 (wanted 1114) This commit should be reverted once VAMP/QM/aubio is updated/fixed. --- libs/ardour/audioanalyser.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'libs/ardour/audioanalyser.cc') diff --git a/libs/ardour/audioanalyser.cc b/libs/ardour/audioanalyser.cc index fd30744a74..ab74238818 100644 --- a/libs/ardour/audioanalyser.cc +++ b/libs/ardour/audioanalyser.cc @@ -64,7 +64,7 @@ AudioAnalyser::initialize_plugin (AnalysisPluginKey key, float sr) PluginLoader* loader (PluginLoader::getInstance()); - plugin = loader->loadPlugin (key, sr, PluginLoader::ADAPT_ALL); + plugin = loader->loadPlugin (key, sr, PluginLoader::ADAPT_ALL_SAFE); if (!plugin) { error << string_compose (_("VAMP Plugin \"%1\" could not be loaded"), key) << endmsg; @@ -75,8 +75,8 @@ AudioAnalyser::initialize_plugin (AnalysisPluginKey key, float sr) something that makes for efficient disk i/o */ - bufsize = 65536; - stepsize = bufsize; + bufsize = 1024; + stepsize = 512; if (plugin->getMinChannelCount() > 1) { delete plugin; -- cgit v1.2.3