«Blowing ambient with lots of reverb» by rukano
on 09 May'12 01:50 inGoing to sleep, need some relaxing after 10 hours epic sax guy.
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
fork{ // notes sequence var seq = Pxrand([0,3,5,7,8],inf).asStream; loop{ var dur = 8; var num = 8; var root = 36; var freq = (seq.next+root).midicps; var spread = rrand(0.4,0.8); var attack = rrand(0.05, 0.3); // play the cluster play{ var harm = Array.geom(num, 1, 1.5); var harma = Array.geom(num, 0.5, 0.8); var detune = Array.fill(num, { LFNoise2.kr(1,0.01,1) }); var source = PinkNoise.ar; var bandwidth = Rand(0.001,0.01); var generator = [ SinOsc.ar(freq*harm*detune, mul:harma*0.3).scramble, Resonz.ar(source, freq*harm*detune, bandwidth, mul:harma).scramble * 50 ].wchoose([0.2,0.8]); var snd = Splay.ar(generator,spread); snd * LFGauss.ar(dur, attack, loop:0, doneAction:2); }; dur.wait; }; }; // global triple super gverb { var in = In.ar(0,2); in = (in*0.2) + GVerb.ar(in, 220, 12, mul:0.6); in = (in*0.2) + GVerb.ar(in, 220, 12, mul:0.6); in = (in*0.2) + GVerb.ar(in, 220, 12, mul:0.6); ReplaceOut.ar(0, Limiter.ar(LeakDC.ar(in))) }.play(addAction:\addToTail)
Very nice! And an awesome learning exercise for beginners like myself.
thanks !
Looks great!
A couple notes - I think GVerb expects a mono input, and the triple reverb can be condensed with a loop. Try: 3.do { in = (in*0.2) + GVerb.ar(Mix.ar(in), 220, 12, mul: 0.3); }; instead
I cut the
mul
in half because of mixing the GVerb channels.There's probably an effective way to make a SynthDef here, though the
.scramble
operator won't behave the same way.I like the sound!