From 267170167d52cab9e97f879d9127a1cf04f6bb58 Mon Sep 17 00:00:00 2001 From: Martin Peach Date: Tue, 15 Mar 2011 20:53:57 +0000 Subject: 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. svn path=/trunk/externals/pdlua/; revision=15030 --- examples/ldelay2.pd_lua | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 examples/ldelay2.pd_lua (limited to 'examples/ldelay2.pd_lua') 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 -- cgit v1.2.1