diff --git a/rhizosphere.scd b/rhizosphere.scd index 7bf71d7..fd5bd96 100644 --- a/rhizosphere.scd +++ b/rhizosphere.scd @@ -3,26 +3,17 @@ This program is free software distributed under GNU General Public Licence. See COPYING for more info. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ // RHIZOSPHERE - STEKLENIK 2020 - CONA ////////////////////////////////////////////// -postln(" - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"); -/* ->>> Hello. Starting RHIZOSPHERE <<<<< - ██████╗ ██╗ ██╗██╗███████╗ ██████╗ ███████╗██████╗ ██╗ ██╗███████╗██████╗ ███████╗ ██╔══██╗██║ ██║██║╚══███╔╝██╔═══██╗██╔════╝██╔══██╗██║ ██║██╔════╝██╔══██╗██╔════╝ ██████╔╝███████║██║ ███╔╝ ██║ ██║███████╗██████╔╝███████║█████╗ ██████╔╝█████╗ ██╔══██╗██╔══██║██║ ███╔╝ ██║ ██║╚════██║██╔═══╝ ██╔══██║██╔══╝ ██╔══██╗██╔══╝ ██║ ██║██║ ██║██║███████╗╚██████╔╝███████║██║ ██║ ██║███████╗██║ ██║███████╗ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚══════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚══════╝ + */ -"); - */ - Server.default.waitForBoot { // library path @@ -36,10 +27,6 @@ Server.default.waitForBoot { // execute it: this.executeFile(afile.fullPath); }); - - // important for patterns - s.latency = 0.05; // default server's is 0.2 - }); s.meter; s.plotTree; @@ -97,11 +84,11 @@ s.meter; s.plotTree; ">>> loaded all busses".postln; ); -( +( /////////////////////////////////////////////////////////////////////////////// var timeLine; - -"--- freeing old octoPanners ...".postln; -~octoPanner1.free; ~octoPanner2.free; ~octoPanner3.free; ~octoPanner4.free; +"\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); @@ -128,20 +115,12 @@ var timeLine; ~reverb = Synth("reverBusser", [\inBus, ~revBus, \outBus, 0], addAction: \addToTail); // some default oscilations of pan and reverb - -~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, LFNoise1.kr(1).range(0,0.28))}).play; ~panner2y = SynthDef(\randomPanY2, { Out.kr(~panBus2y, LFNoise1.kr(1).range(0,0.28))}).play; ~panner3y = SynthDef(\randomPanY3, { Out.kr(~panBus3y, LFNoise1.kr(1).range(0,0.28))}).play; ~panner4y = SynthDef(\randomPanY4, { Out.kr(~panBus4y, LFNoise1.kr(1).range(0,0.28))}).play; -// convert to SynthDef + Synth for common oscilations? -~reverb1wetBus.free; ~wetOsc.free; // clean up +~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; @@ -150,38 +129,39 @@ var timeLine; // ~reverb.set(\verb1wet, 0); // ~reverb.set(\verb1wet, 1); // ~reverb.set(\verb2wet, 1); +//); - +//( 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]); + ~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); wait(80); "--- starting soil2 ...".postln; - ~soil2 = Synth(\granSoil, [\out, ~octoBus2, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20]); + ~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); wait(20); "--- starting oscilating duration ...".postln; - ~soil1DurOsc = SynthDef( \soilDurOsc, {Out.kr(~soil1durBus, SinOsc.kr(0.01,1.5pi).range(0.0001, 0.1))} ).play; + ~soil1DurOsc = SynthDef( \soilDurOsc, {Out.kr(~soil1durBus, SinOsc.kr(0.012,1.5pi).range(0.0001, 0.05))} ).play; wait(20); - + // ~soil1DurOsc.free; "--- starting oscilating duration 2...".postln; - ~soil2DurOsc = SynthDef( \soilDurOsc, {Out.kr(~soil2durBus, SinOsc.kr(0.01,1.5pi).range(0.0001, 0.2))} ).play; + ~soil2DurOsc = SynthDef( \soilDurOsc, {Out.kr(~soil2durBus, SinOsc.kr(0.029,1.5pi).range(0.0001, 0.08))} ).play; wait(120); - "--- return to static duration...".postln; + "--- return to static duration, abruptly...".postln; ~soil1.set(\dur, 0.0001); wait(1); ~soil2.set(\dur, 0.0001); @@ -197,20 +177,21 @@ timeLine = Routine { ~soil1DurOsc.free; ~soil2DurOsc.free; - + // trigRingz ////////////////////////////////////////////////////////////////////////////////////////////////////// + "\n--- PART 2 ---".postln; "--- starting lorenzTrig1 ...".postln; ~lorenzTrig1 = Synth(\lorenzTrigRing, [\out, ~octoBus1, \freq, 1400, \amp, 0.5, \fadeTime, 5]); - wait(30); + wait(50); "--- starting stdTrig1 ...".postln; ~stdTrig1 = Synth(\stndTrigRing, [\out, ~octoBus2, \freq,1900, \amp,0.5,\fadeTime, 10]); - wait(20); + wait(40); "--- starting lorenzTrig2 ...".postln; ~lorenzTrig2 = Synth(\lorenzTrigRing, [\out, ~octoBus3, \freq, 400, \amp, 0.3, \fadeTime, 10, \min, 5, \max, 20]); - wait(20); + wait(30); "--- starting stdTrig2 ...".postln; ~stdTrig2 = Synth(\stndTrigRing, [\freq, 70, \min, 0, \max, 2, \decay, 2, \ffreq, 200, \amp, 0.4, \out, ~octoBus4, \fadeTime, 20]) ; @@ -218,27 +199,31 @@ timeLine = Routine { "--- starting henoTrig1 ...".postln; ~henoTrig1 = Synth(\henoTrigRing, [\out, ~octoBus2, \freq, 2700, \amp, 1, \min, 0.1, \max, 1, \fadeTime, 20]); - wait(20); + wait(10); "--- starting henoTrig1 ...".postln; - ~gbmanTrig1 = Synth(\gbmanTrigRing, [\out, ~octoBus1, \freq, 90, \decay, 2, \min, 0.2, \max, 1, \amp, 0.4, \fadeTime, 2]); - wait(20); + ~gbmanTrig1 = Synth(\gbmanTrigRing, [\out, ~octoBus1, \freq, 139, \decay, 2, \min, 0.2, \max, 1, \amp, 0.4, \fadeTime, 2]); + wait(10); "--- starting latooTrig1 ...".postln; ~latooTrig1 = Synth(\latooTrigRing, [\out, ~octoBus4, \freq, 3300, \decay, 3, \min, 0.2, \max, 1, \amp, 0.2, \fadeTime, 10 ]); - wait(20); + wait(10); "--- starting latooTrig2 ...".postln; ~latooTrig2 = Synth(\latooTrigRing, [\out, ~octoBus3, \freq, 4300, \decay, 0.2, \min, 1, \max, 10, \amp, 0.2, \fadeTime, 10 ]); - wait(20); + wait(10); "--- starting fhnTrig1 ...".postln; - ~fhnTrig1 = Synth(\fhnTrigRing, [\out, ~octoBus1, \freq, 110, \amp, 0.5, \decay, 2, \min, 0.2, \max, 1, \amp, 0.4, \fadeTime, 10]); + ~fhnTrig1 = Synth(\fhnTrigRing, [\out, ~octoBus1, \freq, 210, \amp, 0.5, \decay, 2, \min, 0.2, \max, 1, \amp, 0.4, \fadeTime, 10]); + wait(20); + + "--- starting fhnTrig3 ...".postln; + ~fhnTrig3 = Synth(\fhnTrigRing, [\out, ~octoBus1, \freq, 200, \amp, 0.5, \decay, 2, \min, 0.2, \max, 1, \amp, 0.4, \fadeTime, 10]); wait(20); "--- starting fhnTrig2 ...".postln; ~fhnTrig2 = Synth(\fhnTrigRing, [\out, ~octoBus2, \freq, 2110, \amp, 0.5, \min, 2, \max, 20, \amp, 0.5, \fadeTime, 10]); - wait(40); + wait(20); "--- starting ~fmgrainer ...".postln; ~fmgrainer = Routine { 200.do({ x = Synth(\fm_grainer, [ "modfreq", rrand(10,1000), "carfreq", rrand(40,100), \out, ~octoBus1 ]); 1.wait; }); "--- fmgrains done generating new ones ...".postln; }.play; @@ -250,6 +235,7 @@ timeLine = Routine { ~stdTrig2.set(\fadeTime, 8, \gate, 0); ~lorenzTrig2.set(\fadeTime, 12, \gate, 0); ~henoTrig1.set(\fadeTime, 15, \gate, 0); + ~fhnTrig3.set(\fadeTime, 1, \gate, 0); wait(30); "--- fading out ...".postln; @@ -269,20 +255,21 @@ timeLine = Routine { "--- latooWanderings ...".postln; ~latooWan1 = Synth(\latooWanderings, [\out, ~octoBus4, \fadeTime, 30, \amp, 0.3]); wait(60); - + + "\n--- PART 3 ---".postln; "--- markov1 ...".postln; ~markov1 = Synth(\markovS1, [ \out, ~octoBus1, \freq, 440, \tsize, 3, \amp, 0.3, \clip, 0.69, \fadeTime, 0.01 ]); wait(60); - "--- markov fade, latooWan fade, distbleeps ...".postln; + "--- cut markov1 & latooWan, start distbleeps ...".postln; ~markov1.set(\gate, 0, \fadeTime, 0.01); ~latooWan1.set(\gate, 0, \fadeTime, 0.01); - ~distbleeps = Synth(\latooTriggers, [\out, ~octoBus3, \trigA, 1.1, \fadeTime, 0.01, \amp, 0.7]); - wait(60); + ~distbleeps = Synth(\latooTriggers, [\out, ~octoBus3, \trigA, 1.1, \fadeTime, 0.01, \amp, 0.9]); + wait(30); "--- markov7 ...".postln; - ~markov7 = Synth(\markovS1, [ \out, ~octoBus2, \freq, 740, \tsize, 3, \amp, 0.1, \clip, 0.9, \fadeTime, 7 ]); - wait(60); + ~markov7 = Synth(\markovS1, [ \out, ~octoBus2, \freq, 740, \tsize, 3, \amp, 0.2, \clip, 0.9, \fadeTime, 7 ]); + wait(20); "--- fade: markov7, distbleeps ...".postln; ~markov7.set(\gate, 0, \fadeTime, 0.01); @@ -298,58 +285,39 @@ timeLine = Routine { "--- markov10,11,12 ...".postln; ~markov10 = Synth(\markovS1, [ \out, ~octoBus4, - \freq, 501, \tsize, 3, \amp, 0.2, \clip, 0.9, \fadeTime, 0.1 ]); + \freq, 501, \tsize, 3, \amp, 0.2, \clip, 0.9, \fadeTime, 0.01 ]); ~markov11 = Synth(\markovS1, [ \out, ~octoBus3, - \freq, 1101, \tsize, 3, \amp, 0.2, \clip, 0.9, \fadeTime, 0.1 ]); + \freq, 1101, \tsize, 3, \amp, 0.2, \clip, 0.9, \fadeTime, 0.01 ]); ~markov12 = Synth(\markovS1, [ \out, ~octoBus2, - \freq, 3001, \tsize, 3, \amp, 0.2, \clip, 0.9, \fadeTime, 0.1 ]); + \freq, 3001, \tsize, 3, \amp, 0.2, \clip, 0.9, \fadeTime, 0.01 ]); wait(60); - "--- noiseCrackle ...".postln; - ~noiseCr1 = Synth(\noiseCrackle, [\out, ~octoBus1, \fadeTime, 40 ]); "--- fade markov10,11,12 ...".postln; ~markov10.set(\gate, 0, \fadeTime, 50); ~markov11.set(\gate, 0, \fadeTime, 50); ~markov12.set(\gate, 0, \fadeTime, 50); + + "\n--- PART 4 --- ".postln; + "--- noiseCrackle ...".postln; + ~noiseCr1 = Synth(\noiseCrackle, [\out, ~octoBus1, \fadeTime, 30 ]); wait(40); - "--- noiseCrackle lpfa hpfa ...".postln; - ~noiseCr1.set(\lpfa,1,\hpfa,0); - wait(10); - - "--- noiseCrackle lpfa hpfa ...".postln; - ~noiseCr1.set(\lpfa,0,\hpfa,1); - wait(5); - - "--- noiseCrackle lpfa hpfa ...".postln; - ~noiseCr1.set(\lpfa,1,\hpfa,1); - wait(10); - "--- darkHenon ...".postln; - ~darkHenon1 = Synth(\henonLsynth2, [\out, ~octoBus4, \fadeTime, 60]); - wait(20); - - "--- noiseCrackle amp 0.5 ...".postln; - ~noiseCr1.set(\amp, 0.5); + ~darkHenon1 = Synth(\henonLsynth2, [\out, ~octoBus4, \fadeTime, 30]); wait(40); - "--- noiseCrackle amp 0.2 ...".postln; - ~noiseCr1.set(\amp, 0.2); - wait(30); - - "--- noiseCrackle fade ...".postln; - ~noiseCr1.set(\fadeTime, 30, \gate,0); - wait(60); - "--- henonS1 ...".postln; - ~henonS1 = Synth(\henonSynth1, [\out, ~octoBus3, \amp, 0.2, \fadeTime, 40]); - wait(120); + ~henonS1 = Synth(\henonSynth1, [\out, ~octoBus3, \amp, 0.4, \fadeTime, 40]); + "--- noiseCrackle fade ...".postln; + ~noiseCr1.set(\fadeTime, 90, \gate,0); + wait(90); "--- final fade henonS1, darkHenon ...".postln; - ~henonS1.set(\gate, 0, \fadeTime, 50); - ~darkHenon1.set(\gate, 0, \fadeTime, 40); - - wait(50); + ~darkHenon1.set(\gate, 0, \fadeTime, 60); + wait(20); + + ~henonS1.set(\gate, 0, \fadeTime, 60); + wait(60); "--- end of the TIMELINE ---".postln