せっかくなので、 @goonsh さんが http://goonsh.ddo.jp/fg/2008/06/14/squeak-osc-pd で紹介されているように、PureDataとの通信を試してみる。
PureDataからPharoへの通信
Pharo側の準備をする。
server := OSCServer listenOnPort: 9999. server when: #messageReceived evaluate: [:msg | Transcript cr; show: msg].
- Workspaceを開いて上記をコピー&ペーストし、選択してDo itする。
- 通信の確認用にTranscriptを開く。
PureDataをインストールしてPureData側の準備をする。
http://puredata.info/downloads/pd-extended からPd-Extendedをダウンロードしてインストールする。
PureDataを起動する。(コンソールが表示される)
Help から Browser… を選んでヘルプブラウザを出し、oscx/ を選んで右側の一覧から sendOSC-help.pd をダブルクリックする。
PureDataからPharoへの通信をチェックする
- sendOSC-help.pdで “connect localhost 9999” と書かれたメッセージをクリックすると、PureDataのコンソール画面に “sendOSC: connected to port localhost:9999 (hSock=21782528) protocol = UDP” のようなメッセージが表示される。
- 同様に、 “send /test/bla 1 2 3” と書かれたメッセージをクリックすると、PharoのTranscriptに an OSCMessage(‘/test/bla’ 1 2 3) のように表示されればOKである。
- PharoのWorkspaceで、 server terminate. をDo itしてOSCServerを止める。
PharoからPureDataへの通信
PureDataのヘルプブラウザで dumpOSC-help.pd をダブルクリックする。
EditメニューでEdit modeを選んだら、再度Edit modeを選ぶ。このとき、PureDataのコンソール画面に ” dumpOSC 9999 … couldn’t create” のようなメッセージが出る場合には、ポート番号=9999でOSCServerが動いている。前述のようにPharoのWorkspaceでOSCServerを止めるか、Edit modeに戻した上でdumpOSCのパラメータを9999以外の値にする。
Pharoのワークスペースで、以下をコピー&ペーストし、Do itする。
msg := OSCMessage for: {'/test'. 200. 300. 400}. msg sendTo: NetNameResolver localHostAddress port: 9999.
PureDataのコンソール画面に “rcvOSC: /test 200 300 400” が表示されればOKである。