iOSCからのOSCメッセージ
3/6のCraftwife + KURONOZ用のプログラムを作っています。複数のiPhoneからのOSCコマンドをSuperColliderで受信します。SCでは、OSCResponderを使っているのですが、どういう風に記述したら、効率的なのだろう、とずっと考えていました。
iOSC上に3つのボタンがあるとして、それぞれのボタンに別のコマンドネームを割り当てるか(iOSCのデフォルトではそうなっている)、同じコマンドネームを割り当てボタンごとに出力する値を書き換えるか。コードは後者の方が短いし、効率的かな。iOSCは、こういう自由度が素晴らしいですなぁ。
////////////////////////////////////////////////////////////////////////////
// iOSCのデフォルトコマンド名にあった記述法
~oA1 = OSCresponder(nil, “/osc/button1A”, { |t,r,msg|
case
{msg[1] == 1} {”Abutton01_on2″.postln;}
{msg[1] == 0} {”Abutton01_off2″.postln;}
}).add;
~oA2 = OSCresponderNode(nil, “/osc/button2A”, { |t,r,msg|
case
{msg[1] == 1} {”Abutton02_on”.postln; }
{msg[1] == 0} {”Abutton02_off”.postln; }
}).add;
~oA3 = OSCresponderNode(nil, “/osc/button3A”, { |t,r,msg|
case
{msg[1] == 1} {”Abutton03_on”.postln; }
{msg[1] == 0} {”Abutton03_off”.postln; }
}).add;
////////////////////////////////////////////////////////////////////////////
// 私の場合は、下記の様に書いた方が効率よいかな?
~oa = OSCresponderNode(nil, “/osc/deviceA”, { |t,r,msg|
case
{msg[1] == 0} {”Abutton01_on”.postln;}
{msg[1] == 1} {”Abutton01_off”.postln;}
{msg[1] == 2} {”Abutton02_on”.postln; }
{msg[1] == 3} {”Abutton02_off”.postln; }
{msg[1] == 4} {”Abutton03_on”.postln; }
{msg[1] == 5} {”Abutton03_off”.postln; }
}).add;
Posted: 2月 21st, 2010 under 日々のSC, 日記?.
Comments: none
Write a comment