summaryrefslogtreecommitdiff
path: root/libs/ardour/audioanalyser.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-03-30 11:29:31 +0200
committerRobin Gareus <robin@gareus.org>2015-03-30 11:29:31 +0200
commitb03e2f00e3640a4d49ceecc858ff521e5ea65903 (patch)
treee6145b557b07c3a608f6dd8079cbb394e8572543 /libs/ardour/audioanalyser.cc
parentda42014c4d0508725447b820446eff94be241a19 (diff)
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.
Diffstat (limited to 'libs/ardour/audioanalyser.cc')
-rw-r--r--libs/ardour/audioanalyser.cc6
1 files changed, 3 insertions, 3 deletions
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;