{
   "ancestor_list" : [],
   "description" : "SoundCloud:\r\nhttps://soundcloud.com/mileselliott/villainous-115gran/s-2BERP\r\n\r\nSamples:\r\nhttps://drive.google.com/open?id=0B_RfpesVhgStVGdqWTVsV0lUeHM",
   "name" : "Villainous - 115granular",
   "author" : "melliott",
   "is_private" : null,
   "id" : "1-55y",
   "code" : "(\r\na = Buffer.read(s, \"C:/Users/Xtlas/Desktop/Villainous.wav\");\r\nb = Buffer.read(s, \"C:/Users/Xtlas/Desktop/fsa.wav\");\r\n)\r\n\r\n// SynthDefs\r\n(\r\nSynthDef(\"vox\", {arg rate = 1, amp = 1, buffer, startPos = 0, attack = 0.02, release = 0.5, ffreq = 1000, rq = 0.1, panning = 0;\r\n    var snd, env;\r\n    env = Env.perc(attackTime: attack, releaseTime: release, level: amp).kr(doneAction: 2);\r\n    snd = PlayBuf.ar(\r\n        numChannels: 2,\r\n        bufnum: buffer,\r\n        rate: rate,\r\n        startPos: startPos.linlin(0, 1, 0, BufFrames.kr(buffer))\r\n    );\r\n    snd = snd * env;\r\n    snd = BPF.ar(snd, ffreq, rq);\r\n    snd = Pan2.ar(snd, panning);\r\n    Out.ar(0, snd);\r\n}).add;\r\n\r\nSynthDef(\"granny2\", {arg rate = 1, amp = 1, buffer, startPos = 0, attack = 0.02, release = 0.5, ffreq = 1000, rq = 0.1, panning = 0;\r\n    var snd, env;\r\n    env = Env.perc(attackTime: attack, releaseTime: release, level: amp).kr(doneAction: 2);\r\n    snd = PlayBuf.ar(\r\n        numChannels: 1,\r\n        bufnum: buffer,\r\n        rate: rate,\r\n        startPos: startPos.linlin(0, 1, 0, BufFrames.kr(buffer))\r\n    );\r\n    snd = snd * env;\r\n    snd = BPF.ar(snd, ffreq, rq);\r\n    snd = Pan2.ar(snd, panning);\r\n    Out.ar(0, snd);\r\n}).add;\r\n\r\nSynthDef(\"granny2verb\", {arg rate = 1, amp = 1, buffer, startPos = 0, attack = 0.02, release = 0.5, ffreq = 1000, rq = 0.1, panning = 0;\r\n    var snd, env;\r\n    env = Env.perc(attackTime: attack, releaseTime: release, level: amp).kr(doneAction: 2);\r\n    snd = PlayBuf.ar(\r\n        numChannels: 1,\r\n        bufnum: buffer,\r\n        rate: rate,\r\n        startPos: startPos.linlin(0, 1, 0, BufFrames.kr(buffer))\r\n    );\r\n    snd = snd * env;\r\n    snd = BPF.ar(snd, ffreq, rq);\r\n    snd = Pan2.ar(snd, panning);\r\n\tsnd = FreeVerb.ar(snd, 0.8);\r\n    Out.ar(0, snd);\r\n}).add;\r\n\r\nSynthDef(\"kick\", {arg out = 0, amp = 0.5, sinfreq = 60, glissf = 0.9, att = 0.01, rel = 0.45, pan = 0;\r\n    var env, snd, ramp;\r\n    env =  Env.perc(\r\n        attackTime: att,\r\n        releaseTime: rel,\r\n        level: amp).kr(2);\r\n    // start from sinfreq, go to sinfreq times glissf factor, over rel duration.\r\n    ramp = XLine.kr(\r\n        start: sinfreq,\r\n        end: sinfreq * glissf,\r\n        dur: rel\r\n    );\r\n    snd = SinOsc.ar(\r\n        freq: ramp,\r\n        phase: 0,\r\n        mul: env,\r\n        add: 0);\r\n    snd = Pan2.ar(snd, pan);\r\n    Out.ar(out, snd);\r\n}).add;\r\n\r\nSynthDef(\"hihat\", {arg out = 0, amp = 0.5, att = 0.01, rel = 0.2, ffreq = 12000, pan = 0;\r\n    var env, snd;\r\n    env =  Env.perc(\r\n        attackTime: att,\r\n        releaseTime: rel,\r\n        level: amp).kr;\r\n    snd =  WhiteNoise.ar(\r\n        mul: env,\r\n        add: 0);\r\n    snd = LPF.ar(\r\n        in: snd,\r\n        freq: ffreq,\r\n        mul: 1,\r\n        add: 0);\r\n    Out.ar(out, Pan2.ar(snd, pan));\r\n}).add;\r\n\r\nSynthDef(\"bass\", {arg out = 0, amp = 0.5, att = 0.01, rel = 0.2, freq = 440, pan = 0;\r\n    var env, snd;\r\n    env =  Env.perc(\r\n        attackTime: att,\r\n        releaseTime: rel,\r\n        level: amp).kr;\r\n\tsnd =  Pulse.ar(freq: freq, mul: env);\r\n    snd = LPF.ar(\r\n        in: snd,\r\n        freq: freq,\r\n        mul: 1,\r\n        add: 0);\r\n    Out.ar(out, Pan2.ar(snd, pan));\r\n}).add;\r\n)\r\n\r\n(\r\n~chords = Pbind(\r\n    \\instrument, \"granny2\",\r\n    \\rate, 1,\r\n    \\amp, 20,\r\n    \\startPos, 0,\r\n    \\attack, 0.02,\r\n    \\release, 0.2,\r\n    \\ffreq, midicps(Pseq([\r\n        Pn([60, 63, 67], 4),\r\n        Pn([59, 63, 67], 4),\r\n        Pn([58, 63, 67], 4),\r\n        Pn([53, 60, 65], 4),\r\n    ], 2) + 2),\r\n    \\rq, 0.002,\r\n    \\buffer, b, // which buffer to play from\r\n    \\dur, 0.5,\r\n    \\panning, Pwhite(-0.1, 0.1),\r\n);\r\n\r\n\r\n(\r\n~chordsverb = Pbind(\r\n    \\instrument, \"granny2verb\",\r\n    \\rate, 1,\r\n    \\amp, 5,\r\n    \\startPos, 0,\r\n    \\attack, 0.2,\r\n    \\release, 2.5,\r\n    \\ffreq, midicps(Pseq([\r\n        Pn([60, 63, 67], 4),\r\n        Pn([59, 63, 67], 4),\r\n        Pn([58, 63, 67], 4),\r\n        Pn([53, 60, 65], 4),\r\n    ], 2) + 2),\r\n    \\rq, 0.002,\r\n    \\buffer, b, // which buffer to play from\r\n    \\dur, 0.5,\r\n    \\panning, Pwhite(-0.1, 0.1),\r\n);\r\n\r\n\r\n~higher1 = Pbind(\r\n    \\instrument, \"granny2\",\r\n    \\rate, 1,\r\n    \\amp, 15,\r\n    \\startPos, 0.9,\r\n    \\attack, 0.05,\r\n    \\release, 0.5,\r\n    \\ffreq, midicps(Pseq([\r\n        70, 72, 75, 72,\r\n        70, 72, 75, 72,\r\n        79, 77, 77, 79,\r\n        77, 75, 72, 0,\r\n\r\n        79, 82, 84, 87,\r\n        0, 86, 84, 82,\r\n        0, 82, 84, 79,\r\n        70, 72, 75, 0\r\n    ], 1) + 2),\r\n    \\rq, 0.01,\r\n    \\buffer, b, // which buffer to play from\r\n    \\dur, Pseq([\r\n        0.5, 0.5, 0.5, 0.5,\r\n        0.3, 0.5, 0.5, 0.7,\r\n        0.5, 0.5, 0.5, 0.5,\r\n        0.3, 0.5, 0.5, 0.7,\r\n\r\n        0.5, 0.5, 0.5, 0.5,\r\n        0.5, 0.3, 0.5, 0.7,\r\n        0.5, 0.5, 0.5, 0.5,\r\n        0.3, 0.5, 0.5, 0.7\r\n    ], 1),\r\n    \\panning, Pwhite(-0.5, 0.5)\r\n);\r\n\r\n~higher2 = Pbind(\r\n    \\instrument, \"granny2\",\r\n    \\rate, 1,\r\n    \\amp, 15,\r\n    \\startPos, 0.9,\r\n    \\attack, 0.05,\r\n    \\release, 0.5,\r\n    \\ffreq, midicps(Pseq([\r\n        70, 72, 75, 72,\r\n        70, 72, 75, 72,\r\n        79, 77, 77, 79,\r\n        77, 75, 72, 0,\r\n\r\n        79, 75, 79, 82,\r\n        0, 86, 84, 82,\r\n        82, 82, 84, 79,\r\n        70, 72, 75, 0\r\n    ], 1) + 2),\r\n    \\rq, 0.01,\r\n    \\buffer, b, // which buffer to play from\r\n    \\dur, Pseq([\r\n        0.5, 0.5, 0.5, 0.5,\r\n        0.3, 0.5, 0.5, 0.7,\r\n        0.5, 0.5, 0.5, 0.5,\r\n        0.3, 0.5, 0.5, 0.7,\r\n\r\n        0.5, 0.5, 0.5, 0.5,\r\n        0.5, 0.3, 0.5, 0.7,\r\n        0.5, 0.5, 0.5, 0.5,\r\n        0.3, 0.5, 0.5, 0.7\r\n    ], 1),\r\n    \\panning, Pwhite(-0.5, 0.5)\r\n);\r\n\r\n\r\n~blow = Pbind(\r\n    \\instrument, \"granny2\",\r\n    \\rate, 2.6,\r\n    \\amp, 1,\r\n\t\\ffreq, midicps(70 + 2),\r\n    \\startPos, 0.1,\r\n    \\attack, 0.0,\r\n    \\release, 1.5,\r\n    \\rq, 0.6,\r\n    \\buffer, b, // which buffer to play from\r\n\t\\dur, Pn(1, 1),\r\n    \\panning, 0\r\n);\r\n\r\n\r\n~blow2 = Pbind(\r\n    \\instrument, \"granny2\",\r\n\t\\rate, Pseq([3.0, 2.6], inf),\r\n\t\\amp, Pseq([Pn(0, 6), 1, 0.9], 2),\r\n\t\\ffreq, midicps(Pseq([\r\n        72, 70\r\n    ], inf) + 2),\r\n    \\startPos, 0.1,\r\n    \\attack, 0.0,\r\n    \\release, 1.5,\r\n    \\rq, 0.6,\r\n    \\buffer, b, // which buffer to play from\r\n\t\\dur, 1,\r\n\t\\panning, Pseq([-0.5, 0.5], inf)\r\n);\r\n\r\n\r\n~lyrics = Pbind(\r\n    \\instrument, \"vox\",\r\n    \\rate, 1,\r\n\t\\amp, 0.63,\r\n\t//\\ffreq, midicps(70),\r\n    \\startPos, 0.0001,\r\n    \\attack, 0.0,\r\n    \\release, 999,\r\n    \\rq, 10,\r\n    \\buffer, a, // which buffer to play from\r\n\t\\dur, Pn(1, 1),\r\n    \\panning, 0\r\n);\r\n\r\n~bgvox = Pbind(\r\n    \\instrument, \"vox\",\r\n    \\rate, -8,\r\n\t\\amp, 3,\r\n    \\startPos, 1,\r\n    \\attack, 0.0,\r\n    \\release, 999,\r\n    \\rq, 0.1,\r\n\t\\ffreq, 145,\r\n    \\buffer, a, // which buffer to play from\r\n\t\\dur, Pn(1, 1),\r\n\t\\panning, 0\r\n);\r\n\r\n\r\n~kick = Pbind(\r\n    \\instrument, \"kick\",\r\n    \\amp, 1,\r\n    \\rel, 1,\r\n    \\dur, Pseq([1.5, 2, 0.25, 0.25], 4),\r\n    \\sinfreq, 67,\r\n    \\glissf, 0.9\r\n);\r\n\r\n\r\n~hat = Pbind(\r\n    \\instrument, \"hihat\",\r\n\t\\dur, Pseq([Pn(0.25, 7), Pn(0.05, 5), Pn(0.25, 8)], 4),\r\n\t\\amp, Pseq([0.15, 0.18], inf)/3,\r\n    \\glissf, 0.2,\r\n    \\ffreq, 10000,\r\n    \\rel, 0.1\r\n);\r\n\r\n\r\n~clap = Pbind(\r\n    \\instrument, \"hihat\",\r\n    \\midinote, Pseq([1], inf),\r\n    \\dur, 1,\r\n    \\amp, Pseq([0, 0, 0.85, 0], 4),\r\n    \\ffreq, 2000,\r\n    \\glissf, 0.2,\r\n    \\rel, 1.5\r\n);\r\n\r\n~bass = Pbind(\r\n    \\instrument, \"bass\",\r\n    \\midinote, Pseq([62, 61, 60, 55], 2),\r\n\t\\dur, Pseq([Pn(2, 4)], inf),\r\n\t\\amp, 0.8,\r\n    \\rel, 3,\r\n\t\\ctranspose, -24\r\n);\r\n~bass2 = Pbind(\r\n    \\instrument, \"bass\",\r\n    \\midinote, Pseq([62, 61, 60, 55], 2),\r\n\t\\dur, Pseq([Pn(2, 4)], inf),\r\n\t\\amp, 0.5,\r\n    \\rel, 3,\r\n\t\\ctranspose, -36\r\n);\r\n\r\n\r\nPspawner({ arg maestro;\r\n\t\r\n\tTempoClock.default.tempo = 90/60;\r\n\r\n\tmaestro.seq(Ppar([~chords, ~chordsverb]));\r\n\tmaestro.seq(Ppar([~chords, ~chordsverb, ~bgvox]));\r\n    maestro.seq(Ppar([~chords, ~chordsverb, ~hat, ~lyrics]));\r\n\tmaestro.seq(Ppar([~chords, ~chordsverb, ~hat, ~higher1]));\r\n\tmaestro.seq(Ppar([~chords, ~chordsverb, ~hat, ~higher2]));\r\n\tmaestro.seq(Ppar([~chords, ~chordsverb, ~hat, ~higher1, ~clap, ~kick, ~blow2, ~blow, ~bass, ~bass2]));\r\n\tmaestro.seq(Ppar([~chords, ~chordsverb, ~hat, ~higher2, ~clap, ~kick, ~blow2, ~blow, ~bass, ~bass2]));\r\n\tmaestro.seq(Ppar([~chords, ~chordsverb, ~hat]));\r\n\tmaestro.seq(Ppar([~chords, ~chordsverb, ~hat]));\r\n\tmaestro.seq(Ppar([~chords, ~chordsverb, ~hat, ~higher1, ~clap, ~kick, ~blow2, ~blow, ~bass, ~bass2]));\r\n\tmaestro.seq(Ppar([~chords, ~chordsverb, ~hat, ~higher2, ~clap, ~kick, ~blow2, ~blow, ~bass, ~bass2]));\r\n\tTempoClock.default.tempo = 900;\r\n\tmaestro.seq(Ppar([~chords, ~chordsverb, ~hat, ~higher1, ~clap, ~kick, ~blow2, ~blow, ~bass, ~bass2]));\r\n\tmaestro.seq(Ppar([~chords, ~chordsverb, ~hat, ~higher2, ~clap, ~kick, ~blow2, ~blow, ~bass, ~bass2]));\r\n\tmaestro.seq(Ppar([~chords, ~chordsverb, ~hat, ~higher1, ~clap, ~kick, ~blow2, ~blow, ~bass, ~bass2]));\r\n\tmaestro.seq(Ppar([~chords, ~chordsverb, ~hat, ~higher2, ~clap, ~kick, ~blow2, ~blow, ~bass, ~bass2]));\r\n\r\n    maestro.suspendAll;\r\n\tTempoClock.default.tempo = 1\r\n\r\n}).play\r\n)\r\n)",
   "labels" : []
}
