Add script to clear all automation
This commit is contained in:
parent
8a6f630736
commit
6380b74211
42
share/scripts/_kill_automation.lua
Normal file
42
share/scripts/_kill_automation.lua
Normal file
@ -0,0 +1,42 @@
|
||||
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
|
Loading…
Reference in New Issue
Block a user