{
   "code" : "// Back and forth bouncing between buffered waveforms.\r\n\r\n(\r\ns = Server.local;\r\nb = Buffer.alloc(s, 4096, 1);\r\nc = Buffer.alloc(s, 4096, 1);\r\n)\r\n\r\n(\r\nSynthDef(\"Oscer1\", {argnextTime = 0.5, bufnum = 0, freq = 80, envLev = 1.0;\r\n\tvar env, osc, sum, out;\r\n\tenv = EnvGen.kr(Env.new([0, 1, 1, 0], [0.1, 0.98, 0.1]), levelScale: envLev, timeScale: nextTime*0.98, doneAction: 2);\r\n\tosc = Osc.ar(b.bufnum, [freq, freq+(freq*0.0025)], 0, 0.5);//[freq, freq+(freq*0.0025)]\r\n\tsum = (env*osc);\r\n\tOut.ar(0, sum);\r\n}).send(s);\r\n\r\nSynthDef(\"Oscer2\", {argnextTime = 0.5, bufnum = 0, freq = 80, envLev = 1.0;\r\n\tvarenv, osc, sum, out;\r\n\tenv = EnvGen.kr(Env.new([0, 1, 1, 0], [0.1, 0.98, 0.1]), levelScale: envLev, timeScale: nextTime*0.98, doneAction: 2);\r\n\tosc = Osc.ar(c.bufnum, [freq, freq+(freq*0.0025)], 0, 0.5);\r\n\tsum = (env*osc);\r\n\tOut.ar(0, sum);\r\n}).store;\r\n)\r\n\r\n(\r\nt = TempoClock(110/60);\r\nu = t.beatDur/4;\r\n\r\nRoutine({argnextTime;\r\n\tOSCSched.global.tdeltaTillNext(4.0).wait;\r\n\tloop({\r\n\t\tnextTime = u;\r\n\t\ts.sendBundle(nil, [\r\n\t\t\t\\s_new, \\Oscer1, 1001, 1, 0, \r\n\t\t\t\\freq, 26.midicps, \r\n\t\t\t\\envLev, rrand(0.6, 0.8), \r\n\t\t\t\\nextTime, nextTime\r\n\t\t]);\r\n\t\t(nextTime*2).wait;\r\n\t});\r\n}).play;\r\n\r\nRoutine({argnextTime;\r\n\tvarn = 7;\r\n\tOSCSched.global.tdeltaTillNext(4.0).wait;\r\n\tloop({\r\n\t\tnextTime = u;\r\n\t\t(nextTime*1.5).wait;\r\n\t\tb.sine1(Array.rand(n, 0, 1).cubed, true, true, true);\r\n\t\t(nextTime*0.5).wait;\r\n\t});\r\n}).play;\r\n\r\nRoutine({argnextTime;\r\n\tOSCSched.global.tdeltaTillNext(4.0).wait;\r\n\tloop({\r\n\t\tnextTime = u;\r\n\t\tnextTime.wait;\r\n\t\ts.sendBundle(nil, [\r\n\t\t\t\\s_new, \\Oscer2, 1002, 1, 0, \r\n\t\t\t\\freq, 38.midicps, \r\n\t\t\t\\envLev, rrand(0.5, 0.8), \r\n\t\t\t\\nextTime, nextTime\r\n\t\t]);\r\n\t\tnextTime.wait;\r\n\t});\r\n}).play;\r\n\r\nRoutine({argnextTime;\r\n\tvarn = 7;\r\n\tOSCSched.global.tdeltaTillNext(4.0).wait;\r\n\tloop({\r\n\t\tnextTime = u;\r\n\t\t(nextTime*0.5).wait;\r\n\t\tc.sine1(Array.rand(n, 0, 1).cubed, true, true, true);\r\n\t\t(nextTime*1.5).wait;\r\n\t});\r\n}).play;\r\n\r\n)\r\n/*\r\nauthors so far:\r\nJonathan Segel\r\n*/",
   "is_private" : null,
   "id" : "1-56V",
   "labels" : [
      "oscillator"
   ],
   "ancestor_list" : [],
   "description" : "Migration from the old SourceForge wiki.",
   "name" : "Double Oscer",
   "author" : "codepool"
}
