Example Lua script to perform action at specific wallclock time
This commit is contained in:
parent
5e2d5db6c7
commit
2092934721
37
scripts/_cron.lua
Normal file
37
scripts/_cron.lua
Normal file
@ -0,0 +1,37 @@
|
||||
ardour {
|
||||
["type"] = "EditorHook",
|
||||
name = "Timed Event Example",
|
||||
author = "Ardour Lua Task Force",
|
||||
description = "Perform actions at specific wallclock time, example record",
|
||||
}
|
||||
|
||||
function signals ()
|
||||
return LuaSignal.Set():add ({[LuaSignal.LuaTimerDS] = true})
|
||||
end
|
||||
|
||||
function factory ()
|
||||
local _last_time = 0
|
||||
return function (signal, ref, ...)
|
||||
|
||||
-- calculate seconds since midnight
|
||||
function hhmmss (hh, mm, ss) return hh * 3600 + mm * 60 + ss end
|
||||
|
||||
-- current seconds since midnight UTC
|
||||
-- (unix-time is UTC, no leap seconds, a day always has 86400 sec)
|
||||
local now = os.time () % 86400
|
||||
|
||||
-- event at 09:30:00 UTC (here: rec-arm + roll)
|
||||
if (now >= hhmmss (09, 30, 00) and _last_time < hhmmss (09, 30, 00)) then
|
||||
Session:maybe_enable_record (false)
|
||||
Session:request_transport_speed (1.0, true)
|
||||
end
|
||||
|
||||
-- event at 09:32:00 UTC (here: rec-stop)
|
||||
if (now >= hhmmss (09, 32, 00) and _last_time < hhmmss (09, 32, 00)) then
|
||||
Session:disable_record (false, false)
|
||||
Session:request_transport_speed (0.0, true)
|
||||
end
|
||||
|
||||
_last_time = now
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue
Block a user