summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorNikolaus Gullotta <nikolaus.gullotta@gmail.com>2018-07-17 12:55:43 -0500
committerNikolaus Gullotta <nikolaus.gullotta@gmail.com>2018-07-17 12:55:43 -0500
commit49d8d4ad77fa71bc33c1586c87bc296906fbda87 (patch)
treed7813cf6beaf80b76a2071519246712c45053d0a /scripts
parent3a64d355b788b6a46513d0d22db5c77bc60356c9 (diff)
Create ardour-friendly version of reset_mb4_mixer Lua script
Diffstat (limited to 'scripts')
-rw-r--r--scripts/reset_mixer.lua85
1 files changed, 85 insertions, 0 deletions
diff --git a/scripts/reset_mixer.lua b/scripts/reset_mixer.lua
new file mode 100644
index 0000000000..d4e0521b26
--- /dev/null
+++ b/scripts/reset_mixer.lua
@@ -0,0 +1,85 @@
+ardour {
+ ["type"] = "EditorAction",
+ name = "Reset Mixer",
+ author = "Ben Loftis, Nikolaus Gullotta",
+ description = [[Resets key Mixer settings after user-prompt (warning: this cannot be undone)]]
+}
+
+function factory() return function()
+
+ local dlg = {
+ { type = "label", align ="left", colspan="3", title = "Select the items to reset:" },
+ { type = "checkbox", key = "fader", default = true, title = "Fader" },
+ { type = "checkbox", key = "mute", default = true, title = "Mute" },
+ { type = "checkbox", key = "trim", default = true, title = "Trim + Phase" },
+ { type = "checkbox", key = "plug", default = true, title = "Plug-ins" },
+ { type = "checkbox", key = "dest", default = false, title = "Remove plug-ins instead of bypassing?" },
+ { type = "label", colspan="3", title = "" },
+ { type = "label", colspan="3", title = "Note that this is a script which can be user-edited to match your needs." },
+ { type = "label", colspan="3", title = "" },
+ }
+
+ local pref = LuaDialog.Dialog("Reset Mixer", dlg):run()
+ if not(pref) then goto end_script end
+ assert(pref, 'Dialog box was cancelled or is ' .. type(pref))
+
+ Session:cancel_all_solo()
+ -- loop over all tracks
+ for t in Session:get_routes():iter() do
+ if not t:is_monitor() and not t:is_auditioner() then
+ --zero the fader and input trim
+ if pref["fader"] then t:gain_control():set_value(1, 1) end
+ if pref["trim"] then
+ t:trim_control():set_value(1, 1)
+ t:phase_control():set_value(0, 1)
+ end
+ if pref["mute"] then t:mute_control():set_value(0, 1) end
+ if not(t:pan_azimuth_control():isnil()) then
+ if pref["pan"] then
+ t:pan_azimuth_control():set_value(0.5, 1)
+ end
+ end
+
+ i = 0
+ local proc = t:nth_processor (i)
+ local queue = {}
+
+ local protected = {
+ "recorder", "latcomp-", "player",
+ "Polarity", "Trim", "Fader",
+ "meter-", "main outs", "Monitor",
+ }
+
+ repeat
+ local name = proc:display_name()
+ --check if processor is foreign to us
+ protected_proc = false
+ for _, v in pairs(protected) do
+ if string.find(name, v) then
+ --processor is not foreign to us
+ protected_proc = true
+ end
+ end
+
+ if not(protected_proc) and proc:display_to_user() then
+ print(name)
+ queue[#queue + 1] = proc
+ end
+
+ i = i + 1
+ proc = t:nth_processor(i)
+ until proc:isnil()
+
+ for p = 1, #queue do
+ if pref['plug'] then
+ if not(pref["dest"]) then
+ queue[p]:deactivate()
+ else
+ t:remove_processor(queue[p], nil, true)
+ end
+ end
+ end
+ end
+ end
+ ::end_script::
+end end