Pd (Pure Data) と OSC
特盛り Pd-[\d\.]+-extended には OSC を使うオブジェクトが組み込まれている.これらは extra 扱いなので, pd-vanillae には含まれていない[Pd 上では (Squeak も) OSC は UDP を介して通信を行う.他に netsend や netreceive という通信用オブジェクトがあり, TCP (UDP も) を介した通信を行うことができる.これらは標準で組込まれているので, pd-vanillae でも使用できる.
- Netsend -- send Pd messages over a network
The Netsend object connects to another machine over the network for sending TCP ("stream") or UDP ("datagram") messages. An outlet reports whether the connection is open or not. A connection request should specify the name or IP address of the other host and the port number. There should be a "Netreceive" on the remote host with a matching port number.
- Netreceive -- listen for incoming messages from network
The Netreceive object opens a socket for TCP ("stream") or UDP ("datagram") network reception on a specified port. If using TCP \, an outlet gives you the number of Netsend objects (or other compatible clients) have opened connections here.
Incoming network messages appear on "receive" objects \; it's up to the sender to select which one. Here \, a "receive foo" fields messages sent from the Netsend help window \, q.v.
There are some possibilities for intercommunication with other programs... see the help for "netsend."
SECURITY ALERT: don't publish the port number of your netreceive unless you wouldn't mind other people being able to send you messages.
準備するもの
実験材料は以下のとおり.
- sq3.10.1-7175dev08.06.1
- Squeak OSC OSC-SimonHolland.14.mcz
- Pd-0.39.3-extended, Pd-0.40.3-extended-rc1
まず Squeak の方. Squeak OSC は dev 版には含まれていないので,要インストール. SqueakMap に置いてある SimonHolland.14 版 (23 Sept 2007) を使う. SqueakSource では Release ページに置いてある.イメージは,あえて 3.10 ベース Squeak-dev の 08.06.1[Squeak OSC は 3.9 までしかテストされてないようなので.]. VM は現時点最新の 3.8.18beta4U. Pd の方はいずれも extended で stable の 0.39.3 と 0.40.3 の RC1 (笑).あと,システム環境設定でポートを開けとくのを忘れないように[システム環境設定 -> 共有 -> ファイアウォール で新規なり編集なり. UDP ポートを二つ開けておく.].
繋ぐ
結論からいうと,あっさり動いた (笑).
Pd-0.39.3-extended <-> Squeak (3.10.1)
- Pd-0.39.3-extended から sq3.10.1-7175dev08.06.1 へ送信.まず Squeak 上で
OSCServer
を起動しておき,次いで Pd のパッチ sendOSC-help.pd[ヘルプ・プラウザから 5.reference -> oscx.] から Squeak 側に接続してメッセージを流す (send /foobar). Squeak の Transcript に送信されて来たメッセージが表示されている. - sq3.10.1-7175dev08.06.1 から Pd-0.39.3-extended へ送信.今度は逆方向. Pd 側で受信ポートに接続して待ち受ける. Squeak の方は
OSCMessage
クラスから例題メソッドを連続して送信する (Shout Workspace). Pd 側は dumpOSC-help.pd で受信.受信内容が Pd コンソールに表示されている.途中,/
で始まってないメッセージが送られて来ているので,invalid message pattern
だとお怒りのご様子.
Pd-0.40.3-extended-rc1 <-> Squeak (3.10.1)
- Pd-0.40.3-extended-rc1 から sq3.10.1-7175dev08.06.1 へ送信.手順は Pd-0.39.3-extended と同様. Pd-0.40.3-extended-rc1 は見た目の印象がちょい変わった.
- sq3.10.1-7175dev08.06.1 から Pd-0.40.3-extended-rc1 へ送信. Pd-0.39.3-extended では
invalid message pattern
と怒られた/
なしメッセージは素通し.
と,まぁ,こんな感じ. Pd と Squeak (MMM) の連係も可能っつ〜こってすな.しかし,おっそろしい程にファンがブン回るな…….どうでもエエが, OSC (OpenSoundControl) って, oscillator だったり, Open Source Consortium だったり, Open Source Conference だったり, Oxford Synthesiser Company だったりしてややこしい.
0 件のコメント:
コメントを投稿