//impulse network part ( var nodes, me; me = "julian"; OSCPort.closeAll; nodes = OSCNode.tree([ [\hello, { arg node, mess; mess.postln; } ], [\click, { arg node, dur=0.1; z.source = dur; p.gate }] ]); OSCInPort.new(55555, nodes); n = [\julian, \john, \ianmike, \pavellloyd, \free]; x = ["192.168.0.120", "192.168.0.116","192.168.0.93","192.168.0.122","192.168.0.123"]; x = x.collect({ arg ip; OSCOutPort.new(55555, ip); }); f = { arg who, message, a, b, c; x.at(n.indexOf(who)).send(message, a, b, c); }; g = { arg who, string; f.value(who, "/hello", me ++ ": " ++ string); }; b = { arg string; x.do({ arg port; port.send("/hello", me ++ ": " ++ Char.tab ++ string) }); }; ) ( Synth.play({ var out; p = Plug.ar(0,0); z = Plug.kr(1); out = Decay2.ar(p, 0.002, 1*z, Impulse.ar(Lag.kr(p, z*0.1, 100*z, 100*z.max(2)), 1)); out = Pan2.ar(BPF.ar(out*100, Decay2.kr(p, 0.1*z, 0.01*z, 1, 1)*3000+100, 0.6), LFClipNoise.ar(100/(z+1))) }); ) g.value(\pavellloyd, "well, no"); f.value(\free, "/hello", "hi!"); b.value("try that: { Formant.ar(10, 200, 300, 0.1) }.play; "); b.value("life is short, art is long"); b.value(""); f.value(\julian, "/click", 1.2); f.value(\pavellloyd, "/click", 0.2); f.value(\ianmike, "/click", 0.2); f.value(\free, "/click", 0.1); f.value(\john, "/click", 1.1); p.gate; Task.new({ 15.do({ arg i; f.value(\john, "/click", (1-(i/15))); 0.21.wait; }); }); Task({ 15.do({ arg i; f.value(\julian, "/click", (1-(i/15))/1); 0.011.wait; }); }); ******/* authors so far: jrh */ |