88 lines
No EOL
3.3 KiB
Python
88 lines
No EOL
3.3 KiB
Python
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 setpos(self, start_tick, x, y, z):
|
|
self.act('setpos', start_tick, start_tick, self, None, [x, y, z])
|
|
|
|
def setpin(self, start_tick, pin_no, value):
|
|
self.act('setpin', start_tick, start_tick, self, None, [pin_no, value])
|
|
|
|
def bridge(self, start_tick, end_tick, in_pin, out_pin):
|
|
self.act('bridge', start_tick, end_tick, self, None, [in_pin, out_pin])
|
|
|
|
def sine(self, start_tick, end_tick, gainmult = 0.0):
|
|
self.act('sine', start_tick, end_tick, self, None, [gainmult])
|
|
|
|
def triangle(self, start_tick, end_tick, gainmult = 0.0):
|
|
self.act('triangle', start_tick, end_tick, self, None, [gainmult])
|
|
|
|
def square(self, start_tick, end_tick, gainmult = 0.0):
|
|
self.act('square', start_tick, end_tick, self, None, [gainmult])
|
|
|
|
def sawtooth(self, start_tick, end_tick, gainmult = 0.0):
|
|
self.act('sawtooth', start_tick, end_tick, self, None, [gainmult])
|
|
|
|
def skewsine(self, start_tick, end_tick, gainmult = 0.0):
|
|
self.act('skewsine', start_tick, end_tick, self, None, [gainmult])
|
|
|
|
def slidebasefreq(self, start_tick, end_tick, startfreq, endfreq):
|
|
self.act('slidebasefreq', start_tick, end_tick, self, None, [startfreq, endfreq])
|
|
|
|
def slidegain(self, start_tick, end_tick, startgain, endgain):
|
|
self.act('slidegain', start_tick, end_tick, self, None, [startgain, endgain])
|
|
|
|
def slidephase(self, start_tick, end_tick, startphase, endphase):
|
|
self.act('slidephase', start_tick, end_tick, self, None, [startphase, endphase])
|
|
|
|
def slideskew(self, start_tick, end_tick, startskew, endskew):
|
|
self.act('slideskew', start_tick, end_tick, self, None, [startskew, endskew])
|
|
|
|
def slidepos(self, start_tick, end_tick, sx, sy, sz, ex, ey, ez):
|
|
self.act('slidepos', start_tick, end_tick, self, None, [sx, sy, sz, ex, ey, ez])
|
|
|
|
def pulse(self, start_tick, end_tick, gainmult = 0.0):
|
|
self.act('pulse', start_tick, end_tick, self, None, [gainmult])
|
|
|
|
def fmsetup(self, start_tick, fmbasefreq, fmq):
|
|
self.act('fmsetup', start_tick, start_tick, self, None, [fmbasefreq, fmq])
|
|
|
|
def fm(self, start_tick, end_tick):
|
|
self.act('fm', start_tick, end_tick, self, None, [])
|
|
|
|
def am(self, start_tick, end_tick):
|
|
self.act('am', start_tick, end_tick, self, None, [])
|
|
|
|
def mute(self, start_tick, end_tick):
|
|
self.act('mute', start_tick, end_tick, self, None, [])
|
|
|
|
def whitenoise(self, start_tick, end_tick, gainmult = 0.0, seed = 0.259624856928):
|
|
self.act('whitenoise', start_tick, end_tick, self, None, [seed, gainmult])
|
|
|
|
def setadsrgain(self, start_tick, adsrgain):
|
|
self.act('setadsrgain', start_tick, start_tick, self, None, [adsrgain])
|
|
|
|
def setadsrsustain(self, start_tick, adsrsustain):
|
|
self.act('setadsrsustain', start_tick, start_tick, self, None, [adsrsustain])
|
|
|
|
def adsr(self, start_tick, end_tick, attack_tick, hold_tick, decay_tick, sustain_tick, release_tick, gainmult = 0.0):
|
|
self.act('adsr', start_tick, end_tick, self, None, [attack_tick, hold_tick, decay_tick, sustain_tick, release_tick, gainmult]) |