s.boot(); ~gW = 0; ~gX = 0; ~gY = 0; ~gZ = 0; ( z = { arg f=440, amp=1, phase=0; var so; so = SinOsc.ar(f, phase) * amp; }.play; ) ( y = { arg f=440, amp=1, phase=0; var so; so = SinOsc.ar(f, phase) * amp; }.play; ) // WW // Receiver function ( o = OSCFunc({ arg msg, time, addr, recvPort; //[msg, time, addr, recvPort].postln; ~gX = msg[1]; ~gY = msg[2]; ~gZ = msg[3]; ~gW = msg[0]; z.set(\f, ~gX * 800); y.set(\f, ~gY * 800); y.set(\phase, ~gZ); }, '/quaternion/', n); ) // ENDWW