//SLUGens released under the GNU GPL as extensions for SuperCollider 3, by Nick Collins, http://composerprogrammer.com/index.html

Breakcore breakcore simulator

Breakcore.ar(bufnum, capturein, capturetrigger, duration, ampdropout)

This is noisy.

( This UGen (C and SuperCollider code) was written on Feb 7 2005 in one hour in front of a live audience as part of the TOPLAP live coding jam at transmediale, Maria am Ostbahnhof, Berlin.

I haven't tried to clear it up after the event, only adding this notice; make what you can of it! )

//duration in samples

(60/183)*0.25*44100

b = Buffer.alloc(s,44100);

(

~breakfilenames= Array.fill(9,{arg i; var str;

str=("sounds/SCsamp/breaks/hiphop/hop"++(i+1).asString);

if((i==3) || (i==5),{str=str++".aif"});

str

});

~breakbeatlengths= [4,4,8,4,8,4,4,8,8];

~breaks= Array.fill(~breakbeatlengths.size,{arg i; Buffer.read(s,~breakfilenames[i])});

)

(

SynthDef("help-Breakcore",{ arg out=0, bufnum=0, target=0;

var playbuf;

playbuf=PlayBuf.ar(1,target, loop:1);

Out.ar(out,

Breakcore.ar(bufnum, playbuf, Impulse.kr(4),5512,0)*Line.kr(1,0,10,doneAction:2)

)

}).play(s,[\bufnum,b.bufnum,\target,~breaks[0].bufnum]);

)

(

SynthDef("help-Breakcore",{ arg out=0, bufnum;

Out.ar(out,

Breakcore.ar(bufnum, In.ar(8)*0.3, Impulse.kr(4),5512,0)*Line.kr(1,0,10,doneAction:2)

)

}).play(s,[\bufnum,b.bufnum]);

)

(

SynthDef("help-Breakcore",{ arg out=0, bufnum=0, target=0;

var playbuf;

playbuf=PlayBuf.ar(1,target,MouseX.kr(1,2), loop:1);

//AudioIn.ar(1,0.1)

Out.ar(out,

Breakcore.ar(bufnum,playbuf , Impulse.kr(LFNoise0.kr(4,10,12)),LFNoise0.kr(8,1900,2000),0) )

}).play(s,[\bufnum,b.bufnum, \target, ~breaks[2].bufnum]);

)

(60/180)*44100*0.25

3614/4