Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. //written by @joseCao5
  2. //www.mixfuckedup.net
  3. //jan_2013
  4. //some rythms with a Gui
  5. //audioSample(this code does many more!):  http://soundcloud.com/josecaos/crudoritmia
  6. s.boot;
  7. s.quit;
  8. s.scope;
  9. //TempoClock.default.tempo=60/60;//60,68,86,72,115,160
  10. (// *
  11. (
  12. SynthDef(\master,{|amp=1|
  13.     var in,fx,env,prate;
  14.         prate=Duty.kr(Drand([1,2,0.5],inf),0,Drand([1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2,2.5,2.75,3],inf));
  15.         in=In.ar(20);
  16.         fx=PitchShift.ar(in,0.15,prate);
  17.         fx=Compander.ar(fx,fx,0.5,0.7,0.7);
  18.         fx=Limiter.ar(fx,amp);
  19.         env=EnvGen.ar(Env.adsr(0.01,0.01,0.97,0.01),1);
  20.         Out.ar(0,Pan2.ar(fx*env,[1, -1]));
  21.     }).add;
  22. );
  23. (
  24. SynthDef(\bombo,{|gate=0,bw=0.1,amp=0.75,din2=1,out=#[0,20,20]|
  25.     var sin,env,r,r2,r3;
  26.         r=Duty.kr(Drand([0.25,0.5,2],inf),0,Dxrand([100,250,560,800]*2,inf));
  27.         r2=Duty.kr(Dxrand([0.5,1,2,],inf),0,Drand([2,4,8,16],inf));
  28.         r3=TChoose.kr(Impulse.kr(r2/2),[0.01,0.25,0.5,1]);
  29.         sin=Limiter.ar(PitchShift.ar(RHPF.ar(LFTri.ar(Pulse.ar(r2,r2/32,60,62),bw,0.8),Line.kr(r,r**r3,r3),0.2),0.1,1),amp)+
  30.                         Limiter.ar(SinOsc.ar(Mix(60,120,480),0,0.5)+LFTri.ar(Pulse.ar(r2,r2/16,60,62),0,0.75),din2);
  31.         sin=Compander.ar(sin,sin,0.7,0.4,0.4);
  32.         env=EnvGen.ar(Env.perc(0.01,r3*2),gate,doneAction:2);
  33.     Out.ar(out,Pan2.ar(sin*env,[-1,1]));
  34. }).add;
  35. );
  36. (
  37. SynthDef(\tarolax,{|gate=0,bw=0.1,din=0.5,out=#[0,20]|
  38.     var sin,env,r,r2,r3;
  39.         r=Duty.kr(Drand([0.25,0.5,2],inf),0,Dxrand([250,370,560,840,1840],inf));
  40.         r2=Duty.kr(Dxrand([0.5,1,2,],inf),0,Drand([2,4,8,16],inf));
  41.         r3=TChoose.kr(Impulse.kr(r2/2),[0.01,0.05,0.1,0.25,0.5,1]);
  42.         sin=Limiter.ar(RHPF.ar(PinkNoise.ar(Pulse.ar(r2/2,r2/32,1,1)),XLine.kr(r,r*r3,r3),0.5)
  43.                             +LFTri.ar(Mix(330,480,880),0,0.1),din);
  44.         sin=Compander.ar(sin,sin,0.9,0.5,0.8);
  45.         env=EnvGen.ar(Env.perc(0.01,0.15),gate,doneAction:2);
  46.     Out.ar(out,Pan2.ar(sin*env,[1,-0.97]));
  47. }).add;
  48. );
  49. (
  50. Tdef(\bomba,{
  51.     var t1=Pwrand([0.75,0.75,0.5],[0.5,0.4,0.09],inf).asStream;
  52.     var t2=Prand([0.125,0.25],inf).asStream;
  53.     var t3=Pseq([0.25,0.5,0.5,0.5,0.25,0.125,0.125,0.5,0.125,0.25,0.125],inf).asStream;
  54.     var t4=Prand([0.5,0.75,1],inf).asStream;
  55.     var t5=Pwrand([0.125,0.25,0.5,0.75,1,1.5],[0.06,0.28,0.32,0.1,0.12,],inf).asStream;
  56.     var t=t3;
  57.     ~mast=Synth(\master);
  58.     inf.do({
  59.         ~k=Synth(\bombo);
  60.         ~k.set(\gate,1);
  61.         ~popup.action={|index|
  62.             index.value.postln;
  63.                 switch(index.value,
  64.                     0,{t=t1},
  65.                     1,{t=t2},
  66.                     2,{t=t3},
  67.                     3,{t=t4},
  68.                     4,{t=t5}
  69.                     );     
  70.                 };
  71.     t.resume.wait;
  72. })
  73. });
  74. );
  75. (
  76. Tdef(\tarolo,{
  77.     var acc=Pseq([0.001,0.25],inf).asStream;
  78.     var timerand=[0.125,0.25,0.5,0.75,1,1.5];
  79.     var time=0.5;
  80.     inf.do({
  81.         var tarola=Synth(\tarolax);
  82.         var insane=0.75;
  83.         tarola.set(\gate,1);
  84.         tarola.set(\din,acc.next);
  85.         ~popup1.action={|index|
  86.             index.value.postln;
  87.                 switch(index.value,
  88.                     0,{time=insane},
  89.                     1,{time=0.25},
  90.                     2,{time=0.5},
  91.                     3,{time=1},
  92.                     4,{time=timerand.choose}
  93.                     );     
  94.                 };
  95.         time.wait;
  96. })
  97. });
  98. );
  99. );
  100. (//Gui
  101. var canvas,fader,num;
  102. canvas=Window("2013",Rect(910,380,150,211)).front;
  103. canvas.view.background=Color(0,0,0,0.9);//.rand.postcln;
  104. //numBox+slider (not Qt)
  105. num=NumberBox(canvas,Rect(100,0,50,20)).background_(Color(0.5,0.5,0.5));
  106. fader=Slider(canvas,Rect(100,20,50,191)).background_(Color(0.76,0.37,0.34,1));
  107. fader.action={~mast.set(\amp,fader.value.postln);num.value_(fader.value)};
  108. //play
  109. StaticText(canvas,Rect(0,140,100,25)).string_("PLAY/STOP:").align_(\center).background_(Color(0.76,0.37,0.34,0.75));
  110. ~bot=Button(canvas,Rect(0,160,100,50));
  111. ~bot.states=[["play =>",Color.white,Color.green],
  112.         ["stop []",Color.black,Color.red]];
  113. ~bot.action={|val|if(val.value==0,{Tdef(\bomba).stop;Tdef(\tarolo).stop;"->stoped<-".postcln},
  114.         {Tdef(\bomba).play;Tdef(\tarolo).play;"->running<-".postcln})};
  115. //popUp
  116. StaticText(canvas,Rect(0,70,100,20)).string_("KICK_STEPS:").align_(\center).background_(Color(0.76,0.37,0.34,0.75));
  117. ~popup=PopUpMenu(canvas,Rect(0,90,100,50)).background_(Color(0.76,0.37,0.34,1));
  118. ~popup.items=["k->insane","k->fast","k->nice","k->slow","k->rand.val"];
  119. //
  120. StaticText(canvas,Rect(0,0,100,20)).string_("SNARE_STEPS:").align_(\center).background_(Color(0.76,0.37,0.34,0.75));
  121. ~popup1=PopUpMenu(canvas,Rect(0,20,100,50)).background_(Color(0.76,0.37,0.34,1));
  122. ~popup1.items=["t->insane","t->fast","t->nice","t->slow","t->rand.val"];
  123. )
  124. //
  125. Help.gui;
  126. //
  127. s.record;
  128. s.stopRecording;