Open Sound Control


OSC
test binary files
これでデータの送受信をconsoleで確認しながらデバッグしましょう
send+dumpOSC-OSX.sit

OSX

?

test-Consle.zip
win32
ソースもここに置いておきます。シンプルなので一番参考になるかも。
dump-test.zip
send-test.zip
ここのソースを基にしています。
http://www.audiomulch.com/~rossb/code/oscpack/

OSC
sending
OSX
Xcode 
ObjCOSC.sit

OSCのHPで紹介されているものです。

まずはこれをビルドして、フォルダ"build"の中にできる"ObjCOSC.framework"というフォルダを(今後よくOSCを使いそうな人は)
/System/Library/Frameworks/
の中に突っ込みましょう。 ?

cocoaGL+OSC001.sit

これでデータの受信を確認しながらデバッグしましょう
send+dumpOSC-OSX.sit

マウスドラッグ時の座標を送っています。
送り先のアドレスは、決め打ちになっているのでとりあえずはソースの中で変更して、今後インターフェースをデザインしてください。

win32
vc++.net用 
glut+OSC001.zip
cocoaGL+OSC001.sitと同じ機能です。

ここのソースを基にしています。
http://www.audiomulch.com/~rossb/code/oscpack/

ws2_32.libとglut32.libをリンクすること。
すべてのファイルにstdafx.hをインクルードするのをさけるのであれば、
プロジェクトのプロパティで
「プリコンパイルヘッダーを使用しない」
というモードにしてください。

ENDIANNの問題を改良しました。コンパイラ設定でモードを変える様に設計されていましたが、モードを変更する関数を追加しました。
osc::OutboundPacketStream p( buffer, IP_MTU_SIZE );
によって送信ストリームを 作成した直後
p.setEndian(0);//0:LITTLE 1:LONG
によってENDIANNのモードを切り替えてください。
0:win系
1:mac系


OSC
recieving
OSX
Xcode 
cocoaGL+OSC002.sit

受信データをNSLogでRunLog コンソールに出力します。

メソッド:
newMethodNamed
によって 送信側で設定するメッセージタイプ毎に、コールバック関数を設定します。
データの取り出し方に少し癖がある様です。

 

cocoaGL+OSC003.sit

受信データをOpenGLでの描画に結びつけています。
cocoaGL+OSC001.sitから送信するデータを処理しているので、両方起動してテストしてみてください。

コールバック関数と、メソッド:newMethodNamedで指定している contextというポインタによって受信データとやり取りします。

このサンプルははっきりいってポインタ地獄です。
win32
vc++.net用 
glut+OSC002.zip
 

ここのソースを基にしています。
http://www.audiomulch.com/~rossb/code/oscpack/

cocoaGL+OSC003.sitと機能は似ています。
"q"キーで終了。
ENDIANNの問題を改良しました。モードを変更する関数を追加しました。
OscPacketListenerを
宣言した直後、新しい関数
setEndian(0);//0:LITTLE 1:LONG
によってENDIANNのモードを切り替えてください。
例:int main(int argc, _TCHAR* argv[])内
OscPacketListener listener;
listener.setEndian(1);////0: LITTLE 1:LONG

0:win系
1:mac系
Bundleプロトコルの方もendiannに関して実装しましたが、動作確認はしていません。挙動不審があれば一報を。