JP4621523B2 - オーディオ関連システムにおけるノード構造の発見ためのシステム - Google Patents

オーディオ関連システムにおけるノード構造の発見ためのシステム Download PDF

Info

Publication number
JP4621523B2
JP4621523B2 JP2005093297A JP2005093297A JP4621523B2 JP 4621523 B2 JP4621523 B2 JP 4621523B2 JP 2005093297 A JP2005093297 A JP 2005093297A JP 2005093297 A JP2005093297 A JP 2005093297A JP 4621523 B2 JP4621523 B2 JP 4621523B2
Authority
JP
Japan
Prior art keywords
audio
plug
related device
node
node structure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2005093297A
Other languages
English (en)
Other versions
JP2005318550A (ja
Inventor
アレン クレイフェルド リチャード
リー ジョン
エー. プランケット ウィリアム
ジェイ. シャトルワース ティモシー
スティーブンソン アンドリュー
バンダー ワーフ ブルース
Original Assignee
ハーマン インターナショナル インダストリーズ インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ハーマン インターナショナル インダストリーズ インコーポレイテッド filed Critical ハーマン インターナショナル インダストリーズ インコーポレイテッド
Publication of JP2005318550A publication Critical patent/JP2005318550A/ja
Application granted granted Critical
Publication of JP4621523B2 publication Critical patent/JP4621523B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/02Arrangements for generating broadcast information; Arrangements for generating broadcast-related information with a direct linking to broadcast information or to broadcast space-time; Arrangements for simultaneous generation of broadcast information and broadcast-related information
    • H04H60/04Studio equipment; Interconnection of studios
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R27/00Public address systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R2227/00Details of public address [PA] systems covered by H04R27/00 but not provided for in any of its subgroups
    • H04R2227/003Digital PA systems using, e.g. LAN or internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Circuit For Audible Band Transducer (AREA)
  • Small-Scale Networks (AREA)
  • Digital Computer Display Output (AREA)
  • Computer And Data Communications (AREA)
  • Stereophonic System (AREA)
  • Selective Calling Equipment (AREA)
  • Communication Control (AREA)
  • User Interface Of Digital Computer (AREA)
  • Measurement Of Mechanical Vibrations Or Ultrasonic Waves (AREA)
  • Reverberation, Karaoke And Other Acoustics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

(1.技術分野)
本発明は、オーディオ・システムに関し、より詳細には、オーディオ関連機器の機能性を発見するためのシステムに関する。
(2.関連技術)
オーディオ信号を増幅するためにオーディオ・システムを使用することは周知である。一般的に、オーディオ・システムは、増幅器を用いてオーディオ信号を増幅し、1つ以上のスピーカを駆動するために動作する。このようなオーディオ・システムは、小売衣料品店で用いられるといった2つ、3つのコンポーネントを有する比較的シンプルな構成から、コンサートホールに用いられるといった大きく複雑なシステムに及び得る。
オーディオ・システムの構成は通常、オーディオ・システムを作り上げるデバイスの物理的配置および配線を伴う。加えて、デバイスのいくつか(例えば、増幅器およびミキサー)は、一般的に、ユーザによる構成可能な設定を含む。この設定は、所望のオーディオ・システムの性能を実現するためにユーザの好みで構成され得る。オーディオ・システムのサイズおよび複雑さが増すにつれて、配線および設定の数もまた増加する。加えて、オーディオ・システムにおけるデバイスは、地理的に、より分散し得る。従って、システムの操作、メンテナンス、およびトラブルシューティングは、より困難になる。このことは、特に、ツアー中の音楽グループのためのサウンドシステムといった、さまざまな構成で繰り返し分解され、再構築されるオーディオ・システムに当てはまる。
サウンドシステムにおける複数のデバイスの間であらかじめ設定された通信が可能である。加えて、あらかじめ設定されたサイト特定のユーザ・インターフェースがある、あらかじめ特定されたサイト特定のデバイスと通信するように含まれ得る。この通信およびユーザ・インターフェースは、すべてあらかじめ定義されているので、古いデバイスの新しいデバイスへの置換、および/またはシステムにおける新しいデバイスの追加は、ユーザ・インターフェースおよび新しいデバイスの追加的なサイト特定の構成を必要とする。
いくつかのシステムにおいては、新しいデバイスが追加されたとき、デバイスのすべてのアスペクトを記述する情報が、新しいデバイスから抽出され、ユーザ・インターフェースをアップデートするように提供され得る。しかしながら、これらのシステムでは、比較的大きく複雑なファイル転送が、ユーザ・インターフェースを手動で構成、または最初に構成するために十分な情報を提供するために必要である。このようなファイルの転送は、大きな労働力を要し、相当なコンピュータおよびシステムの専門知識を必要とし、ファイルがネットワーク上で送達されるとき、システム通信の帯域幅に好ましくない影響を及ぼし得る。加えて、デバイスは、ユーザ・インターフェースと互換性のあるフォーマットで、情報を作成および/または提供するために現場の作業者により手動で構成されることを必要とするかもしれない。さらに、ユーザ・インターフェースは、送達された情報を受け取り、かつ、処理し得るために現場の作業者により手動で構成されることを必要とするかもしれない。
(要約)
(項目1)
オーディオ・システムにおいて動作可能なオーディオの機能性を決定するためのシステムであって、
オーディオ関連デバイスから複数のクラス属性を受け取るように構成されているグラフィカル・ユーザ・インターフェースのコアと、
複数のプラグインであって、上記複数のプラグインのそれぞれは、上記クラス属性に基づいて、オーディオ関連デバイスとの関連性が存在するかどうか決定するように構成されている、複数のプラグインと
を備え、
関連性が存在するとき、上記プラグインは、上記オーディオ関連デバイスの機能性を示しているオーディオ・ノード構造を受け取り、上記オーディオ・ノード構造に含まれている複数のコンポーネントがあらかじめ定義されているかどうかを決定するようにさらに構成されている、システム。
(項目2)
関連性が存在する上記プラグインの1つは、上記コンポーネントの1つがあらかじめ定義されていないとき、上記グラフィカル・ユーザ・インターフェースのコアは、他のプラグインにクエリするようにさらに構成されている、項目1に記載のシステム。
(項目3)
上記グラフィカル・ユーザ・インターフェースのコアは、上記オーディオ関連デバイスから、あらかじめ定義されていない上記オーディオ・ノード構造の一部分だけに関連したさらなる情報を取り出すためにプラグインのいずれかの1つによって有効にされるように構成されている発見エンジンを備えた、項目1に記載のシステム。
(項目4)
上記プラグインのそれぞれは、関連したクラス属性の少なくとも1つのセットを含むように構成されており、クラス属性の上記関連した少なくとも1つが上記受け取られたクラス属性に対応しているとき、上記プラグインのそれぞれは、上記グラフィカル・ユーザ・インターフェースのコアを介して、上記オーディオ関連デバイスと通信リンクを確立するように構成されている、項目1に記載のシステム。
(項目5)
上記プラグインのそれぞれは、上記受け取られたクラス属性と比較され得る前もって格納されている複数のクラス属性を含むそれぞれのライブラリ・ストレージ・モジュールをさらに備えた、項目1に記載のシステム。
(項目6)
上記プラグインのそれぞれは、上記オーディオ・ノード構造を取り出すように構成されている取り出しエンジンをさらに備え、クラス分析モジュールは、分析し、上記コンポーネントがあらかじめ定義されていることを確認するように構成されている、項目1に記載のシステム。
(項目7)
仮想デバイスがあらかじめ定義されるように決定されるとき、オブジェクトおよび状態変数もまたあらかじめ定義されるように、上記オーディオ・ノード構造は、階層構造において、仮想デバイス、オブジェクトおよび状態変数を備えた、項目1に記載のシステム。
(項目8)
上記プラグインのそれぞれは、上記オーディオ・ノード構造に含まれている上記コンポーネントと比較され得る複数の所定のコンポーネントを含むそれぞれのライブラリ・ストレージ・モジュールをさらに備えた、項目1に記載のシステム。
(項目9)
オーディオ・システムにおいて動作可能なオーディオの機能性を決定するためのシステムであって、
上記オーディオ関連デバイスを記述しているクラス属性を受け取るように構成されているオーディオ・ノード発見マネージャと、
オーディオ・ノードのクエリに含まれている上記受け取られたクラス属性が、プラグインによって認識されるとき、上記オーディオ・ノード発見マネージャからのオーディオ・ノードのクエリに応答するように構成されているプラグインと
を備え、
上記プラブインは、上記オーディオ関連デバイスからオーディオ・ノード構造を取り出し、上記オーディオ・ノード構造を、上記プラグインによってアクセスされ得る格納されている所定のオーディオ・ノード構造と比較するようにさらに構成されており、
上記オーディオ・ノード発見マネージャは、あらかじめ格納されておらず、かつ、上記プラグインによってアクセスされ得ない上記オーディオ・ノード構造の一部に対して別のプラグインにクエリするために有効にされるようにさらに構成されている、システム。
(項目10)
上記別のプラグイン、または上記プラグインのどちらもが、上記オーディオ・ノード構造の一部分に関する前もって格納されている情報にアクセスを有しないとき、上記プラグインは、上記オーディオ関連デバイスに関してさらなるオーディオ関連情報を発見するように発見エンジンを有効にするようにさらに構成されている、項目9に記載のシステム。
(項目11)
新しいオーディオ関連デバイスが識別されるとき、上記ノード発見マネージャは、属性のクエリを生成するように構成されているノード属性要求エンジンを備えた、項目9に記載のシステム。
(項目12)
上記プラグインは、取り出しエンジンおよびライブラリ・ストレージを備え、
上記取り出しエンジンは、上記オーディオ・ノード構造に対して上記オーディオ関連デバイスにクエリし、かつ、上記オーディオ・ノード構造に含まれているコンポーネントの存在に対して上記ライブラリ・ストレージをチェックするように構成されている、項目9に記載のシステム。
(項目13)
上記オーディオ・ノード構造は、仮想デバイスを備え、上記取り出しエンジンは、上記ライブラリ・ストレージにおける上記仮想デバイスの存在に対してチェックするように構成されている、項目12に記載のシステム。
(項目14)
上記取り出しエンジンは、上記仮想デバイスに含まれているオブジェクトに対して上記オーディオ関連デバイスにクエリし、それから、上記仮想デバイスが上記ライブラリ・ストレージに存在し、構成可能であると識別されるとき、上記ライブラリ・ストレージにおける上記オブジェクトの存在をチェックするようにさらに構成されている、項目13に記載のシステム。
(項目15)
上記プラグインは、上記プラグインにおいてあらかめじ格納されておらず、かつ、アクセスされ得ない上記オーディオ・ノード構造の一部分だけに対して上記オーディオ関連デバイスのクエリを有効にするようにさらに構成されている、項目9に記載のシステム。
(項目16)
上記オーディオ・ノード構造は、複数の仮想デバイスのリストを備え、上記プラグインは、上記リストに含まれている上記仮想デバイスのそれぞれが既知であるかどうかを決定し、未知である上記仮想デバイスのそれぞれに対して上記オーディオ関連デバイスとの通信をさらに有効にするようにさらに構成されている、項目9に記載のシステム。
(項目17)
上記プラグインが、上記オーディオ関連デバイスへの通信パスの知識を必要としないように、上記オーディオ関連デバイスへ別々の独立した通信パスを確立することによって上記プラグインと上記オーディオ関連デバイスとの間の通信を確立するように構成されているノード通信インスタンシエータをさらに備えた、項目9に記載のシステム。
(項目18)
上記プラグインのそれぞれは、上記取り出されたノード構造に含まれている上記コンポーネントと、上記コンポーネントそれぞれが既知であるか否かの表示とを格納するように構成されているノード構造ストレージをさらに備えた、項目9に記載のシステム。
(項目19)
オーディオ・システムにおいて動作可能なオーディオの機能性を発見するためのシステムであって、
取り出しエンジン、クラス属性モジュールおよびライブラリ・ストレージを含むプラグインを備え、
上記取り出しエンジンは、対応するオーディオ関連デバイスからの複数の仮想デバイスを含むオーディオ・ノード構造を取り出すように有効にされ、
上記クラス分析モジュールは、上記取り出されたオーディオ・ノード構造を、上記ライブラリ・ストレージに格納されている所定の複数の仮想デバイスと比較するように構成され、
上記取り出しエンジンは、上記所定の仮想デバイスに対応しない上記オーディオ関連デバイスから取り出された上記仮想デバイスのさらなるコンポーネントの発見を有効にするように構成されている、システム。
(項目20)
上記取り出された仮想デバイスのいずれかの1つが上記プラグインの上記ライブラリ・ストレージに格納されていないとき、上記取り出しエンジンによって、別のプラグインの上記ライブラリ・ストレージにクエリするために有効にされるように構成されているプラグイン・サーチ・エンジンをさらに備えた、項目19に記載のシステム。
(項目21)
上記取り出しエンジンによって、上記プラグイン、または上記別のプラグインの上記ライブラリ・ストレージに格納されていない上記仮想デバイスだけに関するさらなる情報を発見するために有効にされるように構成された発見エンジンをさらに備えた、項目20に記載のシステム。
(項目22)
上記仮想デバイスは、上記仮想デバイスを記述している複数の属性およびオブジェクトまたは状態変数、もしくは上記発見エンジンによって取り出されたそれらの組み合わせの少なくとも1つを備えた、項目21に記載のシステム。
(項目23)
上記所定の仮想デバイスは、オブジェクトまたは状態変数、もしくはあらかじめ決定されているそれらの組み合わせの少なくとも1つを備えた、項目19に記載のシステム。
(項目24)
上記取り出しエンジンは、上記オーディオ・ノード構造に含まれている上記仮想デバイスであって、上記所定の仮想デバイスに対応する上記仮想デバイスの表示を格納するさらに構成されている項目19に記載システム。
(項目25)
オーディオ・システムにおいて動作可能なオーディオ関連デバイスの機能性を発見するための方法であって、
オーディオ関連デバイスから受けとられ、上記オーディオ関連デバイスを示している属性に基づいて、上記オーディオ関連デバイスに関連したプラグインを識別することとであって、上記プラグインは、上記オーディオ・デバイスから、上記オーディオ関連デバイスのオーディオ関連の機能性を表しているオーディオ・ノード構造を取り出す、ことと、
上記オーディオ・ノード構造に含まれている複数のコンポーネントのそれぞれは、上記プラグインによって既知であるかを決定することと、
既知でないとき、未知のコンポーネントに対して別のプラグインにクエリすることと
を包含する方法。
(項目26)
プラグインを識別することは、上記オーディオ関連デバイスを示しているクラス属性に対して上記オーディオ関連デバイスにクエリすることを包含する、項目25に記載の方法。
(項目27)
上記プラグインおよび上記別のプラグインによって未知である上記オーディオ・ノード構造のいずれかのコンポーネントを発見するために上記オーディオ関連デバイスにクエリするように発見エンジンを有効にすることをさらに包含する、項目25に記載の方法。
(項目28)
上記プラグインが、上記オーディオ関連デバイスからオーディオ・ノード構造を取り出すことは、上記オーディオ関連デバイスにおける機能ユニットを表している仮想デバイスのリストを受け取ることと、上記プラグインに格納されている所定の仮想デバイスに対応する上記仮想デバイスを識別することを包含する、項目25に記載の方法。
(項目29)
別のプラグインにクエリすることは、プラグインが、上記他のプラグインにクエリするように、上記プラグインのすべてと通信しているノード発見マネージャを有効にすることを包含する、項目25に記載の方法。
(項目30)
オーディオ・システムにおいて動作可能であるオーディオ関連デバイスの機能性の発見のための命令を実行するように動作可能なパフォーマンス機器マネージャであって、
メモリデバイスと、
上記メモリデバイスに格納されている命令であって、オーディオ関連デバイスの機能性を示している仮想デバイスのリストを受け取る、命令と、
上記メモリデバイスに格納されている命令であって、仮想デバイスの上記リスト上の定義されていない上記仮想デバイスのいずれかを識別する、命令と、
上記メモリデバイスに格納されている命令であって、上記定義されていない仮想デバイスの関連した属性のそれぞれ、および上記定義されていない仮想デバイスのそれぞれに含まれているオブジェクトのリスト、状態変数のリスト、もしくはそれらの組み合わせの少なくとも1つを取り出す、命令と、
上記メモリデバイスに格納されている命令であって、上記属性およびあらかじめ決定されている仮想デバイスの表示を格納する、命令と
を含む、パフォーマンス機器マネージャ。
(項目31)
上記仮想デバイスのそれぞれを識別するように上記メモリデバイスに格納されている命令は、所定のオブジェクトまたは所定の変数状態、もしくはそれらの組み合わせの少なくとも1つを含む格納されている所定の仮想デバイスに対応する上記リストアップされた仮想デバイスのそれぞれを示すように上記メモリデバイスに格納されている命令を含む、項目30に記載のパフォーマンス機器マネージャ。
(項目32)
オーディオ・システムにおいて動作可能なオーディオ関連デバイスの機能性を発見するための方法であって、
オーディオ関連デバイスを記述しているクラス属性に対応する所定のクラス属性を有するプラグインを有効にすることと、
上記有効にされたプラグインを用いて、上記オーディオ・ノード構造の機能性を記述しているオーディオ・ノード構造に対して上記オーディオ関連デバイスにクエリすることと、
上記オーディオ・ノード構造に含まれている既知のコンポーネントを識別することとであって、上記既知のコンポーネントは、上記有効にされたプラグインに含まれている所定のプラグインに対応する、ことと、
上記オーディオ・ノード構造の対応しないコンポーネントに対して別のプラグインにクエリすることであって、上記対応しないコンポーネントは未知である、ことと、
上記オーディオ・ノード構造の任意のコンポーネントの属性に対して上記オーディオ関連デバイスにクエリするように発見エンジンを有効にすることとであって、上記属性は、上記プラグインおよび上記別のプラグインによって未知である、ことと
を包含する方法。
(項目33)
上記発見エンジンおよび既知である上記コンポーネントの表示によって発見される上記オーディオ・ノード構造の属性を格納することをさらに包含する、項目32に記載の方法。
本発明は、オーディオ関連機器の管理および制御のためのシステムを提供する。このシステムは、オーディオ・システムにおけるオーディオ関連機器の全てを管理、モニタ、および制御する能力を提供する共通のアーキテクチャである。従って、マイクロフォンから増幅器、ミキサー、照明装置にわたるすべのものが、このシステムによってアクセスされ、制御され得る。
このシステムは、さまざまな物理ネットワークおよび通信プラットフォームのいずれかを用いて、種々の複雑性を有する複数の異なるオーディオ関連デバイスをシームレスに統合するネットワーク独立プロトコル(network independent protocol)を提供する。加えて、このシステムは、まだ知られていない特定のオーディオ関連デバイスのアスペクトを発見するメッセージング機能を提供することによって、システム内のオーディオ関連デバイスのアップグレード、変更、追加が可能である。このメッセー機能はまた、選択されたオーディオ関連デバイス間でオーディオデータおよび関連情報が効率的に、および最小のネットワーク・トラフィックで送達されることを可能にする。
1つ以上のパフォーマンス機器マネージャ(「PEM」)がこのシステムに含まれる。パフォーマンス機器マネージャは、全オーディオ・システムのコントロール・パネル・ビューを取り出しおよび/または生成する。加えて、パフォーマンス機器マネージャは、オーディオ・システム内の各特定のデバイスに対してコントロール・パネル・ビューを取り出しおよび/または生成し得る。コントロール・パネル・ビューは、オーディオ・システム内のオーディオ関連デバイスの協調された管理、制御およびモニタを可能にする。このシステム内で用いられるに通信プロトコルは、デバイス・ツー・デバイス通信と同様に、パフォーマンス機器マネージャとオーディオ関連デバイス間の標準通信を可能にする。
このシステムは、オーディオ・システムに含まれているオーディオ関連デバイスの機能性を発見することを提供する。PEMは、グラフィカル・ユーザ・インターフェース(“GUI”)のコアおよび複数のプラグインを含み得る。GUIのコアは、オーディオ関連デバイスから複数のクラス属性を受け取り得る。クラス属性は、プラグインのいずれか1つがオーディオ関連デバイスに関連しているかどうか決定するためにフラグインによって分析され得る。オーディオ関連デバイスに関連付けられるものとして識別されたプラグインは、オーディオ関連デバイスからオーディオ・ノード構造を受け取り得る。オーディオード構造は、オーディオ関連デバイスの機能性の少なくとも一部分を表し得る。他のプラグインが、オーディオ関連デバイスに関連したプラグインよって、未知であるオーディオ・ノード構造の一部分に対してクエリされ得る。加えて、オーディオ・ノード構造の一部分が未知であるとき、オーディオ関連デバイスに関連したプラグインおよび他のプラグインによって、オーディオ関連デバイスの機能性のさらなる発見が行われ得る。従って、PEMとオーディオ関連デバイスとの間の通信は、望ましくは、PEMによってまだ既知でないオーディオ・ノード構造一部分だけに制限される。加えて、オーディオ関連デバイスは、以前未知であったときでえ、PEMによって自動的に発見され得る。
オーディオ関連デバイスから取得されるオーディオ・ノード構造の量はまた、望ましくは、PEMが動作しているデバイスの動作能力に基づいて、制限され得る。PEMが動作している処理能力、表示能力、入力/出力、ネットワーク帯域幅等が、比較的制限されるとき、オーティオ・ノード構造の比較的小さい部分が取得され、処理され得る。逆に言えば、相当な量の動作能力を有するPEMがデバイス上で、動作しているとき、全ノード構造が取得され、処理され得る。
本発明の他のシステム、方法、特徴および利点が、以下の図面および詳細な説明を検討することにより当業者に明らかになる。すべてのこのような追加的なシステム、方法、特徴および利点がこの記載に含まれ、本発明の範囲内であることが意図される。
(好ましい実施形態の詳細な説明)
(I.システム)
図1は、コンサートホールといった場所でのミュージックコンサートといった公演のために構成された複数のオーディオ関連デバイスを有するオーディオ・システム100の例である。他の例において、オーディオ・システム100は、例えば、遊園地に恒久的に備え付けられたサウンドシステム、および例えばスタジアムのロックコンサートのために一時的に備え付けられたサウンドシステムを含む他の任意のタイプの場所での他の任意のタイプの公演のために構成され得る。この例のオーディオ・システム100に含まれるオーディオ関連デバイスは、ステージ102、オーディエンスエリア104、第1のルーム106および第2のルーム108を含む場所に備え付けられたものとして表さられる。
オーディオ・システム100は、複数のスピーカ116から可聴音を生成するために処理されるオーディオ信号を提供するギター112およびマイクロオフォン114を含む。他の例において、オーディオ信号は、他の任意のタイプのデバイスによって生成され得る。ギター112によって生成されるオーディオ信号は、オーディオ信号プリプロセッサ118によって処理され、オーディオ・システム100にまた含まれるオーディオ・ネットワーク120に提供され得る。オーディオ・ネットワーク120は、オーディオ信号およびオーディオ・システムに関連した他の任意の信号を運ぶことが可能である任意の形状の通信ハイウェイであり得る。オーディオ・ネットワーク120は、Ethernet(登録商標)、USB、RS232、RS485、FireWire、または他の任意のプロトコルといった複数のプロトコルのいずれかにおいて光ファイバ、有線、および/または無線通信能力を含み得る。
マイクロフォン114からのオーディオ信号はまた、オーディオ・ネットワーク120に提供され得る。この図解された例において、オーディオ信号は、ミキサー124によって受け取られ、処理され得る。ミキサー124による処理は、フィルタ、コンプレッサ、イコライザ、エフェクト、利得、またはミキサー124に含まれる他の任意の設定といった構成可能な設定に基付き得る。ミキサー124による処理に続いて、処理されたオーディオ信号は、第1のオーディオ・プロセッサ126および第2のオーディオ・プロセッサ128に含まれる構成可能なセットを用いて更なる処理のために第1のオーディオ・プロセッサ126および第2のオーディオ・プロセッサ128によって受け取られ得る。第1のオーディオ・プロセッサ126および第2のオーディオ・プロセッサ128は、オーディオ信号に更なるエフェクトを提供する。第1のオーディオ・プロセッサ126および第2のオーディオ・プロセッサ128によって処理されるオーディオ信号は、第1の増幅器132、第2の増幅器134、第3の増幅器136および第4の増幅器138によって受け取られ得る。利得およびイコライザ(「EQ」)設定といった増幅器132、134、136、138における追加的な構成可能な設定は、オーディオ信号のさらなる処理および増幅に適用され得る。増幅され、処理されたオーディオ信号は、スピーカ116のそれぞれを駆動し得る。
オーディオ信号はまた、第5の増幅器142によって受け取られ、処理され、かつ、第2のルーム108に含まれるスピーカ116のそれぞれを駆動するために用いられ得る。ウォール・コントローラ146は、オーディオ・ネットワーク120上で第5の増幅器142を制御するために用いられ得る。加えて、ウォール・コントローラ146は、オーディオ・システム100の動作に関連した1つ以上のパラメータであって、オーディオ・ネットワーク120上で受け取られる1つ以上のパラメータを表示することが可能であるディスプレイを含み得る。
第1のPEM150はまた、オーディオ・システム100に含まれ得る。第1のPEM150は、メモリデバイスに格納され、オーディオ関連デバイスといった任意の形式のコンュータデバイスにおいて実行され得る。このオーディオ・システムの例において、第1のPEM150は、GUIを有するパーソナルコンピュータ(「PC」)で実行されている。他の例において、第1のPEM150の動作が、1つ以上のGUIを有する複数のコンピュータデバイスのメモリデバイス間に配信され得る。第1のPEM150は、GUIを用いて、1つ以上のコントロール・パネル・ビューにおけるオーディオ・システム100のさまざまなオーディオ関連デバイスおよびアスペクトを、選択的に表示する能力を含み得る。あるいは、複数の並列動作するPEMは、オーディオ・システム100の所定の部分に存在するさまざまなオーディオ関連デバイスおよび機能性のコントロール・パネル・ビューを選択的に表示するために用いられ得る。従って、大きく複雑なオーディオ・システムにおいて、オーディオ・システム100は、複数のPEMが、オーディオ・システム100内で異なるサブシステムとして利用され得るように分けられ得る。
本明細書中で使用される場合、用語「コントロール・パネル・ビュー」または「種々のコントロール・パネル・ビュー」は、ディスプレイ上で地理的に生成されたユーザ・インターフェース、コントロール面といったハードウェアベースのユーザ・インターフェース、および/または地理的に生成されたユーザ・インターフェースならびにハードウェアベースのユーザ・インターフェースの組み合わせとして定義される。
GUIの形式のシステム・ベニュー・ビュー・ディスプレイであるコントロール・パネル・ビューは、第1のPEM150によって生成され得る。システム・ベニュー・ビュー・ディスプレイは、オーディオ・システム100のオーディオ関連デバイスの構成、ID、動作パラメータのシステム特定の描写であり得る。オーディオ・システム100のオーディオ関連デバイスは、第1のPEM150によって発見され、かつ、システム・ベニュー・ビュー・ディスプレイに含まれ得る。加えて、第1のPEM150は、オーディオ・ネットワーク120を用いてオーディオ・システム100のオーディオ関連デバイスを個々に管理、モニタ、制御し得る。オーディオ関連デバイスの個々の管理は、GUIのコントロール・パネル・ビューである複数のコントロール・パネル・ビューから行われ得る。
オーディオ関連デバイスのそれぞれは、それぞれのオーディオ関連デバイスに対応する1つ以上のGUIのコントロール・パネル・ビューを用いて管理され得る。1つ以上のGUIのコントロール・パネル・ビューは、PEM150によって生成され、ディスプレイに表示され得る。コントロール・パネル・ビューはまた、PEM150に含まれるコントロール面であり得る。本明細書中で使用される場合、用語「コントロール面」は、ボタン、ノブ、計測器(meter)、LED、スライダ、インジケータ、数値ディスプレイ、または、オーディオ関連デバイスに関連した他の任意のハードウェアベースのユーザ・インターフェースといったハードウェアを指す。
PEM150は、オーディオ・ネットワーク120上でオーディオ関連デバイスによって提供される情報に基づいて、対応するオーディオ関連デバイスのための格納されている所定のコントロール・パネル・ビューを識別し、かつ、用い得る。このような情報は、オーディオ関連デバイスのオーディオ・ノード構造を含み得る。あるいは、PEM150は、格納されている所定のコントロール・パネル・ビュー、コントロール・パネル・ビューの格納されている所定のアスペクト、および/またはコントロール・パネル・ビューを生成するためにPE150によって生成されるコントロール・パネル・ビューのアスペクトを含む生成されたコントロール・パネル・ビューを用い得る。生成されたコントロール・パネル・ビューがオーディオ・ネットワーク120上で対応するオーディオ関連デバイスによって提供されるオーディオ・ノード構造といった情報に基づいて形成され得る。
オーディオ関連デバイスのオーディオ・ノード構造に対応する格納されている所定のGUIのコントロール・パネル・ビューが同様に識別され、オーディオ関連デバイスの機能性を表示するために用いられ得る。加えて、格納されている所定のGUIのコントロール・パネル・ビュー、格納されている所定のGUIのアスペクト、および/またはPEM150によって生成されるGUIのアスペクトを含む生成されたGUIのコントロール・パネル・ビューは、GUIのコントロール・パネル・ビューを形成するために用いられ得る。生成されたGUIのコントロール・パネル・ビューは、オーディオ・ネットワーク120上で対応するオーディオ関連デバイスによって提供されるオーディオ・ノード構造といった情報に基づいて同様に形成され得る。本明細書中で使用される場合、用語「GUIのアスペクト」は、オーディオ関連デバイスのモニタリング、構成、および/または制御を提供するそれぞれの特徴であって、GUIに表示され得るそれぞれの特徴として定義される。加えて、用語「コンポーネント」は、コントロール・パネル・ビューに含まれているさまざまな関連したユーザ・インターフェースを指し、一方で用語「アスペクト」は、コントロール・パネル・ビューに統合され得るスタンド・アロン・ユーザ・インターフェースを指す。
従って、格納されている所定のGUIのコントロール・パネル・ビューは、GUIのコントロール・パネル・ビューにおいて前もって開発され、視覚的に配置され、かつ相互関連する複数のGUIコンポーネントを含み得る。GUIコンポーネントは、関連したオーディオ関連デバイスの機能性の少なくとも一部分を表し得る。格納されている所定のGUIのコントロール・パネル・ビューのコンポーネントの例は、ミキサーにおける多数のオーディオ・チャンネルのそれぞれを示している。表されているオーディオ・チャンネルのそれぞれは、ボリュームを制御するスライダ、スライダの位置を(デシベルで)示すボリューム・インジケータ、および入力信号を(デシベルで)示すオーディオ信号インジケータを含み得る。この例において、スライダおよびボリューム・インジケータは、スライダが動くとき、ボリューム・インジケータがボリュームの変化する大きさを反映するように相互に関連している。
格納されている所定のGUIのコントロール・パネル・ビューに含まれていない格納されている所定のGUIのアスペクトは、PEM150によって、現存の格納されている所定のGUIのコントロール・パネル・ビューに追加され得る視覚的/制御的特徴を含む。これらの視覚的/制御的特徴は、対応するオーディオ関連デバイスの機能性を表すGUIのコントロール・パネル・ビューを形成するために追加され得る。このような追加された所定のGUIのアスペクトはまた、格納されている所定のGUIのコントロール・パネル・ビューに含まれるGUIコンポーネントに相互に関連し得る。PEM150はまた、オーディオ関連デバイスによって提供されるオーディオ・ノード構造といった情報に基づいて、格納されている所定のGUIのアスペクトの1つ以上からGUIのコントロール・パネル・ビューを形成し得る。オーディオ関連デバイスが、関連した格納されている所定のGUIのコントロール・パネル・ビューを有していないとき、GUIのコントロール・パネル・ビューが形成され得る。この場合には、所定のGUIのアスペクトはまた、形成されるGUIのコントロール・パネル・ビュー内で相互に関連し得る。
格納されている所定のGUIのコントロール・パネル・ビュー、または特定のオーディオ関連デバイスに対するGUIのコントロール・パネル・ビューに格納されている所定のGUIのアスペクトがないとき、PEM150は、対応するオーディオ関連デバイスによってオーディオ・ネットワーク上で提供される情報に基づいて、GUIのアスペクトおよびGUI全体のコントロール・パネル・ビューを生成し得る。GUIのアスペクトは、同様に相互に関連し得る。
従って、ネットワーク構成のために、PEM150は、オーディオ・システム100全体および個々のオーディオ関連デバイスのエンド・ツー・エンド動作を管理するために構成され得る。トラブルシューティング、オーディオ・システムならびにオーディオ関連デバイス設定の格納、ネットワーク管理、およびネットワーク通信管理もまた、第1のPEMを用いて行われ得る。
ミキサー124は、第2のPEM152を含み得る。第2のPEM152の動作は、モニタリング、制御および格納機能性を含む第1のPEM150と同様に構成され得る。加えて、また同様の機能性を有する第3のPEM154は、オフィスビルといったオフサイト・ロケーション160に位置し得る。
PEM150、152、154の機能性は、そのPEM150、152、154が動作しているそれぞれのデバイスの処理能力に基づいて構成され得る。加えて、PEM150、152、154は、所望のレベルの機能性および特徴を提供するように構成され得る。例えば、オフサイト・ロケーション160に位置する第3のPEM154は、監視の役割を行うGUIを有するコンピュータといったコンピュータデバイスにおいて動作し得る。従って、エラー・ロギング、アラーミングおよびシステム動作は、第3のPEM154を用いて管理され得る。監視の役割のパフォーマンスをサポートする第3のPEM154を用いて表示されるGUIのコントロール・パネル・ビューが、ライブラリからアクセスされ得、および/または第1のPEM150に対して上述されるようなオーディオ関連デバイスとの通信に基づいて生成され得る。第3のPEM154はまた、オーディオ・システム100内で、遠隔なテクニカルおよびトラブルシューティング・アシスタンスを提供するために、個々のオーディオ関連デバイスセットをビューし、かつ、調整する能力を有して構成され得る。
第2のPEM152は、ミキサー124のユーザ・インターフェースおよび処理能力をとミキサー124の機能性とシェアし得る。従って、処理といった演算能力、データ格納および/または表示能力がミキサー124において、より低いとき、第2のPEM152は縮退した機能性を有し得る。第2のPEM152は、その第2のPEM152が動作しているオーディオ関連デバイスの動作能力を決定するように構成され得る。
第2のPEM152の機能性は、ミキサー124の決定された動作能力に一致し得る。従って、ミキサー124が、通信ポート、および/またはそれ自身の動作パラメータならびに設定の表示を通信および/または制限するメモリ能力、またはオーディオ・システム100における他のオーディオ関連デバイスを有するとき、第2のPEM152は、比較的、より小さく、より複雑でないコントロール・パネル・ビューを用い得る。加えて、第2のPEM152は、オーディオ関連デバイスの動作パラメータおよび設定の、より小さい部分を要求し得る。例えば、オーディオ関連デバイスが2つのチャンネルオーディオ増幅器であるとき、第2のPEM152は、1つのチャンネルだけを表示し、表示されたチャンネルに関連した動作パラメータおよび設定を取得し得る。第2のチャンネルが要求されるとき、第2のPEM152は、第2のチャンネルおよび関連した動作パラメータならびに設定だけを表示し得る。
(II.オーディオ関連デバイス)
図2は、オーディオ・ネットワーク120に結合されているオーディオ関連デバイス200の例のブロック図である。オーディオ関連デバイス200は、ミキサー、増幅器、マイクロフォン、照明パネル、ウォール・コントローラ、またはオーディオ・サウンド・システムおよび/またはオーディオ性能に関連した他の任意のデバイスであり得る。オーディオ関連デバイス200は、通信ポート202、プロセッサ204、メモリ206、オーディオI/O208、およびユーザ・インターフェース210を含む。オプション的に、オーディオ関連デバイス200は、外部ユーザ・インターフェース・ポート212を含み得る。他の例において、より多くの機能性が、オーディオ関連デバイス200に示され得る。加えて、より少ない、またはより多くのブロックがオーディオ関連デバイス200の機能性を記述するために用いられ得る。
通信ポート202は、オーディオ・ネットワーク120上で通信を可能にするハードウェアおよび/またはソフトウェアの任意の構成であり得る。プロセッサ204は、オーディオ関連デバイス200内で、全体的な機能性を管理し、計算を行い、かつ、入力/出力を制御する等、命令、論理タスクおよび/または動作コードを実行することが可能な任意のデバイスであり得る。プロセッサ204はまた、通信ポート202の動作を制御し得る。
メモリ206は、プロセッサ204によって実行可能な命令、オーディオ関連デバイス200の設定、(後述される)PEMによって使用可能なオーディオ・ノード構造、動作パラメータ、セットポイント、およびオーディオ関連デバイス200ならびにオーディオ・システム100(図1)における動作に関する他のデータまたは情報を格納するように構成されている揮発性および/または不揮発性メモリデバイスであり得る。メモリ206は、実行のために取り出さるされる命令といった取り出されるデータを保存する媒体である。それは、ハードディスクドライブ、CDドライブ、DVDドライブ、ランダムアクセスメモリ(「RAM」)、読み出し専用メモリ(「ROM」)、プログラマブルROM(「PROM」)、電気的消去可能ROM(「EEPROM」)、フラッシュメモリ、または他の任意のデジタル格納デバイスを含み得る。
オーディオI/Oは、オーディオ関連デバイス200に直接的に提供される任意の入力および出力であり得る。例えば、オーディオ増幅器は、処理され、増幅され、かつ、スピーカを駆動するために用いられる出力に送達されるオーディオ入力を有し得る。ユーザ・インターフェース210は、ボタン、スライダ、ノブ、タッチ・スクリーン、またはユーザ・コマンドが、オーディオ関連デバイス200に提供されることを可能にする他の任意の形式のインターフェースを含み得る。加えて、ユーザ・インターフェース210は、オーディオ関連デバイス200のユーザによって受け取られるための任意の形式のオーディオおよび/または視覚的出力を含み得る。オーディオおよび/または視覚的な出力の例は、発光ダイオード(「LED」)、計測器、液晶ディスプレイ(「LCD」)といったディスプレイ、もしくはオーディオ関連デバイス210の状態および/または動作のインディケーションをユーザに提供する他の任意のメカニズムを含む。
外部ユーザ・インターフェース・ポート212は、オーディオ関連デバイス200が、1つ以上の他のオーディオ関連デバイスと通信することを可能にするオプション的な通信ポートであり得る。外部ユーザ・インターフェース・ポート212は、オーディオ・ネットワーク120によって提供される通信パスの外側にある他のオーディオ関連デバイスに通信リンクを提供し得る。例えば、オーディオ・ネットワーク120上で通信する増幅器は、外部ユーザ・インターフェース・ポート212を介して、ウォール・コントローラから入力信号を受け取り得る。ウォール・コントローラの例は、ロータリー・スイッチに関連したデジタル信号である出力、およびウォール・コントローラに含まれているディスプレイ上に表示されるフィードバック・インディケーションである入力を有し得る。この例において、ウォール・コントローラは、増幅器の出力利得を調整するために入力信号を提供し得る。加えて、ウォール・コントローラは、外部ユーザ・インターフェース・ポート212を介して増幅器から出力信号を受け取り得る。出力信号は、出力利得を表し得、かつ、ウォール・コントローラのディスプレイ上に表示され得る。
図3は、図2に図解されるオーディオ関連デバイス200の一部、および図1に図解されるオーディオ・システムの一部のより詳細なブロック図である。図3において、通信ポート202、プロセッサ204、オーディオI/O208、およびユーザ・インターフェース210が示されている。通信ポート202は、ネットワーク・インターフェース302を有する通信モジュール300を含む。通信モジュール302は、メモリ206に格納され得、かつ、オーディオ関連デバイス200の任意のへ通信ために用いられ得る。
ネットワーク・インターフェース・モジュール302は、メッセージ層306およびルーティング層308を含む。メッセージ層306は、オーディオ関連デバイス200とオーディオ・システムにおける他の任意のオーディオ関連デバイスおよび/または機器の間でメッセージを通信するよう構成されている。オーディオ・システム内のメッセージングのさまざまなアスペクトがより詳細に後述される。ルーティング層308は、異なるプロトコルおよび/または物理媒体の組み合わせとの通信が可能である複数のサブシステムを含む。
Ethernet(登録商標)通信リンク310、Fire Wire通信リンク312、USB通信リンク314、RS232通信リンク316、RS485通信リンク318がオーディオ関連デバイス200内で用いられ得る。他の例において、他の任意の形式の通信リンクが、オーディオ信号、オーディオ関連デバイスの設定およびオーディオ・システムに関連したデータを転送するために用いられ得る。例えば、オーディオ関連デバイスは、オーディオ・ネットワーク120上で、Ethernet(登録商標)通信リンク310を用いて、または図3に示されるUSB通信リンク314を用いて、別のオーディオ関連デバイス320と、直接的に通信し得る。ルーティング層308とインターフェースするさまざまな通信リンクのそれぞれは、パケット・サービス層、信頼層、ネットワーク層、データリンク層および物理層を含み得る。それぞれの通信リンク内において、ルーティング層は、オーディオ・ネットワーク上で、または他のオーディオ関連デバイスから受け取られるメッセージを提供する。
オーディオ・ストリーム・モジュール322およびオーディオ・サービス・モジュール324はまた、ネットワーク・インターフェース302に含まれ得る。オーディオ・ストリーム・モジュール322は、オーディオ・ネットワーク120上でストリーミングオーディオとしてオーディオ信号316を受け取り、かつ、オーディオ信号316を送達し得る。加えて、オーディオ・ストリーム・モジュール322は、オーディオ・ネットワーク120からストリーム・オーディオを受け取り得る。オーディオ・ストリーム・モジュールの例は、Peak Audio(Colorado州、Boulder)によって製造されているCobranetシステム(登録商標)である。ストリーミングオーディオは、オーディオ・ストリーム・モジュール322と別のオーディオ関連デバイスにおける別のオーディオ・ストリーム・モジュールとの間で送達され得る。異なるオーディオ関連デバイスのオーディオ・ストリーム・モジュールは、通信するために互換性があるべきである。
オーディオ・サービス・モジュール324は、異なるオーディオ・ストリーム・モジュール間で互換性のある通信を作成するためにオーディオ・ストリーム・モジュール322を自動的に構成するように動作可能である。オーディオ・サービス・モジュール324は、対応するオーディオ関連デバイスのネットワーク・インターフェース・モジュールの設定に基づいて、オーディオ・ストリーム・モジュール322のそれぞれの能力を比較し得る。他のオーディオ・サービス・モジュールとのネゴシエーションに基づいて、オーディオ・サービス・モジュール324は、すべてのオーディオ・ストリーム・モジュールに互換性があり、かつ、共通する設定を選択し得る。従って、オーディオ・ストリーム・モジュールのすべては、もっとも制限された通信能力を有するオーディオ関連デバイスに基づく設定を有するように構成され得る。自動的に設定をネゴシエーションすることによって、オーディオ・サービス・モジュール324は、オーディオ・システムにおいて、お互いに互換性があり、かつ、通信が可能であるすべてのオーディオ・ストリーム・モジュールを構成し得る。オーディオ・サービス・モジュール324によって自動的にネゴシエーションされ得る設定の例は、チャンネル・カウント、ビット深度、サンプル周波数および待ち時間を含む。
図3において、オーディオ関連デバイス200はまた、オーディオ・ネットワーク120上で、PEM328と通信し得る。先述されたように、PEM328は、オーディオ・ネットワーク120上で、オーディオ関連デバイス200を管理、制御、モニタし得る。第1のスイッチ330および第2のスイッチ332はまた、オーディオ・ネットワーク10と結合され得る。第1のスイッチ330および第2のスイッチ332は、オーディオ・ネットワーク120と第1のオーディオ・ネットワーク334および第2のオーディオ・ネットワーク336のそれぞれの間で通信パスを提供し得る。他の複数のオーディオ関連デバイス334は、第1のオーディオ・ネットワーク334および第2のオーディオ・ネットワーク336に結合され得る。他のオーディオ関連デバイス338は、オーディオ・ネットワーク120上で、第1のスイッチ330および第2のスイッチ332を用いて通信が可能である。
(III.オーディオ・ノード構造)
各オーディオ関連デバイス内の機能性がオーディオ・ノード構造を用いて表さられ得る。オーディオ・ノード構造はまた、GUI内に1つ以上のGUIのコントロール・パネル・ビューを生成するために用いられ得る。GUIのコントロール・パネル・ビューは、対応するオーディオ関連デバイスをモニタ、制御、および構成するために用いられ得る。加えて、オーディオ・ノード構造は、1つ以上のコンロール面を構成するために用いられ得る。
図4は、オーディオ関連デバイスを表すオーディオ・ノード構造400の例である。オーディオ・ノード構造400は、ノード402に含まれている複数のコンポーネントを含む。ノード402は、オーディオ関連デバイスを表し得、かつ、ノードIDを含む。あるいは、ノードは、機能的なオーディオ関連デバイスを形成する多くのノードが存在している、より大きいシステムのサブコンポーネントを形成し得る。各ノードは、1つ以上の仮想デバイスを含み得る。各仮想デバイスは、1つ以上のオブジェクト、および状態変数を含み得る。ネットワーク能力を有して構成されているノードは、1つ以上のネットワーク・インターフェース上で通信し得る。
図4において、ノード402の例は、第1の仮想デバイス404および第2の仮想デバイス406であるコンポーネントを含む。他の構成の例において、追加的な、またはより少ない仮想デバイスが、特定のオーディオ関連デバイスの機能性に基づいて含まれ得る。第1の仮想デバイス404は、ノード・レベル動作を担うように構成されているノード・マネージャ仮想デバイスである。例えば、ノード・マネージャは、ノード402における仮想デバイスのリストを維持し得る。仮想デバイスのリストを用いて、ノード・マネージャ仮想デバイスは、そのノードにおいて、どの仮想デバイスが存在しているかを他のオーディオ関連デバイスに通信し得る。加えて、ノード・マネージャ仮想デバイスは、任意のノード・レベル情報を維持することを担い得る。
第1の仮想デバイス404および第2の仮想デバイス406は、このシステムにおけるデバイスのそれぞれを表す3レベル階層のトップレベルである。一般的に、オーディオ・ノード構造における仮想デバイスのそれぞれは、デバイス内の機能ユニットを表す。第1の仮想デバイス404は、第2の階層レベルを表すオブジェクト408を含む。後述されるように、オブジェクトは、処理ブロック、制御エレメント、ステータス・エレメント等を表すために用いられ得る。オブジェクト408は、第1のオブジェクト410および第2のオブジェクト412である追加的なコンポーネントを有し得る。第1のオブジェクト410および第2のオブジェクト412は、オブジェクト408内の追加的な機能エレメントを表す。
第1のオブジェクト410および第2のオブジェクト412、第1の仮想デバイス404および第2の仮想デバイス406のそれぞれは、状態変数414であるコンポーネントであって、オーディオ・ノード構造のコンポーネントを含む。後述されるように、状態変数は、周波数、フェーダ位置、遅延時間、またはデバイス内の他の任意の変化可能なパラメータといった変化され得るデータ変数ある。従って、このような変数データポイントが、オーディオ・ノード構造を用いて表される特定のオーディオ関連デバイスの機能性に依存して仮想デバイスおよび/またはオブジェクトに存在し得る。状態変数は、第3の階層レベルを表している。
ノード402、仮想デバイス404、406、オブジェクト408、410、412および状態変数414は、各オーディオ関連デバイスのオーディオ・ノード構造を作り上げるコンポーネントである。ノード402、仮想デバイス404、406、オブジェクト408、410、412および状態変数414は、特定のオーディオ関連デバイスの機能性を反映する任意の構成であり得る。従って、異なるオーディオ関連デバイスのオーディオ・ノード構造は、同一であり得、または、著しく異なり得る。
ノード402、仮想デバイス404、406、オブジェクト408、410、412および状態変数414のそれぞれ(つまり、コンポーネント)は、属性を含み得る。属性は、どのように、関連したノード、仮想デバイス、オブジェクト、または状態変数が用いられるか記述し、また、名前、測定単位および/または他のデバイス、オブジェクトおよび/または状態変数との関連性を記述し得る。加えて、属性は、対応する仮想デバイス、オブジェクトおよび状態変数のコントロール・パネル・ビューにおける配置といった記述的情報、配線の詳細、または対応するコンポーネントの他の任意の記述もしくは特性を提供し得る。
オーディオ関連デバイスのオーディオ・ノード構造内において、パラメトリックEQといった信号処理のために用いられるコンポーネント、メカニカル・フェーダといった制御コンポーネント、または出力計といったセンサ・コンポーネント間で差異がないかもしれない。加えて、パスワードおよびミディ(「MIDI」)チャンネルといったグローバルアイテムが、オーディオ・ノード構造に含まれ得る。状態変数、オブジェクトおよび/または仮想デバイスを有するオーディオ・システムに含まれている異なるオーディオ関連デバイスの機能性のすべてを表すことによって、サブスクリプションおよび制御といった通信のための同一のメカニズムが、幅広くさまざまな異なるオーディオ関連デバイスを含むオーディオ・システムにわたってあまねく適用され得る。
ノードは、そこに包含される仮想デバイスを動的に作成し、破壊し得る。オーディオ関連デバイスにおいて動作可能なプログラムは、動的に作成された仮想デバイスの例である。動的に作成された仮想デバイスの別の例は、オーディオ関連デバイスにおけるコントロール・パネル・ビューのためのオートメーション仮想デバイスである。オブジェクトはまた、動的に作成され、破壊され得る。動的に作成されたオブジェクトの例は、オーディオ関連デバイスのコントロール・パネル・ビュー上の挿入物(insert)であり得る。この例において、エフェクト・オブジェクトは、インスタンス化され得、それから、オブジェクトは、このような関連性を記述するように構成可能なルーティング属性を有する状態変数の変化を介してエフェクト・オブジェクトにリンクされ得る。
(状態変数)
オーディオ・ノード構造内において、オーディオ関連デバイスの機能性において修正可能なパラメータは、状態変数(「SV」)コンポーネント内で保持され得る。このようにして、SVは、測定された値、セットポイント値、チューニング値、設定値、またはオーディオ関連デバイス内の変化可能なパラメータである他の任意のパラメータであり得る実際の値を含む。実際の値は、他の実際の値に基づいて、自動的にアップデート、手動でアップデートおよび/または論理的にアップデートされ得る。SVの例は、周波数のようなオーディオ・オブジェクトのパラメータおよびコントロール面上のフェーダの位置を含む。ウォール・コントローラのようなシンプルなオーディオ関連デバイスは、制限された数のSVだけを包含し得る。ミキシング・コンソールといった他のオーディオ関連デバイスは、何十万ものSVを包含し得る。SV上の一般的な動作は、変数を「セットし」、かつ、変数を「獲得する」ことを含む。例えば、このような動作は、EQの周波数をセットすること、およびオーディオ関連デバイスのコントロール面上の表示のための遅延時間を獲得することに変換され得る。このような基本動作は、オートメーションといった、より複雑な形式の使用の基本を形成し得る。
(属性)
オーディオパラメータの値を保持することに加えて、SVはまた、どのように対応するSVが用いられるかを記述する多くの属性を所有し得る。2つの属性の例は、Gain SVがセットされ得るデシベル(dB)値のレンジを表す「最小」および「最大」である。別の属性は、dB値を保持するために用いられるデータ・タイプであり得る。例えば、データ・タイプは、IEEEフロート、バイト、ワードとしてSVを示し得る。従って、属性情報を含むことによって、他のオーディオ関連デバイスが、SVに対して特にプログラムされておらず、それ故に、SVの特性を知らないときでさえ、SVはオーディオ・システムにおける他のオーディオ関連デバイスにアクセス可能である。このようにして、属性は、その属性を発見するために予備知識を有しておらず、従って、SVを用いるために必要とされる知識を取得する他のオーディオ関連デバイスによって用いられ得る。
属性はまた、オーディオ・ノード構造を記述する情報を提供し得る。従って、オーディオ・ノード構造のいくらかの部分が未知であるとき、未知のコンポーネントに関連した属性は、コンポーネントの機能性を決定するために用いられ得る。加えて、属性は、オーディオ・ノード構造とコントロール・パネル・ビューとの間の対応を提供し得る。例えば、属性は、オーディオ関連デバイスに対して格納されている所定のコントロール・パネル・ビューを識別するために用いられ得る。加えて、格納されている所定のコントロール・パネル・ビューがオーディオ・ノード構造に完全に対応しないとき、または、格納されている所定のコントロール・パネル・ビューが全く存在しないとき、オーディオ・ノード構造に含まれる属性はコントロール・パネル・ビューを形成する情報を提供し得る。このようにして、オーディオ・デバイスのオーディオ・ノード構造が、格納されている所定のコントロール・パネル・ビュー、または格納されている所定のアスペクトを有しないとき、オーディオ・ノード構造の属性は、コントロール・パネル・ビューおよび/またはアスペクトを生成する情報を提供し得る。
属性はまた、生成されたアスペクトの格納されている所定のコントロール・パネル・ビューへの統合または取り込みが可能である情報、またはコントロール・パネル・ビューに多くの生成されたアスペクトを形成する情報を含み得る。例えば、オーディオ・ノード構造は、ミキサーにおけるチャンネルを表すオブジェクトおよびSVを含み得る。オブジェクトおよびSVに関連した属性は、チャンネルが、制御能力を提供するスライダとの割合として表示されるべきであることを示し得る。加えて、属性は、それぞれに対して生成されるさまざまなアスペクトの配置を記述し得る。さらに、属性は、アスペクト間の配線がどのように表示されるべきか、アスペクト、カラー、サイズ、シェイプ、またはコントロール・パネル・ビューにおけるオーディオ関連デバイス機能性のディスプレイに関連する他の任意のパラメータ間の相互間の関連がどうように表示されるべきかを記述し得る。属性の概念は、オーディオ・ノード構造全体にわたり適用され、SV、オブジェクト、仮想デバイス、およびノード・マネージャ仮想デバイスを含む。
属性は、その属性が用いられ得る方法を表す3つのカテゴリの1つに分類され得る。属性のカテゴリは、静的、インスタンス、および動的を含む。静的属性は、固定されており、変化しない。従って、静的属性のデータベースは、オーディオ・ノード構造における、SVといったコンポーネントを制御するために必要とされる発見の量を最小にするものとして定義され得る。インスタンス属性は、SVのインスタンスごとにセットされ得る。動的属性は、クライアントセットの、またはランタイム時に修正され得る静的属性、またはインスタンス属性である。静的およびインスタンス属性は、クエリされ得る。動的属性は、一般的に、静的属性またはインスタンス属性のいずれかと類似している。動的属性は、しかしながら、その値がランタイム時にオーバーライドされ得るので静的属性またはインスタンス属性とは異なる。
属性は、属性識別(「属性ID」)およびクラス識別(「クラスID」)を含み得る。属性IDは、各属性を一意的に識別する方法である。属性IDは、符号なしのバイト(「UBYTE」)を用いてゼロから数えられ得、所定の名前を用いて表さられ得る。オーディオ・ノード構造の階層の各レベルでの属性は、それ自身の列挙を有し得る。従って、例えば、SVクラスに対する3の属性IDは、オブジェクト・クラスにおいて異なる属性を指し得る。クラスIDは、属性値の一意のグループを識別する符号なしのワード(「UWORD」)といった所定の数を用いて表され得る(クラスID)。例えば、SVが、特定の値にセットされた11個すべての属性を有するとき、属性のこのコレクションおよびそれらの値は、SVクラスとして識別され、代表クラスIDを割り当てられ得る。このクラスIDは、長文式で属性を記述することを省くために省略表現の形式として用いられ得る。クラスIDは、属性値のセット(SVクラス、オブジェクト・クラス等)を表す階層のすべてのレベルにおいて用いられ得る。SVおよびオブジェクト・クラスの再使用を促すために、クラスIDのマスター・リストが維持され得、クラスが登録され得る。
(クラス)
SVクラス、オブジェクト・クラス、仮想デバイス・クラス、またはノード・マネージャ仮想デバイス・クラスといったクラスは、数的に、かつ、それぞれクラスID(「UWORD」)およびクラス名(「STRING」)といったストリング名によって表され得る。各クラスIDは、ID、属性名およびカテゴリといった属性のセットを含み得る。クラス名は、オーディオ・ノード構造における階層レベルを識別するためにプレフィックスされ得る。例えば、SVのクラス名は、「SVClass」であり得る。SVクラス名の例は、SVClassPeqFreq、SVClassPeqQおよびSVCassPeqGainである。クラスIDはまた、SVクラス、オブジェクト・クラス、仮想デバイス・クラスおよびノード・マネージャ仮想デバイスのいずれかに対して用いられ得る。SVクラスIDにおける属性のセットの例は以下のとおりである。
オブジェクト・クラスおよびその関連したクラスIDは、オブジェクトの特定の先験的な知識を定義し得る。オブジェクト・クラスは、オブジェクトが、オブジェクト・クラスおよびSVの値によって全体的に定義されることを可能にする。オブジェクト・クラスは、静的およびインスタンス属性から形成され得る。オブジェクト・クラスを定義する静的属性は、オブジェクトによって包含される任意のサブオブジェクト、およびオブジェクトによって包含される任意のSVを含み得る。例えば、3つのバンドEqualizerおよび5つのバンドEqualizerは、異なるオブジェクト・クラスである。なぜなら、それらは、異なる数のSVを包含するからである。オブジェクト・クラスIDは、オブジェクト・クラスを特定するために用いられるUWORDであり得る。オブジェクト・クラスIDの1つのマスター・レジストリがあり得る。デベロッパーは、それらのオブジェクトIDをマスター・レジストリに登録し得る。加えて、同一のオブジェクトが、オーディオ関連デバイスのファミリに渡り用いられ得る。オブジェクト・クラスIDは、先述されるような属性のセットを含み得る。オブジェクト・クラスは、フレーズ「ObjClass」で始まる命名規則を有し得る。オブジェクト・クラスIDにおける属性のセットの例は以下のとおりである。
仮想デバイス、またはノード・マネージャ仮想デバイスはまた、クラスを含み得る。仮想デバイスのクラスおよび関連したクラスIDは、仮想デバイスの一意の特性を表し得、容易な識別およびの異なる種類の仮想デバイスの区別のために用いられ得る。2つの異なる種類の仮想デバイスの例は、ミキシング・コンソールといったオーディオ関連デバイスのノード内のオートメーション仮想デバイスおよび入力面仮想デバイスである。一意のクラスIDの割り当ての例は、1つ以上のオーディオ関連デバイスに含まれている異なるソフトウェアプログラムを表す仮想デバイスのグループへのクラスIDの割り当てであり得る。仮想デバイスのクラスIDは、UWORDとして表され得る。仮想デバイスはまた、クラス名を有し得る。仮想デバイス・クラス名は、ユーザに対して人間読み取り可能省略表現を提供するために用いられ得る。このクラス名は、一意である必要はない。仮想デバイス・クラスIDにおける属性のセットの例は以下のとおりである。
ノード・マネージャ仮想デバイス・クラスIDにおける属性のセットの例は、以下を含む。
ここで、「BLOCK」データ・タイプは、N×Nのバイトのサイズのデータを含むデータ構造を表す。
(静的属性)
静的属性は、クラスのそれぞれに対してあらかじめ定義され得る。例えば、SVクラスは、異なるSV値、最小SV値、最大SV値、制御法則およびフラグを表すデータ・タイプのセットの静的属性を含み得る。
制御法則は、SVがどのように制御されるべきかを記述し得る。例えば、周波数に対するSVは、対数であり得、利得SVは、およそ0dBで付加的な分解能を有する対数であり得る。SVが、そのクラスのMinとMaxとの間の浮動小数点値を取るとき、ユーザに、あるルックアンドフィールを与えるために制御法則を特定することが所望され得る。例えば、周波数変数の場合には、ユーザがエンコーダをターンするとき、またはスピナー上の「アップ」コントロールボタンを押すとき、次の値が前の値から間隔が対数的に置かれることが所望され得る。制御法則はまた、SVが受容し得る粒度を特定するために用いられ得る。例えば、利得SVは、0.1dBの最大分解能有し得る。すべてのステップがあらかじめ定義されているので、列挙されたSVの場合には、制御法則は省略され得る。
フラグは、属性に関連したSVをさらに定義するためにあらかじめ定義され得る。フラグの例は、周期的に、または変化毎に、サブスクリプションのタイプを自動的にセットするためにサブスクリプションにおいて用いられ得るセンサ属性を含む。センサSVの例は、出力計、しきい値計測器、または電力増幅器温度を含む。非センサSVの例は、周波数またはMIDIチャンネルを含む。フラグの他の例は、SVがイベント・サブスクリプションにサブスクライブされ得ることを示すイベント・タイプ、または最大、最小、またはSV名ストリングが、ドキュメントされた静的クラス値から変化されたときといった変化を示す修正されるフラグを含む。SV名ストリングは、SVクラス内の「インスタンス属性」であるが、それは、普通、オブジェクト内で静的であり、従って、それになされた変化は、修正されたフラグを用いて追跡され得る。
オブジェクト・クラス、仮想デバイス・クラス、またはノード・マネージャ仮想デバイス・クラスはまた、クラス名といった静的属性を含み得る。オブジェクト・クラス名は、ユーザに対して人間読み取り可能省略表現を提供するために用いられ得る。オブジェクト・クラス名は、オーディオ関連デバイスのファミリの間で一意である必要はない。例えば、ミキサーである第1のオーディオ関連デバイスは、オブジェクト・クラス名「ObjClassSC_PEQ_5」を有し得、dbx DriveRackといったオーディオ関連デバイスの同一のファミリにおける第2のオーディオ関連デバイスは、クラス名「ObjClassDR_PEQ_5」を有し得る。双方のオーディオ関連デバイスは、クラス名「5Band PEQ」を有し得る。クラス名は、GUIのコントロール・パネル・ビュー上のドロップダウンから選択され得、ストリングとして格納され得る。
仮想デバイスにおいて、静的特性は、クラスIDに関連した値を有する仮想デバイスに属する属性であり得る。1つの例において、静的属性は、インスタンスごとにセットされず、かつ、ランタイム時に動的に変化されないかもしれない。仮想デバイスに対する静的属性はまた、名前ストリングを含み得る。名前ストリングは、仮想デバイスのインスタンス化を命名するために用いられ得る。名前ストリングは、クラス名と同一であり得る。同一名の複数のインスタンスがある際には、複数のインスタンスが、スペースおよび小数を加えることによって区別され得る。例えば、ミキサーであるオーディオ関連デバイスにおいて、「MHx Input Bank」の仮想デバイス・クラス名を有する入力フェーダ・バンクの2つのインスタンス化があるとき、各インスタンスに対する仮想デバイスの名前ストリングは、「MHx Input Bank 1」および「MHx Input Bank 2」であり得る。
ノード・マネージャ仮想デバイスの静的属性はまた、クラス・タイプを含み得る。ノード・マネージャのクラス・タイプは、ノード・マネージャの静的属性の値を決定し得る。属性は、インスタンスごとに基づいて変化しないかもしれないし、ランタイム時に変化されえないかもしれない。例えば、オーディオ関連デバイスの特定のタイプに対するノード・マネージャ・クラスにおける静的属性は、ノード・マネージャのすべてのインスタンス化において同一の値を有する。ノード・マネージャはまた、ベニュー・テーブル・サイズを示す静的属性を含み得る。ベニュー・テーブル・サイズの静的属性は、オーディオ関連デバイスによってサポートされるベニュー・テーブルのサイズを発見するためにクエリされ得る。ベニュー・テーブルの使用および動作は、後述される。
(インスタンス属性)
インスタンス属性は、SV、オブジェクト、仮想デバイス、またはノード・マネージャ仮想デバイス・クラスの各インスタンスに対して一意の値にセットされ得る静的属性である。
SVに関しては、オブジェクトまたは仮想デバイスは、値を定義するSVをインスタンス化し得る。従って、これらの属性は、オブジェクトまたは仮想デバイスに対して静的であり得る。SVクラスは、SV ID、名前ストリング、デフォルト値、コントロール・プリミティブ、コントロール座標(coordinate)、およびエンコーダ・モードといったインスタンス属性を含む。SV IDは、オブジェクトまたは仮想デバイス内の各SVの識別子として用いられるUWORDであり得る。SV IDは、ゼロベースである必要はなく、またオブジェクトまたは仮想デバイスを完全に占める必要はない。SVの名前ストリングは、SVに対して人間読み取り可能プロンプトを提供する。このストリングは、オブジェクト内のSVに対して一意である必要はない。例えば、パラメトリックEQの各バンドに対して、利得を表す各SVは、SVの名前ストリング「Level」を有する。デフォルト値は、オブジェクトまたは仮想デバイスを初期化するために用いられ得る。デフォルト値は、SVのデータ・タイプにおいて表され得る。デフォルト値は、プログラマが、オブジェクトの必要性に従って、これを一意に特定し得るように動的であり得る。例えば、2つのクロスオーバー周波数のSVを有するクロスオーバー・オブジェクトは、それぞれ100Hzおよび1.0KHzでそれらが初期化されることを所望する。コントロール・プリミティブは、オブジェクト、または仮想デバイスに対するジェネリックGUIのコントロール・パネル・ビュー、またはジェネリックGUIのアスペクト作るために用いられ得る。オブジェクト、または仮想デバイスは、コントロール・プリミティブが、各SVに対して用いられること示唆し得る。コントロール座標は、ジェネリックGUIのコントロール・パネル・ビュー、またはジェネリックGUIのアスペクトに対するコントロール・プリミティブの配置に対して用いられ得る。エンコーダ・モードは、どのようにエンコードといったGUIのアスペクト上のSV値を表示するかを示唆し得る。Encoder Mode属性のData Typeは、UBYTEであり得る。
オブジェクトはまた、名前ストリングといったインスタンス属性を含み得る。名前ストリングは、インスタンス化されたオブジェクトの名前であり得、STRINGデータ・タイプに格納され得る。例えば、プロダクトは、インスタンス化「Input 1」、「Input 2」等を有するオブジェクト・クラス「Input_Channel」を有し得る。オブジェクトはまた、フラグであるインスタンス属性を含み得る。フラグは、対応するオブジェクトに関しての情報を提供し得る。例えば、フラグの1つは、修正されるフラグあり得る。修正されるフラグは、オブジェクト内の1つ以上のSVが、それらの静的クラス定義から修正されたときを示すビットであり得る。可能な修正は、「SV Dynamic Attributes」のもとでリストアップされる。修正されたオブジェクトを認識した際に、コントロール面を有する別のオーディオ関連デバイスは、変化に対処するためにさらにクエリを行い得る。
ノード・マネージャ仮想デバイスはまた、ノード・マネージャが作成されるとき、カスタム値にセットされ得るインスタンス属性を含み得る。このようなインスタンス属性は、ランタイム中に動的に変化可能ではないかもしれない。ノード・マネージャのインスタンス属性の例は、先述されたノード・マネージャ仮想デバイス・クラスの例に含まれる(表4)。
表4の例において、ノード・マネージャ仮想デバイスの仮想デバイス名前ストリングは、ノードおよびノードが属するワークグループの双方の名前を指定し得る。名前ストリング属性は、ユーザセットでき(user―configurable)、不揮発性のメモリに格納され得る。シリアル・ナンバー属性は、各ノードを識別する一意のナンバーであり得る。例えば、一意のナンバーは、アドレス衝突を解決するために用いられ得る。シリアル・ナンバーの1つのタイプの例は、16進法のナンバーストリングである統計的に一意の128ビットIDであり得る。例えば、統計的に一意の128ビットIDの生成は、Microsoft(登録商標)のアプリケーション「uuidgen」を起動するPCを有して行われ得る。生成されたシリアル・ナンバーは、製造中にノードの不揮発性メモリに書き込まれ得、決して変化され得ない。シリアル・ナンバーの別のタイプの例は、先頭から80ビットがゼロにセットされた48ビットEthernet(登録商標) MACアドレスである。オーディオ関連デバイスが2つ以上のネットワーク・インターフェースを有する際には、通常、有効である、または、より頻繁に有効であるインターフェースからのMACアドレスが用いられ得る。
表4におけるソフトウェア・バージョン属性は、オーディオ関連デバイスにおいて動作可能な内蔵のファームウェアまたはPCアプリケーション・ソフトウェアのリビジョンであり得る。ソフトウェア・バージョンは、任意の形式のストリングによって表され得る。ホップ・カウント属性は、出力メッセージ(outgoing message)が初期化されるホップの数を示すために用いられ得る。ホップ・カウント属性のデータ・タイプは、UBYTEであり得、デフォルトは、所定のホップの数であり得る。ユーザ名A―D属性は、ユーザの各カテゴリに対するユーザ名を包含し得る。ユーザ・パスワードA―D属性は、ユーザの各カテゴリに対するパスワードを包含し得る。
表4におけるアドレス・モード属性は、ノードが、アドレス・ネゴシエーション中にランダムの、またはシーケンシャルのノード・アドレスを選ぶか否かを制御し得る。アドレス・ネゴシエーションは後述される。オーディオ・システムの例において、すべてのオーディオ関連デバイスは、アドレス衝突の可能性を最小にするためにランダムアドレッシングを用いるためにセットされ得る。あるいは、ツアー中のサウンド・オーディオシステムのような他のオーディオ・システムにおいて、シーケンシャルにナンバリングされたノードを有することが所望され得る。従って、アドレス・モード属性は、シーケンシャル・ノード・アドレッシングにセットされ得、シーケンシャル・ナンバリングは、1度に1つずつノード(オーディオ関連デバイス)をオンし、各々の次のノードが、最後のアドレスより1つ大きいアドレスを選択することにより達成され得る。アドレス・モード属性は、0―Randomおよび1―Sequentialのフォーマットの例を有するUBYTEに含まれ得る。
(動的属性)
動的属性は、クライアントセットであり得、またはランタイム時に修正され得る属性のサブセットである。このことは、SVに対してユーザ定義のレンジをおよび名前をセットするとき有用である。この例において、動的に修正され得るSV属性は、最小値、最大値、および名前ストリングである。修正可能な属性が、公表値から逸脱し、「動的」になるとき、発見プロセスは、実際の値を決定するために付加的なステップを必要とするかもしれない。この理由のために、動的属性のリストは、発見中に付加的なオーバーヘッドを制限するために特定の必要性がある状況に制限され得る。
仮想デバイスはまた、動的属性を利用し得る。例えば、動的属性は、仮想デバイスのクラスIDの一部として含まれ得る。この例において、動的属性は、仮想デバイスが、ランタイム時に異なるオブジェクトを包含するために再構成され得ることを示すために用いられるビットフラグであり得る。ビットフラグがクリアされるとき、動的属性は、仮想デバイスがオブジェクトの静的な構成を包含し、そのクラスIDによって全体的に知り得ることを示し得る。オーディオ関連デバイスが再構成可能なとき、1つより多い動的仮想デバイス・クラスの仕様がオーディオ関連デバイスに起こり得る。このシナリオにおいて、再構成可能なオーディオ関連デバイスは、オーディオ関連デバイスにおいて実行されるオーディオ関連機能または動作のセットを表すために動的仮想デバイスを用い得る。従って、クラス・タイプは、オーディオ関連機能または動作のセットのバージョンを識別するために用いられ得る。加えて、クラス・タイプは、オーディオ関連機能または動作のセットが、ソフトウェア・パッチ、ソフトウェア・アップグレード、別の仮想デバイスにおけるオーディオ関連機能または動作セット等と互換性があるかどうかを決定するために用いられ得る。例えば、ユーザが、動的仮想デバイスによって表されるオーディオ関連デバイスのオーディオ関連機能または動作のセットの値を、クリップボードに複製するとき、仮想デバイスタイプのシンプルなチェックは、ユーザがそのオーディオ関連機能または動作のセットの値を、それ自身の一意の動的仮想デバイス・クラスを有する別の仮想デバイスにおける互換性がないオーディオ関連機能または動作セットにペーストし得ることをストップする。
(通信サポート)
SV、オブジェクトおよび仮想デバイスは、オーディオ関連デバイス間の通信をサポートする。SV、オブジェクトおよび仮想デバイスのクエリおよび修正は、メッセージベースの通信インフラを有し得る。加えて、ポインタ等を介してクエリおよび修正を行うダイレクトコーリングがまた可能である。通信インフラは、SV、オブジェクトおよび仮想デバイスを用いる通信インフラのサポートが異なるオーディオ・ノード構造を有する異なるオーディオ関連デバイスにわたり一様であり得るようにあらかじめ決定され得る。
所定のメッセージのサポートは、クエリおよび修正されているオーディオ・ノード構造コンポーネントにいくらか依存し得る。SVは、実際の値を含み得、それゆえに、関連した実際の値の修正に関連したメッセージをサポートする。符号ありのフォーマット済の置換用の実際の値、または割合の変化値を有するセットポイントといったSVの実際の値を変化するメッセージがサポートされ得る。
さまざまな形式の「獲得(get)」メッセージがサポートされ得る。獲得メッセージは、1つ以上のSV、オブジェクト、または仮想デバイスに関連した属性を取得する獲得属性メッセージを含み得る。加えて、獲得メッセージは、獲得値ストリング・メッセージを有するといったSVから実際の値を要求し得る。オブジェクトおよび仮想デバイスの場合には、リストまたはテーブルを提供する獲得メッセージがサポートされ得る。後述されるように、ノード内の仮想デバイスのリストは、仮想デバイス・ノード・マネージャから要求され得る。同様に、仮想デバイス内のオブジェクトまたはSVのリストおよび/またはオブジェクト内のオブジェクトのリストといった他のコンポーネント内部のコンポーネントのリストは、獲得メッセージを用いて要求され得る。獲得メッセージはまた、それぞれの仮想デバイスまたはオブジェクトによって表される機能性に含まれている入力および出力に関連した情報を提供する仮想デバイスおよび/またはオブジェクトによってサポートされ得る。例えば、メッセージは、仮想デバイスI/Oのリストおよび/またはオブジェクトI/Oのリストに対してクエリし得る。さらに、SV、オブジェクトおよび/または仮想デバイスに関連した他の任意の情報を提供する獲得メッセージがまたサポートされ得る。
「セット(set)」メッセージがまたサポートされ得る。セットメッセージは、SVにおいて実際の値をセットし、属性をセットし、リストにおいて1つ以上の値をセットし、テーブルを修正等し得る。加えて、「サブスクライブ(subscribe)」および「アンサブスクライブ(unsubscribe)」は、SV、オブジェクトおよび仮想デバイスによってサポートされ得る。情報に対するオーディオ関連デバイスをポーリングすることを伴う「獲得」メッセージとは対照的に、「サブスクライブ」メッセージは、情報を提供するイベント・ドリブン・メカニズムを作成し得る。例えば、サブスクライブ・メッセージは、変化が行われたいかなる時にも、コンポーネント変化内のSVの実際の値を要求するために用いられ得る。このようなサブスクライブ・メッセージは、同一または異なるオーディオ・ノード構造を有する1つ以上の個々のオーディオ関連デバイスの間のサブスクリプション可能にするためにサポートされ得る。例えば、第1のオーディオ関連デバイスにおける第1のオブジェクトまたは仮想デバイスは、第2のオーディオ関連デバイスにおける1つ以上の他のオブジェクトおよび/または仮想デバイスにおけるすべてのSV、選択されたSV、または1つのSVにサブスクライブし得る。サブスクライブ・メッセージは、実際の値、エラー、構成および/またはステータスといったコンポーネントについて利用可能な任意の情報に関連し得る。
(ルーティング)
メッセージのルーティングは、オーディオ関連デバイスのノード構造におけるオブジェクトといったコンポートネント間であり得る。加えて、メッセージは、異なるオーディオ関連デバイスのノード構造におけるコンポーネント間でルーティングされ得る。ルーティングは、仮想デバイスおよび/またはオブジェクト間で構成され得る。異なるオーディオ関連デバイスにおけるコンポーネント間でのルーティングに対して、コンポーネントは、1つ以上の物理的インターフェースに結び付けられており、物理的インターフェースは、オーティオネットワークへ/からオーディオをストリームし得る。
ルーティングは、各コンポーネントを構成することによって構築され得る。このような構成は、各ルーティングのソースおよび目的地を一意に識別することを伴い得る。例えば、第1のオブジェクトといった第1のコンポーネントは、入力が、第2のオブジェクトといった第2のコンポーネントの出力からであること、および第1のコンポーネントの出力が、第2のコンポーネントの入力に提供されることを識別するために構成され得る。各コンポーネントは、多数のチャンネルを有し得る。チャンネルは、ゼロベースの整数値といった所定の識別子によって識別され得る。チャンネルは、入力または出力のいずれかであるように構成され得る。チャンネル識別子は、一意のオーディオ・アドレスを形成するためにオーディオ関連デバイスのオーディオシステムアドレスと組み合わされ得る。例えば、0xABC00000001のオーディオ・アドレスを有するオーディオ関連デバイスは、I/O ModeのOutputであるチャンネル12を有し得る。
オーディオ・アドレスは、出力オーディオ・アドレス、または入力オーディオ・アドレスであり得る。従って、オーディオ関連デバイスは、入力チャンネルがどこでそのオーディオソースを取得すべきかを識別するために出力オーディオ・アドレスを受け取り得る入力チャンネルを有し得る。加えて、オーディオ関連デバイスは、出力チャンネルがどこにその出力をルーティングすべきかを識別するために入力オーディオ・アドレスを受け取り得る入力チャンネルを有し得る。例は以下のとおりである。
入力アドレスを特定する出力接続(第1のオブジェクト)
オーディオ・アドレス:0xABCD00000002,チャンネル:2,I/O モード:入力
出力アドレスを特定する入力接続(第2のオブジェクト)
オーディオ・アドレス:0xABCD00000001,チャンネル:12,I/O モード:出力。
(サブスクリプション)
サブスクリプションは、何か変化があった際にコントロール・パネル・ビューおよび/またはオーディオ関連デバイスに通知するために用いられ得るメカニズムである。サブスクリプションは、「変化毎」に、または「周期的」にといった所定の条件に基づき得る。すべての測定は、サブスクリプションを介して処理され得る。例えば、第1のコントロール・パネル・ビューは、SVにサブスクライブする。そのSVが、第2のコントロール・パネル・ビューによって変化されるとき、第1のコントロール・パネル・ビューには、SVの新しい実際の値が伝えられる。通知は、SVSetメッセージといったセットメッセージを用いて処理され得る。すべてのサブスクリプション・メッセージは、SVの実際の値といった即時の応答を自動的に生成し得る。その応答は、同一の値を有する異なるコントロール・パネル・ビューを同期させるために即時であり得る。
サブスクリプション・メッセージにおいて、サブスクライブされるものは、変化を報告するために特定された仮想デバイス、オブジェクトおよびSD IDを用いるように指示され得る。サブスクライブされるものの観点からして、変化がサブスクライブするものに報告されるとき、サブスクライブするもの上のSVは、サブスクライブされるものに、サブスクライブされるもの上の特定のSVが変化されたことをサブスクライブするものに通知することとは対照的に、新しい値にセットされる。例えば、このメカニズムは、サブスクライブするものがサブスクライブされるもののフルミラーされたデータのセットを保持していないとき、有用である。ウォール・コントローラまたはカスタム・コントロール・パネルといったシンプルなコントロール面であるサブスクライブするものは、SV自身のオーディオ・アドレスを有するそれ自身のSVのセットを有し得る。サブスクライブされるものは、サブスクライブするものの側上で必要とされる変換なしに、これらのSVを直接的に単純にセットし得る。従って、各SVは、マッピングされる0からNのオーディオ・アドレスのセットおよびSV IDを有し得る。SVが変化するとき、所定のサブスクリプションのリストは、サブスクライブされるものによってアクセスされ得、SV_Setといったセットメッセージが、変化されたSVにマッピングされるサブスクリプションのリスト上のサブスクライブされるもののそれぞれに送達され得る。ネットワーク・トラフィックを最小にするために、通知は、バンドルされ、通常のバンドリング技術のいずれか1つを用いて任意の1つのノードに送達さえ得る。
各SVクラスは、それぞれのSVがセンサSVまたは非センサSVとみなされるべきか否かを定義し得る。すべてのセンサSVは、周期速度でといった所定の条件に基づいて通知し得る。周期速度は、サブスクライブするものによって特定され得る。オーバーヘッドであるために、センサが、サブスクライブするものによって示唆された速度でサポートし得ないとき、センサは、より遅い速度で通知し得る。センサは、サブスクライブするものによって特定された速度より早い速度で通知しないように構成され得る。サブスクリプション・メッセージは、サブスクリプションがセンサSVに対してであるとき、用いられる速度を含み得る。非センサSVは、変化毎に通知するように自動的に割り与えられ得る。
サブスクリプションはまた、イベント・サブスクリプション、またはバリュー・サブスクリプションといった所定の条件に基づき得る。バリュー・サブスクリプションは、SVの実際の値が第3者によって変化されたとき、SVの新しい実際の値が通知される要求である。例えば、コヒーレントな状態でとどまる必要がある複数のコントロール・パネル・ビューが、ミキサー・コアであるオーディオ関連デバイスに接続しているとき、バリュー・サブスクリプションが用いられ得る。第1のコントロール・パネル・ビューが、ミキサー・コアにおいてミュートであるとき、第2のコントロール・パネル・ビューは、バリュー・サブスクリプションを有して、第2のコントロール・パネル・ビューにおいてミュートインジケータを制御するSVに通知され得る。
イベント・サブスクリプションは、スイッチ・コンタクト・クロージングといったハードウェア・トリガに応答してSVの現在の値が通知される要求である。SVは、それに関連した入力ハードウェアを有するとき、イベント・サブスクリプションをサポートし得る。イベント・サブスクリプションの能力は、SVクラス宣言の一部として示され得る。イベント・サブスクリプションをサポートしていないSVからイベント・サブスクリプションを取得する試みは、エラーでもって拒絶される。
アプリケーションの例において、イベント・サブスクリプションは、割り当て可能なコントロール面上の「バンク」ボタンをインプリメントするために用いれ得る。バンクスイッチは、出力オーディオ・アドレスとして「マクロ(macro)」という名前を保持するSVを維持する。バンク・ボタンが押下されるとき、イベント・サブスクリプションは、SVの実際の値をサブスクライブしているオブジェクトに提供し得、サブスクライブしているオブジェクトは、「マクロ」を実行し得、これによって、フェーダを再マッピングする。
イベントおよびバリュー・サブスクリプションは、相互に排他的でなない。イベントおよびバリュー・サブスクリプションの双方は、同時に有効であり得る。この例は、オートメーション・オブジェクトである。先述された例において、オートメーション・オブジェクトは、バンクスイッチが押下されたときに、記録をするためにイベント・サブスクリプション、および、異なる値にリプログラムされているスイッチをキャプチャするためにバリュー・サブスクリプションを用い得る。先述の例はまた、2つの別々のSVとしてコード化され得、1つは、実際のスイッチの押下を表し、別の1つは、スイッチの押下で送達され得る値を表す。この仕組みでは、イベント・サブスクリプションは、オーディオ関連デバイス上でサポートされ得る。
サブスクリプションはまた、マルチレベルであり得る。SVサブスクリプションでは、サブスクリプションは1つサブスクリプション要求メッセージ内の単一のSV、またはSVのリストに対してであり得る。オブジェクトおよび仮想デバイスサブのスクリプションはまた、単一のSVまたは複数のSVに対してであり得る。オブジェクトにおけるSVのすべては、SateVariableSubscribeAllメッセージといった単一のメッセージを有してサブスクライブされ得る。仮想デバイスまたはオブジェクトが複数のオブジェクトを包含するとき、サブスクライブされるものは、サブスクリプションにおける仮想デバイスまたはオブジェクトの階層オーディオ・ノード構造を形成するSVのすべてを含み得る。1つの例において、サブスクリプション・データ・メッセージで送達されるべきデータの量を最小にするために、サブスクライブされるものは、サブスクライブするものの仮想デバイスおよび/またはオブジェクトが、サブスクライブされるものと同一の構造を有すると仮定し得る。サブスクライブされるものが、サブスクライブされるもののオーディオ・ノード構造の一部をミラーするオーディオ・ノード構造の一部を有するとき、アドレッシング情報は、サブスクリプション・データ・メッセージペイロードに含まれるSVの実際の値から省かれ得る。ノード全体へのサブスクリプションがまた要求され得る。ノードによって生成されるエラーのすべてにサブスクライブするために、SubscribeErrorsメッセージといったノード構造メッセージが、サブスクライブされるものの仮想デバイス・ノード・マネージャに向けられ得る。
サブスクライブするものは、代替目的地の仮想デバイスまたはオブジェクトに供給されるべきサブスクリプション・データ・メッセージを要求し得る。代替目的地はまた、「ミラーされた」オーディオ・ノード構造を含み得る。ミラーされたオーディオ・ノード構造は、GUI、コントロール面、またはオートメーションデバイスといったオーディオ関連デバイスが、サブスクライブするものとサブスクライブされるものとおけるにコンポーネントとの間でアドレス衝突を起さずに他の任意のオーディオ関連デバイスにサブスクライブすることを可能にする。
1つの例において、サブスクライブするもののオブジェクトのSVのリストは、個々のSV IDのそれぞれがサブスクライブデータメッセージで送達される必要がないようにサブスクライブされるもののオブジェクト上のSVのリストをミラーする。オブジェクト全体へのサブスクリプションはまた、サブスクリプションがセンサデータおよび非センサデータのすべてに対してであるか、すべてのセンサまたはすべての非センサに対してであるか否かを特定し得る。仮想デバイスへのサブスクリプションは、サブスクリプション・メッセージを仮想デバイスにアドレッシングすることによって行われ得る。仮想デバイスに包含されているSVのすべて、および仮想デバイスに包含されているすべてのオブジェクトがサブスクラブされ得る。サブスクライブするものの仮想デバイス構造は、サブスクライブされるものの仮想デバイスの構造と同一であり得る。
サブスクリプションは、追加およびリムーブメッセージを用いて追加、または取り除かれ得る。例えば、サブスクライブ・メッセージは、サブスクリプションを追加するために用いられ得、アンサブスクライブ・メッセージは、サブスクリプションを取り除くために用いられ得る。サブスクライブ・メッセージは、サブスクライブされるものが、1つ以上の識別されたSVに対するサブスクライブされるもののサブスクライブのリストに、サブスクライブするものを追加するように命令する。これに反して、アンサブスクライブ・メッセージは、サブスクライブされるものが、1つ以上の識別されたSVに対するサブスクライブのリストから、サブスクライブするものを取り除くように命令する。例えば、同一のオブジェクト上の1つのSVから別のSVにサブスクリプションを変化することが所望されるとき、第1のサブスクリプションのUnSubscribeおよび新しいサブスクリプションに対するSubscribeの双方が送達され得る。
複数のSVはまた、SVUnSubscribeAllメッセージといった単一のアンサブスクライブ・セット・メッセージにおいてアンサブスクライブされ得る。このようなアンサブスクライブ・セット・メッセージは、オブジェクトまたは仮想デバイス下のすべてのSVからアンサブスクライブするために用いられ得る。仮想デバイスまたはオブジェクトは、複数のオブジェクトを包含するとき、アンサブスクライブ・セット・メッセージは、アンサブスクライブ・メッセージで識別されるオーディオ・ノード構造の対応する部分において、すべてのSVを含み得る。サブスクライブ・メッセージと同様に、送達されるべきデータの量を最小にするために、アンサブスクライブするものは、サブスクライブするものおよびサブスクライブされるもののオブジェクトアドレスおよびSV識別子が相互交換して、用いられるようにミラーされたオーディオ・ノード構造を有し得る。
(エラー処理)
エラーメッセージは、プロトコルエラーおよびデバイスエラーとして一般的にカテゴリ化される。オーディオ関連デバイスが奇形、さもなければ解読不能のメッセージを受け取るとき、プロトコルエラーが起こる。このタイプのエラーの例は、誤った長さフィールドを有するメッセージである。最良の形態として、デバイスは、すべてのこのようなエラーの検出を試み、報告すべきである。デバイスが、デバイス特定の理由のために要求された動作を行うことをできないとき、デバイスエラーが起こる。このタイプのエラーの例は、一時的にビジー、さもなければ利用不可能であるサブシステムと通信しようとする試みであり得る。別のエラーの形としては、アプリケーションエラーである。アプリケーションの例は、オーディオ関連デバイスの単一のパスにおけるどこかでクリップすることである。
オーディオ関連デバイスは、メッセージを受け取ると、エラーを報告し得る。エラーを通信するメカニズムは、エラー認識メッセージおよびエラーサブスクリプションを含む。エラー認識メッセージは、エラーを送達デバイスに報告するために用いられ得る。エラー認識メッセージは、メッセージ・ヘッダー・フラグにおいてビットの形式を取る。デバイスが、エラーである、または結果的にエラーになるメッセージを受け取るとき、エラー情報メッセージは、送達するものに戻され得る。
エラーサブスクリプションは、当事者が、オーディオ関連デバイスによって生成されるエラー認識メッセージにサブスクライブすることを可能にする。エラーサブスクリプションは、動作中に、当事者がすべてのエラーをモニタ、またはログを取り得るように用いられ得る。エラーサブスクリプションでは、サブスクライブされるものによって送達されるすべてのエラーメッセージがサブスクライブするものに複製され得る。エラーサブスクリプションデータは、エラーメッセージおよびエラーを起したオリジナルメッセージを含み得る。そのメッセージのサイズを縮小するために、オリジナルのメッセージが長すぎるとき、オリジナルのサブスクリプション・メッセージが最大のサイズに制限され得、それによってエラーを起したオリジナルのメッセージが結果的にトランケーションされる。
(イベント・ロギング)
イベント・ロギングは、ノード上の重大な出来事を格納し、報告する方法である。イベントは、ベニュー・プリセットのリコールといった情報的な性質なものであり得、または、電源異常のようなより深刻なエラーであり得る。イベントは、ノードによって記録され、コントロール・パネル・ビューといったイベント・ログ・クライアント・イベントを読み出すときまで、不揮発性ストレージに格納され得る。
イベント・ロギングは、多くの点においてエラー処理とは異なり得る。
a)イベント・ロギングは、良性イベントが可能である。;エラー処理は、故障モードだけを報告する。
b)イベント・ロギングは、クライアントがオンラインでないとき、イベントを保存し得る。;エラー処理は、クライアントがオンラインでないとき、イベントを保存し得えない。
c)イベント・ログは、「オン・デマンド」を供給される。エラーは、サブスクリプションを介してプッシュされる。
d)イベントは、カテゴリを割り当てられ、優先権を与えられ得る。エラーは、カテゴリおよび優先権を与えられ得ない。
イベント・ログは、メッセージを用いてXMLファイルといった所定のフォーマット、またはバイナリフォーマットでエクスポートされ得る。XMLは、オーディオ関連デバイスのメモリ・リソースが、結果生じるファイルを生成するために十分である所定のフォーマットである。制限されたリソースを有するオーディオ関連デバイスは、バイナリフォーマット、または独自に圧縮されたフォーマットさえ用い得る。
XMLイベント・ログは、FTPプロトコルといったファイル転送プロトコルを介して転送され得る。IP対応でないネットワーク上で、ログをエクスポートすることを必要とするオーディオ関連デバイスは、メッセージを介してイベント・ログエントリを転送するバイナリ・イベント・ログ・フォーマットを用い得る。あるいは、イベント・ログは、Web Browser(登録商標)を介して直接的にアクセスされ得る。
(ワークグループ)
ノードは、ワークグループにおいて構成され得る。一般的に、ノードのワークグループは、大きな共鳴板といった比較的複雑な機能を有するオーディオ関連デバイスに配置される。オーディオ関連デバイス内において、ノードは、協調動作機能に統合される。ワークグループは、階層的であるが、オーバラップし得ない。各ワークグループは、ストリング名によって識別され得、階層のレベルは、「\」といった所定の文字によって分けられ得る。ワークグループの例は、コントロール面の機能性を表すノードおよびをオーディオラックの機能性を表すノードといった2つのノードを含むコンソールといったオーディオ関連デバイスであり得る。双方のノードがアクティブであるとき、コンソールは、「全体(whole)」であると考えられ得る。このオーディオ関連デバイスのワークグループは、「FOH Mixer」として指定され得、ノードは、「FOH Mixer\Surface」および「FOH Mixer\Audio」と呼ばれ得る。
ワークグループはまた、オーディオ・システムをセグメント化するために用いられ得る。オーディオ・システムのセグメント化は、オーディオ・システムにおけるサブシステムへのアクセスを制御するために、それ以外の場合には、オーディオ・システムの機能性をサブシステムに分けるために所望され得る。例えば、スタジアムのオーディオ・システムのデザインでは、トップレベルのワークグループは、「Stadium」として識別され得る。中間のレベルのワークグループは、「SkyBoxes」として識別され得、個々のスカイボックスのそれぞれは、それ自身のワークグループとして識別され得る。従って、この例において、スカイボックスナンバー10におけるオーディオ関連デバイスのワークグループは、「Stadium\SkyBoxes\Skybox10」であり得る。発見は、スカイボックスの内側のコントロール面が、そのスカイボックス内のノードだけを発見するように選択し得るように分離され得るが、ワークグループ「Stadium\SkyBoxes」に割り当てられるコントロール面は、スカイボックスのいずれかにおける任意のオーディオ関連デバイスを発見し得る。発見は、より詳細に後述される。
ワークグループによるセグメント化は、アプリケーション層内の発見プロセスに限定され得る。他のメッセージはなお、異なるワークグループ間でパスされ得る。ワークグループの割り当ては、属性を有し得る。「名前ストリング」といったワークグループストリングは、ノード・マネージャ仮想デバイスの属性であり得る。このストリングは、セットされ、他のオーディオ関連デバイスによってクエリし得る。
(パフォーマンス機器マネージャ(「PEM」))
図5は、PEMおよびオーディオ・システムの一部のブロック図である。PEM500は、1つ以上のメモリデバイスに格納されている複数の命令およびデータで形成され得る。メモリデバイスは、取り出されるためのデータを保存する任意の媒体であり得、ハードディスクドライブ、コンパクトディスクドライブ、デジタル多用途ディスクドライブ、RAM、ROM、PROM、EEPROM、フラッシュメモリ、または他の任意のデジタル格納装置を含み得る。PEM500は、オーディオ・システムにおける任意のオーディオ関連デバイス上に常駐する。
PEM500は、メモリに格納されているアプリケーション層502およびにネットワーク・インターフェース504を含み得る。ネットワーク・インターフェース504は、PEM500とオーディオ関連デバイス506、または複数のオーディオ関連デバイスとの間で通信が可能であるように構成され得る。PEMのネットワーク・インターフェース504は、先述されたオーディオ関連デバイス506のネットワーク・インターフェースと同様な態様で動作し得る。例えば、PEM500は、デバイス506に直接的に接続され得るか、オーディオ・ネットワーク120を用いてデバイス506と通信し得る。オーディオ・ネットワーク120はまた、先述されたような第1のスイッチ330を介して第1のオーディオ・ネットワーク334に結合され得る。PEM500は、先述されたようなEthernet(登録商標)508、FireWire510、USB512、RS232 514、またはRS485 516といった任意の通信リンクを用いてデバイス506と通信し得る。加えて、PEM500は、先述されたオーディオ・ストリーム・モジュール322およびオーディオ・サービス・モジュール324を含み得る。
ネットワーク・インターフェース504はまた、ルーティング・テーブル518を含み得る。ルーティング・テーブル518は、ノードとPEMとの間でデータをルーティングするために用いられ得る。ルーティング・テーブル518は、オーディオ・ネットワーク120上のノード間でルートのリスト、およびノード間で送達されるネットワーク情報を格納し得る。ルーティング・テーブル518は、重複ネットワークを可能するノードのセット間の複数のルートを含み得る。ルートは、最短トランジット時間に基づいて選択され得る。いくつかの要因が、最短トランジット時間を決定することにおいて考慮され得る。例えば、ノード間の帯域幅は、特定のルートの「コスト」における要因であり得る。加えて、ホップ・カウントおよびメッセージ・サイズも考慮され得る。これらの要因に基づいて、「コスト」は、各ルートに関連付けられ得、例えば、異なるルートが、コストを最小、または所定のしきい値未満にコストを維持するように選択され得る。
アプリケーション層が動作しているデバイスの能力に依存して、PEMのアプリケーション層502は、「厚い」アプリケーション層502a、または「薄い」アプリケーション層502bのいずれかであり得る。「厚い」PEMでは、デバイスのオーディオ・ノード構造全体が取得され、オーディオ・ノード構造全体を表す適切なコントロール・パネル・ビューのセットを決定するために分析され得る。しかしながら、「薄い」PEMは、表示されるべきコントロール・パネル・ビューに対して必要とされるオーディオ・ノード構造の一部だけを取得し、分析し得る。従って、PEMによって取得され、かつ、分析されたコントロール・パネル・ビューは、PEM500が動作しているオーディオ関連デバイス506の演算能力に依存する複雑さのスライド・スケールに基づき得る。いくつかの状況において、「厚い」PEMは、処理能力を保存するために、またはネットワーク・トラフィックを制限するために「薄い」PEMと同様な態様で動作し得る。例えば、デバイスにクエリする前に、「厚い」PEMは、オーディオ・ネットワーク120上のトラフィックの量が多いことを認識し得、それ故に、ネットワーク・トラフィックを減らすためにオーディオ関連デバイス506のオーディオ・ノード構造の一部だけを取得し得る。
PEMのアプリケーション層502は、GUIのコア520、プラグイン・インターフェース522、および複数のプラグイン523を含み得る。プラグイン523はジェネリック・プラグイン524および1つ以上のプロダクト・プラグイン526を含み得る。GUIのコア520は、デバイス506のオーディオ・ノード構造にクエリするように構成され得る。このオーディオ・ノード構造データは、デバイス506に対する適切なコントロール・パネル検索するためにプロダクト・プラグイン526および/またはジェネリック・プラグイン524にブロードキャストされ得る。デバイスにおけるオーディオ・ノード構造の各部分が、既知で、かつ、所定のコントロール・パネル・ビューを有するか否かに関わらず、(プロダクト・プラグイン526および/またはジェネリック・プラグイン524とともに)GUIのコア520は、ディスプレイドライバ528に、ディスプレイがオーディオ・ノード構造の各レベルに対してコントロール・パネル・ビューを表示するために駆動するように指示し得る。コントロール・パネル・ビューが、オーディオ・ノード構造全体に対して既知であるとき、所定のコントロール・パネル・ビューは、ディスプレイドライバ525を用いて表示され得、デバイスをモニタし、かつ、制御するために用いられ得る。しかしながら、オーディオ・ノード構造のすべて、または一部が未知であるとき、「ジェネリック」コントロール・パネル・ビューまたはオーディオ・ノード構造の未知の部分に対する「ジェネリック」GUIのアスペクトが動的に生成され、ディスプレイドライバ528を用いて表示され得る。「ジェネリック」コントロール・パネル・ビュー、または所定のコントロール・パネル・ビューに含まれるGUIのアスペクトは、デバイスを制御するために用いられ得る。
GUIのコア520は、ネットワーク・インターフェース504を介してデバイス506と通信し得る。GUI520、ジェネリック・プラグイン524およびプロダクト・プラグイン526間の通信は、プラグイン・インターフェース522を通過し得る。ジェネリック・プラグイン524およびプロダクト・プラグイン526はまた、プラグイン・インターフェース522を用いてお互いに通信し得る。
図6は、GUIのコア520の例のブロック図である。GUIのコア520は、ノード分解能モジュール600を含み得る。(直接的に、またはネットワークを介して)PEMに接続された各オーディオ関連デバイスは、一意のノード識別(「ID」)にも用いて識別され得るノードである。ノード分解能モジュール600は、PEM500に接続されている各デバイスにノードIDを、またはノード・アドレスを割り当てるノードIDエンジン602を含み得る。新しいデバイスが、PEM500に接続されているとき、ノードIDエンジン602は、ノードIDを新しいノードに割り当て得る。このようなノードIDを割り当てるために用いられ得る方法が後述される。
GUIのコア520はまた、システム・プラグイン・ノード・マネージャ604を含み得る。システム・プラグイン・ノード・マネージャ604は、プラグイン・インターフェース522を介してプロダクト・プラグイン526およびジェネリック・プラグイン524と通信し得る。システム・プラグイン・ノード・マネージャ604は、GUIマネージャ606、システムワイド設定モジュール608および制御ライブラリ610を含み得る。
GUIマネージャ606は、コントロール・パネル・ビューのGUIフォーマットのモードを管理するように構成され得る。例えば、GUIマネージャ606は、ベニュー・ビューとプロダクト・ビュー間で切り替え得る。ベニュー・ビューでは、コントロール・パネル・ビューのGUIは、同時に、ユーザがオーディオ・システムにおける複数のデバイスをビューすることを可能にする。例えば、ベニュー・ビューは、オーディオ関連デバイス間の相互関連と同様にシステムにおけるすべてのオーディオ関連デバイスを表示し得る。このモードは、フローティング・ウィンドウを用いてセットアップされ得る。各フローティング・ウィンドウは、デバイスに関しての情報を表示する。プロダクト・ビューでは、単一のオーディオ関連デバイスに対するコントロール・パネル・ビューのGUIが表示され得る。いくつかの例において、プロダクト・ビューは、ユーザが、オーディオ関連デバイスに対するさまざまな仮想デバイスまたはオブジェクトの間を切り替えることを可能にするメニューまたはタブ階層を有し得る。ユーザは、必要に応じプロダクト・ビューとベニュー・ビュー間で切り替え得る。例えば、タブレット・コンピュータ上で見られるといったタッチ・スクリーン・インターフェースを用いるとき、ユーザは、プロダクト・ビューを用い得、また、マウスおよびキーボードを有するコンピュータを用いるとき、ユーザは、ベニュー・ビューを用い得る。図27は、システムのベニュー・ビューの例を示し、一方、図28、29は、プロダクト・ビューの例を示す。
システムワイド設定モジュール608は、後に使用されるためにオーディオ・システムのすべて、または一部の設定を格納するように構成され得る。これらの保存された設定は、後にロードされ、セーブされた構成を再格納するために各オーディオ関連デバイスに送達され得る。GUIマネージャ606はまた、それぞれのプロダクト・プラグイン526およびジェネリック・プラグイン524の各々によってすべての設定およびコントロール・パネル・ビューが保存さえることを指示し得る。
GUIマネージャ606はまた、カスタム・コントール・パネル・ビューを生成する能力を提供するように構成され得る。カスタム・コントール・パネル・ビューは、プロダクト・プラグイン526およびジェネリック・プラグイン524からの所定のGUIのアスペクトまたはジェネリックGUIのアスペクトを用いて異なる複数のデバイスからデータ変数を有するように構成され得る。GUIマネージャ606はまた、複数のホットボタンを有するように構成され得る。ホットボタンは、プロダクト・プラグイン526およびジェネリック・プラグイン524における特定のデバイスの特定のコントロール・パネル・ビューにマッピングされ得るか、または、ユーザによって作成されたカスタム・コントロール・パネル・ビューにマッピングされ得る。
カスタム・コントロール・パネル・ビューを作成するとき、異なるプロダクト・プラグインからの特定の格納されている所定のGUIのアスペクトが、格納されている所定のコントロール・パネル・ビューから作成中のカスタマイズされたコントロール・パネル・ビューにドラッグされ得る。例えば、格納されている所定のコントロール・パネル・ビュー上のスライダは、マウスでクリックされ、カスタマイズされたコントロール・パネル・ビューに移動され得る。加えて、カスタマイズされたコントロール・パネル・ビュー内において、ドラッグされ、ドロップされたGUIのアスペクトは、異なるGUIのアスペクトに変化、または「変形」され得る。例えば、ドラッグされ、ドロップされたスライダは、ノブ、ボタン、ロータリ・エンコーダ、リスト・ボックス等に変化され得る。変化されたGUIのアスペクトはまた、異なる値を有するように構成され得る。例えば、0〜100%のレンジを有し、ドラッグされドロップされるスライダであって、ボタンに変化されたスライダの場合には、このボタンは、20%は押下した状態で、60%は押下していない状態を有するように構成され得る。
GUIマネージャ606はまた、ベニュー機能コントロールを含み得る。ベニュー機能は、デバイスに含まれているベニュー設定の所定の複数のグループを参照し得る。ベニュー設定は、オーディオ関連デバイスのメモリにベニュー・テーブルとして格納され得る。ベニュー・テーブルに含まれているベニュー設定のそれぞれは、オーディオ関連デバイスのオーディオ・ノード構造の対応するコンポーネントによって識別され得る。従って、ベニュー設定のグループが選択されたとき、ベニュー設定のそれぞれは対応するコンポーネントに存在する現存の設定を置換し得る。
例えば、デバイスのグループは、演奏に対するEQ設定のグループおよび演劇に対する異なるEQ設定のグループを有し得る。別の例において、いくつかのオーディオ関連デバイスは、あるベニューおいて無効にされ、別のベニューにおいて有効にされ得る。GUIマネージャ606は、ベニュー・テーブルからのベニュー設定のグループの1つの選択することを提供する機能を含み得る。ユーザによってベニュー設定のグループの1つが選択されると、ベニュー設定のグループ識別子を含むセット・ベニュー・メッセージがPEMによって、オーディオ関連デバイスのすべてに送達され得る。ベニュー設定グループに対応するベニュー設定のグループを有するこれらのオーディオ関連デバイスは、セット・ベニュー・メッセージに示されているベニュー設定のグループを有する動作に切り替え得る。このようなベニュー設定のグループを有しないこれらのオーディオ・デバイスは、セット・ベニュー・メッセージを無視し得、および/または無効にされる。
制御ライブラリ610がまた、GUIのコア520に提供され得る。制御ライブラリ610は、ユーザ定義のSVに関連付けられ得るGUIのコントロール・パネル・ビューおよび/またはGUIのアスペクトのセットを含み得る。例えば、ユーザは、制御ライブラリ610からスライダバーを表すGUIのアスペクトを引き、そのスライダバーをオーディオ・システムにおける異なるオーディオ関連デバイスのいくつかのSVと関連付け得る。従って、ユーザは、GUIコントロールパネビュー上のいくつかのスライダ(または他のコントロール)を同時に制御するために「マスター・コントローラ」としてカスタムスライダバーを用い得る。加えて、ユーザは、GUIのコントロール・パネル・ビューを用いてマスター・コントローラに掘り下げ得、マスタースライダを用いて調整されているデータ変数のオフセットを調整する。
GUIのコア520はまた、サブスクリプション・マネージャ612を含み得る。サブスクリプション・マネージャ612は、コントロール・パネル・ビューおよび/またはデバイスにおいて変化されるデータの更新および通知を管理し得る。例えば、GUIのコントロール・パネル・ビューは、関連したSV値を有するスライダを包含し得る。ユーザが、GUIのコントロール・パネル・ビューにおけるスライダを移動(従って、スライダに関連したSVの実際の値を変化)するとき、サブスクリプション・マネージャ612は、サブスクリプションを管理し得る。例えば、サブスクリプション・マネージャ612は、データが適切なフォーマットで、対応するSVに以前にサブスクライブした対応するオーディオ関連デバイスに送達されたことを確認し得る。
GUIのコア520はまた、特定のコントロール・パネル・ビュー上でユーザに可視的であるGUIコントロール、およびGUIコントロールに関連しSV値を追跡するリンク・マネージャ614を含み得る。リンク・マネージャ614は、リンク・エンジン616およびイベント・エンジン618を含み得る。イベント・エンジン618は、コントロール・パネル・ビューまたは対応するオーディオ関連デバイスにおける任意のSVの実際の値への変化を通知され得る。コントロール・パネル・ビューにおけるSVへの変化がなされるとき、リンク・エンジン616は、変化されたSVに関連づけられた任意のコントロール・パネル・ビューおよび/またはオーディオ関連デバイスに通知し得る。通知に応答して、コントロール・パネル・ビューは、オーディオ関連デバイスからではなく、対応するプロダクト・プラグイン526またはジェネリック・プラグイン524におけるコントロール・パネル・ビューからSVのアップデートされた実際の値を要求し得る。従って、さまざまなコントロール・パネル・ビューがPEM500におけるデータでアップデートされるので、オーディオ関連デバイスへのネットワーク・トラフィックおよびオーディオ関連デバイスからのネットワーク・トラフィックが最小にされ得る。
同様に、SVが、オーディオ関連デバイスで変化するとき、デバイスは、1つのコントロール・パネル・ビューだけにサブスクライブされ得る。従って、1つのコントロール・パネル・ビューが、デバイスからのメッセージによってアップデートされるとき、イベント・エンジン618は、変化されたSVの実際の値を表示する対応するすべてのコントロール・パネル・ビューに通知し得る。これに応答して、対応するコントロール・パネル・ビューは、デバイスからではなく、アップデートされたコントロール・パネル・ビューからアップデートされたSVの実際の値を要求する。例えば、各オーディオ関連デバイスは、構成状態を含み得る。構成状態は、オーディオ関連デバイスにおけるSVが変化されたことを表す単一の数であり得る。構成状態は、他の診断およびメンテナンスに関連したアクティビティと同様に、重大な変化が別のGUIのコントロール・パネル・ビューからのデバイスになされたか否かを決定するために有用であり得る。
(発見エンジン)
GUIのコア520はまた、プロダクト・プラグイン526またはジェネリック・プラグイン524と通信し得る発見エンジン620を含み得る。オーディオ関連デバイスのオーディオ・ノード構造における1つ以上のコンポーネントが未知であるとき、発見エンジン620は、プロダクト・プラグイン526またはジェネリック・プラグイン524によって開始され得る。オーディオ関連デバイスのオーディオ・ノード構造における未知のコンポーネントは、対応する格納されている所定のGUIのコントロール・パネル・ビューおよび/またはGUIのアスペクトを含まない仮想デバイス、オブジェクト、またはSVであり得る。言い換えれば、コンポーネントは、オーディオ・システム内においてあらかじめ決定されない。
有効であるときには、発見エンジン620は、オーディオ・ノード構造に関してオーディオ関連デバイスにクエリし得る。発見エンジン620は、SVおよび/またはそれに関連した属性、オブジェクトおよび/またはそれに関連した属性、ならびに、仮想デバイスおよび/またはそれに関連した属性のそれぞれを決定するSV発見モジュール622、オブジェクト発見モジュール624および仮想デバイス発見モジュール626を含み得る。
静的オーディオ・ノード構造構成を有するオーディオ関連デバイスにとって、このようなデバイスのオーディオ・ノード構造はプロダクト・プラグインによって既に既知であり得るので、発見エンジン620での発見は必要でないかもしれない。このような状況では、現在のSV実際の値のクエリが要求されるすべてである。しかしながら、オーディオ関連デバイスのオーディオ・ノード構造のいずれかの部分が既知でないとき、発見エンジン620での発見がインプリメントされ得る。加えて、いくつかのオーディオ関連デバイスは、構成可能な仮想デバイスを含む。構成可能な仮想デバイスは、オブジェクトおよび/またはSVの異なる構成を有するように、ユーザによって構成され得る。従って、オーディオ・ノード構造は、構成可能であり、このような構成可能な仮想デバイス内のオブジェクトおよびSVが、発見エンジン620を用いて発見されることが必要とされ得る。
未知である静的オーディオ・ノード構造の例が互換性の問題として上げられる。例えば、ツアーの際にツアーのオーディオ・システムのための新しいオーディオ関連デバイスを受け取るツアーのサウンドプロバイダを考慮する。ツアーのサウンドプロバイダによって受け取られる新しいオーディオ関連デバイスは、新しいオーディオ関連デバイスによって置換される現存のデバイスに存在しないさらなる機能および/または能力を提供する新しいファームウェアのリビジョンを有する。ツアーのサウンドオペレータが、オーディオ・ノード構造、ならび新しいオーディオ関連デバイスに備えられている対応するGUIのコントロール・パネル・ビューおよび/またはGUIのアスペクトの新しいコンポーネントをロードしてプロダクト・プラグインをアップデートしないとき、新しい特徴へのアクセスは可能ではないかもしれない。また、一層悪いことに、ツアーのサウンドオペレータは、現存の特徴を制御し得ないかもしれない。発見エンジン620は、新しいデバイスのオーディオ・ノード構造を発見するメカニズムと、および新しいデバイスの特徴のすべてをビュー、制御およびエディットするデフォルト・エディタが作成されることを可能にする情報を提供するメカニズムとを提供することによってこのような問題を克服し得る。
発見エンジン620は、オーディオ関連デバイスのオーディオ・ノード構造内のコンポーネントを発見するために「獲得」方法を用い得る。オーディオ関連デバイスは、オーディオ・ノード構造に関連した情報を提供するために「Info return」メッセージで応答し得る。未知の仮想デバイス、オブジェクト、またはSVがオーディオ関連デバイスにおいて存在とき、発見エンジン620は、詳細な属性のためにオーディオ関連デバイスにクエリするように配置され得る。このタイプの発見は、未知の発見(unknown discovery)と呼ばれる。有効なときには、発見エンジン620は、オーディオ関連デバイスのオーディノード構造全体、またはオーディオ関連デバイスのオーディノード構造の一部を発見し得る。加えて、発見エンジン620は、オーディオ・ノード構造において特定されたコンポーネント、つまり、1つ以上の特定された仮想デバイス、オブジェクトまたはSVを発見するように有効にされ得る。
一度オーディオ関連デバイスがアドレス指定され、かつ、オーディオ・ネットワーク上で利用可能になると、オーディオ・ノード構造のクエリが用いられ得る。オーディオ・ノード構造のクエリは、任意のオーディオ関連デバイスのオーディオ・ノード構造を決定するために用いられ得る。オーディオ・ノード構造のクエリは、呼び出しおよび応答を有効にする所定の要求メッセージを用い得る。オーディオ関連デバイスのクエリの結果として、オーディオ関連デバイスの機能を表す各仮想デバイス、オブジェクトおよびSVのそれぞれが取得され得る。
オーディオ・ノード構造の不明のコンポーネントが識別されるときはいつでも、発見エンジン620は、未知のコンポーネントのより詳細な属性情報を発見するように、かつ、オーディオ・ノード構造全体がなんであるのかと、または、未知のコンポーネントが何を表すのかを確実にするように有効にされ得る。従って、オーディオ・ノード構造のクエリによって提供される呼び出しおよび応答機能および/または発見エンジン620よって提供される発見機能は、オーディオ・ノード構造のコンポーネントのすべてと、および/またはオーディオ・ノード構造内のコンポーネントの詳細な属性とを確実にするために用いられ得る。
発見エンジン620が、オーディオ・ノード構造全体を決定するように有効されるとき、オーディオ・ノード構造全体のクエリ要求は、単一メッセージで発見エンジン620に通信され得る。発見エンジン620は、それから、一連のオーディオ・ノード構造のクエリを用いて当該のオーディオ関連デバイスと通信し得る。呼び出しへの応答は収集され、一時的に格納され得るか、その応答は単にプラグイン523に転送され得る。応答が収集されるとき、発見エンジン620は、その応答に提供される仮想デバイス、オブジェクトおよび/またはSVに含まれている属性に基づいて当該のオーディオ関連デバイスのオーディオ・ノード構造全体を構築し得る。オーディオ・ノード構造全体は、それから、単一のメッセージでプラグイン523に提供される。
あるいは、発見エンジン620は、オーディオ・ノード構造に存在する、未知のコンポーネントに関連したより詳細な情報を取得するために有効にされ得る。このシナリオでは、仮想デバイス、オブジェクトまたはSVは、発見エンジン620には未知であると識別され得る。発見エンジン620は、それから、1つ以上のコンポーネント特定のオーディオ・ノード構造のクエリを用いて当該のオーディオ関連デバイスと通信し得る。クエリに対する応答は、未知のコンポーネントの詳細な属性を含み得る。詳細な属性は、当該のコンポーネントを構築、または定義するために用いられ得、かつ、たった今定義された未知のコンポーネントを単一のメッセージで提供するために用いられ得る。あるいは、詳細な属性が取得され、発見エンジン620によるさらに処理されることなしに、プラグイン523に提供され得る。
オーディオ・ノード構造を決定するためのオーディオ関連デバイスとの初期の通信は、プラグイン523の1つを用いて行われ得る。オーディオ関連デバイスのオーディオ・ノード構造を取得するために、オーディオ関連デバイスは、先ず、プラグイン523の1つによって、そのノード上の仮想デバイスのリストに対してクエリされ得る。メッセージGetVDListといった所定のメッセージがオーディオ関連デバイスのノード・マネージャ仮想デバイスに送達され得る。ノード・マネージャは、それ自身を含むそのノード上の仮想デバイスのリストで返答し得る。一度仮想デバイスが識別されると、プラブイン523によって、仮想デバイスのすべてが既知であるどうかが決定される。いずれかの仮想デバイスが未知であるとき、プラグイン523は、オーディオ・ノード構造全体または未知の仮想デバイスを決定するために発見エンジン620を有効にし得る。あるいは、プラグイン523は、オーディオ・ノード構造を決定し得る。別の代替において、発見エンジンは、オーディオ関連デバイスとすべての通信を行い、受け取った情報をプラグイン523にパスし、プラグイン523の指示でオーディオ関連デバイスとさらなる通信を行い得る。
ノード上の1つ以上の仮想デバイスが未知であるとき、リスト内の未知の仮想デバイスのそれぞれは、未知の仮想デバイスに含まれているSVおよびオブジェクトを決定するためにオーディオ・ノード構造のクエリを用いてクエリされ得る。仮想デバイスレベルSVを取得するために、GetSVListメッセージといった仮想デバイスにアドレス指定される所定の獲得SVメッセージは、仮想デバイスで用いられるSVクラスのリストにクエリするために用いられ得る。獲得SVメッセージは、仮想デバイス上の各SVに対するクラスIDを含むリストを戻し得る。仮想デバイスにおけるオブジェクトを決定するために、GetObjectListメッセージといった仮想デバイスにアドレス指定される所定の獲得SVメッセージが用いられ得る。仮想デバイスに含まれるオブジェクトのリストは、獲得オブジェクト・メッセージに応答して返送され得る。オーディオ・ノード構造のクエリは、発見エンジンまたはプラグインによって開始され得る。あるいは、リストではなく、仮想デバイス、オブジェクトおよびSVが個々にクエリされ得る。
最終的に、仮想デバイスに含まれているSVの実際の値が取得され得る。実際の値は、MultiSVGetメッセージといった所定の獲得実際の値メッセージのクエリを用いて取得され得る。獲得実際の値メッセージに応答して、仮想デバイスに含まれているSVの実際の値が返送され得る。あるいは、SVがサブスクライブされ得る。実際の値がアップデートされるときはいつでも、サブスクライブされたSVが自動的に提供される。
先述は、未知である構成可能(または動的)な仮想デバイスまたは静的な仮想デバイスの存在および/または未知のコンポーネントを含む構成可能(または動的)な仮想デバイスまたは静的な仮想デバイスの存在を仮定した。オーディオ・ノード構造が未知である静的な仮想デバイスの場合において、オブジェクトおよびSVが既知であるので、仮想デバイスへのクエリ以上にさらなるクエリは必要とされないかもしれない。従って、プラグインまたは発見エンジン620は、獲得SVメッセージ(GetSVList)、または獲得ブジェクトメッセージ(GetObjectList)を送達する必要はないかもしれない。
オブジェクトの受け取られたリストにおいて識別されるオブジェクト・クラスが既知であるとき、SVの実際の値へのクエリだけが、上述の2つの方法のうちの1つを用いて必要とされ得る。仮想デバイスにおける、未知である各オブジェクトに対して、サブオブジェクトおよびSVのリストが、獲得SVメッセージおよび/または獲得ブジェクトメッセージを用いて要求され得る。未知のオブジェクト上で行われる必要があるかもしれない他の動作は、オブジェクトにおけるすべてのSVの動的属性を発見することである。動的属性は、オブジェクト自身によってセットされ得る。このようなオブジェクトの動的属性を取得するメカニズムは、SVGetDynAttriutesといった所定の獲得動的属性メッセージを有し得る。
未知のSVが識別される際には、SVGetStaticAttributesといった所定の獲得動的属性メッセージが未知のSVを包含するオブジェクトまたは仮想デバイスに送達され得る。これに応答して提供される静的属性は、未知のSVを定義するために用いられ得る。
あるいは、仮想デバイスに対するより効果的な発見メカニズムがまた用いられ得る。所定のオーディオ関連デバイスノード構造のクエリ・メッセージのセットがオーディオ関連デバイスに送達され得る。所定のクエリ・メッセージのセットは、凝縮フォーマットのオーディオ・ノード構造を要求し得る。これに応答して、各仮想デバイスは、オーディオ関連デバイスの機能性を十分に記載した返答を提供し得る。機能性は、例えば、仮想デバイス内のあらかじめ決定されるオブジェクトおよびSVメンバーの登録したクラスIDによって十分に記載され得る。これらのオーディオ関連デバイスノード構造のクエリ・メッセージのいずれかが、未知であるオブジェクトまたはSVクラスを返送するとき、先述されるようなそのコンポーネントのより詳細な発見が行われ得る。
ゾーン・コントローラであるオーディオ関連デバイスの発見の例がこれから記載される。ゾーン・コントローラは、備え付けられたオーディオ内の単一なゾーンに対してオーディオ・ソース・セレクトおよび利得制御を提供し得るシンプルなウォール・コントローラである。ゾーン・コントローラの機能性は、オーディオ能力を持たないユーザ・インターフェースオブジェクトとしてモデル化され得る。ゾーン・コントローラは、利得およびソース選択機能を行うルータ・オブジェクトに対して2つのサブスクリプションを有するように構成され得る。プロセシングが異なるノード上の別々の処理オブジェクト用いて行われ得る。
構成不可能な仮想デバイスを有するスタンドアロンノードとしてモデル化されるとき、ゾーン・コントローラは、以下のとおりに見なされ得る。SVClassGain SVといった利得SVは、オーディオ処理オブジェクトにおける利得SVにリンクされ得る。SVClassCMInputといったソース選択SVは、オーディオ処理オブジェクトにおけるルーティングSVにリンクされ得る。GetVDList(info)といった獲得メッセージが、ゾーン・コントローラクラスにおける仮想デバイスを記載するために用いられ得る。この情報にて、このノードが構成可能なメンバーを有していないことが分かる。仮想デバイスは、選択を制御するメカニカルポットおよびボリューム(コントロール面)を制御する2つの瞬間スイッチ以外のユーザ・インターフェースを有しない。ゾーン・コントローラ・オブジェクトにアドレス指定されるDescribeVDといった記述メッセージがインスタンス属性、SVの実際の値、およびのゾーン・コントローラ仮想デバイスのサブスクリプションを返し得る。
デバイスからクエリさえたデータを受け取ると、発見エンジン620は、プラグイン・インターフェース522を介して情報をプロダクト・プラグイン526、またはジェネリック・プラグイン524に通信し得る。対応するデバイスに対して選択されるべきまたは作成されるべきコントロール・パネル・ビューおよび/またはGUIのアスペクトを決定するために、情報がプロダクト・プラグイン526またはジェネリック・プラグイン524によって用いられ得る。
プロダクト・プラグイン526またはジェネリック・プラグイン524はまた、未知のコントロール・パネル・ビューおよび/またはGUIのアスペクトの決定を補助するように、発見エンジン620を有効にする。未知のコントロール・パネル・ビューまたはGUIのアスペクトは、オーディオ関連デバイスのオーディオ・ノード構造のいくつか、またはすべてを表すプロダクト・プラグイン526またはジェネリック・プラグイン524のいずれかから利用可能でない1つである。例えば、プロダクト・プラグイン526、またはジェネリック・プラグイン524が、オーディオ・ノード構造の1つ以上のコンポーネントに対してGUIのアスペクトを作成するためにオーディオ関連デバイスから取得されるオーディオ・ノード構造に含まれている十分な情報を有しないとき、発見エンジン620がさらなる詳細を取得するために有効にされ得る。
(ノード発見マネージャ)
GUIのコア520はまた、ノード発見マネージャ628を含み得る。ノード発見マネージャ628は、ノード属性要求エンジン630およびプラグイン・サーチ・エンジン632を含む。ノード属性要求エンジン630は、ノードクラス属性に関してデバイスにクエリし得る。クラス属性は、オーディオ関連デバイスの機能性を示し得る。加えて、クラス属性は、オーディオ関連デバイスを対応するプロダクト・プラグイン526に一致させるために情報を提供し得る。例えば、クラス属性は、増幅器といったオーディオ関連デバイスのタイプ、モデルといったオーディオ関連プロダクトファミリ、および/またはモデルナンバーまたはプロダクト名といったプロダクト識別子を記述し得る。
ノード発見マネージャ628は、プロダクト・プラグイン526のいずれかがデバイスを含むクラスを有するかどうかを決定するためにブロードキャストされたメッセージを有するプロダクト・プラグイン526にクエリするためにクラス属性を用い得る。言い換えれば、プロダクト・プラグイン526がデバイスに関連しているかどうか、従って、デバイスに対して所定のコントロール・パネル・ビューを有するかどうかを決定する。クエリでブロードキャストされるクラス属性は、プロダクト・プラグイン526に格納されているクラス属性と比較され得る。プロダクト・プラグイン526の1つがクラス属性認識し、オーディオ関連デバイスとの関連性を示すとき、ノード発見マネージャ628は、プロダクト・プラグイン526の起動およびプラグイン・インターフェース522を有する通信ノードの作成を可能にし得る。
プラグイン523が、オーディオ関連デバイスのオーディオ・ノード構造のコンポーネントを含まないとき、プラグイン・サーチ・エンジン632は有効にされ得る。プラグイン・サーチ・エンジン632は、オーディオ・ノード構造に含まれている未知のコンポーネントに対して他のプラグイン523にクエリするために有効にされ得る。加えて、プラグイン・サーチ・エンジン632は、GUIのアスペクトに対して他のプラグイン523にクエリするために有効にされ得る。プロダクト・プラグイン526が、オーディオ関連デバイスのオーディオ・ノード構造をサポートするために必要とされるGUIコンポーネントのすべてであって、所定のコントロール・パネル・ビューにおいてそのGUIコンポーネントのすべてを含まないとき、GUIのアスペクトのクエリは有効にされ得る。他のプラグイン523が、それぞれのクエリに含まれる未知のコンポーネントまたはGUIのアスペクトに関する情報を含まないとき、プラグイン・サーチ・エンジン632がまた発見エンジン620を有効にする。
GUIのコア520はまた、プラグイン・ローダ634を含み得る。プラグイン・ローダ634は、GUIのコア520にとって現在利用可能なすべてのプロダクト・プラグイン526の動作中のリストを維持し得る。従って、GUIのコア520は、プラグイン・ローダ634によって維持されるリストに基づいて、プラグイン・インターフェース522との通信を介してプロダクト・プラグイン526にクエリおよび/または起動を開始し得る。
(プラグイン・インターフェース)
図7は、このシステムにおいて用いれ得るプラグイン・インターフェース522のブロック図である。プラグイン・インターフェース522は、格納モジュール700およびネットワーク・モジュール701を含む。ネットワーク・モジュール701は、GUIのコア520とプロダクト・プラグイン526との、および/またはジェネリック・プラグイン524との間の通信インターフェースの役目を果たす通信コンジット702を提供し得る。格納モジュール700は、プロダクト・プラグイン526またはジェネリック・プラグイン524を起動するプラグイン・ラーンチャ702を含む。追加的に、ネットワーク・モジュール701は、GUIのコア520を用いて、プロダクト・プラグイン526またはジェネリック・プラグイン524と関連しているもとして識別されるオーディオ関連デバイス間の通信をセットアップするノード通信インスタンシエータ704を含み得る。オーディオ関連デバイスおよびプラグイン523とのそれぞれの通信は別々で、独立したものであり得るので、プラグイン521が、オーディオ関連デバイスへの通信パスの知識(knowledge)を含むことを必要とし得ない。このような知識は、オーディオ関連デバイス、オーディオ関連デバイスのID等とともに用いられ得る通信プロトコルを含み得る。このような態様で、プラグイン・インターフェース522は、(GUIのコア520を介して)デバイスへの通信コンジットを開くことによってオーディオ・ネットワーク120からプロダクト・プラグイン526またはジェネリック・プラグイン524をシールドし得る。従って、プロダクト・プラグイン526またはジェネリック・プラグイン524は、オーディオ・ネットワーク120の知識なしにオーディオ関連デバイスとオーディオ・ネットワーク120上で通信し得る。
(プロダクト・プラグイン)
図8は、このシステムにおいて用いられ得るプロダクト・プラグイン526のブロック図である。このシステムは、オーディオ・システムに含まれているオーディオ関連デバイスに関連付けられ得る複数のプロダクト・プラグインを含み得る。プロダクト・プラグイン526は、1つ以上の関連したオーディオ関連デバイスをサポートし得る。例えば、同様なモデルナンバー、機能性および/またはメーカーを有するオーディオ関連デバイスは、同一のプロダクト・プラグイン526と関連付けられ得る。一般的に、プロダクト・プラグイン526は、関連したオーディオ関連デバイスの機能性および制御能力を表すために用いられ得る格納されている所定のオーディオ関連デバイス特定の情報を含み得る。このような情報は、格納されている所定のGUIのコントロール・パネル・ビュー、格納されている所定のGUIのアスペクト、関連したオーディオ関連デバイスのクラス識別情報、オーディオ関連デバイスの格納されている所定のノード構造、格納されている所定のノード構造の部分を含み得る。
プロダクト・プラグイン526は、タイプ発見モジュール800およびコントロール・パネル・ビュー・ビルダー801を含み得る。コントロール・パネル・ビュー・ビルダー801は、ノード・インスタンス化エンジン802、コントロール・パネル・ライブラリ804、コントロール・パネル・データ・ストレージ806およびコントロール・パネル・ビュー・バッファ808を含み得る。タイプ発見モジュール800は、プラグイン・インターフェース522を介してGUIのコア520と通信するノードクラス分析810を含み得る。ノードクラス分析810は、プラグイン・インターフェース522を介してノード属性要求エンジン630からブロードキャストされたクラス情報を受け取る。クラス情報は、オーディオ関連デバイスに前もって割り与えられるオブジェクト・クラスIDおよびプロダクト名といったクラス属性を含む。クラス情報は、クラス属性クエリに応答してオーディオ関連デバイスによって提供され得る。クラス属性は、オーディオ関連デバイスの性質およびタイプを示す任意の記号、ワード、数字、またはそれらのいくつかの組み合わせであり得る。
クラス属性は、ノード・クエリで、ノード発見マネージャ628によってプロダクト・プラグイン526にブロードキャストされ得る。あるいは、プロダクト・プラグイン526のそれぞれは、個々にノード・クエリに送達され得る。クラス属性を含むノード・クエリは、プロダクト・プラグイン526の1つがデバイスのクラス属性に対応するか否かを決定するために用いられ得る。ライブラリ・ストレージ・モジュール816に格納されているクラス属性がクエリに含まれているクラス属性と比較され得る。例えば、ライブラリ・ストレージ・モジュール816は、プロダクト動的リンク・ライブラリ(「DLL」)を含み得る。DLLは、プロダクト・プラグイン526に関連した各オーディオ関連デバイスのオブジェクト・クラスIDおよびプロダクト名を含む静的メンバーを有するパグリック・プロダクトDLL記述(「PDD」)クラスを含み得る。一度クラス属性情報が比較されると、ノードクラス分析810は、プロダクト・プラグイン526が、オーディオ関連デバイスの対応するクラス属性に関連しているか否かを示すメッセージをGUIのコア520に送達し得る。
プロダクト・プラグイン526がデバイスのクラス属性に対応するとき、通信コンジットがプラグイン・インターフェース522を介してセットアップされ得る。プラグイン・インターフェース522を用いて、取り出し(retrieval)エンジン812は、オーディオ関連デバイスからオーディオ・ノード構造を取得するために用いられ得る。オーディオ・ノード構造は、オーディオ関連デバイスの機能性を表し得、SV、オブジェクトおよび/または仮想デバイスを含み得る。クラス分析814は、それから、ライブラリ・ストレージ816との比較を行うためにオーディオ・ノード構造をトラバースし得る。ライブラリ・ストレージ816は、プロダクト・プラグイン526に関連したオーディオ関連デバイスのそれぞれに対する1つ以上の所定のオーディオ・ノード構造および/またはオーディオ・ノード構造コンポーネントを含み得る。オーディオ・ノード構造、および/またはオーディオ・ノード構造コンポーネントは、プロダクト・プラグイン526によってサポートされるオーディオ関連デバイスのそれぞれの機能性を示す構成において仮想デバイス、オブジェクトおよび/またはSVを含み得る。
1つの例において、プロダクト・プラグイン526は、オーディオ関連デバイスに含まれている仮想デバイスに対してオーディオ関連デバイスにクエリし得る。あるいは、ノード発見マネージャ628は、クラス属性の一部として仮想デバイスのリストを受け取り得る。別の例において、プロダクト・プラグイン526は、オーディオ関連デバイスに含まれている仮想デバイス、オブジェクトおよび/またはSVのそれぞれに対してクエリし得る。
仮想デバイス、オブジェクトおよび/またはSVが既知であるとき、オーディオ・ノード構造のその部分の表現およびオーディオ・ノード構造のその部分が既知であるという表示が、ノード構造ストレージ818に格納され得る。例えば、表現は、既知である仮想デバイスのリストおよび既知である仮想デバイスの表示であり得る。別の例において、オーディオ・ノード構造の既知の部分およびにオーディオ・ノード構造の既知の部分に含まれている属性が、ノード構造ストレージ818に格納され得る。オーディオ関連デバイスから受け取られたオーディオ・ノード構造のいずれかの部分が、ライブラリ・ストレージ818に含まれているオーディオ・ノード構造と、またはノード構造コンポーネントとに含まれている所定の仮想デバイス、オブジェクト、SVと対応していることが見出されないとき、プラグイン・サーチ・エンジン632は、取り出しエンジン812によって、オーディオ・ノード構造の未知のコンポーネントに対して他のプロダクト・プラグイン526およびジェネリック・プラグイン524にクエリするために有効にされ得る。あるいは、プロダクト・プラグイン424が、このようなクエリを行い得る。
未知のコンポーネントが別のプラグイン523に存在するとき、未知のコンポーネントが取り出され、ライブラリ・ストレージ816に格納され、かつ、オーディオ・ノード構造を十分に定義するために用いられ得る。オーディオ・ノード構造の対応するコンポーネンが、それから、ノード構造ストレージに格納され得る。未知のコンポーネントが、プロダクト・プラグイン526およびジェネリック・プラグイン524のいずれかから利用可能でないとき、発見エンジン620は、オーディオ関連デバイスのオーディオ・ノード構造全体、または先述されたようなオーディオ関連デバイスの未知のコンポーネントのいずれかを決定するために開始され得る。発見エンジン620によって決定されたオーディオ・ノード構造および/またはコンポーネントがオーディオ関連デバイスのオーディオ・ノード構造に関連付けられ、ライブラリ・ストレージ816に格納され得る。発見エンジン620によって取得された、オーディオ・ノード構造の未知の部分に対する詳細な属性がまた、ノード構造ストレージ818に格納され得る。
発見エンジン620は、複数のプロダクト・プラグイン526および/またはジェネリック・プラグイン524のいずれかの1つによって有効にされ得るので、これは好都合である。つまり、プロダクト・プラグイン526およびジェネリック・プラグイン524のそれぞれは、発見エンジン620を動作させる命令を格納および実行をする必要がない。加えて、発見エンジン620内の命令に対する変化およびアップデートが一度なされ得る。
一度オーディオ関連デバイスのオーディオ・ノード構造全体が決定され、表示がノード構造ストレージ818に格納されると、ノード・インスタンス化エンジン802は、1つ以上のコントロール・パネル・ビューを識別するために、ノード構造ストレージ818に格納されているオーディオ・ノード構造を利用し得る。コントロール・パネル・ビューは、オーディオ・ノード構造のコンポーネントおよび/またはオーディオ・ノード構造のコンポーネントに含まれている属性に基づいて識別され得る。例えば、格納されている所定のコントロール・パネル・ビューが1つ以上の特別に識別された仮想デバイスに関連付けら得る。
ノード・インスタンス化エンジン802は、コントロール・パネル・ライブラリ804にアクセスし、オーディオ・ノード構造のコンポーネントに対応する1つ以上のGUIのコントロール・パネル・ビューを取得し得る。コントロール・パネル・ライブラリ804は、ディスプレイに表示され得る所定のGUIのコントロール・パネル・ビューおよび/または所定GUIのアスペクトを格納し得る。対応するGUIのコントロール・パネル・ビューは、ノード・インスタンス化エンジン802によって構成され、インスタンス化のために格納され得る。ユーザによって、オーディオ関連デバイスの機能のモニタ、制御および動作を可能にすることを要求されるとき、GUIのコントロール・パネル・ビューは、ノード・インスタンス化エンジン802によってインスタンス化され、かつ、表示され得る。
ノード・インスタンス化エンジン802はまた、コントロール・パネル・ビューにおいてSVに対してサブスクライブ・メッセージングをセットアップし得る。加えて、ノード・インスタンス化エンジン802は、コントロール・パネル・ビューおよび関連したSVに関してリンク・マネージャ614と通信し得る。コントロール・パネル・データ・ストレージ806は、ノード・インスタンス化エンジン802によってインスタンス化されるGUIのコントロール・パネル・ビューに含まれているSVの実際の値を格納するために用いられ得る。SVの実際の値は、取り出しエンジン812を用いてオーディオ関連デバイスから取り出され、コントロール・パネル・データ・ストレージ806で格納されるためにノード・インスタンス化エンジン802に提供され得る。コントロール・パネル・データ・ストレージ806はまた、先述されるようにGUIマネージャ606によって指示されるとき、すべての設定およびコントロール・パネル・ビューを格納し得る。
コントロール・パネル・ビュー・バッファ808はまた、GUIのコントロール・パネル・ビューに関連したデータをバッファするために提供され得る。コントロール・パネル・ビュー・バッファ808は、コントロール・パネル・ビューおよびその関連データをバッファし得、一方、ノード・インスタンス化エンジン802は、インスタンス化および表示のためにGUIのコントロール・パネル・ビューを用意する。加えて、複数のGUIのコントロール・パネル・ビューが用意され、コントロール・パネル・ビュー・バッファ808に格納され得る。従って、ユーザが、さまざまなGUIのコントロール・パネル・ビューを要求するとき、そのビューは、コントロール・パネル・ビュー・バッファ808においてバッファされているコントロール・パネル・ビューのセットから抽出され得る。抽出されたGUIのコントロール・パネル・ビューは、ディプレイ上に、コントロール・パネル・データ・ストレージ806に格納されているSVの実際の値を有してインスタンス化され得る。実際の値がコントロール・パネル・データ・ストレージ808に格納され、および/またはGUIのコントロール・パネル・ビューにおいてインスタンス化される一方で、実際の値がアップデートされ得る。このことは、獲得コマンドを用いて、またはサブスクリプションによって起きる。
コントロール・パネル・ビュー・バッファ808において形成され、格納されるコントロール・パネル・ビューの数は、PEMの能力に基づき得る。PEMが「厚い」PEMであるときは、オーディオ・ノード構造全体に対するGUIのコントロール・パネル・ビューが構築され、格納され得る。あるいは、PEMが「薄い」PEMであるときは、わずかな、または1つだけのコントロール・パネル・ビューが、いつでも構築され、格納され得る。
ノード・インスタンス化エンジン802によって選択される1つ以上のコントロール・パネル・ビューが、オーディオ関連デバイスのオーディオ・ノード構造全体をサポートしていないとき、ノード・インスタンス化エンジン802、または発見エンジンは、オーディオ・ノード構造のサポートされていないコンポーネントをサポートし得る1つ以上の格納されている所定のGUIのアスペクトに対してコントロール・パネル・ライブラリ804をチェックし得る。加えて、別のプロダクト・プラグイン526がオーディオ・ノード構造のサポートされていない部分を表し得る1つ以上の格納されている所定のGUIのアスペクトに対してチェックされ得る。例えば、オーディオ・ノード構造のサポートされていない部分は、それ以外の場合にはサポートされている仮想デバイス内に包含されるオブジェクトおよび/またはSVのいくつかであり得る。
オーディオ・ノード構造を表し得るGUIのアスペクトを決定することは、オーディオ・ノード構造に含まれている属性に基づき得る。例えば、オーディオ・ノード構造のコンポーネントの属性がゼロから100%までの可変コントロールを必要とするコントロールGUIのアスペクトを記述し得るか、またはスライダがコントロールGUIのアスペクトの機能性を表すために必要であることを特別に示し得る。別の例において、ノード構造コンポーネントの属性がゼロから100%までの可変インジケータを必要とするインジケータGUIのアスペクトを記述し得るか、または数値ディスプレイがインジケータGUIのアスペクトの機能性を表すために必要であることを特別に示し得る。
オーディオ・ノード構造の属性に記述される適正を満たすために欠けているGUIのアスペクトがあらかじめ決定され、かつ、コントロール・パネル・ライブラリ804、または別のプロダクト・プラグイン526に格納されているとき、格納されている所定のGUIのアスペクトは、取り出され、所定のGUIのコントロール・パネル・ビューに統合され得る。このGUIアスプクトの統合は、配置、サイズ調整、カラー調整、格納されている所定のGUIのコントロール・パネル・ビューにおける現存するGUIコンポーネントとのGUIのアスペクトの相互関連、および/または対応するオーディオ・ノード・構造の属性によって識別される他の任意の動作および/または構成を含み得る。GUIのアスペクトの取り込みに続いて、ノード・インスタンス化エンジン802は、オーディオ関連デバイスのオーディオ・ノード構造に関連して新しい所定のGUIのコントロール・パネル・ビューとして統合されたGUIのアスペクトを含むGUIのコントロール・パネル・ビューを格納し得る。新しい所定のGUIのコントロール・パネル・ビューは、コントロール・パネル・ライブラリ804に格納され得る。統合されたGUIのアスペクトを含むGUIのコントロール・パネル・ビューは、格納され、ともにディスプレイ上でインスタンス化され得る。
欠けているGUIのアスペクトが、プロダクト・プラグイン526のいずれかから利用可能でないとき、ジェネリック・プラグイン524が有効にされ得る。ジェネリック・プラグイン524は、オーディオ・ノード構造をサポートしているデフォルト・パネル(エディタ)といった1つ以上のジェネリックGUIコントロール・パネルを構築するために有効にされ得る。ジェネリック・プラグイン524によって構築されたジェネリックGUIコントロール・パネルがノード・インスタンス化エンジン802に提供され得る。ノード・インスタンス化エンジン802は、オーディオ関連デバイスの機能性を表示するためにジェネリックGUIコントロール・パネルを用い得る。あるいは、格納されている所定のGUIのアスペクトに関連していないオーディオ・ノード構造のコンポーネントの機能性を表すジェネリックGUIのアスペクトを生成するために、ジェネリック・プラグイン524がプロダクト・プラグイン526によって有効にされ得る。発見エンジン620を用いて生成されたおよび/または識別された任意のGUIのアスペクトはまた、所定のコントロール・パネル・ビューの欠けている部分を充填ためにノード・インスタンス化エンジン802によって用いられ得る。ノード・インスタンス化エンジン802はまた、オーディオ・ノード構造の属性に基づいて、生成されたGUIのアスペクトを所定のコントロール・パネル・ビューの現存するGUIコンポーエントとを相互に関連付ける。
ノード・インスタンス化エンジン802はまた、インスタンス化されたGUIのコントロール・パネル・ビューを表示することを提供するデバイスの演算能力およびコントロール面の使用可能性を考慮し得る。デバイスの能力に基づいて、ノード・インスタンス化エンジン802は、格納されている所定のGUIのコントロール・パネル・ビュー、または格納されている所定のGUIのアスペクトを簡素化、エンハンス、削除、または装飾(embellish)し得る。例えば、ディスプレイが小さく、表示のために低い解像度、または制限された「実際の面積(real estate)」といった制限されたディスプレイ能力しか有さないときには、格納されている所定のGUIのコントロール・パネル・ビューに含まれる選択されたGUIコンポーネントは、より簡素なGUIコンポーネントに変化され得るか、別のコンポーネントに組み合わされ得るか、または完全に削除され得る。別の例において、ディスプレイが比較的大きく、高い解像度のディスプレイ能力を含むとき、格納されている所定のGUIのコントロール・パネル・ビューは、グラフィカル的により詳細な、または自動化等を有するといったより複雑なGUIコンポーネントを含むように変化され得る。GUIのコントロール・パネル・ビューを表示することを提供するデバイスの演算能力を考慮することはまた、格納されている所定のGUIのアスペクトおよび/またはGUIのアスペクトの統合に影響し得る。
コントロール面を有効にするように構成されている格納されている所定のコントロール・パネル・ビューに対する変化がまた、ハードウェアのコントロール面と一致するようになされ得る。例えば、オーディオ・ノード構造における属性によって記述されるようにコントロール・パネル・ビューのハードウェアが指示するとき、コントロール面におけるアナログ計測器を駆動する機能性を含む格納されている所定のコントロール・パネル・ビューが、デジタル数値ディスプレイを駆動する機能性に変化され得る。
(ジェネリック・プラグイン)
図9は、ジェネリック・プラグイン524のブロック図である。ジェネリック・プラグイン524は、デバイスのクラス属性が、プラグイン・ローダ634において現在リストアップされているプロダクト・プラグイン526のいずれかによって認識されていない際に有効にされ得る。有効にされるとき、ジェネリック・プラグイン524は、オーディオ関連デバイスのオーディオ・ノード構造を決定し得る。オーディオ・ノード構造は、先述されるように発見エンジン620によって決定され得る。加えて、ジェネリック・プラグイン524が、プロダクト・プラグイン526に格納されている、格納されている所定のGUIのコントロール・パネル・ビューによって完全にサポートされていないとき、ジェネリック・プラグイン524は1つ以上のジェネリックGUIのコントロール・パネル・ビューを作成するために有効にされ得る。
プロダクト・プラグイン526のいずれもオーディオ関連デバイスのクラス属性をサポートしないとき、ジェネリック・プラグイン524は、プラグイン・インターフェース522を介して、デバイスによって提供されるオーディオ・ノード構造に基づいて「。ジェネリック」コントロール・パネル・ビューの1つ、またはそのセットを動的に作成するためにGUIのコア520によって有効にされ得る。あるいは、オーディオ関連デバイスのクラス属性をサポートしているプロダクト・プラグイン526の1つが、デバイスのオーディオ・ノード構造における1つ以上のコンポーネントに対応する所定のコントロール・パネルを有しないとき、ジェネリック・プラグイン524は、デバイスによって提供されるオーディオ・ノード構造に基づいて、1つ以上の「ジェネリック」コントロール・パネル・ビューを動的に作成するためにプロダクト・プラグイン526によって有効にされ得る。加えて、格納されている所定のGUIのアスペクトがオーディオ・ノード構造における1つ以上のコンポーネントに対して存在しないとき、ジェネリック・プラグイン524が同様に、ジェネリックGUIのアスペクトを生成するために有効にされ得る。ジェネリック・プラグイン524は、コントロール・パネル・ファクトリ900、属性分析902、ノード・インスタンス化エンジン904、配置エンジン906、取り出しエンジン908、コントロール・パネル・ビュー・バッファ910、ノード構造ストレージ912、およびコントロール・パネル・データ・ストレージ914を含み得る。
GUIのコア520(図5および図6)は、オーディオ関連デバイスのオーディオ・ノード構造を取得するためにオーディオ関連デバイスおよび/またはプロダクト・プラグイン526と通信するように有効にされ得る。あるいは、取り出しエンジン808は、オーディオ関連デバイスのオーディオ・ノード構造および属性を取得し得る。一度取得されると、オーディオ関連デバイスのオーディオ・ノード構造および/または属性は、先述されるように、ノード構造ストレージ912に格納され得る。加えて、取得されたSVの実際の値が先述されるように、コントロール・パネル・データ・ストレージ914に格納され得る。
属性分析902は、オーディオ関連デバイスの格納されているオーディオ・ノード構造に関連した属性をレビューし得る。オーディオ・ノード構造の属性の分析に基づいて、ノード・インスタンス化エンジン904は、ジェネリックGUIのコントロール・パネル・ビューおよび/またはジェネリックGUIのアスペクトの1つ、またはそのセットを生成するためにコントロール・パネル・ファクトリ900を開始し得る。ジェネリックGUIのコントロール・パネル・ビューまたはジェネリックGUIのアスペクトにおけるGUIコンポーネントは、格納されているオーディオ・ノード構造に含まれている属性に基づいて決定され得る。
ノード・インスタンス化エンジン904は、ジェネリックGUIのコントロール・パネル・ビューに統合するために属性によって記述される格納されている所定のGUIのアスペクトに対してプロダクト・プラグイン526を検索するようにプラグイン・サーチ・エンジン632(図6)を有効にし得る。あるいは、ノード・インスタンス化エンジン904は、プロダクト・プラグイン526から格納されている所定のGUIのアスペクトを検索し、取得し得る。このようにして、1つ以上のジェネリック・コントロール・パネル・ビューは、所定のGUIのアスペクトおよび生成された「ジェネリック」GUIのアスペクトを含み得る。
ジェネリックGUIのコントロール・パネル・ビューのすべて、または一部を生成するためにオーディオ関連デバイスから受け取られるオーディオ・ノード構造において十分な属性が利用可能でないとき、発見エンジン620は、デバイスから追加的な情報を取得し、提供するために有効にされ得る。このような追加的な情報は、オーディオ・ノート構造に関して追加的な情報を含み得る。例えば、オブジェクトおよび/またはSVの情報の取り出しは、オーディオ・ノード構造に含まれる仮想デバイスだけを以前供給していたオーディオ関連デバイスから取得され得る。加えて、取得される情報は、サイズ、カラー、形状、配線、オーディオ・ノード構造における別のコンポーネントとの相互関連、機能性の詳細、関連配置等といったオーディオ・ノード構造のコンポーネントの詳細な属性を含み得る。
ノード・インスタンス化・エンジン904は、表示のために完了したジェネリックGUIのコントロール・パネル・ビューまたはジェネリックGUIのアスペクトをインスタンス化し得る。加えて、SVの実際の値がコントロール・パネル・データ・ストレージ914から取り出され、ジェネリックGUIのコントロール・パネル・ビューまたはジェネリックGUIのアスペクトに含まれ得る。あるいは、ジェネリックGUIのアスペクトは、格納されている所定のGUIのコントロール・パネル・ビューを完了するようにプロダクト・プラグインに提供され得る。ジェネリックGUIのコントロール・パネル・ビューまたはジェネリックGUIのアスペクトは、後ほど取り出されるためにオーディオ関連デバイスに関連して格納され得る。ジェネリック・コントロール・パネル・ビューまたはジェネリックGUIのアスペクトの格納がコントロール・パネル・データ・ストレージ914にされ得る。
ノード・インスタンス化エンジン904はまた、ジェネリックGUIのコントロール・パネル・ビューにおける各SVに対してサブスクライブ・メッセージングをセットアップし、ジェネリック・コントロール・パネル・ビューおよびそれに関連したSVに関してリンク・マネージャ614と通信し得る。ジェネリック・プラグイン524はまた、配置エンジン906をオプション的に含み得る。配置エンジン906は、オーディオ・ノード構造に含まれている属性に基づいて「厚い」PEM内のジェネリック・コントロール・パネル・ビューにおけるGUIのアスペクトの配置を管理し得る。加えて、「厚い」PEM内で、コントロール・パネル・ビュー・バッファ910はまた、デバイスに対するジェネリック・コントロール・パネル・ビューの追加的な層に関してバッファ・データにオプション的に提供され得る。ノード・インスタンス化エンジン904はまた、オーディオ・ノード構造を取得し、ジェネリック・コントロール・パネル・ビューおよび/またはジェネリックGUIのアスペクトを構築するとき、先述されるようなディスプレイを含むデバイスの能力を考慮し得る。
(V.オーディオ関連デバイス(続き))
図10は、図2および図3に図解されるオーディオ関連デバイス200の一部のブロック図である。オーディオ関連デバイス200の例の一部は、ネットワーク・インターフェース302、オーディオ・ストリーム322、仮想デバイス・エンジン1002、オブジェクト・エンジン1004、SVエンジン1006、ノード識別モジュール1008、サブスクリプション・マネージャ・モジュール1010、デバイス・ツー・デバイス通信マネージャ・モジュール1012、およびリンク・マネージャ・モジュール1014を含む。図10に示されるさまざまなモジュールは、メモリ206に格納され得、プロセッサ204(図2)によって選択的に実行可能である。他の例において、追加的なモジュールが、オーディオ関連デバイス200の記述された機能性を表すために含まれ得る。
オーディオ関連デバイス200のそれぞれは、オーディオ・ネットワーク120(図1)上のノードとして表され得る。各オーディオ・ノード構造は、仮想デバイス、オブジェクト、およびノードを含む3レベル階層を含み得る。各仮想デバイスは、1つ以上のオブジェクトおよび1つ以上のSVをグループ化し得る。仮想デバイス、オブジェクト、およびSVは、対応するオーディオ関連デバイス200の機能性、設定および動作的なアスペクトを表す。SVは、通常、可変データの形式である動作パラメータである。
仮想デバイス・エンジン1002は、ノードに含まれている1つ以上の仮想デバイスの複数の属性を追跡し、維持するように構成される。属性は、静的、または動的であり得、対応する仮想デバイスの能力、機能性および動作性の記述を提供し得る。加えて、ネスト化されたノードの構成のために、仮想デバイス・エンジン1002はまた、仮想デバイスに含まれるオブジェクトおよびSV追跡し、維持し得る。オブジェクト・エンジン1004は、ノードにおけるオブジェクトに関連した属性を追跡し、維持するように構成されている。加えて、オブジェクト・エンジン1004は、オブジェクトにネスト化されたSVを追跡し、維持するように構成されている。SVエンジン1006は、オーディオ関連デバイス(ノード)に存在する実際のデータの値を追跡、維持するように構成されている。
オーディオ関連デバイス200が当初ネットワークに結合されているとき、ノード識別モジュール1008はノードID生成するように構成されている。ノードIDは、ネットワーク120上のオーディオ関連デバイス200を一意に識別し得る。ノードIDは、手動による割り当てよって、またはアドレス・ネゴシエーションを介してといった多くの異なる態様で割り与えられ得る。先述されるように、ノードIDはまた、PEMによって割り与えられ得る。ノードIDが手動で割り与えられ得る例において、ノードIDは、オーディオ関連デバイス200に関連した物理的な(有形の)スイッチを用いてセットされ得る。例えば、ノードIDは、オーディオ関連デバイス200上のDIP―スイッチ、またはパネル設定を介して割り与えられ得る。
ノードIDは、オーディオ・ネットワーク上のオーディオ関連デバイス間のアドレス・ネゴシエーションを介して割り与えられ得る。いくつかの例において、オーディオ関連デバイは、オーディオ・ネットワークからのメッセージで受け取られるノードIDに基づいて、ノードIDを割り与えられ得る。別の例において、オーディオ関連デバイス200は、例えば、ランダムに、またはシーケンシャルにノードIDを選択することによってIDノードIDを生成し得る。ランダム・アドレス・ネゴシエーションは、アドレス衝突の可能性を最小にし得る。シーケンシャル・アドレス・ネゴシエーションは、オーディオ関連デバイスが、名前より、むしろ数値アドレスによって識別され得る例において特に有用であり得る。シーケンシャル・アドレス・ネゴシエーションが用いられる例において、第1のオーディオ関連デバイスがアドレス1、アドレス2等を取るごとにオーディオ関連デバイスがパワー・アップし得る。いくつかの例において、パワー・シーケンサは、オーディオ関連デバイスをシーケンシャルにパワー・アップするために用いられ得る。
ランダム、またはシーケンシャルのいずれかの態様でノードIDを選択する方法の例が図11に示されている。パワー・アップすると、オーディオ関連デバイス200は、ステップ1101に示されるように有効なノードIDが割り与えられたかどうかを決定し得る。オーディオ関連デバイス200が有効なノードIDを有するとき、そのノードIDが用いられ得る。パワー・アップした際に、オーディオ関連デバイス200が有効なノードIDを有しないとき、オーディオ関連デバイス200は、アドレス・ネゴシエーション・プロセスをスタートし得る。オーディオ関連デバイス200は、パワー・アップした際に、「0」といった所定の無効なノードIDを用いて、またはメモリ206に格納されているノードIDを無効であるとカテゴリ化する属性によってノードIDが無効であることを決定し得る。いくつかの例において、ノードIDは、オーディオ関連デバイス200をパワー・アップしたとき、その同一のノードは、パワー・アップされた前回の時から再格納されるように、同一のノードIDが不揮発性ストレージに格納され得る。他の例において、ノードIDは、パワー・ダウンした際に無効にされ得る。
ステップ1102では、オーディオ関連デバイス200が、シーケンシャル・アドレス・ネゴシエーションに対して構成されているか否かの決定がなされる。オーディオ関連デバイス200が、シーケンシャル・アドレス・ネゴシエーションに対して構成されているとき、オーディオ関連デバイス200は、ステップ1004に示されるようにテスト・ノードIDを所定のアドレスにセットし得る。例えば、所定のアドレスは、「1」であり得る。オーディオ関連デバイス200は、ステップ1006に示されるようにネットワークの混雑を最小にするためにある時間(例えば、ランダムな時間)を待機し得る。テスト・ノードIDは、ステップ1008に示されるようにネットワーク上の他のオーディオ関連デバイスに、テスト・ノードIDが既に用いられているか否を決定する要求アドレス・メッセージとしてブロードキャストされ得る。要求アドレス・メッセージを受け取ると、ネットワーク上の他のオーディオ関連デバイスは、ステップ1010に示されるように、テスト・ノードIDが既に用いられているか否を決定し得る。オーディオ関連デバイス200が、要求アドレス・メッセージに対する応答を受け取らないとき、ノードIDは、ステップ1002に示されるようにテスト・ノードIDにセットされ得る。テスト・ノードIDが用いられているとき、一意のノードIDが選択されるまで、ステップ1014に示されるように、オーディオ関連デバイス200はテスト・ノードIDを引き続きしてインクリメントし得る。
オーディオ関連デバイス200がシーケンシャル・アドレス・ネゴシエーションに対して構成されていないとき、ステップ1016に示されるように、オーディオ関連デバイス200がランダム・アドレス・ネゴシエーションに対して構成されているか否の決定がされ得る。ランダム・アドレス・ネゴシエーション構成でないときには、オーディオ関連デバイスはノードIDを生成するたに別の方法を用い得る。しかしながら、オーディオ関連デバイス200がランダム・アドレス・ネゴシエーションに対して構成されているとき、オーディオ関連デバイス200はステップ1018に示されるように、ランダム・ノートIDを生成し得る。いくつかの例において、オーディオ関連デバイスのシリアル・ナンバーは、ノードIDをランダムに生成するためのシード(seed)であり得る。ネットワーク上の他のオーディオ関連デバイスのノードIDとの衝突を避けるために、オーディオ関連デバイス200は、ステップ1020に示されるように、生成されたノードIDを有する要求アドレス・メッセージをブロードキャストし得る。ステップ1022に示されるように、ネットワークの混雑を最小にするために、ブロードキャストはある時間(例えば、ランダム時間)待機後に起こり得る。要求アドレス・メッセージを受け取ると、ネットワーク上の他のオーディオ関連デバイスは、ステップ1024に示されるように、生成されたノードIDが既に用いられているか否かを決定し得る。生成されたノードIDが用いられているとき、オーディオ関連デバイス200は通知され得る。オーディオ関連デバイス200は、一意のノードIDが選択されるまでランダム・ノードIDを引き続き生成し得る。オーディオ関連デバイス200が要求アドレス・メッセージに対する応答を受け取らないとき、ノードIDは、ステップ1026に示されるように生成されたノードIDにセットされ得る。
あるいは、オーディオ関連デバイスは、メモリ206に格納されているノードIDを用い得る。例えば、ノードIDを割り与えられる前に、オーディオ関連デバイス200は当初は「0」といった所定のノードIDを有し得る。いくつかの例において、ノードIDは、オーディオ関連デバイス200がパワー・アップしたとき、同一のノードIDは、パワー・アップされた前回の時から再格納されるように、不揮発性ストレージに格納され得る。例えば、メモリに格納されているノードIDが、「0」といった所定のノードIDでないために、オーディオ関連デバイス200はノードIDが以前割り当てられたと決定し得る。他の例において、ノードIDはパワー・ダウンした際に無効にされ得る。
サブスクリプション・マネージャ・モジュール1010は、オーディオ・ネットワークにおける他のオーディオ関連デバイスによってオーディオ関連デバイスのサブスクリプションを管理するように構成されている。加えて、サブスクリプション・マネージャ・モジュール1010は、オーディオ関連デバイスによって、オーディオ・ネットワーク120上の他のオーディオ関連デバイスへのサブスクリプションを管理するように構成されている。データ変数が変化するとき、サブスクリプションは別のオーディオ関連デバイスからの1つ以上のデータ変数の受け取りを要求するように用いられる。例えば、第1のオーディオ関連デバイスが、第2のオーディオ関連デバイスのオーディオ信号レベルにサブスクライブし得る。この例において、オーディオ信号レベルが変化するとき、第2のオーディオ関連デバイスは、オーディオ信号レベルを表すアップデートされたデータ変数を、オーディオ・ネットワーク120上の第1のオーディオ関連デバイスに提供し得る。同様に、第2のオーディオ関連デバイスは、第1のオーディオ関連デバイスの1つ以上のデータ変数にサブスクライブし得る。このようなサブスクリプションは、サブスクリプション・マネージャ・モジュール1010によって管理され、かつ、統治される。
デバイス・ツー・デバイス通信モジュール1012は、オーディオ・システムにおける他のオーディオ関連デバイスとの非ネットワーク通信を確立し、維持するように構成されている。先述されたように、オーディオ関連デバイスは、ネットワーク通信の外側のオーディオ関連デバイスと直接的に通信し得る。従って、デバイス・ツー・デバイス通信モジュール1012は、ノードIDおよび別のオーディオ関連デバイスと確立された通信に関連した他の関連する情報ならびに設定を格納するように構成されている。加えて、オーディオ関連デバイス間でパスされたメッセージは、デバイス・ツー・デバイス通信モジュール1012によって送達され、かつ、受け取られ得る。さらに、デバイス・ツー・デバイス通信モジュール1012は、送達されるメッセージを生成し、受け取られたメッセージを処理し得る。
リンク・マネージャ・モジュール1014は、他の複数のオーディオ関連デバイスへのサブスクリプションを管理するように構成されている。リンク・マネージャ1014は、オーディオ関連デバイス200内のデータ変数を管理するように構成され得る。管理されているデータ変数が変化するとき、リンク・マネージャ・モジュール1014は、その変化を他のオーディオ関連デバイスに通知し得る。その通知に応答して、他のオーディオ関連デバイスは、変化されたデータ変数を有するオーディオ関連デバイスにサブスクライブし、アップデートされたデータの変数の受け取りを要求し得る。リンク・マネージャの動作はまた、図5のPEMに関して記載される。
リンク・マネージャ・モジュール1014はまた、特定のオーディオ関連デバイスに対してサブスクリプションの負荷を減らすように構成されている。例えば、第1のオーディオ関連デバイスがあるデータ変数に対する多くのサブスクリプションの負荷を負うとき、より低いサブスクリプション要求を有する第2のオーディオ関連デバイスのリンク・マネージャ・モジュールが、その負荷を軽減するために用いられ得る。このシナリオでは、第2のオーディオ関連デバイスは、特定のデータ変数を受け取るために、第1のオーディオ関連デバイスにサブスクライブし得る。加えて、第2のオーディオ関連デバイスのリンク・マネージャ・モジュールは、特定のデータ変数が受け取られたとき、他のオーディオ関連デバイスに注意を促すように構成され得る。従って、他のオーディオ関連デバイスは、アップデートされた特定のデータ変数を取得するために、第1のオーディオ関連デバイスではなく、第2のオーディオ関連デバイスにサブスクライブし得、それにより、第1のオーディオ関連デバイスの負荷が減少される。
(VI.ネットワークノード発見)
図12は、オーディオ・ネットワーク120および複数「N」のオーディオ関連デバイス1204に結合されているスイッチ1202の構成の例である。この構成の例において、スイッチ1202は、ネットワーク接続1206および複数「N」のポート1208を有し得る。ネットワーク接続1206は、ネットワーク・アドレスを有し得る。ポート1208のそれぞれは、所定のノードIDを有し得る。
複数のオーディオ関連デバイス1204は、関連したスピーカを有する増幅器のアレイであり得る。アレイにおけるスピーカのそれぞれの位置は、アレイから所望の音響効果を生成するために関連した増幅器の設定を指示し得る。
(図示されていないが)PEMは、アレイにおける増幅器のそれぞれに対する格納されている所定の設定を含み得る。PEMはまた、スイッチ1202の格納されている所定の設定であって、ポート1208とノードIDとの間の対応を示す設定を含み得る。オーディオ関連デバイス1204およびスイッチ1202が起動されているとき、PEMは、スイッチ1202のために、オーディオ・ネットワーク120上のオーディオ関連デバイス1204を見ることができない。しかしながら、ポート1208への所定のノードIDの割り当てのために、PEMは、ノードIDに対応するポートの数1208に基づいて設定をオーディオ関連デバイス1204にダウンロードし得る。従って、デバイス1204のそれぞれが、アレイにおけるスピーカの位置に対応するスイッチ1202上のポート1208に結合されている。
一度デバイスがノード・アドレスを割り当てられると、PEMおよび他のデバイスは、そのデバイスを発見し得る。以下の例は、複数のオーディオ関連デバイス間の発見に関連する。しかしながら、PEM、または他のデバイスは、オーディオ・ネットワーク上のオーディオ関連デバイスを発見し得る。例えば、PEMのノード分解能モジュール600(図6)は、後述されるように用いられ得る。このことをする際に、ルーティング層308(図3)は、所定のネットワーク・インターフェース上に常駐するオーディオ関連デバイスの存在を決定するために、またオーディオ関連デバイスをアドレス指定するために必要であるネットワーク情報を発見するために、Ethernet(登録商標)ネットワーク上のTCP/IP、485バスの上のトークン・ネットワーク・サービス、またはUSB上のUSBサービスといったアンダーライする層によって供給されるサービスを用い得る。いくつかの例において、オーディオ関連デバイス200(図2)は、ノードIDおよびネットワーク・アドレスを特定し得る。
図13は、オーディオ・ネットワーク上のノードであって、システムとともに用いられ得るノードを発見する方法を示すフローチャートである。ルーティング・テーブルが、ブロック1302に示されるように、要求されたノードに対して検索される。ノードIDがルーティング・テーブルにおいて見つけられるとき、そのルートが用いられ得る(ブロック1303)。ノードIDに対するノードがルーティング・テーブルに見つけられないとき(1304)、デバイスと通信するルートが決定され得る。ルートを決定するために、オーディオ関連デバイスは、ステップ1306に示されるように、要求されたルートを特定するメッセージをブロードキャストし得る。オーディオ関連デバイスは、それから、ブロック1308に示されるように、ブロードキャストに対する応答に対して待機し得る。オーディオ・ネットワーク上の、ブロードキャストを受け取るデバイスは、要求されたノードへのルートを検索し得る。例えば、その要求を受け取るデバイスが、デバイスのルーティン・テーブルを検索し得る。別の例として、その要求を受け取るデバイスは、要求されたノードがデバイスのノードIDと一致するか否かを決定し得る。デバイスがブロードキャストに対する応答を受け取るとき(ステップ1310)、応答に基づいて、ルーティング・テーブルに新しいエントリが作成される(ステップ1312)。ブロードキャストから応答が受け取られないとき、ステップ1314に示されるように、ルートを要求するさらなるブロードキャストがされ得る。ブロードキャストに対して応答が受け取られないとき、ステップ1316に示されるように、「not found」エラーが返送され得る。いくつかの例において、デバイスは、ノードとの通信の必要性が生じるときだけ、オーディオ・ネットワーク上のこのような他のノードを見つけ得る。要求ドリブン・アプローチは、接続される必要があるノードに対するルートを要求するだけで、ルーティング・テーブルのサイズを最小する。しかしながら、他の例において、デバイスは、あるアプリケーション層レベルですべてのノードと通信し得ないが、デバイスはオーディオ・ネットワーク全体のモニタを所望し得る。
デバイスは、ノード発見に対してDiscoInfoメッセージといった発見メッセージを用い得る。いくつかの例において、2つの異なる形式のDiscoInfoメッセージであり得る。クエリおよび応答である。DiscoInfoメッセージの形式は、メッセージにおけるフラグフィールドの状態によって区別され得る。クエリ形式のDiscoInfoメッセージは、オーディオ・ネットワーク上のノードを見つけ出し、メッセージを送達するものに関する情報を、受け取るオーディオ関連デバイスにパスするために用いられ得る。クエリ形式のDiscoInfoメッセージを用いるために、送達するものは、送達するもののネットワークの詳細とともに位置付けられようとするオーディオ関連デバイスのノード・アドレスを特定し得る。送達するものは、それから、メッセージをオーディオ・ネットワーク上にブロードキャストし得る。以下の表は、DiscoInfoメッセージのフォーマットおよび内容の例である。この表では、符号なしのロング・コンピュータ・データタイプが「ULONG」と表されている。
あるいは、ノードの1つがプロキシの役割を果たし得る。この例において、オーディオ関連デバイス1004は、スイッチ1002に結合されている他のオーディオ関連デバイス1004にクエリし得る(図10)。プロキシ・オーディオ関連デバイス1004は、それから、設定およびノードIDといったオーディオ関連デバイス情報をPEM、または別のオーディオ関連デバイスに送達し得る。PEM、または別のオーディオ関連デバイスは、それから、適宜に、スイッチ1002に結合されているオーディオ関連デバイス1004の存在、およびスイッチ1002を介するオーディオ関連デバイス1004との通信を認識させられ得る。
例えば、第1のノードおよび第2のノードは、ルータによって第3のノードに接続されていると仮定する。第3のノードは、第1のノードに接続し得る。第3のノードは、SetProxyState(On)メッセージといったプロキシ・イネイブル・メッセージを第1のノードに送達することによって、第1のノードをプロキシとしてセットし得る。第3のノードは、それから、(クエリ形式の)DiscoInfoメッセージを第1のノードに送達し得る。これに応答して、第1のノードは、その第1のノードのルーティング・テーブルにおいて第3のノードのノードIDおよびネットワーク・アドレスを保存し得る。第1のノードは、それから、オーディオ・ネットワーク上でクエリ形式のDiscoInfoメッセージをブロードキャストし得る。第1のノードによるこのブロードキャストは、第2のノードによって受け取られ得る。これに応答して、第2のノードは、その第2のノードのルーティング・テーブルにおいて第3のノードのノードIDおよびネットワーク・アドレスを保存し得る。
第2のノードは、ここで、第1ノードを介して第3のノードと通信し得る。第2のノードは、第1のノードのノードIDをネットワーク・アドレスとして用いて、応答形式のDiscoInfoメッセージを第3のノードに送達し得る。このメッセージは、第1のノードによって受け取られ得、第1のノードは、そのノードIDが第3のノードのノードIDである認識し得、それから、そのメッセージを第3のノードに転送する。第1のノードからメッセージを受け取ると、第3のノードは、そのメッセージが、プロキシを介してからルーティングされたことを認識し得る。例えば、第3のノードは、一致があるか否かを決定するためにメッセージを送達したノードのネットワーク・アドレスを、プロキシ・アドレスとアドレスと比較し得る。第3のノードは、それから、第1のノードのネットワーク・アドレスを有する第2のノードのノードIDを有してルーティング・テーブルにエントリし得る。いくつかの例において、エントリがまた、DiscoInfoメッセージから受け取られる第2のノードのネットワーク・アドレスを有する第3のルートのルーティング・テーブルにされ得る。
いくつかの例において、このシステムは、ファイアウォールの後ろにあるプライベート・オーディオ・ネットワークとして構成され得、または、システムは、Internetといった共有の公共のインフラを介してアクセス可能である。このような例において、仮想プレイベート・ネットワーク(「VPN」)が用いられ得る。VPNは、2つのネットワークの間、またはホストとネットワークの間にトンネルを作成し得る。VPNはまた、認証および/または暗号化サービスを提供し得る。例えば、ノードは、VPN用いて、Internet上のどこからでもアクセスされ得る。
いくつの例は、オーディオ・ネットワークに結合しているノードが当該の他のデバイスによって見逃されている可能性を減らすためにフェールセーフ・ノード発見を含み得る。デバイスは、DiscoFailsafeメッセージといった発見メッセージを、ある間隔で(例えば、1分毎に)オーディオ・ネットワークにブロードキャストし得る。ルーティング・テーブルに関して後述されるように、シリアル・ナンバーは、ノード・アドレスによって示されるノードを一意に識別し得る。受け取られる各DiscoInfo応答メッセージに対して、デバイスは、DiscoFailsafeメッセージのソースによって示されるノードIDへのルートに対してルーティング・テーブルを検索し得る。各識別されたルートに対して、シリアル・ナンバーは、DiscoFailsafeメッセージにおけるシリアル・ナンバーと比較され得る。シリアル・ナンバーが一致しないとき、報告され得るアドレス衝突があり得る。シリアル・ナンバーが一致するとき、DiscoInfoメッセージからの情報が、ルーティング・テーブルに加えられ得る。いくつかの例において、ノードは、1つ以上のデバイスが、フェールセーフ発見に、正確に応答していないか否かを決定するためにそのテーブルにおける重複ルートをチェックし得る。
オーディオ関連デバイス200は、オーディオ・ネットワーク上で引き続くデバイスの参加を追跡し得る。ルートが「タイム・アウト」し、無効と判断される前に、ルート上で許される最大の無活動期間を決定するためにキープ・アライブ期間(「KAP」)が提供され得る。例えば、デバイスに関連付けられたKAPは、250ミリ秒であり得る。いくつかの例において、ソース・デバイスは、送達されるDiscoInfoメッセージのそれぞれにKAPを配置することによって目的デバイスのKAPを特定し得る。例えば、接続が保障される際には、デバイスが送達した最後のDiscoInfo(応答)メッセージの後に、そのデバイスはKAP期間内にDiscoInfoメッセージを送達し得る。目的デバイスが、KAPのタイムフレーム内でメッセージを受け取らないとき、目的デバイスはルートをタイム・アウトし得る。
オーディオ・ネットワーク上の各デバイスは、ルーティング・テーブルをインプリメントし、維持し得る。ルーティング・テーブルは、ノード間のデータ・パスを選択するために用いられ得る。ルーティング・テーブルは、オーディオ・ネットワーク上の他のデバイスへのルートのリスト、および他のデバイスへメッセージを送達するために必要とされるネットワーク情報を格納し得る。いくつかの例において、そのテーブルは、少なくとも20のルートおよび最低10の他のデバイスを収容し得る。
いくつかの例において、ルーティング・テーブルは、以下のコンポーネントを包含し得る。以下のコンポーネントはノード・アドレス、シリアル・ナンバー、最大メッセージ・サイズ、ネットワーク・インターフェース、ネットワーク・アドレス、およびコストである。ノード・アドレス・コンポーネントは、ルーティング・テーブルにおいてエントリがされるリモート・デバイスを識別し得る。リモート・ノードが、(マルチ・ホームの)1つより多いネットワーク・インターフェースを有するとき、デバイスに対するそのテーブルにおいていくつかのエントリがあり得、1つのエントリは各ネットワーク・インターフェースに対してである。このような場合には、各ルートは、同一のノード・アドレスを有し得る。ルーティング・テーブルのシリアル・ナンバー・コンポーネントは、ノード・アドレスによって示されるデバイスを一意に識別し得る。最大メッセージ・サイズ・コンポーネントは、ルーティング・テーブルにおけるエントリに関連したデバイスを通過し得るメッセージの最大サイズを記述し得る。ネットワーク・インターフェース・コンポーネントは、デバイスによって用いられるネットワーク・インターフェースのタイプを記述し得る。先述されるように、デバイスが、複数のネットワーク・インターフェースを有するとき、そのデバイスは、ルーティング・テーブルにおいて1つより多いエントリを有し得る。ネットワーク・アドレス・コンポーネントがデバイスに関連したネットワーク・アドレスを記述するために用いられ得る。コスト・コンポーネントは、ルートに対するトランジット時間を表し得る。ノードが一般的に、最小費用のデータ・パスを介してデータをルーティングする一方で、他の要因が、選択されたルートに影響を及ぼし得る。例えば、ノード間の通信帯域幅は、ルートを決定する際の要因であり得る。例えば、Ethernet(登録商標)に関連したコストは、「1」であり得、一方、USBは、「10」コストを有し得、RS232は、「100」コストを有し得る。
(VII.プロトコル)
図14は、このシステムのネットワーク・プロトコルにおいて用いられ得る構造を示すブロック図である。ヘッダー情報は、バージョン、長さ、ソース・アドレス、目的アドレス、メッセージID、フラグ、カウント、および、シーケンス・ナンバーを含み得る。バージョンは、プロトコルのバージョンを示し得る。長さは、ヘッダーおよびメッセージの長さを示すために用いられ得る。ソース・アドレスおよび目的アドレスは、メッセージの送達元および目的地を示すために用いられ得る。
これらのアドレスは、送達元および目的デバイスのノード、仮想デバイスおよびオブジェクトに関する情報を包含し得る。例えば、ソースおよび目的アドレスが48ビットであるとき、0〜23番目のビットは、オブジェクトのタイプを示すために用いられ得、23〜31番目のビットは、仮想デバイスのタイプを示すために用いられ得、31〜47番目のビットは、ノード・アドレスを示し得る。メッセージIDは、存在するメッセージのタイプを示すために用いられ得る。
フラグは、メッセージが要求、返答、迷惑情報、または別の動作か否かを示すために用いられ得る。例えば、フラグは、要求認識、認識、エラー、エベント、保障された、またはマルチ・パート・メッセージを示し得る。例えば、フラグが要求認識であるとき、動作が完了されるまでは、返答は送達されない。例えば、要求認識フラグが、SVの値を変化する動作とともに用いられる。SV値が変化されると、認識フラグを有するメッセージが、それに応答して用いられ得る。連続する複数の動作が行われるべきいくつかの例において、認識フラグが受け取られるまで、各動作メッセージは送達されるために待機し得る。要求認識および認識フラグのこのような使用は、ネットワーク・トラフィックを減らすために用いられ得る。
ホップ・カウントは、送達メッセージに対するホップの数を示すために用いられ得る。シーケンス・ナンバーは、ネットワーク問題を解決するための診断補助として用いられ得る。例えば、シーケンス・ナンバーは、メッセージが送達される毎にインクリメントされ得る。
図14は、カウント、SV_ID、データ・タイプおよび値を含み得るSVメッセージの例を示す。SV_IDは、目的SVを示すために用いられ得る。データ・タイプは、SVデータのサイズおよびフォーマットを示し得る。例えば、データ・タイプは、値がバイト、ワード、フロート、ストリング、またはブロックか否かを示し得る。その値は、実際に転送されているSVデータを示すために用いられ得る。図15は、このシステムに用いられ得るアプリケーション層のメッセージの例を包含するテーブルである。図16は、このシステムに用いられ得るルーティング層のメッセージの例を包含するテーブルである。
(VIII.オーディオ関連デバイスの発見)
図17および図18は、オーディオ・ノード構造、従って、このシステムに用いられ得るオーディオ関連デバイスの機能性を発見するための方法の例を示すフローチャートである。ブロック1702では、GUIのコアは、オーディオ関連デバイスに送達された属性クエリに応答して、オーディオ関連デバイスであるノードからクラス属性を受け取り得る。GUIのコアは、ブロック1704で、クラス属性を含むオーディオ・ノード・クエリを用いてプロダクト・プラグインにクエリし得る。ブロック1706では、プロダクト・プラグインが、ノードのクラス属性を分析し、それを認識しないとき、ブロック1708で、システムにおいてさらなるプロダクト・プラグインがあるかどうかが決定される。さらなるプロダクト・プラグインがあるとき、動作は、ブロック1704に戻り、GUIのコアは、クラス属性を分析するために別のプロダクト・プラグインにクエリする。オーディオ・システムにおけるプロダクト・プラグインのいずれもが、ノードを認識しないとき、ノードは、ブロック1710で、ジェネリック・プラグインにパスされる(図19を参照して後述される)。
ブロック1706で、クエリされているプロダクト・プラグインが、ノードの属性を認識するとき、ブロック1716において、仮想デバイスのリストがオーディオ関連デバイスにおけるノード・マネージャ仮想デバイスから要求される。ブロック1718において、仮想デバイスが仮想デバイスのリストから選択される。ブロック1720において、仮想デバイスが既知であるか否かを決定するために、仮想デバイスが、プロダクト・プラグインによって、プロダクト・プラグインのライブラリ・ストレージに含まれている所定の仮想デバイスと比較される。仮想デバイスが、ライブラリ・ストレージに存在するとき、ブロック1722で、仮想デバイスが構成可能であるかどうかが決定される。仮想デバイスに含まれているオブジェクトおよびSVがすべて既知であるので、仮想デバイスが構成可能でないとき、ブロック1724で、プロダクト・プラグインは、オーディオ関連デバイスからSVの実際の値を取得し得る。ブロック1726において、仮想デバイスが既知である表示およびオーディオ関連デバイスのオーディオ・ノード構造のその部分がノード構造ストレージに格納され得る。対応するSVの実際の値は、ブロック1728で、コントロール・パネル・データ・ストレージに格納され得る。ブロック1730で、すべての仮想デバイスが既知であるかどうかを確かめるために、仮想デバイスのリストに含まれているすべての仮想デバイスがチェックされたかどうか決定される。チェックされていないとき、動作はブロック1718に戻り、別の仮想デバイスを分析し、決定するためにその別の仮想デバイスを選択する。仮想デバイスのリストにおけるすべての仮想デバイスがチェックされているとき、動作はブロック1732で終了する。
再びブロック1720を参照して、プロダクト・プラグインが、仮想デバイスを認識しないとき、他のプロダクト・プラグインは、ブロック1736で、仮想デバイスの知識に対してクエリされ得る。他のプロダクト・プラグインのクエリが、プラグイン・サーチ・エンジン、またはそのプロダクト・プラグインを用いて行われ得る。仮想デバイスが、別のプロダクト・プラグインによって既知であるとき、ブロック1738で、仮想デバイスが取り出され、ライブラリ・ストレージに格納され得、動作はその仮想デバイスが構成可能であるかどうかを決定するために、ブロック1722に続く。仮想デバイスが、別のプロダクト・プラグインによって既知でないとき、仮想デバイスを記述する詳細なオーディオ・ノード構造属性が、ブロック1740で、オーディオ関連デバイスから取り出され得る。仮想デバイスの詳細なオーディオ・ノード構造属性が、発見エンジンによってオーディオ関連デバイスから取り出され得る。ブロック1742において、仮想デバイスの詳細なオーディオ・ノード構造属性が、ノード構造ストレージに格納され得る。
動作は、図18に続く。そこで、未知の仮想デバイスが含まれているオブジェクトのリストが、ブロック1744において、オーディオ関連デバイスから取得され得る。同様に、ブロック1722(図17)において、仮想デバイスが構成可能であるとき、構成可能な仮想デバイスに含まれているオブジェクトのリストが、ブロック1744において、オーディオ関連デバイスから取得され得る。オブジェクトのリストが、プロダクト・プラグイン、または発見エンジンによって取得され得る。
ブロック1746において、オブジェクトがオブジェクトのリストから選択される。選択されたオブジェクトが、プロダクト・プラグインのライブラリ・ストレージに存在しているかどうかが決定され、ブロック1747で、既知であるかどうかが決定される。オブジェクトが既知であるとき、オブジェクトに含まれているSVの実際の値がブロック1748で、取得され得る。SVの実際の値が取り出しエンジンによって取得され得る。ブロック1750において、オブジェクトが既知である表示およびその対応するオーディオ・ノード構造がノード構造ストレージに格納され得る。ブロック1752において、SVの実際の値が、コントロール・パネル・データ・ストレージに格納され得る。オブジェクトが、ブロック1754において、既知であるとき、仮想デバイスにおけるすべてのオブジェクトがチェックされたかどうかが決定される。すべてのオブジェクトがチェックされていたとき、ブロック1756において、仮想デバイスにおけるオブジェクトに含まれていないSVがあるかどうかが決定される。オブジェクトに含まれていないSVがあるとき、ブロック1758において、オブジェクトに含まれていないSVのリストがオーディオ関連デバイスから取得され、動作が、後述されるように、SVを選択し、SVが既知であるかどうかをチェックするためにブロック1772に進む。オブジェクトに含まれていないSVであって、仮想デバイスに含まれているそのSVがないとき、動作が、すべての仮想デバイスがチェックされたかどうかを決定するために図17のブロック1730に戻る。ブロック1754で、仮想デバイスにおけるすべてのオブジェクトがチェックされていないとき、動作は、オブジェクトのリストから別のオブジェクトを選択するためにブロック1746に戻る。
ブロック1747で、オブジェクトが未知であるとき、他のプロダクト・プラグインが、ブロック1760で、オブジェクトの知識に対してクエリされ得る。他のプロダクト・プラグインのクエリは、プラグイン・サーチ・エンジン、またはプロダクト・プラグインを用いて行われ得る。オブジェクトが、別のプロダクト・プラグインによって既知であるとき、オブジェクトは、ブロック1762で、取り出され、ライブラリ・ストレージに格納され得、動作が、SVに対する実際の値を取得するためにブロック1748に続く。ブロック1760において、オブジェクトが、別のプロダクト・プラグインによって既知でないとき、オブジェクトを記述する詳細なオーディオ・ノード構造属性が、ブロック1764で、オーディオ関連デバイスから取り出される。オブジェクトの詳細なオーディオ・ノード構造属性が、発見エンジンによってオーディオ関連デバイスから取り出され得る。ブロック1766において、オブジェクトの詳細なオーディオ・ノード構造属性は、ノード構造ストレージに格納され得る。
ブロック1768において、未知のオブジェクトおよび/または仮想デバイスに含まれているSVのリストが、オーディオ関連デバイスから取得され得る。ブロック1770において、SVの1つが、SVのリストから選択される。ブロック1722に おいて、SVがライブラリ・ストレージに格納されているかどうか、従って、既知であるかどうかが決定される。SVが既知であるとき、SVの実際の値が、ブロック1744で、オーディオ関連デバイスから取得される。ブロック1776において、SVが既知である表示およびその対応するオーディオ・ノード構造がノード構造ストレージに格納され得る。加えて、ブロック1778で、SVの実際の値がコントロール・パネル・データ・ストレージに格納される。ブロック1780において、すべてのSVが既知であるかどうかを決定するために、SVのリストにおけるそれらのすべてのSVがチェックされたかどうかが決定される。すべてのSVがチェックされていないとき、動作は、オーディオ関連デバイスから取得されたSVのリストから別のSVを選択するためにブロック1770に戻る。オブジェクトにおけるSVのすべてがチェックされているとき、動作は、仮想デバイスにおけるオブジェクトがチェックされたかどうかをチェックするためにブロック1754に戻る。
ブロック1772において、SVが、プロダクト・プラグインによって既知でないとき、SVが、ブロック1782において、別のプロダクト・プラグインによって既知であるかどうかが決定される。他のプロダクト・プラグインのクエリは、プラグイン・サーチ・エンジン、またはプロダクト・プラグインを用いて行われ得る。別のプロダクト・プラグインによって既知であるとき、SVは、ブロック1784において、別のプロダクト・プラグインから取り出され、ライブラリ・ストレージに格納され、動作は、オーディオ関連デバイスからSVの実際の値を取り出すためにブロック1744に続く。SVが、別のプロダクト・プラグインによって既知でないとき、SVを記述する詳細なオーディオ・ノード構造属性が、ブロック1786において、オーディオ関連デバイスから取り出され、動作が、ノード構造ストレージにSVを格納するためにブロック1776に続く。SVの詳細なオーディオ・ノード構造属性が、発見エンジンによって、オーディオ関連デバイスから取り出され得る。
オーディオ関連デバイスのオーディオ・ノード構造における各SV、オブジェクトおよび仮想デバイス、または未知のSV、オブジェクトおよび仮想デバイスの詳細なオーディオ・ノード構造属性が、ノード構造ストレージに格納されるまで、処理は継続し得る。あるいは、制限さえた能力を有する「薄い」PEMの場合には、オーディオ・ノード構造または詳細な属性のより小さい部分が、いつでもノード構造ストレージに格納され得、追加的なオーディオ・ノード構造または詳細な属性が、必要に応じて格納され得る。
再度、図17のブロック1710を参照して、ノードのクラス属性が、プロダクト・プラグインのいずれによっても認識されないとき、ノードはジェネリック・プラグインにパスされる。図19では、ブロック1902において、ジェネリック・プラグインの取り出しエンジンは、ノード・クエリに応答して仮想デバイスのリストを受け取る。ブロック1904では、仮想デバイスが、仮想デバイスのリストから選択される。プラグイン・サーチ・エンジンが、ブロック1906において、選択された仮想デバイスの知識に対してプロダクト・プラグインにクエリするために有効にされ得る。あるいは、取り出しエンジンは、他のプロダクト・プラグインにクエリし得る。仮想デバイスがプロダクト・プラグインによって既知であり、構成可能でないとき(ブロック1908)、仮想デバイスのSVの実際の値がブロック1910で取得される。仮想デバイスが既知である表示おひびその対応するオーディオ・ノード構造が、ブロック1912において、ノード格納ストレージに格納され得る。仮想デバイス内のSVの実際の値が、ブロック1914において、コントロール・パネル・データ・ストレージに格納され得る。ブロック1916では、すべての仮想デバイスがチェックされたかどうかが決定され、チェックされているとき、動作がブロック1918で終了する。すべての仮想デバイスがチェックされていないとき、動作が1904に戻り、リストから別の仮想デバイスを選択する。ブロック1906において、仮想デバイスが未知であるとき、詳細な属性がブロック1928で要求され、ブロック1930で、ノード構造ストレージに格納され得る。
ブロック1932において、未知の仮想デバイスにおけるオブジェクトのリストが取得される。同様に、ブロック1908において、仮想デバイスが構成可能であるとき、動作は、構成可能であるデバイスにおけるオブジェクトのリストを要求するためにブロック1932に進む。ブロック1934において、オブジェクトがリストから選択され、ブロック1936において、選択されたオブジェクトが、プロダクト・プラグインのいずれかによって既知であるかどうかが決定される。オブジェクトが既知であるとき、オブジェクトに含まれているSVの実際の値が、ブロック1938で取得される。オブジェクトが既知である表示およびその対応するオーディオ・ノード構造が、ブロック1940において、ノード構造ストレージに格納される。ブロック1942では、オブジェクトに関連するSVの実際の値が、オーディオ関連デバイスから取得され、コントロール・パネル・データ・ストレージに格納され得る。ブロック1944で、オブジェクトのすべてがチェックされたかどうかが決定される。すべてのオブジェクトがチェックされていないとき、動作はブロック1934に戻り、すべてのオブジェクトがチェックされているとき、ブロック1946でオブジェクトに含まれていない仮想デバイスにSVがあるかどうかが決定される。SVがないとき、動作は、リストにおけるすべての仮想デバイスがチェックされたかどうかを決定するためにブロック1918に戻る。このようなSVがあるとき、動作は、後述されるように、SVを取得するためにブロック1966に進む。
ブロック1936において、オブジェクトが既知でないとき、オブジェクトの詳細な属性が、ブロック1960で取得され、ブロック1962でノード構造ストレージに格納され得る。未知のオブジェクトのSVのリストがブロック1964で取得され、リストにおけるSVの1つが、ブロック1966で選択される。ブロック1968において、SVが、プロダクト・プラグインの1つによって認識されているかどうかが決定される。SVが既知であるとき、SVの実際の値が、ブロック1970でプロダクト・プラグインから取り出される。ブロック1972において、既知である表示およびオーディオ・ノード構造のその部分がノード構造ストレージに格納される。ブロック1974において、SVの実際の値が受け取られ、ブロック1976において、SVの実際の値が、コントロール・パネル・データ・ストレージに格納される。
ブロック1978において、すべてのSVがチェックされたかどうかが決定される。すべてのSVがチェックされていないとき、動作は、別のSVを取得するためにブロック1966に戻る。SVのすべてがチェックされているとき、動作は、すべてのオブジェクトがチェックされたかどうかを決定するためにブロック1944に戻る。ブロック1968において、SVが既知でないとき、SVの詳細な属性がブロック1980で取得され、動作は、ブロック1972に続く。そこでは、SVの詳細な属性がノード構造ストレージに格納される。動作は、オーディオ・ノード構造が、既知であると識別されるか、またはさらなる発見が、オーディオ・ノード構造における未知のコンポーネントを決定するために行われるまで継続する。
(IX.コントロール・パネル・ディスプレイ)
図20は、PEMの能力が変化し得るとき、プロダクト属性を発見するためにシステムにおいて用いられ得る方法を示すフローチャートである。例えば、PEMは、そのディスプレイ上で、格納されている所定のGUIのコントロール・パネル・ビュー全体を表示することができないデバイス上に常駐し得る。別の例として、デバイスは、制限された処理能力を有し得、従って、同時に、格納されている所定のGUIのコントロール・パネル・ビュー全体の表示することを用意することは所望されないかもしれない。その代わりに、GUIのコントロール・パネル・ビューは、例えば、ユーザのコマンドに基づいて、必要に応じて生成され得る。従って、デバイス処理能力およびディスプレイのサイズのさまざまなレベルのスケーラビリティがサポートされ得る。これはまた、図4を参照して記述されるように、「薄いアプリケーション層」と呼ばれる。
図20では、ブロック2002において、特定のオーディオ関連デバイスのオーディオ・ノード構造のすべてがチェックされたかどうか、およびオーディオ・ノード構造の表示が、ノード構造ストレージに格納されているか否かが決定される。オーディオ・ノード構造のすべてがチェックされていないとき、動作はこのことが起きたかどうかを決定するために継続する。ノード構造ストレージが、オーディオ・ノード構造全体に対する表示を包含するとき、PEMが常駐するデバイスが、ブロック2004で、デバイス・ディスプレイ能力を決定するためにチェックされる。ブロック2006において、1つ以上の格納されている所定のコントロール・パネル・ビューが、オーディオ関連デバイスのオーディオ・ノー構造に対して存在するかどうかが決定される。
コントロール・パネル・ビューが存在するとき、格納されているコントロール・パネル・ビューが、ブロック2008で、表示デバイスの能力と互換性があるかどうかが決定される。ブロック2010において、コントロール・パネル・ビューに含まれているオーディオ関連デバイスのコンポーネントの機能性のすべてが、所定のコントロール・パネル・ビューによってサポートされているかどうかが決定される。それがサポートされているとき、ディスプレイがブロック2012でインスタンス化される。ブロック2014において、コントロール・パネル・ビューに含まれているSVの実際の値がコントロール・パネル・データ・ストレージから加えられる。インスタンス化されたコントロール・パネル・ビューが、ブロック2016において、表示のために格納され得る。表示デバイスの能力に基づいて、オーディオ・ノード構造のさらなるコントロール・パネル・ビューが、ブロック2018でインスタンス化されるべきか否かが決定される。これ以上のコントロール・ビューがインスタンス化されないとき、動作はブロック2020で終了する。さらなるコントロール・ビューがインスタンス化されるとき、動作は、ブロック2006に戻り、オーディオ関連デバイスのオーディオ・ノード構造に関連した別のコントロール・ビューをチェックする。
ブロック2006に戻り、コントロール・ビューがオーディオ関連デバイスのオーディオ・ノード構造に対して存在しないとき、ジェネリック・プラグインは、ブロック2030で有効にされ得る。ブロック2032において、ジェネリック・プラグインは、ノード構造ストレージに格納されているオーディオ・ノード構造に基づいてジェネリック・コントロール・パネル・ビューを作成し得、動作が、ジェネリック・コントロール・パネル・ビューのディスプレイをインスタンス化するためにブロック2012に進む。ブロック2010に戻って、オーディオ・ノード構造の一部を表しているすべてのコンポーネントが、所定のコントロール・パネル・ビューにおいてサポートされていないとき、サポートされていないコンポーネントに対応する所定のGUIのアスペクトが、ブロック2036で、プロダクト・プラグインに格納されているかどうかが決定される。格納されている所定のGUIのアスペクトが、プロダクト・プラグインに存在するとき、GUIのアスペクトが、ブロック2038で取り出される。ブロック2040において、取り出されたGUIのアスペクトは、格納されている所定のコントロール・パネル・ビューに統合される。統合されたGUIのアスペクトを含む所定のコントロール・パネル・ビューは、ブロック2042において、オーディオ・デバイスのオーディオ・ノード構造に対応する新しい所定のコントロール・パネル・ビューとして格納され得る。
ブロック2044において、格納されている所定のコントロール・パネル・ビューによってサポートされていないオーディオ・ノード構造のさらなるコンポーネントあるかどうかが決定される。サポートされていないオーディオ・ノード構造のさらなるコンポーネントがあるとき、動作は、格納されている所定のGUIのアスペクトをチェックするためにブロック2036に戻る。オーディオ・ノード構造のさらなるコンポーネントがないとき、動作は、ブロック2012に進み、ディスプレイをインスタンス化する。
再度、ブロック2008を参照して、格納されている所定のコントロール・パネル・ビューが、ディスプレイを駆動するデバイスの能力と互換性がないとき、ブロック2050において、コンポーネントが、互換性があるオーディオ・ノード構造から選択され得る。それから、動作は、GUIのアスペクトを取り出すためにブロック2036に続く。再度、ブロック2036を参照して、GUIのアスペクトがあらかじめ決定されておらず、プロダクト・プラグインに格納されていないとき、他のプロダクト・プラグインが、ブロック2052で、コントロール・パネル・ビューから欠けている機能性を表している格納されているGUIのアスペクトの存在に対してチェックされ得る。GUIのアスペクトがあらかじめ決定されており、別のプロダクト・プラグインに格納されているとき、動作は、格納されている所定のGUIのアスペクトを取り出し、処理するためにブロック2038に戻る。GUIのアスペクトが他のいずれのプロダクト・プラグインに格納されていないとき、ジェネリック・プロダクトインが、ブロック2054で有効にされ得る。ブロック2056において、ジェネリック・プラグインは、ジェネリックGUIのアスペクトを生成し得、動作は、GUIのアスペクトを格納されている所定のコントロール・パネル・ビューに加えるためにブロック2040において継続する。デバイスの能力に左右されて、動作はオーディオ関連デバイス機能性が1つ以上のコントロール・パネル・ビューにインスタンス化されるまで継続する。
図21は、PEMの能力が変化し得るとき、プロダクト属性を発見するために、このシステムに用いられ得る方法の別の例のフローチャートである。この例において、PEMは、オーディオ関連デバイスの完全なる制御のためのすべてデータを包含する。仮想デバイスのリストがオーディオ関連デバイスから受け取られるとき、動作はブロック2102から始まる。ブロック2010において、PEMが動作しているデバイスは、デバイスが、仮想デバイス全体のリストを表示することが可能であるか否かがチェックされる。デバイスが、すべての仮想デバイスのリストを表示することが可能であるとき、仮想デバイス全体のリストが、ブロック2106で取得される。ブロック2108においいて、リストにおける仮想デバイスのすべてが表示される。ブロック2104において、デバイスが、すべての仮想デバイスを表示することが可能でないとき、表示され得る仮想デバイスの一部が、ブロック2110で取得され、ブロック2112で表示される。ブロック2114において、ユーザが他の仮想デバイスを見ることを所望するとき、現在見られている仮想デバイスが、ブロック2116で処分され得、動作は、さらなる仮想デバイスを取得し、表示するためにブロック2110に戻る。例えば、ユーザは、すべての仮想デバイスをレビューするためにデバイス上の「ページ・ダウン」ボタンを選択することによって他のデバイスを見得る。
さらなる仮想デバイスが、ブロック2114において、見られないとき、ブロック2120で、ユーザが、表示されている特定の仮想デバイスに関してさらなる情報を取得することを所望するかどうかが決定される。例えば、ユーザは、オーディオ・ノード構造おけるにオブジェクトであるコントロール・パネル・ビューの一部をクリックし得る。ユーザがクリックしないとき、動作は、ブロック2122で終了する。さらなる情報が所望されるとき、オーディオ関連デバイスに対するオブジェクトのリストが、ブロック2124で要求され得る。
ブロック2126において、PEMが常駐しているデバイスが、オブジェクト全体のリストを表示することが可能であるとき、オブジェクトのリスト全体が、ブロック2128で、取得され得る。取得されたリスト上のオブジェクトが、ブロック2130で表示され得る。ブロック2126において、デバイスがオブジェクトのリスト全体を表示することが可能でないとき、オブジェクトの一部だけが、ブロック2132で取得され、ブロック2134で表示される。仮想デバイスに関して先述されるように、ユーザが、ブロック2136でオブジェクトのリストをスクロールすることを所望するかどうかが決定される。ユーザがスクロールすることを所望するとき、ブロック2138で、現在見られているオブジェクトが処分され、動作がブロック2132に戻る。そこでは、さらなるオブジェクトが取得され、表示される。
図22を参照して、ブロック2140では、ユーザがオブジェクトに対するSVの実際の値をレビューすることを所望するかどうかが決定さえる(図22は、図21のパスCおよびDから継続しているフローチャート図21の続きである)。ユーザがレビューすることを所望しないとき、動作は、ブロック2142で終了する。ユーザがSVをレビューすることを所望するとき、SVのリストが、ブロック2144で要求され、取得される。ブロック2146では、取得されたリスト上のすべてのSVが表示され得るかどうかが決定される。デバイスが、SVのリスト全体を表示することが可能であるとき、リスト全体が、ブロック2148で取得され、ブロック2150で表示される。それ以外の場合には、SVの一部がブロック2152で取得され、ブロック2154で表示される。ブロック2156において、リストからさらなるSVが所望されるかどうかが決定される。所望されないとき、動作は、ブロック2158で終了する。さらなる所望されるSVがあるとき、ユーザは、SVをスクロールし得る。現在表示されているSVが、ブロック2160で処分される。動作は、それから、さらなるSVを取得し、表示するためにブロック2152に戻る。
図23は、(図8および図9に示される)ノード・インスタンス化エンジンの動作の例を示すフローチャートである。プロダクト・プラグインが、ブロック2302において、オーディオ・ノード構造に対応する格納されている所定のコントロール・パネル・ビューを有するかどうかが決定される。プロダクト・プラグインが格納されている所定のコントロール・パネル・ビューを有するとき、所定のコントロール・パネル・ビューが、ブロック2304において、プロダクト・プラグインのコントロール・パネル・ライブラリから選択される。対応するコントロール・パネル・ビューがないとき、コントロール・パネル・ビューが、ブロック2306において、ジェネリック・プラグインを用いて構築され得る。ノード構造のいずれかが、ブロック2308において、コントロール・パネル・ビューから欠けているかどうかが決定される。ノード構造のいずれかが欠けているとき、ブロック2310において、欠けている構造は、GUIのコアの発見エンジンを用いて充填される。ブロック2308において、コントロール・パネル・ビューからの構造が完了するとき、ノード・インスタンス化エンジンは、ブロック2312において、コントロール・パネル・ビューにおけるSVの1つ以上へのサブスクリプションをセットアップし得る。
ブロック2314において、ノード・インスタンス化エンジンは、コントロール・パネル・ビューにおけるSVのリンク・マネージャに通知し得る。ブロック2316において、表示デバイスが、さらなるオーディオ・ノード構造を格納し、かつ、コントロール・パネル・ビューをインスタンス化する能力を有するかどうかが決定される。表示デバイスが能力を有しないとき、動作はブロック2318で終了する。表示デバイスが、追加的な能力を有するとき、ブロック2320において、インスタンス化されていないさらなるオーディオ・ノード構造があるかどうかが決定される。さらなるオーディオ・ノード構造がないとき、動作は、ブロック2318で終了する。コントロール・パネル・ビューにおいてインスタンス化されるさらなるオーディオ・ノード構造があるとき、動作は、残りのオーディオ・ノード構造のコントロール・パネル・ビューの1つ以上の層がインスタンス化され、格納され得るようにブロック2302に戻る。
(X.リンク・マネージャ)
図24は、このシステムに用いられ得るリンク・マネージャのフローチャートである。SVが変化するとき、すべての関連したコントロール・パネル・ビューおよびデバイスが、SVの新しい値を有してアップデータされるように、この方法が用いられ得る。コントロール・パネル・ビューにおけるSVの値が変化するとき(ブロック2402)、この新しいSV値は、プロダクト・プラグインに送達され得る(ブロック2404)。プロダクト・プラグインは、ブロック2406に示されるように、対応するコントロール・パネル・ビューにおいてSVの値をアップデートし得る。リンク・マネージャはまた、SV値がブロック2408に示されるように変化したことを通知され得る。リンク・マネージャは、コントロール・パネル・ビューが、変化されたSVにサブスクライブされているか否かを決定し得る(ブロック2410)。SVとコントロール・パネル・ビューとの間でサブスクリプションが存在するとき、リンク・マネージャは、変化されたSVに関連したコントロール・パネル・ビューのそれぞれに注意を促し得る(ブロック2412)。注意を促されたコントロール・パネル・ビューは、それから、SVの新しい値を決定するためにプロダクト・プラグインまたは別のデバイスにクエリし得る(ブロック2414)。リンク・マネージャはまた、いずれかのデバイスが、変化されたSVにサブスクライブしているか否かを決定し得る(ブロック2416)。SVとデバイスとの間でサブスクリプションが存在するとき、リンク・マネージャは、変化されたSVに関連したデバイスのそれぞれに注意を促し得る(ブロック2418)。注意を促されたコントロール・パネル・ビューは、それから、SVの新しい値を決定するためにプロダクト・プラグインまたは別のデバイスにクエリし得る(ブロック2420)。
(XI.サブスクリプション)
図25は、デバイス間のサブスクリプションが、1つ以上の他のオーディオ関連デバイスを用いて1つ以上のオーディオ関連デバイスにおけるパラメータをモニタおよび/または制御するように用いられ得る方法を示すブロック図である。サブスクリプションは、先述されるように1つ以上のサブスクライブするものに、SVの値における変化を通知するために用いられ得る。加えて、サブスクリプションは、1つ以上のデバイスにおけるSVの値の変化を指示するために用いられ得る。さらに、モニタおよび制御するためにサブスクリプションの組み合わせが、オーディオ関連デバイス間でセットアップされ得る。図25に示される例は、第1のオーディオ関連デバイス2502、第2のオーディオ関連デバイス2504、および第3のオーディオ関連デバイス2506を含む。
第2のオーディオ関連デバイス2504は、第1のオーディオ関連デバイス2502とサブスクライブ・ストリングをセットアップする。サブスクライブ・ストリングは、図15に示されるようなSVSubscribeStringメッセージといったサブスクリプション・メッセージ2508を用いてセットアップされ得る。人間読み取り可能ストリングが、サブスクリプション応答メッセージ2510に含まれ得る。SVSubscribeStringメッセージの例は、以下を含む。
この図解される例では、ソース・アドレスは、第1のオーディオ関連デバイス2502のノードIDであり、目的アドレスは、第2のオーディオ関連デバイス2504のノードIDであり得る。メッセージIDは、サブスクライブ・ストリング・メッセージとしてメッセージを識別し得る。フラグ、ホップ・カウントおよびシーケンス・ナンバーは、オーディオ・システム特定の値であり得、ペイロードは、サブスクライブ・ストリング要求メッセージを含み得る。サブスクライブするもののアドレスは、第1のオーディオ関連デバイス2502のオーディオ・ノード・アドレスであり得る。サブスクリプションの数は、どれだけの数の第1のオーディオ関連デバイス2502へのサブスクリプションがサブスクライブ・ストリング要求に含まれているか示し得る。第1のサブスクライブするもののSV IDは、第2のオーディオ関連デバイス2504におけるSVであって、第1のオーディオ関連デバイス2502における第1のサブスクライブされるもののSV IDに対応するSVを示し得る。
サブスクライブ・ストリングが、第1のオーディオ関連デバイス2502における1つ以上のSVと、対応する1つ以上の第2のオーディオ関連デバイス2504におけるSVとの間でマッピングされ得る。サブスクライブ・ストリングは、サブスクリプションに基づいて提供されるデータが、ユーザによって容易に解読され得るフォーマット(人間読み取り可能フォーマット)であるサブスクリプションを要求し得る。従って、サブスクリプションに関連したSVの値が変化するとき、新しい値が、サブスクリプション応答メッセージ2510で、第2のオーディオ関連デバイス2504に送達され得る。新しい値が表示される前に、第2のオーディオ関連デバイス2504が、複数のデータ・タイプ間で変換することを必要されないように、その値は人間読み取り可能ストリングとして送達さえ得る。
第3のオーディオ関連デバイス2506は、サブスクリプション・メッセージ2512を用いて第1のオーディオ関連デバイス2502とサブスクリプションをセットアップし得る。サブスクリプション・メッセージは、値、または割合であるサブスクリプション応答を要求し得る。第3のオーディオ関連デバイス2506は、第1のオーディオ関連デバイス2502におけるサブスクライブされるもののSVのデータ・タイプを知っているとき、サブスクリプション・メッセージは、所定の条件に基づいて実際の値を要求し得る。第3のオーディオ関連デバイス2506のノード構造のコンポーネントが第1のオーディオ関連デバイス2502においてミラーされるとき、データ・タイプは知られていないかもしれない。第3のオーディオ関連デバイス2506は、サブスクライブされるもののSVのデータ・タイプを知らないとき、サブスクリプション・メッセージが、割合で要求され得る。
第1のオーディオ・デバイス2502がSVの値を送達するのではなく、0%から100%間で変化の割合が、サブスクリプション応答メッセージ2514として送達され得る。従って、ユニット特定の変数ではなくユニット特定の変数を表している割合が送達され、かつ、受け取られ得る。その割合に基づいて、第3のオーディオ関連デバイス2506が、識別された割合分、現存の値を調整し得る。あるいは、第3のオーディオ・デバイスは、その割合から実際の値を決定するために、その割合に対応する実際の値のレンジを有し得る。従って、第3のオーディオ・デバイスは、割合が用いられるとき、データ・タイプおよび/またはユニット値を知ることを必要としない。
図25において、第1のオーディオ関連デバイス2502は、サブスクライブ・メッセージ2514を用いて第3のオーディオ関連デバイス2506におけるSVの値をセットし得る。SVの値が、SVの実際の値を送達する、または割合を送達することによって変化され得る。しかしながら、オーディオ関連デバイスを割合を用いてセットする利点はサブスクライブするもののオーディオ関連デバイスが、データを送達するサブスクライブされるもののオーディオ関連デバイスデータ・タイプを知る必要がないことである。
この例のために、第2のオーディオ関連デバイス2504が、第1のオーディオ関連デバイス2502のSVに対してサブスクライブ・ストリングをセットアップすると仮定する。さらに、第3のオーディオ関連デバイス2506が、SVの値をセットするように構成されていると仮定する。このセットアップでは、第3のオーディオ関連デバイス2506からのSVのセットポイントが、人間読み取り可能形式で、変化されたSV値を有する第1のオーディオ関連デバイス2502から第2のオーディオ関連デバイス2504に出力を生成する。
第3のオーディオ関連デバイス2506および第2のオーディオ関連デバイス2504の双方は、SVのデータ・フォーマットを必ずしも知る必要はない。いくつかの状況において、第3のオーディオ関連デバイス2506は、SVのデータ・フォーマットまたはデータ・タイプを知り得る。このような場合において、第3のオーディオ関連デバイス2506は、変化された値をSVのデータ・フォーマットで、そのSVに特別に割り当て得る。しかしながら、他の例において、第3のオーディオ関連デバイス2506は、SVのデータ・フォーマットを知らないかもしれない。このような例において、第3のオーディオ関連デバイス2506は、第1のオーディオ関連デバイス2502のノード構造にクエリすることによって、SVのデータ・フォーマットを発見し得る。第1のオーディオ関連デバイスが、SVのデータ・フォーマットを決定することを試みるか否かは、第3のオーディオ関連デバイス2506の処理能力または他の要因に依存し得る。SVのデータ・フォーマットが第3のオーディオ関連デバイス2506に対して未知であるとき(および第3のオーディオ関連デバイス2506がデータ・フォーマットを決定できないとき)、第3のオーディオ関連デバイスは依然として、相対的な割合でSVの値をセットすることによってSVの値を変化し得る。
第3のオーディオ関連デバイス2506は、相対的な割合で第1のオーディオ関連デバイス2502にSVの値を変化するよう命令することによってそのSVの値をセットし得る。例えば、第3のオーディオ関連デバイス2506は、第1のオーディオ関連デバイスに、25%分、SVの値を増加するように命令し得る。この態様では、第3のオーディオ関連デバイス2506は、SVの値をセットするためにSVのデータ・フォーマットを知る必要はない。SVをセットする第3のオーディオ関連デバイス2506に応答して、第1のオーディオ関連デバイス2502は、人間読み取り可能ストリングを、フィードバック表示として第2のオーディオ関連デバイス2504に出力し得る。フィードバック表示の例は、その割合に応答して変化する出力である。人間読み取り可能ストリングは、第2のオーディオ関連デバイス2504によるさらなる処理を施すことなく、ユーザによって理解され得るので、第2のオーディオ関連デバイス2504は、SVのデータ・フォーマットを知ることなく、SVの変化された値をユーザに表示し、それ以外の場合には、伝え得る。あるいは、第2のオーディオ関連デバイス2504が、不フィードバック表示の所定のデータ・タイプを有するように構成されている際には、第1のオーディオ関連デバイス2502は、適切なユニットでフィードバック値を取得するために、第2のオーディオ関連デバイス2504によって処理される値を出力し得る。
先例は、第3のオーディオ関連デバイス2506におけるセットポイント制御入力SVであって、サブスクリプションを用いて、第1のオーディオ関連デバイス2502におけるセットポイントSVを変化するために用いられるセットポイント制御入力SVの点から記載されている。他の例において、サブスクリプションは、第3のオーディオ関連デバイス2506の動作パラメータSVであるモニタ値SVであって、第1のオーディオ関連デバイス2502を用いて表示されるように構成されているモニタ値SVを変化するために用いられ得る。
さらなる別の例において、サブスクリプションは、第1のオーディオ関連デバイスにおけるセットポイントSVにマッピングされている、およびセットポイントSVを調整するセットポイント制御入力SVであって、第3のオーディオ関連デバイスにおけるセットポイント制御入力SVを調整するように用いられ得る。加えて、セットポイントSVに応答する第1のオーディオ関連デバイス2502における動作パラメータSVは、第3のオーディオ関連デバイス2506におけるモニタ値SVにマッピングされ得る。従って、動作中に、第3のオーディオ関連デバイス2506は、第1のオーディオ関連デバイス2502のセットポイントSVを調整し、モニタ値SVを有する第1のオーディオ関連デバイスの出力(動作パラメータSV)をモニタし得る。先述されるように、動作パラメータSVはまた、第2のオーディオ関連デバイス2504にマッピングされ得る。
(XII.薄いパフォーマンス機器マネージャ)
図26は、オーディオ・ネットワーク120を有するオーディオ・システムにおいて用いられ得る能力ベースのPEM2600のブロック図である。能力ベースのPEM2602は、図5に示される「薄いアプリケーション層」のデバイスに対応し、図5に示されるPEMの例と同一のコンポーネントの多くを有する。従って、簡潔にするために、以下の記載は、図26の「薄い」PEMと図5の「厚い」PEMとの間の違いを中心とする。
ネットワーク・トラフィックの制約またはPEMが動作しているデバイスの能力のために、能力ベースのPEM2600は、制限された態様で動作するかもしれない。例えば、PEMが動作するデバイスの処理速度、メモリ・ストレージおよび/またはディスプレイ能力が、能力ベースのPEM2600の動作を制限し得る。先述されたように、ノードに対するすべての仮想デバイス、オブジェクトおよびSVに対するコントロール・パネル・ビューを、一度にインスタンス化するのではなく、オーディオ・ノード構造の異なる部分がユーザによって表示されるように要求されるので、能力ベースのPEM2600は1つずつそのようにし得る。ノード構造を発見し、かつ、対応するコントロール・パネル・ビューをインスタンス化する能力ベースのPEM2600の動作の例が、図20〜23を参照して先述された。
図26において、能力ベースのPEM2600は、ネットワーク・インターフェース2602、ノード分解能モジュール2604、システム・プラグイン・ノード・マネージャ2606、リンク・マネージャ発見マネージャ2608、発見エンジン2610およびリンク・マネージャ2612を含む。この図解された例において、この例の能力ベースのPEM2602の能力がプロダクト・プラグインを提供しないので、能力ベースのPEM2602は、プラグイン・ローダを含まないかもしれず、ジェネリック・プラグイン524とだけ通信し得る。加えて、未知のコンポーネントおよび/またはコントロール・パネル・ビューもしくはアスペクトを検索する他のプロダクト・プラグインがないので、ノード発見マネージャ2608は、属性要求エンジン2620だけ含む。
オーディオ関連デバイスの属性を要求すると、属性要求エンジンは、属性をジェネリック・プラグイン524にパスし得る。ジェネリック・プラグイン524は、オーディオ関連デバイスへの通信パスをセットアップするようにAPIインターフェースを有効にし、かつ、能力ベースのPEM2600が動作しているデバイスの能力に依存しているオーディオ関連デバイスのオーディオ・ノード構造のコンポーネントのいくらかの部分を要求するようにAPIインターフェースを有効にし得る。ジェネリック・プラグインは、オーディオ・ノード構造の部分に対して対応するコントロール・パネル・ビューを決定し、ディスプレイをインスタンス化し得る。さらなるオーディオ・ノード構造が、ユーザによって見られることを要求されるとき、現在のコントロール・パネル・ビューが処分され、さらなる情報が、別のコントロール・パネル・ビューの生成をサポートするようにオーディオ関連デバイスから要求され得る。あるいは、能力ベースのPEM2600は、十分な処理能力が利用可能なときには構築され得るコントロール・パネル・ビューのセットのサブセットを構築し得る。コントロール・パネル・ビューのサブセットは、能力ベースのPEM2600が動作しているデバイスの能力に依存して1つ以上のコントロール・パネル・ビューを含み得る。
能力ベースのPEM2600は、生成されるコントロール・パネル・ビューの複雑さを考慮し得る。ディスプレイおよび/または処理能力が制限されているとき、能力ベースのPEM2600は、比較的シンプルなGUIのアスペクトを含むコントロール・パネル・ビューを生成し得る。例えば、自動的に作成された三次元GUIのアスペクトが自動的に作成されない二次元ボックスに変換され得る。加えて、能力ベースのPEM2600は、表示デバイスの能力に基づいて、コントロール・パネル・ビューに含まれているエレメントの大きさおよび/または数を調整し得る。さらにコントロール・パネル・ビューを生成するためにオーディオ関連デバイスから取得されるオーディオ・ノード構造の量は、表示デバイスの能力に基づいて、能力ベースのPEM2600によって変化され得る。
先述されるように、このシステムは、種々の複雑さを持つ複数のオーディオ・コンポーネントを有するオーディオ・システムにおいて動作可能である。このシステムは、さまざまな物理ネットワークおよび通信プラットフォームのいずれかを用いて、種々の複雑さを有する複数の異なるオーディオ関連デバイスをシームレスに統合するネットワーク独立プロトコルを提供する。加えて、このシステムは、まだ既知でない特定のオーディオ関連デバイスのアスペクトを発見するメッセージング機能を提供することによって、システム内のオーディオ関連デバイスのアップグレード、変更、追加が可能である。このメッセー機能はまた、選択されたオーディオ関連デバイス間でオーディオデータおよび関連情報が効率的に、および最小のネットワーク・トラフィックで送達されることを可能にする。
PEMは、オーディオ関連デバイスのオーディオ・ノード構造が既知であるかどうかを決定し得る。オーディオ・ノード構造のいずれかの部分が未知であるとき、PEMは、未知の部分を定義するようにさらなる情報を取得し得る。加えて、PEMは、オーディオ・システム全体のコントロール・パネル・ビューを取り出しおよび/または生成し得る。さらに、PEMは、対応するオーディオ・ノード構造に基づいて、オーディオ・システム内の各特定のオーディオ関連デバイスに対してコントロール・パネル・ビューを取り出しおよび/または生成し得る。コントロール・パネル・ビューは、オーディオ・システム内のオーディオ関連デバイスの協調された管理、制御およびモニタを可能にする。このシステム内で用いられるに通信プロトコルは、デバイス・ツー・デバイス通信と同様に、パフォーマンス機器マネージャとオーディオ関連デバイス間の標準通信を可能にする。
本発明のさまざまな実施形態が記述されてきた一方で、本発明の範囲内において、より多くの実施形態およびインプリメンテーションが可能であることが当業者には明らかである。従って、本発明は、添付の請求項およびその均等物によってのみ制限される。
オーディオ・システムにおいて動作可能なオーディオ関連デバイスの機能性を決定するためのシステムは、パフォーマンス機器マネージャを含む。パフォーマンス機器マネージャは、オーディオ関連デバイスから、対応するオーディオ関連デバイスを表しているオーディオ・ノード構造を受け取る。受け取られたオーディオ・ノード構造は、パフォーマンス機器マネージャにおいてすべてのコンポーネントがあらかじめ決定されているかを決定するためにレビューされ得る。既知であるコンポーネントに対して、発見は必要とされず、オーディオ関連デバイスにおける変更可能なパラメータの実際の値が取得される。未知であるコンポーネントに対して、パフォーマンス機器マネージャは、未知のコンポーネントに関連した変化可能な実際の値を取得するために、オーディオ・ノード構造のさらなる部分および/または未知のコンポーネントに関連した属性を識別するために発見をおこなう。
本発明は、以下の図面および説明を参照してより良く理解され得る。図面中の構成要素は、必ずしも一定比で拡大されず、代わりに、本発明の原理を示す際に強調が課されている。さらに、図面において、同様の参照番号は、種々の図全体を通じて対応する部分を示す。
オーディオ・システムの一例のブロック図である。 図1のオーディオ・システムに図解されるオーディオ関連デバイスの1つのブロック図の例である。 図2オーディオ関連デバイスおよび図1に示されるオーディオ関連デバイスの一部のより詳細なブロック図である。 オーディオ関連デバイスを表すオーディオ・ノード構造の例のブロック図である。 PEMの例および図1に示されるオーディオ・システムの一部のブロック図である。 図5のPEMのGUIのコアの一部の詳細なブロック図である。 図5のPEMのインターフェース・モジュールの一部のブロック図である。 図5のPEMのプロダクト・プラグインの一部のブロック図である。 図5のPEMのジェネリック・プラグインの一部のブロック図である。 図2のオーディオ関連デバイスの一部のより詳細なブロック図である。 図1のオーディオ・システムにおけるオーディオ関連デバイスを発見するためのフローチャートの例である。 図3のスイッチおよび複数のオーディオ関連デバイスの構成の例のより詳細なブロック図である。 オーディオ関連デバイスとの通信パスを決定するためのフローチャートの例である。 オーディオ・デバイス間の通信のためのプロトコル構造の例である。 図14に図解されるプロトコルにおけるオーディオ関連デバイス間で通信され得るアプリケーション層のメッセージおよびアドレス層のメッセージIDの例のテーブルである。 図14に図解されるプロトコルにおけるオーディオ関連デバイス間で通信され得るルーティング層のメッセージおよびルーティング層のメッセージIDの例のテーブルである。 プロダクト・プラグインと関連したオーディオ関連デバイスのオーディオ・ノード構造を決定するためのフローチャートの例である。 プロダクト・プラグインと関連したオーディオ関連デバイスのオーディオ・ノード構造を決定するための図17のフローチャートの例の第2の部分である。 プロダクト・プラグインと関連していないオーディオ関連デバイスのオーディオ・ノード構造を決定するためのフローチャートの例である。 表示デバイスの能力に基づいて、どのように対応するオーディオ関連デバイスのGUIのコントロール・パネル・ビューが表示され得るかを決定するためのフローチャートの例である。 表示デバイスの能力に基づいて、どのように対応するオーディオ関連デバイスのGUIのコントロール・パネル・ビューが表示され得るかを決定するためのフローチャートの別の例である。 表示デバイスの能力に基づいて、どのように対応するオーディオ関連デバイスのGUIのコントロール・パネル・ビューが表示され得るかを決定するための図20のフローチャートの例の第2の部分である。 対応するオーディオ関連デバイスのコントロール・パネル・ビューを構築するためのフローチャートの例である。 異なる複数のコントロール・パネル・ビューに表示されるデータ変数をアップデートするためのフローチャートの例である。 1つのオーディオ関連デバイスから別のオーディオ関連デバイスへのデータ変数の通信のさまざまな例を示すフローチャートである。 図4のPEMのGUIのコアの部分の別の例の詳細なブロック図である。 例示的なシステムのGUIベニュー・ビューを示すコントロール・パネル・ビューの例である。 図27に示される製品のプロダクト・ビューを示すコントロール・パネル・ビューの例である。 例示的なシステムのGUIプロダクト・ビューを示すコントロール・パネル・ビューの例である。
符号の説明
100 オーディオ・システム
114 マイクロフォン
116 スピーカ
126、128 オーディオ・プロセッサ
202 通信ポート
206 メモリ
302、504 ネットワーク・インターフェース
330、332 スイッチ
400 オーディオ・ノード構造
404、406 仮想デバイス
508 Ethernet(登録商標)
510 FireWire
512 USB512
514 RS232
516 RS485
518 ルーティング・テーブル
524 ジェネリック・プラグイン
802 ノード・インスタンス化エンジン
804 コントロール・パネル・ライブラリ
808 コントロール・パネル・ビュー・バッファ
818 ノード構造ストレージ
904 ノード・インスタンス化エンジン
910 コントロール・パネル・ビュー・バッファ
912 ノード構造ストレージ
1008 ノード識別モジュール

Claims (23)

  1. オーディオ・システムにおいて動作可能なオーディオ関連デバイスの機能性を決定するシステムであって、
    オーディオ関連デバイスから該オーディオ関連デバイスの複数の属性を受け取るように構成されているグラフィカル・ユーザ・インターフェースのコアと、
    複数のプラグインであって、該複数のプラグインのそれぞれは、複数のオーディオ関連デバイスのうちの対応する1つに関連付けられており、該複数のプラグインのそれぞれは、格納されている所定のオーディオ関連デバイス特有情報を含み、該オーディオ関連デバイス特有情報は、該対応する関連付けられたオーディオ関連デバイスの機能性および制御能力を表し、該複数のプラグインのそれぞれは、該グラフィカル・ユーザ・インターフェースのコアからの該複数の属性を含むクエリに応答して、該複数の属性に基づいて、該オーディオ関連デバイスとの関連性が存在するかどうか決定するように構成されている、複数のプラグインと
    を備え、
    複数のプラグインは、該オーディオ関連デバイスの機能性を示す該オーディオ関連デバイスのノード構造を要求し、該オーディオ関連デバイスから受け取るようにさらに構成されており、
    該複数のプラグインのうち該オーディオ関連デバイスとの関連性を決定するプラグインは、該ノード構造に含まれている複数のコンポーネントがプラグイン内にあらかじめ定義されているかどうかを決定するようにさらに構成されており、
    該ノード構造に含まれているコンポーネントが該プラグイン内にあらかじめ定義されていない場合には、該グラフィカル・ユーザ・インターフェースのコアは、該コンポーネントを表す情報を求めて他のプラグインをサーチすること、または、該オーディオ関連デバイスと通信して、該プラグインのための、該オーディオ関連デバイスの該コンポーネントを表す情報を取り出すことを行うように該プラグインによって有効にされ、該プラグインは、該オーディオ・ノード構造が完全に定義され、該複数のプラグイン内に格納されるように、該コンポーネントを表す情報を格納するようにさらに構成されている、システム。
  2. 前記グラフィカル・ユーザ・インターフェースのコアは、発見エンジンを備え、該発見エンジンは、前記オーディオ関連デバイスから、前記ノード構造の一部分だけに関連し、かつ、あらかじめ定義されていないさらなる情報を取り出すために前記複数のプラグインのいずれかの1つによって有効にされるように構成されている、請求項1に記載のシステム。
  3. 前記複数のプラグインのそれぞれは、関連付けられた複数の属性の少なくとも1つのセットへのアクセスを含むように構成されており、該関連付けられた複数の属性の少なくとも1つのセットが前記受け取られた複数の属性に対応しているとき、該複数のプラグインのそれぞれは、前記グラフィカル・ユーザ・インターフェースのコアを介して、前記オーディオ関連デバイスと通信リンクを確立するように構成されている、請求項1に記載のシステム。
  4. 前記複数のプラグインのそれぞれは、該複数のプラグインのそれぞれによって受け取られた前記複数の属性と比較され前もって格納されている複数の属性を含むそれぞれのライブラリ・ストレージ・モジュールをさらに備えている、請求項1に記載のシステム。
  5. 前記複数のプラグインのそれぞれは、前記ノード構造を取り出すように構成されている取り出しエンジンと、前記複数のコンポーネントがあらかじめ定義されていることを分析し、確認するように構成されているクラス分析モジュールとをさらに備えている、請求項1に記載のシステム。
  6. 仮想デバイスがあらかじめ定義されるように決定されるとき、オブジェクトおよび状態変数もまたあらかじめ定義されるように、前記ノード構造は、階層構造において、仮想デバイス、オブジェクトおよび状態変数を備えている、請求項1に記載のシステム。
  7. 前記複数のプラグインのそれぞれは、前記ノード構造に含まれている前記複数のコンポーネントと比較され複数の所定のコンポーネントを含むそれぞれのライブラリ・ストレージ・モジュールをさらに備えている、請求項1に記載のシステム。
  8. オーディオ・システムにおいて動作可能なオーディオ関連デバイスの機能性を決定するシステムであって、
    該オーディオ関連デバイスを記述している複数の属性を受け取るように構成されているオーディオ・ノード発見マネージャと、
    複数の対応するオーディオ関連デバイスのうちの1つ以上に関連付けられた複数のプラグインであって、該複数のプラグインのそれぞれは、格納されている所定のオーディオ関連デバイス特有情報を含み、該オーディオ関連デバイス特有情報は、該対応する関連付けられたオーディオ関連デバイスの機能性および制御能力を表し、該複数のプラグインは、オーディオ・ノードのクエリに含まれている該受け取られた複数の属性がプラグインによって認識されるとき、該オーディオ・ノード発見マネージャからのオーディオ・ノードのクエリに応答するように構成されているプラグインを含む、複数のプラグインと
    を備え、
    該プラグインは、該オーディオ関連デバイスから該オーディオ関連デバイスのノード構造を取り出し、該ノード構造を、該プラグインによってアクセスされ得る格納されている所定のノード構造と比較するようにさらに構成されており、
    該オーディオ・ノード発見マネージャは、あらかじめ格納されておらず、かつ、該プラグインによってアクセスされ得ない該ノード構造の一部に関する情報に対して該複数のプラグインの中に含まれている別のプラグインにクエリするために該プラグインによって有効にされるようにさらに構成されており、
    該別のプラグインまたは該プラグインのいずれもが該ノード構造の該一部に関するあらかじめ格納されている情報に対するアクセスを有しない場合には、該プラグインは、該オーディオ関連デバイスに関するさらなるオーディオ関連情報を発見するように発見エンジンを有効にするようにさらに構成されており、
    該プラグインは、該オーディオ関連デバイスの該ノード構造を完全に表すために、該所定のノード構造に関連づけて、該ノード構造の該一部に関する情報と該さらなるオーディ関連情報とを格納するようにさらに構成されている、システム。
  9. 前記ノード発見マネージャは、新しいオーディオ関連デバイスが識別されるとき、属性のクエリを生成するように構成されているノード属性要求エンジンを備えている、請求項
    に記載のシステム。
  10. 前記プラグインは、取り出しエンジンおよびライブラリ・ストレージを備え、
    該取り出しエンジンは、前記ノード構造に対して前記オーディオ関連デバイスにクエリし、かつ、該ノード構造に含まれている複数のコンポーネントの存在に対して該ライブラリ・ストレージをチェックするように構成されている、請求項に記載のシステム。
  11. 前記ノード構造は、仮想デバイスを備え、前記取り出しエンジンは、前記ライブラリ・ストレージにおける該仮想デバイスの存在に対してチェックするように構成されている、請求項10に記載のシステム。
  12. 前記取り出しエンジンは、前記仮想デバイスに含まれているオブジェクトに対して前記オーディオ関連デバイスにクエリし、それから、該仮想デバイスが前記ライブラリ・ストレージに存在し、かつ、構成可能であると識別されるとき、該ライブラリ・ストレージにおける該オブジェクトの存在をチェックするようにさらに構成されている、請求項11に記載のシステム。
  13. 前記プラグインは、該プラグインにおいてあらかめじ格納されておらず、かつ、アクセスされ得ない前記ノード構造の一部分だけに対して前記オーディオ関連デバイスのクエリを有効にするようにさらに構成されている、請求項に記載のシステム。
  14. 前記ノード構造は、複数の仮想デバイスのリストを備え、前記プラグインは、該リストに含まれている該複数の仮想デバイスのそれぞれが既知であるかどうかを決定し、未知である該複数の仮想デバイスのそれぞれに対して前記オーディオ関連デバイスとの通信をさらに有効にするようにさらに構成されている、請求項に記載のシステム。
  15. 前記プラグインが、前記オーディオ関連デバイスへの通信パスの知識を必要としないように、該オーディオ関連デバイスへ別々の独立した通信パスを確立することによって前記プラグインと該オーディオ関連デバイスとの間の通信を確立するように構成されているノード通信インスタンシエータをさらに備えている、請求項に記載のシステム。
  16. 前記複数のプラグインのそれぞれは、前記取り出されたノード構造に含まれている前記複数のコンポーネントと、該複数のコンポーネントそれぞれが既知であるか否かの表示とを格納するように構成されているノード構造ストレージをさらに備えている、請求項に記載のシステム。
  17. オーディオ・システムにおいて動作可能なオーディオ関連デバイスの機能性を発見するシステムであって、
    複数の対応するオーディオ関連デバイスのうちの1つ以上に関連付けられた複数のプラグインであって、該複数のプラグインのそれぞれは、格納されている所定のオーディオ関連デバイス特有情報を含み、該オーディオ関連デバイス特有情報は、該対応する関連付けられたオーディオ関連デバイスの機能性および制御能力を表し、該複数のプラグインは、取り出しエンジン、クラス分析モジュールおよびライブラリ・ストレージを備えるプラグインを含む、複数のプラグインを備え、
    該取り出しエンジンは、該オーディオ関連デバイスの属性を含むクエリに応答して、該オーディオ関連デバイス内に含まれているオーディオ関連デバイスのノード構造を取り出すように有効にされ、該ノード構造は、複数の仮想デバイスを含み、
    該クラス分析モジュールは、該取り出されたノード構造を、該ライブラリ・ストレージに格納されている所定の複数の仮想デバイスと比較するように構成されており、
    該取り出しエンジンは、該取り出された複数の仮想デバイスのいずれか1つが該プラグインの該ライブラリ・ストレージに格納されていない場合には、該複数のプラグインに含まれている別のプラグインの該ライブラリ・ストレージをサーチするように該プラグイン・サーチ・エンジンを有効にすることによって、および、該プラグインまたは該別のプラグインの該ライブラリ・ストレージに格納されていない該取り出された複数の仮想デバイスの該さらなるコンポーネントを発見するように該発見エンジンを有効にすることによって、該所定の複数の仮想デバイスに対応しない該オーディオ関連デバイスから取り出された該複数の仮想デバイスのさらなる複数のコンポーネントの発見を有効にするように構成されており、
    該プラグインは、該ライブラリ・ストレージに格納された該所定の仮想デバイスに対応する該オーディオ関連デバイスから該仮想デバイスが取り出されるように、該所定の仮想デバイスに関連づけて、該プラグイン・サーチ・エンジンまたは該発見エンジンによって識別される該さらなるコンポーネントを格納するように構成されている、システム。
  18. 前記所定の複数の仮想デバイスは、オブジェクトまたは状態変数、もしくはあらかじめ決定されているそれらの組み合わせの少なくとも1つを備えている、請求項17に記載のシステム。
  19. 前記取り出しエンジンは、前記オーディオ・ノード構造に含まれている前記複数の仮想デバイスであって、前記所定の仮想デバイスに対応する該複数の仮想デバイスの表示を格納するようにさらに構成されている請求項17に記載システム。
  20. オーディオ・システムにおいて動作可能であるオーディオ関連デバイスの機能性の発見のための命令を実行するように動作可能なパフォーマンス機器マネージャであって、
    メモリデバイスと、
    該メモリデバイスに格納されている命令であって、該オーディオ関連デバイスの複数の属性を受け取るための命令と、
    該メモリデバイスに格納されており、かつ、該複数の属性を含むクエリを生成し、提供するための命令であって、該クエリは、対応する複数のオーディオ関連デバイスのうちの1つ以上に関連付けられた複数のプラグインのうちの少なくとも1つに提供され、該複数のプラグインのそれぞれは、格納されている所定のオーディオ関連デバイス特有情報を含み、該オーディオ関連デバイス特有情報は、該対応するオーディオ関連デバイスの機能性および制御能力を表す、命令と、
    該メモリデバイスに格納されている命令であって、該複数のプラグイン中に含まれているプラグインが、該クエリに含まれている該受け取られた複数の属性が該プラグインによって認識されるとき、該クエリに応答することを有効にするための命令と、
    該プラグインに対して、該メモリデバイスに格納されている命令であって、該クエリに応答して該オーディオ関連デバイスのノード構造を取り出すための命令と、
    該メモリデバイスに格納されている命令であって、該オーディオ関連デバイスの該機能性を示している複数の仮想デバイスのリストを含む該ノード構造を受け取るための命令と、
    該メモリデバイスに格納されている命令であって、定義されていない該複数の仮想デバイスの該リスト上で該複数の仮想デバイスのいずれかを識別するための命令と、
    該メモリデバイスに格納されている命令であって、該定義されていない複数の仮想デバイスに関連付けられた複数の属性のそれぞれ、および、該定義されていない複数の仮想デバイスのそれぞれに含まれているオブジェクトのリスト、状態変数のリスト、もしくはそれらの組み合わせの少なくとも1つを取り出すための命令と、
    該メモリデバイスに格納されており、かつ、該複数の属性およびあらかじめ定義されている該複数の仮想デバイスの表示を格納するための命令であって、該複数の属性は、該あらかじめ定義されていない仮想デバイスが定義されるように、該あらかじめ定義されていない仮想デバイスのオブジェクトまたは状態変数、もしくはそれらの組み合わせを記述する、命令と
    を含む、パフォーマンス機器マネージャ。
  21. 前記複数の仮想デバイスのそれぞれを識別するように前記メモリデバイスに格納されている命令は、所定のオブジェクトまたは所定の変数状態、もしくはそれらの組み合わせの少なくとも1つを含む格納されている所定の仮想デバイスに対応する前記リストアップされた複数の仮想デバイスのそれぞれを示すように該メモリデバイスに格納されている命令を含む、請求項20に記載のパフォーマンス機器マネージャ。
  22. オーディオ・システムにおいて動作可能な複数のオーディオ関連デバイスの中に含まれているオーディオ関連デバイスの機能性を発見する方法であって、該方法は、
    該オーディオ関連デバイスを記述している複数の属性を受け取ることと、
    該オーディオ関連デバイスのうちの1つ以上にそれぞれ関連付けられた複数のプラグインの中から、該オーディオ関連デバイスを記述している複数の属性に対応する所定の複数の属性を有するプラグインを有効にすることと、
    該有効にされたプラグインを用いて、該オーディオ関連デバイスの機能性を記述しているノード構造に対して該オーディオ関連デバイスにクエリすることと、
    該ノード構造に含まれている既知のコンポーネントを識別することとであって、該既知のコンポーネントは、該有効にされたプラグインに含まれている所定のプラグインに対応する、ことと、
    該ノード構造の対応しないコンポーネントに対して該複数のプラグインの中から別のプラグインにクエリすることであって、該対応しないコンポーネントは未知である、ことと、
    該ノード構造の任意のコンポーネントの複数の属性に対して該オーディオ関連デバイスにクエリするように発見エンジンを有効にすることであって、該複数の属性は、該プラグインおよび該別のプラグインによって未知であり、該既知であるコンポーネントに関連して、該ノード構造の未知である該対応しないコンポーネントと、該ノード構造の未知である任意のコンポーネントの該複数の属性とは、該ノード構造が該プラグインによって知られることを可能にする、ことと
    を包含する、方法。
  23. 前記発見エンジンおよび既知である前記コンポーネントの表示によって発見される前記ノード構造の属性を格納することをさらに包含する、請求項22に記載の方法。
JP2005093297A 2004-03-26 2005-03-28 オーディオ関連システムにおけるノード構造の発見ためのシステム Active JP4621523B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US55711704P 2004-03-26 2004-03-26
US64496705P 2005-01-18 2005-01-18

Publications (2)

Publication Number Publication Date
JP2005318550A JP2005318550A (ja) 2005-11-10
JP4621523B2 true JP4621523B2 (ja) 2011-01-26

Family

ID=34864620

Family Applications (8)

Application Number Title Priority Date Filing Date
JP2005093297A Active JP4621523B2 (ja) 2004-03-26 2005-03-28 オーディオ関連システムにおけるノード構造の発見ためのシステム
JP2005093337A Pending JP2005327254A (ja) 2004-03-26 2005-03-28 オーディオ関連システムノードのインスタンス化
JP2005093304A Active JP4383378B2 (ja) 2004-03-26 2005-03-28 オーディオ関連システムのリンク管理
JP2005127058A Active JP4383384B2 (ja) 2004-03-26 2005-03-28 オーディオ関連デバイスの通信のためのシステム
JP2005093320A Active JP4235188B2 (ja) 2004-03-26 2005-03-28 オーディオ関連システムの通信プロトコル
JP2005093330A Active JP4308164B2 (ja) 2004-03-26 2005-03-28 オーディオ関連の機器管理のためのシステム
JP2008313769A Active JP5053983B2 (ja) 2004-03-26 2008-12-09 オーディオ関連デバイスの通信のためのシステム
JP2009113089A Pending JP2009211707A (ja) 2004-03-26 2009-05-07 オーディオ関連デバイスの通信のためのシステム

Family Applications After (7)

Application Number Title Priority Date Filing Date
JP2005093337A Pending JP2005327254A (ja) 2004-03-26 2005-03-28 オーディオ関連システムノードのインスタンス化
JP2005093304A Active JP4383378B2 (ja) 2004-03-26 2005-03-28 オーディオ関連システムのリンク管理
JP2005127058A Active JP4383384B2 (ja) 2004-03-26 2005-03-28 オーディオ関連デバイスの通信のためのシステム
JP2005093320A Active JP4235188B2 (ja) 2004-03-26 2005-03-28 オーディオ関連システムの通信プロトコル
JP2005093330A Active JP4308164B2 (ja) 2004-03-26 2005-03-28 オーディオ関連の機器管理のためのシステム
JP2008313769A Active JP5053983B2 (ja) 2004-03-26 2008-12-09 オーディオ関連デバイスの通信のためのシステム
JP2009113089A Pending JP2009211707A (ja) 2004-03-26 2009-05-07 オーディオ関連デバイスの通信のためのシステム

Country Status (3)

Country Link
US (6) US7742606B2 (ja)
EP (6) EP1587230A3 (ja)
JP (8) JP4621523B2 (ja)

Families Citing this family (168)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020002039A1 (en) 1998-06-12 2002-01-03 Safi Qureshey Network-enabled audio device
US7328412B1 (en) * 2003-04-05 2008-02-05 Apple Inc. Method and apparatus for displaying a gain control interface with non-linear gain levels
US7518055B2 (en) * 2007-03-01 2009-04-14 Zartarian Michael G System and method for intelligent equalization
US11106424B2 (en) 2003-07-28 2021-08-31 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
US8234395B2 (en) 2003-07-28 2012-07-31 Sonos, Inc. System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
US11294618B2 (en) 2003-07-28 2022-04-05 Sonos, Inc. Media player system
US11106425B2 (en) 2003-07-28 2021-08-31 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
US8086752B2 (en) 2006-11-22 2011-12-27 Sonos, Inc. Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices that independently source digital data
US9207905B2 (en) 2003-07-28 2015-12-08 Sonos, Inc. Method and apparatus for providing synchrony group status information
US11650784B2 (en) 2003-07-28 2023-05-16 Sonos, Inc. Adjusting volume levels
US8290603B1 (en) 2004-06-05 2012-10-16 Sonos, Inc. User interfaces for controlling and manipulating groupings in a multi-zone media system
US20050120382A1 (en) * 2003-11-07 2005-06-02 Televiewer Systems Ltd. System and method of remotely controlling a TV tuner over a TCP/IP network
US7729267B2 (en) 2003-11-26 2010-06-01 Cisco Technology, Inc. Method and apparatus for analyzing a media path in a packet switched network
US7742606B2 (en) * 2004-03-26 2010-06-22 Harman International Industries, Incorporated System for audio related equipment management
US9374607B2 (en) 2012-06-26 2016-06-21 Sonos, Inc. Media playback system with guest access
US9977561B2 (en) 2004-04-01 2018-05-22 Sonos, Inc. Systems, methods, apparatus, and articles of manufacture to provide guest access
US20050273657A1 (en) * 2004-04-01 2005-12-08 Hiroshi Ichiki Information processing apparatus and method, and recording medium and program for controlling the same
US8028323B2 (en) 2004-05-05 2011-09-27 Dryden Enterprises, Llc Method and system for employing a first device to direct a networked audio device to obtain a media item
US9826046B2 (en) * 2004-05-05 2017-11-21 Black Hills Media, Llc Device discovery for digital entertainment network
US8028038B2 (en) 2004-05-05 2011-09-27 Dryden Enterprises, Llc Obtaining a playlist based on user profile matching
CN100344106C (zh) * 2004-05-26 2007-10-17 华为技术有限公司 在光传送网络管理系统中实现白盒虚拟网元的方法及系统
US8868698B2 (en) 2004-06-05 2014-10-21 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
US8326951B1 (en) 2004-06-05 2012-12-04 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
US20060083259A1 (en) * 2004-10-18 2006-04-20 Metcalf Thomas D Packet-based systems and methods for distributing data
US9070408B2 (en) * 2005-08-26 2015-06-30 Endless Analog, Inc Closed loop analog signal processor (“CLASP”) system
DE502005002004D1 (de) * 2005-09-08 2007-12-27 Weber Maschb Gmbh & Co Kg Vorrichtung zum Aufschneiden von Lebensmittelsprodukten
US7694230B2 (en) * 2005-09-09 2010-04-06 Yamaha Corporation Digital mixer and program
US7526526B2 (en) * 2005-10-06 2009-04-28 Aviom, Inc. System and method for transferring data
US7930369B2 (en) * 2005-10-19 2011-04-19 Apple Inc. Remotely configured media device
JP2007149151A (ja) * 2005-11-24 2007-06-14 Funai Electric Co Ltd 光ディスク再生装置、音声信号出力装置及びavシステム
TWI598223B (zh) * 2006-03-10 2017-09-11 羅門哈斯電子材料有限公司 用於光微影之組成物及製程
JP4893985B2 (ja) * 2006-03-22 2012-03-07 ヤマハ株式会社 オーディオネットワークシステム
JP4923655B2 (ja) * 2006-03-22 2012-04-25 ヤマハ株式会社 オーディオネットワークシステム
EP2485445B1 (en) * 2006-03-22 2013-10-02 Yamaha Corporation Method of performing line connection in an audio network system
US8533630B2 (en) * 2006-09-05 2013-09-10 Intel Corporation Method and apparatus for controlling an array of input/output devices
US9202509B2 (en) 2006-09-12 2015-12-01 Sonos, Inc. Controlling and grouping in a multi-zone media system
US8788080B1 (en) 2006-09-12 2014-07-22 Sonos, Inc. Multi-channel pairing in a media system
US8483853B1 (en) 2006-09-12 2013-07-09 Sonos, Inc. Controlling and manipulating groupings in a multi-zone media system
JP4240100B2 (ja) * 2006-09-29 2009-03-18 ヤマハ株式会社 ミキシングシステム及びフォーマット変換装置
US20080184870A1 (en) * 2006-10-24 2008-08-07 Nokia Corporation System, method, device, and computer program product providing for a multiple-lyric karaoke system
US9009032B2 (en) * 2006-11-09 2015-04-14 Broadcom Corporation Method and system for performing sample rate conversion
US7738383B2 (en) * 2006-12-21 2010-06-15 Cisco Technology, Inc. Traceroute using address request messages
US7706278B2 (en) * 2007-01-24 2010-04-27 Cisco Technology, Inc. Triggering flow analysis at intermediary devices
US8296662B2 (en) * 2007-02-05 2012-10-23 Brother Kogyo Kabushiki Kaisha Image display device
US20080188965A1 (en) * 2007-02-06 2008-08-07 Rane Corporation Remote audio device network system and method
CN101606129A (zh) * 2007-02-12 2009-12-16 皇家飞利浦电子股份有限公司 用于联网的控制系统的设备
JP4930147B2 (ja) * 2007-03-29 2012-05-16 ヤマハ株式会社 音響信号処理装置
DE102007016274B4 (de) 2007-04-04 2013-02-07 Lawo Ag Vorrichtung und Verfahren zur Nutzung von Audio-Plugins in einem Mischpult
WO2008125443A1 (en) * 2007-04-13 2008-10-23 Thomson Licensing Control panel
US7912444B2 (en) * 2007-04-23 2011-03-22 Sony Ericsson Mobile Communications Ab Media portion selection system and method
WO2008137432A2 (en) * 2007-05-01 2008-11-13 Dyyno Sharing of information and formatting information for transmission over a communication network
DK2000551T3 (da) 2007-05-28 2011-01-10 Acrostak Corp Bvi Magnesium-baserede legeringer
EP2028882B1 (en) * 2007-08-01 2018-10-10 Yamaha Corporation Remote audio monitoring system for amplifiers in a network
US20090083765A1 (en) * 2007-09-20 2009-03-26 Microsoft Corporation Accessing device-hosted services from scripting and other programming environments
US8201188B2 (en) 2007-09-20 2012-06-12 Microsoft Corporation Device-hosted services over media transfer protocol
US20100299421A1 (en) * 2007-10-04 2010-11-25 Robby Gurdan Digital multimedia network with hierarchical parameter control protocol
EP2063671B1 (en) * 2007-11-22 2012-06-06 Yamaha Corporation Amplifier system
JP5295550B2 (ja) * 2007-11-22 2013-09-18 ヤマハ株式会社 アンプコントロールシステム
US8965544B2 (en) * 2008-01-07 2015-02-24 Tymphany Hong Kong Limited Systems and methods for providing zone functionality in networked media systems
WO2009086599A1 (en) * 2008-01-07 2009-07-16 Avega Systems Pty Ltd A user interface for managing the operation of networked media playback devices
USRE47400E1 (en) * 2008-01-07 2019-05-21 D&M Holdings Inc. Systems and methods for providing dual-control functionality in a networked digital media device
US20090222729A1 (en) * 2008-02-29 2009-09-03 Deshpande Sachin G Methods and Systems for Audio-Device Activation
EP2288183A3 (en) * 2008-03-11 2012-02-29 Yamaha Corporation Amplifier system
EP2288182A3 (en) * 2008-03-11 2012-02-29 Yamaha Corporation Amplifier system
EP2288181A3 (en) * 2008-03-11 2012-02-29 Yamaha Corporation Amplifier system
US8725740B2 (en) 2008-03-24 2014-05-13 Napo Enterprises, Llc Active playlist having dynamic media item groups
US7966345B1 (en) * 2008-03-28 2011-06-21 Cypress Semiconductor Corporation Method, system, and graphical user interface for generating firmware code for a programmable integrated circuit
AU2008354378A1 (en) * 2008-04-11 2009-10-15 Gvbb Holdings S.A.R.L. Method for automated television production
JP2010004359A (ja) * 2008-06-20 2010-01-07 Sony Corp 制御装置、制御方法および制御システム
US8989882B2 (en) 2008-08-06 2015-03-24 At&T Intellectual Property I, L.P. Method and apparatus for managing presentation of media content
US7961656B2 (en) * 2008-09-29 2011-06-14 Intel Corporation Protocol extensions in a display port compatible interface
US8032660B2 (en) * 2008-12-30 2011-10-04 Intel Corporation Apparatus and method for managing subscription requests for a network interface component
EP2239736A1 (en) * 2009-04-06 2010-10-13 U-MAN Universal Media Access Networks GmbH Desktop control for a host apparatus of a digital multimedia network
US9191721B2 (en) * 2009-06-16 2015-11-17 Harman International Industries, Incorporated Networked audio/video system
US8434006B2 (en) * 2009-07-31 2013-04-30 Echostar Technologies L.L.C. Systems and methods for adjusting volume of combined audio channels
KR101563195B1 (ko) 2009-08-18 2015-10-27 삼성전자주식회사 호스트 장치 및 슬레이브 장치 제어 방법
US8456314B2 (en) 2009-09-29 2013-06-04 Universal Electronics Inc. System and method for reconfiguration of an entertainment system controlling device
US8243207B2 (en) * 2009-09-29 2012-08-14 Universal Electronics Inc. System and method for activity based configuration of an entertainment system
US9826266B2 (en) 2009-09-29 2017-11-21 Universal Electronics Inc. System and method for reconfiguration of an entertainment system controlling device
JP5589727B2 (ja) * 2009-09-29 2014-09-17 ヤマハ株式会社 ネットワークシステム
US8655275B2 (en) * 2010-01-28 2014-02-18 Red Hat, Inc. Device setup extension for applications
JP4953035B2 (ja) * 2010-03-31 2012-06-13 ヤマハ株式会社 オーディオネットワークシステム
JP5141990B2 (ja) * 2010-03-31 2013-02-13 ヤマハ株式会社 オーディオネットワークシステム
WO2011126321A2 (ko) * 2010-04-07 2011-10-13 엘지전자 주식회사 그룹 기반 m2m 통신 기법
US9229998B2 (en) * 2010-05-13 2016-01-05 Appsfreedom, Inc. Method and system for exchanging information between back-end and front-end systems
JP5625482B2 (ja) * 2010-05-21 2014-11-19 ヤマハ株式会社 音響処理装置、音処理システムおよび音処理方法
US8875054B2 (en) * 2010-07-30 2014-10-28 Apple Inc. Hybrid knob/slider control
US9661428B2 (en) * 2010-08-17 2017-05-23 Harman International Industries, Inc. System for configuration and management of live sound system
US8837529B2 (en) 2010-09-22 2014-09-16 Crestron Electronics Inc. Digital audio distribution
US8923997B2 (en) 2010-10-13 2014-12-30 Sonos, Inc Method and apparatus for adjusting a speaker system
US8774010B2 (en) 2010-11-02 2014-07-08 Cisco Technology, Inc. System and method for providing proactive fault monitoring in a network environment
US8559341B2 (en) 2010-11-08 2013-10-15 Cisco Technology, Inc. System and method for providing a loop free topology in a network environment
US9069452B2 (en) 2010-12-01 2015-06-30 Apple Inc. Morphing a user-interface control object
US20120148075A1 (en) * 2010-12-08 2012-06-14 Creative Technology Ltd Method for optimizing reproduction of audio signals from an apparatus for audio reproduction
US11429343B2 (en) 2011-01-25 2022-08-30 Sonos, Inc. Stereo playback configuration and control
US11265652B2 (en) 2011-01-25 2022-03-01 Sonos, Inc. Playback device pairing
US10382509B2 (en) * 2011-01-28 2019-08-13 Amazon Technologies, Inc. Audio-based application architecture
DE112011104987T5 (de) * 2011-03-02 2013-12-12 Mitsubishi Electric Corporation Programmierbare Anzeigevorrichtung und Zeichendatenerzeugungsverfahren
US8982733B2 (en) 2011-03-04 2015-03-17 Cisco Technology, Inc. System and method for managing topology changes in a network environment
EP2506464A1 (en) * 2011-03-30 2012-10-03 Harman International Industries Ltd. Audio processing apparatus and method of outputting status information
US8670326B1 (en) 2011-03-31 2014-03-11 Cisco Technology, Inc. System and method for probing multiple paths in a network environment
US8724517B1 (en) 2011-06-02 2014-05-13 Cisco Technology, Inc. System and method for managing network traffic disruption
US8830875B1 (en) 2011-06-15 2014-09-09 Cisco Technology, Inc. System and method for providing a loop free topology in a network environment
US9668076B2 (en) * 2011-06-21 2017-05-30 Apple Inc. Microphone headset failure detecting and reporting
MX337025B (es) * 2011-07-19 2016-02-09 Zenovia Eletronics Inc Sistema y metodo para formular procesamiento, amplificacion y distribucion de audio a demanda.
KR20130038734A (ko) * 2011-10-10 2013-04-18 한국전자통신연구원 단말의 응용프로그램을 관리하는 방법 및 장치, 단말에서 응용프로그램을 관리하는 방법 및 장치
US9084058B2 (en) 2011-12-29 2015-07-14 Sonos, Inc. Sound field calibration using listener localization
US9749435B2 (en) * 2012-01-20 2017-08-29 Apple Inc. Proxy-based push service
US9729115B2 (en) 2012-04-27 2017-08-08 Sonos, Inc. Intelligently increasing the sound level of player
US9690539B2 (en) 2012-06-28 2017-06-27 Sonos, Inc. Speaker calibration user interface
US9219460B2 (en) 2014-03-17 2015-12-22 Sonos, Inc. Audio settings based on environment
US9706323B2 (en) 2014-09-09 2017-07-11 Sonos, Inc. Playback device calibration
US9668049B2 (en) 2012-06-28 2017-05-30 Sonos, Inc. Playback device calibration user interfaces
US9690271B2 (en) 2012-06-28 2017-06-27 Sonos, Inc. Speaker calibration
US9106192B2 (en) 2012-06-28 2015-08-11 Sonos, Inc. System and method for device playback calibration
US9031244B2 (en) 2012-06-29 2015-05-12 Sonos, Inc. Smart audio settings
US8995687B2 (en) 2012-08-01 2015-03-31 Sonos, Inc. Volume interactions for connected playback devices
US8930005B2 (en) 2012-08-07 2015-01-06 Sonos, Inc. Acoustic signatures in a playback system
US8910265B2 (en) 2012-09-28 2014-12-09 Sonos, Inc. Assisted registration of audio sources
US9008330B2 (en) 2012-09-28 2015-04-14 Sonos, Inc. Crossover frequency adjustments for audio speakers
US9450846B1 (en) 2012-10-17 2016-09-20 Cisco Technology, Inc. System and method for tracking packets in a network environment
US9294853B1 (en) 2012-12-28 2016-03-22 Google Inc. Audio control process
US9543913B2 (en) 2013-01-09 2017-01-10 Osc, Llc Programmably configured switchmode audio amplifier
US9237384B2 (en) 2013-02-14 2016-01-12 Sonos, Inc. Automatic configuration of household playback devices
US9319409B2 (en) 2013-02-14 2016-04-19 Sonos, Inc. Automatic configuration of household playback devices
US9780994B2 (en) 2013-07-18 2017-10-03 International Business Machines Corporation Notification normalization
US9699625B2 (en) * 2013-07-18 2017-07-04 International Business Machines Corporation Push notification middleware
US9706002B2 (en) 2013-07-18 2017-07-11 International Business Machines Corporation Push notification via file sharing service synchronization
US9933920B2 (en) 2013-09-27 2018-04-03 Sonos, Inc. Multi-household support
US9241355B2 (en) 2013-09-30 2016-01-19 Sonos, Inc. Media system access via cellular network
US9226073B2 (en) 2014-02-06 2015-12-29 Sonos, Inc. Audio output balancing during synchronized playback
US9226087B2 (en) 2014-02-06 2015-12-29 Sonos, Inc. Audio output balancing during synchronized playback
JP6269182B2 (ja) * 2014-03-07 2018-01-31 ヤマハ株式会社 音響信号処理装置、パラメータ呼出方法及びプログラム
US9264839B2 (en) 2014-03-17 2016-02-16 Sonos, Inc. Playback device configuration based on proximity detection
JP6319653B2 (ja) * 2014-03-24 2018-05-09 ヤマハ株式会社 信号処理装置およびプログラム
US8995240B1 (en) 2014-07-22 2015-03-31 Sonos, Inc. Playback using positioning information
US9671997B2 (en) * 2014-07-23 2017-06-06 Sonos, Inc. Zone grouping
US9910634B2 (en) 2014-09-09 2018-03-06 Sonos, Inc. Microphone calibration
US9952825B2 (en) 2014-09-09 2018-04-24 Sonos, Inc. Audio processing algorithms
US9891881B2 (en) 2014-09-09 2018-02-13 Sonos, Inc. Audio processing algorithm database
US10127006B2 (en) 2014-09-09 2018-11-13 Sonos, Inc. Facilitating calibration of an audio playback device
US10664224B2 (en) 2015-04-24 2020-05-26 Sonos, Inc. Speaker calibration user interface
WO2016172593A1 (en) 2015-04-24 2016-10-27 Sonos, Inc. Playback device calibration user interfaces
US10248376B2 (en) 2015-06-11 2019-04-02 Sonos, Inc. Multiple groupings in a playback system
US9538305B2 (en) 2015-07-28 2017-01-03 Sonos, Inc. Calibration error conditions
US9693165B2 (en) 2015-09-17 2017-06-27 Sonos, Inc. Validation of audio calibration using multi-dimensional motion check
EP3531714B1 (en) 2015-09-17 2022-02-23 Sonos Inc. Facilitating calibration of an audio playback device
US9743207B1 (en) 2016-01-18 2017-08-22 Sonos, Inc. Calibration using multiple recording devices
US10003899B2 (en) 2016-01-25 2018-06-19 Sonos, Inc. Calibration with particular locations
US11106423B2 (en) 2016-01-25 2021-08-31 Sonos, Inc. Evaluating calibration of a playback device
US9864574B2 (en) 2016-04-01 2018-01-09 Sonos, Inc. Playback device calibration based on representation spectral characteristics
US9860662B2 (en) 2016-04-01 2018-01-02 Sonos, Inc. Updating playback device configuration information based on calibration data
US9763018B1 (en) 2016-04-12 2017-09-12 Sonos, Inc. Calibration of audio playback devices
ES2829578T3 (es) 2016-05-11 2021-06-01 Aska Pharm Co Ltd Polimorfo cristalino de acetato de 15ß-hidroxi-osaterona
US20170364321A1 (en) * 2016-06-21 2017-12-21 Harman International Industries, Inc. Universal remote monitor mixer system
US9794710B1 (en) 2016-07-15 2017-10-17 Sonos, Inc. Spatial audio correction
US9860670B1 (en) 2016-07-15 2018-01-02 Sonos, Inc. Spectral correction using spatial calibration
US10372406B2 (en) 2016-07-22 2019-08-06 Sonos, Inc. Calibration interface
US10459684B2 (en) 2016-08-05 2019-10-29 Sonos, Inc. Calibration of a playback device based on an estimated frequency response
US10712997B2 (en) 2016-10-17 2020-07-14 Sonos, Inc. Room association based on name
JP6962158B2 (ja) * 2017-12-01 2021-11-05 ヤマハ株式会社 機器制御システム、機器制御方法、及びプログラム
US10683969B2 (en) * 2018-05-07 2020-06-16 Ledvance Llc Downlight with selectable lumens and correlated color temperature
US10299061B1 (en) 2018-08-28 2019-05-21 Sonos, Inc. Playback device calibration
US11206484B2 (en) 2018-08-28 2021-12-21 Sonos, Inc. Passive speaker authentication
US10734965B1 (en) 2019-08-12 2020-08-04 Sonos, Inc. Audio calibration of a portable playback device
CN112363685B (zh) * 2020-12-08 2022-08-19 四川长虹电器股份有限公司 一种广告机软件匹配多种屏参的处理方法
WO2022232645A1 (en) * 2021-04-30 2022-11-03 Little Dog Live, LLC Audio workstation control over computing networks
US20240056356A1 (en) * 2022-08-10 2024-02-15 Dish Network, L.L.C. Gateway anti-distraction mode for an establishment

Family Cites Families (137)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US519457A (en) * 1894-05-08 Thomas rodgerson marsden
US4223257A (en) * 1978-11-15 1980-09-16 Miller Donald K Adaptive servo control system
JPH0722429B2 (ja) * 1985-08-19 1995-03-08 ソニー株式会社 機器コントロ−ルシステム
JPS62204638A (ja) 1986-03-04 1987-09-09 Nec Corp ステ−シヨンアドレス設定方式
JPS6319934A (ja) 1986-07-11 1988-01-27 Omron Tateisi Electronics Co 多重伝送装置
US4839891A (en) 1987-07-24 1989-06-13 Nec Corporation Method for controlling data flow
US4922536A (en) 1988-11-14 1990-05-01 Massachusetts Institute Of Technology Digital audio transmission for use in studio, stage or field applications
GB8911395D0 (en) * 1989-05-18 1989-07-05 British Telecomm Data communications network
US5557798A (en) * 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
JPH03135130A (ja) 1989-10-19 1991-06-10 Brother Ind Ltd 電子装置
US5245604A (en) * 1990-03-05 1993-09-14 Lone Wolf, Inc. Communicating system
US5276813A (en) * 1990-08-31 1994-01-04 International Business Machines Corp. Acquiring addresses in an input/output system
JPH04242340A (ja) 1991-01-16 1992-08-31 Omron Corp 1対n直列通信システム
JPH0537535A (ja) 1991-08-02 1993-02-12 Nec Corp アドレス制御回路
EP0596594B1 (en) 1992-10-26 2000-07-12 Sun Microsystems, Inc. Remote control and pointing device
US5475835A (en) 1993-03-02 1995-12-12 Research Design & Marketing Inc. Audio-visual inventory and play-back control system
DE69432199T2 (de) 1993-05-24 2004-01-08 Sun Microsystems, Inc., Mountain View Graphische Benutzerschnittstelle mit Verfahren zur Schnittstellebildung mit fernsteuernden Einrichtungen
KR100341706B1 (ko) * 1993-06-25 2002-11-30 디2비시스템즈캄퍼니리미티드 단일채널통신버스시스템
JPH0723473A (ja) 1993-06-30 1995-01-24 Toshiba Corp エレベータの伝送装置
JP3232168B2 (ja) 1993-07-02 2001-11-26 三菱電機株式会社 半導体基板およびその製造方法ならびにその半導体基板を用いた半導体装置
US5438325A (en) 1993-07-09 1995-08-01 Sony Corporation Remote controller apparatus and an audio-video combination system using the same
CN1113302C (zh) 1993-07-30 2003-07-02 佳能株式会社 通过通信线路控制设备的控制器和方法
JPH0744477A (ja) 1993-07-30 1995-02-14 Canon Inc マルチメディア機器の制御システム
JP4208267B2 (ja) 1993-07-30 2009-01-14 キヤノン株式会社 制御装置
JPH0779249A (ja) 1993-09-06 1995-03-20 Fuji Xerox Co Ltd パケット中継方法およびその装置
CA2153968A1 (en) 1993-09-13 1995-03-23 Steven H. Milne Multimedia data routing system
JP3639319B2 (ja) 1994-01-25 2005-04-20 富士通株式会社 並列計算機システム,データ転送制御方法および送受信制御装置
US5442311A (en) * 1994-01-28 1995-08-15 Texas Instruments Incorporated System and method for controlling a gain circuit
US5677709A (en) * 1994-02-15 1997-10-14 Shimadzu Corporation Micromanipulator system with multi-direction control joy stick and precision control means
JPH0819060A (ja) 1994-06-29 1996-01-19 Mitsubishi Electric Corp Av機器制御システム
US5657221A (en) 1994-09-16 1997-08-12 Medialink Technologies Corporation Method and apparatus for controlling non-computer system devices by manipulating a graphical representation
US5500626A (en) 1994-10-11 1996-03-19 Crown International, Inc. Independent amplifier control module
US5862401A (en) 1994-10-11 1999-01-19 Crown International, Inc. Programmable central intelligence controller and distributed intelligence network for analog/digital control systems
EP0718994A3 (de) 1994-12-15 2006-08-02 Studer Professional Audio GmbH Vorrichtung zur Verarbeitung von Tonsignalen
JPH08237767A (ja) 1995-02-23 1996-09-13 Matsushita Electric Works Ltd 分散監視制御システム
GB2299422B (en) 1995-03-30 2000-01-12 Sony Uk Ltd Object code allocation in multiple processor systems
US5687334A (en) 1995-05-08 1997-11-11 Apple Computer, Inc. User interface for configuring input and output devices of a computer
GB2301002B (en) 1995-05-19 2000-03-01 Sony Uk Ltd Audio mixing console
GB2302742B (en) 1995-06-26 2000-02-16 Sony Uk Ltd Interactive interface system
US5867223A (en) * 1995-07-17 1999-02-02 Gateway 2000, Inc. System for assigning multichannel audio signals to independent wireless audio output devices
US5673401A (en) * 1995-07-31 1997-09-30 Microsoft Corporation Systems and methods for a customizable sprite-based graphical user interface
WO1997028505A1 (en) 1996-01-31 1997-08-07 Ipsilon Networks, Inc. Improved method and apparatus for dynamically shifting between routing and switching packets in a transmission network
US6339584B1 (en) 1996-04-12 2002-01-15 Cirrus Logic, Inc. Media access control for isochronous data packets in carrier sensing multiple access systems
US5761430A (en) * 1996-04-12 1998-06-02 Peak Audio, Inc. Media access control for isochronous data packets in carrier sensing multiple access systems
US5761431A (en) 1996-04-12 1998-06-02 Peak Audio, Inc. Order persistent timer for controlling events at multiple processing stations
US5793366A (en) * 1996-11-12 1998-08-11 Sony Corporation Graphical display of an animated data stream between devices on a bus
AU3407497A (en) 1996-06-24 1998-01-14 Van Koevering Company Musical instrument system
JP3427918B2 (ja) 1996-07-02 2003-07-22 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラム開発支援システム及び支援方法
US5935220A (en) 1996-08-09 1999-08-10 Motorola Inc. Apparatus and method for high speed data and command transfer over an interface
US5956825A (en) * 1996-12-24 1999-09-28 Mccoy; Steven N. Reusable casket assembly
EP0886411A3 (en) * 1997-04-15 2004-01-21 Hewlett-Packard Company, A Delaware Corporation Method and apparatus for device interaction by protocol
US5956025A (en) 1997-06-09 1999-09-21 Philips Electronics North America Corporation Remote with 3D organized GUI for a home entertainment system
JP2000513916A (ja) * 1997-06-25 2000-10-17 サムソン エレクトロニクス カンパニー リミテッド ホームネットワーク自動ツリー生成器に対する方法及び装置
US6270182B1 (en) * 1997-07-15 2001-08-07 Silverbrook Research Pty Ltd Inkjet print head recapping mechanism
EP0893765A1 (en) 1997-07-24 1999-01-27 CANAL+ Société Anonyme IEEE 1394 Set Top Box device driver
US6421069B1 (en) * 1997-07-31 2002-07-16 Sony Corporation Method and apparatus for including self-describing information within devices
US6577326B1 (en) 1997-08-29 2003-06-10 Koninklijke Philips Electronics N.V. Computer-controlled home theater independent user-control
EP1020858A1 (en) 1997-10-03 2000-07-19 Kabushiki Kaisha Toshiba Controller, network device, signal transmitter, signal receiver, and recording medium
JPH11317990A (ja) 1997-10-03 1999-11-16 Toshiba Corp 制御装置
GB2330752B (en) 1997-10-24 2002-09-04 Sony Uk Ltd Audio processing
GB2330753A (en) 1997-10-24 1999-04-28 Sony Uk Ltd Audio processing
JPH11150788A (ja) 1997-11-14 1999-06-02 Yamaha Corp オーディオシステム
JP4245670B2 (ja) * 1998-04-22 2009-03-25 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 消費者電子システムの機能の管理
EP0955740A1 (de) 1998-05-04 1999-11-10 Sachtler GmbH Studiosteuerungssystem und Verfahren zur Automatiserung von im Studiobereich eingesetzten hebe- und lichttechnischen Geräten
EP1084576B1 (en) * 1998-05-07 2005-07-27 Samsung Electronics Co., Ltd. Method and apparatus for universally accessible command and control information in a network
JP4151110B2 (ja) * 1998-05-14 2008-09-17 ソニー株式会社 オーディオ信号処理装置およびオーディオ信号再生装置
US6456892B1 (en) * 1998-07-01 2002-09-24 Sony Electronics, Inc. Data driven interaction for networked control of a DDI target device over a home entertainment network
US6311242B1 (en) 1998-08-27 2001-10-30 Apple Computer, Inc. Method and apparatus for supporting dynamic insertion and removal of PCI devices
US6963784B1 (en) 1998-10-16 2005-11-08 Sony Corporation Virtual device control modules and function control modules implemented in a home audio/video network
JP2000197159A (ja) * 1998-12-28 2000-07-14 Sanyo Electric Co Ltd 音響・映像コントロ―ルシステム
US6272540B1 (en) 1998-12-31 2001-08-07 Intel Corporation Arrangement and method for providing flexible management of a network
US6892350B1 (en) * 1999-01-22 2005-05-10 Yamaha Corporation Audio system with customization of information display
JP2000224179A (ja) 1999-01-28 2000-08-11 Sharp Corp ネットワーク端末装置及び通信方法
US6492999B1 (en) 1999-02-25 2002-12-10 International Business Machines Corporation Connecting and optimizing audio input devices
US6370436B1 (en) * 1999-03-26 2002-04-09 Emware, Inc. Distributed objects for a computer system
US7178106B2 (en) * 1999-04-21 2007-02-13 Sonic Solutions, A California Corporation Presentation of media content from multiple media sources
US6353169B1 (en) * 1999-04-26 2002-03-05 Gibson Guitar Corp. Universal audio communications and control system and method
US6556219B1 (en) 1999-05-18 2003-04-29 Gateway, Inc. Method and system for peripheral device user interface construction
US6738835B1 (en) * 1999-05-28 2004-05-18 Sony Corporation Information processing apparatus and method, and recording medium
US7006642B1 (en) * 1999-06-04 2006-02-28 Roland Corporation Audio control apparatus and audio processing apparatus in a mixing system
JP2000356994A (ja) 1999-06-15 2000-12-26 Yamaha Corp オーディオシステム、その制御方法および記録媒体
JP2001024685A (ja) 1999-07-02 2001-01-26 Canon Inc 情報処理システム、電子機器、及び情報処理方法
US6801507B1 (en) * 1999-07-27 2004-10-05 Samsung Electronics Co., Ltd. Device discovery and configuration in a home network
TW495735B (en) * 1999-07-28 2002-07-21 Yamaha Corp Audio controller and the portable terminal and system using the same
JP4337198B2 (ja) 1999-12-07 2009-09-30 ソニー株式会社 伝送方法及び伝送装置
JP3587113B2 (ja) * 2000-01-17 2004-11-10 ヤマハ株式会社 接続設定装置及び媒体
EP1257923A1 (en) 2000-01-20 2002-11-20 Powerdsine Ltd. Data communication network
US6363417B1 (en) 2000-03-31 2002-03-26 Emware, Inc. Device interfaces for networking a computer and an embedded device
AU2000256423A1 (en) 2000-06-28 2002-01-08 Microsoft Corporation Remoting general purpose operating system services via a peer networking device control protocol
US6700592B1 (en) 2000-06-30 2004-03-02 Sony Corporation Method and system for dynamically building the graphical user interface of a home AV network device
US7047495B1 (en) * 2000-06-30 2006-05-16 Intel Corporation Method and apparatus for graphical device management using a virtual console
US6928076B2 (en) * 2000-09-22 2005-08-09 Intel Corporation System and method for controlling signal processing in a voice over packet (VoP) environment
BR0114262A (pt) 2000-09-27 2003-08-26 Thomson Licensing Sa Arquitetura para otimizar estados de saìda de áudio e vìdeo para dispositivos multimìdia
JP2002142272A (ja) 2000-10-30 2002-05-17 Kenwood Corp Avネットワークシステム、及び、av機器接続方法
US6934756B2 (en) 2000-11-01 2005-08-23 International Business Machines Corporation Conversational networking via transport, coding and control conversational protocols
US20020072816A1 (en) 2000-12-07 2002-06-13 Yoav Shdema Audio system
US7134085B2 (en) 2000-12-13 2006-11-07 National Instruments Corporation System and method for automatically configuring program data exchange
US7287230B2 (en) 2000-12-13 2007-10-23 National Instruments Corporation Configuring a GUI element to subscribe to data
US7809854B2 (en) 2002-02-12 2010-10-05 Open Design, Inc. Logical routing system
US6930730B2 (en) 2001-05-03 2005-08-16 Mitsubishi Digital Electronics America, Inc. Control system and user interface for network of input devices
US6802058B2 (en) * 2001-05-10 2004-10-05 International Business Machines Corporation Method and apparatus for synchronized previewing user-interface appearance on multiple platforms
JP3925109B2 (ja) * 2001-06-13 2007-06-06 ヤマハ株式会社 音声信号編集装置の制御方法、音声信号編集装置およびプログラム
US7565212B2 (en) 2001-06-13 2009-07-21 Yamaha Corporation Configuration method of digital audio mixer
US20030016233A1 (en) * 2001-06-29 2003-01-23 Bitflash Graphics, Inc. Method and system for manipulation of graphics information
US6885362B2 (en) * 2001-07-12 2005-04-26 Nokia Corporation System and method for accessing ubiquitous resources in an intelligent environment
US20030014486A1 (en) 2001-07-16 2003-01-16 May Gregory J. Distributed audio network using networked computing devices
JP3689653B2 (ja) 2001-07-26 2005-08-31 シャープ株式会社 デバイス制御システム
JP2002157867A (ja) 2001-08-20 2002-05-31 Yamaha Corp オーディオシステム及びオーディオ装置の制御方法
JP3804824B2 (ja) * 2001-09-19 2006-08-02 ヤマハ株式会社 ディジタルミキサ
US7245727B2 (en) 2001-09-28 2007-07-17 Jonathan Cresci Remote controlled audio mixing console
US20030066016A1 (en) * 2001-09-28 2003-04-03 Eric Wehage Methodology for detecting lost packets
KR20030028310A (ko) 2001-09-29 2003-04-08 삼성전자주식회사 홈네트워크에 연결된 피제어 장치를 인터넷을 통해제어하는 방법 및 그 제어 장치
US6931574B1 (en) 2001-10-24 2005-08-16 Finisar Corporation Systems and methods for interpreting communications packets
US7124367B2 (en) * 2001-11-14 2006-10-17 Gateway Inc. Adjustable user interface
US20030103075A1 (en) * 2001-12-03 2003-06-05 Rosselot Robert Charles System and method for control of conference facilities and equipment
US20030108044A1 (en) * 2001-12-11 2003-06-12 Roland Hendel Stateless TCP/IP protocol
JP2003223377A (ja) 2002-01-30 2003-08-08 Sharp Corp デバイス制御システム
US7742609B2 (en) 2002-04-08 2010-06-22 Gibson Guitar Corp. Live performance audio mixing system with simplified user interface
US7167476B1 (en) * 2002-04-12 2007-01-23 Juniper Networks, Inc. Systems and methods for routing data in a network device
JP2004015787A (ja) 2002-06-12 2004-01-15 Matsushita Electric Ind Co Ltd リモート制御装置
US7408957B2 (en) 2002-06-13 2008-08-05 International Business Machines Corporation Selective header field dispatch in a network processing system
JP3988128B2 (ja) 2002-07-18 2007-10-10 ヤマハ株式会社 ディジタル・ミキサ
US7562156B2 (en) * 2002-08-16 2009-07-14 Symantec Operating Corporation System and method for decoding communications between nodes of a cluster server
DE10243781A1 (de) * 2002-09-20 2004-03-25 Sick Ag Elektronische Vorrichtung für ein Bussystem
US7835365B2 (en) * 2002-09-26 2010-11-16 Sharp Laboratories Of America, Inc. Connection management in a centralized communication system
US7350077B2 (en) * 2002-11-26 2008-03-25 Cisco Technology, Inc. 802.11 using a compressed reassociation exchange to facilitate fast handoff
DE10308583A1 (de) * 2003-02-27 2004-09-09 Arvinmeritor Gmbh Windabweiser für ein Fahrzeugdach
JP4023381B2 (ja) * 2003-05-20 2007-12-19 ヤマハ株式会社 ノード制御方法、ノード制御装置およびプログラム
US7441020B2 (en) 2003-06-27 2008-10-21 Microsoft Corporation Media plug-in registration and dynamic loading
US7085676B2 (en) * 2003-06-27 2006-08-01 Tokyo Electron Limited Feed forward critical dimension control
US7127305B1 (en) * 2003-07-21 2006-10-24 Eyecon Technologies, Inc. Method and apparatus for unified control of multiple devices
US7571014B1 (en) 2004-04-01 2009-08-04 Sonos, Inc. Method and apparatus for controlling multimedia players in a multi-zone system
US7016800B1 (en) 2003-12-16 2006-03-21 Adaptec, Inc. Centralized console API testing architecture
US20050149215A1 (en) * 2004-01-06 2005-07-07 Sachin Deshpande Universal plug and play remote audio mixer
US20050177256A1 (en) 2004-02-06 2005-08-11 Peter Shintani Addressable loudspeaker
US7742606B2 (en) 2004-03-26 2010-06-22 Harman International Industries, Incorporated System for audio related equipment management
KR100574463B1 (ko) * 2004-08-05 2006-04-27 삼성전자주식회사 Ieee 1394가 채용된 호스트장치 및 그의 제어방법

Also Published As

Publication number Publication date
JP4235188B2 (ja) 2009-03-11
EP1585241A2 (en) 2005-10-12
EP1580910A2 (en) 2005-09-28
EP1585240A2 (en) 2005-10-12
JP4308164B2 (ja) 2009-08-05
EP1587230A3 (en) 2008-05-28
EP1587228A2 (en) 2005-10-19
JP2005318550A (ja) 2005-11-10
JP2009116340A (ja) 2009-05-28
US8473844B2 (en) 2013-06-25
JP2005323345A (ja) 2005-11-17
JP2005328521A (ja) 2005-11-24
US8249071B2 (en) 2012-08-21
US20050226595A1 (en) 2005-10-13
JP2005328504A (ja) 2005-11-24
JP2005327254A (ja) 2005-11-24
US7725826B2 (en) 2010-05-25
EP1585241A3 (en) 2007-12-05
EP1587229A3 (en) 2008-07-02
US20050232602A1 (en) 2005-10-20
EP1587230A2 (en) 2005-10-19
EP1585240B1 (en) 2024-02-21
JP4383384B2 (ja) 2009-12-16
JP2005323344A (ja) 2005-11-17
US7689305B2 (en) 2010-03-30
US20050226430A1 (en) 2005-10-13
JP4383378B2 (ja) 2009-12-16
US20050239397A1 (en) 2005-10-27
EP1580910B1 (en) 2019-10-30
EP1587229A2 (en) 2005-10-19
JP5053983B2 (ja) 2012-10-24
EP1587228A3 (en) 2008-07-02
US7742606B2 (en) 2010-06-22
EP1585241B1 (en) 2017-11-01
US20050246041A1 (en) 2005-11-03
US8078298B2 (en) 2011-12-13
EP1585240A3 (en) 2008-02-13
US20050239396A1 (en) 2005-10-27
EP1580910A3 (en) 2008-02-13
JP2009211707A (ja) 2009-09-17

Similar Documents

Publication Publication Date Title
JP4621523B2 (ja) オーディオ関連システムにおけるノード構造の発見ためのシステム
US9191721B2 (en) Networked audio/video system
US9826325B2 (en) System for networked routing of audio in a live sound system
US8855008B2 (en) Digital multimedia network with parameter join mechanism
US11140206B2 (en) Architecture for a media system
JP2009218969A (ja) アンプ制御装置、アンプシステム及びプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080125

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080424

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080430

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080526

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080624

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090123

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090204

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090626

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100831

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100903

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101101

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4621523

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250