1 // 08091500Acid309 by_otophilia
3 // try evaluating any of those ~dseqs below
5 ~dseq = [[1,0,0,0, 0,0,0,0, 1,0,0,1, 0,0,1,0], [0,0,0,0, 0,0,0,2, 0,2,1,0, 4,3,3,3], [0,0,0,0, 4,0,0,0, 0,0,0,0, 4,0,0,0], [1,2,4,0, 1,0,4,0, 1,2,4,2, 1,0,4,2], [1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0]].flop;
7 ~dseq = [[0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0], [0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0], [0,0,0,0, 4,0,0,0, 0,0,0,0, 4,0,0,0], [1,2,4,0, 1,0,4,0, 1,2,4,2, 1,0,4,2], [1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0]].flop;
9 ~dseq = [[1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0], [0,0,0,0, 0,0,0,2, 0,0,0,0, 0,0,0,0], [0,0,0,0, 4,0,0,0, 0,0,0,0, 4,0,0,0], [1,2,4,0, 1,0,4,0, 1,2,4,2, 1,0,4,2], [1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0]].flop;
11 ~dseq = [[1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0], [0,0,0,0, 4,0,0,2, 0,0,0,0, 4,0,0,0], [0,0,0,0, 0,0,0,0, 0,0,0,0, 4,0,0,0], [1,2,4,0, 1,0,4,0, 1,2,4,2, 1,0,4,2], [1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0]].flop;
15 Server.default = Server.internal; s = Server.default;
16 Routine.run {var c; c = Condition.new; s.freeAll; TempoClock.all.do{|x|x.clear}; s.bootSync(c);
18 ( // **** SynthDefs ****
22 var env0, env1, env1m, out;
24 env0 = EnvGen.ar(Env.new([0.5, 1, 0.5, 0], [0.005, 0.06, 0.26], [-4, -2, -4]), doneAction:2);
25 env1 = EnvGen.ar(Env.new([110, 59, 29], [0.005, 0.29], [-4, -5]));
28 out = LFPulse.ar(env1m, 0, 0.5, 1, -0.5);
29 out = out + WhiteNoise.ar(1);
30 out = LPF.ar(out, env1m*1.5, env0);
31 out = out + SinOsc.ar(env1m, 0.5, env0);
36 Out.ar(outBus, out.dup);
40 arg outBus=0, amp=0.8;
41 var env0, env1, env2, env1m, oscs, noise, out;
43 env0 = EnvGen.ar(Env.new([0.5, 1, 0.5, 0], [0.005, 0.03, 0.10], [-4, -2, -4]));
44 env1 = EnvGen.ar(Env.new([110, 60, 49], [0.005, 0.1], [-4, -5]));
46 env2 = EnvGen.ar(Env.new([1, 0.4, 0], [0.05, 0.13], [-2, -2]), doneAction:2);
48 oscs = LFPulse.ar(env1m, 0, 0.5, 1, -0.5) + LFPulse.ar(env1m * 1.6, 0, 0.5, 0.5, -0.25);
49 oscs = LPF.ar(oscs, env1m*1.2, env0);
50 oscs = oscs + SinOsc.ar(env1m, 0.8, env0);
52 noise = WhiteNoise.ar(0.2);
53 noise = HPF.ar(noise, 200, 2);
54 noise = BPF.ar(noise, 6900, 0.6, 3) + noise;
58 out = out.clip2(1) * amp;
60 Out.ar(outBus, out.dup);
64 arg outBus=0, amp = 0.5;
65 var env1, env2, out, noise1, noise2;
67 env1 = EnvGen.ar(Env.new([0, 1, 0, 1, 0, 1, 0, 1, 0], [0.001, 0.013, 0, 0.01, 0, 0.01, 0, 0.03], [0, -3, 0, -3, 0, -3, 0, -4]));
68 env2 = EnvGen.ar(Env.new([0, 1, 0], [0.02, 0.3], [0, -4]), doneAction:2);
70 noise1 = WhiteNoise.ar(env1);
71 noise1 = HPF.ar(noise1, 600);
72 noise1 = BPF.ar(noise1, 2000, 3);
74 noise2 = WhiteNoise.ar(env2);
75 noise2 = HPF.ar(noise2, 1000);
76 noise2 = BPF.ar(noise2, 1200, 0.7, 0.7);
78 out = noise1 + noise2;
80 out = out.softclip * amp;
82 Out.ar(outBus, out.dup);
86 arg outBus=0, amp=0.3;
87 var env1, env2, out, oscs1, noise, n, n2;
90 thisThread.randSeed = 4;
92 env1 = EnvGen.ar(Env.new([0, 1.0, 0], [0.001, 0.2], [0, -12]));
93 env2 = EnvGen.ar(Env.new([0, 1.0, 0.05, 0], [0.002, 0.05, 0.03], [0, -4, -4]), doneAction:2);
95 oscs1 = Mix.fill(n, {|i|
97 ( i.linlin(0, n-1, 42, 74) + rand2(4.0) ).midicps,
98 SinOsc.ar( (i.linlin(0, n-1, 78, 80) + rand2(4.0) ).midicps, 0.0, 12),
103 oscs1 = BHiPass.ar(oscs1, 1000, 2, env1);
105 noise = WhiteNoise.ar;
106 noise = Mix.fill(n2, {|i|
108 freq = (i.linlin(0, n-1, 40, 50) + rand2(4.0) ).midicps.reciprocal;
109 CombN.ar(noise, 0.04, freq, 0.1)
111 noise = BPF.ar(noise, 6000, 0.9, 0.5, noise);
112 noise = BLowShelf.ar(noise, 3000, 0.5, -6);
113 noise = BHiPass.ar(noise, 1000, 1.5, env2);
119 Out.ar(outBus, out.dup);
123 arg outBus=0, gate=1, pitch=50, amp=0.1;
125 pitch = Lag.kr(pitch, 0.12 * (1-Trig.kr(gate, 0.001)) * gate);
126 env1 = EnvGen.ar(Env.new([0, 1.0, 0, 0], [0.001, 2.0, 0.04], [0, -4, -4], 2), gate, amp);
127 env2 = EnvGen.ar(Env.adsr(0.001, 0.8, 0, 0.8, 70, -4), gate);
128 out = LFPulse.ar(pitch.midicps, 0.0, 0.51, 2, -1);
130 out = RLPF.ar(out, (pitch + env2).midicps, 0.3);
133 Out.ar(outBus, out.dup);
137 arg outBus=0, gate=0;
140 out = In.ar(outBus, 2);
141 out = FreeVerb2.ar( BPF.ar(out[0], 3500, 1.5), BPF.ar(out[1], 3500, 1.5), 1.0, 0.95, 0.15) * EnvGen.kr(Env.new([0.02, 0.3, 0.02], [0.4, 0.01], [3, -4], 1), 1-Trig.kr(gate, 0.01)) + out;
142 out = HPF.ar(out * 1.2, 40);
143 out = Limiter.ar(out, 1.0, 0.02);
145 ReplaceOut.ar(outBus, out);
151 ( // **** Sequence ****
154 [1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0],
155 [0,0,0,0, 4,0,0,2, 0,0,0,0, 4,0,0,0],
156 [0,0,0,0, 0,0,0,0, 0,0,0,0, 4,0,0,0],
157 [1,2,4,0, 1,0,4,0, 1,2,4,2, 1,0,4,2],
158 [1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0]
162 [1,1,1,1, 1,1,1,1, 0,1,0,1, 1,1,1,0],
163 [1,1,0,2, 1,1,0,0, 2,0,2,0, 1,2,0,4],
164 [-24,-12,0,-12, 0,-12,10,12, 0,7,-7,0, -11,1,13,15] + 38
171 ~clock = TempoClock(~bpm/60);
175 delta = if(~pnt%2 == 0){1/4 * (1+~shf)}{1/4 * (1-~shf)};
180 ~acid = Synth.head(~group, "acid", [\gate, 0]);
181 ~fx = Synth.after(~group, "fx");
184 ~dseq.wrapAt(~pnt).do{|x, i|
186 0, { if( x>0 ){ Synth.head(~group, "kick") } },
187 1, { if( x>0 ){ Synth.head(~group, "snare", [\amp, (x/4).squared*0.7]) } },
188 2, { if( x>0 ){ Synth.head(~group, "clap", [\amp, (x/4).squared*0.5]) } },
189 3, { if( x>0 ){ Synth.head(~group, "hat", [\amp, (x/4).squared*0.32]) } },
190 4, { ~fx.set(\gate, (x>0).binaryValue) }
194 bass = ~bseq.wrapAt(~pnt);
195 ~acid.set(\pitch, bass[2]);
196 if(bass[0]==1){ ~acid.set(\gate, 1) };
198 if(bass[1]>0){ ~clock.sched(delta * bass[1]/4 * 0.99, { s.bind{ ~acid.set(\gate, 0) } }) };