// /////////////////////////////////////////////////////////////////////////////////////////////// // 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) ) ///////////////////////////////////////////////////////////////////////////////////////