diff --git a/mysynths/test.py b/mysynths/test.py index f52be7b..493e4e1 100644 --- a/mysynths/test.py +++ b/mysynths/test.py @@ -1,17 +1,22 @@ -s.setup(sec(100)) - -n = s.node(3) - -;n->s.left -;n->s.right +s.setup(100) ;0 s.left.@setgain(0.7) ;0 s.right.@setgain(0.7) - -;0 n.setpos(1,1,1) -;sec(1) n.setpos(-100,1,1) - -for i in range(0,40): - ;0 n.@setfreq(i, s.note("C3")*(i+1)) -;0-sec(90) n.triangle() +ns = [] +for k in range(0, 100): + n = s.node(20) + ns.append(n) + ;n->s.left + ;n->s.right + + ;0 n.@setgain(0.04) + + ;0 n.setpos(1,1,1) + ;0 n.setpin(52, 0.9) + + for i in range(0,20): + ;0 n.@setfreq(i, s.note("C3")*(i+1)) + ;0 n.@setfreqgain(i, 1/float(i+1)) + +;0-9 ns[4].sine() \ No newline at end of file diff --git a/pysonnum/compiler.py b/pysonnum/compiler.py index ab535f4..7866c10 100644 --- a/pysonnum/compiler.py +++ b/pysonnum/compiler.py @@ -81,10 +81,10 @@ class SonnumCompiler: if operand.startswith('@'): operand = operand[1:] - ln = f'{src_nodename}.{operand}({starttick}, {endtick}, [{cmdargs}])' + ln = f'{src_nodename}.{operand}(sec({starttick}), sec({endtick}), [{cmdargs}])' else: - ln = f'self.add_activity("{operand}", {starttick}, {endtick}, {src_nodename}, {trg_nodename}, [{cmdargs}])' + ln = f'self.add_activity("{operand}", sec({starttick}), sec({endtick}), {src_nodename}, {trg_nodename}, [{cmdargs}])' ln = tablevel*'\t' + ln py_src.append(ln) diff --git a/pysonnum/sonnum.py b/pysonnum/sonnum.py index 2e23a7f..6e8d81f 100644 --- a/pysonnum/sonnum.py +++ b/pysonnum/sonnum.py @@ -11,6 +11,7 @@ class Sonnum: def setup(self, endtick): + endtick = self.sec(endtick) self.end = endtick self.endtick(endtick) diff --git a/pysonnum/soundnode.py b/pysonnum/soundnode.py index 664b4d8..2dbbffa 100644 --- a/pysonnum/soundnode.py +++ b/pysonnum/soundnode.py @@ -13,6 +13,9 @@ def freqpin(freq_no): def gainpin(freq_no): return 112+freq_no +def shiftpin(freq_no): + return 160+freq_no + def sec(seconds): return seconds * 44100 @@ -49,6 +52,11 @@ class SoundNode: 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]) diff --git a/zigsonnum/activities/basicsynths.zig b/zigsonnum/activities/basicsynths.zig index 972f97a..774f4bb 100644 --- a/zigsonnum/activities/basicsynths.zig +++ b/zigsonnum/activities/basicsynths.zig @@ -128,8 +128,8 @@ pub fn skewsine(self: *Activity) void { const current_tick: f64 = @floatFromInt(self.soundnode.fab.current_tick); - const skew = self.soundnode.pins[@intFromFloat(self.operands[1])]; - const maingain = self.soundnode.corrGain(self.operands[0]); + const skew = self.soundnode.pins[@intFromFloat(self.operands[0])]; + const maingain = self.soundnode.corrGain(self.operands[1]); var final_amp: f64 = 0;