ardour/share/scripts/_kill_automation.lua

43 lines
1.1 KiB
Lua

ardour {
["type"] = "EditorAction",
name = "Clear All Automation",
license = "MIT",
author = "Robin Gareus",
description = [[Clear all automation]]
}
function factory() return function()
Session:begin_reversible_command ("Clear All Automation")
function reset_automatable (auto)
local params = auto:all_automatable_params ()
for param in params:iter() do
local ac = auto:automation_control (param, false) -- ARDOUR:AutomationControl
ac:set_automation_state (ARDOUR.AutoState.Off)
local al = ac:alist () -- ARDOUR:AutomationList
local before = al:get_state ()
al:clear_list () -- delete all events
local after = al:get_state ()
Session:add_command (al:memento_command (before, after))
end
end
for route in Session:get_routes():iter() do
reset_automatable (route:to_automatable ())
local i = 0
repeat
local proc = route:nth_processor(i)
if not proc:isnil() and proc:display_to_user () then
reset_automatable (proc:to_automatable ())
end
i = i + 1
until proc:isnil()
end
if not Session:abort_empty_reversible_command () then
Session:commit_reversible_command (nil)
end
end end