honor Vamp Plugin preferred step+block sizes.
authorRobin Gareus <robin@gareus.org>
Fri, 7 Oct 2016 12:37:09 +0000 (14:37 +0200)
committerRobin Gareus <robin@gareus.org>
Fri, 7 Oct 2016 12:37:09 +0000 (14:37 +0200)
libs/ardour/ardour/lua_api.h
libs/ardour/lua_api.cc

index dc6cec8d756b69a16356b9a6955b4a4a2df76d9d..017246cf1dcaa1f27bef806374ab5ae89410593f 100644 (file)
@@ -205,8 +205,10 @@ namespace ARDOUR { namespace LuaAPI {
 
                        /** initialize the plugin for use with analyze().
                         *
-                        * This is equivalent to plugin():initialise (1, 512, 1024)
+                        * This is equivalent to plugin():initialise (1, ssiz, bsiz)
                         * and prepares a plugin for analyze.
+                        * (by preferred step and block sizes are used. if the plugin
+                        * does not specify them or they're larger than 8K, both are set to 1024)
                         *
                         * Manual initialization is only required to set plugin-parameters
                         * which depend on prior initialization of the plugin.
index 2078fd4aa7ab182aa2029114a487242668ab44a9..6a2dbbe9f6d8e8fa6748c7ed5999af16cbc86000 100644 (file)
@@ -551,7 +551,7 @@ LuaAPI::Vamp::Vamp (const std::string& key, float sample_rate)
        : _plugin (0)
        , _sample_rate (sample_rate)
        , _bufsize (1024)
-       , _stepsize (512)
+       , _stepsize (1024)
        , _initialized (false)
 {
        using namespace ::Vamp::HostExt;
@@ -563,6 +563,14 @@ LuaAPI::Vamp::Vamp (const std::string& key, float sample_rate)
                PBD::error << string_compose (_("VAMP Plugin \"%1\" could not be loaded"), key) << endmsg;
                throw failed_constructor ();
        }
+
+       size_t bs = _plugin->getPreferredBlockSize ();
+       size_t ss = _plugin->getPreferredStepSize ();
+
+       if (bs > 0 && ss > 0 && bs <= 8192 && ss <= 8192) {
+               _bufsize = bs;
+               _stepsize = bs;
+       }
 }
 
 LuaAPI::Vamp::~Vamp ()