JavaScriptからMax/MSP, Ableton Live, SuperColliderなどなどの連携で
OSCを使いたいときもきっとあるかと思います。いつかまた自分でも使うと思うのでメモです。
すでにライブラリもあったのですが。
send("/address_a/address_b" ["thevalue", 1, 2, 3]);
のようなAPIが多く、そこそこの量を送るんだったら構造化したobjectを直接送ったほうがいいだろうなーと思ったので作りました。
コマンドラインの使い方は
# websocket_osc_bridge.py websocket_port osc_port websocket_osc_bridge.py 7776 7777
JS側ではobjectをjsonにして送る
var websocket = new WebSocket("ws://localhost:7776"); var msg = { test : [123,456], aaa : { bbb : 'boo', ccc : 'bar' }, list: [ { ddd : 1, eee : 2 }, { ddd : 3, eee : 4 } ] }; websocket.send(JSON.stringify(msg));
それでこんな感じにOSC受け取れます。
> /test [123,456] > /aaa/bbb ['boo'] > /aaa/ccc ['bar'] > /list/ddd [1] > /list/eee [2] > /list/ddd [3] > /list/eee [4]
その他のライブラリとかはこちらに。 WebSocket to OSC bridge