diff --git a/lib/trigRingz.scd b/lib/trigRingz.scd index 619e455..ee240c9 100644 --- a/lib/trigRingz.scd +++ b/lib/trigRingz.scd @@ -1,55 +1,67 @@ ( SynthDef(\stndTrigRing, { - arg out=0, freq=1000, min=1, max=10, decay=0.1, ffreq=1000, amp=1; - var snd, in; + arg out=0, freq=1000, min=1, max=10, decay=0.1, ffreq=1000, amp=1, gate=1, fadeTime=1; + var snd, in, env; in = StandardTrig.ar(min,max); snd = Ringz.ar(in, freq, decay); snd = LPF.ar(snd, ffreq); + env = EnvGen.kr( + Env([0, 1, 0], [fadeTime, fadeTime], \sin, 1), + gate, doneAction: Done.freeSelf); - snd = snd * amp; + snd = snd * env * amp; Out.ar(out,snd) }).add; ); ( SynthDef(\henoTrigRing, { - arg out=0, freq=1000, min=1, max=10, decay=0.1, ffreq=1000, amp=1; - var snd, in; + arg out=0, freq=1000, min=1, max=10, decay=0.1, ffreq=1000, amp=1, gate=1, fadeTime=1; + var snd, in, env; in = HenonTrig.ar(min,max); snd = Ringz.ar(in, freq, decay); snd = LPF.ar(snd, ffreq); + env = EnvGen.kr( + Env([0, 1, 0], [fadeTime, fadeTime], \sin, 1), + gate, doneAction: Done.freeSelf); - snd = snd * amp; + snd = snd * env * amp; Out.ar(out,snd) }).add; ); ( SynthDef(\gbmanTrigRing, { - arg out=0, freq=1000, min=1, max=10, decay=0.1, ffreq=1000, amp=1; - var snd, in; + arg out=0, freq=1000, min=1, max=10, decay=0.1, ffreq=1000, amp=1, gate=1, fadeTime=1; + var snd, in, env; in = GbmanTrig.ar(min,max); snd = Ringz.ar(in, freq, decay); snd = LPF.ar(snd, ffreq); + env = EnvGen.kr( + Env([0, 1, 0], [fadeTime, fadeTime], \sin, 1), + gate, doneAction: Done.freeSelf); - snd = snd * amp; + snd = snd * env * amp; Out.ar(out,snd) }).add; ); ( SynthDef(\latooTrigRing, { - arg out=0, freq=1000, min=1, max=10, decay=0.1, ffreq=1000, amp=1; - var snd, in; + arg out=0, freq=1000, min=1, max=10, decay=0.1, ffreq=1000, amp=1, gate=1, fadeTime=1; + var snd, in, env; in = LatoocarfianTrig.ar(min,max); snd = Ringz.ar(in, freq, decay); snd = LPF.ar(snd, ffreq); + env = EnvGen.kr( + Env([0, 1, 0], [fadeTime, fadeTime], \sin, 1), + gate, doneAction: Done.freeSelf); - snd = snd * amp; + snd = snd * env * amp; Out.ar(out,snd) }).add; ); @@ -58,14 +70,17 @@ SynthDef(\latooTrigRing, { ( SynthDef(\lorenzTrigRing, { - arg out=0, freq=1000, min=1, max=10, decay=0.1, ffreq=1000, amp=1; - var snd, in; + arg out=0, freq=1000, min=1, max=10, decay=0.1, ffreq=1000, amp=1, gate=1, fadeTime=1; + var snd, in, env; in = LorenzTrig.ar(min,max); snd = Ringz.ar(in, freq, decay); snd = LPF.ar(snd, ffreq); + env = EnvGen.kr( + Env([0, 1, 0], [fadeTime, fadeTime], \sin, 1), + gate, doneAction: Done.freeSelf); - snd = snd * amp; + snd = snd * env * amp; Out.ar(out,snd) }).add; ); @@ -73,14 +88,17 @@ SynthDef(\lorenzTrigRing, { ( SynthDef(\fhnTrigRing, { - arg out=0, freq=1000, min=1, max=10, decay=0.1, ffreq=1000, amp=1; - var snd, in; + arg out=0, freq=1000, min=1, max=10, decay=0.1, ffreq=1000, amp=1, gate=1, fadeTime=1; + var snd, in, env; in = FhnTrig.ar(min,max); snd = Ringz.ar(in, freq, decay); snd = LPF.ar(snd, ffreq); + env = EnvGen.kr( + Env([0, 1, 0], [fadeTime, fadeTime], \sin, 1), + gate, doneAction: Done.freeSelf); - snd = snd * amp; + snd = snd * env * amp; Out.ar(out,snd) }).add; ); diff --git a/rhizosphere.scd b/rhizosphere.scd index ea5aae8..2fee08e 100644 --- a/rhizosphere.scd +++ b/rhizosphere.scd @@ -42,6 +42,8 @@ Server.default.waitForBoot { }); +s.meter; s.plotTree; + // octoPan busses ////////////// ( @@ -60,34 +62,34 @@ Server.default.waitForBoot { ~panBus1r = Bus.control(s,1); ~panBus1y.value = 0.14; // set a fixed value to a bus ~panBus1x.value = 0; -~panBus1r.value = 1; +~panBus1r.value = 2; // octoBus2 + panners and control busses: ~octoBus2 = Bus.audio(s,1); ~panBus2x = Bus.control(s,1); ~panBus2y = Bus.control(s,1); ~panBus2r = Bus.control(s,1); -~panBus2y.value = 0; // set a fixed value to a bus +~panBus2y.value = 0.14; // set a fixed value to a bus ~panBus2x.value = 0; -~panBus2r.value = 0.1; +~panBus2r.value = 2; // octoBus3 + panners and control busses: ~octoBus3 = Bus.audio(s,1); ~panBus3x = Bus.control(s,1); ~panBus3y = Bus.control(s,1); ~panBus3r = Bus.control(s,1); -~panBus3y.value = 0.29; // set a fixed value to a bus +~panBus3y.value = 0.14; // set a fixed value to a bus ~panBus3x.value = 0; -~panBus3r.value = 0.1; +~panBus3r.value = 2; // octoBus4 + panners and control busses: ~octoBus4 = Bus.audio(s,1); ~panBus4x = Bus.control(s,1); ~panBus4y = Bus.control(s,1); ~panBus4r = Bus.control(s,1); -~panBus4y.value = 0.29; // set a fixed value to a bus +~panBus4y.value = 0.14; // set a fixed value to a bus ~panBus4x.value = 0; -~panBus4r.value = 0.1; +~panBus4r.value = 2; // 8chan reverb bus ~revBus = Bus.audio(s,8); @@ -123,11 +125,148 @@ var timeLine, r; ~octoPanner4.map(\y, ~panBus4y); ~octoPanner4.map(\radius, ~panBus4r); +// 4 x stereo reverbs are fixed to outputs ([0,1][2,3][4,5][6,7]) not panners! ~reverb = Synth("reverBusser", [\inBus, ~revBus, \outBus, 0], addAction: \addToTail); +// some default oscilations of pan and reverb + +// 'set' values - disconnects mapping! +//~octoPanner1.set(\x, 0, \y, 0.28, \radius, 0.001); + +~panner1y.free; +~panner2y.free; +~panner3y.free; +~panner4y.free; +//~panner1y = SynthDef(\pannerOsc, {Out.kr(~panBus1y, SinOsc.kr(0.1).range(0.1,0.2))}).play; +~panner1y = SynthDef(\randomPanY1, { Out.kr(~panBus1y, LFNoise2.kr(1).range(0,0.28))}).play; +~panner2y = SynthDef(\randomPanY2, { Out.kr(~panBus2y, LFNoise2.kr(1).range(0,0.28))}).play; +~panner3y = SynthDef(\randomPanY3, { Out.kr(~panBus3y, LFNoise2.kr(1).range(0,0.28))}).play; +~panner4y = SynthDef(\randomPanY4, { Out.kr(~panBus4y, LFNoise2.kr(1).range(0,0.28))}).play; +// convert to SynthDef + Synth for common oscilations? + +~reverb1wetBus.free; ~wetOsc.free; // clean up +~reverb1wetBus = Bus.control(s, 1); // create control bus +~reverb.map(\verb1wet, ~reverb1wetBus); // map an argument to control bus +~wetOsc = SynthDef(\randomVerb1, {Out.kr(~reverb1wetBus, LFNoise2.kr(1).range(0, 0.8)) }).play; + + +// ~wetOsc.free; +// ~reverb.set(\verb1wet, 0); +// ~reverb.set(\verb1wet, 1); +// ~reverb.set(\verb2wet, 1); + + timeLine = Routine { "--- starting main routine ...".postln; + + /// SOIL ////////////////////////////////// + // forestSoil granulation + "--- starting forestSoil granulation ...".postln; + + ~soil1 = Synth(\granSoil, [\out, ~octoBus1, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20]); + + ~soil1durBus = Bus.control(s,1); + ~soil1durBus.value = 0.0001; + ~soil1.map(\dur, ~soil1durBus); + + wait(80); + + ~soil2 = Synth(\granSoil, [\out, ~octoBus2, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20]); + + ~soil2durBus = Bus.control(s,1); + ~soil2durBus.value = 0.0001; + ~soil2.map(\dur, ~soil2durBus); + + wait(20); + + ~soil1DurOsc = SynthDef( \soilDurOsc, {Out.kr(~soil1durBus, SinOsc.kr(0.01,1.5pi).range(0.0001, 0.1))} ).play; + + wait(20); + + ~soil2DurOsc = SynthDef( \soilDurOsc, {Out.kr(~soil2durBus, SinOsc.kr(0.01,1.5pi).range(0.0001, 0.2))} ).play; + + wait(120); + + ~soil1.set(\dur, 0.0001); + wait(1); + ~soil2.set(\dur, 0.0001); + + + // this could repeat somewhat? + + ~soil1.set(\gate, 0, \fadeTime, 15); // use envelope to fade out + wait(3); + ~soil2.set(\gate, 0, \fadeTime, 15); // use envelope to fade out + wait(2); + + + /* NOTES: + ~soil1DurOsc = SynthDef(\soilDurOsc, {Out.kr(30, SinOsc.kr(0.01,1.5pi).range(0.0001, 1))}).play + ~soil1DurOsc.free + // start oscilation, very slowly + ~soil1.set(\dur, 0.0001); + + ~soil1 = Synth(\granSoil, [\out, ~octoBus1, \sndbuf, ~forestSoilBuf]); + + ~soil1.set(\rate, 0.2); + ~soil1.set(\out, 1); + ~soil1.set(\dur, 0.01); + ~soil1.set(\amp, 1); + ~soil1.set(\out, 1); + ~soil1.set(\envbuf, ~planotaBuf); + + // send SinOscilation to a argument via bus + ~foreskrBus = Bus.control(s, 1); + ~soil1.map(\dur, ~foreskrBus); + ~durOsc = {Out.kr(~foreskrBus, SinOsc.kr(0.1).range(0.007,0.1))}.play; + ~durOsc.free; + + // another granulator + ~soil2 = Synth(\granSoil, [\out, ~octoBus2, \sndbuf, ~forestSoilBuf]); + ~soil2.map(\dur, ~foreskrBus); + + ~soil2.set(\amp, 0.1) + + ~soil1.set(\gate, 0, \fadeTime, 2); // use envelope to fade out + ~soil2.set(\gate, 0, \fadeTime, 2); // use envelope to fade out + + // stop:free + ~soil1.free // stop. + ~soil2.free // stop. + */ + + ~lorenzTrig1 = Synth(\lorenzTrigRing, [\out, ~octoBus1, \freq, 1400, \amp, 0.5, \fadeTime, 5]); + ~lorenzTrig1.set(\fadeTime, 5, \gate, 0); + + //~lorenzTrig1.free; + + + + + + + + + + + + + + + + + + + + + + + + + + + //1.wait; /* @@ -323,14 +462,17 @@ FreqScope.new(400, 200, 0, server: s); // testing stuff! /////////////////////////////////////////////////////////////////////////////////////// ~lorenzTrig1 = Synth(\lorenzTrigRing, [\out, ~octoBus1, \freq, 1400, \amp, 0.5]); -~reverb.set(\verb1wet, 0.3); +~lorenzTrig1.set(\amp,0.2) + +~reverb.set(\verb1wet, 1); +~reverb.set(\verb1wet, 0); ~reverb.set(\verb2wet, 1); // 'set' values - disconnects mapping! ~octoPanner1.set(\x, 0, \y, 0.28, \radius, 0.001); ~panner1y.free; -~panner1y = {Out.kr(~panBus1y, SinOsc.kr(0.1).range(0,0.28))}.play; +~panner1y = SynthDef(\pannerOsc, {Out.kr(~panBus1y, SinOsc.kr(0.1).range(0.1,0.2))}).play; ~panner1y = SynthDef(\randomPanY, { Out.kr(~panBus1y, LFNoise0.kr(9).range(0,0.28))}).play; // convert to SynthDef + Synth for common oscilations? @@ -374,6 +516,7 @@ FreqScope.new(400, 200, 0, server: s); ~latooWan1 = Synth(\latooWanderings, [\out, ~octoBus4, \fadeTime, 0.1]); ~latooWan1.set(\out,1) +~latooWan1.set(\out,~octoBus1) ~latooWan1.set(\amp,1) ~latooWan1.set(\gate, 0, \fadeTime, 10); ~latooWan1.free; @@ -404,7 +547,7 @@ FreqScope.new(400, 200, 0, server: s); ////// ring resonator ringing the clicks from triggers - + ~stdTrig1 = Synth(\stndTrigRing, [\out, ~octoBus1, \freq,1900]); ~stdTrig1.free @@ -430,36 +573,6 @@ FreqScope.new(400, 200, 0, server: s); -// forestSoil granulation -~soil1 = Synth(\granSoil, [\out, ~octoBus1, \sndbuf, ~forestSoilBuf]); - -~soil1.set(\rate, 0.2); -~soil1.set(\out, 1); -~soil1.set(\dur, 0.01); -~soil1.set(\amp, 0.1); -~soil1.set(\out, 1); -~soil1.set(\envbuf, ~planotaBuf); - -// send SinOscilation to a argument via bus -~foreskrBus = Bus.control(s, 1); -~soil1.map(\dur, ~foreskrBus); -~durOsc = {Out.kr(~foreskrBus, SinOsc.kr(0.1).range(0.007,0.1))}.play; -~durOsc.free; - -// another granulator -~soil2 = Synth(\granSoil, [\out, ~octoBus2, \sndbuf, ~forestSoilBuf]); -~soil2.map(\dur, ~foreskrBus); - -~soil2.set(\amp, 0.1) - -~soil1.set(\gate, 0, \fadeTime, 2); // use envelope to fade out -~soil2.set(\gate, 0, \fadeTime, 2); // use envelope to fade out - -// stop:free -~soil1.free // stop. -~soil2.free // stop. - -