// title: 115Granular - Heldt // author: unknown // description: // https://soundcloud.com/user-354095935/tribal-atmosphere-115granular // code: //Alex Heldt - A4 ~low = Buffer.read(s, "/Users/Alex/Desktop/octn perc 2-MONO.wav"); ~high = Buffer.read(s, "/Users/Alex/Desktop/umru farsi chorus vox-MONO.wav"); p.play; p.numChannels; o.play; o.numChannels; ( SynthDef("syn1", {arg rate = 1, amp = 2, 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("color", {arg rate = 1, amp = 1, buffer, startPos = 0, attack = 0.02, release = 0.5, ffreq = 20, rq = 0.1, panning = 0, delay = 0.3, decay = 1; 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 = BPF.ar(snd, ffreq, rq); snd = CombC.ar(snd, maxdelaytime: 2, delaytime: delay, decaytime: decay); snd = Pan2.ar(snd, panning); Out.ar(0, snd); }).add; SynthDef("flutter", {arg rate = 1, amp = 1, buffer, startPos = 0, attack = 0.02, release = 0.5, ffreq = 500, rq = 0.1, panning = 0, delay = 0.3, decay = 1; 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 = BPF.ar(snd, ffreq, rq); snd = CombC.ar(snd, maxdelaytime: 2, delaytime: delay, decaytime: decay); snd = Pan2.ar(snd, panning); Out.ar(0, snd); }).add; ) ~peet.play; ( ~peet = Pbind( \instrument, "syn1", \rate, Prand([0.125, 0.25, 0.125, 0.0625, 0.003125, 0.003125, 0.0625, 0.0625], inf), \amp, Pwhite(10.75, 11), \startPos, Prand([0.78, 0.5], 32), \attack, 0.01, \release, 0.1, \buffer, ~low, \dur, 0.15, \panning, Pwhite(-0.25, 0.25); ); ~peetfastr = Pbind( \instrument, "syn1", \rate, Prand([0.125, 0.25, 0.125, 0.125, 0.125, 0.0625], inf), \amp, Pwhite(9.2, 9.5), \startPos, Prand([0.2, 0.4, 0.66, 0.89], 16), \attack, 0.01, \release, 0.1, \buffer, ~low, // which buffer to play from \dur, 0.15, \panning, Pwhite(0.15, 1.0); // control L/R here ); ~peetfastl = Pbind( \instrument, "syn1", \rate, Prand([0.125, 0.25, 0.125, 0.125, 0.125, 0.0625], inf), \amp, Pwhite(9.2, 9.5), \startPos, Prand([0.2, 0.4, 0.66, 0.89], 16), \attack, 0.01, \release, 0.1, \buffer, ~low, // which buffer to play from \dur, 0.15, \panning, Pwhite(-1.0, -0.15); // control L/R here ); ~lead1 = Pbind( \instrument, "color", \rate, Pseq([1, 1, 1, 1], 8), \amp, 2.5, \startPos, Pseq([0.14, 0.13], 8), \attack, 0.05, \release, 2, \ffreq, Prand([100, 200, 400, 550, 1000, 50, 100, 500], 8), \rq, 0.1, \delay, 0.2, \decay, 2, \buffer, ~high, \dur, 0.5, \panning, Pwhite(-0.5, 0.5) ); ~lead2 = Pbind( \instrument, "color", \rate, Pseq([0.125, 0.125, 0.5, 0.125], 2), \amp, 4.5, \startPos, Pseq([0.14, 0.13, 0.7, 0.9], 4), \attack, 0.15, \release, 2, \rq, 0.25, \delay, 0.1, \decay, 1, \buffer, ~high, \dur, 0.25, \panning, Pwhite(-0.5, 0.5) ); ~lead3 = Pbind( \instrument, "flutter", \rate, Pseq([10], 64), \amp, 9.5, \startPos, Pseq([0.14, 0.13, 0.7, 0.9], 32), \attack, 0.01, \release, 0.2, \rq, 0.15, \delay, 0.1, \decay, 0.1, \buffer, ~high, \dur, 0.0625 ); ~lead4 = Pbind( \instrument, "color", \rate, Pseq([0.25, 0.25, 1, 0.25], 4), \amp, 4.5, \startPos, Pseq([0.14, 0.13, 0.7, 0.9], 4), \attack, 0.15, \release, 2, \rq, 0.25, \delay, 0.1, \decay, 1, \buffer, ~high, \dur, 0.25, \panning, Pwhite(-0.5, 0.5) ); ~lead5 = Pbind( \instrument, "syn1", \rate, Pseq([12, 10], 32), \amp, 0.1, \startPos, Pseq([0.24, 0.43, 0.7, 1.5], 32), \attack, 0.05, \release, 0.2, \rq, 0.25, \delay, 0.1, \decay, 0.1, \buffer, ~high, \dur, 0.0625 ); ~leadoutro = Pbind( \instrument, "color", \rate, Pseq([4, 4.2, 4.1, 3.98], 8), \amp, 3.5, \startPos, Pseq([0.14, 0.13], 8), \attack, 0.05, \release, 3, \ffreq, Prand([100, 200, 80, 150,200, 50, 100, 300], 8), \rq, 0.1, \delay, 0.2, \decay, 2, \buffer, ~high, \dur, 0.125, \panning, Pwhite(-0.5, 0.5) ); ) ~peet.play; ~peetfastl.play; ~peetfastr.play; ~lead1.play; ~lead2.play; ~lead3.play; ~lead4.play; ~lead5.play; ~leadoutro.play; ( Pspawner({ arg maestro; 8.wait; maestro.seq(~peetfastr); maestro.seq(~peetfastl); maestro.seq(~peetfastr); maestro.seq(~peetfastl); maestro.seq(~peet); maestro.seq(~lead1); maestro.seq(Ppar([~lead1, ~lead2])); maestro.seq(~lead3); 4.wait; maestro.seq(Ppar([~lead3, ~lead2])); maestro.seq(Ppar([~lead3, ~lead4])); maestro.seq(Ppar([~lead5, ~lead4, ~lead3])); maestro.seq(Ppar([~lead5, ~lead4])); maestro.seq(Ppar([~lead3, ~lead2])); maestro.seq(Ppar([~lead5, ~lead4, ~lead1])); maestro.seq(~lead1); maestro.seq(~leadoutro); 2.wait; maestro.seq(~leadoutro); 2.wait; maestro.seq(Ppar([~lead1, ~leadoutro])); maestro.seq(Ppar([~lead1, ~leadoutro])); maestro.seq(~leadoutro); 2.wait; maestro.seq(~leadoutro); maestro.suspendAll; }).play; )