«Infinite rhythmic marimba clusters» by eli.fieldsteel
on 04 Mar'13 19:24 inInfinite reverberant rhythmic clusters with a marimba-like timbre.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
( s = Server.local.waitForBoot({ ~bus = Bus.audio(s,2); SynthDef(\reverb_ef, { arg amp=1, lPos=0, mix=0.085, revTime=1.8, preDel=0.1, in, out; var sig, verbSig, totalSig, outSig; //no wacky values please mix = mix.clip(0,1); sig = In.ar(in, 2); //pre-delay verbSig = DelayN.ar(sig, preDel, preDel); totalSig = 0; 12.do{ verbSig = AllpassN.ar(verbSig, 0.06, {Rand(0.001,0.06)}!2, revTime); verbSig = LPF.ar(verbSig, 4500); totalSig = totalSig + verbSig; }; //dry/wet mix totalSig = XFade2.ar(sig, totalSig, mix.linlin(0,1,-1,1)); outSig = totalSig * amp; Out.ar(out, outSig); }).add; SynthDef(\filtSaw, { 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; ~cluster = { var trnsp, bund; bund = s.makeBundle(false, {}); trnsp = rrand(-7,7); Array.fill(exprand(4,14).round.postln, {[1,2,3,4,6,8,12,16].wchoose([7,6,5,4,3,3,1].normalizeSum)}).do{ |i| var cfLo; cfLo = (([23,35,47,50,52,59,61,63,64,76,78].choose) + trnsp).midicps * ((1..8).choose); bund = s.makeBundle(false, { Synth( \filtSaw, [ \freq, i, \detune, 0, \minBpfHz, 0.01, \maxBpfHz,i.expexp(1.0,16.0,0.1,16.0), \minRq, 0.003, \maxRq, exprand(0.008,0.08), \minCf, cfLo, \maxCf, cfLo * [1,1.1,1.5].wchoose([0.87,0.1,0.03]), \amp, exprand(0.15,0.25), \atk, exprand(0.7,8), \rel, 5, \sus, rrand(6,10.0), \spread, exprand(1.5,8.0), \out, ~bus, ], ) }, bund ) }; //schedule on an integer time value SystemClock.schedAbs( (thisThread.seconds+1.0).round(1.0), { bund = s.makeBundle(nil, {}, bund); nil; } ); }; }); ) //start clusters ( t = Task { //instantiate reverb synth Synth(\reverb_ef, [\in, ~bus, \out, 0]); { ~cluster.value; rrand(5.5,12.0).wait; }.loop; }.start; ) //stop clusters t.stop;
descendants
full graph
«Re: Infinite rhythmic marimba clusters» by Don Smith (private)
reception
Amazingly organic. I love this.
respect
This sounds awesome. Nice one.
I could listen to this for hours. Very nice.
Bravo, very cool. I made some modifications with individual synths being panned randomly, it creates a lovely 'bubbling' effect with headphones on.
tommaisey: post the code =)
This is great. Makes me never want to hit control + period. :-)
don't do cntrl+period, do t.stop, it's much nicer : ) thanks for posting this, Eli!
this has been playing in my office for a while, thanks Eli
This doesn't run in SuperCollider on my machine. I get this error:
ERROR: syntax error, unexpected '(', expecting $end in interpreted text line 99 char 1:
( ^
t = Task {
ERROR: Command line parse failed -> nil
great "crazy"marimbas! :-)
Beautiful!!
How nice!
RESPECT !!! I follow his Tutorial. He is the MASTER !!!!
mesmerizing!
very very nice!!! not understand how you setup tempo and how to link with ableton?