{
   "description" : "Genera dos tonos independientes para cada oido.\r\nSi lo vemos en el scope en modo X/Y podemos observar figuras de Lissajous",
   "ancestor_list" : [],
   "author" : "lambda",
   "name" : "moving sound",
   "code" : "//////////\r\n///////////////\r\n////////////////\r\n\r\n// sinte cero\r\n\r\n(\r\nSynthDef(\\cero,{arg freq1=200, freq2=200, phase1=0, phase2=0, gate=0;   //make sure there are control arguments to affect!\r\n // var x, y;\r\n  // x = SinOsc.ar(freq1, phase1);\r\n  // y = SinOsc.ar(freq2, phase2) ;\r\n  Out.ar(0,SinOsc.ar(freq1, phase1));\r\n  Out.ar(1,SinOsc.ar(freq2, phase2));\r\n\r\n\r\n\r\n}).add;\r\n\r\n)\r\n\r\n// ejecutor cero\r\ns.scope;\r\n\r\n(\r\n\r\nvar w, f1S, f2S, p1S, p2S;\r\n\r\n\r\na = Synth(\"cero\");\r\n\r\n\r\n///// GUI//////////////\r\n///////////////////\r\n////////////////////////////\r\nw=Window(\"sineVisualizer\", Rect(100, 400, 400, 300));\r\n\r\nw.view.decorator = FlowLayout(w.view.bounds);\r\n\r\nf1S= EZSlider(w, 300@50, \"freq 1\", ControlSpec(0, 2000, 'linear',0.1, 200), {|ez|\r\na.set(\\freq1, ez.value)});\r\nw.view.decorator.nextLine;\r\n\r\np1S= EZSlider(w, 300@50, \"phase 1\", ControlSpec(0, 2*pi, 'linear',0.1, 0), {|ez|\r\na.set(\\phase1, ez.value)});\r\nw.view.decorator.nextLine;\r\n\r\nf2S= EZSlider(w, 300@50, \"freq2\", ControlSpec(0, 2000, 'linear', 0.10, 200), {|ez|\r\na.set(\\freq2, ez.value)});\r\nw.view.decorator.nextLine;\r\n\r\n\r\np2S= EZSlider(w, 300@50, \"phase 2\", ControlSpec(0, 2*pi, 'linear',0.1, 0), {|ez|\r\na.set(\\phase2, ez.value)});\r\n\r\nw.front;\r\n\r\n\r\n)\r\n\r\n\r\n// ejecutor cero con menor rango (pero mas presicion)\r\n\r\n(\r\n\r\nvar w, f1S, f2S, p1S, p2S;\r\n\r\n\r\na = Synth(\"cero\");\r\n\r\n\r\n///// GUI//////////////\r\n///////////////////\r\n////////////////////////////\r\nw=Window(\"sineVisualizer\", Rect(100, 400, 400, 300));\r\n\r\nw.view.decorator = FlowLayout(w.view.bounds);\r\n\r\nf1S= EZSlider(w, 600@50, \"freq 1\", ControlSpec(500, 600, 'linear',0.1, 200), {|ez|\r\na.set(\\freq1, ez.value)});\r\nw.view.decorator.nextLine;\r\n\r\np1S= EZSlider(w, 300@50, \"phase 1\", ControlSpec(0, 2*pi, 'linear',0.1, 0), {|ez|\r\na.set(\\phase1, ez.value)});\r\nw.view.decorator.nextLine;\r\n\r\nf2S= EZSlider(w, 600@50, \"freq2\", ControlSpec(500, 600, 'linear', 0.10, 200), {|ez|\r\na.set(\\freq2, ez.value)});\r\nw.view.decorator.nextLine;\r\n\r\n\r\np2S= EZSlider(w, 300@50, \"phase 2\", ControlSpec(0, 2*pi, 'linear',0.1, 0), {|ez|\r\na.set(\\phase2, ez.value)});\r\n\r\nw.front;\r\n\r\n\r\n)",
   "is_private" : null,
   "id" : "1-5dp",
   "labels" : [
      "lissajous"
   ]
}
