{
   "labels" : [
      "pattern",
      "electronic",
      "sound",
      "guitar",
      "experimental",
      "patterns",
      "supercollider",
      "code",
      "synth",
      "synthesis",
      "karplusstrong",
      "karplusstrong synthesis",
      "sound design",
      "music",
      "computer",
      "synthesizer",
      "musc115pluck"
   ],
   "is_private" : null,
   "id" : "1-4WP",
   "code" : "/******************************************/\r\n// Jonathan Coon\r\n// A1: Karplus-Strong Synthesis\r\n// MUSC 115 - Experimental Sound Design\r\n// Santa Clara University\r\n// 10/29/2014\r\n/******************************************/\r\n\r\n// This piece is a remix of my previous piece called \"Avant Garde\" in which a plucking\r\n// synthesizer is used. In this piece, I have modified the plucking synth and have added\r\n// more functionality, including reverb and vibrato control.\r\n\r\n/************************/\r\n// SYNTH DEFINITION\r\n/************************/\r\n\r\n(\r\nSynthDef(\"plucking2.0\", {arg amp = 0.1, freq = 440, decay = 5, coef = 0.1, verbMix = 0.9, verbSize = 0.9, verbDamp = 0.0001, vibratoRate = 7, vibratoMul = 10, pan = 0;\r\n\tvar env, snd, vibrato;\r\n\tenv = Env.linen(0, decay, 0).kr(doneAction: 2);\r\n\tvibrato = SinOsc.kr(freq: vibratoRate, mul: freq/vibratoMul);\r\n\tsnd = Pluck.ar(\r\n\t\tin: GrayNoise.ar(amp),\r\n\t\ttrig: Impulse.kr(0),\r\n\t\tmaxdelaytime: 0.1,\r\n\t\tdelaytime: freq.reciprocal,\r\n\t\tdecaytime: decay,\r\n\t\tcoef: coef);\r\n\tsnd = FreeVerb.ar(in: snd, mix: verbMix, room: verbSize, damp: verbDamp);\r\n\tsnd = Pan2.ar(snd, pan);\r\n\tOut.ar(0, Splay.ar(snd, spread: 0.75, level: SinOsc.kr(freq: vibrato), center: 0));\r\n}).add;\r\n)\r\n\r\n/************************/\r\n// ARRANGEMENT\r\n/************************/\r\n\r\ns.record(\"/Users/jdcoon/SCU/Fall 2014/MUSC 115/A1/Pluck-Jonathan_Coon.wav\");\r\ns.stopRecording;\r\n(\r\nPseq(\r\n\t[\r\n\t\t~twinkle,\r\n\t\tPpar([~phaser, ~accent, Pn(~twinkle, 2)], 1),\r\n\t\tPpar([~melody, ~drums], 2),\r\n\t\tPn(~romanianMinor, 2),\r\n\t\t~spanish,\r\n\t\t~mixolydian,\r\n\t\t~egyptian2,\r\n\t\tPpar([Pn(~egyptian1,2), ~egyptian2]),\r\n\t\t~egyptian3,\r\n\t\tPpar([Pn(~egyptian1,2), ~egyptian2, Pn(~egyptian3,2)]),\r\n\t\t~freq1,\r\n\t\tPpar([~freq1, ~siren2], 1),\r\n\t\t~freq3,\r\n\t\tPpar([~freq2, ~siren1], 1),\r\n\t\tPpar([~up, ~down], 1),\r\n\t\t~twinkle\r\n\t]\r\n).play;\r\n)\r\n\r\n/************************/\r\n// PATTERNS\r\n/************************/\r\n\r\n// Twinkle\r\n(\r\n~twinkle = Pbind(\r\n\t\\instrument, \"plucking2.0\",\r\n\t\\scale, Scale.major,\r\n\t\\degree, Pwhite(0,12),\r\n\t\\ctranspose, 36,\r\n\t\\amp, Pwhite(0.5, 0.9),\r\n\t\\decay, Pwhite(7, 12),\r\n\t\\coef, Pwhite(0.01, 0.1),\r\n\t\\verbMix, 0.5,\r\n\t\\verbSize, 0.9,\r\n\t\\verbDamp, 0.2,\r\n\t\\vibratoRate, 0.1,\r\n\t\\vibratoMul, 10,\r\n\t\\dur, Prand([3/16, 3/8, 1/8, 1/16], 50);\r\n);\r\n)\r\n\r\n// Phaser\r\n(\r\n~phaser = Pbind(\r\n\t\\instrument, \"plucking2.0\",\r\n\t\\freq, 40,\r\n\t\\amp, 0.8,\r\n\t\\decay, Pseg(Pseq((0.1, 0.5 .. 7)), Pgeom(7,0.8)),\r\n\t\\coef, 0.1,\r\n\t\\verbMix, Pgeom(0, 1.1),\r\n\t\\verbSize, Pgeom(0, 1.1),\r\n\t\\verbDamp, Pgeom(0, 1.1),\r\n\t\\vibratoRate, 7,\r\n\t\\vibratoMul, 10,\r\n\t\\dur, Pseq([0.25/2], inf),\r\n\t\\pan, Pseq([-1, 1], inf)\r\n);\r\n)\r\n\r\n// Accent\r\n(\r\n~accent = Pbind(\r\n\t\\instrument, \"plucking2.0\",\r\n\t\\degree, 0,\r\n\t\\ctranspose, 24,\r\n\t\\amp, 3.3,\r\n\t\\decay, 1,\r\n\t\\coef, 0.1,\r\n\t\\verbMix, 0.5,\r\n\t\\verbSize, 0.9,\r\n\t\\verbDamp, 0.5,\r\n\t\\vibratoRate, 1,\r\n\t\\vibratoMul, 1,\r\n\t\\dur, Pseq([3/8, 3/8, 1.25], 20),\r\n\t\\pan, Pseq([Pn(-1, 3), Pn(1, 3), Pn(-0.7, 3), Pn(0.7, 3), Pn(-0.1, 3), Pn(0.1, 3)], inf)\r\n);\r\n)\r\n\r\n// Romanian Minor Scale\r\n(\r\n~romanianMinor = Pbind(\r\n\t\\instrument, \"plucking2.0\",\r\n\t\\scale, Scale.romanianMinor,\r\n\t\\degree, Pwhite(0, 15),\r\n\t\\amp, Pwhite(0.3, 0.7) * 2,\r\n\t\\decay, Pwhite(7, 12),\r\n\t\\coef, Pwhite(0.01, 0.1),\r\n\t\\verbMix, 0.5,\r\n\t\\verbSize, 0.1,\r\n\t\\verbDamp, 0.3,\r\n\t\\vibratoRate, 0.2,\r\n\t\\vibratoMul, 0.02,\r\n\t\\dur, Prand([0.1, 0.2, 0.4, 0.27, 0.13, 0.38], 50)\r\n);\r\n)\r\n\r\n// Melody\r\n(\r\n~melody = Pbind(\r\n\t\\instrument, \"plucking2.0\",\r\n\t\\degree, Pwhite(0,5),\r\n\t\\ctranspose, -12/2,\r\n\t\\amp, 1.8,\r\n\t\\decay, 1,\r\n\t\\coef, 0.1,\r\n\t\\verbMix, 0.5,\r\n\t\\verbSize, 0.5,\r\n\t\\verbDamp, 0.5,\r\n\t\\vibratoRate, 7,\r\n\t\\vibratoMul, 0.01,\r\n\t\\dur, Pseq([3/8, 3/8, 1, 1/16, 1/16, 1/16], 5),\r\n);\r\n)\r\n\r\n// Drums\r\n(\r\n~drums = Pbind(\r\n\t\\instrument, \"plucking2.0\",\r\n\t\\degree, Pwhite(0,5),\r\n\t\\ctranspose, -12*4,\r\n\t\\amp, 1.8,\r\n\t\\decay, 1,\r\n\t\\coef, 0.5,\r\n\t\\verbMix, 0.5,\r\n\t\\verbSize, 0.5,\r\n\t\\verbDamp, 0.5,\r\n\t\\vibratoRate, 2,\r\n\t\\vibratoMul, 0.01,\r\n\t\\dur, Pseq([3/8, 3/8, 1, 1/16, 1/16, 1/16], 5),\r\n);\r\n)\r\n\r\n// Spanish\r\n(\r\n~spanish = Pbind(\r\n\t\\instrument, \"plucking2.0\",\r\n\t\\scale, Scale.spanish,\r\n\t\\degree, Pseq([Pwhite([-7, -3, 1, 5], [-4, 0, 4, 8]), Pwhite([5, 1, -3, -7], [8, 4, 0, -4])], inf),\r\n\t\\ctranspose, 12,\r\n\t\\strum, 0.03,\r\n\t\\amp, 1.2,\r\n\t\\decay, 4,\r\n\t\\coef, 0.2,\r\n\t\\verbMix, 0.5,\r\n\t\\verbSize, 0.1,\r\n\t\\verbDamp, 0.5,\r\n\t\\vibratoRate, 0.2,\r\n\t\\vibratoMul, 100,\r\n\t\\dur, Pseq([3/4, 1/4, 1/2, 1/2], 3),\r\n);\r\n)\r\n\r\n// Mixolydian\r\n(\r\n~mixolydian = Pbind(\r\n\t\\instrument, \"plucking2.0\",\r\n\t\\scale, Scale.mixolydian,\r\n\t\\degree, Pwhite(0, 15),\r\n\t\\ctranspose, -12,\r\n\t\\amp, 2,\r\n\t\\decay, 7,\r\n\t\\coef, 0.4,\r\n\t\\verbMix, 0.5,\r\n\t\\verbSize, 0.9,\r\n\t\\verbDamp, 0.5,\r\n\t\\vibratoRate, 0.1,\r\n\t\\vibratoMul, 100,\r\n\t\\dur, Pxrand([1/3, 1/2, 1], 128/2),\r\n);\r\n)\r\n\r\n// Egyptian\r\n(\r\n~egyptian1 = Pbind(\r\n\t\\instrument, \"plucking2.0\",\r\n\t\\scale, Scale.egyptian,\r\n\t\\degree, Pseq([Pwhite([-7, -3, 1, 5], [-4, 0, 4, 8]), Pwhite([5, 1, -3, -7], [8, 4, 0, -4])], inf),\r\n\t\\ctranspose, 12,\r\n\t\\strum, 0.04,\r\n\t\\amp, 1.8,\r\n\t\\decay, 1,\r\n\t\\coef, 0.25,\r\n\t\\verbMix, 0.5,\r\n\t\\verbSize, 0.9,\r\n\t\\verbDamp, 0.5,\r\n\t\\vibratoRate, 0.1,\r\n\t\\vibratoMul, 100,\r\n\t\\dur, Pn(1/8, 32),\r\n);\r\n)\r\n\r\n(\r\n~egyptian2 = Pbind(\r\n\t\\instrument, \"plucking2.0\",\r\n\t\\scale, Scale.egyptian,\r\n\t\\degree, Pseq([Pwhite([-7, -3, 1, 5], [-4, 0, 4, 8]), Pwhite([5, 1, -3, -7], [8, 4, 0, -4])], inf),\r\n\t\\ctranspose, 12,\r\n\t\\strum, 0.06,\r\n\t\\amp, 12,\r\n\t\\decay, 0.1,\r\n\t\\coef, 0.25,\r\n\t\\verbMix, 0.5,\r\n\t\\verbSize, 0.9,\r\n\t\\verbDamp, 0.5,\r\n\t\\vibratoRate, 1,\r\n\t\\vibratoMul, 100,\r\n\t\\dur, Pn(1/4, 32),\r\n);\r\n)\r\n\r\n(\r\n~egyptian3 = Pbind(\r\n\t\\instrument, \"plucking2.0\",\r\n\t\\scale, Scale.egyptian,\r\n\t\\degree, Pseq([Pwhite([-7, -3, 1, 5], [-4, 0, 4, 8]), Pwhite([5, 1, -3, -7], [8, 4, 0, -4])], inf),\r\n\t\\ctranspose, 12,\r\n\t\\strum, 0.02,\r\n\t\\amp, 2.3,\r\n\t\\decay, 0.1,\r\n\t\\coef, 0.1,\r\n\t\\verbMix, 0.3,\r\n\t\\verbSize, 0.9,\r\n\t\\verbDamp, 0.5,\r\n\t\\vibratoRate, 2,\r\n\t\\vibratoMul, 0.1,\r\n\t\\dur, Pn(1/8, 32),\r\n);\r\n)\r\n\r\n// Freq1\r\n(\r\n~freq1 = Pbind(\r\n\t\\instrument, \"plucking2.0\",\r\n\t\\freq, Pwhite(0, 880),\r\n\t\\amp, 0.4,\r\n\t\\decay, 50,\r\n\t\\coef, 0.1,\r\n\t\\vibratoRate, Ppoisson(7.0),\r\n\t\\dur, Pseq([Prand([0.51, 0.1, 0.1], 4), Pwhite(0, 4, 4), Pwhite(0, 1, 4)], 2),\r\n\t\\pan, Pwhite(-1, 1)\r\n);\r\n)\r\n\r\n// Freq2\r\n(\r\n~freq2 = Pbind(\r\n\t\\instrument, \"plucking2.0\",\r\n\t\\freq, Pwhite(0, 880),\r\n\t\\amp, 0.35,\r\n\t\\decay, 50,\r\n\t\\coef, 0.1,\r\n\t\\vibratoRate, Pgauss(0.0, 1.0),\r\n\t\\dur, Pwrand([Prand([0.51, 0.1, 0.1], 4), Pwhite(0, 4, 8), Pwhite(0, 1, 4)], [0.9, 0.05, 0.05] , 4),\r\n\t\\pan, Pwhite(-1, 1)\r\n);\r\n)\r\n\r\n// Freq3\r\n(\r\n~freq3 = Pbind(\r\n\t\\instrument, \"plucking2.0\",\r\n\t\\freq, Pwhite(0, 880),\r\n\t\\amp, 0.5,\r\n\t\\decay, 50,\r\n\t\\coef, 0.1,\r\n\t\\vibratoRate, Pgauss(0.0, 100.0),\r\n\t\\dur, Pwrand([Prand([0.51, 0.1, 0.1], 4), Pwhite(0, 4, 1), Pwhite(0, 1, 1)], [0.5, 0.25, 0.25] , 10),\r\n\t\\pan, Pwhite(-1, 1)\r\n);\r\n)\r\n\r\n// Siren1\r\n(\r\n~siren1 = Pbind(\r\n\t\\instrument, \"plucking2.0\",\r\n\t\\freq, Pseq([Pseries(600, -4, 100), Pseries(100, 4, 1000)], 1),\r\n\t\\amp, 0.5,\r\n\t\\decay, 0.7,\r\n\t\\coef, 0,\r\n\t\\verbMix, 1,\r\n\t\\verbSize, 1,\r\n\t\\verbDamp, 0.01,\r\n\t\\dur, 0.04,\r\n\t\\pan, Pseq((1, 0.99 .. -1) ++ (-1, -0.99 .. 1), inf)\r\n);\r\n)\r\n\r\n// Siren2\r\n(\r\n~siren2 = Pbind(\r\n\t\\instrument, \"plucking2.0\",\r\n\t\\freq, Pseq([Pseries(600, 4, 100), Pseries(1000, -4, 100)], 1),\r\n\t\\amp, 6.4,\r\n\t\\decay, 0.1,\r\n\t\\coef, 0,\r\n\t\\verbMix, 1,\r\n\t\\verbSize, 0.8,\r\n\t\\verbDamp, 0.5,\r\n\t\\vibratoRate, 0.01,\r\n\t\\vibratoMul, 0.01,\r\n\t\\dur, 0.04\r\n);\r\n)\r\n\r\n// Ending\r\n(\r\n~up = Pbind(\r\n\t\\instrument, \"plucking2.0\",\r\n\t\\degree, 0,\r\n\t\\ctranspose, Pseries(24, 0.1),\r\n\t\\amp, Pseq([Pseries(0.7,0.1,3), Pseries(0.9,-0.1,3)], 24),\r\n\t\\decay, 1,\r\n\t\\coef, Pseq([Pseries(0.1,0.1,3), Pseries(0.9,-0.1,3)], 24),\r\n\t\\verbMix, 1,\r\n\t\\verbSize, 1,\r\n\t\\verbDamp, 0.9,\r\n\t\\vibratoRate, 1,\r\n\t\\vibroatoMul, 0.1,\r\n\t\\dur, 1/16\r\n);\r\n\r\n~down = Pbind(\r\n\t\\instrument, \"plucking2.0\",\r\n\t\\degree, 0,\r\n\t\\ctranspose, Pseries(24, -1),\r\n\t\\amp, Pseq([Pseries(0.7,0.1,1), Pseries(0.9,-0.1,1)], 64),\r\n\t\\decay, 1,\r\n\t\\coef, Pseq([Pseries(0.1,0.1,1), Pseries(0.9,-0.1,1)], 64),\r\n\t\\verbMix, 1,\r\n\t\\verbSize, 1,\r\n\t\\verbDamp, 0.9,\r\n\t\\vibratoRate, 10,\r\n\t\\vibroatoMul, 0.1,\r\n\t\\dur, 1/16\r\n);\r\n)",
   "author" : "Jonathan Coon",
   "name" : "Vanguard - A1: Karplus-Strong Synthesis (musc-115-pluck)",
   "description" : "This piece is a remix of my previous piece called \"Avant Garde\" in which a plucking synthesizer is used. In this piece, I have modified the plucking synth and have added more functionality, including reverb and vibrato control.\r\n\r\nListen to the piece here: https://soundcloud.com/jonathan-coon/vanguard-musc-115-pluck",
   "ancestor_list" : []
}
