{
   "ancestor_list" : [],
   "description" : "Idea: network of loosely connected nodes. Each node has a dedicated pulse rate / phase. Inducing an irregular trigger signal influences the nodes to (gradually) adapt their pulsation freq (and phase?) to the one of the input.\r\nsound example: https://soundcloud.com/lfsaw/sync-weakconnection-tduty-time",
   "name" : "network of loosely connected nodes",
   "author" : "LFSaw",
   "code" : "(\r\nNdef(\\nodeTest, {\r\n\t // the input\r\n\tvar input = Impulse.ar([1, 3, 5].reciprocal, phase: [0, 0.133, 0.5]).sum;\r\n\r\n\t// the nodes, each takes its predecessor as input and estimates the duration between two events. \r\n\t// Unfortunately, the starting point of Timer is '0' which we have to put into reasonable limits. System settles after about 15 seconds\r\n\tvar nodes = (1..10).inject([input], {|last, item| \r\n\t\t[TDuty.ar(max(0.25, Timer.ar(last.first)), 0, 1)] ++ last\r\n\t});\r\n\r\n\t// add a pitch to each\r\n\tnodes = nodes.collect{|node, i|  SinOsc.ar((4000 + (i*500))) * Decay2.ar(node, 0.01, 0.2)};\r\n\r\n\t// splay in stereo field\r\n\tSplay.ar(nodes);\r\n\r\n}).play\r\n)",
   "is_private" : null,
   "id" : "1-4Tw",
   "labels" : [
      "synchronisation",
      "weak connection"
   ]
}
