X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=scripts%2F_vamp_example.lua;h=73552d638c7c0692543d103329e59b1230388442;hb=098b0f8a8b904313bc2e9e3147cc3c05fd83f3e6;hp=da400265aea8a8e79ace092a4c74acbd7500b501;hpb=2607e154eac7bdc92bf881af2fdb1cb895b19e1d;p=ardour.git diff --git a/scripts/_vamp_example.lua b/scripts/_vamp_example.lua index da400265ae..73552d638c 100644 --- a/scripts/_vamp_example.lua +++ b/scripts/_vamp_example.lua @@ -1,9 +1,20 @@ 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 () - local vamp = ARDOUR.LuaAPI.Vamp("libardourvampplugins:dBTP", Session:nominal_frame_rate()) + -- 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_sample_rate()) print (vamp:plugin():getName()) -- for each selected region @@ -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