R_AMP = 0 WIRE_IN = 1 AIR_IN = 2 GAIN = 32 PHASE = 33 X = 61 Y = 62 Z = 63 def freqpin(freq_no): return 64+freq_no def gainpin(freq_no): return 112+freq_no def shiftpin(freq_no): return 160+freq_no def sec(seconds): return seconds * 44100 class SoundNode: def __init__(self, sonnum, order, name): self.order = order self.s = sonnum self.c = sonnum.c self.name = name self.properties = dict() # {k: v} def __repr__(self): return f'{self.order}:{self.name}' def g(self, k): return self.properties.get(k) def s(self, k, v): self.properties[k] = v def act(self, *args): self.c.add_activity(*args) def setfreq(self, starttick, endtick, args): freq_no = args[0] freq = args[1] self.act("setpin", starttick, endtick, self, None, [freqpin(freq_no), freq]) def setfreqgain(self, starttick, endtick, args): freq_no = args[0] gain = args[1] self.act("setpin", starttick, endtick, self, None, [gainpin(freq_no), gain]) def setfreqshift(self, starttick, endtick, args): freq_no = args[0] shift = args[1] self.act("setpin", starttick, endtick, self, None, [shiftpin(freq_no), shift]) def setgain(self, starttick, endtick, args): gain = args[0] self.act("setpin", starttick, endtick, self, None, [GAIN, gain]) def setphase(self, starttick, endtick, phase): phase = args[0] self.act("setpin", starttick, endtick, self, None, [PHASE, gain])