PureData

せっかくなので、 @ さんが 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].
  1. Workspaceを開いて上記をコピー&ペーストし、選択してDo itする。
  2. 通信の確認用にTranscriptを開く。
PureDataをインストールしてPureData側の準備をする。

http://puredata.info/downloads/pd-extended からPd-Extendedをダウンロードしてインストールする。

PureDataを起動する。(コンソールが表示される)

20120619160728

Help から Browser… を選んでヘルプブラウザを出し、oscx/ を選んで右側の一覧から sendOSC-help.pd をダブルクリックする。

20120619160727

PureDataからPharoへの通信をチェックする
  1. sendOSC-help.pdで “connect localhost 9999” と書かれたメッセージをクリックすると、PureDataのコンソール画面に “sendOSC: connected to port localhost:9999 (hSock=21782528) protocol = UDP” のようなメッセージが表示される。
  2. 同様に、 “send /test/bla 1 2 3” と書かれたメッセージをクリックすると、PharoのTranscriptに an OSCMessage(‘/test/bla’ 1 2 3) のように表示されればOKである。
  3. 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である。