バージョン 1.0, 2002年3月29日, Matt Wright
このドキュメントでは、OpenSound
Control 仕様をサポートする例を提供する。
文字列 "OSC" は、以下の4バイトによるOSC文字列として表される:
O | S | C | \0 |
文字列 "data" は、以下の8バイトによるOSC文字列として表される:
d | a | t | a | \0 | \0 | \0 | \0 |
引数型 | OSC型タグ文字列 |
1つの float32 引数 | ",f" |
2つのint32引数と、それに続く1つのOSC文字列引数と、それに続く3つのfloat32引数 | ",iisfff" |
引数なし | "," |
1つのint32引数と、それに続く2つのOSC blob引数 | ",ibb" |
あるOSCアドレス空間に、"frequency"というOSCメソッドが含まれているとする。このメソッドは "3" という名前のOSCコンテナに含まれていて、それも "resonators" という名前の別のOSCコンテナに含まれていて、それがさらにこのアドレス空間のツリー ルートとなるOSCコンテナに含まれているとする。このメソッドのOSCアドレスは "/resonators/3/frequency" となる。
OSCアドレス "/a/b/c/d/e" は次の意味になる:
OSC Address "/a/b/cde"には3つのパートがある: "a",
"b", そして "cde" である。最後のパートはOSCメソッドの名前であり、他のパートはそのメソッドを(再帰的に)含むOSCコンテナの名前であることに注意。
OSCアドレスパターン"/?/b/*c" には3つのパートがある: "?",
"b", そして "*c" である。
これらの例ではそれぞれ、メッセージの各バイトはまず16進数で、次に対応するASCII文字を括弧付きで示してある。
OSCアドレスパターン "/oscillator/4/frequency" と浮動小数点444.0 を1つの引数としてもつOSCメッセージは次のような32バイトのメッセージになる:
2f (/) 6f (o) 73 (s) 63 (c)
69 (i) 6c (l) 6c (l) 61 (a)
74 (t) 6f (o) 72 (r) 2f (/)
34 (4) 2f (/) 66 (f) 72 (r)
65 (e) 71 (q) 75 (u) 65 (e)
6e (n) 63 (c) 79 (y) 0 ()
2c (,) 66 (f) 0 () 0 ()
43 (C) dc (Ü) 0 () 0 ()
次の例では、40バイトになる、OSCアドレスパターン "/foo"と5つの引数からなるOSCメッセージを示す:
2f (/) 66 (f) 6f (o) 6f (o)
0 () 0 () 0 () 0 ()
2c (,) 69 (i) 69 (i) 73 (s)
66 (f) 66 (f) 0 () 0 ()
0 () 0 () 3 () e8 (è)
ff (ÿ) ff (ÿ) ff (ÿ) ff (ÿ)
68 (h) 65 (e) 6c (l) 6c (l)
6f (o) 0 () 0 () 0 ()
3f (?) 9d () f3 (ó) b6 (¶)
40 (@) b5 (µ) b2 () 2d (-)
OSCサーバのOSCアドレス空間に、以下のOSCアドレスに該当するメソッドが含まれているとする:
受信したOSCバンドルが、3つのOSCメッセージを含んでいて、それらのOSCメッセージが以下のOSCアドレスパターンを含んでいたとする:
3つのメソッドが以下の順で呼び出される:
(1) まず /first/this/one, これは最初のOSCバンドルに含まれるOSCアドレスパターンに出現するから。
(2-3) そして /second/1 とそれに続く/second/2 、または /second/2 とそれに続く /second/1
(3-6) そして /third/a, /third/b, /third/c, が任意の順で
これらの6つのメソッドをこのOSCサーバが呼び出しうる順序は12通りある: