diff --git a/lib/noiseCrackle.scd b/lib/noiseCrackle.scd index 63875cb..27484e5 100644 --- a/lib/noiseCrackle.scd +++ b/lib/noiseCrackle.scd @@ -17,7 +17,7 @@ add - This value will be added to the output. *********************/ // TODO: // expand on more arguments? - arg out = 0, amp = 0.9, gate = 1, lpfa=1, hpfa=1, fadeTime=1; + arg out = 0, amp = 0.9, gate = 1, lpfa=1, hpfa=1, fadeTime=1, rq=0.8; var sig, par, lpf, hpf, env; par = LFNoise1.kr(0.09).range(1.9,2.02); @@ -27,13 +27,13 @@ add - This value will be added to the output. *********************/ lpf = RLPF.ar( in: sig, freq: Lag3.kr(LFNoise0.kr(0.08).exprange(50,10000),10), - rq:0.8, + rq: rq, mul: lpfa); hpf = RHPF.ar( in: sig, freq: Lag3.kr(LFNoise0.kr(0.065).exprange(50,10000),10), - rq: 0.8, + rq: rq, mul: hpfa); hpf = DelayN.ar(in:hpf, delaytime:0.11); diff --git a/rhizosphere.scd b/rhizosphere.scd index 6d9ccbb..d273d95 100644 --- a/rhizosphere.scd +++ b/rhizosphere.scd @@ -29,20 +29,20 @@ Server.default.waitForBoot { }); }); -<<<<<<< HEAD + s.meter; s.plotTree; -======= - - - -s.meter; s.plotTree; ->>>>>>> 6aab46529682cae5a6bb3e59e378d8fcf94a3e50 - +s.sync; // octoPan busses ////////////// ( +"\n\n\n=============================================================".postln; +"\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>".postln; +"--- R H I Z O S P H E R E -----".postln; +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n".postln; + + // free busses and panners when re-trying things? ~octoBus1.free; ~octoBus2.free; ~octoBus3.free; ~octoBus4.free; ~panBus1x.free; ~panBus1y.free; ~panBus1r.free; @@ -90,24 +90,8 @@ s.meter; s.plotTree; // 8chan reverb bus ~revBus = Bus.audio(s,8); ">>> loaded all busses".postln; -); -r = Recorder(s); -r.recHeaderFormat = "wav"; -r.record(numChannels:8); -r.stopRecording; - - - - - -( /////////////////////////////////////////////////////////////////////////////// -var timeLine; -"\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>".postln; -"--- R H I Z O S P H E R E -----".postln; -">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n".postln; - "--- loading octoPanners ...".postln; ~octoPanner1 = Synth("octoPanner", [\inBus, ~octoBus1, \outBus, ~revBus], addAction: \addToTail); ~octoPanner1.map(\x, ~panBus1x); @@ -129,21 +113,25 @@ var timeLine; ~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 +">>> cleaning up panner_x and panner_y control synths...".postln; ~panner1y.free; ~panner2y.free; ~panner3y.free; ~panner4y.free; ~panner1x.free; ~panner2x.free; ~panner3x.free; ~panner4x.free; - - +// REVERBS +">>> cleaning up reverb busses and wet oscilators...".postln; ~reverb1wetBus.free; // ~wetOsc.free; // clean up ~reverb2wetBus.free; // ~wetOsc.free; // clean up ~reverb3wetBus.free; // ~wetOsc.free; // clean up ~reverb4wetBus.free; // ~wetOsc.free; // clean up +~wetOsc1.free; ~wetOsc2.free; ~wetOsc3.free; ~wetOsc4.free; +">>> setting up reverb control buses and param oscilators...".postln; ~reverb1wetBus = Bus.control(s, 1); // create control bus ~reverb.map(\verb1wet, ~reverb1wetBus); // map an argument to control bus ~reverb2wetBus = Bus.control(s, 1); // create control bus @@ -153,7 +141,6 @@ var timeLine; ~reverb4wetBus = Bus.control(s, 1); // create control bus ~reverb.map(\verb4wet, ~reverb4wetBus); // map an argument to control bus -~wetOsc1.free; ~wetOsc2.free; ~wetOsc3.free; ~wetOsc4.free; ~wetOsc1 = SynthDef(\randomVerb1, {Out.kr(~reverb1wetBus, LFNoise2.kr(1).range(0, 0.8)) }).play; ~wetOsc2 = SynthDef(\randomVerb2, {Out.kr(~reverb2wetBus, LFNoise2.kr(1).range(0, 0.8)) }).play; ~wetOsc3 = SynthDef(\randomVerb3, {Out.kr(~reverb3wetBus, LFNoise2.kr(1).range(0, 0.8)) }).play; @@ -163,24 +150,166 @@ var timeLine; // ~reverb.set(\verb1wet, 0); // ~reverb.set(\verb1wet, 1); // ~reverb.set(\verb2wet, 1); -//); + +">>> finished loading all busses and control synths for panning etc ...".postln; +"".postln; + + + + +); //( //var timeLine; -timeLine = Routine { - "--- starting main routine ...".postln; - - /// SOIL ////////////////////////////////// - // forestSoil granulation - "\n--- PART 1 ---".postln; - "--- starting forestSoil granulation ...".postln; - - ~soil1 = Synth(\granSoil, [\out, ~octoBus1, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20, \amp, 0.8]); - ~soil1durBus = Bus.control(s,1); - ~soil1durBus.value = 0.0001; - ~soil1.map(\dur, ~soil1durBus); +////////////////////////////////////////////////////////////////////////////////// +// P E R F O R M A N C E ///////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////////// + +// PANNERS + +// x=0:y=[ 0.00 / 0.28 / 0.57 / 0.85 ] +// x=1:y=[ 1.00 / 0.71 / 0.43 / 0.14 ] + +( // free all control synths for panning +~panner1y.free; +~panner2y.free; +~panner3y.free; +~panner4y.free; + +~panner1x.free; +~panner2x.free; +~panner3x.free; +~panner4x.free; +) + + + +~panBus1x.value = 0; +~panBus1y.value = 0; +~panBus1r.value = 1; + +~panBus2x.value = 0; +~panBus2y.value = 0.28; +~panBus2r.value = 1; + +~panBus3x.value = 1; +~panBus3y.value = 0.28; +~panBus3r.value = 1; + +~panner3y = SynthDef(\oscPanY3, { Out.kr(~panBus3y, SinOsc.kr(2).range(1,0.14))}).play; +~panner3y.free; + +~panBus4x.value = 1; +~panBus4y.value = 0.28; +~panBus4r.value = 1; + +~panner3y = SynthDef(\oscPanY4, { Out.kr(~panBus4y, SinOsc.kr(2).range(1,0.14))}).play; +~panner3y.free; + + + + + +// SYNTHS + + +// noise Cracle +~noiseCr1 = Synth(\noiseCrackle, [\out, ~octoBus1, \fadeTime, 30, \lpfa, 1, \hpfa, 0 ]); +~noiseCr1.set(\rq, 0.98); +~noiseCr1.set(\lpfa, 1); +~noiseCr1.set(\hpfa, 0); +~noiseCr1.set(\gate, 0, \fadeTime, 1); +~noiseCr1.free; + +~noiseCr2 = Synth(\noiseCrackle, [\out, ~octoBus2, \fadeTime, 30, \lpfa, 1, \hpfa, 0 ]); +~noiseCr2.set(\gate, 0, \fadeTime, 1); +~noiseCr2.free; + +~noiseCr3 = Synth(\noiseCrackle, [\out, ~octoBus3, \fadeTime, 30, \lpfa, 0, \hpfa, 1 ]); +~noiseCr3.set(\gate, 0, \fadeTime, 1); +~noiseCr3.free; + +~noiseCr4 = Synth(\noiseCrackle, [\out, ~octoBus4, \fadeTime, 30, \lpfa, 0, \hpfa, 1 ]); +~noiseCr4.set(\gate, 0, \fadeTime, 1); +~noiseCr4.free; + +( // free them all at once +~noiseCr1.free; +~noiseCr2.free; +~noiseCr3.free; +~noiseCr4.free; +) + + +~henonS1 = Synth(\henonSynth1, [\out, ~octoBus3, \amp, 0.4, \fadeTime, 4]); +~henonS1.set(\amp, 0.05); +~henonS1.set(\gate, 0, \fadeTime, 1); +~henonS1.free; + +~henonS2 = Synth(\henonSynth1, [\out, ~octoBus3, \amp, 0.4, \fadeTime, 4]); +~henonS2.set(\amp, 0.05); +~henonS2.set(\gate, 0, \fadeTime, 1); +~henonS2.free; + +~darkHenon1 = Synth(\henonLsynth2, [\out, ~octoBus4, \fadeTime, 10]); +~darkHenon1.set(\gate, 0, \fadeTime, 3); +~darkHenon1.free; + +~darkHenon2 = Synth(\henonLsynth2, [\out, ~octoBus4, \fadeTime, 10]); +~darkHenon2.set(\gate, 0, \fadeTime, 3); +~darkHenon2.free; + + +// + +~soil1 = Synth(\granSoil, [\out, ~octoBus1, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20, \amp, 0.8]); + +~soil1durBus = Bus.control(s,1); +~soil1durBus.value = 0.0001; +~soil1.map(\dur, ~soil1durBus); + +~soil1DurOsc = SynthDef( \soilDurOsc, {Out.kr(~soil1durBus, SinOsc.kr(0.012,1.5pi).range(0.0001, 0.05))} ).play; +~soil1DurOsc.free; + +~soil1.set(\gate, 0, \fadeTime, 15); // use envelope to fade out +~soil1.free; + +// + +~soil2 = Synth(\granSoil, [\out, ~octoBus2, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20, \amp, 0.8]); +~soil2durBus = Bus.control(s,1); +~soil2durBus.value = 0.0001; +~soil2.map(\dur, ~soil2durBus); +~soil2DurOsc = SynthDef( \soilDurOsc, {Out.kr(~soil2durBus, SinOsc.kr(0.029,1.5pi).range(0.0001, 0.08))} ).play; +~soil2DurOsc.free; +~soil2.set(\gate, 0, \fadeTime, 15); // use envelope to fade out + + + "--- starting oscilating duration 2...".postln; + wait(120); + +// + +~soil3 = Synth(\granSoil, [\out, ~octoBus2, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20, \amp, 0.8]); +~soil3durBus = Bus.control(s,1); +~soil3durBus.value = 0.0001; +~soil3.map(\dur, ~soil3durBus); + +~soil3.set(\gate, 0, \fadeTime, 15); // use envelope to fade out + +// + +~soil4 = Synth(\granSoil, [\out, ~octoBus2, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20, \amp, 0.8]); +~soil4durBus = Bus.control(s,1); +~soil4durBus.value = 0.01; +~soil4.map(\dur, ~soil4durBus); + +~soil4.set(\fadeTime, 15, \gate, 0); // use envelope to fade out + +// + "--- starting panner1y sin Oscilation ...".postln; ~panner1y = SynthDef(\sinPanY1, { Out.kr(~panBus1y, SinOsc.kr(0.01).range(0.3,0.5))}).play; ~panBus1x.value = 1; @@ -188,23 +317,12 @@ timeLine = Routine { wait(80); "--- starting soil2 ...".postln; - ~soil2 = Synth(\granSoil, [\out, ~octoBus2, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20, \amp, 0.8]); - ~soil2durBus = Bus.control(s,1); - ~soil2durBus.value = 0.0001; - ~soil2.map(\dur, ~soil2durBus); "--- starting panner2y sin Oscilation ...".postln; ~panner2y = SynthDef(\sinPanY2, { Out.kr(~panBus2y, SinOsc.kr(0.015).range(0.3,0.5))}).play; ~panBus2x.value = 0; ~panBus2r.value = 1; wait(20); - "--- starting oscilating duration ...".postln; - ~soil1DurOsc = SynthDef( \soilDurOsc, {Out.kr(~soil1durBus, SinOsc.kr(0.012,1.5pi).range(0.0001, 0.05))} ).play; - wait(20); - - "--- starting oscilating duration 2...".postln; - ~soil2DurOsc = SynthDef( \soilDurOsc, {Out.kr(~soil2durBus, SinOsc.kr(0.029,1.5pi).range(0.0001, 0.08))} ).play; - wait(120); "--- return to static duration, abruptly...".postln; ~panner1y.free; ~panner2y.free; @@ -215,23 +333,54 @@ timeLine = Routine { ~panBus2y.value = 0.9; "--- fade soils...".postln; - ~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(20); ~soil1DurOsc.free; ~soil2DurOsc.free; + + + + + + + + + + + + + + + + + + + + +///// TIMELINE - obsolete - to be converted to LIVE TOOLS: +( +timeLine = Routine { + "--- starting main routine ...".postln; + + + /// SOIL ////////////////////////////////// + // forestSoil granulation + "\n--- PART 1 ---".postln; + "--- starting forestSoil granulation ...".postln; + + + // trigRingz ////////////////////////////////////////////////////////////////////////////////////////////////////// "\n--- PART 2 ---".postln; "--- starting lorenzTrig1 ...".postln; ~lorenzTrig1 = Synth(\lorenzTrigRing, [\out, ~octoBus1, \freq, 1400, \amp, 0.5, \fadeTime, 5]); - ~panBus1y.value = 0; // set a fixed value to a bus - ~panBus1x.value = 0; + ~panBus1y.value = 0.1; // set a fixed value to a bus + ~panBus1x.value = 1; ~panBus1r.value = 0.1; wait(50); @@ -337,9 +486,9 @@ timeLine = Routine { "--- latooWanderings ...".postln; ~latooWan1 = Synth(\latooWanderings, [\out, ~octoBus4, \fadeTime, 30, \amp, 0.3]); - ~panBus4y.value = 0.9; // set a fixed value to a bus + ~panBus4y.value = 0.4; // set a fixed value to a bus ~panBus4x.value = 0; - ~panBus4r.value = 1; + ~panBus4r.value = 10; wait(30); ~panner4y = SynthDef(\randomPanY4, { Out.kr(~panBus4y, LFNoise1.kr(0.9).range(0,1))}).play; @@ -412,6 +561,8 @@ timeLine = Routine { ~markov10.set(\gate, 0, \fadeTime, 50); ~markov11.set(\gate, 0, \fadeTime, 50); ~markov12.set(\gate, 0, \fadeTime, 50); + + "\n--- PART 4 --- ".postln; "--- noiseCrackle ...".postln; @@ -431,13 +582,29 @@ timeLine = Routine { ~panner4y = SynthDef(\sinPanY4, { Out.kr(~panBus4y, SinOsc.kr(0.05).range(0,1))}).play; ~panBus4r.value = 0.1; - ~darkHenon1 = Synth(\henonLsynth2, [\out, ~octoBus4, \fadeTime, 30]); + ~darkHenon1 = Synth(\henonLsynth2, [\out, ~octoBus4, \fadeTime, 0]); wait(40); + + ( + + ~darkHenon1 = Synth(\henonLsynth2, [\out, ~octoBus4, \fadeTime, 0]); + ~henonS1 = Synth(\henonSynth1, [\out, ~octoBus3, \amp, 0.4, \fadeTime, 0]); + + + ) + + + + + + + "--- henonS1 ...".postln; ~henonS1 = Synth(\henonSynth1, [\out, ~octoBus3, \amp, 0.4, \fadeTime, 40]); "--- noiseCrackle fade ...".postln; ~noiseCr1.set(\fadeTime, 90, \gate,0); + ~noiseCr1.set(\fadeTime, 9, \gate,0); ~panBus3x.value = 0; ~panBus3y.value = 1; ~panner3y.free; @@ -446,10 +613,10 @@ timeLine = Routine { wait(120); "--- final fade henonS1, darkHenon ...".postln; - ~darkHenon1.set(\gate, 0, \fadeTime, 60); + ~darkHenon1.set(\gate, 0, \fadeTime, 6); wait(30); - ~henonS1.set(\gate, 0, \fadeTime, 60); + ~henonS1.set(\gate, 0, \fadeTime, 1); wait(60); ~panner1y.free; @@ -460,7 +627,7 @@ timeLine = Routine { }; -timeLine.play; +//timeLine.play; );