add a script to exercise varispeed playback
authorRobin Gareus <robin@gareus.org>
Sat, 23 Jul 2016 15:39:53 +0000 (17:39 +0200)
committerRobin Gareus <robin@gareus.org>
Sun, 24 Jul 2016 11:00:15 +0000 (13:00 +0200)
scripts/varispeed_callback.lua [new file with mode: 0644]

diff --git a/scripts/varispeed_callback.lua b/scripts/varispeed_callback.lua
new file mode 100644 (file)
index 0000000..c61a15d
--- /dev/null
@@ -0,0 +1,32 @@
+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