Lua bindings for convolution DSP
authorRobin Gareus <robin@gareus.org>
Thu, 18 Oct 2018 23:08:04 +0000 (01:08 +0200)
committerRobin Gareus <robin@gareus.org>
Fri, 19 Oct 2018 22:24:38 +0000 (00:24 +0200)
libs/ardour/luabindings.cc

index e2a659be7000a697537e1d29df537c2fce582e4f..58c5a0d97046d08a7211c14b59f4207ddad554a6 100644 (file)
@@ -40,6 +40,7 @@
 #include "ardour/buffer_set.h"
 #include "ardour/beats_samples_converter.h"
 #include "ardour/chan_mapping.h"
+#include "ardour/convolver.h"
 #include "ardour/dB.h"
 #include "ardour/delayline.h"
 #include "ardour/disk_reader.h"
@@ -2409,6 +2410,16 @@ LuaBindings::common (lua_State* L)
                .addRefFunction ("read", &ARDOUR::LTCReader::read)
                .endClass ()
 
+               .beginClass <DSP::Convolver> ("Convolver")
+               .addConstructor <void (*) (Session&, std::string const&, DSP::Convolver::IRChannelConfig, uint32_t)> ()
+               .addFunction ("run", &ARDOUR::DSP::Convolver::run)
+               .addFunction ("run_stereo", &ARDOUR::DSP::Convolver::run_stereo)
+               .addFunction ("latency", &ARDOUR::DSP::Convolver::latency)
+               .addFunction ("n_inputs", &ARDOUR::DSP::Convolver::n_inputs)
+               .addFunction ("n_outputs", &ARDOUR::DSP::Convolver::n_outputs)
+               .addFunction ("ready", &ARDOUR::DSP::Convolver::ready)
+               .endClass ()
+
                /* DSP enums */
                .beginNamespace ("BiquadType")
                .addConst ("LowPass", ARDOUR::DSP::Biquad::LowPass)
@@ -2435,6 +2446,12 @@ LuaBindings::common (lua_State* L)
                .addConst ("LTC_TV_FILM_24", LTC_TV_FILM_24)
                .endNamespace ()
 
+               .beginNamespace ("IRChannelConfig")
+               .addConst ("Mono", DSP::Convolver::Mono)
+               .addConst ("MonoToStereo", DSP::Convolver::MonoToStereo)
+               .addConst ("Stereo", DSP::Convolver::Stereo)
+               .endNamespace ()
+
                .beginClass <DSP::DspShm> ("DspShm")
                .addConstructor<void (*) (size_t)> ()
                .addFunction ("allocate", &DSP::DspShm::allocate)