«IDMish» by xffff
on 17 Jul'12 22:28 inthanks to whoever it was who wrote the kick and snare, I stole them from the dubstep whatsit from the list ages ago. Bit of time wasting turned relatively interesting.
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
// bit of an afternoon playing random noises turned out to sound relatively IDM-ish // I stole the kick & snare from the dubstep thing off the list a while ago... thanks ( fork{ loop{ | i | var time, trigtime; time = [1/8,1/4,1].wchoose([2,1,0.2].normalizeSum); trigtime = [1,2,4,8,16].choose; play{ var sound, freq, ampenv, filterenv, mod, snare, snaretrig, kick, kickenv, lin; mod = LFNoise2.kr({0.01.rand}.dup(2), [0.01.rand,0.001.rand,0.5.rand].choose, 1.0); freq = [ Scale.minorPentatonic.degrees, Scale.minorPentatonic.degrees.choose ].choose + (12 * (2..6).choose); freq = freq.midicps; filterenv = EnvGen.kr(Env.linen(time/3.0.rand.max(0.01), time/3.0.rand.max(0.01), time/3.0.rand.max(0.01)).range(freq*1.5,freq*10.0.rand.max(1.5)) ); ampenv = EnvGen.kr(Env.perc(0.01,time/2.0.rand.max(1/8),1.0.rand),doneAction:2); sound = Select.ar(5.rand, [ Pulse.ar(freq*mod,0.5).tanh, LFTri.ar(freq*mod,0).tanh, Pulse.ar(freq*mod,0.5).tanh, LFSaw.ar(freq*mod,0.5).tanh, SinOscFB.ar(freq*mod,100.0.rand).tanh ]); sound = RLPF.ar(sound, filterenv, LFNoise2.kr(0.01.rand, 0.3, 0.5) ); sound = sound * ampenv; sound = sound + (DelayC.ar(sound, 1/4, {[1/4,1/8].choose}.dup(2)) * [1.0.rand,0]); 5.do{sound = (sound.clip + sound)*0.75}; sound = LPF.ar(sound, LFNoise2.kr(trigtime, 250, 500) ); snaretrig = Impulse.kr(trigtime); snare = 3*PinkNoise.ar(1!2) * EnvGen.kr(Env.perc(0.01,0.01,[0,0.3.rand].choose),snaretrig); 5.do{snare = AllpassC.ar(snare, 0.5, {0.05.rand}.dup(2), 1.0.rand)+snare}; 5.do{snare = (snare.distort + snare)*0.85}; kickenv = EnvGen.kr(Env.perc(0.01,time,[0,1.0.rand].choose)); kick = SinOsc.ar(40!2+(kickenv**3*200),0,7*kickenv) * kickenv; 5.do{kick = (kick.distort + kick)*0.75}; sound = Limiter.ar(sound + snare + kick, 1.0, 0.00001); Out.ar(0,sound.tanh); }; time.wait; }; } )
descendants
full graph
«uuxofaato» by anonymous (private)
«unijejiu» by anonymous (private)
«owopakid» by anonymous (private)
«xareywi» by anonymous (private)
«ocosiejaf» by anonymous (private)
«oasimizui» by anonymous (private)
«ufaredmabnore» by anonymous (private)
«iehxejekehone» by anonymous (private)
«akeqawumuv» by anonymous (private)
«eyuhikam» by anonymous (private)
«eruitagi» by anonymous (private)
reception
really, really like it ;)
what cpu/mem do you use? )
I7-620M/8GB, my server memSize is set quite high (~1Gb) because I get carried away and do a lot of sampling. Should probably put a line at the top with that in but I forgot (it's in my startup file). :)
yeah jazzy!
=D !!!
love it!
Very interesting code. However, the server saturate rapidely. I suggest instead of using a fork with speed loop to store this in a SynthDef and using Demand Ugens instead. Indeed, it avoid to send several OSC messages to the server in a short time interval. I will try to do this and to send it.
Moreover, I am not sure that my suggestion is possible but I will try and I will see.