{
   "author" : "arievvdv",
   "name" : "Navigations SC code",
   "description" : "Performance patch for my piece for viola and transducers \"Navigations\"",
   "ancestor_list" : [],
   "labels" : [],
   "is_private" : 1,
   "id" : "1-5h3-vlYENtGNU8",
   "code" : "Server.default.options.outDevice_(\"External Headphones\")\r\ns.boot\r\n\r\n\r\n(\r\n(SynthDef(\\pulse, {\r\n\targ atk=0.1, sus=0, rel=0.5, c1=1, c2=(-1), detune=0.2,\r\n\tfreq=500, cf=400, rq=0.1, pan=0, amp=0.25, out=0;\r\n\tvar sig, env;\r\n\tenv = EnvGen.kr(Env.perc(0.01, rel), doneAction:2);\r\n\tsig = Pulse.ar(freq, 0.3, mul: amp) + Saw.ar(freq * 2, amp / 2);\r\n\tsig = RLPF.ar(sig, cf * env);\r\n\tsig = Pan2.ar(sig, pan);\r\n\tsig = sig * env * amp * 0.5;\r\n\tOut.ar(out, sig);\r\n}).add;\r\n);\r\n(\r\nSynthDef(\\fm, {\r\n\targ carHz=500, modHz=100, modAmp=200, atk=0.01, rel=1, amp=0.2, pan=0;\r\n\tvar car, mod, env;\r\n\tenv = EnvGen.kr(Env.perc(atk, rel), doneAction: 2);\r\n\tmod = SinOsc.ar(modHz, mul:modAmp);\r\n\tcar = SinOsc.ar(carHz + mod) * env * amp;\r\n\tcar = FreeVerb.ar(car, 0.3, 0.8);\r\n\tcar = Pan2.ar(car, pan);\r\n\tOut.ar(0, car)\r\n}).add;\r\n);\r\n\r\n(SynthDef(\\sine, {\r\n\targ atk=0.1, sus=0, rel=0.5, c1=1, c2=(-1), detune=0.2,\r\n\tfreq=500, cf=1500, rq=0.1, pan=0, amp=0.25, out=0;\r\n\tvar sig, env;\r\n\tenv = EnvGen.kr(Env.perc(0.01, rel), doneAction:2);\r\n\tsig = SinOsc.ar(freq, mul: amp);\r\n\tsig = Pan2.ar(sig, pan);\r\n\tsig = sig * env * amp;\r\n\tOut.ar(out, sig);\r\n}).add;\r\n);\r\n\r\n\r\n(SynthDef(\\saw, {\r\n\targ atk=0.1, sus=0, rel=1, c1=1, c2=(-1), detune=0.2,\r\n\tfreq=500, cf=1500, rq=0.1, pan=1, amp=0.25, out=0;\r\n\tvar sig, env;\r\n\tenv = EnvGen.kr(Env([0, 1,1, 0], [atk, sus, rel]), doneAction:2);\r\n\tsig = Saw.ar(freq, mul: amp);\r\n\tsig = Pan2.ar(sig, pan);\r\n\tsig = sig * env * amp;\r\n\tOut.ar(out, sig);\r\n}).add;\r\n);\r\n\r\n(SynthDef(\\sinepad, {\r\n\targ atk=0.1, sus=0, rel=1, c1=1, c2=(-1), detune=0.2,\r\n\tfreq=500, cf=1500, rq=0.1, pan=1, amp=0.25, out=0;\r\n\tvar sig, env;\r\n\tenv = EnvGen.kr(Env([0, 1,1, 0], [atk, sus, rel]), doneAction:2);\r\n\tsig = SinOsc.ar(freq, mul: amp);\r\n\tsig = Pan2.ar(sig, pan);\r\n\tsig = sig * env * amp;\r\n\tOut.ar(out, sig);\r\n}).add;\r\n);\r\n\r\n(SynthDef(\\sawbpf, {\r\n\targ atk=2, sus=0, rel=3, c1=1, c2=(-1), detune=0.2,\r\n\tfreq=500, cf=1500, rq=0.1, pan=1, amp=0.25, out=0;\r\n\tvar sig, env;\r\n\tenv = EnvGen.kr(Env([0,1,1,0],[atk,sus,rel],[c1,0,c2]),doneAction:2);\r\n\tsig = Saw.ar(freq * {LFNoise1.kr(0.5,detune).midiratio});\r\n\tsig = BPF.ar(sig, cf, rq);\r\n\tsig = Pan2.ar(sig, pan);\r\n\tsig = sig * env * amp;\r\n\tOut.ar(out, sig);\r\n}).add;\r\n);\r\n(\r\n(SynthDef.new(\\blip, {\r\n\targ out, fund=300, dens=1, decay=0.2,  amp=0.5, width = 0.5, pan=0;\r\n\tvar freq, trig, sig;\r\n\tfreq = LFNoise0.kr(3).exprange(fund,fund*3).round([fund, fund * 1.5, fund * 2, fund * 3, (fund * 3)/2,]);\r\n\tsig = Pulse.ar(freq, width * {LFNoise1.kr(0.5!8)});\r\n\ttrig = Dust.kr(dens);\r\n\tsig = RLPF.ar(sig, amp * 500 * EnvGen.kr(Env.perc(0.01, decay), trig), 2);\r\n\tsig = sig * EnvGen.kr(Env.perc(0.01, decay), trig, doneAction: 2) * amp;\r\n\tsig = Pan2.ar(sig, pan);\r\n\tsig = HPF.ar(sig, 80);\r\n\tOut.ar(out, sig);\r\n})).add;\r\n)\r\n)\r\ns.boot\r\n\r\n(\r\n\r\n(\r\n~p = Pbind(\r\n\t\\instrument, \\sine,\r\n\t\\sus, 1,\r\n\t\\freq, 62,\r\n\t\\dur, 1/1,\r\n\t\\amp, Pseq([0.1, 0, 0, 0, 0.1, 0.2, 0.3, 0.5, 0.6, 0.7, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.7, 0.5, 0.3, 0.2], inf),\r\n\t\\pan, -1\r\n);\r\n);\r\n\r\n\r\n\r\n(\r\n\r\n\t~s2 = Pbind(\r\n\t\t\\instrument, \\sawbpf,\r\n\t\t\\dur, Prand([ 5, 4, 6, 2], inf),\r\n\t\t\\freq, Pseq([\r\n\t\t\t[124, 186, 313, 325], [157.5, 232.5, 469.5, 325, 313], [20, 30, 626, 650, 634], [3,5,7], [626,650,634,630,680], [4,5,6,7,8,9,10,11,12,13,14]] / 2, inf),\r\n\t\t\\cf, Pexprand(100, 10000),\r\n\t\t\\detune, Pwhite(0.1,0.6),\r\n\t\t\\rq, Pwhite(0.1, 1),\r\n\t\t\\atk, Pwhite(2, 9),\r\n\t\t\\rel, Pwhite(6, 20),\r\n\t\t\\amp, Pwhite(0.05, 0.1)\r\n\t);\r\n);\r\n\r\n(~s = Pbind(\\instrument, \\sawbpf,\r\n\t\\freq, Pseq([[124, 186, 313, 325], [62, 93, 156, 162], [31, 48, 78, 81, 313, 186]], inf),\r\n\t\\atk, Pwhite(2, 15, inf),\r\n\t\\rq, Pwhite(0.1, 0.7, inf),\r\n\t\\cf, Pexprand(100, 3000),\r\n\t\\dur, Pwhite(10, 40, inf),\r\n\t\\rel, Pkey(\\dur, inf),\r\n\t\\amp, 0.10,\r\n\t\\pan, 1,\r\n)\r\n);\r\n\r\n(\r\n\r\n~c = Pbind(\r\n\t\t\\instrument, \\sawbpf,\r\n\t\t\\dur, Prand([ 5, 4, 6, 2], 30),\r\n\t\t\\freq, Pseq([\r\n\t\t[2, 3, 5, 7], [3,5], [12, 15]], inf),\r\n\t\t\\detune, Pwhite(0.1,0.6),\r\n\t\t\\rq, Pwhite(0.1, 1),\r\n\t\\cf, Pexprand(100, 3000),\r\n\t\t\\atk, Pwhite(2, 9),\r\n\t\t\\rel, Pwhite(6, 20),\r\n\t\t\\amp, Pwhite(0.01, 0.1),\r\n\t\\pan, -1,\r\n)\r\n);\r\n(\r\n\r\n~b = (Pbind(\\instrument, \\blip,\r\n\t\t\t\\width, Prand([0.2, 0.4, 0.5, 0.6, 0.8], inf),\r\n\t\t\t\\decay, Pwhite(0.1, 1, inf),\r\n\t\t\\fund, Pseq([[124,186], [186,313], [313,325], [124, 313, 325], [124, 186, 313, 325, 252, 158, ]] * 3, inf),\r\n\t\t\t\\dur, Prand([ 5, 4, 6, 2], inf),\r\n\t\t\t\\dens, Pwhite(Env([0.5, 1, 1], [200, 300]),\r\n\t\t\tEnv([0.2, 8, 2], [200, 300])),\r\n\t\t\\amp, Pbrown(0.5, 0.8, 0.05, inf),\r\n)));\r\n\r\n(\r\n~f = Pbind(\r\n\t\\instrument, Pwrand([\\pulse, \\sine, \\fm],[3,2,5].normalizeSum, inf),\r\n\t\\dur, Pbrown(0.03,0.2, 0.2, 40),\r\n\t\\freq, 63 * Pxrand([20, 21, 22], inf),\r\n\t\\carHz, 63,\r\n\t\\modHz, 63 * Pxrand([5, 4, 3, 19, 20, 21, 22, 48, 49, 40], inf),\r\n\t\\modAmp, Pexprand(200, 1000),\r\n\t\\rel, Pwhite(0.05, 0.7, inf),\r\n\t\\cf, Pexprand(Pkey(\\freq), Pkey(\\freq) * 4),\r\n\t\\atk, 0.001,\r\n\t\\amp, Penv([0.01,0.3,0.01], [0.001, 4], 'exp')\r\n);\r\n);\r\n\r\n\r\n(\r\nPbind(\r\n\t\\instrument, Pwrand([\\pulse, \\sine, \\sawbpf, \\fm],[1,2,1,5].normalizeSum, inf),\r\n\t\\dur, Pwrand([Pbrown(0.5, 2, 0.3, 13), Pbrown(0.87, 10, 0.4, 6), Pbrown(0.2, 1.5, 0.4, 4), Pseq([2, 4, 2], 4)], [8, 4, 2, 6].normalizeSum, inf),\r\n\t\\freq, 63 * Pxrand([0.5,1, 3, 6, 4, 5, 6, 7, 11, 12, 14, 20], inf),\r\n\t\\carHz, 63 * Pxrand([0.5, 1, 3, 6, 4, 5, 6, 7, 11, 12, 14, 20], inf),\r\n\t\\modHz, 63 * Pxrand([3, 6, 4, 5, 6, 7, 11, 12, 14, 20], inf),\r\n\t\\modAmp, Pexprand(200, 1000),\r\n\t\\rel, Pwrand([1, 2, 8], [4, 2, 1], inf),\r\n\t\\cf, Pexprand(Pkey(\\freq), Pkey(\\freq) * 4),\r\n\t\\atk, 0.001,\r\n\t\\amp, Pwrand([Pwhite(0.02, 0.40, 50), Pseq([0], 20)], [1, 3], inf),\r\n);\r\n)\r\n)\r\n\r\ns.reboot\r\n//clicks - one minute\r\n//Explore instrument with FM\r\n//explore strings with FM, transition to saw\r\n//bring in Pulse\r\n//Rhythmic saw bits, slowly incorporate pizz and bow\r\n//switch to saw2, continue\r\n//turn off pulses, turn on clicks, start QT player\r\n//Phase out saw2\r\n//listen to clicks w qt player - eventually join in\r\n\r\n~fmenv = ~f.play\r\n~blips = ~b.play\r\n~pulses = ~p.play\r\n~clicks = ~c.play\r\n~saw = ~s.play\r\n~saw2 = ~s2.play\r\n\r\n~saw2.stop\r\n~saw.stop\r\n~blips.stop\r\n~clicks.stop\r\n~pulses.stop\r\n\r\ns.meter\r\ns.reboot"
}
