-
Notifications
You must be signed in to change notification settings - Fork 0
Home
leico edited this page Aug 5, 2019
·
10 revisions
- MIDI
- 解像度が足りない、速度が遅い、古すぎる
- 命令と機能が厳密に決められすぎていて足かせになることがある
- CVによる操作はモジュラーシンセ周りだけでしか扱われていない
- 照明関係もDMXで閉じてしまっている
- OSCではEthernet, IPv4/v6, TCP/UDP という部分の実装コストが高い、送信先を指定するアドレスが文字列で扱いにくい
異なる領域同士の連携を行う時のコストが高い。規格が古くて現在求められている情報量を扱いきれていない。 高機能過ぎて実装や設定が煩雑になる。
```
+----+----+----+----+----+----+----+----+
| | | | | | | | |
+----+----+----+----+----+----+----+----+
|--------address(32bit int)-------------|
```
- アドレスメッセージによって送信先が切り替わる
- 別のアドレスメッセージが送られてくるまでの間に到着したデータメッセージは全て同じ宛先に送られる
- 1byte ずつシリアルで送る場合、各byte の先頭ビットを 1 、残りの7bitを実データとする 5byte を用いて転送を行う
- 最上位 byte の MSB 3bit は 111 とする
+----+----+----+----+----+----+----+----+ | | | | | | | | | +----+----+----+----+----+----+----+----+ +---- +----+--- -+----+-- --+----+- ---+----+ | | | | | | | | | split per 7bit +---- +----+--- -+----+-- --+----+- ---+----+ +-+---|+----| +-+----+---| +-|-+----+--| +-|--+----+-| +-|---+----+ |1|111|| | |1| | | |1| | | | |1| | | | |1| | | add head bit +-+---|+----| +-+----+---| +-|-+----+--| +-|--+----+-| +-|---+----+
- 最上位 byte の MSB 3bit は 111 とする
- 他のプロトコルに含める場合、梱包するプロトコルにアドレスのデータであることを示すデータを一緒に含める
```
+----+----+----+----+----+----+----+----+
| | | | | | | | |
+----+----+----+----+----+----+----+----+
|--------data(32bit float)--------------|
```
- アドレスメッセージが指定した先に送られるデータ
- 同じアドレスに複数のデータを送りたい場合は連続してデータを送ることができる
- 1byte ずつシリアルで送る場合、各byte の先頭ビットを 0 、残りの7bitを実データとする 5byte を用いて転送を行う
- 最上位 byte の MSB 3bit は 111 とする
+----+----+----+----+----+----+----+----+ | | | | | | | | | +----+----+----+----+----+----+----+----+ +---- +----+--- -+----+-- --+----+- ---+----+ | | | | | | | | | split per 7bit +---- +----+--- -+----+-- --+----+- ---+----+ +-+---|+----| +-+----+---| +-|-+----+--| +-|--+----+-| +-|---+----+ |0|111|| | |0| | | |0| | | | |0| | | | |0| | | add head bit +-+---|+----| +-+----+---| +-|-+----+--| +-|--+----+-| +-|---+----+
- 最上位 byte の MSB 3bit は 111 とする
- 他のプロトコルに含める場合、梱包するプロトコルにアドレスのデータであることを示すデータを一緒に含める
- 同一のアドレスを再度送信することで区別する
- 3つ1組のデータを送る例
| address |~| data |~| data |~| data |~| address |~| data |~| data |~| data |~~~
- 3つ1組のデータを送る例
- データの途中でアドレスデータが来た場合、途中のデータは破棄する
- ただし、受信したところまでの動作が定義されている場合は、その動作を実行する
| address |~| data |~~~| address |~| data |~| data |~| data |~~~~ |<- discard or execute
- 指定した数のデータが到着し次第、規定された動作を実行する
- 3つのデータで動作する場合
| address |~| data |~| data |~| data |~| data |~| data |~| data |~~~~ |<- execute |<- execute
- 3つのデータで動作する場合
- プロトコルによってはタイムアウトを作成する
- 2メッセージ程度の空白を想定
| address | data | data |~~~~|~~~~|~~~~| data | data | ... |<- timeout execute or discard data
- 2メッセージ程度の空白を想定
- 2つを組み合わせてもよい
-
規定しない
- TCP/UDP、USBシリアル、Blutooth、HTTP(S)、I2C、どれであろうとこの形式で送受信できれば利用できる
- 既存の規格に送受信できそうな余白があれば積極的に利用する
-
パラレルで送る場合に1メッセージの形式は崩さない
- 4回線の場合の例
route : read order : -------------| address |---------> 1 -------------| data |---------> 2 -------------| address |---------> 3 -------------| data |---------> 4
- 4回線の場合の例
-
エンディアン
- メッセージを乗せる規格に従う
-
通信速度について
- メッセージを乗せる規格に従う
-
エラー処理について
- メッセージを乗せる規格に従う
- 規格にエラー検出が存在しない場合、エラー検出用CRCを追加したものも検討中
-
メッセージ以外の送受信
- メッセージを乗せる規格に従う
- Ethernetを利用するのであればPoEで電源供給なども考えられる
- IPv4のようなサブネットマスクの方式を利用して、各種パラメータへのアサインを振り分ける使い方が想定できる
- ホスト最大値はブロードキャストになる
- 基本は -1.0 - 1.0 の間でデータ送信を行う
- bipolar 型のパラメータに対応するため
- 商用、非商用問わずこの規格を利用することができる
- 商用、非商用問わずこの規格を改変することはできない
- 自由にこの規格を他の規格でラップすることはできる
- 例
+----------------------------------------------------------------+ | +--------------------------------------+ | | | Simple Control | other protocol | | +--------------------------------------+ | +----------------------------------------------------------------+
- 例
- ラップする規格の利用規約に注意すること
- 自由にこの規格を他の規格でラップすることはできる
- この規格そのものによって利益を得ることはできない
- この規格に何らかの拡張をしたものに関してはその限りではないが、誰もが自由に利用できることが望ましい
- この規格の内部に別の規格を含ませてはならない
- 例
SimpleControl +-----------address--------------+---------------data------------------+ | +------------------------+ | +--------------------------------+ | | | other protocol A | | | other protocol B | | | +------------------------+ | +--------------------------------+ | +--------------------------------+-------------------------------------+
- 例