Open Sound Control ( OSC ) は、音楽演奏やショーコントロールなどの目的で、サウンドシンセサイザー、コンピュータ、その他のマルチメディアデバイスをネットワークで接続するためのプロトコルです。OSC の利点には、相互運用性、正確性、柔軟性、組織化とドキュメント化の強化などがあります。[1]欠点には、情報のコーディングが非効率的であること、組み込みプロセッサの負荷が増加すること、[2]標準化されたメッセージ/相互運用性の欠如などがあります。[3] [4] [5] 最初の仕様は 2002 年 3 月にリリースされました。
モチベーション
OSC は、CNMATでAdrian Freed と Matt Wright によって開発されたコンテンツ フォーマットで、 XML、WDDX、JSONに匹敵します。[6]もともとは、楽器 (特にシンセサイザーなどの電子楽器)、コンピューター、その他のマルチメディア デバイス間で音楽演奏データ (ジェスチャ、パラメータ、音符シーケンス) を共有することを目的としていました。OSC は、より高い解像度とより豊富なパラメータ空間が必要な場合に、1983 年のMIDI標準の代替として使用されることがあります。OSC メッセージは、UDP/IPとEthernet を使用して、インターネット上およびローカル サブネット内で転送されます。ジェスチャ コントローラー間の OSC メッセージは通常、 SLIPプロトコルでラップされたUSBのシリアル エンドポイントを介して送信されます。[要出典]
特徴
MIDIと比較したOSCの主な特徴は以下の通りである。[1]
- オープンエンド、動的、URIスタイルのシンボリック命名スキーム
- 記号データと高解像度の数値データ
- 1 つのメッセージの複数の受信者を指定するためのパターン マッチング言語
- 高解像度の時間タグ
- 効果が同時に発生する必要があるメッセージの「バンドル」
アプリケーション
OSC アプリケーションには、リアルタイムのサウンドおよびメディア処理環境、Web インタラクティブ ツール、ソフトウェア シンセサイザー、プログラミング言語、ハードウェア デバイスなど、数十種類あります。OSC は、音楽表現、ロボット工学、ビデオ パフォーマンス インターフェイス、分散音楽システム、プロセス間通信などの分野で幅広く使用されています。
マルチタッチなどの実体インターフェースのTUIOコミュニティ標準は、 OSC 上に構築されています。同様に、ジェスチャを表現する GDIF システムも OSC を統合しています。
OSC は実験的な音楽コントローラーで広く使用されており、いくつかのオープンソース製品や商用製品に組み込まれています。
Open Sound World(OSW)音楽プログラミング言語はOSCメッセージングを中心に設計されています。[7]
OSC はDSSIプラグイン APIの中核であり、LADSPA API の進化形です。これにより、最終的なGUI がプラグイン ホストにメッセージを送ることでプラグインのコアと対話できるようになります。LADSPA と DSSI は、オーディオ エフェクトとシンセサイザー専用の API です。
2007年に、コントローラ、シンセサイザー、ホスト間の通信のためのOSC内の標準化された名前空間SYNが提案されました。
OSC 実装の注目すべきソフトウェアには以下のものがあります。
- エイブルトンライブ
- 情熱
- オーロラ dBテクノロジーネットワーク
- オーダーメイドシンセ
- ビドゥル
- チャック
- CasparCG (オープンソースのビデオ グラフィック エンジン)
- クリスタルスペース
- Cサウンド
- デジタルパフォーマー
- フルクサス
- フリーJ
- ギグパフォーマー
- イアンニX
- 即興
- イサドラ(v.1.1)
- JUCE(フレームワーク)
- キマ
- リリー
- 生きる
- ロジックプロ
- ループトゥゴー
- マッドマッパー
- 魔法の音楽ビジュアル
- 最大/MSP
- モコロ
- モジュール8
- ミューズスコア
- ムクスウェンドラー
- オープンフレームワーク
- オシアスコア
- 処理
- 純粋な
- ピュアデータ
- Qラボ
- Quartz Composer (v3.0 / Mac OS X v10.5以降)
- リアクター
- リーパー
- リノイズ
- リゾルム アリーナ/アベニュー
- ショーフォージ
- ソニックパイ
- SPAT革命
- きしむ
- スーパーコライダー
- サージXT
- タッチデザイナー
- アンリアルエンジン
- VRチャット
- ベントゥズ
OSC 実装を備えた注目すべきハードウェアには次のものがあります。
デザイン
OSCメッセージは、アドレスパターン(など/oscillator/4/frequency)、型タグ文字列(float32引数の後にint32,fi引数が続く場合など)、および引数自体(時間タグを含む場合があります)で構成されます。[8]アドレスパターンは、 UnixファイルシステムパスまたはURLを彷彿とさせる階層的な名前空間を形成し、サーバー内の「メソッド」を参照します。メソッドは、添付された引数とともに呼び出されます。型タグ文字列は、引数の型のコンパクトな文字列表現です。引数は、4バイトのアラインメントを持つバイナリ形式で表されます。サポートされているコア型は次のとおりです。
- 32 ビットの 2 の補数符号付き整数
- 32 ビットIEEE 浮動小数点数
- 8 ビットでエンコードされたデータのヌル終端配列 (C スタイルの文字列)
- 任意のサイズのブロブ(例:オーディオデータ、ビデオフレーム)
仕様にはメッセージの例が含まれています(ヌルパディングバイトは␀で表されます):/oscillator/4/frequency␀,f␀␀、その後に440.0の4バイトのfloat32表現が続きます:0x43dc0000。[9]
メッセージはバンドルにまとめられ、バンドル自体もバンドルにまとめられるなどします。各バンドルにはタイムスタンプが含まれており、サーバーがすぐに応答するか、将来のある時点で応答するかを決定します。[8]
アプリケーションでは、通常、このコア セットの拡張機能が使用されます。最近では、コンパクトなブール型などの拡張機能の一部が、OSC 1.1 の必須コア型に統合されました。
MIDIに対するOSCの利点は、主にインターネット接続、データ型の解決、および7ビットまたは14ビットのデータ型を持つ7ビットの数値としてすべての接続を指定するのとは対照的に、シンボリックパスを指定するのが比較的簡単であることです。[8] ただし、この人間が読める形式には、送信効率が悪く、組み込みファームウェアによる解析が困難であるという欠点があります。[2]
仕様では、特定の OSC メソッドや OSC コンテナは定義されていません。すべてのメッセージは実装定義であり、サーバーごとに異なります。
参考文献
- ^ ab 「OSC 入門」。opensoundcontrol.org。2021年 4 月 7 日。2021年9 月 11 日閲覧。
- ^ ab Fraietta, Angelo (2008). 「オープンサウンドコントロール:制約と制限」doi :10.5281/zenodo.1179537. S2CID 5690441.
{{cite web}}:欠落または空|url=(ヘルプ) - ^ 「ホーム · fabb/SynOSCopy Wiki」。GitHub 。 2022年12月31日取得。OSC
がまだMIDIに取って代わっていない理由の1つは、接続して再生する機能がないことです。OSCには、シンセサイザーなどのインターフェース用の標準の名前空間がありません。
- ^ Supper, Ben (2012年10月24日). 「私たちはMIDIが嫌いです。私たちはMIDIが大好きです」. Focusrite Development . 2023-01-01取得.
OSCはこの問題のスーパーセットに悩まされています。それは無秩序であり、意図的にそうなっています。仕様の所有者は、それに制約を課すことを避けようと非常に熱心だったため、ハードウェアがそれに対処することがますます困難になってきました。…さらに深刻なのは、相互運用性の問題があることです。OSCには、最も一般的な音楽交換でさえ定義された名前空間がないため、シーケンサーからシンセサイザーに標準的な方法でミドルCを送信するために使用することはできません。
- ^ 「OSC名前空間とOSC状態: OSC対応システムの名前空間と状態を記述するためのスキーマ」(PDF)。OSC
は新たな障害ももたらします。まず、メッセージの固定セットがないため、参加している各サーバーは、通信しようとしているサーバーに送信できるメッセージを知る必要があります。現在、OSC標準では、サーバーが応答するすべてのメッセージをプログラムで検出する手段が提供されていません。
- ^ “OpenSoundControl | CNMAT”. cnmat.berkeley.edu . 2019年12月22日閲覧。
- ^ 「OSW マニュアル OpenSound コントロール (OSC)」. osw.sourceforge.net . 2019 年12 月 22 日閲覧。
- ^ abc Wright, Matt (2002年3月26日). 「The Open Sound Control 1.0 仕様」. opensoundcontrol.org . 2019年12月22日閲覧。
- ^ Wright, Matt (2002 年 3 月 29 日). 「OpenSoundControl 1.0 仕様をサポートする例」. opensoundcontrol.stanford.edu . 2023 年 1 月 1 日閲覧。
- Schmeder, A.、Freed, A.、および Wessel, D.、「Open Sound Control のベスト プラクティス」、Linux Audio Conference、ユトレヒト、オランダ、2010 年。
- Freed, A.、Schmeder, A.、「NIME 向け Open Sound Control バージョン 1.1 の機能と将来」、NIME カンファレンス 2009。
- Wright, M.、Freed, A.、「Open Sound Control: サウンド シンセサイザーとの通信のための新しいプロトコル」、国際コンピュータ音楽会議、テッサロニキ、ギリシャ、1997 年。
- Patrick-Gilles Maillot、「非公式 X32/M32 OSC リモート プロトコル」、https://drive.google.com/file/d/1Snbwx3m6us6L1qeP1_pD6s8hbJpIpD0a/view?usp=share_link、2012 年。
- Patrick-Gilles Maillot、「WING 用 OSC リモート コントロール ドキュメント」、https://mediadl.musictribe.com/download/software/behringer/WING/BE-P0BV2-WING-OSC-Documentation-0.59.pdf、2020 年。
外部リンク
- 公式サイト
- LinuxJournal での OSC の紹介
- SYN、OSC内の標準化された名前空間
- X32-Behringerは、OSCをベースにしたX32デジタルコンソール用のプログラムとツールのコレクションです。
- patrickmaillot/wing、WING パーソナル デジタル ミキシング コンソール用の OSC ベースのユーティリティのコレクション
- patrickmaillot/x32、X32/M32 ファミリーのデジタル ミキシング コンソール用の OSC ベースのユーティリティのコレクション
