From cd5d4b081e4f2c79778994ec8906e1276e2d9e44 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 5 Oct 2016 16:07:03 +0200 Subject: elaborate Lua-Vamp example --- scripts/_vamp_example.lua | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'scripts') diff --git a/scripts/_vamp_example.lua b/scripts/_vamp_example.lua index da400265ae..7b8b3e2a4e 100644 --- a/scripts/_vamp_example.lua +++ b/scripts/_vamp_example.lua @@ -1,8 +1,19 @@ ardour { ["type"] = "Snippet", name = "Vamp Plugin Example" } function factory () return function () + + -- get a list of all available plugins + -- http://manual.ardour.org/lua-scripting/class_reference/#ARDOUR:LuaAPI:Vamp + -- returns a http://manual.ardour.org/lua-scripting/class_reference/#C:StringVector + local plugins = ARDOUR.LuaAPI.Vamp.list_plugins (); + for id in plugins:iter () do + print ("--", id) + end + local sel = Editor:get_selection () + -- load the Vamp Plugin with Id "libardourvampplugins:dBTP" + -- http://manual.ardour.org/lua-scripting/class_reference/#ARDOUR:LuaAPI:Vamp local vamp = ARDOUR.LuaAPI.Vamp("libardourvampplugins:dBTP", Session:nominal_frame_rate()) print (vamp:plugin():getName()) @@ -17,6 +28,7 @@ function factory () return function () local f = vamp:plugin ():getRemainingFeatures () -- f is-a Vamp::Plugin::FeatureSet aka std::map + -- http://manual.ardour.org/lua-scripting/class_reference/#Vamp:Plugin:FeatureSet for id, featlist in f:iter () do print (id, featlist) end @@ -29,6 +41,7 @@ function factory () return function () end -- get the first feature.. + -- http://manual.ardour.org/lua-scripting/class_reference/#Vamp:Plugin:Feature local feature = featurelist:at(0) -- ..and the values of the feature, which is-a std::vector local values = feature.values @@ -38,12 +51,13 @@ function factory () return function () end -- access the first element of Vamp::Plugin::Feature's "values" vector + -- http://manual.ardour.org/lua-scripting/class_reference/#C:FloatVector local value = values:at(0) - -- in case of libardourvampplugins:dBTP that's the true-peak - local dbtp = 20 * math.log (value) / math.log(10) + -- in case of libardourvampplugins:dBTP that's the true-peak (signal value) + local dbtp = 20 * math.log (value) / math.log(10) -- convert it to dB print (string.format ("Region '%s': %.2f dBTP", r:name (), dbtp)) - -- reset the plugin + -- reset the plugin for the next iteration vamp:reset () end end end -- cgit v1.2.3