NO-OP: reset_mixer.lua remove CR at line endings
This commit is contained in:
parent
7e039d4f3f
commit
215acaca2e
@ -1,262 +1,262 @@
|
||||
ardour {
|
||||
["type"] = "EditorAction",
|
||||
name = "Reset Mixer",
|
||||
license = "MIT",
|
||||
author = "Ben Loftis, Nikolaus Gullotta, Maxime Lecoq",
|
||||
description = [[Resets key mixer settings after user-prompt (warning: this cannot be undone)]]
|
||||
}
|
||||
|
||||
function factory() return function()
|
||||
local sp_radio_buttons = {Bypass="bypass", Remove="remove", Nothing=false}
|
||||
local dlg = {
|
||||
{type="label", align="left", colspan="3", title="Please select below the items you want to reset:" },
|
||||
{type="label", align="left", colspan="3", title="(Warning: this cannot be undone!)\n" },
|
||||
|
||||
{type="heading", align ="center", colspan="3", title = "Common Controls:" },
|
||||
{type="checkbox", key="fader", default=true, title="Fader" },
|
||||
{type="checkbox", key="mute", default=true, title="Mute" },
|
||||
{type="checkbox", key="solo", default=true, title="Solo" },
|
||||
{type="checkbox", key="trim", default=true, title="Trim" },
|
||||
{type="checkbox", key="pan", default=true, title="Pan (All)" },
|
||||
{type="checkbox", key="phase", default=true, title="Phase" },
|
||||
{type="checkbox", key="sends", default=true, title="Sends" },
|
||||
{type="checkbox", key="eq", default=true, title="EQ" },
|
||||
{type="checkbox", key="comp", default=true, title="Compressor" },
|
||||
|
||||
{type="heading", align="center", colspan="3", title="Processors:" },
|
||||
{type="radio", key="plugins", title="Plug-ins", values=sp_radio_buttons, default="Bypass" },
|
||||
{type="radio", key="io", title="Sends/Inserts", values=sp_radio_buttons, default="Bypass" },
|
||||
|
||||
{type="hseparator", title=""},
|
||||
|
||||
{type="heading", align="center", colspan="3", title="Misc." },
|
||||
{type="checkbox", key="auto", colspan="3", title = "Automation (switch to manual mode)" },
|
||||
{type="checkbox", key="rec", colspan="3", title = "Disable Record" },
|
||||
{type="checkbox", key="groups", colspan="3", title = "Groups" },
|
||||
{type="checkbox", key="vcas", colspan="3", title = "VCAs (unassign all)" },
|
||||
}
|
||||
|
||||
function reset(ctrl, disp, auto)
|
||||
local disp = disp or PBD.GroupControlDisposition.NoGroup
|
||||
|
||||
if not(ctrl:isnil()) then
|
||||
local pd = ctrl:desc()
|
||||
ctrl:set_value(pd.normal, disp)
|
||||
|
||||
if auto then
|
||||
ctrl:set_automation_state(auto)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function reset_eq_controls(route, disp, auto)
|
||||
if route:isnil() then
|
||||
return
|
||||
end
|
||||
|
||||
local disp = disp or PBD.GroupControlDisposition.NoGroup
|
||||
|
||||
reset(route:eq_enable_controllable(), disp, auto)
|
||||
|
||||
local i = 0
|
||||
repeat
|
||||
for _,ctrl in pairs({
|
||||
route:eq_freq_controllable(i),
|
||||
route:eq_gain_controllable(i),
|
||||
route:eq_q_controllable(i),
|
||||
}) do
|
||||
reset(ctrl, disp, auto)
|
||||
end
|
||||
i = i + 1
|
||||
until route:eq_freq_controllable(i):isnil()
|
||||
end
|
||||
|
||||
function reset_comp_controls(route, disp, auto)
|
||||
if route:isnil() then
|
||||
return
|
||||
end
|
||||
|
||||
local disp = disp or PBD.GroupControlDisposition.NoGroup
|
||||
|
||||
for _,ctrl in pairs({
|
||||
route:comp_enable_controllable(),
|
||||
route:comp_makeup_controllable(),
|
||||
route:comp_mode_controllable(),
|
||||
route:comp_speed_controllable(),
|
||||
route:comp_threshold_controllable(),
|
||||
}) do
|
||||
reset(ctrl, disp, auto)
|
||||
end
|
||||
end
|
||||
|
||||
function reset_send_controls(route, disp, auto)
|
||||
if route:isnil() then
|
||||
return
|
||||
end
|
||||
|
||||
local disp = disp or PBD.GroupControlDisposition.NoGroup
|
||||
|
||||
local i = 0
|
||||
repeat
|
||||
for _,ctrl in pairs({
|
||||
route:send_level_controllable(i),
|
||||
route:send_enable_controllable(i),
|
||||
route:send_pan_azimuth_controllable(i),
|
||||
route:send_pan_azimuth_enable_controllable(i),
|
||||
}) do
|
||||
reset(ctrl, disp, auto)
|
||||
end
|
||||
i = i + 1
|
||||
until route:send_enable_controllable(i):isnil()
|
||||
end
|
||||
|
||||
function reset_plugin_automation(plugin, state)
|
||||
if plugin:to_insert():isnil() then
|
||||
return
|
||||
end
|
||||
|
||||
local plugin = plugin:to_insert()
|
||||
local pc = plugin:plugin(0):parameter_count()
|
||||
for c = 0, pc do
|
||||
local ac = plugin:to_automatable():automation_control(Evoral.Parameter(ARDOUR.AutomationType.PluginAutomation, 0, c), false)
|
||||
if not(ac:isnil()) then
|
||||
ac:set_automation_state(state)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function reset_plugins(route, prefs, auto)
|
||||
if route:isnil() then
|
||||
return
|
||||
end
|
||||
|
||||
local i = 0
|
||||
local queue = {}
|
||||
repeat
|
||||
-- Plugins are queued to not invalidate this loop
|
||||
local proc = route:nth_processor(i)
|
||||
if not(proc:isnil()) then
|
||||
if prefs["auto"] then
|
||||
reset_plugin_automation(proc, auto)
|
||||
end
|
||||
if prefs["plugins"] then
|
||||
local insert = proc:to_insert()
|
||||
if not(insert:isnil()) then
|
||||
if insert:is_channelstrip() or not(insert:display_to_user()) then
|
||||
ARDOUR.LuaAPI.reset_processor_to_default(insert)
|
||||
else
|
||||
queue[#queue + 1] = proc
|
||||
end
|
||||
end
|
||||
end
|
||||
if prefs["io"] then
|
||||
local io_proc = proc:to_ioprocessor()
|
||||
if not(io_proc:isnil()) then
|
||||
queue[#queue + 1] = proc
|
||||
end
|
||||
end
|
||||
end
|
||||
i = i + 1
|
||||
until proc:isnil()
|
||||
|
||||
-- Deal with queue now
|
||||
for _, proc in pairs(queue) do
|
||||
if not(proc:to_insert():isnil()) then
|
||||
if prefs["plugins"] == "remove" then
|
||||
route:remove_processor(proc, nil, true)
|
||||
elseif prefs["plugins"] == "bypass" then
|
||||
proc:deactivate()
|
||||
end
|
||||
end
|
||||
if not(proc:to_ioprocessor():isnil()) then
|
||||
if prefs["io"] == "remove" then
|
||||
route:remove_processor(proc, nil, true)
|
||||
elseif prefs["io"] == "bypass" then
|
||||
proc:deactivate()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local pref = LuaDialog.Dialog("Reset Mixer", dlg):run()
|
||||
|
||||
if not(pref) then goto pass_script end
|
||||
assert(pref, "Dialog box was cancelled or is nil")
|
||||
|
||||
for route in Session:get_routes():iter() do
|
||||
local disp = PBD.GroupControlDisposition.NoGroup
|
||||
local auto = nil
|
||||
|
||||
if pref["auto"] then
|
||||
auto = ARDOUR.AutoState.Off
|
||||
end
|
||||
|
||||
if pref["eq"] then reset_eq_controls(route, disp, auto) end
|
||||
if pref["comp"] then reset_comp_controls(route, disp, auto) end
|
||||
if pref["sends"] then
|
||||
reset_send_controls(route, disp, auto)
|
||||
|
||||
-- Can't use reset() on this because ctrl:desc().normal
|
||||
-- for master_send_enable_controllable is 0, and we really
|
||||
-- want 1.
|
||||
local msec = route:master_send_enable_controllable()
|
||||
if not(msec:isnil()) then
|
||||
msec:set_value(1, disp)
|
||||
if auto then
|
||||
msec:set_automation_state(auto)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
reset_plugins(route, pref, auto)
|
||||
|
||||
if pref["rec"] then
|
||||
reset(route:rec_enable_control(), disp, auto)
|
||||
reset(route:rec_safe_control(), disp, auto)
|
||||
end
|
||||
|
||||
if pref["fader"] then
|
||||
reset(route:gain_control(), disp, auto)
|
||||
end
|
||||
|
||||
if pref["phase"] then
|
||||
reset(route:phase_control(), disp, auto)
|
||||
end
|
||||
|
||||
if pref["trim"] then
|
||||
reset(route:trim_control(), disp, auto)
|
||||
end
|
||||
|
||||
if pref["mute"] then
|
||||
reset(route:mute_control(), disp, auto)
|
||||
end
|
||||
|
||||
if pref["solo"] then
|
||||
reset(route:solo_control(), disp, auto)
|
||||
end
|
||||
|
||||
if pref["pan"] then
|
||||
reset(route:pan_azimuth_control(), disp, auto)
|
||||
reset(route:pan_elevation_control(), disp, auto)
|
||||
reset(route:pan_frontback_control(), disp, auto)
|
||||
reset(route:pan_lfe_control(), disp, auto)
|
||||
reset(route:pan_width_control(), disp, auto)
|
||||
end
|
||||
|
||||
if pref["vcas"] then
|
||||
local slave = route:to_slavable()
|
||||
if not(slave:isnil()) then
|
||||
for vca in Session:vca_manager():vcas():iter() do
|
||||
slave:unassign(vca)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if pref["groups"] then
|
||||
for group in Session:route_groups():iter() do
|
||||
Session:remove_route_group(group)
|
||||
end
|
||||
end
|
||||
::pass_script::
|
||||
end end
|
||||
ardour {
|
||||
["type"] = "EditorAction",
|
||||
name = "Reset Mixer",
|
||||
license = "MIT",
|
||||
author = "Ben Loftis, Nikolaus Gullotta, Maxime Lecoq",
|
||||
description = [[Resets key mixer settings after user-prompt (warning: this cannot be undone)]]
|
||||
}
|
||||
|
||||
function factory() return function()
|
||||
local sp_radio_buttons = {Bypass="bypass", Remove="remove", Nothing=false}
|
||||
local dlg = {
|
||||
{type="label", align="left", colspan="3", title="Please select below the items you want to reset:" },
|
||||
{type="label", align="left", colspan="3", title="(Warning: this cannot be undone!)\n" },
|
||||
|
||||
{type="heading", align ="center", colspan="3", title = "Common Controls:" },
|
||||
{type="checkbox", key="fader", default=true, title="Fader" },
|
||||
{type="checkbox", key="mute", default=true, title="Mute" },
|
||||
{type="checkbox", key="solo", default=true, title="Solo" },
|
||||
{type="checkbox", key="trim", default=true, title="Trim" },
|
||||
{type="checkbox", key="pan", default=true, title="Pan (All)" },
|
||||
{type="checkbox", key="phase", default=true, title="Phase" },
|
||||
{type="checkbox", key="sends", default=true, title="Sends" },
|
||||
{type="checkbox", key="eq", default=true, title="EQ" },
|
||||
{type="checkbox", key="comp", default=true, title="Compressor" },
|
||||
|
||||
{type="heading", align="center", colspan="3", title="Processors:" },
|
||||
{type="radio", key="plugins", title="Plug-ins", values=sp_radio_buttons, default="Bypass" },
|
||||
{type="radio", key="io", title="Sends/Inserts", values=sp_radio_buttons, default="Bypass" },
|
||||
|
||||
{type="hseparator", title=""},
|
||||
|
||||
{type="heading", align="center", colspan="3", title="Misc." },
|
||||
{type="checkbox", key="auto", colspan="3", title = "Automation (switch to manual mode)" },
|
||||
{type="checkbox", key="rec", colspan="3", title = "Disable Record" },
|
||||
{type="checkbox", key="groups", colspan="3", title = "Groups" },
|
||||
{type="checkbox", key="vcas", colspan="3", title = "VCAs (unassign all)" },
|
||||
}
|
||||
|
||||
function reset(ctrl, disp, auto)
|
||||
local disp = disp or PBD.GroupControlDisposition.NoGroup
|
||||
|
||||
if not(ctrl:isnil()) then
|
||||
local pd = ctrl:desc()
|
||||
ctrl:set_value(pd.normal, disp)
|
||||
|
||||
if auto then
|
||||
ctrl:set_automation_state(auto)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function reset_eq_controls(route, disp, auto)
|
||||
if route:isnil() then
|
||||
return
|
||||
end
|
||||
|
||||
local disp = disp or PBD.GroupControlDisposition.NoGroup
|
||||
|
||||
reset(route:eq_enable_controllable(), disp, auto)
|
||||
|
||||
local i = 0
|
||||
repeat
|
||||
for _,ctrl in pairs({
|
||||
route:eq_freq_controllable(i),
|
||||
route:eq_gain_controllable(i),
|
||||
route:eq_q_controllable(i),
|
||||
}) do
|
||||
reset(ctrl, disp, auto)
|
||||
end
|
||||
i = i + 1
|
||||
until route:eq_freq_controllable(i):isnil()
|
||||
end
|
||||
|
||||
function reset_comp_controls(route, disp, auto)
|
||||
if route:isnil() then
|
||||
return
|
||||
end
|
||||
|
||||
local disp = disp or PBD.GroupControlDisposition.NoGroup
|
||||
|
||||
for _,ctrl in pairs({
|
||||
route:comp_enable_controllable(),
|
||||
route:comp_makeup_controllable(),
|
||||
route:comp_mode_controllable(),
|
||||
route:comp_speed_controllable(),
|
||||
route:comp_threshold_controllable(),
|
||||
}) do
|
||||
reset(ctrl, disp, auto)
|
||||
end
|
||||
end
|
||||
|
||||
function reset_send_controls(route, disp, auto)
|
||||
if route:isnil() then
|
||||
return
|
||||
end
|
||||
|
||||
local disp = disp or PBD.GroupControlDisposition.NoGroup
|
||||
|
||||
local i = 0
|
||||
repeat
|
||||
for _,ctrl in pairs({
|
||||
route:send_level_controllable(i),
|
||||
route:send_enable_controllable(i),
|
||||
route:send_pan_azimuth_controllable(i),
|
||||
route:send_pan_azimuth_enable_controllable(i),
|
||||
}) do
|
||||
reset(ctrl, disp, auto)
|
||||
end
|
||||
i = i + 1
|
||||
until route:send_enable_controllable(i):isnil()
|
||||
end
|
||||
|
||||
function reset_plugin_automation(plugin, state)
|
||||
if plugin:to_insert():isnil() then
|
||||
return
|
||||
end
|
||||
|
||||
local plugin = plugin:to_insert()
|
||||
local pc = plugin:plugin(0):parameter_count()
|
||||
for c = 0, pc do
|
||||
local ac = plugin:to_automatable():automation_control(Evoral.Parameter(ARDOUR.AutomationType.PluginAutomation, 0, c), false)
|
||||
if not(ac:isnil()) then
|
||||
ac:set_automation_state(state)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function reset_plugins(route, prefs, auto)
|
||||
if route:isnil() then
|
||||
return
|
||||
end
|
||||
|
||||
local i = 0
|
||||
local queue = {}
|
||||
repeat
|
||||
-- Plugins are queued to not invalidate this loop
|
||||
local proc = route:nth_processor(i)
|
||||
if not(proc:isnil()) then
|
||||
if prefs["auto"] then
|
||||
reset_plugin_automation(proc, auto)
|
||||
end
|
||||
if prefs["plugins"] then
|
||||
local insert = proc:to_insert()
|
||||
if not(insert:isnil()) then
|
||||
if insert:is_channelstrip() or not(insert:display_to_user()) then
|
||||
ARDOUR.LuaAPI.reset_processor_to_default(insert)
|
||||
else
|
||||
queue[#queue + 1] = proc
|
||||
end
|
||||
end
|
||||
end
|
||||
if prefs["io"] then
|
||||
local io_proc = proc:to_ioprocessor()
|
||||
if not(io_proc:isnil()) then
|
||||
queue[#queue + 1] = proc
|
||||
end
|
||||
end
|
||||
end
|
||||
i = i + 1
|
||||
until proc:isnil()
|
||||
|
||||
-- Deal with queue now
|
||||
for _, proc in pairs(queue) do
|
||||
if not(proc:to_insert():isnil()) then
|
||||
if prefs["plugins"] == "remove" then
|
||||
route:remove_processor(proc, nil, true)
|
||||
elseif prefs["plugins"] == "bypass" then
|
||||
proc:deactivate()
|
||||
end
|
||||
end
|
||||
if not(proc:to_ioprocessor():isnil()) then
|
||||
if prefs["io"] == "remove" then
|
||||
route:remove_processor(proc, nil, true)
|
||||
elseif prefs["io"] == "bypass" then
|
||||
proc:deactivate()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local pref = LuaDialog.Dialog("Reset Mixer", dlg):run()
|
||||
|
||||
if not(pref) then goto pass_script end
|
||||
assert(pref, "Dialog box was cancelled or is nil")
|
||||
|
||||
for route in Session:get_routes():iter() do
|
||||
local disp = PBD.GroupControlDisposition.NoGroup
|
||||
local auto = nil
|
||||
|
||||
if pref["auto"] then
|
||||
auto = ARDOUR.AutoState.Off
|
||||
end
|
||||
|
||||
if pref["eq"] then reset_eq_controls(route, disp, auto) end
|
||||
if pref["comp"] then reset_comp_controls(route, disp, auto) end
|
||||
if pref["sends"] then
|
||||
reset_send_controls(route, disp, auto)
|
||||
|
||||
-- Can't use reset() on this because ctrl:desc().normal
|
||||
-- for master_send_enable_controllable is 0, and we really
|
||||
-- want 1.
|
||||
local msec = route:master_send_enable_controllable()
|
||||
if not(msec:isnil()) then
|
||||
msec:set_value(1, disp)
|
||||
if auto then
|
||||
msec:set_automation_state(auto)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
reset_plugins(route, pref, auto)
|
||||
|
||||
if pref["rec"] then
|
||||
reset(route:rec_enable_control(), disp, auto)
|
||||
reset(route:rec_safe_control(), disp, auto)
|
||||
end
|
||||
|
||||
if pref["fader"] then
|
||||
reset(route:gain_control(), disp, auto)
|
||||
end
|
||||
|
||||
if pref["phase"] then
|
||||
reset(route:phase_control(), disp, auto)
|
||||
end
|
||||
|
||||
if pref["trim"] then
|
||||
reset(route:trim_control(), disp, auto)
|
||||
end
|
||||
|
||||
if pref["mute"] then
|
||||
reset(route:mute_control(), disp, auto)
|
||||
end
|
||||
|
||||
if pref["solo"] then
|
||||
reset(route:solo_control(), disp, auto)
|
||||
end
|
||||
|
||||
if pref["pan"] then
|
||||
reset(route:pan_azimuth_control(), disp, auto)
|
||||
reset(route:pan_elevation_control(), disp, auto)
|
||||
reset(route:pan_frontback_control(), disp, auto)
|
||||
reset(route:pan_lfe_control(), disp, auto)
|
||||
reset(route:pan_width_control(), disp, auto)
|
||||
end
|
||||
|
||||
if pref["vcas"] then
|
||||
local slave = route:to_slavable()
|
||||
if not(slave:isnil()) then
|
||||
for vca in Session:vca_manager():vcas():iter() do
|
||||
slave:unassign(vca)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if pref["groups"] then
|
||||
for group in Session:route_groups():iter() do
|
||||
Session:remove_route_group(group)
|
||||
end
|
||||
end
|
||||
::pass_script::
|
||||
end end
|
||||
|
Loading…
Reference in New Issue
Block a user