OSCを共有する osc-hub というのを作った
openFrameworks や Max/MSP, SuperCollider などで良く使われるメッセージングプロトコルに OSC (Open Sound Control) というのがあって、どんなものかについては この辺 を参照して欲しいのだけど、通信プロトコルにUDPが使われていて、基本的には A -> B というように一対一でしかメッセージを送信できない*1。
そこでOSCを中継するハブのようなものがあれば、複数端末にメッセージ送信ができて便利そうなので作ってみた。頑張って作った構成図とGIFアニメが以下。
使い方
具体的なコマンド等は README を参照してもらうとして、大雑把な流れを示す。
- あらかじめ OscHubServer を立ち上げる
- 各クライアントで OscHubClient を立ち上げて OscHubServer に接続
- Max/MSP とかで OscHubClient に設定したポートでOSCを送受信する
用途
インターネット越しに同じMaxパッチを共有して、スクリーン共有みたいな感じでOSCだけを共有して動作を伝えるとか、まったく別々のパッチを同じコントローラで制御するとかに使えると思う。たぶん便利なのでアイデア次第でいろいろ面白いことできそうだけど、便利すぎるのですでに同じようなのがあるのかも知れない。
留意点
ネットワークを介するのでレイテンシーが発生する。
*1:ブロードキャストアドレスを使えば、同一ネットワーク内の全端末に送信できる