diff --git a/ark_d.scd b/ark_d.scd index 5c86789..06a58d0 100644 --- a/ark_d.scd +++ b/ark_d.scd @@ -3,7 +3,7 @@ // Ark/D, amorphic (2020) // =========================================================== -// before boot, raise memory +// before boot, raise memory? #[\internal, \local].do { |s| s = Server.perform(s); s.options.memSize = 2097152; // 2 gigs @@ -47,8 +47,19 @@ Server.default.waitForBoot { var snd, dly2; snd = In.ar(in,2); - dly2 = CombN.ar(HPF.ar(snd,300), 1, [3/8,5/8] * LFNoise1.kr(0.4).range(0.98,1.02), 6, mul: LFNoise1.kr(0.1).range(0.4,0.1) * 2 * wet2); - snd = CombN.ar(snd, 1, Lag.ar(LFNoise0.ar(1).range(0.01,0.1),0.1), 3, mul:wet) + snd; + + dly2 = CombN.ar(HPF.ar(snd,300), + 1, + [3/8,5/8] * LFNoise1.kr(0.4).range(0.98,1.02), + 6, + mul: LFNoise1.kr(0.1).range(0.4,0.1) * 2 * wet2); + + snd = CombN.ar(snd, + 1, + Lag.ar(LFNoise0.ar(1).range(0.01,0.1),0.1), + 3, + mul:wet) + snd; + snd = Limiter.ar(snd, 0.8); snd = snd + dly2; @@ -60,8 +71,9 @@ Server.default.waitForBoot { var input, snd; input = In.ar(inBus, 2); snd = Limiter.ar(input, thresh); - amp = VarLag.kr(amp+0.000001, lag, 0, \cub); + amp = VarLag.kr(amp+0.000001, lag, 0, \cub) - 0.000001; snd = snd * amp; + snd = snd.softclip; Out.ar(outBus, snd); }).add; @@ -81,6 +93,9 @@ Server.default.waitForBoot { //~mainOutFx.free; ~mainOutFx = Synth(\mainOutFx, [\inBus, ~mainOut, \outBus, 0], addAction:\addToTail); + + // --------------------------------------------------------------------------------- + "*** setup done. onto the timeline! ...".postln; 1.wait; @@ -127,13 +142,13 @@ Server.default.waitForBoot { // synthdef SynthDef(\param, { arg freq = 100, sustain, amp, out=0; var sig; - sig = LFPar.ar(freq: [freq, freq*2]); - sig = sig * [1,0.1]; + sig = LFPar.ar(freq: [freq, freq*2.02]); + sig = sig * [1,0.2]; sig = (sig * 4).softclip * 0.8; //sig = LPF.ar(HPF.ar(sig, 150), 3000); - sig = LPF.ar(sig, (freq * 4).min(20000)); + sig = LPF.ar(sig, (freq * 3).min(20000)); sig = sig * EnvGen.kr(Env.perc(0, sustain, 0.5), doneAction:2) * amp; - sig = Splay.ar(sig, 0.2); + sig = Splay.ar(sig, Rand(0,0.5), 1, Rand(-0.5,0.5)); Out.ar(out, sig); }).add; @@ -142,7 +157,7 @@ Server.default.waitForBoot { //set main out gain to 0 ~mainOutFx.set(\lag, 0, \amp, 0); 0.2.wait; - + // start playing starting pattern Pbindef(\prand, \instrument, \param, @@ -158,9 +173,8 @@ Server.default.waitForBoot { } }), \dur, Prand([1,2,4,8,12,16,4,6,8], inf) / 20, - \amp, 1, + \amp, 1.2, \sustain, 0.2, - //\out, ~verbDelayBus \out, ~reverBus ).play; " . 1.0".postln; @@ -217,7 +231,7 @@ Server.default.waitForBoot { \legato,1, \degree, Pseq([ [-2,3,11,20], [-2,5,7,21] ],inf), \octave, 3, - \amp, [1,0.5,0.2,0.1] * 0.5, + \amp, [1,0.5,0.2,0.1] * 0.7, \out, ~reverBus, \gainBus, ~softSawAmpBus ).play; @@ -246,7 +260,7 @@ Server.default.waitForBoot { } }) - Pstutter(4, Prand([0,1] * 12,inf)), \sustain, Prand((9..10)/10,inf), - ); " . 1.3 tone0 = rrand(0,11) + longer sustain".postln; + ); " . 1.3 rrand(0,11), sustain".postln; 30.wait; @@ -288,7 +302,7 @@ Server.default.waitForBoot { ~greyholeVerb.set(*[revWet:0.5, feedback:0.7, lag:10, dtime:0.1, size:5, diff:0.707 ]); - ~softSawAmpBusLiner.set(\lag, 20, \val, 1); + ~softSawAmpBusLiner.set(\lag, 20, \val, 1.5); 21.wait; @@ -324,7 +338,7 @@ Server.default.waitForBoot { } }), \sustain, Prand((4..9)/10,inf), - ).play; "1.7 tone0:0".postln; + ).play; " . 1.7 tone0:0".postln; ~softSawAmpBusLiner.set(\lag, 20, \val, 0.5); @@ -345,7 +359,7 @@ Server.default.waitForBoot { } }), \sustain, Prand((4..9)/10,inf), - ).play; "1.8 24".postln; + ).play; " . 1.8 24".postln; 10.wait; @@ -362,7 +376,7 @@ Server.default.waitForBoot { } }), \sustain, Prand((4..9)/10,inf), - ).play; "1.9 24 & 24".postln; + ).play; " . 1.9 24 & 24".postln; 10.wait; @@ -402,20 +416,20 @@ Server.default.waitForBoot { } }), \sustain, Prand((2..5)/10,inf), - //\amp, Env(#[1,1,0.2], #[10,20]) ).play; " . 1.11 tone0".postln; 10.wait; - Pbindef(\prand, \amp, -1.dbamp); - 2.wait; Pbindef(\prand, \amp, -2.dbamp); - 2.wait; Pbindef(\prand, \amp, -3.dbamp); - 2.wait; Pbindef(\prand, \amp, -4.dbamp); - 2.wait; Pbindef(\prand, \amp, -5.dbamp); - 2.wait; Pbindef(\prand, \amp, -6.dbamp); - 2.wait; Pbindef(\prand, \amp, -7.dbamp); - 2.wait; Pbindef(\prand, \amp, -8.dbamp); - 2.wait; Pbindef(\prand, \amp, -9.dbamp); - 10.wait; + + // sure one could use Pseg here: + Pbindef(\prand, \amp, -1.dbamp); 2.wait; + Pbindef(\prand, \amp, -2.dbamp); 2.wait; + Pbindef(\prand, \amp, -3.dbamp); 2.wait; + Pbindef(\prand, \amp, -4.dbamp); 2.wait; + Pbindef(\prand, \amp, -5.dbamp); 2.wait; + Pbindef(\prand, \amp, -6.dbamp); 2.wait; + Pbindef(\prand, \amp, -7.dbamp); 2.wait; + Pbindef(\prand, \amp, -8.dbamp); 2.wait; + Pbindef(\prand, \amp, -9.dbamp); 10.wait; Pbindef(\prand).stop; @@ -476,8 +490,7 @@ Server.default.waitForBoot { \amp, 0.7, \legato, 1, \outBus, ~mainOut, - ).play; "--- gcdmodp...".postln; - + ).play; 30.wait; @@ -554,11 +567,19 @@ Server.default.waitForBoot { Pbindef(\akjClickp, *[ instrument: \akjClick, - //dur: Pseq([Pseq([1,2,3]/8, 2), Pseq([1,2,1,2,1,1]/8,3), Pseq([1]/8, 4), Pseq([1]/4, 2), ],inf), - //dur: Pseq([Pn(1/8, 31), Rest(1/8)],inf), - //dur: Pseq([Pn(1/3, 31), Rest(1/8)],inf), - //amp: Prand([5,7,8,9]/20, inf), - amp: Prand([9]/20, inf), + dur: Pseq([ + Pn(1/8, 7), Rest(1/8), // 1 + Rest(1), // 1 + Pn(1/4, 3), Rest(3/8), Pn(1/8, 1), + Pn(1/4, 3), Rest(3/8), Pn(1/8, 1), + Pn(1/4, 3), Rest(4/8), + Pn(1/8, 7), Rest(1/8), + Prand([ Rest(1), Pn(1/6,6) ]), + Pn(1/8, 3), Rest(1/8), + Prand([ Rest(1.25), Pn(1/4, 5) ]), + Prand([ Pn(1/8, 3), Pn(1/16, 6) ]), Rest(1/8), + ],inf), + amp: 9/20, releaseTime: 0.3, freq:1, out: ~mainOut @@ -745,7 +766,7 @@ Server.default.waitForBoot { Pbindef(\y3).quant=1; Pbindef(\y3).play; - wait(30); + wait(20); Pbindef(\midlineP, \degree, Pseq([6,1,4], inf), \dur, 40 ); Pbindef(\midlineP, \amp, 0.1 ); @@ -753,12 +774,12 @@ Server.default.waitForBoot { Pbindef(\y3, \cutoff, Pstutter(16, Pseq([Pseq((13..18)),Pseq((17..12))].min(13),inf))); Pbindef(\y3, \legato, Pseq([Prand([1,0.7]), 0.6, 0.9, 0.4, 0.6] * 0.3, inf)); - wait(30); + wait(15); Pbindef(\y3, \cutoff, Pstutter(16, Pseq([Pseq((13..18)),Pseq((17..12))].min(14),inf))); Pbindef(\y3, \legato, Pseq([Prand([1,0.7]), 0.6, 0.9, 0.4, 0.6] * 0.4, inf)); - wait(30); + wait(15); Pbindef(\y3, \cutoff, Pstutter(16, Pseq([Pseq((13..18)),Pseq((17..12))].min(15),inf))); Pbindef(\y3, \legato, Pseq([Prand([1,0.7]), 0.6, 0.9, 0.4, 0.6] * 0.5, inf)); @@ -812,7 +833,7 @@ Server.default.waitForBoot { Pbindef(\midlineP).stop; - wait(30); + //wait(30); Pbindef(\wHatp, \legato, Pseq([ Pseq((1..24)/24,1), Pseq([Pn(0.05,7),Prand((1..10)/80+0.05,inf)],inf)])); wait(24/8); @@ -836,13 +857,13 @@ Server.default.waitForBoot { wait(30); Pbindef(\wHatp, \legato, Pseq([ Pseq((1..24)/24,1), Pseq([Pn(0.05,7),Prand((1..10)/80+0.05,inf)],inf)])); - wait(25/8); + wait(20/8); Pbindef(\wHatp).stop; Pbindef(\y3, \legato, Pseq([Prand([1,0.7]), 0.6, 0.9, 0.4, 0.6] * 0.3, inf)); Pbindef(\y3, \cutoff, Pstutter(16, Pseq([Pseq((13..18)),Pseq((17..12))].min(14),inf))); - wait(10); + wait(20); Pbindef(\y3, \legato, Pseq([Prand([1,0.7]), 0.6, 0.9, 0.4, 0.6] * 0.6, inf)); Pbindef(\y3, \degree, Pseq( [ 0, 2, -1, 5, -2, 6 ], inf)); @@ -850,12 +871,14 @@ Server.default.waitForBoot { //Pbindef(\y3, \octave, [4,5,6] + Pwrand([0,2,1, 3],[0.7,0.1,0.1,0.1],inf)); Pbindef(\y3, \dlywet, Pstutter(8, Pfunc({~dlywrang1.set(\wet, rrand(0, ((3..9) * 0.1).choose ) ) }))); - wait(20); + wait(30); + ~dlywrang1.set(\wet2, 1); + wait(4); Pbindef(\y3).stop; wait(4); - + // --- lcmnoi ---------------------------------------------------------------------- "--- lcmnoi ...".postln; @@ -904,20 +927,19 @@ Server.default.waitForBoot { \instrument, \lcmnoise, \dur, Pseq([ - Prand([Pseq([0.01,0.01]),0.02]), - Pn(0.05,19), - 9.03 - ], 20), // 20 x 10 + Pseq([ + Prand([Pseq([0.01,0.01]),0.02]), + Pn(0.05,19), + 9.03 + ], 20), // 20 x 10 + 30]), \amp, 1, \amp1, Pseq([1,0.1],inf), \amp2, Pseq([0.6,1],inf), \legato, 1, \out, ~mainOut, - ).play; "--- lcmnoip...".postln; - - // progression into delays/reverbs? - // any added sounds? + ).play; 160.wait; @@ -950,7 +972,7 @@ Server.default.waitForBoot { ~s1DistAmpBus = Bus.control(s,1); ~s1DistAmpBus.set(0); ~s1DistAmpLiner = SynthDef(\linexamp, { |outBus, lag, val| - Out.kr(outBus, VarLag.kr(val+0.0001, lag, 0, \cub) - 0.0001) + Out.kr(outBus, VarLag.kr(val+0.0001, lag, 0, \cub) - 0.0001 * 0.9) }).play(s, [outBus: ~s1DistAmpBus, lag: 10, val:0]); ~s1DistFfreqBus.free; @@ -980,8 +1002,8 @@ Server.default.waitForBoot { wait(1); - ~s1DistAmpLiner.set(\lag, 20, \val, 0.4); wait(20); - ~s1DistFfreqLiner.set(\lag, 20, \val, 500); wait(40); + ~s1DistAmpLiner.set(\lag, 40, \val, 0.4); wait(20); + ~s1DistFfreqLiner.set(\lag, 40, \val, 500); wait(40); ~s1DistFfreqLiner.set(\lag, 10, \val, 1500); wait(30); ~s1DistFfreqLiner.set(\lag, 10, \val, 7500); wait(20); ~s1DistFfreqLiner.set(\lag, 1, \val, 700); wait(10); @@ -1060,7 +1082,7 @@ Server.default.waitForBoot { \freq, Pseq([50, 80],inf), \dur, 30, \legato, 1.2, - \amp, 0.7, + \amp, 0.9, \out, ~mainOut ).play; @@ -1080,7 +1102,9 @@ Server.default.waitForBoot { wait(20); - Pbindef(\padmeP, \amp, 0.2); + Pbindef(\padmeP, \amp, 0.4); + + Pbindef(\dustnoiseP, \amp, Pseg(Pseq([1,0]), 90, \cub) ); // ??? // -- Soft dark saw --------------------------------------- "--- soft dark saw...".postln; @@ -1143,7 +1167,7 @@ Server.default.waitForBoot { \attack, 3, \octave, Prand([2,3,4],inf), \nharms, Prand((1..4),80), - \amp, 0.2 ); + \amp, 0.3 ); ~highP = Pbind( \dur, Pflatten(1, Plorenz() * 5), @@ -1152,7 +1176,6 @@ Server.default.waitForBoot { \nharms, Prand((1..3),50), \amp, 0.03 ); - // just plays out! ~lorenzP = Pbindf( Ptpar([ 0, ~dotsP, 60, ~linesP, 160, ~highP]), @@ -1166,14 +1189,22 @@ Server.default.waitForBoot { \out, ~reverBus ).play; - wait(70); + wait(140); ~softSawAmpBusLiner.set(\lag, 120, \val, 0); + wait(120); + Pbindef(\sawp1).stop; while({ ~lorenzP.isPlaying }, { wait(1); }); - wait(30); + + wait(10); + + // fade out + ~mainOutFx.set(\lag, 10, \amp, 0); + + wait(5); //////////////////////////////////////////////////////////////////////////