[Diary/2012/July]

セルラオートマタのルールの最適化 / 2012-07-20 (金)

今日

昨日からの持ち越しのJSSA会報のミスの修正.
完成.すごいぞ,研究会2日前に校正までして全アップは初めてじゃないか.

残りの時間練習と少しSuperColliderの新たな試み.
セルラオートマタのルール部分の最適化をSuperColliderで書き始める.

SuperColliderに関係して,3.5から,OSC受信のメソッドが変わったらしい.
新しいOSC:OSCdefや、受信ポートの指定

n = NetAddr(”10.0.0.8″, nil); // 送信元のiPhoneのIPアドレス
m = NetAddr(”10.0.0.9″, nil); // 送信元のiPadのIPアドレス

// iPhone_tn8という名前のOSCdefを作る
OSCdef(\iPhone_tn8, {|msg, time, addr, recvPort| 
“iPhone : got it”.postln; msg.postln; 
}, ‘/event’, n); 
// iPhoneからのメッセージを受け取る

// iPad_kr9という名前のOSCdefを作る
OSCdef(\iPad_kr9, {|msg, time, addr, recvPort| 
“iPad : i got it”.postln; msg.postln; 
}, ‘/event’,m); // iPadからのメッセージを受け取る

OSCdef(\iPhone_tn8).disable; // iPhoneの方だけ受信をやめる
OSCdef(\iPhone_tn8).enable;// iPhoneの方だけ受信を再開

// OSCメッセージ受信時の挙動(Function)を変える

OSCdef(\iPhone_tn8, {|msg, time, addr, recvPort| 
“iPhone : change the respond”.postln; addr.postln; 
}, ‘/event’, n); // def style

OSCdef(\iPad_kr9, {|msg, time, addr, recvPort| 
“iPad : change the respond”.postln; addr.postln; 
}, ‘/event’,m); // def style

// 終了する
OSCdef(\iPhone_tn8).free; // unregister OSCdef

OSCdef(\iPad_kr9).free;




それから受信ポートの変更(LangPortの変更ではないことに注目)

// ポート1234へのメッセージを受信する
OSCFunc({|msg, time, addr, recvPort| msg.postln;}, ‘/chat’, nil,1234);

// 自分のマシンのポート1234へメッセージを送信する
m= NetAddr(”127.0.0.1″, 1234);
e.sendMsg(”/chat”, “hi how are you?”,100 ,999);

NetAddr.langPort; // langPort番号をみてみる

つまり,OSCのResponderもSynthDefみたいな形で書くように,とのこと.
より,SC3ぽい書き方だ.