( SynthDef(\kick0, { }).add; ) (//booting a sever and connect to midi s.boot; MIDIIn.connectAll; ) //option s.options.outDevice_("Soundflower (2ch)");//"audio device you use" s.reboot; (//lauch sc808 //////////////////////////////////////////SOUND DESIGN///////////////////////////////////////////// ( SynthDef.new(\bd, { arg decay=30, amp=2, gate=0, tone=56; var fenv, env, trienv, sig, sub, punch, pfenv; env = EnvGen.kr(Env.new([0.11, 1, 0], [0, decay], -225),doneAction:2); trienv = EnvGen.kr(Env.new([0.11, 0.6, 0], [0, decay], -230),doneAction:0); fenv = Env([tone*7, tone*1.35, tone], [0.05, 0.6], -14).kr; pfenv = Env([tone*7, tone*1.35, tone], [0.03, 0.6], -10).kr; sig = SinOsc.ar(fenv, pi/2) * env; sub = LFTri.ar(fenv, pi/2) * trienv * 0.05; punch = SinOsc.ar(pfenv, pi/2) * env * 2; punch = HPF.ar(punch, 350); sig = (sig + sub + punch) * 2.5; sig = Limiter.ar(sig, 0.5) * amp; sig = Pan2.ar(sig, 0); Out.ar(0, sig); }).add; SynthDef.new(\sn, { arg amp=2, tone=340, tone2=189, snappy=0.3, gate=0, amp2=1; var noiseEnv, atkEnv, sig, noise, osc1, osc2, sum; noiseEnv = EnvGen.kr(Env.perc(0.001, 4.2, 1, -115), doneAction:2); atkEnv = EnvGen.kr(Env.perc(0.001, 0.8,curve:-95), doneAction:0); noise = WhiteNoise.ar; noise = HPF.ar(noise, 1800); noise = LPF.ar(noise, 8850); noise = noise * noiseEnv * snappy; osc1 = SinOsc.ar(tone2, pi/2) * 0.6; osc2 = SinOsc.ar(tone, pi/2) * 0.7; sum = (osc1+osc2) * atkEnv * amp2; sig = Pan2.ar((noise + sum) * amp * 2.5, 0); sig = HPF.ar(sig, 340); Out.ar(0, sig); }).add; SynthDef.new(\cpRaw, { arg amp=1, gate=0; var atkenv, atk, decay, sum, denv; atkenv = EnvGen.kr(Env.new([0.5,1,0],[0, 0.3], -160), doneAction:2); denv = EnvGen.kr(Env.dadsr(0.026, 0, 6, 0, 1, 1, curve:-157), doneAction:0); atk = WhiteNoise.ar * atkenv * 1.4; decay = WhiteNoise.ar * denv; sum = atk + decay * amp; sum = HPF.ar(sum, 500); sum = BPF.ar(sum, 1062, 0.5); Out.ar(0, Pan2.ar(sum * 1.5, 0)); }).add; SynthDef.new(\cpReverb, { // not working? arg amp=1, gate=0; var reverb, revgen; revgen = EnvGen.kr(Env.perc(0.1, 4, curve:-9), gate, doneAction:2); reverb = WhiteNoise.ar * revgen * 0.2; reverb = HPF.ar(reverb, 500); reverb = LPF.ar(reverb, 1000); Out.ar(0, Pan2.ar(reverb * amp, 0)); }).add; SynthDef.new(\LT, { arg amp=1, freq=80; var sig, fenv, env, pnoise, penv; env = EnvGen.kr(Env.new([0.4, 1, 0], [0, 20], -250),doneAction:2); penv = EnvGen.kr(Env.new([0.6, 1, 0], [0, 30], -225),doneAction:2); fenv = Env([freq*1.25, freq*1.125, freq], [0.1, 0.5], -4).kr; sig = SinOsc.ar(fenv, pi/2) * env; sig = Pan2.ar(sig * amp * 3, 0); Out.ar(0, sig); }).add; SynthDef.new(\MT, { arg amp, freq=120; var sig, fenv, env; env = EnvGen.kr(Env.new([0.4, 1, 0], [0, 16], -250),doneAction:2); fenv = Env([freq*1.33333, freq*1.125, freq], [0.1, 0.5], -4).kr; sig = SinOsc.ar(fenv, pi/2); sig = Pan2.ar(sig * env * amp * 2, 0); Out.ar(0, sig); }).add; SynthDef.new(\HT, { arg amp, freq=165; var sig, fenv, env; env = EnvGen.kr(Env.new([0.4, 1, 0], [0, 11], -250),doneAction:2); fenv = Env([freq*1.333333, freq*1.121212, freq], [0.1, 0.5], -4).kr; sig = SinOsc.ar(fenv, pi/2); sig = Pan2.ar(sig * env * amp * 2, 0); Out.ar(0, sig); }).add; SynthDef.new(\LC, { arg amp=1, freq=165; var sig, fenv, env, pnoise, penv; env = EnvGen.kr(Env.new([0.15, 1, 0], [0, 18], -250),doneAction:2); penv = EnvGen.kr(Env.new([0.6, 1, 0], [0, 30], -225),doneAction:2); fenv = Env([freq*1.333333, freq*1.121212, freq], [0.1, 0.5], -4).kr; sig = SinOsc.ar(fenv, pi/2) * env; sig = Pan2.ar(sig * amp * 3, 0); Out.ar(0, sig); }).add; SynthDef.new(\MC, { arg amp=1, freq=250; var sig, fenv, env; env = EnvGen.kr(Env.new([0.15, 1, 0], [0, 9], -250),doneAction:2); fenv = Env([freq*1.24, freq*1.12, freq], [0.1, 0.5], -4).kr; sig = SinOsc.ar(fenv, pi/2); sig = Pan2.ar(sig * env * amp * 2, 0); Out.ar(0, sig); }).add; SynthDef.new(\HC, { arg amp=1, freq=370; var sig, fenv, env; env = EnvGen.kr(Env.new([0.15, 1, 0], [0, 6], -250),doneAction:2); fenv = Env([freq*1.22972, freq*1.08108, freq], [0.1, 0.5], -4).kr; sig = SinOsc.ar(fenv, pi/2); sig = Pan2.ar(sig * env * amp * 2, 0); Out.ar(0, sig); }).add; SynthDef.new(\rimshot, { arg amp=1; var fenv, env, sig, punch, tri1, tri2; env = EnvGen.kr(Env.new([1, 1, 0], [0.00272, 0.07], -42), doneAction:2); tri1 = LFTri.ar(1667 * 1.1, 1) * env; tri2 = LFPulse.ar(455 * 1.1, width:0.8) * env; punch = WhiteNoise.ar * env * 0.46; sig = tri1 + tri2 + punch; sig = BPeakEQ.ar(sig, 464, 0.44, 8); sig = HPF.ar(sig, 315); sig = LPF.ar(sig, 7300); sig = Pan2.ar(sig * amp, 0); Out.ar(0, sig); }).add; SynthDef.new(\claves, { arg amp=1; var env, sig; env = EnvGen.kr(Env.new([1, 1, 0], [0, 0.1], -20), doneAction:2); sig = SinOsc.ar(2500, pi/2) * env * amp; sig = Pan2.ar(sig, 0); Out.ar(0, sig); }).add; SynthDef.new(\maracas, { arg amp=1, gate=0; var env, sig; env = EnvGen.kr(Env.new([0.3, 1, 0], [0.027, 0.07], -250), gate, doneAction:2); sig = WhiteNoise.ar * env * amp; sig = HPF.ar(sig, 5500); sig = Pan2.ar(sig, 0); Out.ar(0, sig); }).add; SynthDef.new(\cowbell, { arg amp=1; var sig, pul1, pul2, env, atk, atkenv, datk; atkenv = EnvGen.kr(Env.perc(0, 1, 1, -215),doneAction:0); env = EnvGen.kr(Env.perc(0.01, 9.5, 1, -90),doneAction:2); pul1 = LFPulse.ar(811.16); pul2 = LFPulse.ar(538.75); atk = (pul1 + pul2) * atkenv * 6; datk = (pul1 + pul2) * env; sig = (atk + datk) * amp; sig = HPF.ar(sig, 250); sig = LPF.ar(sig, 4500); sig = Pan2.ar(sig, 0); Out.ar(0, sig); }).add; SynthDef.new(\hat, { arg decay=0.42, amp=1, pan=0; var sig, sighi,siglow, sum, env, osc1, osc2, osc3, osc4, osc5, osc6; env = EnvGen.kr(Env.perc(0.005, decay, 1, -30),doneAction:2); osc1 = LFPulse.ar(203.52); osc2 = LFPulse.ar(366.31); osc3 = LFPulse.ar(301.77); osc4 = LFPulse.ar(518.19); osc5 = LFPulse.ar(811.16); osc6 = LFPulse.ar(538.75); sighi = (osc1 + osc2 + osc3 + osc4 + osc5 + osc6); siglow = (osc1 + osc2 + osc3 + osc4 + osc5 + osc6); sighi = BPF.ar(sighi, 8900, 1); sighi = HPF.ar(sighi, 9000); siglow = BBandPass.ar(siglow, 8900, 0.8); siglow = BHiPass.ar(siglow, 9000, 0.3); sig = BPeakEQ.ar((siglow+sighi), 9700, 0.8, 0.7); sig = sig * env * amp; sig = Pan2.ar(sig, pan); Out.ar(0, sig); }).add; SynthDef.new(\openhihat, { arg decay=0.5, amp=4, pan=0; var sig, siga, sigb, env1, env2, osc1, osc2, osc3, osc4, osc5, osc6, sum; env1 = EnvGen.kr(Env.perc(0.1, decay, curve:-3), doneAction:2); env2 = EnvGen.kr(Env.new([0, 1, 0], [0, decay*5], curve:-150), doneAction:0); osc1 = LFPulse.ar(203.52) * 0.6; osc2 = LFPulse.ar(366.31) * 0.6; osc3 = LFPulse.ar(301.77) * 0.6; osc4 = LFPulse.ar(518.19) * 0.6; osc5 = LFPulse.ar(811.16) * 0.6; osc6 = LFPulse.ar(538.75) * 0.6; sig = osc1 + osc2 + osc3 + osc4 + osc5 +osc6; sig = BLowShelf.ar(sig, 990, 2, -3); sig = BPF.ar(sig, 7700); sig = BPeakEQ.ar(sig, 7200, 0.5, 5); sig = BHiPass4.ar(sig, 8100, 0.7); sig = BHiShelf.ar(sig, 9400, 1, 5); siga = sig * env1 * 0.6; sigb = sig * env2; sum = siga + sigb; sum = LPF.ar(sum, 4000); sum = Pan2.ar(sum, 0); sum = sum * amp * 2; Out.ar(0, sum); }).add; SynthDef.new(\cymbal, { arg decay=2, amp=20, pan=0, gate=0, tone=0.002; var sig, sig1,sig2, sig2a, sig2b, sig3, env1, env2, env2b, env3, osc1, osc2, osc3, osc4, osc5, osc6, sum; env1 = EnvGen.kr(Env.perc(0.3, decay, curve:-3), doneAction:2); env2 = EnvGen.kr(Env.new([0, 0.6, 0], [0.1, decay*0.7], -5), doneAction:0); env2b = EnvGen.kr(Env.new([0, 0.3, 0], [0.1, decay*20], -120), doneAction:0); env3 = EnvGen.kr(Env.new([0, 1, 0], [0, decay*5], curve:-150), doneAction:0); osc1 = LFPulse.ar(203.52) * 0.6; osc2 = LFPulse.ar(366.31) * 0.6; osc3 = LFPulse.ar(301.77) * 0.6; osc4 = LFPulse.ar(518.19) * 0.6; osc5 = LFPulse.ar(811.16) * 0.6; osc6 = LFPulse.ar(538.75) * 0.6; sig = osc1 + osc2 + osc3 + osc4 + osc5 +osc6; sig1 = BLowShelf.ar(sig, 2000, 1, 5); sig1 = BPF.ar(sig1, 3000); sig1 = BPeakEQ.ar(sig1, 2400, 0.5, 5); sig1 = BHiPass.ar(sig1, 1550, 0.7); sig1 = LPF.ar(sig1, 3000); sig1 = BLowShelf.ar(sig1, 1000, 1, 0); sig1 = sig1 * env1 * tone; sig2 = BLowShelf.ar(sig, 990, 2, -5); sig2 = BPF.ar(sig2, 7400); sig2 = BPeakEQ.ar(sig2, 7200, 0.5, 5); sig2 = BHiPass4.ar(sig2, 6800, 0.7); sig2 = BHiShelf.ar(sig2, 10000, 1, -4); sig2a = sig2 * env2 * 0.3; sig2b = sig2 * env2b * 0.6; sig3 = BLowShelf.ar(sig, 990, 2, -15); sig3 = BPF.ar(sig3, 6500); sig3 = BPeakEQ.ar(sig3, 7400, 0.35, 10); sig3 = BHiPass4.ar(sig3, 10500, 0.8, 2); sig3 = sig3 * env3; sum = sig1 + sig2a + sig2b + sig3; sum = LPF.ar(sum, 4000); sum = Pan2.ar(sum, 0); sum = sum * amp; Out.ar(0, sum); }).add; )