Clock
new_clock
Create a Pd scheduler clock. Returns a Clock object.
Parameters:
- owner: The object instance (typically self)
- callback: Callable with signature callback()
Example:
class DelayedPrint(pd.NewObject):
name = "clock.example1"
def __init__(self, args):
self.inlets = 1
self.outlets = 0
self.clock = pd.new_clock(self, self._on_timer)
def in_0_float(self, f):
self.clock.delay(f) # trigger after f ms
def _on_timer(self):
pd.post("Timer fired!")
delay (clock method)
Schedule callback after relative milliseconds.
Example:
class AutoBang(pd.NewObject):
name = "clock.autobang"
def __init__(self, args):
self.inlets = 0
self.outlets = 1
self.clock = pd.new_clock(self, self._bang)
self.clock.delay(1000) # bang after 1 second
def _bang(self):
self.out(0, pd.FLOAT, 1)
self.clock.delay(1000) # repeat
set (clock method)
Schedule callback at absolute system time.
Example:
class Alarm(pd.NewObject):
name = "clock.alarm"
def __init__(self, args):
self.inlets = 1
self.outlets = 1
self.clock = pd.new_clock(self, self._ring)
def in_0_float(self, seconds_from_now):
import time
absolute_time = time.monotonic() + seconds_from_now
self.clock.set(absolute_time)
def _ring(self):
self.out(0, pd.SYMBOL, "ALARM!")
unset (clock method)
Cancel any pending schedule.
Example:
class CancelableTimer(pd.NewObject):
name = "clock.timer"
def __init__(self, args):
self.inlets = 2
self.outlets = 1
self.clock = pd.new_clock(self, self._fire)
def in_0_float(self, ms):
self.clock.delay(ms)
def in_1_bang(self):
self.clock.unset() # cancel pending
self.out(0, pd.SYMBOL, "cancelled")