( // =========================================================== // Ark/D, amorphic (2020) // =========================================================== Server.default.waitForBoot { "Init.scd".loadRelative; "init.scd".loadRelative; } ); // debug/meter s.meter; s.scope(2); s.plotTree; /* ELEMENTS - two chord pad - param/bebacklight (needs granulator?) - s1 distorted drone - shippo - lcm noise - gcdfeedmodsin + low rumble? - klickyarj + lcm noise? - lorenz pattern */ // /////////////////////////////////////////////////////////////////////////////////////////////// // GCD SINMODFEED ///////////////////////////////////////////////////////////////////////////////////////// // feedback of modulated SinOsc // low rumble 0 ------------------------------------ ( SynthDef(\dNoz, { arg out=0, gate=1, amp=0.1, envattackTime=0.001, release=0.001; var snd, env; env = Linen.kr(gate, envattackTime, 1, release, doneAction:2); snd = WhiteNoise.ar(1); snd = snd + SinOsc.ar(SinOsc.kr(10).range(40,60), mul:0.2); snd = snd + Pulse.ar(SinOsc.kr(12).range(40,60), mul:0.1); snd = snd.clip2(0.8); snd = LPF.ar(snd, LFNoise2.ar(0.4).range(60,100), mul:3); snd = snd.dup; snd[1] = DelayL.ar(snd[1], 0.05, SinOsc.kr(0.2).range(0.001,0.003)); snd = snd * env * amp; Out.ar(out, snd); }).add; ); ( // "LFTri bass drum kick" - by luka@lukaprincic.si SynthDef(\tribd, { arg out=0, gate=1, freq=77, amp=0.1; var snd,snd1, aenv, fenv, senv; fenv = Env(levels:[2, 1.2, 0], times: [0.1, 0.4]).kr; freq = [freq,freq*2] * fenv; freq = freq.max(10); snd = LFTri.ar(freq) + SinOsc.ar(freq) * [1,0.3]; snd1 = SinOsc.ar(190, mul:3) * EnvGen.ar(Env.perc(releaseTime:0.1), gate) ; snd = snd.sum * 0.9; snd = LPF.ar(snd, freq * 4); snd = snd + RLPF.ar( BrownNoise.ar(1), Env(levels:[2000,500,90], times:[0.01,0.05]).kr, 0.3 ); snd = snd + ( BPF.ar(WhiteNoise.ar(0.5), 3000) * Env([1,1,0], [0.004,0.005]).kr ); snd = snd + ( BPF.ar(WhiteNoise.ar(0.5), 7000) * Env([1,1,0], [0.003,0.001]).kr ); aenv = Env([1,1,0], [0.2,2], curve: -9).kr; snd = snd1 + snd * aenv; snd = Limiter.ar(snd, 8); senv = Linen.kr(releaseTime: 0.1, gate: gate, doneAction: Done.freeSelf); snd = LeakDC.ar(snd); snd = snd * amp * senv; snd = Pan2.ar(snd, pos:0); snd = snd.clip2; Out.ar(out, snd); }).add; ); //////////////////////////////////////////////////////////////////////////////////////////////////////// ( ~clk3 = TempoClock.new(2.2); //~myClock = TempoClock.new(2.2); //~clk3 = TempoClock.tempo= 2.2 / 1; { // routine starts here 1.wait; Ndef(\gcdmod).proxyspace.clock = ~clk3; Ndef(\gcdmod).proxyspace.quant = 1; Ndef(\gcdmod, { var a = TDuty.ar(Dseq((0..3), inf) + 5 * SampleDur.ir); var b = TDuty.ar(Dseq((3..0), inf) + 5.01 * SampleDur.ir); var mod = 50; var t = PulseCount.ar(a) % mod; var u = PulseCount.ar(b) % mod; var n, j, d, e, c; d = LocalIn.ar(2); n = gcd(t, u + [0, 1]); e = n.linexp(0, mod, 70, 10000); j = SinOsc.ar(e); LocalOut.ar(j * d); c = CombC.ar(j, 1, [0.009,0.007,0.008, 0.006] * LFNoise1.ar([0.01,0.01]).range(1.3,0.7), 30, mul:0.05); j = j * LFNoise1.ar(0.2).range(0,0.5) + Splay.ar(c); j = Greyhole.ar(j, damp:0.5, diff:0.5 size:4); j = Limiter.ar(LPF.ar(HPF.ar(j, 100), LFNoise1.kr(0.1).exprange(200,18000)), 0.5, 0.55); j = j * LFPulse.ar([2.2,4.4]*2, 0.96, width:LFNoise1.ar(0.2).range(0.8,0.95)).range(LFNoise1.ar(0.1).range(0,1),1); j = j + LFPulse.ar([2.2,4.4], 0.96, mul: LFNoise1.kr(1/10).range(0,0.5) * Line.kr(0,1,30)); j = LeakDC.ar(j); // Out.ar(0, j * EnvGate()) }); Ndef(\gcdkick).proxyspace.clock = ~clk3; Ndef(\gcdkick).proxyspace.quant = 1; Pdef(\gcdkick, { Pbind(*[ instrument: \tribd, dur: Pseq([ Rest(32), Pseq( [ Prand( [ Pseq([1.5,1.5]), 3 ] ), 3, Prand([ 4, Pn(1,3), Pn(Pseq([1/2,1,Prand([1/2,1.5])]),1) ]) ] / 2, 32) ],inf), //dur: 1, //dur: Pseq([1.5,1,1.5,1/2,2,1/2,1.5,1/2,1/4,1/2,1/4,3],inf), freq:77 + Prand((1..10)/5, inf), octave:2, amp:0.1 ]) };); Ndef(\gcdkick).mold(2, \audio, \elastic); Ndef(\gcdkick)[0] = Pdef(\gcdkick); Pbindef(\n1, \instrument, \dNoz, \dur, Pseq([20,Rest(10)],inf), \amp, 0.5, \legato, 1, ); //Pdef(\n1).stop; //Pdef(\n1).clear; 1.wait; s.makeBundle(0.25, { Pdef(\n1).play(~clk3, quant:1); Ndef(\gcdmod).play; Ndef(\gcdkick).play; }); }.fork(~clk3) ) /////////////////////////////////////////////////////////////////////////////////////// // rumblw Pdef(\n1).quant = 1; Pdef(\n1).play(~clk3, quant:1); q = Pbind(*[ instrument: \tribd, // dur: Pseq([ // Prand([ // Pseq([1.5,1.5]), // 3]), // 3,4 // ] / 4,inf), dur: 1, dur: Pseq([3,1/2,1/2],inf), freq:77, octave:2, amp:0.2 ]).play(~clk3, quant:1); //Pdef(\kicka2).play(quant:[8,0]); ) {LFPulse.ar(iphase:0.99)}.plot x.release ( Pbindef(\n1, \instrument, \dNoz, \dur, Pseq([20,Rest(10)],inf), \amp, 0.5, \legato, 1, ) ) Pdef(\n1).stop; Pdef(\n1).clear; ( Pbindef(\kicka2, *[ instrument: \tribd, // dur: Pseq([ // Prand([ // Pseq([1.5,1.5]), // 3]), // 3,4 // ] / 4,inf), dur: 4, //dur: Pseq([3,1/3,1/3,1/3],inf), freq:77, octave:2, amp:0.2 ]); ) Pdef(\kicka2).clear // shippo ------------------------------------------------------ ( SynthDef(\shippo, { arg amp=0.1, gate=1, out=0, freq=100; var snd, env, rev; freq = [freq/2, freq * 0.99, freq * 1.51]; snd = Pulse.ar( freq * LFNoise1.ar(1/10).range(1,1.03), mul:0.4 ) ; //* Lag.ar(LFPulse.ar(1/5, iphase:0.98, width:0.1)); snd = Splay.ar(snd,spread:0.6); snd = LPF.ar(snd, LFNoise1.ar(1/4).exprange(500,10000)); env = EnvGen.kr(Env.adsr(0.001,0,1, 0.1, 1), gate, doneAction:0); snd = snd * env; snd = snd; rev = Array.fill (16, { CombL.ar( snd, 0.2, LFNoise1.ar(1/3).range(0.98,1.02) * rrand(0.01, 0.3), 10) }); rev = Splay.ar(rev); rev = LeakDC.ar(rev); rev = HPF.ar(rev, 100); snd = snd + rev; snd = Limiter.ar(snd, 0.8); snd = snd * amp; DetectSilence.ar(snd, doneAction:2); Out.ar(out, snd); }).add; ) ~clksh = TempoClock.new(1); Pdef(\shippoP).play(~clksh); Pdef(\shippoP).stop; ( Pbindef(\shippoP, *[ instrument: \shippo, degree: 4, octave: 3, dur: Pseq([1,2,3], inf), legato:0.2, amp: 0.5 ]); ) Pdef(\shippoP).clear // 4. dec. 2020 ///////////////////////////////////////////////////////////////// //AKJ to pattern femalemalenonbinary ( SynthDef(\akj1, { arg freq=300, amp=0.1, out=0, gate=1; var snd, env; freq = [freq,freq*1.01]; snd = LFPar.ar(freq) * 0.3 + (LFTri.ar(freq*16/19, mul:0.3)) + (Pulse.ar(freq*21/40, mul:0.1)) + (SinOsc.ar(freq/8.01, mul:4).clip2(0.3)); env = Linen.kr(gate, attackTime:1, releaseTime:3, doneAction:2); snd = Splay.ar(snd); snd = snd * env * amp; Out.ar(out, snd); }).add; ) ( SynthDef(\akjbz, { arg freq=300, amp=0.1, out=0, gate=1; var snd, env; //freq = [freq, freq*2.02, freq*1.98, freq]; snd = SinOsc.ar(freq/4, mul:0.7)!2; //snd = snd * [1, 0.1, 0.1, 1]; snd = snd * Lag.ar(LFPulse.ar(freq/8.02, 0.5).range(1,0),0.005); snd = snd.softclip(0.5) * 1.5 ; env = Linen.kr(gate, 0,1,0, 2); //snd = (snd + (snd.wrap2 * 0.54)).softclip; snd = snd * env * amp; Splay.ar(snd); Out.ar(out, snd); //LFPulse.ar(0.275, width:0.25).range(0,1); }).add ) ( SynthDef(\click1, { arg out=0, gate=1, freq=440, amp=0.1, releaseTime=0.1; var snd, env; snd = LFPulse.ar([freq, freq * 2], width: LFNoise1.ar(0.1).exprange(0.001,0.004)); snd = snd + (WhiteNoise.ar(1) * snd); snd = HPF.ar(snd, 200); //snd = Limiter.ar((snd * 5)); env = EnvGen.ar(Env.perc(0,releaseTime)); snd = snd * env * amp * Linen.kr(gate, 0, 1, releaseTime, 2); snd = Splay.ar(snd); Out.ar(out, snd); }).add ) // -- disonant chord + click + bazz ------------------------------- TempoClock.tempo=1 // disonchord Pdef(\akj1p).play; ( Pbindef(\akj1p, *[ instrument: \akj1, freq:300, dur:5, legato: 1, amp: 1 ])) Pdef(\akj1p).stop; // click Pdef(\clickp).play(quant:4); Pdef(\clickp).stop(quant:4); ( Pbindef(\clickp, *[ instrument: \click1, dur: Pseq([Pseq([1,2,3]/8, 2), Pseq([1,2,1,2,1,1]/8,3), Pseq([1]/8, 4), Pseq([1]/16, 2), ],inf), //dur: Pseq([Pn(1/8, 31), Rest(1/8)],inf), amp: Prand([5,7,8,9]/10, inf), releaseTime: 0.3, freq:1 ]) ) // deep bass -- Pdef(\akjbp).play(quant:4) ( Pbindef(\akjbp, *[ instrument: \akjbz, freq: 300, dur: 8, amp: 0.5, legato: 0.20 ]) ) Pdef(\akjbp).stop // ---------------------------------------------------------------------------- // high pitched noise/pulse ------------------------------- ( SynthDef(\x44y, { arg out=0, gate=1, amp=0.9; var snd, env; env = Linen.kr(gate, releaseTime: 0.001, doneAction:2); snd = Pulse.ar([1234,2345,3456,4567,5678,8912,11023] * LFNoise0.ar(freq:Array.fill(7, {rrand(1,10)})).range(0.8,1.2), mul:0.2).sum; snd = snd + WhiteNoise.ar(0.2); snd = HPF.ar(snd, 8000); //snd = snd * LFSaw.kr(0.5,iphase:1).exprange(0.00001,1); snd = snd * amp * env; snd = snd.dup; Out.ar(out, snd); }).add; ) Pdef(\x44yp).play; Pdef(\x44yp).quant = 4; ( Pbindef(\x44yp, * [ instrument: \x44y, dur: 1/8, legato: Prand([ Pn(0.1,16), Pseq([Pn(0.1, 4), 0.5], 4), Pseq([Pn(0.1, 2), 0.5, Pn(0.1, 4), 0.5], 4) ],inf), amp: 1, ] ) ) Pdef(\x44yp).stop Pdef(\x44yp).clear ( Pbindef(\x99, * [ instrument: \tribd, octave:3, degree: Prand([1,2,3]/10,inf), //dur: Pseq([3,2,Prand([2,3]),3,2,2]/8, inf), dur: Pseq([3,2,Prand([4,3]),3,2,4]/4, inf), amp: 0.1 ] ).play ) ///////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////// // kao bassline? ( SynthDef(\bz2, { arg out=0, gate=1, freq=440, amp=0.1, releaseTime=0.1, cutoff=1, frq=1; var env,snd, ffreq; ffreq = freq * cutoff * 10; ffreq = ffreq.clip(50,18000); env = Linen.kr(gate, releaseTime: releaseTime, doneAction: Done.freeSelf); snd = Pulse.ar([freq,freq*1.01]); snd = snd + Saw.ar([freq*0.99, freq], mul:2); snd = RLPF.ar(in: snd, freq: ffreq, rq: frq); snd = Limiter.ar(snd, 0.7); snd = snd * env * amp; snd = Splay.ar(snd); snd = HPF.ar(snd, 50); Out.ar(out, snd); }).add ) // -- bassline pattern Pdef(\bslp).play(quant:4) Pdef(\bslp).stop Pbindef(\bslp, *[ dur: Pseq([1,2,4] / [4,2,2,1]/4, inf),]).play(quant:4) Pbindef(\bslp, *[ dur: Pseq([2,1,1]/4, inf),]).play(quant:8) ( Pbindef(\bslp, *[ instrument: \bz2, legato: Prand((1..5)*0.03, inf), cutoff: Prand([0.6,1,2,3,4,5,7,12]/2,inf), frq: Prand((4..7)/10, inf), degree: Pseq([0,2,3,Prand([8,4,2])] + 0,inf), octave: [3,3.3,4], amp:0.2, releaseTime:0.1 ]).play(quant:4) ) ( // klick? SynthDef(\akjklik, { arg freq=2, amp=0.1, out=0, gate=1; var snd, env; snd = LFPulse.ar([freq, freq * 2], width: LFNoise1.ar(0.1).exprange(0.001,0.004)); env = Linen.kr(gate, 0, 1, 0.01, doneAction:2); snd = snd * env * amp; Out.ar(out, snd); }).add; ) // ----------------------------------- //////////////////////////////////////////////////////////////////////////////////////////////// ( var clck1 = TempoClock.new(120/60); var clck2 = TempoClock.new(70/60); { x = Pbind( \degree, Pseq((0..12)) ).play(clck1); 4.wait; x.stop; postln(Date.getDate.format("time: %H:%M:%S --------------------")); }.fork(clck1); { y = Pbind( \degree, Pseq((0..12)+7) ).play(clck2); 4.wait; y.stop; postln(Date.getDate.format("time: %H:%M:%S --------------------")); }.fork(clck2); postln("end line out of forks"); ) ( /*var date = Date.getDate; date.format("%H%M%S").postln; date.rawSeconds.postln; date.rawSeconds.postln;*/ ~frames=(Date.getDate.rawSeconds).asString.reverse.at((0..3)).postln; postln(Date.getDate.format("%H:%M:%S")); ""; ) .stamp.postln [1,2,3].asCompileString.postln; s.freqscope "this sentence has thirty-nine letters".reverse.at((0..3)); "this sentence has thirty-nine letters".padLeft(39, "-+"); "this sentence more than thirteen letters".padRight(13, "-+"); // nothing to pad. ////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////// //////// EXPERIMENTS! ////////////////////////////////////////////////////////// // 24.nov 2020: // clicky dissonance / akj ------------------------------------ Ndef(\akj).play Ndef(\akj).stop Ndef(\akj).fadeTime=5; ( Ndef(\akj, { var freq=300, snd; freq = [freq,freq*1.01]; snd = LFPar.ar(freq) * 0.3 + (LFTri.ar(freq*16/19, mul:0.3)) + (Pulse.ar(freq*21/40, mul:0.1)) + (SinOsc.ar(freq/8.01, mul:4).clip2(0.3)) + (LFPulse.ar([2.2,4.4]*2, width: LFNoise1.ar(0.1).exprange(0.001,0.004))) ; snd = Splay.ar(snd); //snd = LeakDC.ar(snd); snd = snd + (Greyhole.ar(snd) * 0.1); snd = snd + (SinOsc.ar(freq/4, mul:0.7) * LFPulse.ar(0.275, width:0.25).range(0,1)); //snd = Limiter.ar(snd, 0.5) * 1.5; (snd * 0.6 + (snd.wrap2 * 0.14)).softclip * 1; //(snd * 0.6).softclip; }) ) // ------------------------------------------------------- TempoClock.tempo = 120/120; ( SynthDef(\h991, { arg out=0, freq=90, gate=1, amp; var snd, env; env = Linen.kr(gate, doneAction:2); freq = freq * XLine.ar(1,0.4, 5); snd = SinOsc.ar(freq); snd = BHiPass4.ar(snd, 40); snd = snd + LPF.ar(Pulse.ar([freq, freq*1.01], 0.01, mul:0.4), freq * 32); snd = snd + (LFTri.ar([freq*1.01,freq]) + SinOsc.ar(freq, mul:10).max(-0.5).min(0.5)).clip2(0.5); snd = snd + Pulse.ar(freq, mul:0.2); snd = snd + Impulse.ar(freq, mul:2); snd = BLowPass4.ar(snd, SinOsc.kr(LFNoise0.kr(8).range(1,8)).range(300,LFNoise1.kr(1).range(1000,10000)), rq:0.7); snd= snd * -6.dbamp; snd = snd * env * amp; snd = Splay.ar(snd); Out.ar(out,snd); }).add; ) Pdef(\h991p).play; Pdef(\h991p).quant = 4; ( Pbindef(\h991p, *[ instrument: \h991, dur: 4, octave: 3, legato: 0.89, amp: 1 ]) ) Pdef(\h991p).clear //////////////////////////////////////////////////////////////////////////////// ( // SC808 drum snare SynthDef.new(\sc808sn, { arg amp=2, tone=340, tone2=189, snappy=0.7, gate=1, amp2=1, out=0; var noiseEnv, atkEnv, sig, noise, osc1, osc2, sum; noiseEnv = EnvGen.kr(Env.perc(0.001, 4.2, 1, -115), doneAction:0); atkEnv = EnvGen.kr(Env.perc(0.001, 0.8,curve:-95), doneAction:2); noise = WhiteNoise.ar; noise = HPF.ar(noise, 1800); noise = LPF.ar(noise, 8850); noise = noise * noiseEnv * snappy; osc1 = SinOsc.ar(tone2, pi/2) * 0.6; osc2 = SinOsc.ar(tone, pi/2) * 0.7; sum = (osc1+osc2) * atkEnv * amp2; sig = Pan2.ar(((noise*1) + sum) * amp * 2.5, 0); sig = HPF.ar(sig, 340); Out.ar(out, sig); }).add ) ~delay1 = Bus.audio(s, 2); ( SynthDef(\dlywrangler, { arg out=0, in; var snd; snd = In.ar(in,2); snd = CombL.ar(snd, 1, Lag.ar(LFNoise0.ar(1).range(0.01,0.1),0.01), 3, mul:0.4) + snd; Out.ar(out, snd); }).add; ) ~dlywrang1 = Synth(\dlywrangler, [\out, 0, \in, ~delay1]); ~dlywrang1.free ( Pbindef(\hhp1, * [ instrument: \sc808hh, //dur: Pseq([Rest(1/32), 3/32], inf), dur: 1/16, //amp: Prand([1,2,3]/3, inf), amp: Pseq([1, 0.2],inf), out: Pwrand([~delay1,0],[0.7,0.3],inf), pan: Pfunc({rrand(-0.6,0.6)}) ] ).play ) ( Pbindef(\snp1, *[ instrument: \sc808sn, dur: Pseq([Rest(1),Pxrand([1,1.5,0.5,Pn(0.5,4),Pn(0.25,2),Pn(0.25,2),Pn(0.25,2)])]/2,inf), amp: Prand([1,2,3]*0.05+0.8,inf), tone: 340, tone2: 189, //Pxrand([2,3,4,5,6,7] * 100, inf), snappy: 0.3, //out: Prand([0,~delay1],inf) out: 0 ] ).play ) ( Pbindef(\sawp1, *[ instrument: \softSaw, dur: 10, attackTime: 5, releaseTime:5, legato:1, degree: Pseq([ [-2,3,11,20], [-2,5,7,21] ],inf), octave: 3, amp: [1,0.5,0.2,0.1] * 0, out: ~delay2 ] ).play ) ~delay2 = Bus.audio(s,2); ( SynthDef(\wiDel, { var snd = In.ar(\in.kr, 2); snd = CombL.ar(snd, 1, SinOsc.ar(0.02,[0,pi/2]).range(0.5,0.6), 10, mul:1) + snd; Out.ar(\out.kr(0), snd); }).add; ) ~widel1.free ~widel1 = Synth(\wiDel, [\in, ~delay2, \out, 0]); //////////////////////// s.meter // BASSLINE + MELODIC LINES with buffer cycler Pdef(\x32).play Pdef(\x32).fadeTime = 0; ( Pdef(\x32, Pbind( \instrument, \bufCyc, \bufnum, [~getSmp.value("0043"),~getSmp.value("0043")], \octave, [3,2,4], \degree, Pseq([2,2,4,1], inf), \detune, [0.1,0], \chanDetune, 20, \dur, Pseq([0.20,0.40,0.60],inf), \legato, 1, \amp, [0.3,0.5,0.1] * 0.5, \releaseTime, 0.01 )).play.quant_(8); ) Pdef(\x33).play Pdef(\x33).fadeTime = 0; ( Pdef(\x33, Pbind( \instrument, \bufCyc, \bufnum, [~getSmp.value("blended_0001"),~getSmp.value("0023")], //\bufnum, ~getSmp.value("raw"), \degree, Pseq([[4,9],2,8,4,1], inf), \octave, Prand([[6,5,7],[4,5,7],[7,5,4]]-0 ,inf), \mtranspose, Pseq([Pn([1],10),Pn([0],10)],inf), \detune, [0,0.3], \chanDetune, Pseq([-10,0,5,10,-5],inf), \dur, Pseq([1,2,3] * 0.2,inf), \legato, 0.1, \amp, [0.3,0.5,0.1] * 0.1, \releaseTime, Prand([1,2,3,4],inf) )); )