365 lines
12 KiB
Markdown
365 lines
12 KiB
Markdown
(/*
|
|
Copyright (c) 2020 Luka Prinčič, All rights reserved.
|
|
This program is free software distributed under
|
|
GNU General Public Licence. See COPYING for more info.
|
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
// RHIZOSPHERE - STEKLENIK 2020 - CONA //////////////////////////////////////////////
|
|
|
|
██████╗ ██╗ ██╗██╗███████╗ ██████╗ ███████╗██████╗ ██╗ ██╗███████╗██████╗ ███████╗
|
|
██╔══██╗██║ ██║██║╚══███╔╝██╔═══██╗██╔════╝██╔══██╗██║ ██║██╔════╝██╔══██╗██╔════╝
|
|
██████╔╝███████║██║ ███╔╝ ██║ ██║███████╗██████╔╝███████║█████╗ ██████╔╝█████╗
|
|
██╔══██╗██╔══██║██║ ███╔╝ ██║ ██║╚════██║██╔═══╝ ██╔══██║██╔══╝ ██╔══██╗██╔══╝
|
|
██║ ██║██║ ██║██║███████╗╚██████╔╝███████║██║ ██║ ██║███████╗██║ ██║███████╗
|
|
╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚══════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚══════╝
|
|
|
|
|
|
*/
|
|
|
|
Server.default.waitForBoot {
|
|
|
|
// library path
|
|
var libPath = PathName(thisProcess.nowExecutingPath.dirname +/+ "lib");
|
|
|
|
"\n\n\n=============================================================".postln;
|
|
"\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>".postln;
|
|
"--- R H I Z O S P H E R E -----".postln;
|
|
">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n".postln;
|
|
|
|
// for each files in that lib folder
|
|
libPath.filesDo({|afile|
|
|
// tell me what you're executing:
|
|
postln(" ." + afile.fileName);
|
|
|
|
// execute it:
|
|
this.executeFile(afile.fullPath);
|
|
});
|
|
|
|
});
|
|
|
|
|
|
s.meter;
|
|
s.plotTree;
|
|
|
|
//free runaway synth:
|
|
s.sendMsg(\n_free, 1553)
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
// P E R F O R M A N C E /////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// BUFFERS and RECORDERS
|
|
// buffers are stored during server's boot, across CTRL-dot.
|
|
b = Buffer.alloc(s, 44100 * 4.0, 1); // a four second 1 channel Buffer
|
|
c = Buffer.alloc(s, 44100 * 4.0, 1); // a four second 1 channel Buffer
|
|
d = Buffer.alloc(s, 44100 * 4.0, 1); // a four second 1 channel Buffer
|
|
e = Buffer.alloc(s, 44100 * 4.0, 1); // a four second 1 channel Buffer
|
|
|
|
Synth(\recIn, [\bufnum, b]);
|
|
b.normalize;
|
|
Synth(\recIn, [\bufnum, c]);
|
|
c.normalize;
|
|
Synth(\recIn, [\bufnum, d]);
|
|
d.normalize;
|
|
Synth(\recIn, [\bufnum, e]);
|
|
e.normalize;
|
|
|
|
b.plot
|
|
c.plot
|
|
d.plot
|
|
e.plot
|
|
// ============================================================================
|
|
|
|
// granulatorz.
|
|
~grainb = Synth(\bgrain, [\out, ~reverBus, \bufnum, b, \amp, 0.01]);
|
|
~grainb.set(\amp, 0.5, \amplag, 10)
|
|
~grainb.set(\rate, 2)
|
|
~grainb.set(\out, ~octoBus1)
|
|
~grainb.release(3)
|
|
|
|
~grainc = Synth(\bgrain, [\out, ~reverBus, \bufnum, c, \amp, 0.01]);
|
|
~grainc.set(\amp, 0.02, \amplag, 10)
|
|
~grainc.set(\rate, 2)
|
|
~grainc.release(10)
|
|
|
|
~graind = Synth(\bgrain, [\out, ~reverBus, \bufnum, d, \amp, 0.01]);
|
|
~graind.set(\amp, 0.5, \amplag, 10)
|
|
~graind.release(10)
|
|
|
|
~graine = Synth(\bgrain, [\out, ~reverBus, \bufnum, e, \amp, 0.01]);
|
|
~graine.set(\amp, 0.1, \amplag, 10)
|
|
~graine.release(10)
|
|
|
|
|
|
|
|
// 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, 1);
|
|
~noiseCr1.set(\gate, 0, \fadeTime, 10);
|
|
~noiseCr1.release(1)
|
|
~noiseCr1.free;
|
|
|
|
~noiseCr2 = Synth(\noiseCrackle, [\out, ~octoBus2, \fadeTime, 30, \lpfa, 1, \hpfa, 0 ]);
|
|
~noiseCr2.set(\gate, 0, \fadeTime, 20);
|
|
~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, 1);
|
|
~henonS1.set(\hpff, 200);
|
|
~henonS1.set(\lpff, 200);
|
|
~henonS1.release(10);
|
|
~henonS1.free;
|
|
|
|
~henonS2 = Synth(\henonSynth1, [\out, ~octoBus4, \amp, 0.4, \fadeTime, 4]);
|
|
~henonS2.set(\amp, 1);
|
|
~henonS2.set(\out, ~octoBus4);
|
|
~henonS2.set(\gate, 0, \fadeTime, 10);
|
|
~henonS2.free;
|
|
|
|
~darkHenon1 = Synth(\henonLsynth2, [\out, ~octoBus1, \fadeTime, 10]);
|
|
~darkHenon1.set(\gate, 0, \fadeTime, 10);
|
|
~darkHenon1.set(\amp, 0.1);
|
|
~darkHenon1.release(10);
|
|
~darkHenon1.free;
|
|
|
|
~darkHenon2 = Synth(\henonLsynth2, [\out, ~octoBus2, \fadeTime, 10]);
|
|
~darkHenon2.set(\amp, 1);
|
|
~darkHenon2.set(\gate, 0, \fadeTime, 3);
|
|
~darkHenon2.release(30);
|
|
~darkHenon2.free;
|
|
|
|
// SOIL
|
|
|
|
~soil1 = Synth(\granSoil, [\out, ~octoBus1, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20, \amp, 0.8]);
|
|
~soil1durBus = Bus.control(s,1);
|
|
~soil1durBus.value = 0.001;
|
|
~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(\amp, 0.5);
|
|
~soil1.set(\gate, 0, \fadeTime, 15); // use envelope to fade out
|
|
~soil1.release(15);
|
|
~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.release(15);
|
|
|
|
//
|
|
|
|
~soil3 = Synth(\granSoil, [\out, ~octoBus3, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20, \amp, 0.8]);
|
|
~soil3durBus = Bus.control(s,1);
|
|
~soil3durBus.value = 0.0001;
|
|
~soil3.map(\dur, ~soil3durBus);
|
|
~soil3DurOsc = SynthDef( \soilDurOsc, {Out.kr(~soil3durBus, SinOsc.kr(0.029,1.5pi).range(0.0001, 0.08))} ).play;
|
|
~soil3DurOsc.free;
|
|
|
|
~soil3.release(15);
|
|
|
|
//
|
|
|
|
~soil4 = Synth(\granSoil, [\out, ~octoBus4, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20, \amp, 0.8]);
|
|
~soil4durBus = Bus.control(s,1);
|
|
~soil4durBus.value = 0.01;
|
|
~soil4.map(\dur, ~soil4durBus);
|
|
~soil4DurOsc = SynthDef( \soilDurOsc, {Out.kr(~soil4durBus, SinOsc.kr(0.029,1.5pi).range(0.0001, 0.08))} ).play;
|
|
~soil4DurOsc.free;
|
|
|
|
~soil4.release(15);
|
|
|
|
|
|
// MARKOV NOISES +
|
|
|
|
~latooWan1 = Synth(\latooWanderings, [\out, ~octoBus4, \fadeTime, 30, \amp, 0.3]);
|
|
~latooWan1.release(3);
|
|
|
|
~markov1 = Synth(\markovS1, [ \out, ~octoBus1, \freq, 440, \tsize, 3, \amp, 0.3, \clip, 0.69, \fadeTime, 0.01 ]);
|
|
~markov1.release(0.01);
|
|
|
|
~distbleeps = Synth(\latooTriggers, [\out, ~octoBus3, \trigA, 1.1, \fadeTime, 0.01, \amp, 0.9]);
|
|
~distbleeps.release(10);
|
|
|
|
~markov7 = Synth(\markovS1, [ \out, ~octoBus2, \freq, 740, \tsize, 3, \amp, 0.2, \clip, 0.9, \fadeTime, 7 ]);
|
|
~markov7.release(0.01)
|
|
|
|
~markov9 = Synth(\markovS1, [ \out, ~octoBus1, \freq, 1940, \tsize, 3, \amp, 0.2, \clip, 0.9, \fadeTime, 0.01 ]);
|
|
~markov9.release(0.01)
|
|
|
|
(
|
|
~markov10 = Synth(\markovS1, [ \out, ~octoBus4, \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.01 ]);
|
|
~markov12 = Synth(\markovS1, [ \out, ~octoBus2, \freq, 3001, \tsize, 3, \amp, 0.2, \clip, 0.9, \fadeTime, 0.01 ]);
|
|
)
|
|
|
|
(
|
|
var rel=0.1;
|
|
~markov10.release(rel);
|
|
~markov11.release(rel);
|
|
~markov12.release(rel);
|
|
)
|
|
|
|
|
|
|
|
|
|
// TRIG RINGS
|
|
|
|
~lorenzTrig1 = Synth(\lorenzTrigRing, [\out, ~octoBus1, \freq, 1400, \amp, 0.5, \fadeTime, 0]);
|
|
~lorenzTrig1.set(\amp, 1); // use set fadeTime - set \gate = 0?
|
|
~lorenzTrig1.release; // use set fadeTime - set \gate = 0?
|
|
~lorenzTrig1.release(30); // use set fadeTime - set \gate = 0?
|
|
~lorenzTrig1.set(\fadeTime, 10, \gate, 0);
|
|
~lorenzTrig1.free
|
|
|
|
~stdTrig1 = Synth(\stndTrigRing, [\out, ~octoBus2, \freq,1900, \amp,0.5,\fadeTime, 10]);
|
|
~stdTrig1.release(30);
|
|
~stdTrig1.free
|
|
|
|
~lorenzTrig2 = Synth(\lorenzTrigRing, [\out, ~octoBus3, \freq, 400, \amp, 0.3, \fadeTime, 10, \min, 5, \max, 20]);
|
|
~lorenzTrig2.release(30);
|
|
|
|
~stdTrig2 = Synth(\stndTrigRing, [\freq, 70, \min, 0, \max, 2, \decay, 2, \ffreq, 200, \amp, 0.4, \out, ~octoBus4, \fadeTime, 20]) ;
|
|
~stdTrig2.release(30);
|
|
|
|
~henoTrig1 = Synth(\henoTrigRing, [\out, ~octoBus2, \freq, 2700, \amp, 1, \min, 0.1, \max, 1, \fadeTime, 20]);
|
|
~henoTrig1.release(30);
|
|
|
|
// 139Hz
|
|
~gbmanTrig1 = Synth(\gbmanTrigRing, [\out, ~octoBus1, \freq, 139, \decay, 2, \min, 0.2, \max, 1, \amp, 0.4, \fadeTime, 2]);
|
|
~gbmanTrig1.release(30);
|
|
|
|
// 3300Hz
|
|
~latooTrig1 = Synth(\latooTrigRing, [\out, ~octoBus4, \freq, 3300, \decay, 3, \min, 0.2, \max, 1, \amp, 0.2, \fadeTime, 10 ]);
|
|
~latooTrig1.release(30);
|
|
|
|
// 4300Hz
|
|
~latooTrig2 = Synth(\latooTrigRing, [\out, ~octoBus3, \freq, 4300, \decay, 0.2, \min, 1, \max, 10, \amp, 0.2, \fadeTime, 10 ]);
|
|
~latooTrig2.set(\out, ~octoBus4)
|
|
~latooTrig2.release(30)
|
|
|
|
// 210Hz
|
|
~fhnTrig1 = Synth(\fhnTrigRing, [\out, ~octoBus2, \freq, 210, \amp, 0.5, \decay, 2, \min, 0.2, \max, 1, \amp, 0.4, \fadeTime, 10]);
|
|
~fhnTrig1.release(30);
|
|
|
|
// 200Hz
|
|
~fhnTrig3 = Synth(\fhnTrigRing, [\out, ~octoBus2, \freq, 200, \amp, 0.5, \decay, 2, \min, 0.2, \max, 1, \amp, 0.4, \fadeTime, 10]);
|
|
~fhnTrig3.release(30);
|
|
|
|
// 2110
|
|
~fhnTrig2 = Synth(\fhnTrigRing, [\out, ~octoBus1, \freq, 2110, \amp, 0.5, \min, 2, \max, 20, \amp, 0.5, \fadeTime, 10]);
|
|
~fhnTrig2.set(\ffreq, 8000, \ffreqlag, 20)
|
|
~fhnTrig2.release(60)
|
|
~fhnTrig2 = Node.basicNew(nodeID:1369)
|
|
|
|
|
|
|
|
~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;
|
|
// this one will fade out by itself at some point
|
|
|
|
|
|
// back to SOIL - outro + henonS1?
|
|
|
|
~soil1 = Synth(\granSoil, [\out, ~octoBus1, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20, \amp, 0.8]);
|
|
|
|
~soil1durBus = Bus.control(s,1);
|
|
~soil1durBus.value = 0.001;
|
|
~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(\amp, 0.1)
|
|
~soil1.set(\gate, 0, \fadeTime, 15); // use envelope to fade out
|
|
~soil1.release(30);
|
|
~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.release(15);
|
|
|
|
//
|
|
|
|
~henonS1 = Synth(\henonSynth1, [\out, ~octoBus3, \amp, 0.4, \fadeTime, 4]);
|
|
~henonS1.set(\amp, 0.90);
|
|
~henonS1.set(\hpff, 1000);
|
|
~henonS1.set(\lpff, 50);
|
|
~henonS1.release(10);
|
|
~henonS1.free;
|
|
|
|
//
|
|
|
|
~henonS2 = Synth(\henonSynth1, [\out, ~octoBus3, \amp, 0.4, \fadeTime, 4]);
|
|
~henonS2.set(\amp, 0.05);
|
|
~henonS2.set(\hpff, 200);
|
|
~henonS2.set(\lpff, 200);
|
|
~henonS2.release(40)
|
|
~henonS2.free;
|
|
|
|
|
|
|
|
// helper for nodes without object
|
|
~lorenzTrig1 = Node.basicNew(s, 1354)
|
|
s.sendMsg(\n_free, 1590)
|
|
|
|
|
|
|
|
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|