{
   "name" : "Simple Trapset",
   "author" : "codepool",
   "description" : "Migration from the old SourceForge wiki.",
   "ancestor_list" : [],
   "labels" : [
      "drums",
      "trap set"
   ],
   "code" : "// Here is a simple trapset: kick, snare, and hat. Feel free to make a better one out of it!\r\n\r\n(\r\n// simple trapset v.1\r\n\r\nvar dur;\r\nvar kSeqs, snSeqs, kSeq, snSeq;\r\n\r\n\r\n\r\nSynthDef(\"kickTrig1\", { arg levK=1, t_trig=0, dur=0.125;\r\n\tvar kEnv, out;\r\n\tvar kickEnv;\r\n\tkickEnv = Env.linen(0.001, 1.9, 0.099, 1);\r\n\tkEnv=EnvGen.ar(kickEnv,1, doneAction:2, timeScale: dur, levelScale: levK);\r\n\tout =Pan2.ar(Decay2.kr(t_trig, 0.005, 0.45, \r\n\tFSinOsc.ar(26.midicps, 0.4)+FSinOsc.ar(38.midicps, 0.2)),0);\r\n\t\r\n\t\tOut.ar(0, out*kEnv);\r\n\t}).load(s);\r\n\r\nSynthDef(\"snTrig1\", { arg levSn=1, t_trig=0, dur=0.125, panPos=0;\r\n\tvar snEnv, out;\r\n\tvar snareEnv;\r\n\tsnareEnv = Env.linen(0.001, 1.9, 0.099, 1);\r\n\tsnEnv=EnvGen.ar(snareEnv,1, doneAction:2, timeScale: dur, levelScale: levSn);\r\n\tout =Pan2.ar(Decay2.kr(t_trig, 0.005, 0.25, FSinOsc.ar(38.midicps, 0.3)+ \t\tBrownNoise.ar(0.4)),panPos);\r\n\t\r\n\t\tOut.ar(0, out*snEnv);\r\n\t}).load(s);\r\n\r\nSynthDef(\"hihatNew1\", { arg  dur=0.125, hatlev=1, panPos=0, noiseLev=0.5, rezFreq=2000;\r\n\tvar hhEnv, out, env;\r\n\thhEnv= Env.perc(0.001, 0.5, 1, -4);\r\n\tenv=EnvGen.ar(hhEnv,1, doneAction:2, timeScale: dur*1.5, levelScale: hatlev);\r\n\tout=\tPan2.ar(Resonz.ar(WhiteNoise.ar(noiseLev+0.1), rezFreq+1000, XLine.kr(0.2, 0.001, dur)),\r\n\t\t\t\t\t\t\t\t panPos);\r\n\t\tOut.ar(0, out*env);\r\n\t\t\t }).load(s);\r\n\t\t\t \r\n//////////////////////\r\n\r\nTempo.bpm = 130;\r\n\r\ndur = Tempo.beats2secs(0.25);\r\n\r\nkSeqs = \r\n[Pseq(#[1,0,0,1, 0,0,0.3,0, 0.8,0,0,0, 0,0,0.5,0]),\r\nPseq(#[1,0.6,0,0, 0,0,0.3,0, 0.8,0,0,0, 0,0,0.4,0.2]),\r\nPseq(#[1,0,0,0, 0,0,0.3,0, 0,0,0,0, 0,0,0.4,0.2])];\r\n\r\nsnSeqs=[Pseq(#[0,0,0,0, 0,0,0,0, 1,0.2,0,0, 0,0,0,0]),\r\nPseq(#[0,0,0,0, 0,0,0.2,0.1, 1,0,0,0, 0,0,0,0]),\r\nPseq(#[0,0,0,0, 0,0,0,0, 1,0.2,0,0, 0,0,0.1,0.2]),\r\nPseq.new(#[0,0,0,0, 0,0,0,0,  0,0,0,0, 1,0.1,0.6,0.4]),\r\nPseq.new(#[0,0,0,0, 0,0,0,0, 0,0,0,0, 0.1,0.2,0,0])];\r\n  \r\nkSeq= Pswitch([kSeqs@0, kSeqs@1, kSeqs@2], Prand([0,1,2], inf)).asStream;\r\nsnSeq= Pswitch([snSeqs@0, snSeqs@1, snSeqs@2, snSeqs@3, snSeqs@4], Prand([0,1,2,3,4], inf)).asStream;\r\n\r\n\r\nRoutine({\r\nOSCSched.global.tdeltaTillNext(4.0).wait;\r\n        loop({\r\n                s.sendMsg(\\s_new, \\kickTrig1, -1, 1, 0, \r\n                \\t_trig, kSeq.next);\r\n                s.sendMsg(\\s_new, \\snTrig1, -1, 1, 0, \r\n                \\t_trig, snSeq.next,\r\n                \\dur, dur,\r\n                \\panPos, 0.1.rand2);\r\n                dur.wait;\r\n        });\r\n}).play; \r\nRoutine({ arg nextTime;\r\nOSCSched.global.tdeltaTillNext(4.0).wait;\r\n      \t  loop({\r\n\t\tnextTime= [dur, dur*2, dur*4, dur*8].wchoose([0.5, 0.2, 0.2, 0.1]);\r\n \t\t\t\ts.sendMsg(\\s_new, \\hihatNew1, -1, 1, 0,\r\n\t\t\t\t\\dur, nextTime,\r\n\t\t\t\t\\noiseLev, 0.6.rand,\r\n\t\t\t\t\\rezFreq,2500.rand,\r\n\t\t\t\t\\panPos, 0.25.rand2\r\n\t\t\t\t);\r\n\t\t\t\tnextTime.wait;\r\n\t\t\t});\r\n}).play;\r\n)\r\n\r\n\r\n(\r\n// simple trapset v.2\r\n\r\nvar dur;\r\nvar kSeqs, snSeqs, kSeq, snSeq;\r\n\r\n\r\n\r\nSynthDef(\"kickTrig1\", { arg levK=1, t_trig=0, dur=0.125;\r\n\tvar kEnv, out;\r\n\tvar kickEnv;\r\n\tkickEnv = Env.linen(0.001, 1.9, 0.099, 1);\r\n\tkEnv=EnvGen.ar(kickEnv,1, doneAction:2, timeScale: dur, levelScale: levK);\r\n\tout =Pan2.ar(Decay2.kr(t_trig, 0.005, 0.45, \r\n\tFSinOsc.ar(26.midicps, 0.4)+FSinOsc.ar(38.midicps, 0.2)),0);\r\n\t\r\n\t\tOut.ar(0, out*kEnv);\r\n\t}).load(s);\r\n\r\nSynthDef(\"snTrig1\", { arg levSn=1, t_trig=0, dur=0.125, panPos=0;\r\n\tvar snEnv, out;\r\n\tvar snareEnv;\r\n\tsnareEnv = Env.linen(0.001, 1.9, 0.099, 1);\r\n\tsnEnv=EnvGen.ar(snareEnv,1, doneAction:2, timeScale: dur, levelScale: levSn);\r\n\tout =Pan2.ar(Decay2.kr(t_trig, 0.005, 0.25, FSinOsc.ar(38.midicps, 0.4)+ \t\tBrownNoise.ar(0.5)),panPos);\r\n\t\r\n\t\tOut.ar(0, out*snEnv);\r\n\t}).load(s);\r\n\r\nSynthDef(\"hihatNew2\", { arg  dur=0.125, hatlev=1, panPos=0, noiseLev=0.5, rezFreq=2500, rezMul=0.5;\r\n\tvar hhEnv, out, env;\r\n\thhEnv= Env.perc(0.001, 0.5, 1, -4);\r\n\tenv=EnvGen.ar(hhEnv,1, doneAction:2, timeScale: dur*1.5, levelScale: hatlev);\r\n\tout=\tPan2.ar(Resonz.ar(WhiteNoise.ar(noiseLev+0.1), rezFreq+3000, SinOsc.kr(rezMul+0.001)),\r\n\t\t\t\t\t\t\t\t panPos);\r\n\t\tOut.ar(0, AllpassN.ar(out*env,0.030, [0.025.rand,0.020.rand], 0.25));\r\n\t\t\t }).load(s);\r\n\t\t\t \r\n//////////////////////\r\n\r\nTempo.bpm = 110;\r\n\r\ndur = Tempo.beats2secs(0.25);\r\n\r\nkSeqs = \r\n[Pseq(#[1,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0]),\r\nPseq(#[1,0,0,0, 0,0,0,0, 1,0,0,0, 0,0,0,0]),\r\nPseq(#[1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0]),\r\nPseq(#[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),\r\nPseq(#[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])\r\n];\r\n\r\nsnSeqs=[Pseq(#[0,0,0.8,0, 0,0,0.8,0, 1,0.2,0,0, 0.3,0.4,0.6,0.7]),\r\nPseq(#[0,0,0.8,0, 0,0,0.2,0.1, 1,0,0,0, 1,0,0,0]),\r\nPseq(#[0,0,0.7,0, 0,0,0.7,0, 1,0.2,0,0, 0,0,0.1,0.2]),\r\nPseq.new(#[0.3,0.2,0.1,0.2, 0,0,0,0,  0,0,0,0, 1,0.1,0.6,0.4]),\r\nPseq.new(#[0,0,0,0, 1,0,0.6,0, 1,0,0.8,0, 0.1,0.2,0,0])];\r\n  \r\nkSeq= Pswitch([kSeqs@0, kSeqs@1, kSeqs@2, kSeqs@3, kSeqs@4], Prand([0,1,2, 3,4], inf)).asStream;\r\nsnSeq= Pswitch([snSeqs@0, snSeqs@1, snSeqs@2, snSeqs@3, snSeqs@4], Prand([0,1,2,3,4], inf)).asStream;\r\n\r\n\r\nRoutine({\r\nOSCSched.global.tdeltaTillNext(4.0).wait;\r\n        loop({\r\n                s.sendMsg(\\s_new, \\kickTrig1, -1, 1, 0, \r\n                \\t_trig, kSeq.next);\r\n                s.sendMsg(\\s_new, \\snTrig1, -1, 1, 0, \r\n                \\t_trig, snSeq.next,\r\n                \\dur, dur,\r\n                \\panPos, 0.1.rand2);\r\n                dur.wait;\r\n        });\r\n}).play; \r\nRoutine({ arg nextTime;\r\nOSCSched.global.tdeltaTillNext(4.0).wait;\r\n      \t  loop({\r\n\t\tnextTime= [dur, dur*2, dur*4, dur*8].wchoose([0.5, 0.2, 0.2, 0.1]);\r\n \t\t\t\ts.sendMsg(\\s_new, \\hihatNew2, -1, 1, 0,\r\n\t\t\t\t\\dur, nextTime,\r\n\t\t\t\t\\noiseLev, 0.6.rand,\r\n\t\t\t\t\\rezFreq,2500.rand,\r\n\t\t\t\t\\rezMul, 0.6.rand,\r\n\t\t\t\t\\panPos, 0.25.rand2\r\n\t\t\t\t);\r\n\t\t\t\tnextTime.wait;\r\n\t\t\t});\r\n}).play;\r\n)\r\n/*\r\nauthors so far:\r\njonathan segel\r\n*/",
   "id" : "1-56L",
   "is_private" : null
}
