{
   "labels" : [
      "gui",
      "hypnosis"
   ],
   "id" : "1-1Uv",
   "is_private" : null,
   "code" : "(\r\nvar size = 5;\r\nvar side = 108;\r\nvar w = Window('hypno-sliderz', Rect(50,50,size*(side+5),size*(side+5))).front;\r\nw.addFlowLayout();\r\n~sliders = Array.fill(size.squared, { Slider2D( w.view,side@side ) });\r\n~nodes = Array.fill(size.squared, { |i| Ndef('nd'++i, { |x,y,m,n,amp=1|\r\n\tPan2.ar(\r\n\t\tPMOsc.ar(\r\n\t\t\tx.linexp(-1,1,20,15000),\r\n\t\t\ty.linexp(-1,1,25,250),\r\n\t\t\tLFSaw.kr(SinOsc.kr(1/size.squared).exprange(1/size,size)).range(0,size)\r\n\t\t),\r\n\t\ti.mod(size).linlin(0,4,-1,1),\r\n\t\tamp/(size.squared * 2)\r\n\t)\r\n}).play });\r\n~task = Routine( { var t = 0; var sz = 0; loop {\r\n\tt = t + 45;\r\n\tsz = sz + ((t/250).sin.abs * 5);\r\n\t~sliders.do({ |i,n| \r\n\t\ti.background = 0.5.coin.if({ Color.rand }, { Color((t>>n).cos/2+0.5,(n&t).cos/2+0.5,(t|n).cos/2+0.5) }); \r\n\t\ti.knobColor = Color([0,1].choose,[0,1].choose,[0,1].choose);\r\n\t\ti.setXY(\r\n\t\t\t(n * 10 + ((n.mod(2) * 2 - 1) * t / 180)).sin/2 * ((sz/145).cos/2+0.5) + 0.5,\r\n\t\t\t(n * 10 + ((n.mod(2) * 2 - 1) * t / 180)).cos/2 * ((sz/145).cos/2+0.5) + 0.5\r\n\t\t);\r\n\t\ti.resizeTo(side - 5 + (sin(n+t)*5), side - 5 + (cos(n+t)*5));\r\n\t\ti.moveTo(i.bounds.left + (cos(n+t)*2), i.bounds.top + (sin(n+t)*2));\r\n\t\t~nodes[n].set(*[x: sin(n+t), y: cos(n+t), amp: 0.7.rrand(1)]);\r\n\t});\r\n\t(1/25).wait;\r\n}}).play(AppClock);\r\nw.onClose = { \r\n\t~task.stop;\r\n\t~nodes.do({|i| i.clear(size.sqrt) });\r\n};\r\n)",
   "name" : "hypno-sliderz",
   "author" : "vividsnow",
   "description" : "bizzare idea ) tested under sc3.5 qt gui",
   "ancestor_list" : []
}
