aboutsummaryrefslogtreecommitdiff
path: root/examples/ldelay2.pd_lua
diff options
context:
space:
mode:
authorMartin Peach <mrpeach@users.sourceforge.net>2011-03-15 20:53:57 +0000
committerMartin Peach <mrpeach@users.sourceforge.net>2011-03-15 20:53:57 +0000
commit267170167d52cab9e97f879d9127a1cf04f6bb58 (patch)
tree00260a90ce6472e34c5eff41602af57595c8830d /examples/ldelay2.pd_lua
This is a version of Claude Heiland-Allen's lua for Pd. The objects are named pdlua and pdluax instead of lua and luax. So far it seems to work on linux.svn2git-root
svn path=/trunk/externals/pdlua/; revision=15030
Diffstat (limited to 'examples/ldelay2.pd_lua')
-rw-r--r--examples/ldelay2.pd_lua51
1 files changed, 51 insertions, 0 deletions
diff --git a/examples/ldelay2.pd_lua b/examples/ldelay2.pd_lua
new file mode 100644
index 0000000..d6d681f
--- /dev/null
+++ b/examples/ldelay2.pd_lua
@@ -0,0 +1,51 @@
+-- test multiple clocks
+
+local LDelay = pd.Class:new():register("ldelay2")
+
+function LDelay:initialize(name, atoms)
+ if type(atoms[1]) ~= "number" or atoms[1] < 0 then
+ self.delay = 1000
+ else
+ self.delay = atoms[1]
+ end
+ self.inlets = 2
+ self.outlets = 2
+ return true
+end
+
+function LDelay:postinitialize()
+ self.clock1 = pd.Clock:new():register(self, "trigger1")
+ self.clock2 = pd.Clock:new():register(self, "trigger2")
+end
+
+function LDelay:finalize()
+ self.clock1:destruct()
+ self.clock2:destruct()
+end
+
+function LDelay:in_2_float(f)
+ self.delay = math.max(0, f)
+end
+
+function LDelay:in_1_float(f)
+ self:in_2_float(f)
+ self:in_1_bang()
+end
+
+function LDelay:in_1_bang()
+ self.clock1:delay(self.delay)
+ self.clock2:delay(self.delay * 2)
+end
+
+function LDelay:in_1_stop()
+ self.clock1:unset()
+ self.clock2:unset()
+end
+
+function LDelay:trigger1()
+ self:outlet(1, "bang", {})
+end
+
+function LDelay:trigger2()
+ self:outlet(2, "bang", {})
+end