// title: Re: Infinite rhythmic marimba clusters // author: grirgz // description: // fairies and ghosts // code: ( ~name = \ghosts; SynthDef(~name, { arg freq=440, detune=3.0, atk=6, sus=4, rel=6, curve1=1, curve2=(-1), minCf=30, maxCf=6000, minRq=0.005, maxRq=0.04, minBpfHz=0.02, maxBpfHz=0.25, lowShelf=220, rs=0.85, db=6, gate=1, amp=1, spread=1.0, out=0; var sig, env; env = EnvGen.kr(Env([0,1,1,0],[atk,sus,rel],[curve1,0,curve2]), gate, levelScale:amp, doneAction:2); sig = Saw.ar( freq + LFNoise1.kr({LFNoise1.kr(0.5).range(0.15,0.4)}!8).range(detune.neg,detune)); sig = BPF.ar( sig, LFNoise1.kr({LFNoise1.kr(0.13).exprange(minBpfHz,maxBpfHz)}!8).exprange(minCf, maxCf), LFNoise1.kr({LFNoise1.kr(0.08).exprange(0.08,0.35)}!8).range(minRq, maxRq) ); sig = BLowShelf.ar(sig, lowShelf, rs, db); sig = SplayAz.ar(4, sig, spread); sig = sig * env * 2; Out.ar(out, sig); }).add; ); ( Pdef(~name, Pbind( \instrument, ~name, \freq, Pseq([8,4,2,4],inf) * Pwhite(0.9,1.3), \detune, 7, \minBpfHz, 0.01, \maxBpfHz, Pwhite(0.1,76), \minRq, 0.003, \maxRq, exprand(0.008,0.8), \minCf, Pseq([70,20,30,80,50,60,98],inf).midicps * Pwhite(0.9,1.3), \maxCf, Pkey(\minCf) * Pwhite(1.3,4), \amp, exprand(0.20,0.25) *2, \atk, exprand(0.7,8), \rel, 1.5, \sus, rrand(2.6,3.0), \spread, exprand(1.5,8.0), \dur, Pseq([2,1],inf)*Pwhite(0.9,1.3), )).play ); ) ( Pdef(~name, Pbind( \instrument, ~name, \freq, Pseq([8,4,2,4,1],inf) * Pwhite(0.9,1.3), \detune, 7, \minBpfHz, 0.01, \maxBpfHz, 1.expexp(1.0,16.0,0.1,76.0), \minRq, 0.003, \maxRq, Pexprand(0.008,0.128).stutter(3), \minCf, Pseq([70,20,30,80,50,60,98],inf).midicps * Pwhite(0.9,1.3), //\maxCf, Pkey(\minCf) * Pwhite(1.3,4), \maxCf, 51.midicps * [1,1.1,1.5].wchoose([0.87,0.1,0.03]), \amp, exprand(0.20,0.25) *2, \atk, exprand(0.7,8), \rel, 1.5, \sus, rrand(0.6,1.0), \spread, exprand(1.5,8.0), \dur, Pseq([2,1]/2,inf)*Pwhite(0.8,1.3), )).play ); ( Pdef(~name, Pbind( \instrument, ~name, \freq, Pseq([8,4,2,4,1],inf) * Pwhite(0.2,3.3).stutter(2), \detune, 0, \minBpfHz, 0.1, \maxBpfHz, Pseq([1,2,3,2],inf).expexp(1.0,16.0,0.1,076.0), \minRq, 0.003, \maxRq, Pseq([ Pexprand(0.008,0.028,4).stutter(2), Pexprand(0.008,0.228,1).stutter(1), ],inf), //\minCf, Pseq([65,75,50,55,58,60,78],inf).midicps * Pwhite(0.9,3.3), \minCf, Pseq([90,94,80,150],inf) * Pexprand(1.0,4.3).stutter(3), \maxCf, Pkey(\minCf) * Pwhite(1.3,1.5), \amp, Pexprand(0.20,0.21) *2, \atk, Pexprand(0.007,8), \rel, Pwhite(0.5,3.5), \sus, Pwhite(0.2,4.0), \spread, Pexprand(1.5,8.0), \dur, Pseq([2,1],inf)*Pwhite(0.8,2.3), )).play ); ( Pdef(~name, Pbind( \instrument, ~name, \freq, Pseq([1,2,4,2,1],inf) * Pwhite(1,4)/4, \detune, 0, \minBpfHz, 0.1, \maxBpfHz, Pseq([7,2,13,2],inf).expexp(1.0,16.0,0.1,076.0), \minRq, 0.003, \maxRq, Pseq([ Pexprand(0.008,0.028,4).stutter(2), Pexprand(0.008,0.228,1).stutter(1), ],inf), //\minCf, Pseq([65,75,50,55,58,60,78],inf).midicps * Pwhite(0.9,3.3), \minCf, Pseq([90,94,80,150],inf) * Pexprand(1.0,4.3).stutter(3), \minCf, Pseq([490,94,80,150],inf) * Pexprand(1.0,1.3), \maxCf, Pkey(\minCf) * Pwhite(1.3,1.5), \amp, Pexprand(0.20,0.21) *2, \atk, Pexprand(0.007,8), \rel, Pwhite(0.5,3.5), \sus, Pwhite(0.2,4.0), \spread, Pexprand(1.5,8.0), \dur, Pseq([2,1],inf)*Pwhite(0.8,2.3), \dur, Pseq([1],inf), )).play ); Pdef(~name).stop;