Add Lua snippet to list and describe Vamp Plugins
authorRobin Gareus <robin@gareus.org>
Thu, 6 Oct 2016 15:50:57 +0000 (17:50 +0200)
committerRobin Gareus <robin@gareus.org>
Thu, 6 Oct 2016 15:50:57 +0000 (17:50 +0200)
scripts/s_vamp_plugin_index.lua [new file with mode: 0644]

diff --git a/scripts/s_vamp_plugin_index.lua b/scripts/s_vamp_plugin_index.lua
new file mode 100644 (file)
index 0000000..3c2965c
--- /dev/null
@@ -0,0 +1,41 @@
+ardour { ["type"] = "Snippet", name = "Vamp Plugin List" }
+function factory () return function ()
+
+       local plugins = ARDOUR.LuaAPI.Vamp.list_plugins ();
+       for id in plugins:iter () do
+               local vamp = ARDOUR.LuaAPI.Vamp(id, Session:nominal_frame_rate())
+               local vp = vamp:plugin ()
+               print (" --- VAMP Plugin ---")
+               print ("Id:", vp:getIdentifier ())
+               print ("Name:", vp:getName ())
+               print ("Description:", vp:getDescription ())
+
+               local progs = vp:getPrograms();
+               if not progs:empty () then
+                       print ("Preset(s):")
+                       for p in progs:iter () do
+                               print (" *", p)
+                       end
+               end
+
+               local params = vp:getParameterDescriptors ()
+               if not params:empty () then
+                       print ("Parameters(s):")
+                       for p in params:iter () do
+                               -- http://manual.ardour.org/lua-scripting/class_reference/#Vamp:PluginBase:ParameterDescriptor
+                               print (" * Id:", p.identifier, "Name:", p.name, "Desc:", p.description)
+                       end
+               end
+
+               local feats = vp:getOutputDescriptors ()
+               if not feats:empty () then
+                       print ("Output(s):")
+                       for p in feats:iter () do
+                               -- http://manual.ardour.org/lua-scripting/class_reference/#Vamp:Plugin:OutputDescriptor
+                               print (" * Id:", p.identifier, "Name:", p.name, "Desc:", p.description)
+                       end
+               end
+
+       end
+end end
+