//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