--- /dev/null
+ardour {
+ ["type"] = "EditorHook",
+ name = "Varispeed Test - 100ms Callback",
+ author = "Ardour Lua Task Force",
+ description = "An example script that invokes a callback a every 0.1sec and modifies the transport speed",
+}
+
+function signals ()
+ s = LuaSignal.Set()
+ s:add (
+ {
+ [LuaSignal.LuaTimerDS] = true,
+ }
+ )
+ return s
+end
+
+function factory (params)
+ -- upindex variables
+ local cnt = 0
+ local speed = 0
+ local delta = 0.01
+ return function (signal, ref, ...)
+ cnt = (cnt + 1) % 5 -- divide clock: every half a second
+ if cnt == 0 then
+ if speed < -0.25 then delta = delta * -1 end
+ if speed > 0.25 then delta = delta * -1 end
+ speed = speed + delta
+ Session:request_transport_speed (speed)
+ end
+ end
+end