{
   "code" : "(\r\nSynthDef(\\sin, { arg out=0, gate=1, amp=0.1, pan=0, freq=200;\r\n\tvar sig;\r\n\tsig = SinOsc.ar(freq);\r\n\tsig = sig * EnvGen.kr(\\adsr.kr(Env.adsr(0.1,0.1,0.8,0.1)), gate, doneAction:2);\r\n\tsig = Pan2.ar(sig, pan, amp);\r\n\tOut.ar(out, sig);\r\n}).add;\r\n);\r\n\r\n(\r\n// sequence Envs\r\n// need [] else it is inlined or does pattern multichannel expansion\r\nPdef(\\demo, \r\n\tPbind(\r\n\t\t\\instrument, \\sin,\r\n\t\t\\degree, Pseq([0, Pwhite(0,7,1)],inf),\r\n\t\t\\legato, 0.5,\r\n\t\t\\adsr, Pseq([\r\n\t\t\t[ Env.adsr(1.1,0.1,0.8,1.01) ],\r\n\t\t\t[ Env.adsr(0.01,0.1,0.8,0.01) ],\r\n\t\t\t[ Env.adsr(0.01,1.1,0.3,0.01) ],\r\n\t\t],inf),\r\n\t)\r\n).play;\r\n);\r\n\r\n(\r\n// interpolate using Pseg\r\n// need .asArray\r\nPdef(\\demo, \r\n\tPbind(\r\n\t\t\\instrument, \\sin,\r\n\t\t\\degree, Pseq([0, Pwhite(0,7,1)],inf),\r\n\t\t\\legato, 0.5,\r\n\t\t\\adsr, Pseg(Pseq([\r\n\t\t\t[ Env.adsr(1.1,0.1,0.8,1.01).asArray ],\r\n\t\t\t[ Env.adsr(0.01,0.1,0.8,0.01).asArray ],\r\n\t\t\t[ Env.adsr(0.01,1.1,0.3,0.01).asArray ],\r\n\t\t],inf),8),\r\n\t)\r\n).play;\r\n);",
   "is_private" : null,
   "id" : "1-5iP",
   "labels" : [
      "pattern",
      "interpolation"
   ],
   "ancestor_list" : [],
   "description" : "For a long time, I thought it was impossible to use Pseg to interpolate between Envs like it does with simple values, but I discovered it only needs .asArray",
   "name" : "Interpolate between Envs with Pseg",
   "author" : "grirgz"
}
