// title: Outhau5 // author: tnevada // description: // https://soundcloud.com/timnevada/out-hau5 // code: s.boot; b = Buffer.read(s, "/Users/timnevada/Desktop/strobe mono.wav")' c = Buffer.read(s, "/Users/timnevada/Desktop/CTHULU MONO.wav"); b.play; b.numChannels; b.duration; b.numFrames; c.play; c.numChannels; c.duration; c.numFrames; ( SynthDef("boom", {arg rate = 1, amp = 1, buffer, startPos = 0, attack = 0.02, release = 0.5, panning = 0; var snd, env; env = Env.perc(attackTime: attack, releaseTime: release, level: amp).kr(doneAction: 2); snd = PlayBuf.ar( numChannels: 1, bufnum: buffer, rate: rate, startPos: startPos.linlin(0, 1, 0, BufFrames.kr(buffer)) ); snd = snd * env; snd = Pan2.ar(snd, panning); Out.ar(0, snd); }).add; SynthDef("clap", {arg rate = 1, amp = 1, buffer, startPos = 0, attack = 0.02, release = 0.5, panning = 0; var snd, env; env = Env.perc(attackTime: attack, releaseTime: release, level: amp).kr(doneAction: 2); snd = PlayBuf.ar( numChannels: 1, bufnum: buffer, rate: rate, startPos: startPos.linlin(0, 1, 0, BufFrames.kr(buffer)) ); snd = snd * env; snd = Pan2.ar(snd, panning); Out.ar(0, snd); }).add; SynthDef("basssweep", { arg freq = 440, amp = 0.4, fspeed = 1, gate = 1, which = 0, att = 0.01, rel = 0.1; var snd, env, sweep, trig; env = Env.asr(attackTime: att, sustainLevel: amp, releaseTime: rel ).kr(doneAction: 2, gate: gate); // fspeed (filter speed) is Hz of saw wave. This saw goes from 40 and 5000, which will be used as LPF cutoff freq below. sweep = LFSaw.ar(freq: fspeed).exprange(40, 8000); // main sound snd = LFSaw.ar(freq * [1, 1.01, 2.01]).sum; snd = LPF.ar(in: snd, freq: sweep); snd = Normalizer.ar(snd, 0.5); snd = snd + BPF.ar(in: snd, freq: 4000, rq: 0.8); //distortion and reverb snd = (snd * 1.1).tanh; snd = snd + GVerb.ar( in: snd, roomsize: 1, revtime: 0.2, damping: 0.8, mul: 0.3 ); snd = snd * env; Out.ar(0, Splay.ar(snd)) }).add; ) ( ~bass = Pbind( \instrument, "basssweep", \dur, Pseq([1, 1, 1, 1, 1, 1, 1, 1], 21), \midinote, Pseq([ [28], [28], [28], [31], [28], [28], [28], [28], [28], [28], [28], [31], [28], [28], [28], [28], [28, 36], [35], [28], [28], [27], [28], [31], [33], [28, 36], [35], [28], [28], [27], [28, 40], [31, 43], [33, 45], [28, 48], [28, 47], [28, 40], [28, 40], [28, 39], [28, 40], [28, 43], [28, 45], [28, 48], [28, 47], [28, 40], [28, 40], [28, 39], [28, 40], [28, 43], [28, 45], [28, 48, 52], [28, 47, 51], [28, 40, 52], [28, 40, 52], [28, 39, 54], [28, 40, 55], [28, 43, 57], [28, 45, 60], [28, 48, 64], [28, 47, 63], [28, 40, 59], [28, 40, 59], [28, 39, 54], [28, 40, 55], [28, 43, 57], [28, 45, 60], [28, 36], [35], [28], [28], [27], [28], [31, 43], [33, 45], [28, 48], [28, 47], [28, 40], [28, 40], [28, 39], [28, 40], [28, 43], [28, 45], [28, 48, 52], [28, 47, 51], [28, 40, 52], [28, 40, 52], [28, 39, 54], [28, 40, 55], [28, 43, 57], [28, 45, 60], [28, 48, 52], [28, 47, 51], [28, 40, 52], [28, 40, 52], [28, 39, 63], [28, 40, 60], [28, 43, 59], [28, 45, 52], [28, 48, 64], [28, 47, 63], [28, 40, 64], [28, 40, 59], [28, 48, 62], [28, 47, 60], [28, 40, 59], [28, 40], [28, 48, 52], [28, 47, 51], [28, 40, 52], [28, 40, 52], [28, 48, 60], [28, 47, 59], [28, 40, 64], [28, 40, 64], [28, 48, 76], [28, 47, 75], [28, 40, 76], [28, 40, 71], [28, 48, 74], [28, 47, 72], [28, 40, 71], [28, 40, 71], [28, 48, 79], [28, 47, 78], [28, 40, 76], [28, 40, 81], [28, 48, 84], [28, 47, 83], [28, 40, 88], [28, 40, 76], [28, 36], [35], [28], [28], [27], [28], [31], [33], [28, 36], [35], [28], [28], [27], [28], [31], [33], [28], [28], [28], [31], [28], [28], [28], [28], ], 2), \amp, 0.3, \fspeed, 2, \legato, 0.98, \att, 0.01, \rel, 1 ); ~boom = Pbind( \instrument, "boom", \rate, Pseq([0, Pseq([1, 1, 1, 1, 1, 1, 1, 1], 42)], 1), \amp, 0.5, \startPos, Pseq([0.00039], inf), \attack, 0.1, \release, 0.5, \buffer, b, \dur, (Pseq([0.5, Pseq([1, 1, 1, 1, 1, 1, 1, 1], 42)], 1))/2, ); ~clap = Pbind( \instrument, "clap", \rate, Pseq([0, Pseq( [0, 1, 0, 1, 0, 1, 0, 1], inf)], 1), \amp, 0.5, \startPos, Pseq([0.00245], inf), \attack, 0.01, \release, 0.5, \buffer, c, \dur, (Pseq([0.5, Pseq([1, 1, 1, 1, 1, 1, 1, 1], 42)], 1))/2, ); ~boomslow = Pbind( \instrument, "boom", \rate, Pseq([0, Pseq([1, 1, 1, 0.5], 1)], 1), \amp, 0.5, \startPos, Pseq([0.00039], inf), \attack, 0.1, \release, 0.5, \buffer, b, \dur, (Pseq([0.5, Pseq([1, 1, 0.5], 1)], 1))/2, ); ) ~bass.play; ~boom.play; ~boomslow.play; s.record; s.stopRecording; (t = TempoClock(60/60); ( Pspawner({ arg maestro; maestro.seq(Ppar([~boomslow])); maestro.seq(Ppar([~boom, ~clap, ~bass])); maestro.suspendAll; }).play(t); ))