From 74b65b089b47c7139de09e3be9bb3d3e92e15e71 Mon Sep 17 00:00:00 2001 From: Eugene Petkevich Date: Wed, 14 Dec 2022 18:55:46 +0100 Subject: [PATCH] Add reverb and use midimix to control selected track reverb --- extensions/classes/midibind.sc | 2 +- .../multitrack.scd" | 98 ++++++++++++++++++- 2 files changed, 95 insertions(+), 5 deletions(-) diff --git a/extensions/classes/midibind.sc b/extensions/classes/midibind.sc index 2a07c64..e8d780c 100644 --- a/extensions/classes/midibind.sc +++ b/extensions/classes/midibind.sc @@ -19,7 +19,7 @@ } } - bindRange {|param, start, end| + bindRange {|param, start=0.0, end=1.0| ^{|v| var newVal = v.linlin(0, 1, start, end); this.set(param, newVal); diff --git "a/\320\245\321\215\320\267\320\270\321\204\321\203/multitrack.scd" "b/\320\245\321\215\320\267\320\270\321\204\321\203/multitrack.scd" index 7fbd061..f837a21 100644 --- "a/\320\245\321\215\320\267\320\270\321\204\321\203/multitrack.scd" +++ "b/\320\245\321\215\320\267\320\270\321\204\321\203/multitrack.scd" @@ -1,8 +1,12 @@ ~ke = MidiRemote25SL(\kedifu); +~mi = MidiMix101(\mix); ( -SynthDef(\zuFader, {|in, amp=1.0, out=0| - Out.ar(out, In.ar(in, 2) * amp); +SynthDef(\zuFader, {|in, amp=1.0, mix=0.0, room=0.5, damp=0.5, out=0| + var sig; + sig = In.ar(in, 2); + sig = FreeVerb2.ar(sig[0], sig[1], mix, room, damp, amp); + Out.ar(out, sig); }).add; ) @@ -23,10 +27,13 @@ SynthDef(\zuFader, {|in, amp=1.0, out=0| groups: Array(8), buses: Array(8), faders: Array(8), + init: {|self| self.sourceGroup = Group(); self.faderGroup = Group.after(self.sourceGroup); self.kedifu = MidiRemote25SL(\kedifuTracker, reveal: false); + self.sasihu = MidiMix101(\sasihuTracker, reveal: false); + self.selected = 0; self.tracks.do{|k, i| var group, bus, fader; Pdef(k).endless; @@ -43,14 +50,29 @@ SynthDef(\zuFader, {|in, amp=1.0, out=0| self.kedifu.fader_{|v, n| self.faders[n].bindRange(\amp, -60.dbamp, 0.dbamp).value(v); }; + self.kedifu.lowrot_{|v, n| + self.faders[n].bindRange(\mix, 0, 1).value(v); + }; + self.kedifu.butlr_{|v, n| + if (v) { + self.selected = n; + self.sasihu.afade = self.faders[self.selected].bindRange(\room, 0, 1); + self.sasihu.bfade = self.faders[self.selected].bindRange(\damp, 0, 1); + "% selected\n".postf(self.tracks[self.selected]); + }; + }; + self }, ) }; ) -~tracker = ~trackerFactory.value.init; + +// test ( +~tracker = ~trackerFactory.value.init; + ~tracker.lonu_{ Pbind(*[ instrument: \naje, @@ -68,4 +90,72 @@ SynthDef(\zuFader, {|in, amp=1.0, out=0| modAmp: Pwhite(0.01, 0.02!2), ]) }.quant_(7).play; -) + +~tracker.fose_{ + Pbind(*[ + instrument: \leto, + db: -1, + dur: Prand([1, 2, 3], inf)/2, + pan: Pwhite(-0.4, 0.4, inf), + scale: Scale.nahawand, + octave: Pxrand([3, 4, 5, 6, 7], inf), + degree: [0, 4], + legato: Pwhite(0.5, 0.9, inf), + ]) +}.quant_(7).play; + +~tracker.ziba_{ + Pbind(*[ + instrument: \zuqy, + db: -5, + dur: Prand([1, 2, 3, 4], inf)/4, + pan: Pwhite(-0.4, 0.4, inf), + scale: Scale.nahawand, + octave: Pxrand([2], inf), + degree: Prand((0..12), inf), + legato: Pwhite(0.2, 0.7, inf), + distort: 150.0, + ]) +}.quant_(7).play; + +~tracker.pepo_{ + Pbind(*[ + instrument: \xaxa, + db: -5, + dur: Prand([1, 2, 3, 4], inf)/1, + pan: Pwhite(-0.4, 0.4, inf), + scale: Scale.nahawand, + octave: Pxrand([2], inf), + degree: Prand((0..12), inf), + legato: Pwhite(0.3, 0.6, inf), + feedbackAmp: 0.2, + feedbackRate: 3, + detuneAmp: 0.1, + detuneRate: 2, + ]) +}.quant_(7).play; + +~tracker.kaco_{ + Pmono(\liwe, *[ + db: -10, + trig: 1, + dur: Pseq([1, 2, 1, 2, 3, 2, 1, 2], inf)/4, + pan: Pwhite(-0.1, 0.1, inf), + tension: 0.001 + (0.017 * Pkey(\dur)), + loss: 0.99992, + impact: 0.1, + ]) +}.quant_(7).play; + +~tracker.xehi_{ + Pbind(*[ + instrument: \neta, + db: -19, + dur: Pseq([1, 2, 1, 1, 1, 0.5, 1/4, 1/8, 1/8], inf), + scale: Scale.nahawand, + octave: Pxrand([Pseq(2!3), Pseq(3!3), Pseq(4!3)], inf), + degree: Pxrand([0, 2, 4, 5, 7], inf) + [0, 2, 4], + legato: Pwhite(0.2, 0.6, inf), + ]) +}.quant_(7).play; +) \ No newline at end of file -- 2.17.1