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