diff options
Diffstat (limited to 'share/scripts/s_pluginutils.lua')
-rw-r--r-- | share/scripts/s_pluginutils.lua | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/share/scripts/s_pluginutils.lua b/share/scripts/s_pluginutils.lua new file mode 100644 index 0000000000..e99bef7b93 --- /dev/null +++ b/share/scripts/s_pluginutils.lua @@ -0,0 +1,57 @@ +ardour { ["type"] = "Snippet", name = "Plugin Utils" } + +function factory () return function () + + ------------------------------------------------------------------------------- + -- List all Plugins + for p in ARDOUR.LuaAPI.list_plugins():iter() do + print (p.name, p.unique_id, p.type) + local psets = p:get_presets() + if not empty:empty() then + for pset in psets:iter() do + print (" - ", pset.label) + end + end + end + + ------------------------------------------------------------------------------- + -- add a Plugin (here LV2) to all mono tracks that contain the pattern "dru" + -- and load a plugin-preset (if it exists) + for r in Session:get_routes():iter() do + if (string.match (r:name(), "dru") and r:n_inputs():n_audio() == 1) then + local proc = ARDOUR.LuaAPI.new_plugin(Session, "http://gareus.org/oss/lv2/fil4#mono", ARDOUR.PluginType.LV2, "cutbass"); + assert (not proc:isnil()) + r:add_processor_by_index(proc, 0, nil, true) + end + end + + + ------------------------------------------------------------------------------- + -- load a plugin preset + route = Session:get_remote_nth_route(2) + assert (route) + -- to 4th plugin (from top), ardour starts counting at zero + plugin = route:nth_plugin(3):to_insert():plugin(0) + assert (not plugin:isnil()) + ps = plugin:preset_by_label("cutbass") -- get preset by name + assert (ps) + print (ps.uri) + plugin:load_preset (ps) + + + ------------------------------------------------------------------------------- + -- add a LuaProcessor (here "Scope") to all tracks + for t in Session:get_tracks():iter() do + local pos = 0 -- insert at the top + + -- the following two lines are equivalent + --local proc = ARDOUR.LuaAPI.new_luaproc(Session, "a-Inline Scope"); + local proc = ARDOUR.LuaAPI.new_plugin (Session, "a-Inline Scope", ARDOUR.PluginType.Lua, ""); + assert (not proc:isnil()) + + t:add_processor_by_index(proc, pos, nil, true) + -- optionally set some parameters + ARDOUR.LuaAPI.set_processor_param (proc, 0, 5) -- timescale 5sec + end + +end end |