class PianoString: def __init__(self, s, note): self.s = s self.basefreq = self.s.note(note) self.primary_gain = 0.4 self.mod = self.s.node() self.node = self.s.node() self.node.setbasefreq(0, self.basefreq) self.node.setgain(0, self.primary_gain) self.mod.setbasefreq(0, 10) self.mod.setgain(0, 0.8) self.mod.sine(0, self.s.end) self.node.fmsetup(0, self.basefreq, 0.009) self.node.fm(0, self.s.end) self.node.setskew(0, 0.3) self.s.wire(self.mod, self.node) self.s.air(self.node, [self.s.left, self.s.right]) def gain(self, starttick, gain): self.node.setgain(starttick, gain) def play(self, starttick, endtick): self.node.slidegain(starttick, endtick, self.primary_gain, 0) self.node.sine(starttick, endtick, 0.5) self.node.skewsine(starttick, endtick) self.node.square(starttick, endtick, 0.2) self.node.triangle(starttick, endtick, 0.4) def playsec(self, start, end): self.play(self.s.sec(start), self.s.sec(end)) s.setup(s.sec(4)) """ S = PianoString(s, "E4") S.playsec(0,1) S2 = PianoString(s, "C#4") S2.playsec(1,2) """ n = s.node() n.setgain(0, 0.4) #n.whitenoise(0, s.sec(2), 0.8924587, 0.3) n.setadsrgain(0, 1) n.setadsrsustain(0, 0.4) n.adsr(0, s.sec(2), s.sec(0.03), s.sec(0.04), s.sec(0.3), s.sec(1.3), s.sec(2)) n.sine(0, s.sec(2), 0.3) n.triangle(0, s.sec(2)) s.wire(n, [s.left, s.right])