//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 */ |