Advertisement
Guest User

the experiment

a guest
Feb 25th, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (
  2. o=Server.local.options;
  3. o.numOutputBusChannels=2;
  4. o.numInputBusChannels=0;
  5. o.device="ASIO4ALL";
  6.  
  7. o = ServerOptions.new;
  8. o.memSize= o.memSize*2;
  9.  
  10. o.device= "ASIO4ALL";
  11. t= Server(\Local12, NetAddr("127.0.0.1", 57111), options: o);
  12. t.makeWindow;
  13. )
  14.  
  15.  
  16.  
  17.  
  18. s.plotTree;
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27. (   //start this first and then the •~drone
  28. j= TempoClock(4);
  29. l= Environment.new;
  30. g= Environment.new;
  31. r= Environment.new;
  32. g[\g1]= Group.new;
  33. )
  34.  
  35.  
  36. p= ProxySpace.push(s);
  37.  
  38. (
  39. ~drone= { arg  amp= 0.1, index=100, output=0, index2=200, control=1, cv2=1, cv1=1
  40.     ,freq=200, ratio1=2, ratio2=3, ratio3= 3, pn= (-1), atk=0.5, dec= 1.44, t1, index3=500
  41.     ,input1, input2, input3, pn2, fade;
  42.  
  43.  
  44.     var sig1, feedback, env1, osc1, osc2, osc3, lfo, audioIn3, audioIn1, audioIn2
  45.     , sig2, fmSend, node1;
  46.  
  47.     env1= EnvGen.kr(Env.asr(atk, 1, dec), gate: t1);
  48.  
  49.     lfo= SinOsc.kr(XFade2.kr((LFNoise1.kr(LFNoise1.kr(3, 3), LFNoise0.kr(0.5, 1.5))), 0.1, pn.lag(0.2)), 0, 3);
  50.  
  51.     fade= XFade2.kr(lfo, 1, pn2);
  52.     //lfo= XFade2.kr(lfo, 1, pn.lag(0.2));
  53.     feedback= LocalIn.ar(1)*(index*cv2.lag(0.2));
  54.     audioIn3= In.ar(input3, 1);
  55.     audioIn2= In.ar(input2, 1);
  56.     audioIn1= In.ar(input1, 1);
  57.  
  58.     //trig= Trig.kr(audioIn, 0.1);
  59.  
  60.     //fmLoop=
  61.  
  62.     osc2= SinOsc.ar((freq*ratio2)*cv1.lag(0.5), 0, 0.98);
  63.     osc3= SinOsc.ar((freq*ratio3)* cv1.lag(0.5)+ feedback, 0, 0.98);
  64.     node1= (osc2 + osc3);
  65.     fmSend= node1* index3;
  66.     osc1= SinOsc.ar(((((freq*fade)*ratio1)*cv1.lag(0.5) + feedback )+ fmSend), 0, 0.98);
  67.  
  68.  
  69.  
  70.  
  71.     sig1= XFade2.ar(node1*Amplitude.kr(audioIn2, 0.05, 0.01, 0.3), node1*0.01, pn2);
  72.  
  73.     sig2= (sig1 + (osc1 * amp))*env1;
  74.     sig2= (sig1 + sig2)*0.7;
  75.     sig2= HPF.ar(HPF.ar(sig2, 3000), 1000);
  76.     LocalOut.ar(osc1);
  77.     Out.ar(output, sig2);
  78. }
  79.  
  80.  
  81.  
  82. )
  83.  
  84.  
  85.  
  86.  
  87. //The Tree must have this form:
  88. /*g1(percusionGroup)
  89.   drone
  90.   reverb
  91. */
  92.  
  93. s.plotTree;
  94.  
  95. //second_step________________________________-
  96. (
  97. g[\bus1]= Bus.audio;
  98. g[\bus2]= Bus.audio;
  99. g[\bus3]= Bus.audio;
  100. g[\bus4]= Bus.audio;
  101. g[\bus5]= Bus.audio;
  102.  
  103. g[\mix]= Group.after(~drone);
  104. g[\outlet]= Group.after(g[\mix]);
  105.  
  106. //record_things
  107. SynthDef(\rOut1, {|bufi, busA|DiskOut.ar(bufi, In.ar(busA,1));}).add;
  108. r[\buf1]= Buffer.alloc(s, 8388608, 1);
  109. r[\buf1].write("C:/Users/dani/Documents/supercollider_recordings/2fad.wav","wav","int24",0,0, true);
  110. SynthDef.new(\pito, {|master, freq|var sig;sig= SinOsc.ar(freq, 0, 0.3)*EnvGen.kr(Env([0, 1, 0], [0.00, 0.0004], [2, -2]), doneAction: 2);Out.ar(0, sig !2);}).add;
  111.  
  112.  
  113. )
  114. //___________________________________________
  115.  
  116.  
  117. ////Register............................................
  118. (
  119.  
  120.  
  121. SynthDef(\reverb, {
  122.     arg input1, input2, input3, input4, mezcla=0.5, sala=0.2, output=0, output2=0;
  123.     var audioIn, reverb, sig1, sig2, sig3, sig4;
  124.     sig1= In.ar(input1, 1);
  125.     sig2= In.ar(input2, 1);
  126.     sig3= In.ar(input3, 1);
  127.     sig4= In.ar(input4, 1);
  128.     audioIn= sig1 + sig2 + sig3 + sig4;
  129.     reverb= FreeVerb2.ar(audioIn, audioIn, mezcla, sala);
  130.     Out.ar(output, reverb);
  131.     Out.ar(output2, reverb);
  132. }).add;
  133.  
  134.  
  135. SynthDef(\token1, { arg  amp= 0.1, index=4400, freq=1400, controlG=0, output=0, pn= -1, t_t1;
  136.           var sig1, input, feedback, env1, osc1, cf;
  137.  
  138.     env1= EnvGen.kr(Env([0, 1, 0], [0.00004, 0.00305], [2, -2]), gate: t_t1);
  139.     feedback= LocalIn.ar(1)*index;
  140.  
  141.     osc1= SinOsc.ar((freq * controlG.lag(0.5)) + feedback, 0, 0.98);
  142.     sig1= osc1 * env1 * amp;
  143.     LocalOut.ar(osc1);
  144.     Out.ar(output, sig1);
  145. }).add;
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152. SynthDef(\token2, { arg  amp= 0.3, index=4500, freq=1400, output=0, controlG, pn= -1, t_t1;
  153.           var sig1, input, feedback, env1, osc1;
  154.     env1= EnvGen.kr(Env([0, 1, 0], [0.00, 0.0029], [2, -2]), gate: t_t1);
  155.     feedback= LocalIn.ar(1)*index;
  156.     osc1= SinOsc.ar((freq * controlG.lag(0.5)) + feedback, 0, 0.98);
  157.     sig1= osc1 * env1 * amp;
  158.     LocalOut.ar(osc1);
  159.     Out.ar(output, sig1);
  160. }).add;
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167. SynthDef(\token3, { arg output, amp= 0.2, index=1200
  168.                      , freq=1200, controlG, pn= -1, t_t1;
  169.           var sig1, input, feedback, env1, osc1;
  170.     env1= EnvGen.kr(Env([0, 1, 0], [0.00, 0.02], [-4, -2]), gate: t_t1);
  171.     feedback= LocalIn.ar(1)*index;
  172.     osc1= SinOsc.ar((freq * controlG.lag(0.5)) + feedback, 0, 0.98);
  173.     sig1= osc1 * env1 * amp;
  174.     LocalOut.ar(osc1);
  175.     Out.ar(output, sig1);
  176. }).add;
  177.  
  178.  
  179. //freq 6000
  180. SynthDef(\snare0, { arg  amp= 0.06, index=600, index2=1200, amp2=0.2, freq=3000, outputS
  181.               , cv1=1, dec= 0.05, freq2= 1000, cv2=1, del= 0.016, amp3=0.9, dec2, t_t1;
  182.           var sig1, input, feedback, env1, osc1, osc2, noise, env2;
  183.     env1= EnvGen.kr(Env([0, 1, 0], [0.000, dec], [2, -2]), gate: t_t1); //default_decay 0.1
  184.     env2= EnvGen.kr(Env([0, 1, 0], [0.000, 0.002], [2, -2]), gate: t_t1);
  185.     feedback= LocalIn.ar(1)*(600*cv1);
  186.     noise= LPF.ar(WhiteNoise.ar(1), 1200)*env2*amp3;
  187.  
  188.  
  189.     osc1= SinOsc.ar((freq.lag(0.2)) + feedback, 0, 0.98);
  190.     osc2=DelayC.ar(SinOsc.ar((freq2 * cv2.lag(0.5)) + (feedback*index2), 0, 0.98)*env2, 0.5, 0.01);
  191.  
  192.     sig1= ((osc1 * amp)*  env1 + (osc2*amp2) + noise );
  193.     sig1=LPF.ar( HPF.ar( sig1, 120), 6000);
  194.     LocalOut.ar(osc1);
  195.     Out.ar(outputS, sig1);
  196. }).add;
  197.  
  198.  
  199.  
  200.  
  201. SynthDef(\bombo, { arg pulse= 1, freq1= 30, freq2=600, amp=0.2
  202.          , index2= 1000, index1= 100, outputB=0, control, pn= -1, t_t1;
  203.     var sig1, env1, osc1, osc2, localIn, sendFm2, sendFm1, sig, env2;
  204.  
  205.  
  206.     env1= EnvGen.kr(Env.new([0, 1, 0], [0.04, 0.062], [-2, 2]), gate: t_t1);
  207.     env2= EnvGen.kr(Env.new([0, 2, 0], [0.0004, 0.03], [4, -2]), gate: t_t1);
  208.  
  209.  
  210.     localIn= LocalIn.ar(1);
  211.     osc1= SinOsc.ar(((freq1 * control.lag(0.5)) + localIn)*env2, 0, 1);
  212.     sendFm1= osc1 * index1;
  213.     osc2= SinOsc.ar(((freq2 * control.lag(0.5)) + sendFm1)*env2, 0, 1);
  214.     sendFm2= osc2 * index2;
  215.     sig= osc1 + osc2 * amp*env1;
  216.     LocalOut.ar(sendFm2);
  217.     Out.ar(outputB, sig);
  218. }).add;
  219.  
  220. );
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234. //start DRums............................................
  235. (
  236. g[\b1]= Synth(\bombo,[\t_t1, 0, \outputB, g[\bus1]],g[\g1]);
  237. g[\s1]= Synth(\snare0,[\t_t1, 0,\outputS, g[\bus2]], g[\g1]);
  238. g[\t1]= Synth(\token1,[\t_t1, 0], g[\g1]);
  239. g[\t2]= Synth(\token2,[\t_t1, 0], g[\g1]);
  240. g[\t3]= Synth(\token3,[\t_t1, 0], g[\g1]);
  241. g[\g].set(\output, g[\bus3]);
  242.  
  243. g[\t1].set(\amp, 0.01); //the default volume of the tokens are very loud
  244. g[\t2].set(\amp, 0.06);
  245. g[\t3].set(\amp, 0.1);
  246.  
  247. )
  248. //................................
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259. //reverb.................................................
  260. (
  261. g[\reverb]= Synth(\reverb, target: g[\mix]);
  262. g[\reverb].set(\output, 0);
  263. g[\reverb].set(\output2, g[\bus5]);
  264. g[\reverb].set(\mezcla, 0.02);   //mix(dry-wet)
  265. g[\reverb].set(\sala, 0.6);      //room(size or i don't know exactly)
  266. g[\reverb].set(\input1, g[\bus1]);
  267. g[\reverb].set(\input2, g[\bus2]);
  268. g[\reverb].set(\input3, g[\bus3]);
  269. g[\reverb].set(\input4, g[\bus4]);
  270. g[\g1].set(\output, g[\bus3]);
  271.  
  272.  
  273. //drone inlets and inputs
  274. ~drone.set(\input1, g[\bus1]);
  275. ~drone.set(\input2, g[\bus2]);
  276. ~drone.set(\input3, g[\bus3]);
  277. ~drone.set(\output, g[\bus4]);
  278. )
  279. //..................................................
  280.  
  281. g[\reverb].free;
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289. //sequencer
  290. /* i doed a task with two phrases anyway i didn't do a lot of
  291.   change in each phrase. I thought that would be interesting for make a bynary form
  292.    but i didn't have time for do that.
  293. //
  294. */
  295. (
  296. TempoClock.default.tempo = 4;
  297. j= TempoClock(4);
  298. l[\C1]= 0;
  299. l[\C2]= 0;
  300. l[\phraseDuration]= 4;
  301. l[\steps]= 432 * (l[\phraseDuration].value);
  302. l[\wait]= 0.041666666666667;
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310. l[\task]= Task.new({
  311.  
  312.  
  313.   l[\C1]=(-1);
  314.   l[\C2]=(-2);
  315.  
  316.  
  317.                 //3/4 6bar
  318.  
  319.  
  320.  
  321.     inf.do{ //global loop
  322.                                    "start___A".postln;
  323.  
  324.  
  325.  
  326.    l[\steps].do{//phrase1
  327.  
  328.               l[\C1]=  l[\C1] + 1;
  329.  
  330.               switch(l[\C1]%432
  331. /*72*/  , 0,  { "L".postln;s.makeBundle(s.latency, {g[\b1].set(\t_t1, 1); ~drone.set(\t1, 1); });}
  332. /*144*/ , 12, { ":".postln;s.makeBundle(s.latency, {g[\t1].set(\t_t1, 1);});}
  333.         , 16, { ":".postln;s.makeBundle(s.latency, {g[\t2].set(\t_t1, 1);});}
  334. /*216*/ , 25, { ":".postln;s.makeBundle(s.latency, {g[\s1].set(\t_t1, 1);});}
  335. /*288*/ , 42, { ":".postln;s.makeBundle(s.latency, {g[\t2].set(\t_t1, 1);});}
  336.         , 73, { "s1".postln;s.makeBundle(s.latency,{g[\t3].set(\t_t1, 1);});}
  337.         , 97, { "g".postln; s.makeBundle(s.latency,{g[\t2].set(\t_t1, 1);});}
  338.         , 122,{ "h".postln; s.makeBundle(s.latency, {g[\t1].set(\t_t1, 1);});}
  339.         , 129,{ "h".postln; s.makeBundle(s.latency, {g[\t2].set(\t_t1, 1);});}
  340. /*360*/
  341. /*432*/ , 144,{ ":".postln; s.makeBundle(s.latency, {g[\s1].set(\t_t1, 1);});}
  342.  
  343.         , 220,{ ":".postln; s.makeBundle(s.latency, {g[\t3].set(\t_t1,1);});}
  344.  
  345.         , 228,{ ":".postln; s.makeBundle(s.latency, {g[\t1].set(\t_t1, 1);});}
  346.         , 247,{ ":".postln; s.makeBundle(s.latency, {g[\t1].set(\t_t1, 1);});}
  347.         , 257,{ ":".postln; s.makeBundle(s.latency, {g[\t3].set(\t_t1, 1);});}
  348.         , 278,{ "1".postln; s.makeBundle(s.latency, {g[\t2].set(\t_t1, 1);});}
  349.         , 288,{ "2".postln; s.makeBundle(s.latency, {g[\b1].set(\t_t1, 1);});}
  350.         , 289,{ ":".postln; s.makeBundle(s.latency, { ~drone.set(\t1, 0);
  351.                                                       ~drone.set(\t1, 0, \dec, 0.71);
  352.                                          })
  353.                }
  354.         , 298,{ "2".postln; s.makeBundle(s.latency, {g[\t2].set(\t_t1, 1);});}
  355.         , 323,{ "2".postln; s.makeBundle(s.latency, {g[\t2].set(\t_t1, 1);});}
  356.         , 347,{ "2".postln; s.makeBundle(s.latency, {g[\t1].set(\t_t1, 1);});}
  357.         , 361, { "s2".postln; s.makeBundle(s.latency, { g[\s1].set(\t_t1, 1); });}
  358.  
  359.                  );
  360.          (l[\wait].value).wait;
  361.               };
  362.  
  363.  
  364.               "start_B".postln;
  365.     //phrase2
  366.     l[\steps].do{
  367.  
  368.               l[\C2]=  l[\C2] + 1;
  369.  
  370.               switch(l[\C2]%432
  371. /*72*/  , 0,  { "L".postln;s.makeBundle(s.latency, {g[\b1].set(\t_t1, 1); ~drone.set(\t1, 1); });}
  372. /*144*/ , 12, { ":".postln;s.makeBundle(s.latency, {g[\t1].set(\t_t1, 1);});}
  373.         , 16, { ":".postln;s.makeBundle(s.latency, {g[\t2].set(\t_t1, 1);});}
  374. /*216*/ , 25, { ":".postln;s.makeBundle(s.latency, { g[\s1].set(\t_t1, 1);});}
  375. /*288*/ , 42, { ":".postln;s.makeBundle(s.latency, {g[\t2].set(\t_t1, 1);});}
  376.         , 73, { "s1".postln;s.makeBundle(s.latency,{g[\t3].set(\t_t1, 1);});}
  377.         , 97, { "g".postln; s.makeBundle(s.latency,{g[\t2].set(\t_t1, 1);});}
  378.         , 122,{ "h".postln; s.makeBundle(s.latency, {g[\t1].set(\t_t1, 1);});}
  379.         , 129,{ "h".postln; s.makeBundle(s.latency, {g[\t2].set(\t_t1, 1);});}
  380. /*360*/
  381. /*432*/ , 144,  { ":".postln; s.makeBundle(s.latency, {g[\s1].set(\t_t1, 1);});}
  382.  
  383.         , 220,  { ":".postln; s.makeBundle(s.latency, {g[\t3].set(\t_t1,1);});}
  384.  
  385.         , 228,  { ":".postln; s.makeBundle(s.latency, {g[\t1].set(\t_t1, 1);});}
  386.         , 247,  { ":".postln; s.makeBundle(s.latency, {g[\t1].set(\t_t1, 1);});}
  387.         , 257,  { ":".postln; s.makeBundle(s.latency, {g[\t3].set(\t_t1, 1);});}
  388.         , 278,  { "1".postln; s.makeBundle(s.latency, {g[\t2].set(\t_t1, 1);});}
  389.         , 288,  { "2".postln; s.makeBundle(s.latency, {g[\b1].set(\t_t1, 1);});}
  390.  
  391.         , 298,  { "2".postln; s.makeBundle(s.latency, {g[\t2].set(\t_t1, 1);});}
  392.         , 323,  { "2".postln; s.makeBundle(s.latency, {g[\t2].set(\t_t1, 1);});}
  393.         , 347,  { "2".postln; s.makeBundle(s.latency, {g[\t1].set(\t_t1, 1);});}
  394.         ,361,   { "s2".postln; s.makeBundle(s.latency, { g[\s1].set(\t_t1, 1);
  395.                           ~drone.set(\t1, 0, \dec, 0.71);});
  396.                     }
  397.  
  398.  
  399.                           );
  400.          (l[\wait].value).wait;
  401.  
  402.              };
  403.  
  404.             "finish".postln;
  405.              };//global loop
  406.  
  407.  
  408. }, ñ);
  409.  
  410. )
  411.  
  412.  
  413.  
  414.  
  415.  
  416. //this will start record and then play, if you don't like
  417. //record anything you can forget this part and play the sequencer
  418. (
  419. g[\task1]= Task({
  420.                     2.do{
  421.                            [800, 800, 800, 400].do{ arg frecu, otro;
  422.                                Synth(\pito, [\master, 0, \freq, frecu] );
  423.                                1.wait;
  424.                                               };
  425.  
  426.                            };
  427.                    "START".postln;
  428.  
  429. s.makeBundle(s.latency, {r[\dOut1]=Synth.tail(nil,"rOut1" , [\bufi, r[\buf1], \busA, g[\bus5]]);});
  430. s.makeBundle(s.latency, {l[\task1].play});
  431.  
  432.  
  433.                   }, j);
  434. )
  435. //..............................................
  436.  
  437.  
  438.  
  439. g[\task1].start;
  440.  
  441. l[\task].play
  442. l[\task].stop
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. (
  451.  
  452.  
  453.  
  454.  
  455.  
  456. Window.closeAll;
  457. g[\window]= Window("gui", Rect(750, 50, 500, 200)).front.alwaysOnTop_(true);
  458.  
  459. g[\slider]= Slider(g[\window], Rect(20, 20, 150, 30))
  460. .background_(Color(0.2, 075, 0.95))
  461. .action_({
  462.                   arg obj;
  463.                    var cf, cf2, cf3, cf4, cf5, cf6, cf7, cf8, cf9;
  464.                       cf= obj.value.linexp(0,1, 3, 10);
  465.                       cf2= obj.value.linexp(0,1, 6000, 6010);
  466.                       cf3= obj.value.linexp(0,1, 1, 3);
  467.                       cf4= obj.value.linexp(0,1, 1,1.01);
  468.                      cf5= obj.value.linexp(0,1, 0.06, 0.16);
  469.                      cf6= obj.value.linexp(0,1, 0.03, 0.1);
  470.                      cf7= obj.value.linexp(0,1, 0.024, 0.1);
  471.                      cf8= obj.value.linexp(0,1, 1, 1.6);
  472.                      cf9= obj.value.linexp(0,1, 0.01, 1);
  473.  
  474.                       g[\b1].set(\control, cf);
  475.                       //g[\s1].set(\control, cf2);
  476.                       g[\s1].set(\dec, cf5);
  477.                       g[\g1].set(\controlG, cf3);
  478.                       //snare
  479.                       g[\s1].set(\freq, cf2);
  480.                       g[\s1].set(\dec, cf6);   //default 0.05
  481.                       g[\s1].set(\dec2, cf7);
  482.                       g[\s1].set(\cv1, cf8);
  483.                       g[\s1].set(\amp3, cf9);
  484.  
  485.                       ~drone.set(\cv1, cf4);
  486.  
  487.             });
  488.  
  489.  
  490. g[\slider2]= Slider(g[\window], Rect(20, 60, 150, 30))
  491. .background_(Color(0.2, 075, 0.95))
  492. .action_({
  493.                   arg obj;
  494.                    var cf, cf2, cf3;
  495.                       cf= obj.value.linexp(0,1, 1, 1.2);
  496.                       cf2= (l[\lfoPan].map(g[\slider2].value));
  497.                       cf3= (l[\sLayer].map(g[\slider2].value));
  498.                       cf2= (cf2/100);
  499.                       cf3= (cf3/100);
  500.                       ~drone.set(\cv2, cf);
  501.                       ~drone.set(\pn, cf2);
  502.                       ~drone.set(\pn2, cf3);
  503.             });
  504.  
  505.  
  506. l[\lfoPan]= [ -46.0 , 20.0, \lin, 0.1, 0.5, "hz"].asSpec;//controlSpec
  507. l[\sLayer]= [ -50.0 , 100.0, \lin, 0.1, 0.5, "hz"].asSpec;
  508. )
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518. //finis record
  519.  
  520.  
  521. l[\task1].stop
  522.  
  523. /*2_stop action 1*/
  524. r[\dOut1].free;
  525.  
  526.  
  527. /* 3 close the buffer and the soundfile */
  528. r[\buf1].close;
  529.  
  530.  
  531.  
  532.  
  533. /* 3 free Buffer */
  534. r[\buf1].free;
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544. /*
  545. i directly copy the gui patch from eli video and edit for adjust the "drum machine"
  546. I didn't concern about copyrigth or something, i thought that would be useful for me see more clear the patch if i do some mistake
  547. //https://www.youtube.com/watch?v=W2D_PzOVfT0 */
  548.  
  549.  
  550. I thingk that that it's interesting change the pitch very smoothly, i like the sound in bombo, ins't a interesting sound or original but with bombo the change of pith sound good. I guess that change the timbre it's the most better tip for make more fluenty sound. I try to do that with the snare for example.
  551. I change the dec and add a little noise. The noise ins't very loud and i only notice it when i delete or typed 0. XFade2 it's a useful Ugen for make this. In drone i try to do something with a simple lfo but i think that ins't what i liked. The audio of bombo, snare and tokens are  send to drone too, i thought that i could do some interesting with that and fm but finally i don get any interesting thing. Regards
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement