移転したのに何も書かないのもなんなので、最近やっているプロジェクトで使っているOpen Sound Control (OSC) というデータ通信プロトコルについて書いてみます。
Sound Controlという名前からなんとなく想像がつくかもしれませんが、OSCは本来、ソフト/ハードシンセへの入出力をネットワーク経由で行うことを目的として、MIDIの代替を目指して考案された規格です。ただ、様々なソフトウェアやプログラミング言語でOSCを使った通信ライブラリが用意されているので、複数のソフトウェアを組み合わせて、特に複数のマシンにまたがって動作させるシステムを作る場合にもとても便利です。
たとえばModulobeでは、モデルが歩く音、地面をすべる音、ユーザがモデルをドラッグしたときの効果音をMax/MSPで鳴らすために、modulobe.exe本体からそれらに対応したメッセージを送信しています。それ以外に、外部からドラッグ用のメッセージの受信も行い、外部の特別なハードウェアでモデルのドラッグが行えるようにもなっています。
また、ぬいぐるみジェスチャでは、カメラからの画像を処理して登録したぬいぐるみの認識と追跡を行うプログラム、登録したぬいぐるみの動きを受け取ってジェスチャ認識をするプログラム、ジェスチャコマンドを受け取るアプリケーションプログラムそれぞれの間でOpenSoundControlを使って通信をしています。別々のプログラムにすることで、アルゴリズムを入れ替えたり、アプリケーションをMP3プレイヤから、USBリモコンを使って実際のテレビを操作するプログラムへ変更したりすることが可能になります。
眠くなったので、OSCで具体的にどんなデータが送受信できるかについては、また次回。