説明

独立してクロックされる複数のデジタルデータプロセシングデバイスの間で動作を同期させるためのシステムおよび方法

独立したクロッキング装置をもつ複数のデバイスの間で動作の同期を維持するためのシステムが記載される。前記システムは、同期グループにタスクを配送するタスク配送デバイスを含む。同期グループとは、前記タスク配送デバイスによって配送されたタスクを同期して実行するべき複数のデバイスを含むものである。タスク配送デバイスは各タスクをネットワークを通じて同期グループのメンバーに配送する。各タスクはタスク配送デバイスによって維持されるクロックに基づく時刻を示すタイムスタンプと関連付けられている。その時刻にその同期グループのメンバーが当該タスクを実行するのである。同期グループの各メンバーは、タスク配送デバイスからそのクロックによって示される現在時刻の標示を定期的に取得し、タスク配送デバイスのクロックと各自のクロックとの間の時間差を決定し、それから各自のクロックに基づいて前記タイムスタンプが各自がタスクを実行すべきであることを示す時刻を決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般にはデジタルデータプロセシングデバイスの分野に、より詳細には独立してクロックされる複数のデジタルデータプロセシングデバイスの間で動作を同期させるためのシステムおよび方法に関する。本発明は、複数のデバイスの間で、共通のソースによって与えられる情報に基づいて動作を同期させるためのシステムにおいて具現される。本発明のある実施形態は、共通の情報ソースまたはチャネルからオーディオ情報を受け取る二つ以上のオーディオ再生デバイスの間などでのオーディオ再生の同期を可能にする。
【0002】
より一般には、本発明は、いくつかの出力生成器によって生成される出力を同期させる構成装置の分野に関する。出力としては、オーディオ出力、ビデオ出力、オーディオおよびビデオの組み合わせならびに当業者が認識するであろう共通チャネルによって与えられるその他の種類の出力が含まれうる。一般に、本発明は独立してクロックされるデバイスの間での同期が望ましいいかなる種類の情報との関連においても用途を見出すものである。
【背景技術】
【0003】
独立してクロックされる複数のデジタルデータプロセシングデバイスの間で、たとえば共通ソースによって与えられる情報に基づいて動作の同期を維持することが望ましい状況はいくつもある。たとえば、一つのオーディオ情報ソースがいくつかのオーディオ再生デバイスに再生のためにデジタル形式でのオーディオ情報を配送できるシステムが開発されつつある。オーディオ再生デバイスはそのデジタル情報を受け取り、それを再生のためにアナログ形式に変換する。オーディオ再生デバイスは同一の室内に位置していてもよいし、あるいは家やアパートといった住居内の異なる部屋に、オフィスビルの異なるオフィスに、など分散していてもよい。たとえば、住居内に設置されるシステムでは、一つのオーディオ再生デバイスがリビングに位置していて、別のオーディオ再生デバイスがキッチンに位置していて、さらに別のオーディオ再生デバイスが家のさまざまな寝室に位置しているということがありうる。そのような配置においては、さまざまなオーディオ再生デバイスに配送されるオーディオ情報は同じオーディオ番組に関係していてもよいし、あるいは前記情報は異なるオーディオ番組に関係していてもよい。オーディオ情報ソースが同一のオーディオ番組に関係するオーディオ情報を二つ以上のオーディオ再生デバイスに同時に提供する場合、該オーディオ再生デバイスは一般に同一の番組を同時的に再生する。たとえば、前記オーディオ情報ソースが家のリビングおよびキッチンに位置するオーディオ再生デバイスに同時にオーディオ情報を提供する場合、一般には同一の番組を同時的に再生する。
【0004】
生起しうる一つの問題は、二つ以上のオーディオ再生デバイスが同一のオーディオ番組を同時的に再生しようと試みている場合にそれを同期的に行うことを保証することである。オーディオ再生デバイスの開始時刻および/または再生速度のわずかなずれでも聞き手にとってはエコー効果として知覚されることがあり、大きなずれになると非常にわずらわしいものになりうる。ずれが生じうる理由は、ネットワーク上でのオーディオ情報転送の際の遅延を含めていろいろある。そのような遅延がさまざまなオーディオ再生デバイスの間で異なりうる理由もいろいろあり、ネットワークに接続されている位置、メッセージトラフィックその他の理由などが含まれるが、当業者には明らかであろう。
【0005】
次のように別の問題を生ずる事情もある。オーディオ再生デバイスがデジタルオーディオ情報をデジタルからアナログ形式に変換するとき、タイミング情報を提供するクロックを使って行う。一般に、現在開発されているオーディオ再生デバイスは独立したクロックを有しており、精密に同一のレートのクロックでなければさまざまなデバイスによって提供されるオーディオ再生は同期から外れうる。
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明は、独立したクロッキングデバイスによって制御されているいくつかのデジタルデータプロセシングデバイスの間で動作を同期させるための改良されたシステムおよび方法を提供する。一般に、本発明は、ネットワークに接続されているデバイスの間で同期が望ましいいかなる種類の情報との関連においても用途を見出すものである。本発明は、同期して再生されるべきデジタルオーディオ情報を受け取る複数のオーディオ再生デバイスとの関連で記述されるが、本発明が、独立したクロッキングデバイスをもつデバイスの間での協調が用途を見出すいかなる種類の情報との関連でも有用性を見出すことができることは認識されることであろう。
【課題を解決するための手段】
【0007】
簡潔にまとめると、本発明は、ある側面では、独立したクロッキング装置をもつ複数のデバイスの間で動作の同期を維持するためのシステムを提供する。前記システムは、同期グループにタスクを配送するタスク配送デバイスを含む。同期グループとは、前記タスク配送デバイスによって配送されたタスクを同期して実行するべき複数のデバイスを含むものである。タスク配送デバイスは各タスクをネットワークを通じて同期グループのメンバーに配送する。各タスクはタスク配送デバイスによって維持されるクロックに基づく時刻を示すタイムスタンプと関連付けられている。その時刻にその同期グループのメンバーが当該タスクを実行するのである。同期グループの各メンバーは、タスク配送デバイスからそのクロックによって示される現在時刻の標示を定期的に取得し、タスク配送デバイスのクロックと各自のクロックとの間の時間差を決定し、それから各自のクロックに基づいて前記タイムスタンプが各自がタスクを実行すべきであることを示す時刻を決定する。
【0008】
ある実施形態では、配送されるタスクは、当該同期グループをなす全デバイスによって同期的に再生されるべきオーディオトラックのためのオーディオ情報を含む。そのオーディオトラックは一連のフレームに分割され、各フレームは、オーディオ情報チャネルデバイスによって維持されるクロックに基づいた、同期グループのメンバーが各フレームを再生すべき時刻を示すタイムスタンプに関連付けられている。このオーディオ情報チャネルデバイスがこの実施形態では前記タスク配送デバイスの役を果たす。同期グループの各メンバーは、非常に精密なプロトコルを使って、オーディオ情報チャネルデバイスによって示される時刻を定期的に取得し、各自のローカルクロックと前記オーディオ情報チャネルデバイスのクロックとによって示される時刻の間のずれを決定する。各メンバーはそのずれと前記タイムスタンプによって示される時刻とを使って、各フレームを再生すべき、各自のローカルクロックに基づいた時刻を決定する。同期グループのメンバーはこれを全フレームについて行い、従って該フレームを同期して再生することができる。
【0009】
本発明は付属の請求項において具体性をもって明示される。本発明の上記の、そしてさらなる利点は、以下の記述を付属の図面との関連で参照することによってよりよく理解されうる。
【発明を実施するための最良の形態】
【0010】
図1は本発明に基づいて構築された例示的なネットワークオーディオシステム10を描いている。図1を参照すると、ネットワークオーディオシステム10は、ローカルネットワークによって相互接続された複数のゾーンプレーヤー11(1)から11(N)を含んでいる(一般に参照符号11(n)によって同定される)。これらはすべて、一般に参照符号13によって同定される一つまたは複数のユーザーインターフェースモジュールの制御のもとで動作する。一つまたは複数のゾーンプレーヤー11(n)はまた、ここでは一般に参照符号14(n)(s)によって同定される一つまたは複数のオーディオ情報ソースおよび/または一般に参照符号15(n)(r)によって同定される一つまたは複数のオーディオ再生デバイスに接続されていてもよい。参照符号14(n)(s)の添え字「n」は当該オーディオ情報ソースが接続されているゾーンプレーヤー11(n)の添え字「n」を表しており、添え字「s」(s=1,...,S)はその「n番目」のゾーンプレーヤー11(n)に接続された「s番目」のオーディオ情報ソースを表している。よって、たとえばゾーンプレーヤー11(n)が4つのオーディオ情報ソース14(n)(1)から14(n)(4)に接続されているとすると、そのオーディオ情報ソースは一般に参照符号14(n)(s)によって同定されることができ、S=4となる。オーディオ情報ソースの数Sはさまざまなゾーンプレーヤー11(n)の間で変動がありえ、接続されたオーディオ情報ソースを全くもたないゾーンプレーヤーがあってもよいことは理解されることであろう。同様に、参照符号15(n)(r)の添え字「n」は当該オーディオ再生デバイスが接続されているゾーンプレーヤー11(n)の添え字「n」を表しており、添え字「r」(r=1,...,R)はその「n番目」のゾーンプレーヤー11(n)に接続された「r番目」のオーディオ情報ソースを表している。オーディオ情報ソース14(n)(s)に加え、ネットワークオーディオシステム10は、ローカルネットワーク12に適切なネットワークインターフェースデバイス(別個の要素として図示してはいない)を通じて接続された、一つまたは複数のオーディオ情報ソース16(1)から16(M)を含みうる。さらに、ローカルネットワークは、一つまたは複数のネットワークインターフェースデバイス(これも別個の要素として図示してはいない)を含みうる。該ネットワークインターフェースデバイスは、当該ローカルネットワーク12を、インターネットのような広域ネットワーク、公衆電話交換網(PSTN)または当業者には明らかであろうその他のネットワークを含む他のネットワークに接続するよう構成されており、そうしたネットワークを通じてオーディオ情報ソースへの接続が確立されうる。
【0011】
システム10に付随するゾーンプレーヤー11(n)は、住居、オフィスビル、ホテル、会議ホール、大講堂もしくは公会堂または当業者には明らかであろうその他の種類の施設等といった施設じゅうに分散していてもよい。たとえば、ゾーンプレーヤー11(n)ならびにその関連付けられたオーディオ情報ソースおよび/またはオーディオ再生デバイスは住居じゅうに分散しており、一つ、たとえばゾーンプレーヤー11(1)ならびにその関連付けられたオーディオ情報ソースおよびオーディオ再生デバイスはリビングに位置しており、もう一つがキッチンに位置しており、もう一つがダイニングルームに位置しており、さらに他のものが各寝室に位置していて、それらの部屋において選択的にエンターテインメントを提供することができる。他方、ゾーンプレーヤー11(n)ならびにその関連付けられたオーディオ情報ソースおよび/またはオーディオ再生デバイスがオフィスビルじゅうに分散している場合には、たとえば各オフィスに一つが備えられて、各オフィスの従業員に選択的にエンターテインメントを提供することができる。同様に、ゾーンプレーヤー11(n)ならびに関連付けられたオーディオ情報ソースおよび/またはオーディオ再生デバイスがホテルで使われる場合には、各部屋に分散されて客にエンターテインメントを提供することができる。大講堂または公会堂で使われるゾーンプレーヤー11(n)ならびに関連付けられたオーディオ情報ソースおよび/またはオーディオ再生デバイスについても同様の配置を利用することができる。他の種類の環境におけるその他の配置は当業者には明らかであろう。各場合において、ゾーンプレーヤー11(n)は、それぞれの位置においてエンターテインメントを選択的に提供するために使用されうる。それについて以下に述べる。
【0012】
オーディオ情報ソース14(n)(s)および16(m)はいろいろある従来式オーディオ情報ソースのうちのいかなる種類のものでもよく、たとえばコンパクトディスク(「CD」)プレーヤー、AMおよび/またはFMラジオ受信機、アナログまたはデジタルテープカセットプレーヤー、アナログレコードターンテーブルなどがある。さらに、オーディオ情報ソース14(n)(s)および16(m)は、たとえばパソコン(PC)、携帯情報端末(PDA)または揮発性もしくは不揮発性の形でデジタル情報を保存できる同様のデバイスにローカルに保存されたデジタルオーディオファイルをなしていてよい。上述したように、ローカルネットワーク12はまた広域ネットワークへのインターフェース(図示せず)を有していて、その広域ネットワークを通じてネットワークオーディオシステム10がオーディオ情報を取得できるようになっていてもよい。さらに、オーディオ情報ソース14(n)(s)のうちの一つまたは複数はインターネット、公衆電話交換網(PSTN)またはその他任意のオーディオ情報のソースのような広域ネットワークへのインターフェースを有していてもよい。さらに、オーディオ情報ソース14(n)(s)および16(m)のうちの一つまたは複数は、衛星などを通じて届けられるラジオサービスへのインターフェースを有していてもよい。広域ネットワークを通じて取得されるオーディオ情報はたとえば、インターネットラジオ、サーバー上に保存されたデジタルオーディオファイルならびに当業者には認識されるであろうその他の種類のオーディオ情報およびソースといったストリーミングデジタルオーディオ情報を有していてもよい。その他の構成およびその他の種類のオーディオ情報ソースは当業者には明らかであろう。
【0013】
一般に、オーディオ情報ソース14(n)(s)および16(m)は、オーディオ番組と関連付けられたオーディオ情報をゾーンプレーヤーに再生のために提供する。接続されているオーディオ情報ソース14(n)(s)からオーディオ情報を受け取るゾーンプレーヤーは、再生を行うこともできるし、および/または再生のために他のゾーンプレーヤーに当該オーディオ情報を再生タイミング情報とともにローカルネットワーク12を通じて転送することもできる。同様に、ゾーンプレーヤーに直接接続されていない各オーディオ情報ソース16(m)は、オーディオ情報をネットワーク12を通じて任意のゾーンプレーヤー11(n)に再生のために送信することができる。さらに、以下で詳細に説明されるように、各ゾーンプレーヤー11(n)は、接続されているオーディオ情報ソース14(n)(s)から、あるいはオーディオ情報ソース16(m)から受け取るオーディオ情報を、他のゾーンプレーヤー11(n′)、11(n″)…(nはn′、n″…に等しくない)のうちの選択されたものに、それらのゾーンプレーヤーによる再生のために送信できる。ゾーンプレーヤーが再生のためのオーディオ情報を送信する前記他のゾーンプレーヤー11(n′)、11(n″)…は、ユーザーがユーザーインターフェースモジュール13を使って選択してもよい。その動作の際、ゾーンプレーヤー11(n)は前記オーディオ情報を前記選択されたゾーンプレーヤー11(n′)、11(n″)…にネットワーク12を介して送信する。下記でより詳細に述べるように、ゾーンプレーヤー11(n)、11(n′)、11(n″)…は、ゾーンプレーヤー11(n′)、11(n″)…がオーディオ番組の再生をゾーンプレーヤー11(n)による再生と同期させ、ゾーンプレーヤー11(n)、11(n′)、11(n″)…が同じオーディオ番組を同時に提供するような形で動作する。
【0014】
ユーザーインターフェースモジュール13を使うユーザーはまた、ゾーンプレーヤーの異なる複数のグループ分けまたは集合を有効にして、異なる複数のオーディオ番組のオーディオ再生を同期的に提供することもできる。たとえば、ユーザーインターフェースモジュール13を使うユーザーは、ゾーンプレーヤー11(1)および11(2)があるオーディオ番組を再生できるようにしうる。そのオーディオ番組のためのオーディオ情報はたとえばあるオーディオ情報ソース14(1)(1)によって与えられうる。その同じユーザーまたは異なるユーザーが、同じまたは異なるユーザーインターフェースモジュール13を使って、ゾーンプレーヤー11(4)および11(5)が別のオーディオ番組を同時的に再生できるようにしうる。そのオーディオ番組のためのオーディオ情報はオーディオ情報ソース14(5)(2)のようなある第二のオーディオ情報ソースによって与えられうる。さらに、ユーザーは、ゾーンプレーヤー11(3)がさらに別のオーディオ番組を同時的に再生できるようにしうる。そのオーディオ番組のためのオーディオ情報はオーディオ情報ソース16(1)のようなさらに別のオーディオ情報ソースによって与えられうる。さらにもう一つの可能性としては、ユーザーは同時的に、ゾーンプレーヤー11(1)が、それに接続されているオーディオ情報ソース14(1)(2)のようなオーディオ情報ソースからのオーディオ情報をゾーンプレーヤー11(6)のような別のゾーンプレーヤーに再生のために提供できるようにしてもよい。
【0015】
以下では、「同期グループ」の用語は、同一のオーディオ番組を同期的に再生すべき一つまたは複数のゾーンプレーヤーの集合を指すものとして使われる。たとえば上例では、ゾーンプレーヤー11(1)および11(2)は一つの同期グループをなし、ゾーンプレーヤー11(3)は第二の同期グループをなし、ゾーンプレーヤー11(4)および11(5)は第三の同期グループをなし、ゾーンプレーヤー11(6)はさらに第四の同期グループをなす。ここでは、ゾーンプレーヤー11(1)および11(2)が同一のオーディオ番組を再生する間、両者は該オーディオ番組を同期的に再生する。同様に、ゾーンプレーヤー11(4)および11(5)が同一のオーディオ番組を再生する間、両者は該オーディオ番組を同期的に再生する。他方、異なるオーディオ番組を再生しているゾーンプレーヤーは無関係なタイミングで再生してもよい。すなわち、たとえばゾーンプレーヤー11(1)および11(2)がそのオーディオ番組を再生するタイミングは、ゾーンプレーヤー11(3)、ゾーンプレーヤー11(4)および11(5)ならびにゾーンプレーヤー11(6)がそのオーディオ番組を再生するタイミングとは何の関係もなくてもよい。「同期グループ」は同一のオーディオ番組を同期的に再生しているゾーンプレーヤーの集合を指すのに使われるので、たとえゾーンプレーヤー11(1)が前記オーディオ番組のためのオーディオ情報をゾーンプレーヤー11(6)に提供していたとしても、ゾーンプレーヤー11(1)はゾーンプレーヤー11(6)の同期グループの一部にはならないことは理解されるであろう。
【0016】
ネットワークオーディオシステム10において、同期グループは固定ではない。ユーザーは同期グループの確立を有効にしたり、修正したりすることを動的に行える。上の例を続けると、ユーザーは、ゾーンプレーヤー11(1)がオーディオ情報ソース14(1)(1)によって提供されたオーディオ番組の再生の実施を開始できるようにし、その後ゾーンプレーヤー11(2)がその同期グループに加われるようにしてもよい。同様に、ユーザーはゾーンプレーヤー11(5)がオーディオ情報ソース14(5)(2)によって提供されたオーディオ番組の再生の実施を開始できるようにし、その後ゾーンプレーヤー11(4)がその同期グループに加われるようにしてもよい。さらに、ユーザーはゾーンプレーヤーが同期グループを離脱して別の同期グループに加われるようにしてもよい。たとえば、ユーザーはゾーンプレーヤー11(2)がゾーンプレーヤー11(1)との同期グループを離脱して、ゾーンプレーヤー11(6)との同期グループに加われるようにすることができる。別の可能性としては、そのユーザーはゾーンプレーヤー11(1)がゾーンプレーヤー11(2)との同期グループを離脱して、ゾーンプレーヤー11(6)との同期グループに加われるようにすることができる。この最後の可能性に関連して、ゾーンプレーヤー11(1)は、オーディオ情報ソース14(1)(1)からのオーディオ情報をゾーンプレーヤー11(2)による再生のために該ゾーンプレーヤー11(2)に提供し続けることもできる。
【0017】
ユーザーインターフェースモジュール13を使うユーザーは、現在同期グループのメンバーではないゾーンプレーヤー11(n)が同期グループに加われるようにできる。そうしたのち、前記ゾーンプレーヤーはその同期グループによって現在再生されているオーディオ番組を再生できるようになる。同様に、やはりユーザーインターフェースモジュール13を使うユーザーは、現在ある同期グループのメンバーであるゾーンプレーヤー11(n)がその同期グループから離脱して別の同期グループに加われるようにできる。そうしたのち、前記ゾーンプレーヤーは前記他の同期グループに関連付けられているオーディオ番組を再生することになる。たとえば、ゾーンプレーヤー11(6)が現在どの同期グループのメンバーでもない場合、それはユーザーインターフェースモジュール13の制御のもとに、ある同期グループのメンバーとなることができる。そののちはその同期グループの他のメンバーによって再生されているオーディオ番組を、該同期グループの他のメンバーと同期して再生することになる。その同期グループのメンバーとなるにあたって、ゾーンプレーヤー11(6)はその同期グループのマスターデバイスであるゾーンプレーヤーに対してその同期グループのメンバーになりたいことを通知することができる。そののち、マスターゾーンプレーヤーは、そのオーディオ番組に関連付けられているオーディオ情報をタイミング情報とともにゾーンプレーヤー11(6)にも送信することになる。ゾーンプレーヤー11(6)は、マスターデバイスからオーディオ情報およびタイミング情報を受信するので、オーディオ情報をタイミング情報によって示されるタイミングで再生する。これによりゾーンプレーヤー11(6)はオーディオ番組をその同期グループの他のゾーンプレーヤーと同期して再生できるようになるのである。
【0018】
同様に、ユーザーインターフェースモジュール13を使うユーザーが、ある同期グループに関連付けられているゾーンプレーヤー11(n)がその同期グループから離脱できるようにする場合、かつそのゾーンプレーヤー11(n)がその同期グループのマスターデバイスではない場合、そのゾーンプレーヤー11(n)はマスターデバイスに通知することができ、そののちに前記マスターデバイスはオーディオ情報およびタイミング情報のそのゾーンプレーヤー11(n)への送信を終了させることができる。ユーザーがさらに、そのゾーンプレーヤー11(n)が接続されたオーディオ情報ソース14(n)(s)からのオーディオ情報を使って別のオーディオ番組の再生を開始できるようにする場合、そのゾーンプレーヤー11(n)はオーディオ情報ソース14(n)(s)からのオーディオ情報を取得してその再生を開始することになる。ユーザーがゾーンプレーヤー11(n)と関連付けられた同期グループに別のゾーンプレーヤー11(n′)が加われるようにする場合、それに関連した動作はすぐ上で述べたようにして進行できる。
【0019】
さらなる別の可能性としては、ユーザーインターフェースモジュール13を使うユーザーが、ある同期グループと関連付けられたゾーンプレーヤー11(n)がその同期グループから離脱して別の同期グループに加われるようにする場合、かつ前記ゾーンプレーヤーが離脱しようとしている同期グループのマスターデバイスではない場合、ゾーンプレーヤー11(n)は離脱しようとしている同期グループのマスターデバイスに通知することができる。そののち、そのマスターゾーンプレーヤーは離脱しようとしているゾーンプレーヤー11(n)へのオーディオ情報およびタイミング情報の送信を終了させる。同時的に、ゾーンプレーヤー11(n)は加わろうとしている同期グループのマスターデバイスに通知することができ、そののち、そのマスターデバイスはオーディオ情報およびタイミング情報をそのゾーンプレーヤー11(n)にも送信を開始できる。ゾーンプレーヤー11(n)はその後、前記オーディオ情報によって定義されるオーディオ番組の再生を前記タイミング情報に従って開始することができ、その結果、ゾーンプレーヤー11(n)は前記オーディオ番組を前記マスターデバイスと同期して再生することになる。
【0020】
さらなる別の可能性としては、ユーザーインターフェースモジュール13を使うユーザーは、同期グループと関連付けられていないゾーンプレーヤー11(n)がそれに接続されたオーディオ情報ソース14(n)(s)によって与えられるオーディオ情報を使ってオーディオ番組の再生を開始できるようにしてもよい。その場合、やはりユーザーインターフェースモジュール13または前記オーディオ情報ソース14(n)(s)固有のユーザーインターフェースデバイスを使っているユーザーは、前記オーディオ情報ソース14(n)(s)が前記オーディオ情報をゾーンプレーヤー11(n)に提供できるようにすることができる。ゾーンプレーヤー11(n)が再生を開始したのち、あるいはそれと同時的に、ユーザーインターフェースモジュール13を使う前記ユーザーは、他のゾーンプレーヤー11(n′)、11(n″)…がゾーンプレーヤー11(n)の同期グループに加わることができるようにし、前記他のゾーンプレーヤー11(n′)、11(n″)…によるオーディオ番組の同期的再生を容易にするよう、前記ゾーンプレーヤー11(n)がそれらにオーディオ情報およびタイミング情報を上述したように送信することができるようにすることができる。
【0021】
ユーザーはユーザーインターフェースモジュール13を使って当該ネットワークオーディオシステム10の他の側面を制御することもできる。そうした側面には、これに限るものではないが、ある特定のゾーンプレーヤー11(n)が利用すべきオーディオ情報ソース14(n)(s)、オーディオ再生のボリュームなどの選択が含まれる。さらに、ユーザーは前記ユーザーインターフェースモジュール13を使ってオーディオ情報ソース14(n)(s)をオンにしたりオフにしたりし、オーディオ情報をそれぞれのゾーンプレーヤー11(n)に提供できるようにしてもよい。
【0022】
同期グループに関連付けられたさまざまなデバイスによって実行される動作について、図2との関連で述べる。図2は、図1との関連で上述したネットワークオーディオシステム内の同期グループの機能ブロック図を概略的に描いたものである。図2を参照すると、同期グループ20はマスターデバイス21およびゼロ個またはそれ以上のスレーブデバイス22(1)から22(G)を含んでいる(一般に参照符号22(g)によって同定される)。スレーブデバイスのすべてはオーディオ情報チャネルデバイス23によって提供されるオーディオ番組を同期的に再生する。マスターデバイス21、スレーブデバイス22(g)およびオーディオ情報チャネルデバイス23のそれぞれは図1に描かれているゾーンプレーヤー11(n)を利用する。ただし、ゾーンプレーヤーが同期グループ20のためのオーディオ情報チャネルデバイス23のため、および同期グループ20のマスターデバイス21またはスレーブデバイス22(g)のための両方に利用されうることは下記の記述から明らかであろう。下記でより詳細に述べるように、オーディオ情報チャネルデバイス23はオーディオ番組のためのオーディオ情報をオーディオ情報ソースから取得し、再生タイミング情報を加え、組み合わされたオーディオおよび再生タイミング情報を再生のためにネットワーク12を通じてマスターデバイス21およびスレーブデバイス22(g)に送信する。オーディオ情報と一緒に提供される再生タイミング情報は、オーディオ情報チャネルデバイス23によって以下に述べるようにさまざまなデバイス21および22(g)に提供されるクロックタイミング情報とともに、同期グループ20のマスターデバイス21およびスレーブデバイス22(g)がオーディオ情報を同時に再生できるようにする。
【0023】
マスターデバイス21およびスレーブデバイス22(g)は、前記オーディオ情報チャネルデバイス23によって提供される前記オーディオおよび再生タイミング情報ならびに前記クロックタイミング情報を受け取り、前記オーディオ情報によって定義されたオーディオ番組を再生する。マスターデバイス21はまた、ユーザーインターフェースモジュール13と通信し、同期グループ20におけるスレーブデバイス22(g)の動作を制御する、同期グループ20のメンバーでもある。さらに、マスターデバイス21は、同期グループ20のためのオーディオおよび再生タイミング情報を提供するオーディオ情報チャネルデバイス23の動作を制御する。一般に、同期グループの当初のマスターデバイス21は、ユーザーがオーディオ番組を再生したいと思う最初のゾーンプレーヤー11(n)となる。しかし、下記で述べるように、マスターデバイス21として動作するゾーンプレーヤー11(n)は、あるゾーンプレーヤー11(n)から別のゾーンプレーヤー11(n′)に移行されることもできる。移行先のゾーンプレーヤー11(n′)は好ましくは当該同期グループにおいて現在スレーブデバイス22(g)として動作しているゾーンプレーヤーであろう。
【0024】
さらに、ある種の状況においては、下記で述べるように、オーディオ情報チャネルデバイス23として動作するゾーンプレーヤー11(n)があるゾーンプレーヤーから別のゾーンプレーヤーに移行されることもできる。移行先のゾーンプレーヤーはやはり好ましくは当該同期グループにおいてメンバーとして現在動作しているゾーンプレーヤーであろう。マスターデバイス21として動作するゾーンプレーヤーの別のゾーンプレーヤーへの移行は、オーディオ情報チャネルデバイス23の移行と独立して行えることは理解されるであろう。たとえば、あるゾーンプレーヤー11(n)がある同期グループ20のマスターデバイス21およびオーディオ情報チャネルデバイス23の両方として動作している場合、マスターデバイス21は別のゾーンプレーヤー11(n′)に移行され、一方でゾーンプレーヤー11(n)は引き続きオーディオ情報チャネルデバイス23として動作していることも可能である。同様に、あるゾーンプレーヤー11(n)がある同期グループ20のマスターデバイス21およびオーディオ情報チャネルデバイス23の両方として動作している場合、オーディオ情報チャネルデバイス23は別のゾーンプレーヤー11(n′)に移行され、一方でゾーンプレーヤー11(n)は引き続きマスターデバイス21として動作していることも可能である。さらに、あるゾーンプレーヤー11(n)がある同期グループ20のマスターデバイス21およびオーディオ情報チャネルデバイス23の両方として動作している場合、マスターデバイス21が別のゾーンプレーヤー11(n′)に移行され、オーディオ情報チャネルデバイス23が第三のゾーンプレーヤー11(n″)に移行されるということも可能である。
【0025】
マスターデバイス21はユーザーインターフェースモジュール13から同期グループ20を制御するための制御情報を受け取り、当該同期グループの動作状態を示す状態情報をユーザーインターフェースモジュール13に提供する。一般に、ユーザーインターフェースモジュール13からの制御情報は、マスターデバイス21が今度はオーディオ情報チャネルデバイス23がオーディオおよび再生タイミング情報を当該同期グループに提供できるようにして、それによって当該同期グループ20のメンバーであるデバイス21および22(g)がオーディオ番組を同期的に再生できるようにする。さらに、ユーザーインターフェースモジュール13からの制御情報は、マスターデバイス21が今度は他のゾーンプレーヤーが当該同期グループにスレーブデバイス22(g)として加入できるようにし、またスレーブデバイス22(g)が当該同期グループから離脱できるようにする。ユーザーインターフェースモジュール13からの制御情報はまた、現在マスターデバイス21として動作しているゾーンプレーヤー11(n)が当該同期グループから離脱することを可能にすることができる。ただしそうする前に、そのゾーンプレーヤーはマスターデバイス21がそのゾーンプレーヤー11(n)から別のゾーンプレーヤー11(n′)、好ましくは同期グループ20における現在もスレーブデバイス22(g)であるゾーンプレーヤー11(n′)に移転することを可能にすることになる。ユーザーインターフェースモジュール13からの制御情報はまた、マスターデバイス21が再生ボリュームを調整することを可能にしたり、さまざまなスレーブデバイス22(g)の個々のものがその再生ボリュームを調整することを可能にしたりすることができる。さらに、ユーザーインターフェースモジュール13からの制御情報は同期グループ20が、オーディオ番組の現在のトラックの再生を打ち切って次のトラックに飛んだり、同期グループ20によって再生されるべきオーディオ番組を定義するトラックの再生リストにおいてトラックを並べ替えたりすることができるようにすることができる。
【0026】
マスターデバイス21がユーザーインターフェースモジュール13に提供しうる状態情報としては、現在再生されているオーディオ作品のトラックについての名前またはその他の識別子、現在マスターデバイス21として動作しているゾーンプレーヤー11(n)の識別子および現在スレーブデバイス22(g)として動作しているゾーンプレーヤーの識別子のような情報が含まれうる。ある実施形態では、ユーザーインターフェースモジュール13は、前記状態情報をユーザーに表示できるディスプレイ(別個の要素として図示してはいない)を含む。
【0027】
ある同期グループについてのオーディオ情報チャネルデバイス23として動作しているゾーンプレーヤー11(n)が別の同期グループにおいてマスターデバイス21またはスレーブデバイス22(g)のいずれかをなしていてもよいことは理解されるであろう。これは、たとえばある同期グループによって再生されるべきオーディオ情報を提供するべきオーディオ情報ソースが、前記他の同期グループのためのマスターデバイスまたはスレーブデバイスとしても利用されているゾーンプレーヤーに接続されている場合に起こりうる。これは図2Aとの関連でのちに概略的に例示する。上述したように同期グループ20のためのオーディオ情報チャネルデバイス23として動作しているゾーンプレーヤー11(n)は別の同期グループのためのマスターデバイス21またはスレーブデバイス22(g)としても動作していることがありうるので、それはまた一つまたは複数のオーディオ再生デバイス15(n)(r)にも接続されていることができる。ただし、そのことは図2には示されていない。マスターデバイス21およびスレーブデバイス22(g)はみなオーディオ番組の再生を提供することになっているから、それらはそれぞれのオーディオ再生デバイ15(n)(r)に接続されることになる。さらに、同期グループ20においてマスターデバイス21またはスレーブデバイス22(g)として動作するゾーンプレーヤー11(n)の一つまたは複数がその同期グループのため、あるいは別の同期グループのためのオーディオ情報チャネルデバイスとしても動作しうるものであり、よってそれらは一つまたは複数のオーディオ情報ソース14(n)(s)に接続されうることは理解されるであろう。ただし、このことも図2には示していない。さらに、ゾーンプレーヤー11(n)が複数の同期グループのためのオーディオ情報チャネルデバイス23として動作することもできることは理解されるであろう。
【0028】
オーディオ情報チャネルデバイス23がマスターデバイス21と同じゾーンプレーヤーを利用しているのでない場合、マスターデバイス21は、ネットワーク12を通じてオーディオ情報チャネルデバイス23と制御情報を交換することによって該オーディオ情報チャネルデバイス23を制御する。制御情報は図2ではCHAN_DEV_CTRL_INFOと記された矢印によって表されている。マスターデバイス21がオーディオ情報チャネルデバイス23に提供する制御情報は一般には、再生されるべきオーディオ番組のためのオーディオ情報を提供すべきオーディオ情報ソースの性質と当該制御情報によって可能にされるべき動作とに依存することになる。たとえば、オーディオ情報ソースがゾーンプレーヤー11(n)に接続されている従来式のコンパクトディスク、テープまたはレコードプレーヤー、放送ラジオ受信機などである場合、マスターデバイス21は単に、オーディオ情報チャネルデバイス23の役割をしているゾーンプレーヤーが前記オーディオ情報ソースから番組のためのオーディオ情報を受信できるようにするだけでよい。オーディオ情報がデジタル形式でなかったらオーディオ情報チャネルデバイス23がそれをデジタル形式に変形し、デジタル化されたオーディオ情報を再生タイミング情報とともにマスターデバイス21およびスレーブデバイス22(g)に提供することになることは理解されるであろう。
【0029】
他方、前記オーディオ情報源がたとえばパソコンまたは同様の装置などのデジタルデータ記憶装置である場合には、マスターデバイス21は、オーディオ番組のためのオーディオ情報を含んでいる一つまたは複数のファイルを同定する再生リストをオーディオ情報チャネルデバイス23に提供することができる。その場合、オーディオ情報チャネルデバイス23はファイルを前記デジタルデータ記憶装置から取得し、それを再生タイミング情報とともにマスターデバイス21およびスレーブデバイス22(g)に提供することができる。この場合、オーディオ情報ソースはオーディオ情報ソース14(n)(s)などのようにオーディオ情報チャネルデバイス23に直接接続されていてもよいし、あるいはネットワーク12に接続されたオーディオ情報ソース16(m)であってもよいことは理解されるであろう。さらなる代替として、オーディオ情報ソースが広域ネットワークを通じて利用可能なソースである場合、マスターデバイス21は再生されるべきオーディオ番組のためのオーディオ情報を含むファイルを同定するウェブアドレスのリストを含む再生リストを提供することができ、この関連ではオーディオ情報チャネルデバイス23は広域ネットワークを通じて前記ファイルの取得を開始できる。さらにもう一つの代替としては、オーディオ情報ソースが広域ネットワークを通じて受信されるストリーミングオーディオのソースである場合、マスターデバイス21は該ストリーミングオーディオを受信できるネットワークアドレスを提供することができる。マスターデバイス21がオーディオ情報チャネルデバイス23を制御できるその他の構成は当業者には明らかであろう。
【0030】
マスターデバイス21はまた、あるゾーンプレーヤー11(n)から別のゾーンプレーヤー11(n′)への移行を可能にするために当該同期グループのオーディオ情報チャネルデバイス23に制御情報を提供することもできる。これはたとえば、オーディオ情報ソースがオーディオ情報ソース16のうちの一つまたはネットワーク12経由で広域ネットワークを通じて利用可能なソースである場合に起こりうる。マスターデバイス21がオーディオ情報チャネルデバイス23の移行を可能にすることができるのにはいくつかの理由がある。たとえば、ネットワーク12におけるメッセージ送信の遅延を改善するためにゾーンプレーヤー11(n)の負荷を軽減することもその一つであるが、その他の理由は当業者には理解されることであろう。
【0031】
上述したように、オーディオ情報チャネルデバイス23は、マスターデバイス21およびスレーブデバイス22(g)がオーディオ番組を同期的に再生できるようにするために同期グループのためのオーディオおよび再生タイミング情報を提供する。オーディオおよび再生タイミング情報の詳細については図3および図4との関連でのちに詳細に述べるが、簡潔に言うと、オーディオ情報チャネルデバイス23は前記オーディオおよび再生タイミング情報をメッセージの形でネットワーク12を通じて、マルチキャストメッセージ送信手法を使って送信する。その手法では、オーディオ情報チャネルデバイス23は前記オーディオおよび再生タイミング情報を一連のメッセージの形で送信することになり、各メッセージは同期グループ20をなす全ゾーンプレーヤー11(n)によって、すなわち、マスターデバイス21およびスレーブデバイス22(g)によって受信される。各メッセージはマルチキャストアドレスを含んでいる。マスターデバイス21およびスレーブデバイス22(g)はこのマルチキャストアドレスを監視していて、当該アドレスをもつメッセージを検出したら該メッセージの内容を受信して使用することになるのである。オーディオおよび再生タイミング情報は図2においてAUD+PBTIME_INFOと記された矢印によって表されている。これは根本は一つでオーディオ情報チャネルデバイス23にある情報ソースを表しており、当該情報の行き先を表す先端は複数あって、先端の一つはマスターデバイス21に伸び、他の先端は同期グループ20内のスレーブデバイス22(g)のそれぞれまで伸びている。オーディオ情報チャネルデバイス23がオーディオおよび再生タイミング情報を同期グループ20に送信する際においては、いかなる好適なマルチキャストメッセージ送信手法を利用してもよい。のちに図4との関連で詳細に述べるが、オーディオおよび再生タイミング情報は一連のフレームの形をしており、各フレームがタイムスタンプを有している。タイムスタンプは、当該フレームが再生されるべき時刻を、オーディオ情報チャネルデバイス23によって維持されているクロックによって示される時間に関して示す。選択したマルチキャストメッセージ送信手法において使用されるメッセージの一通りまたは複数のサイズおよびフレームの一通りまたは複数のサイズに依存して、メッセージは単一のフレームのみ含むこともあれば、複数のフレームを含むこともあり、あるいは一つのフレームがいくつかのメッセージにまたがることもある。
【0032】
オーディオ情報チャネルデバイス23はまた、クロック時間情報をマスターデバイス21およびスレーブデバイス22(g)のそれぞれにネットワーク12を通じて個別に、高度に精密なクロック時間情報送信手法を使って提供する。クロック時間情報の配送は図2ではAICD_CLK_INF(M)(マスターデバイス21に提供されるクロック時間情報の場合)およびAICD_CLK_INF(S)からAICD_CLK_INF(S)(スレーブデバイス22(g)に提供されるオーディオ情報チャネルデバイス・クロック情報の場合)と記された矢印によって表されている。ある実施形態では、マスターデバイス21およびスレーブデバイス22(g)は、オーディオ情報チャネルデバイス23から現在のクロック時計情報を取得するためによく知られたSNTP(Simple Network Time Protocol)を利用する。SNTPはユニキャストメッセージ転送手法を利用するが、これはオーディオ情報チャネルデバイス23のような一つのデバイスがマスターデバイス21またはスレーブデバイス22(g)のような特定の他のデバイスに対して該他のデバイスのネットワークアドレスまたはユニキャストアドレスを使ってクロック時間情報を提供するものである。マスターデバイス21およびスレーブデバイス22(g)のそれぞれは、オーディオ情報チャネルデバイス23からクロック時間情報を取得するために、オーディオ情報チャネルデバイス23と定期的にSNTPトランザクションを開始する。のちにより詳細に述べるように、マスタークロックおよび各スレーブデバイス22(g)は、クロック時間情報を利用して、オーディオ情報チャネルデバイスのクロックによって示される時刻と各自のクロックによって示される時刻との間の時間差を決定し、その時間差の値をオーディオ情報と関連付けられた再生時刻情報および各デバイスのクロックによって示される各デバイスのローカル時間とともに利用して、さまざまなフレームが再生されるべき時刻を決定することができる。これにより同期グループ20におけるマスターデバイス21およびスレーブデバイス22(g)が各フレームを同時に再生することが可能になる。
【0033】
上述したように、ユーザーがユーザーインターフェースモジュール13を通じてマスターデバイス21に与える制御情報はまた、マスターデバイス21が今度は別のゾーンプレーヤー11(n′)が新たなスレーブデバイス22(g)として当該同期グループに加われるようにすることを可能にすることができる。その動作において、ユーザーインターフェースモジュール13は、同期グループに加わるべきゾーンプレーヤー11(n′)の識別情報を含む制御情報をマスターデバイス21に提供する。マスターデバイス21は、当該同期グループに加わるべきゾーンプレーヤー11(n′)の識別情報を受け取ったのち、図2ではSLV_DEV_CTRL_INF(S)からSLV_DEV_CTRL_INF(S)と記された矢印によって表されている制御情報すなわちグループスレーブ制御情報をネットワーク12を通じてユーザーインターフェースモジュール13からの制御情報で同定されているゾーンプレーヤー11(n′)と交換する。マスターデバイス21が新たなゾーンプレーヤー11(n′)に提供する制御情報は、当該同期グループのためのオーディオ情報チャネルデバイス23として動作しているゾーンプレーヤー11(n)のネットワークアドレスならびに該オーディオ情報チャネルデバイス23がオーディオおよび再生タイミング情報をネットワークを通じてブロードキャストするのに使っているマルチキャストアドレスを含む。新たなスレーブデバイス22(g′)として動作することになっているゾーンプレーヤーは、前記マルチキャストアドレスを使って、当該同期グループによって再生されているオーディオ番組のためのオーディオ情報を含むマルチキャストメッセージの受信を開始する。
【0034】
当該同期グループのためのマスターデバイス21として動作しているゾーンプレーヤー11(n)がまたオーディオ情報チャネルデバイス23としても動作している場合、そして当該同期グループ20内にスレーブデバイス22(g)がない場合、オーディオ情報チャネルデバイス23はネットワークを通じてオーディオおよび再生タイミング情報を送信していなくてもよい。その場合、もし前記新たなスレーブデバイス22(g′)がその同期グループにおける最初のスレーブデバイスである場合、マスターデバイス21およびオーディオ情報チャネルデバイス23の両方として動作しているゾーンプレーヤー11(n)は、そのスレーブデバイス22(g′)が同期グループ20に追加されたときにネットワーク12を通じてオーディオおよび再生タイミング情報の送信を開始すればよい。ゾーンプレーヤー11(n)は同期グループ20にスレーブデバイス22(g)が加わったり離脱したりする都度スレーブデバイス22(g)の数を追跡することができ、その数が0にまで下がったらネットワーク12上のメッセージトラフィック軽減のためネットワーク12を通じてオーディオおよび再生タイミング情報を送信するのを停止することができる。
【0035】
同期グループ20に追加された前記新たなスレーブデバイス22(g′)はオーディオ情報チャネルデバイス23のネットワークアドレスをいくつかの目的のために利用する。具体的には、前記新たなスレーブデバイス22(g′)は、マスターデバイス21と同様(マスターデバイス21として動作しているゾーンプレーヤー11(n)がオーディオ情報チャネルデバイス23を兼ねてはいないとして)、オーディオ情報チャネルデバイス23とのSNTPトランザクションにも携わってオーディオ情報チャネルデバイス23からクロックタイミング情報を取得することになる。さらに、新たなスレーブデバイス22(g′)はオーディオ情報チャネルデバイス23に対して自分が同期グループ20の新たなスレーブデバイス22(g′)であることを通知し、オーディオ情報チャネルデバイス23に自分のネットワークアドレスを与える。のちに述べるように、ある実施形態では、特に再生レートより速いレートでオーディオ情報を提供できるデジタルデータ記憶装置のようなソースから得られるオーディオ情報との関連では、オーディオ情報チャネルデバイス23はオーディオおよび再生タイミング情報をバッファリングして、それをソースによって提供されるのと概略同じレートで、ネットワーク12を通じて同期グループ20にブロードキャストすることになる。したがって、新たなスレーブデバイス22(g′)が同期グループ20に加わるとき、再生タイミング情報が示す、マルチキャスト手法を使ってオーディオ情報チャネルデバイス23によって現在ブロードキャストされているオーディオ情報が再生されるべき時間が将来のいつかであることもある。新たなスレーブデバイス22(g′)が再生を開始するまでの遅延を減らすため、オーディオ情報チャネルデバイス23はまた、バッファリングしておいた以前に送信されたオーディオおよび再生タイミング情報を、新たなスレーブデバイス22(g′)に対して該スレーブデバイス22(g′)のユニキャストネットワークアドレスを使って再送信することもできる。
【0036】
マスターデバイス21はまた、スレーブデバイス22(g)との間で交換されたスレーブデバイス制御情報を他の目的のために使うこともできる。たとえば、マスターデバイス21は、スレーブデバイス制御情報を、ゾーンプレーヤー11(n)から別のゾーンプレーヤー11(n′)へのマスターの移行を開始するために使うことができる。これが行われる理由はいくつかあるが、そのいずれのためであってもよい。たとえば、マスターデバイス21が自身によるオーディオプログラムの再生を打ち切って同期グループ20を離脱しようとしていて同期グループ内の他のデバイスのうちの一つまたは複数がそのオーディオ番組の再生を継続することになっているというような場合が含まれる。マスターデバイス21はまた、負荷が過剰である場合に移行を開始したくなることもある。これはたとえば、その同期グループのマスターデバイス21であるゾーンプレーヤー11(n)が別の同期グループのオーディオ情報チャネルデバイス23としても動作している場合に起こりうる。
【0037】
ユーザーは、ユーザーインターフェースモジュール13を使って、当該同期グループをなす個々のゾーンプレーヤー11(n)による再生ボリュームを調整することもできる。その動作においては、ユーザーインターフェースモジュール13は、ボリュームを調整すべき特定のデバイスを同定する情報と、設定されるべきボリュームのレベルとをマスターデバイス21に提供する。ボリュームを調整すべきデバイスがマスターデバイス21である場合、マスターデバイス21はユーザーインターフェースモジュール13から受け取る情報に従ってそのボリュームを調整できる。他方、ボリュームを調整すべきデバイスがスレーブデバイス22(g′)である場合、マスターデバイス21は各スレーブデバイス22(g′)にグループスレーブ制御情報を提供することによって、各スレーブデバイス22(g′)が自らのボリュームを調整できるようにすることができる。
【0038】
ユーザーは、ユーザーインターフェースモジュール13を使って、同期グループ20がオーディオ番組中の現在再生されているトラックの再生を中止して次のトラックにすぐ進めるようにすることもできる。これはたとえば、前記番組のためのトラックが一連のデジタルオーディオ情報ファイルの形であり、ユーザーがファイルの一つによって定義されるトラックの再生を中止したい場合に起こりうる。その場合、マスターデバイス21は、現在のトラックの再生を中止するコマンドを受け取ると、オーディオ情報チャネルデバイス23に対してその旨を示すチャネルデバイス制御情報を与える。それに反応して、オーディオ情報チャネルデバイス23はオーディオおよび再生タイミング情報に制御情報を挿入する。この制御情報は「再同期」コマンドと呼ぶことにする。さらに、オーディオ情報チャネルデバイス23は次のトラックのオーディオ情報をタイミング情報とともに送信することを開始し、それにより前記トラックがすぐ再生できるようにする。前記再同期コマンドはまた、トラックの再生を再生前に取り消すこともできる。これらの動作の詳細についてはのちに述べる。
【0039】
上述したように、ネットワークオーディオシステム10内には複数の同期グループがあることもあり、さらに、一つのゾーンプレーヤー11(n)が、たとえば、ある同期グループにおいてマスターデバイス21またはスレーブデバイス22(g)として動作するのと同時に、別の同期グループのためにオーディオおよび再生タイミング情報ならびにクロックタイミング情報を提供するオーディオ情報チャネルデバイス23としても動作するということがありうる。この例示的な構成を図2Aとの関連で述べる。図2Aを参照すると、これは参照符号20(1)および20(2)によって同定される二つの同期グループの要素を描いている。明確のため、図2Aはいくつかの要素は示していないが、それらの存在は上で記載した図1および図2から明らかであろう。たとえば、図2Aでは、図1および図2に描かれていた、同期グループのためにオーディオ情報が取得されるもとになるオーディオ情報ソースや、マスターデバイスおよびスレーブデバイスのために音を生成するのに使われるオーディオ再生デバイスは描かれていない。さらに、図2Aでは、図2に描かれていた、それぞれのマスターデバイスからそれぞれの同期グループ内のスレーブデバイスに、あるいはそれぞれの同期グループのためのオーディオおよび再生タイミング情報を与えるオーディオ情報チャネルデバイスに与えられる制御情報を表す矢印は描かれていない。さらに、図2Aは、やはり図2に描かれていた、それぞれの同期グループのそれぞれのメンバーにオーディオ情報チャネルデバイスによって与えられるクロックタイミング情報を表す矢印も描かれていない。その一方、下記で述べるように、図2Aでは、それぞれの同期グループ20(1)、20(2)のためのそれぞれのオーディオ情報チャネルデバイスによってそれぞれの同期グループ20(1)、20(2)をなすマスターおよびスレーブデバイスに与えられるオーディオおよび再生タイミング情報を表す矢印は描かれている。
【0040】
各同期グループ20(1)、20(2)はいくつかのゾーンプレーヤーの要素を有している。ゾーンプレーヤーの機能ブロック図はのちに図3との関連で記載する。同期グループ20(1)はマスターデバイス21(1)および「K」個のスレーブデバイス22(1)(1)から22(K)(1)を含んでおり(参照符号21(1)の添え字「1」および参照符号22(1)(1)から22(K)(1)の最後の添え字はそれらが帰属する同期グループ20(1)の添え字に対応している)、これらはそれぞれゾーンプレーヤー11(1)から11(K+1)を利用する。同様に、同期グループ20(2)はマスターデバイス21(2)および「L」個のスレーブデバイス22(1)(2)から22(L)(2)を含んでおり、これらはゾーンプレーヤー11(K+2)から11(K+L+2)を利用する。図2Aに示した例示的な構成では、両同期グループ20(1)および20(2)はユーザーインターフェースモジュール13によって制御される。このユーザーインターフェースモジュール13がマスターデバイス21(1)および21(2)の両者に独立に制御情報を与え、両者から状態情報を受け取ることができる。それぞれのマスターデバイス21(1)、21(2)に制御情報を与え、それぞれから状態情報を受け取るために別個のユーザーインターフェースモジュールを設けてもよいことは理解されるであろう。
【0041】
上述したように、ゾーンプレーヤー11(K+3)は同期グループ20(2)のスレーブデバイス22(1)(2)が利用している。図2Aに示した例示的な構成では、ゾーンプレーヤー11(K+3)を利用するものとしては、同期グループ20(1)のマスターおよびスレーブデバイス21(1)、22(1)(1)、…、22(K)(1)にオーディオおよび再生タイミング情報を提供するオーディオ情報チャネルデバイス23(1)もある。上述したように、このことは、たとえば、同期グループ20(1)によって再生されるべきオーディオ情報を提供すべきオーディオ情報ソースがゾーンプレーヤー11(K+3)に接続されているときに起こりうる。よって、同期グループ20(1)のマスターデバイス21(1)がオーディオ情報チャネルデバイス23(1)とチャネルデバイス制御情報を交換するとき、実際上はゾーンプレーヤー11(K+3)とチャネルデバイス制御情報を交換しているのである。同様に、同期グループ20(1)のマスターおよびスレーブデバイス21(1)、22(1)(1)、…、22(K)(1)がオーディオ情報チャネルデバイス23(1)からオーディオおよび再生タイミング情報をクロックタイミング情報と並んで受け取るとき、実際上はそれらはゾーンプレーヤー11(K+3)から情報を受け取っているのである。図2Aは、オーディオ情報チャネルデバイス23(1)としてのゾーンプレーヤー11(K+3)によって同期グループ20(1)をなすマスターおよびスレーブデバイス21(1)、22(1)(1)、…22(K)(1)に送信されるオーディオおよび再生タイミング情報を表す多先端矢印を示している。
【0042】
他方、図2Aに示されている例示的な構成において、同期グループ20(2)はゾーンプレーヤー11(K+L+3)をそのオーディオ情報チャネルデバイス23(2)として利用している。同期グループ20(1)の場合と同様、同期グループ20(2)のマスターデバイス21(2)がチャネルデバイス制御情報をオーディオ情報チャネルデバイス23(2)と交換するとき、実際上はゾーンプレーヤー11(K+L+3)とチャネルデバイス制御情報を交換している。同様に、同期グループ20(2)のマスターおよびスレーブデバイス21(2)、22(1)(2)、…、22(L)(2)がオーディオ情報チャネルデバイス23(2)からオーディオおよび再生タイミング情報をクロックタイミング情報と並んで受け取るとき、実際上はその情報をゾーンプレーヤー11(K+L+3)から受け取っている。図2Aは、オーディオ情報チャネルデバイス23(2)としてのゾーンプレーヤー11(K+L+3)によって同期グループ20(2)をなすマスターおよびスレーブデバイス21(2)、22(1)(2)、…22(L)(2)に送信されるオーディオおよび再生タイミング情報を表す多先端矢印を示している。
【0043】
図2Aに示されている例示的な構成において、同期グループ20(2)のためのオーディオ情報チャネルデバイス23(2)であるゾーンプレーヤー11(K+L+3)は、別の同期グループのマスターデバイスやスレーブデバイスとしては示されていない。しかし、ゾーンプレーヤー11(K+L+3)が別の同期グループのためのマスターデバイスまたはスレーブデバイスとしても利用されてよいことは理解されるであろう。実際、同期グループ20(2)のためのオーディオ情報チャネルデバイスとして利用されるゾーンプレーヤーは、同期グループ20(1)においてマスターデバイス21(1)またはスレーブデバイス22(1)(1)、…、22(K)(1)として利用されるゾーンプレーヤーであってもよいことは理解されることであろう。
【0044】
ある同期グループのメンバーとして利用されるゾーンプレーヤー11(n)は、別の同期グループのためのオーディオ情報チャネルデバイスとしても利用されうる。これは、前記別の同期グループによって再生されるべきオーディオ情報を供給するべきオーディオ情報ソースがそのゾーンプレーヤー11(n)に接続されている場合である。ゾーンプレーヤー11(n)が前記別の同期グループのためのオーディオ情報チャネルデバイスとしても利用されうるのはまた、たとえば、前記オーディオ情報ソースがネットワーク12に接続されたオーディオ情報ソース16(m)(図1)またはインターネットのような広域ネットワークを通じて利用可能なオーディオ情報ソースである場合などである。この後者はたとえば、ゾーンプレーヤー11(n)がオーディオ情報チャネルデバイスとして動作するために十分な処理能力があり、前記別の同期グループ(当該ゾーンプレーヤー11(n)がオーディオ情報チャネルデバイスとして動作している同期グループ)のメンバーにオーディオおよび再生タイミング情報を提供するために前記別の同期グループをなすゾーンプレーヤーに比べてネットワーク12内で最適な位置にある場合に起こりうる。ある同期グループのメンバーとして利用されているゾーンプレーヤー11(n)が別の同期グループのためのオーディオ情報チャネルデバイスとしても利用されうるようなその他の状況は当業者には明らかであろう。
【0045】
上述したように、同期グループ20のためのマスターデバイス21はあるゾーンプレーヤー11(n)から別のゾーンプレーヤー11(n′)に移行されうる。さらに上述したように、ある同期グループ20のためのオーディオ情報チャネルデバイス23はあるゾーンプレーヤー11(n)から別のゾーンプレーヤー11(n′)に移行されうる。この後者は、たとえば、前記同期グループのためのオーディオ番組を提供するオーディオ情報ソースがオーディオ情報チャネルデバイス23として動作しているゾーンプレーヤー11(n)には接続されていないが、その代わりにネットワーク12に接続されたオーディオ情報ソース16(m)のうちの一つまたはインターネットのような広域ネットワークを通じて利用可能なソースであるような場合に起こりうることは理解されるであろう。あるゾーンプレーヤー11(n)から別のゾーンプレーヤー11(n′)へのオーディオ情報チャネルデバイス23の移行の間に実行される動作は、一般に、該オーディオ情報チャネルデバイス23によって伝えられているオーディオ情報の性質に依存することになる。たとえば、オーディオ情報ソースがストリーミングオーディオを提供する場合、現在同期グループ20のためのオーディオ情報チャネルデバイス23として動作しているゾーンプレーヤー11(n)は、その同期グループ20のためのオーディオ情報チャネルデバイス23になろうとしている前記別のゾーンプレーヤー11(n′)に以下の情報を提供することができる:
(a)ストリーミングオーディオ情報のソースの識別情報、
(b)ゾーンプレーヤー11(n)が現在形成しつつあるフレームに関連付けられたタイムスタンプ、
(c)同期グループ20をなすマスターデバイス21およびスレーブデバイス22(g)として動作するゾーンプレーヤーの識別情報。
ゾーンプレーヤー11(n′)は、ゾーンプレーヤー11(n)から前記情報を受け取ったのち、ゾーンプレーヤー11(n)によって同定されたストリーミングオーディオ情報ソースからストリーミングオーディオの受信を開始し、該ストリーミングオーディオ情報をフレームに構成し、各フレームをタイムスタンプに関連付け、結果として得られるオーディオおよび再生タイミング情報をネットワーク12を通じて送信する。ゾーンプレーヤー11(n′)は上述したのと同じ仕方でこれらの動作を実行することになる。ただし、フレームのためのタイムスタンプを生成する際に、そのデジタル‐アナログコンバータクロック34によって示される時刻を直接使うのではなく、初期タイムスタンプはゾーンプレーヤー11(n)によって提供されるタイムスタンプの値(上の項目(b)参照)に関係付けられ、タイムスタンプがインクリメントされるレートはその(すなわち、ゾーンプレーヤー11(n′)の)クロックがインクリメントされるレートに対応する。さらに、ゾーンプレーヤー11(n′)は、同期グループ20のマスターデバイス21およびスレーブデバイス22(g)として動作しているゾーンプレーヤーに対して、自らがその同期グループ20のための新しいオーディオ情報チャネルデバイス23であると通知し、オーディオおよび再生タイミング情報をマルチキャストするために使用することになるマルチキャストアドレスを、ユニキャストネットワークアドレスとともに提供する。同期グループ20のメンバーは、ゾーンプレーヤー11(n′)からそれがその同期グループ20のための新しいオーディオ情報チャネルデバイス23であることを示す通知を受け取ったのちには、ゾーンプレーヤー11(n)ではなくゾーンプレーヤー11(n′)から、ゾーンプレーヤー11(n′)によって提供されたマルチキャストアドレスを使ってオーディオおよび再生タイミング情報を受け取ることになる。さらに、そのゾーンプレーヤー11(n′)のユニキャストネットワークアドレスを使って現在の時刻情報をそこから取得することもできる。ゾーンプレーヤー11(n′)がその現在時刻を決定するのが、ゾーンプレーヤー11(n)によって与えられるタイムスタンプ(上の項目(b)参照)に対して、あるいは先述したようなSNTPプロトコルを使ってゾーンプレーヤー11(n)から受信した現在時刻情報に対してとなることは理解されるであろう。
【0046】
一般に、オーディオ情報チャネルデバイス23をあるゾーンプレーヤー11(n)から別のゾーンプレーヤー11(n′)に移行させることに関連して、オーディオ情報が一つまたは複数のオーディオ情報ファイルからのものである場合においても同様の動作を実行できる。そのような場合とは、前記オーディオ情報がネットワーク12に接続されたソース16(m)のようなソースから利用可能であるか、あるいはインターネットのような広域ネットワークを通じて利用可能なソース由来であるかする、MP3ファイルまたはWAVファイルである場合などである。ただし、オーディオ情報がファイルであるという事実を受け入れるための相違はある。この場合、同期グループ20のためのオーディオ情報チャネルデバイス23として現在動作しているゾーンプレーヤー11(n)はその同期グループ20のためのオーディオ情報チャネルデバイス23となろうとしているゾーンプレーヤー11(n′)に対して以下の情報を提供することができる:
(d)再生されるべきオーディオ情報を含んでいるオーディオ情報ファイルのリスト、
(e)ゾーンプレーヤー11(n)が現在オーディオおよび再生タイミング情報を提供しているファイルの識別情報ならびにオーディオおよび再生タイミング情報の現在の項目が生成されている当該ファイル中でのオフセットならびにゾーンプレーヤー11(n)がそのフレームと関連付けているタイムスタンプ、
(f)その同期グループ20をなすマスターデバイス21およびスレーブデバイス22(g)として動作しているゾーンプレーヤーの識別情報。
ゾーンプレーヤー11(n′)は、ゾーンプレーヤー11(n)から前記情報を受け取ったのち、項目(e)で同定されたファイルから、同定されたオフセット位置から出発してオーディオ情報の取得を開始する。さらに、ゾーンプレーヤー11(n′)は取得されたオーディオ情報をフレームに構成し、各フレームをタイムスタンプに関連付け、結果として得られるオーディオおよび再生タイミング情報をネットワーク12を通じて送信する。ゾーンプレーヤー11(n′)は上述したのと同じ仕方でこれらの動作を実行する。ただし、フレームのためのタイムスタンプを生成する際に、そのデジタル‐アナログコンバータクロック34によって示される時刻を直接使うのではなく、初期タイムスタンプの値はゾーンプレーヤー11(n)によって提供されるタイムスタンプ(上の項目(e)参照)に関係付けられ、タイムスタンプがインクリメントされるレートはその(すなわち、ゾーンプレーヤー11(n′)の)クロックがインクリメントされるレートに一致する。さらに、ゾーンプレーヤー11(n′)は、同期グループ20のマスターデバイス21およびスレーブデバイス22(g)として動作しているゾーンプレーヤーに対して、自らがその同期グループ20のための新しいオーディオ情報チャネルデバイス23であると通知し、オーディオおよび再生タイミング情報をマルチキャストするために使用することになるマルチキャストアドレスを、ユニキャストネットワークアドレスとともに提供する。同期グループ20のメンバーは、ゾーンプレーヤー11(n′)からそれが当該同期グループ20のための新しいオーディオ情報チャネルデバイス23であることを示す通知を受け取ったのちには、ゾーンプレーヤー11(n)ではなくゾーンプレーヤー11(n′)から、ゾーンプレーヤー11(n′)によって提供されたマルチキャストアドレスを使ってオーディオおよび再生タイミング情報を受け取ることになる。さらに、そのゾーンプレーヤー11(n′)のユニキャストネットワークアドレスを使って現在の時刻情報をそこから取得することもできる。ゾーンプレーヤー11(n′)がその現在時刻を決定するのが、ゾーンプレーヤー11(n)によって与えられるタイムスタンプ(上の項目(b)参照)に対して、あるいは先述したようなSNTPプロトコルを使ってゾーンプレーヤー11(n)から受信した現在時刻情報に対してとなることは理解されるであろう。ゾーンプレーヤー11(n′)はゾーンプレーヤー11(n)から受け取ったリスト(項目(d)参照)にある一連のオーディオ情報ファイルを処理する。
【0047】
オーディオ情報チャネルデバイス23の移行に関連して、上記以外の種類のオーディオ情報の場合についてゾーンプレーヤー11(n)および11(n′)によって実行される動作は当業者には明らかであろう。いずれにせよ、ゾーンプレーヤー11(n)は、ゾーンプレーヤー11(n′)に当該同期グループのためのオーディオ情報チャネルデバイスとなるべきであることを通知したのち少なくとも短時間は当該同期グループ20のためのオーディオ情報チャネルデバイス23として動作し続けることが好ましい。それによりゾーンプレーヤー11(n′)は当該同期グループ20内のゾーンプレーヤーに自分がその同期グループ20のための新しいオーディオ情報チャネルデバイス23であることを通知する時間がもてるのである。
【0048】
ネットワークオーディオシステム10によって実行される動作の記述をさらに進める前に、本発明に基づいて構築されるゾーンプレーヤー11(n)の詳細な記述を与えておくことが有用であろう。図3は、本発明に基づいて構築されたゾーンプレーヤー11(n)の機能ブロック図を示している。ネットワークオーディオシステム10内のゾーンプレーヤーのすべては同様の構成を有しうる。図3を参照すると、ゾーンプレーヤー11(n)はオーディオ情報ソースインターフェース30、オーディオ情報バッファ31、再生スケジューラ32、デジタル‐アナログコンバータ33、オーディオ増幅器35、オーディオ再生デバイスインターフェース36、ネットワーク通信マネージャ40およびネットワークインターフェース41を含んでおり、これらはみな制御モジュール42の制御のもとで動作する。ゾーンプレーヤー11(n)はまた、ゾーンプレーヤー11(n)の全般的な動作を制御するタイミング信号を提供するデバイスクロック43を有している。さらに、ゾーンプレーヤー11(n)は、ゾーンプレーヤー11(n)の動作を制御するためのユーザーインターフェースモジュール13(図1および2)から制御信号を受け取り、ユーザーインターフェースモジュール13に状態情報を提供することのできるユーザーインターフェースモジュールインターフェース44をも含んでいる。
【0049】
一般に、オーディオ情報バッファ31はオーディオ情報をデジタル形式で、再生タイミング情報とともにバッファリングする。ゾーンプレーヤー11(n)が同期グループ20のためのオーディオ情報チャネルデバイス23(図2)として動作している場合は、オーディオ情報バッファ31にバッファリングされる情報は、同期グループ20内のデバイス21および22(g)に提供されることになるオーディオおよび再生タイミング情報を含む。ゾーンプレーヤー11(n)が同期グループ20のためのマスターデバイス21またはスレーブデバイス22(g)として動作している場合には、オーディオ情報バッファ31にバッファリングされる情報は、ゾーンプレーヤー11(n)が再生すべきオーディオおよび再生タイミング情報を含むことになる。
【0050】
オーディオ情報バッファ31はオーディオおよび再生タイミング情報を二つのソースから受け取ることができる。オーディオ情報ソースインターフェース30およびネットワーク通信マネージャ40である。具体的には、ゾーンプレーヤー11(n)が同期グループ20のためのオーディオ情報チャネルデバイス23として動作していて、かつオーディオ情報ソースがゾーンプレーヤー11(n)に接続されたソース14(n)(s)である場合、オーディオ情報バッファ31はオーディオ情報ソースインターフェース30からオーディオおよび再生タイミング情報を受け取ってバッファリングする。他方、ゾーンプレーヤー11(n)が同期グループ20のためのオーディオ情報チャネルデバイス23として動作していて、かつオーディオ情報ソースがネットワーク12に接続されたソース16(m)であるか、または広域ネットワークを通じて利用可能なソースである場合、オーディオ情報バッファ31はネットワーク通信マネージャ40からオーディオおよび再生タイミング情報を受け取ってバッファリングする。ゾーンプレーヤー11(n)がこの同期グループのメンバーでない場合には当該ゾーンプレーヤー11(n)はこのバッファリングされたオーディオおよび再生タイミング情報を再生しないことは理解されるであろう。
【0051】
さらに他方で、ゾーンプレーヤー11(n)が同期グループ20内のマスターデバイス21またはスレーブデバイス22(g)として動作していて、かつゾーンプレーヤー11(n)が同期グループ20のためのオーディオおよび再生タイミング情報を提供するオーディオ情報チャネルデバイス23を兼ねてはいない場合、オーディオ情報バッファ31はネットワーク通信マネージャ40からオーディオおよび再生タイミング情報を受け取ってバッファリングする。
【0052】
オーディオ情報ソースインターフェース30は、ゾーンプレーヤー11(n)に付随するオーディオ情報ソース14(n)(s)に接続される。ゾーンプレーヤー11(n)が同期グループ20のためのオーディオ情報チャネルデバイス23として動作している間、オーディオ情報がゾーンプレーヤー11(n)に接続されたソース14(n)(s)によって提供されるべきである場合、オーディオ情報ソースインターフェース30は、当該ゾーンプレーヤーが接続されているオーディオ情報ソース14(n)(s)の一つからオーディオ情報を選択的に受け取り、そのオーディオ情報をオーディオ情報バッファ31に保存する。選択されたオーディオ情報ソース14(n)(s)からのオーディオ情報がアナログ形式であったらオーディオ情報ソースインターフェース30がそれをデジタル形式に変換する。オーディオ情報ソースインターフェース30がオーディオ情報を受け取るオーディオ情報ソース14(n)(s)の選択は制御モジュール42の制御下にあり、該制御モジュール42は今度は制御情報をユーザーインターフェースモジュールからユーザーインターフェースモジュールインターフェース44を通じて受け取る。オーディオ情報ソースインターフェース30はデジタルオーディオ情報に再生タイミング情報を加えて、組み合わされたオーディオおよび再生タイミング情報をオーディオ情報バッファ31内にバッファリングする。
【0053】
より詳細には、上述したように、オーディオ情報ソースインターフェース30はオーディオ情報をオーディオ情報ソース14(n)(s)から受け取り、それを必要ならデジタル形式に変換し、再生タイミング情報とともにオーディオ情報バッファ31にバッファリングする。さらに、オーディオ情報ソースインターフェース30はまた、前記選択されたオーディオ情報ソース14(n)(s)から受け取った形であろうとアナログのオーディオ情報ソースから変換された形であろうとデジタルオーディオ情報のためのフォーマットおよびスケジュール情報をも提供する。のちに明らかにされるように、フォーマットおよびスケジュール情報はゾーンプレーヤー11(n)自身による再生を制御するのみならず、ゾーンプレーヤー11(n)がマスターデバイスである同期グループ内にあるかもしれない他のゾーンプレーヤー11(n′)、11(n″)…が、ゾーンプレーヤー11(n)と同期して当該オーディオ情報に関連付けられたオーディオ番組を再生することをも可能にする。
【0054】
ある特定の実施形態では、オーディオ情報ソースインターフェース30は、あるオーディオ作品に対応するオーディオ情報を一連のフレームに分割して各フレームが所定の時間期間についてのデジタルオーディオ情報をなすようにする。ここでの用法では、オーディオトラックとは、中断なく再生されるべきオーディオ情報の任意の単位を含んでいることができる。他方、オーディオ番組とは、逐次的に再生されるべき一つまたは複数のオーディオトラックの系列を含んでいることができる。オーディオ番組をなす諸トラックはやはり中断なく再生されてもよいし、あるいはまたトラックとトラックとの間で再生が所定の時間間隔だけ中断されてもよい。図4は、オーディオ作品をなすデジタルオーディオストリームのための、本発明のある実施形態との関連で用いられる例示的なフレーム構成方針を概略的に示している。より詳細には、図4に示すフレーム化されたデジタルオーディオストリーム50はフレーム51(1)から51(F)の系列を含んでいる(一般に参照符号51(f)で同定される)。各フレーム51(f)は今度は、当該オーディオトラックの一連のオーディオ標本値52(f)(1)から52(f)(S)を含んでいる(一般に参照符号52(f)(s)で同定される)。好ましくは、全フレームが同じ「S」個のオーディオ標本値をもつが、これが主として便宜上のものであることは以下の記述から理解されるであろう。他方、オーディオ標本値の数が「S」とは異なることもあることは理解されるであろう。特に、フレーム51(f)がある特定のオーディオ作品のデジタルオーディオストリームのための最後のオーディオ標本値を含んでいる場合にそうなることがある。その場合、最終フレーム51(F)は、xをSより小さいとして、好ましくは標本値52(F)(1)から52(F)(x)を含んでいる。一般に、標本値の数は全フレーム51(f)の間で一貫していることが望ましく、その場合、最終フレーム51(F)には再生されないパディングを追加することができる。
【0055】
各フレーム51(f)にはヘッダ55(f)が関連付けられており、ヘッダ55(f)には各フレーム51(f)内のオーディオ標本値の再生を制御する際に有用なその他の情報を保存するためのいくつかのフィールドが含まれる。具体的には、フレーム51(f)に付随するヘッダ55(f)はフレームシーケンス番号フィールド56、エンコード種別フィールド57、サンプリングレート情報フィールド58、タイムスタンプフィールド60、トラック終了フラグ61および長さフラグフィールド62が含まれる。ヘッダ55(f)はまた再生を制御する際に有用なその他の情報を保存するためのフィールド(図示せず)を含んでいてもよい。一般に、フレームシーケンス番号フィールド56には、デジタルオーディイオストリーム50を含むフレームシーケンス51(1)…51(f)…51(F)内での当該フレーム51(f)の相対位置を同定するシーケンス番号「f」がはいる。エンコード種別フィールド57は当該デジタルオーディオストリームを生成する際に使われたエンコードおよび/または圧縮の種別を同定する値がはいる。通常のエンコードまたは圧縮方式としては、たとえばよく知られたMP3およびWAVエンコードおよび/または圧縮方式が含まれるが、他の方式を備えてもよいことは理解されるであろう。サンプリングレート情報フィールド58には、オーディオ標本値52(f)(s)のサンプリングレートを示すサンプリングレート情報がはいる。当業者には明らかであろうように、サンプリングレートはゾーンプレーヤー11(n)がフレーム内のオーディオ標本値52(f)(s)を再生すべきレートを決定し、またのちに述べるように、デジタル‐アナログコンバータクロック34の周期を決定する。
【0056】
作品終了フラグ61の状態は、フレーム51(f)が、フレーム化されたデジタルオーディオ作品50に対応するオーディオトラックの最後のデジタルオーディオ標本値を含んでいるかどうかを示す。フレーム51(f)が当該オーディオ作品のためのデジタルオーディオストリーム50の最後に対応するオーディオ標本値を含んでいなければ、作品終了フラグは空である。他方、フレーム51(f)が当該オーディオ作品のためのデジタルオーディオストリーム50の最後に対応するオーディオ標本値を含んでいる場合には、作品終了フラグ61はセットされている。さらに、最終フレーム51(F)内の有効なオーディオ標本値52(F)(s)、つまりパディングでない標本値の数は、フレーム51(f)内のオーディオ標本値のデフォルト数である「S」よりも小さいこともあるので、長さフラグフィールド62が、当該オーディオ作品50の最終フレーム51(F)内のオーディオ標本値52(F)(s)の数を同定する値を含むことになる。上述したようにフレームが一貫してS個の標本値をもつ場合、標本値52(F)(x+1)から52(F)(S)は再生されないパディング情報を含むことになる。
【0057】
タイムスタンプフィールド60は、ゾーンプレーヤー11(n)が各フレームを再生すべき時刻を同定するタイムスタンプを保存する。より詳細には、オーディオ情報バッファ31内でバッファリングされているフレーム化されたデジタルオーディオストリーム50の各フレームについて、オーディオ情報ソースインターフェース30は、デジタル‐アナログコンバータクロック34からのタイミング情報を使って、当該ゾーンプレーヤー11(n)が前記各フレームを再生すべき時刻を決定し、再生時刻を同定するタイムスタンプをタイムスタンプフィールド60に保存する。各フレームに関連付けられたタイムスタンプはのちに、デジタルオーディオストリームのうち当該フレーム内に保存されている部分をいつデジタル‐アナログコンバータ33に転送して再生を開始するべきかを決定するために、再生スケジューラ32によって使われる。逐次的なフレーム51(1)、51(2)、…、51(F)内の諸フレームに関連付けられているタイムスタンプは、前記諸フレームが順序立って、デジタルオーディオストリーム50をなす相続くフレームの間の中断なしに再生されるような値になっていることは理解されるであろう。さらに、デジタルオーディオストリーム50の最初のフレームについての、フレーム51(1)に保存されているタイムスタンプが決定されたのちは、オーディオ情報ソースインターフェース30が、後続のフレーム51(2)、51(3)、…、51(F)についてのタイムスタンプを、各フレーム内の標本値の数Sとサンプリングレートとの関係で決定できることは理解されるであろう。タイムスタンプはまた、諸フレームがオーディオ情報バッファ31内にバッファリングされたのち、何がしかのわずかな時間遅延ののちに再生されるような値となることが好ましい。この時間遅延の目的はのちに明らかにされる。
【0058】
図3に戻ると、デジタルオーディオ情報をフレームに分割することに加えて、オーディオ情報ソースインターフェース30はまた、フレーム51(f)をまとめたりおよび/または必要に応じてネットワークを通じた送信のためのメッセージに収まる長さのパケットに分けたりし、各パケットにパケットシーケンス番号を割り当てる。たとえば、あるパケットが複数のフレーム51(f)、51(f+1)、…、51(f+y−1)を収容する場合、オーディオ情報ソースインターフェース30はそれらのフレームをまとめてパケットにし、それらにパケット番号、たとえばp(x)を割り当てる。フレーム51(f)から51(f+y−1)が半端なしにパケットp(x)に収容された場合(xはパケットシーケンス番号)――パケットのサイズがちょうどフレームサイズの整数倍の場合にそうなる――、次のパケットp(x+1)はフレーム51(f+y)で始まり、フレーム51(f+y)、…、51(f+2y−1)を含むことになる。他方、パケット長がフレームサイズのちょうど整数倍とならない場合には、パケット中の最後のフレームは次のパケットの先頭に続けられる。
【0059】
オーディオ情報ソースインターフェース30がトラック境界を認識する場合――トラックがファイルに分けられている場合にそのようなことがある――、パケットはトラック境界を反映する、すなわち、一つのパケットには二つのトラックからのフレームは含まれない。よって、あるトラックの最後の部分のフレームが一つのパケットを埋めるのに十分でない場合、そのパケットは、前記トラックの最終フレームからそのパケットの終わりまでパディングを含むことになり、次のパケットは次のトラックの最初のフレームから始まることになる。
【0060】
ある実施例では、オーディオ情報ソースインターフェース30はリングバッファ内のオーディオ情報バッファ31内にパケットを保存する。通常行われているように、リングバッファはバッファ内に一連の記憶位置を含む。各エントリーは1パケットを保存するのに十分である。リングバッファに関連しては4つのポインタが使用される。リングバッファの先頭を指す第一のポインタ、リングバッファの末尾を指す第二のポインタ、パケットが書き込まれることになるエントリーを指す第三の「書き込み」ポインタ、そして再生における使用のためにパケットが読み出されるエントリーを指す第四の「読み出し」ポインタである。リングバッファから再生のためのパケットが読み出されるとき、そのパケットは読み出しポインタによって指されるエントリーから読み出される。パケットが読み出されたのち、読み出しポインタは進められる。読み出しポインタが指すのが末尾ポインタによって示されるリングバッファの末尾を超える場合には、リセットされて先頭ポインタによって指されるエントリーを指すようになる。この動作は繰り返されることができる。
【0061】
他方、オーディオ情報ソースインターフェース30がリングバッファ内にパケットを保存するときには、まず、書き込みポインタによって指されているエントリーが読み出しポインタによって指されているエントリーと同じエントリーであるかどうかを判別する。書き込みポインタが読み出しポインタによって指されているのと同じエントリーを指している場合、そのエントリーは再生のためにまだ読み出されていないパケットの少なくとも一部分を含んでおり、オーディオ情報ソースインターフェース30はそのパケット全体が読み出されて読み出しポインタが進められるまでパケットの保存を遅らせる。読み出しポインタが進められたのち、オーディオ情報ソースインターフェース30は当該パケットを書き込みポインタによって指されているエントリー内に保存できる。当該パケットが保存されたのち、オーディオ情報ソースインターフェース30は書き込みポインタを進める。書き込みポインタが指すのが末尾ポインタによって示されるリングバッファの末尾を超える場合には、リセットされて先頭ポインタによって指されるエントリーを指すようになる。この動作は繰り返されることができる。
【0062】
上述したように、ゾーンプレーヤー11(n)は、所属している当該同期グループ20のオーディオ情報チャネルデバイス23および一メンバーの両方として動作することができる。その場合、オーディオ情報バッファ31は一つのリングバッファを含めばよい。他方、ゾーンプレーヤー11(n)はある同期グループ20(1)(図2A)のためのオーディオ情報チャネルデバイス23および別の同期グループ20(2)の一メンバーとして動作することもできる。その場合、オーディオ情報バッファ31は二つのリングバッファを維持することになる。一つは同期グループ20(1)に関連付けられたオーディオおよび再生タイミング情報のためのもの、もう一つは同期グループ20(2)に関連付けられたオーディオおよび再生タイミング情報のためのものである。後者の場合、ゾーンプレーヤー11(n)が再生のために使うオーディオおよび再生タイミング情報は同期グループ20(2)に関連付けられたものだけであることは理解されるであろう。
【0063】
再生スケジューラ32は、ゾーンプレーヤー11(n)によって再生されるべき、オーディオ情報バッファ31にバッファリングされているオーディオ情報の再生をスケジュールする。したがって、再生スケジューラ32の制御のもとで、ゾーンプレーヤー11(n)によって再生されるべき、オーディオ情報バッファ31にバッファリングされているデジタルオーディオ情報は、再生のためにデジタル‐アナログコンバータ33に転送される。上述したように、ゾーンプレーヤー11(n)が自分がメンバーでない同期グループ20のためのオーディオ情報チャネルデバイス23として動作している場合、再生スケジューラ32はその同期グループ20によって再生されるべきデジタルオーディオ情報については再生のためのスケジュールをしない。再生スケジューラ32がデジタルオーディオ情報のスケジュールをするとしたら、それは該デジタルオーディオ情報が、当該ゾーンプレーヤー11(n)がマスターデバイス21であろうとスレーブデバイス22(g)であろうとメンバーである同期グループに関連付けられたオーディオ情報バッファ31にバッファリングされている場合のみである。
【0064】
本質的に、再生スケジューラ32は、ゾーンプレーヤー11(n)によって再生されるべきオーディオおよび再生タイミング情報を含む循環バッファに付随する読み出しポインタを利用する。再生スケジューラ32は読み出しポインタによって指されるリングバッファのエントリーからパケット情報を取得し、次いで上述したように読み出しポインタを進める。再生スケジューラ32はパケット中のフレームの境界を判別し、各フレーム51(f)に付随するタイムスタンプフィールド60内のタイムスタンプを、ゾーンプレーヤー11(n)のデジタル‐アナログコンバータクロック34によって与えられるタイミング情報とともに使用して、各フレームがいつデジタル‐アナログコンバータ33に転送されるべきかを決定する。概して、バッファリングされたデジタルオーディオ情報フレームに関連付けられたタイムスタンプがデジタル‐アナログコンバータクロック34によって示される現在時刻に一致したときに、再生スケジューラ32は当該フレームがデジタル‐アナログコンバータ33に転送されるようにする。
【0065】
やはりデジタル‐アナログコンバータクロック34の制御下にあるデジタル‐アナログコンバータ33は、バッファリングされているデジタルオーディオ情報をアナログ形式に変換し、そのアナログオーディオ情報をオーディオ増幅器35に増幅のために提供する。増幅されたアナログ情報は今度はオーディオ再生デバイスインターフェース36を通じてオーディオ再生デバイス15(n)(r)に与えられる。オーディオ再生デバイス15(n)(r)はアナログオーディオ情報信号を音に変換し、それによりオーディオ番組を聴取者に提供する。オーディオ増幅器35がアナログ信号を増幅する程度は、制御モジュール42によって、ユーザーインターフェースモジュール13を通じてユーザーが与えたボリューム制御情報に従って制御される。
【0066】
ネットワーク通信マネージャ40はネットワーク12を通じたネットワーク通信を制御し、ネットワークインターフェース41はネットワーク12を通じてメッセージパケットを送受信する。ネットワーク通信マネージャ40は図2との関連で上記したさまざまな種類の情報の転送を助けるためのメッセージを送受信する。そうした情報には、チャネルデバイス制御情報、スレーブデバイス制御情報、オーディオおよび再生タイミング情報ならびにオーディオ情報チャネルデバイスのクロックタイミング情報が含まれる。チャネルデバイス制御情報およびスレーブデバイス制御情報に関連しては、ネットワーク通信マネージャ40は、制御モジュール42からの制御情報に反応してネットワーク12上で転送するためのメッセージを生成する。同様に、ネットワーク通信マネージャ40がチャネルデバイス制御情報およびスレーブデバイス制御情報を受け取ったときには、ネットワーク通信マネージャ40は処理のために制御モジュール42にその情報を提供する。
【0067】
オーディオ情報チャネルデバイスのクロックタイミング情報に関しては、上述したように、同期グループ20のマスターデバイス21およびスレーブデバイス22(g)はよく知られたSNTPを使ってオーディオ情報チャネルデバイス23からクロックタイミング情報を取得する。ゾーンプレーヤー11(n)は、ある同期グループのためのオーディオ情報チャネルデバイス23として動作している場合、SNTP動作の間、その現在時刻、特にデジタル‐アナログコンバータクロック34によって示される現在時刻を提供する。他方、ゾーンプレーヤー11(n)が同期グループ20のマスターデバイス21またはスレーブデバイス22(g)として動作している場合には、オーディオ情報チャネルデバイス23からクロックタイミング情報を受け取ることになる。各デバイス21、22(g)は、オーディオ情報チャネルデバイスのクロックタイミング情報を取得したのち、自分のデジタル‐アナログコンバータクロック34によって示される時刻Tとオーディオ情報チャネルデバイス23からの現在時刻情報とのずれを表す時間差の値ΔTを生成する。この時間差の値を使って、オーディオ情報チャネルデバイスから受け取ったデジタルオーディオストリーム50(図4)の諸フレームのためのタイムスタンプが更新される。
【0068】
オーディオおよび再生タイミング情報に関し、ネットワーク通信マネージャ40が実行する動作は:
(i)オーディオおよび再生タイミング情報が、オーディオ情報チャネルデバイス23としてネットワーク12を通じての同期グループのマスターデバイス21および/またはスレーブデバイス22(g)への送信のためにオーディオ情報バッファ31にバッファリングされていたか、あるいは、
(ii)オーディオおよび再生タイミング情報が、同期グループのためのマスターデバイス21かまたは同期グループ内のスレーブデバイスのいずれかとしてのゾーンプレーヤー11(n)によって再生されるべくネットワーク12から受け取られたものか、
に依存する。ゾーンプレーヤー11(n)は自分がメンバーでない同期グループ20(1)(図2A参照)のためのオーディオ情報チャネルデバイス23(1)と、別のゾーンプレーヤー11(n′)がオーディオ情報チャネルデバイス23(1)である別の同期グループ20(2)の一メンバーとの両方として動作しうるので、ネットワーク通信マネージャ40が(i)および(ii)の両方に同時的に携わりうることは理解されるであろう。上記の項(i)を参照すると、送信されるべきパケットが各リングバッファにバッファリングされたのち、ネットワーク通信マネージャ40はそのパケットを取得し、それをメッセージに詰め込み、ネットワークインターフェース41をして該メッセージをネットワーク12を通じて送信できるようにする。制御モジュール42がユーザーインターフェースモジュール13から(マスターデバイス21が同期グループ20のためのオーディオ情報チャネルデバイス23でもある場合)、あるいはマスターデバイスから(マスターデバイス21が当該同期グループ20のためのオーディオ情報チャネルデバイス23でない場合)上述したような「再同期」コマンドの送信を求める制御情報を取得した場合、オーディオ情報チャネルデバイス23の制御モジュール42によってネットワーク通信マネージャ40は前記コマンドをオーディオおよび再生タイミング情報を含んでいるメッセージ中に挿入できるようになる。「再同期」コマンドに関連して実行される動作の詳細はのちに述べる。上述したように、「再同期」コマンドが使われるのは、ユーザーが同期グループに、現在再生されているトラックの再生を打ち切らせるか、あるいはまだ再生が始まっていないトラックの再生を取り消させる場合がある。
【0069】
他方、上の項(ii)を参照すると、ネットワークインターフェース41が、ゾーンプレーヤー11(n)が同期グループ20のためのマスターデバイス21またはスレーブデバイスとして再生するべきオーディオおよび再生タイミング情報の諸フレームを含んでいるパケットを含んでいるメッセージを受信した場合、ネットワークインターフェース41は前記オーディオおよび再生タイミング情報をネットワーク通信マネージャ40に提供する。ネットワーク通信マネージャ40は当該パケットが再同期コマンドを含んでいるかどうかを判別し、含んでいれば制御モジュール42に通知し、該制御モジュール42がのちに述べる諸動作を実行させる。いずれの場合でも、ネットワーク通信マネージャ40は通常、オーディオおよび再生タイミング情報を有するさまざまなフレームをオーディオ情報バッファ31にバッファリングし、その動作においては一般に、オーディオ情報ソースインターフェース30との関連で上述したように動作する。しかし、フレームをバッファリングする前に、ネットワーク通信マネージャ40は上記した時間差の値を使ってそれらのタイムスタンプを更新する。ネットワーク通信マネージャ40が、パケットを含むメッセージが上述したようなマルチキャストメッセージであろうとユニキャストメッセージであろうと同様の動作を実行することは理解されるであろう。
【0070】
同期グループ20内のマスターデバイス21およびスレーブデバイス22(g)によるタイムスタンプの更新によって、それらのデバイスがみなオーディオ情報を同期的に再生することが保証される。具体的には、ネットワーク通信マネージャ40は、ネットワークインターフェース41からフレーム51(f)を受け取ったのち、デジタル‐アナログコンバータクロック34からゾーンプレーヤー11(n)のデジタル‐アナログコンバータクロック34によって示される現在時刻をも取得する。ネットワーク通信マネージャ40はスレーブデバイスのデジタル‐アナログコンバータクロック34によって示される該スレーブデバイスの現在クロック時刻と、オーディオ情報チャネルデバイス23のクロックタイミング情報によって示されるオーディオ情報チャネルデバイス23の時刻との間のずれである時間差の値を決定する。したがって、マスターまたはスレーブデバイスの現在時刻が値Tであり、前記クロックタイミング情報によって示されるオーディオ情報チャネルデバイスの現在時刻が値Tであれば、時間差の値はΔT=T−Tとなる。同期グループ20内のマスターまたはスレーブデバイスのデジタル‐アナログコンバータクロック34によって示される現在時刻がSNTP動作の間に受け取られたクロックタイミング情報によって示されるオーディオ情報チャネルデバイスのクロック時刻より進んでいる場合、時間差の値は正になる。他方、マスターまたはスレーブデバイスの現在時刻がオーディオ情報チャネルデバイスのクロック時刻より遅れている場合には、時間差の値ΔTは負になる。ゾーンプレーヤー11(n)が同期グループ20のメンバーである間、定期的にオーディオ情報チャネルデバイス23からクロックタイミング情報を取得する場合、ネットワーク通信マネージャ40は、オーディオ情報チャネルデバイス23からクロックタイミング情報を受け取ったときに時間差の値ΔTの更新値を生成することができ、その後はその更新された時間差の値を使う。
【0071】
ネットワーク通信マネージャ40は、オーディオ情報チャネルデバイスのタイミング情報とゾーンプレーヤー11(n)の現在時刻とから生成するこの時間差の値ΔTを使って、ゾーンプレーヤー11(n)がオーディオ情報チャネルデバイスから受け取るデジタルオーディオ情報フレームに関連付けられたタイムスタンプを更新する。オーディオ情報チャネルデバイスから受け取られる各デジタルオーディオ情報フレームについて、フレームに関連付けられたタイムスタンプをメッセージの形で受け取られた通りにオーディオ情報バッファ21内に保存するのではなく、ネットワーク通信マネージャ40は更新されたタイムスタンプをデジタルオーディオ情報フレームとともに保存する。更新タイムスタンプは、ゾーンプレーヤー11(n)が同期グループのメンバーとしてそのデジタルオーディオ情報フレームを再生する際に当該同期グループ内の他のデバイスと同期して行うことになるような仕方で生成されている。
【0072】
より詳細には、ゾーンプレーヤー11(n)のネットワークインターフェース41は、一つまたは複数のフレーム51(f)を含むパケットを含むメッセージを受け取ったのち、そのパケットをネットワーク通信マネージャ40に渡す。ネットワークインターフェース41がネットワーク通信マネージャ40から受け取るパケット中の各フレーム51(f)について、ネットワーク通信マネージャ40は時間差の値ΔTをそのフレームのタイムスタンプに加えてフレーム51(f)についての更新タイムスタンプを生成し、フレーム51(f)を、更新タイムスタンプをもつヘッダ55(f)とともにオーディオ情報バッファ31内に保存する。よってたとえば、フレームのタイムスタンプが時刻値Tをもつとすると、ネットワーク通信マネージャ40は時刻値T=T+ΔTをもつ更新された(updated)タイムスタンプTを生成する。スレーブデバイスのデジタル‐アナログコンバータクロック34に基づく時刻値Tはオーディオ情報チャネルデバイスのデジタル‐アナログコンバータクロック34に基づく時刻の値Tと同時であるため、ゾーンプレーヤー11(n)デバイスは、オーディオ情報チャネルデバイス23によって決定された時刻にデジタルオーディオ情報フレームを再生することになる。同期グループ20の全メンバーは同じ動作を実行して各自の時間差の値に関係して更新されたタイムスタンプTをさまざまなフレーム51(f)について生成するので、同期グループ20内のゾーンプレーヤー11(n)はすべてフレームを同期的に再生することになる。ネットワーク通信マネージャ40はパケット内のタイムスタンプ60のすべてについて更新タイムスタンプTを生成し、それからパケットをオーディオ情報バッファ31内に保存する。
【0073】
オーディオ情報バッファ31内にパケットを保存する前に、ネットワーク通信マネージャ40はパケット内の諸フレームに関連付けられた更新タイムスタンプTを、デジタル‐アナログコンバータクロック34によって示されるスレーブデバイスの現在時刻と比較することができる。ネットワーク通信マネージャ40は、パケット内のフレーム51(f)の更新タイムスタンプによって示される時刻がゾーンプレーヤーの現在時刻よりも早いと判別すれば、ゾーンバッファ11(n)がそれを再生することはないのであるから、そのパケットをオーディオ情報バッファ31内に保存せずに棄てることができる。すなわち、更新タイムスタンプの時刻値Tが同定する時刻が、ゾーンプレーヤーのデジタル‐アナログコンバータクロック34によって示されるゾーンプレーヤーの現在時刻Tよりも早い場合には、ネットワーク通信マネージャ40はそのパケットを棄てることができるのである。
【0074】
ゾーンプレーヤー11(n)が同期グループ20のマスターデバイス21として動作している場合、ユーザーがユーザーインターフェースモジュール13を通じてゾーンプレーヤー11(n)に別のゾーンプレーヤー11(n′)がスレーブデバイス22(g)としてその同期グループ20に加わろうとしていることを通知したとき、ゾーンプレーヤー11(n)の制御モジュール42はネットワーク通信マネージャ40をして、図2との関連で上記したメッセージの交換を行い、前記別のゾーンプレーヤー11(n′)がスレーブデバイスとして当該同期グループ20に加われるようにさせる。上述したように、メッセージ交換の間、ゾーンプレーヤー11(n)のネットワーク通信マネージャ40によって生成されるメッセージは、当該同期グループ20に加わろうとしているゾーンプレーヤー11(n′)のネットワーク通信マネージャに対して、当該同期グループ20にオーディオ番組を提供しているオーディオ情報チャネルデバイス23によって使用されているマルチキャストアドレスおよび前記オーディオ情報チャネルデバイス23のためのユニキャストアドレスといった情報を提供することになる。その情報を受け取ったのち、当該同期グループ20に加わろうとしているゾーンプレーヤー11(n′)のネットワーク通信マネージャおよびネットワークインターフェースは、その同期グループのためのオーディオ番組を含むマルチキャストメッセージの受信を開始し、その同期グループの現在時刻を取得するためにオーディオ情報チャネルデバイス23とSNTPトランザクションを行い、また前記オーディオ情報チャネルデバイス23に以前にブロードキャスト済みのフレーム51(f)を上記したようなユニキャストメッセージ送信手法を使って当該ゾーンプレーヤー11(n′)に送ってもらうこともできる。
【0075】
他方、ゾーンプレーヤー11(n)のネットワーク通信マネージャ40およびネットワークインターフェース41がネットワーク12を通じて、当該ゾーンプレーヤー11(n)が別のゾーンプレーヤー11(n′)がマスターデバイスをしているある同期グループのスレーブデバイス22(g)になろうとしていることを示すメッセージを受け取った場合、ゾーンプレーヤー11(n)のネットワーク通信マネージャ40はゾーンプレーヤー11(n)の制御モジュール42に通知を提供する。その後、ゾーンプレーヤー11(n)の制御モジュール42はゾーンプレーヤー11(n)のネットワーク通信マネージャ40をして上記した動作を実行させ、それによりゾーンプレーヤー11(n)が同期グループ20に加われるようにする。
【0076】
上述したように、ユーザーはユーザーインターフェースモジュール13を使って同期グループに、現在再生されているオーディオ番組のトラックの再生を打ち切らせることができる。現在再生されているトラックの再生が打ち切られたのち、再生は通常の仕方で、オーディオ情報バッファ31内にバッファリングされている次のトラックに関して継続されることになる。それがもとの再生リストにある次のトラックまたは前のトラックでありうることは理解されるであろう。さらに、ユーザーは同期グループ20に、まだ再生は始まっていないが同期グループ20内でパケットのバッファリングはすでに始まっているトラックの再生を取り消させることもできる。これら両方の動作は、同期グループ20のマスターデバイス21がオーディオ情報チャネルデバイス23に当該同期グループ20に送信するマルチキャストメッセージストリーム中に含めさせることのできる「再同期」コマンドを利用する。一般に、前記再同期コマンドを受け取るのに反応して、同期グループ20の諸メンバーはこれから再生するパケットを含んでいるリングバッファをフラッシュする。加えて、同期グループの諸メンバーが各自のデジタル‐アナログコンバータ33のために別個のバッファを具備している場合には、諸メンバーはそれらのバッファも同じようにフラッシュする。オーディオ情報チャネルデバイスが再同期コマンドを含むパケットを送信したのちには:
(i)現在再生されているトラックの再生を打ち切る再同期コマンドの使用の場合は、オーディオ情報チャネルデバイス23はすぐ再生を始めるよう次のトラックのためのパケットのマルチキャストを開始し、上記した仕方で再生リストを継続し、
(ii)バッファリングは始まっているが再生はこれからであるトラックの再生を取り消す再同期コマンドの使用の場合は、オーディオ情報チャネルデバイス23は、取り消されたトラックの再生が始まることになっていた時刻から再生が始められるよう、取り消されたトラックのあとのトラックのためのパケットのマルチキャストを開始し、上記した仕方で再生リストを継続する。
【0077】
(a)第一の場合(すぐ上の項(i))には、再同期コマンドは読み出しポインタを、巡回バッファ中で、次のトラックの最初のパケットが書き込まれるエントリーを指すようセットさせ、そのエントリーは書き込みポインタが指しているエントリーに対応することになるが、
(b)第二の場合(すぐ上の項(ii))には、再同期コマンドは巡回バッファの書き込みポインタを、再生が取り消されるトラックの最初のパケットを含むエントリーを指すようセットさせる、
ことは理解されるであろう。さらに、バッファリングが始まっていないトラックが取り消される場合には、再同期コマンドは一般に必要ない。同期グループ20のためのオーディオ情報チャネルデバイス23は再生リストからそのトラックを消去するだけでよいからである。
【0078】
現在再生されているトラックの再生を取り消すための再同期コマンドの使用に関連して実行される諸動作について、下記のパケットシーケンスAとの関連で説明し、まだ再生が始まっていないがバッファリングは始まっているトラックの再生を取り消すための再同期コマンドの使用に関連して実行される諸動作について、下記のパケットシーケンスBとの関連で説明する。

パケットシーケンスA
(A1.0)[パケット57]
(A1.1) [フレーム99の続き]
(A1.2) [フレーム100、時刻=0:00:01、種別=mp3オーディオ]
(A1.3) [フレーム101、時刻=0:00:02、種別=mp3オーディオ]
(A1.4) [フレーム102、時刻=0:00:03、種別=mp3オーディオ]

(A2.0)[パケット58]
(A2.1) [フレーム102の続き]
(A2.2) [フレーム103、時刻=0:00:04、種別=mp3オーディオ]
(A2.3) [フレーム104、時刻=0:00:05、種別=mp3オーディオ]
(A2.4) [フレーム105、時刻=0:00:06、種別=mp3オーディオ]

(A3.0)[パケット59]
(A3.1) [フレーム105の続き]
(A3.2) [フレーム106、時刻=0:00:07、種別=mp3オーディオ]
(A3.3) [フレーム107、時刻=0:00:08、種別=mp3オーディオ]
(A3.4) [フレーム108、時刻=0:00:09、種別=mp3オーディオ]

(A4.0)[パケット60]
(A4.1) [フレーム108の続き]
(A4.2) [フレーム109、時刻=0:00:10、種別=mp3オーディオ]
(A4.3) [再同期コマンド]
(A4.4) [必要ならパディング]

(A5.0)[パケット61]
(A5.1) [フレーム1、時刻=0:00:07、種別=mp3オーディオ]
(A5.2) [フレーム2、時刻=0:00:08、種別=mp3オーディオ]
(A5.3) [フレーム3、時刻=0:00:09、種別=mp3オーディオ]
(A5.4) [フレーム4、時刻=0:00:10、種別=mp3オーディオ]

(A6.0)[パケット62]
(A6.1) [フレーム4の続き]
(A6.2) [フレーム5、時刻=0:00:11、種別=mp3オーディオ]
(A6.3) [フレーム6、時刻=0:00:12、種別=mp3オーディオ]
(A6.4) [フレーム7、時刻=0:00:13、種別=mp3オーディオ]

パケットシーケンスAは、パケット57からパケット62によって同定される6つのパケットのシーケンスで、オーディオ情報チャネルデバイス23がそれぞれのメッセージの形で同期グループ20のメンバーにマルチキャストするものである。オーディオ情報チャネルデバイス23が同期グループ20にマルチキャストしうる一連のメッセージにはパケット57より前のメッセージも含まれうるし、またパケット62よりあとのメッセージも含まれうることは理解されるであろう。各パケットはパケットヘッダを有しており、それはパケットシーケンスAでは行(A1.0)、(A2.0)、…(A6.0)によって表されている。各パケットはまた一般には、フレームの少なくとも一部分に対応する情報を含む。パケットシーケンスA内で示されているパケットでは、各パケットは複数のフレームに対応する情報を含んでいる。パケットの長さに依存して、各パケットはフレームの一部分、一フレーム全体または複数フレームに対応する情報を含みうる。パケットシーケンスAによって示されている例示では、各パケットは複数フレームに対応する情報を含みうるものとしている。さらに、パケットは必ずしも整数個のフレームに対応する情報を含むとは限らないものとしている。その場合、あるフレームの一部分に対応する情報がパケットに含まれることがあり、フレームの残りに対応する情報は次のパケットに含まれることになる。
【0079】
さまざまなパケットに含まれるフレームおよび付随するヘッダ再生タイミング情報とはパケットシーケンスAの行(A1.1)、(A1.2)、…、(A1.4)、(A2.1)、…(A6.4)によって表されている。たとえば、パケット57の行(A1.2)は、パケット57を含むパケットシーケンスにおいて送信されているオーディオ情報のトラックの100番目のフレーム、すなわちフレーム51(100)を表す(図4参照)。フレーム51(100)は、オーディオ情報チャネルデバイスのデジタル‐アナログコンバータクロックに基づくある例示的な時刻「時刻=0:00:01」に再生されることになっており、よく知られたMP3エンコード・圧縮手法がフレームのエンコードおよび/または圧縮に使われる。この場合、説明「時刻=0:00:01」がタイムスタンプを表しており、これが、当該同期グループのためのオーディオ情報チャネルデバイス23によってマルチキャストされるフレーム50(100)に付随するヘッダのフィールド60(図4)に含まれる。再生時刻およびエンコード/圧縮手法が、フレーム51(100)に付随するヘッダ55(100)内に参照されることは理解されるであろう。また、ヘッダが上記した追加情報をも含みうることも理解されるであろう。
【0080】
同様に、パケット57の行(A1.3)は、パケット57を含むパケットシーケンスにおいて送信されているオーディオ情報のトラックの101番目のフレーム、すなわちフレーム51(101)を表す。フレーム51(100)は、オーディオ情報チャネルデバイスのデジタル‐アナログコンバータクロックに基づくある例示的な時刻「時刻=0:00:02」に再生されることになっており、やはりMP3エンコード・圧縮手法がフレームのエンコードおよび/または圧縮に使われる。パケット57の行(A1.4)は同様の情報を表している。ただし、パケット57の長さに依存して、行がフレーム51(102)および/またはその付随するヘッダの全体の情報を表さないこともあることは理解されるであろう。パケット57の長さがフレーム51(102)および/またはその付随するヘッダの全体の情報を収容するのに十分でない場合、その情報はパケット58に続く。そのことはパケットシーケンスAでは行(A2.1)によって示されている。同様に、パケット56の長さがフレーム51(100)に先行するフレーム51(99)の全体の情報を含むのに十分でなかった場合には、パケット57(行(A1.0)から(A1.4))は、パケット56にはいりきらなかったフレーム51(99)の情報を含みうる。
【0081】
上述したように、同期グループ20内のマスターデバイス21またはスレーブデバイス22(g)がパケット57を受け取るとき、それぞれのネットワーク通信マネージャ40は、さまざまなフレームをそれぞれのオーディオ情報バッファ31内にバッファリングする前に上記したように各フレーム51(f)に関連付けられたタイムスタンプを更新する。
【0082】
パケット58および59はパケット57との関連で上記した行に沿った形で編成されている。
【0083】
パケット60も、行(A4.1)および(A4.2)によって示されるところでは、パケット57から59との関連で上記した行(Ax.1)および(Ax.2)(xは整数)によって示される情報の行に沿った形で編成された情報を含んでいる。一方、パケット60は行(A4.3)で表される再同期コマンドを含んでいる。パケット60はまた、再同期コマンドに続いて、行4.4によって表されるようなパディングも含みうる。上述したように、同期グループ20のマスターデバイス21は、ユーザーが現在再生されているトラックの再生の取り消しを希望しているという通知をユーザーインターフェースモジュール13から受け取ったときに、当該同期グループ20にオーディオ情報を提供しているオーディオ情報チャネルデバイス23をして再同期コマンドを含むメッセージをマルチキャストさせる。パケットシーケンスAに示された例では、のちに述べるように、オーディオ情報チャネルデバイス23は、マスターデバイス21からユーザーがトラックの再生の取り消しを希望しているという通知を、自分のデジタル‐アナログコンバータクロック34に基づいた「時刻=0:00:07」に対応する時刻に受け取り、パケット60の行(A4.3)において再同期コマンドを提供する。必要ならそのあとにパディングを続ける。
【0084】
パケット59の行(A3.1)から(A3.4)およびパケット60の行(A4.1)および(A4.2)を調べれば明らかとなろうように、オーディオ情報チャネルデバイス23は、同期グループのマスターデバイス21から再同期コマンドをマルチキャストするための通知を、自分のデジタル‐アナログコンバータクロック34によって示されるクロック時間に基づいた「時刻=0:00:07」に対応する時刻に受け取ったものの、それ(すなわち、オーディオ情報チャネルデバイス23)はすでにその時刻およびその後に再生されるべきフレームを含むメッセージを送信してしまっている。すなわち、オーディオ情報チャネルデバイス23は、パケット59においてタイムスタンプ「時刻=0:00:07」「時刻=0:00:08」「時刻=0:00:09」をそれぞれ含むフレーム51(106)から51(108)を、パケット60においてフレーム51(108)の続きに加えてタイムスタンプ「時刻=0:00:10」を含むフレーム51(109)をマルチキャストしてしまっている。(例示的なタイムスタンプによって示されている時刻は単に説明のためであり、実際の実施例においてはタイムスタンプの値やずれが異なる場合があることは理解されるであろう。)
上述したように、オーディオ情報チャネルデバイス23は、マスターデバイス21からしかるべき通知を受け取ったときに、再同期コマンドを含むパケットを含むメッセージをマルチキャストする。パケットシーケンスAに示した例では、前記パケットは、オーディオ情報チャネルデバイスのデジタル‐アナログコンバータクロック時刻が「0:00:07」に対応するときにマルチキャストされる。その後、二つのことが起こる。一方では、マスターデバイス21およびスレーブデバイス22(g)は、前記再同期コマンドを含むパケットを受け取ったときに再生中のオーディオ番組の再生を停止する。
【0085】
さらに、オーディオ情報チャネルデバイス23は次のトラックのためのオーディオ情報を含むフレームを、前記再同期コマンドを含むパケットが送信されたデジタル‐アナログコンバータクロック時刻のすぐあとのタイムスタンプとともに送信することを開始する。したがって、さらにパケットシーケンスAを参照すると、オーディオ情報チャネルデバイス23はパケット61を含むメッセージをマルチキャストしている。上に示したように、パケット61は、行(A5.1)から(A5.3)に示されるように、フレーム51(1)から51(3)を含んでいるが、これは再生されるべきオーディオ番組の次のトラックの最初の3フレームである。これもMP3エンコード・圧縮方式を使って圧縮・エンコードされ、タイムスタンプ「時刻=0:00:07」「時刻=0:00:08」「時刻=0:00:10」を伴っている。上述したように、「時刻=0:00:07」のタイムスタンプはオーディオ情報チャネルデバイス23が再同期コマンドをマルチキャストするクロック時刻に対応しており、これらのフレームを受け取ったマスターデバイス21およびスレーブデバイス22(g)は、それらのフレームの再生を、再同期コマンドを含むパケットを含むメッセージをオーディオ情報チャネルデバイス23がマルチキャストしたあとすぐではないまでも非常に短時間で開始するものと期待されることになる。パケット61はまた、そのトラックについての次のフレーム、すなわちフレーム51(4)の少なくとも一部分も含んでいる。加えて、上に示したパケットシーケンスAはさらに、フレーム51(4)に関して必要な続きいっさいおよび3つのその後のフレームを含む後続のパケットすなわちパケット62を含んでいる。そのトラックについて、また後続のトラックについて、何らかの追加的パケットが必要とされれば、それらも同様の仕方でマルチキャストされうる。
【0086】
さらに上述したように、再同期コマンドはまた、すでに再生が始まっている一つまたは複数のトラックの再生を取り消すためにも使われうる。これについてパケットシーケンスBとの関連で例示する。

パケットシーケンスB
(B1.0)[パケット157]
(B1.1) [フレーム99の続き]
(B1.2) [フレーム100、時刻=0:00:01、種別=mp3オーディオ]
(B1.3) [フレーム101、時刻=0:00:02、種別=mp3オーディオ]
(B1.4) [フレーム102、時刻=0:00:03、種別=mp3オーディオ]

(B2.0)[パケット158]
(B2.1) [フレーム102の続き]
(B2.2) [フレーム103、時刻=0:00:04、種別=mp3オーディオ]
(B2.3) [フレーム104、時刻=0:00:05、種別=mp3オーディオ]
(B2.4) [フレーム105、時刻=0:00:06、種別=mp3オーディオ]

(B3.0)[パケット159]
(B3.1) [フレーム105の続き]
(B3.2) [フレーム106、時刻=0:00:07、種別=mp3オーディオ]
(B3.3) [トラック境界通知]
(B3.4) [必要ならパディング]

(B4.0)[パケット160]
(B4.1) [フレーム1、時刻=0:00:08、種別=mp3オーディオ]
(B4.2) [フレーム2、時刻=0:00:09、種別=mp3オーディオ]
(B4.3) [フレーム3、時刻=0:00:10、種別=mp3オーディオ]

(B5.0)[パケット161]
(B5.1) [フレーム3の続き]
(B5.2) [フレーム4、時刻=0:00:11、種別=mp3オーディオ]
(B5.3) [再同期、パケット159後]
(B5.4) [必要ならパディング]

(B6.0)[パケット162]
(B6.1) [フレーム1、時刻=0:00:08、種別=mp3オーディオ]
(B6.2) [フレーム2、時刻=0:00:09、種別=mp3オーディオ]
(B6.3) [フレーム3、時刻=0:00:10、種別=mp3オーディオ]
(B6.4) [フレーム4、時刻=0:00:11、種別=mp3オーディオ]

(B7.0)[パケット163]
(B7.1) [フレーム4の続き]
(B7.2) [フレーム5、時刻=0:00:12、種別=mp3オーディオ]
(B7.3) [フレーム6、時刻=0:00:13、種別=mp3オーディオ]
(B7.4) [フレーム7、時刻=0:00:14、種別=mp3オーディオ]

パケットシーケンスBは、パケット157からパケット163によって同定される7つのパケットのシーケンスで、オーディオ情報チャネルデバイス23が同期グループ20のメンバーにマルチキャストするものである。パケットシーケンスAの場合と同様、オーディオ情報チャネルデバイス23が同期グループ20にマルチキャストしうる一連のパケットにはパケット157より前のパケットも含まれうるし、またパケット162よりあとのパケットも含まれうることは理解されるであろう。各パケットはパケットヘッダを有しており、それはパケットシーケンスBでは行(B1.0)、(B2.0)、…(A7.0)によって表されている。パケットシーケンスAの場合と同様、各パケットはまた一般には、付随するヘッダ55(f)とともにフレーム51(f)の少なくとも一部分に対応する情報を含む。パケットシーケンスA内で示されているパケットと同様に、各パケットは複数のフレームに対応する情報を含んでいる。パケットの長さに依存して、各パケットはフレームの一部分、一フレーム全体または複数フレームに対応する情報を含みうる。さらに、パケットシーケンスAの場合と同様、各パケットは複数フレームに対応する情報を含みうるものとしている。さらに、パケットは必ずしも整数個のフレームに対応する情報を含むとは限らないものとしている。その場合、あるフレームの一部分に対応する情報がパケットに含まれることがあり、フレームの残りに対応する情報は次のパケットに含まれることになる。
【0087】
パケットシーケンスBによって示されているパケットの構造はパケットシーケンスAとの関連で上記したものと同様であり、ここで繰り返しはしない。一般に、パケットシーケンスBは、例示的に、たとえばある再生リストから選択されたものでありうる3つのトラックの少なくとも一部分を表すパケットのシーケンスを含んでいる。具体的には、パケット157から159は一つのトラックの一部分からのフレームを表し、パケット160および161は第二のトラックからのフレームを表し、パケット162および163は第三のトラックからのフレームを表す。再生リストは、第一、第二、第三のトラックがその順に再生されるべきであったことを示していた。特にパケットシーケンスBを参照すると、行(B3.3)によって、パケット159が当該トラックの最終フレームを含んでいるという指示が該パケット159に含まれていることが示されており、行(B3.4)によってそのパケットの末尾までのパディングを行わせていることがわかるであろう。次のトラックの最初のフレームはパケット160において始まる。
【0088】
トラックの再生を取り消すための再同期コマンドの使用に関連して、前記トラックの少なくとも一部分はオーディオ情報チャネルデバイス23が同期グループのメンバーにマルチキャストしてしまっているとすると、パケット161は行(B5.3)において、再同期がパケット159のあとに、すなわちパケットシーケンスB内のパケットによって表される3つのトラックの第一のものの最終フレームを含むパケットのあとすぐに生起することになることを示す再同期コマンドを表している。ここで、再同期コマンドはパケット161にあるが、再同期が生起するのはパケット160であることを注意しておく。つまり、当該同期グループはパケット160から始まるトラックを再生せず、代わりに次のパケット、すなわちパケット162で始まるトラックのフレームの再生を開始することになるのである。パケットシーケンスAの場合と同様、パケットシーケンスBにおいても、オーディオ情報チャネルデバイス23はパケット162および163において、タイムスタンプからパケット160および161においてマルチキャストされたフレームが再生されるはずだったときに再生されるべきであることが示されるフレームがマルチキャストされる。再同期コマンドを使い、このようにしてパケットを特定することにより、オーディオ情報チャネルデバイスはまだ再生が始まっていないトラックの再生を取り消すことができる。
【0089】
オーディオ情報チャネルデバイス23が同期グループ20へのマルチキャストを始めていないトラックの再生を取り消すためには,一般に再同期コマンドは必要ないことは理解されるであろう。オーディオ情報チャネルデバイス23が再生リストを整理し直すことで自分でその取り消しに対応できるからである。
【0090】
本発明は数多くの利点を提供する。具体的には、本発明は、ネットワークを通じて該ネットワークに接続されているさまざまなゾーンプレーヤーに送信されるデジタルオーディオ情報を含みうるパケットが異なる遅延を有するかもしれず、前記ゾーンプレーヤーが独立したクロックで動作するという事実にもかかわらず、いくつかのデバイスが情報を共有するネットワークオーディオシステムがオーディオ情報を同期的に再生できるようにする。さらに、本発明はオーディオ情報との関連で述べられてきたものの、本発明がデバイスの間の同期が望ましいいかなる種類の同時情報との関連でも用途を見出すであろうことは理解されるであろう。当該システムは、同期グループが動的に生成され、破棄されるようになっており、またマスターデバイスとしての専用デバイスの必要を回避するような仕方になっている。
【0091】
上記したネットワークオーディオシステム10には数多くの変更および修正を施しうることは理解されるであろう。たとえば、本発明は、オーディオ情報チャネルデバイス23が特定の種類のエンコード・圧縮手法を使ってエンコードされたデジタルオーディオ情報を同期グループ20のメンバーに提供できるようにするものとして記載してきたが、オーディオ情報チャネルデバイス23はさまざまな種類のエンコード・圧縮手法を使ってエンコード・圧縮され、さらにさまざまなサンプリングレートが使用されたデジタルオーディオ情報を同期グループ20のさまざまなメンバーに提供できることは理解されるであろう。たとえば、オーディオ情報チャネルデバイス23はマスターデバイス21およびスレーブデバイス22(1)から22(g)にはMP3手法を使ってある指定されたサンプリングレートでデジタルオーディオ情報を提供し、同じ番組のデジタルオーディオ情報をスレーブデバイス22(g+1)から22(g)にはWAV手法を使ってある指定されたサンプリングレートで、スレーブデバイス22(g+1)から22(G)にはWAV手法を使って別の指定されたサンプリングレートで提供してもよい。その場合、オーディオ情報チャネルデバイス23は使用されたその特定のエンコード・圧縮手法を各フレームに関連付けられるエンコード種別フィールド57に、サンプリングレートをサンプリングレートフィールド58に指定することができる。さらに、エンコード・圧縮種別およびサンプリングレートは各フレームについて指定されるため、エンコード・圧縮種別およびサンプリングレートはフレームごとに変えることできる。オーディオ情報チャネルデバイス23は異なるエンコード・圧縮種別およびサンプリングレートに対しては異なるマルチキャストアドレスを使ってもよいが、それが必須でないことは理解されるであろう。
【0092】
エンコード・圧縮手法およびサンプリングレートをトラックごとなどではなくフレームごとに与えるようにすることの利点が、それにより、スレーブデバイスが同期グループ20に加わるのが容易になり、マスターデバイス21またはオーディオ情報チャネルデバイス23にエンコード・圧縮手法やサンプリングレートを通知してもらう必要もなくなることであることは理解されるであろう。
【0093】
もう一つの修正は、同期グループ20のメンバーのネットワーク通信マネージャ40がデジタルオーディオ情報フレームについての更新タイムスタンプTを生成するのに時間差の値ΔTをフレームに関連付けられたタイムスタンプTに足すのではなく、ネットワーク通信マネージャ40は代わりに更新タイムスタンプTの生成を、時間差の値ΔTを、そのデジタルオーディオ情報を受け取った時点で当該メンバーのデジタル‐アナログコンバータクロック34が示す当該メンバーの現在時刻Tから引くことによって行ってもよい。しかし、スレーブデバイスのネットワーク通信マネージャ40によるメッセージの処理における時間遅延は多様でありうるので、時間差の値ΔTの生成はオーディオ情報チャネルデバイス23によって提供されるタイムスタンプTを使って行うことが好ましい場合があることは理解されるであろう。
【0094】
さらに、同期グループのメンバーのネットワーク通信マネージャ40が当該メンバーのデジタル‐アナログコンバータクロックとオーディオ情報チャネルデバイスのデジタル‐アナログコンバータクロックとの間のずれを反映するために更新タイムスタンプを生成するのではなく、ネットワーク通信マネージャ40は時間差の値ΔTを生成してそれを当該メンバーの再生スケジューラ32に提供することもできる。その場合、当該メンバーのネットワーク通信マネージャ40は各デジタルオーディオ情報フレームを、マスターデバイスから受け取られたタイムスタンプTとともにオーディオ情報バッファ31内に保存することができる。再生スケジューラ32は、時間差の値ΔTおよび当該デジタルオーディオ情報フレームに関連付けられたタイムスタンプTを利用して、各デジタルオーディオ情報フレームがいつ再生されるべきかを決定できる。あるデジタルオーディオ情報フレームがいつ再生されるべきかを決定する際には、再生スケジューラが時間差の値をそのデジタルオーディオ情報フレームに関連付けられたタイムスタンプTに足して、その和によって示される時刻が当該スレーブデバイスのデジタル‐アナログコンバータクロック34によって示される現在時刻に一致したときに当該デジタルオーディオ情報フレームがデジタル‐アナログコンバータ33に転送されるようにすることができる。あるいはまた、当該メンバーのデジタル‐アナログコンバータクロック34がその現在時刻Tを更新するときに、再生スケジューラは、時間差の値ΔTを現在時刻Tから引いて更新された現在時刻T′を生成し、その更新された現在時刻T′を使ってデジタルオーディオ情報フレームをいつ再生すべきかを決定することができる。
【0095】
上記したように、同期グループ20のメンバーは定期的にオーディオ情報チャネルデバイスの現在時刻の値を取得し、オーディオ情報チャネルデバイスから受け取るその現在時刻の値を使って定期的に、さまざまなフレームに関連付けられたタイムスタンプの更新に使う時間差の値ΔTを更新する。同期グループ20のメンバーに付随するデジタル‐アナログコンバータクロックが当該デジタル‐アナログコンバータクロックと同じレートをもつことが保証されるとすれば、メンバーに必要なのは、再生の開始の時点で一度オーディオ情報チャネルデバイスから現在時刻の値を取得することだけであることは理解されるであろう。
【0096】
もう一つの代替として、各ゾーンプレーヤーが、ネットワーク通信マネージャ40のような要素によって時刻とレートを設定できるデジタル‐アナログコンバータクロック34を具備している場合、あるゾーンプレーヤー11(n)が同期グループ20のメンバーとして動作しているとき、そのネットワーク通信マネージャ40はオーディオ情報チャネルデバイス23から受け取るさまざまな種類のタイミング情報を、該同期グループのメンバーが再生のために使うデジタル‐アナログコンバータクロックの時刻の値および/またはクロックレートを調整するために使うことができる。そうしたタイミング情報には、現在時刻情報と、さまざまなフレーム51(f)に関連付けられたタイムスタンプによって示される、受け取ったオーディオおよび再生タイミング情報をなす再生タイミング情報とが含まれる。調整されるのがクロックの時刻値である場合、同期グループ20のメンバーのネットワーク通信マネージャ40が最初に現在時刻情報をその同期グループ20のためのオーディオ情報チャネルデバイス23から受け取るときに、ネットワーク通信マネージャ40はその同期グループのメンバーのデジタル‐アナログコンバータクロック34を、オーディオ情報チャネルデバイスの現在時刻情報によって示される現在時刻の値に設定することができる。ネットワーク通信マネージャ40が前記クロック34をオーディオ情報チャネルデバイスの現在時刻情報によって示される現在時刻の値に設定するのは、一度だけ行うことも、あるいは現在時刻情報を受け取る際に定期的に行うこともできる。
【0097】
代替的に、あるいは追加的に、同期グループのメンバーのネットワーク通信マネージャ40は再生のために使う前記クロック34のクロックレートを調整するために、現在時刻情報および/またはそれぞれのフレーム51(f)に関連付けられたタイムスタンプ中の再生タイミング情報の一方または両方を使うことができる。たとえば、同期グループのメンバーのネットワーク通信マネージャ40は、時刻値Tfxをもつタイムスタンプをもつフレーム51(f)を受け取るとき、上記したように更新時刻値Tfx=Tfx+ΔTを生成し、更新時刻値をもつタイムスタンプをもつそのフレームをオーディオ情報バッファ31に保存することができる。さらに、1フレーム中の標本値の数およびサンプリングレート(このレートがそのフレームが再生されるレートを決める)は両方ともネットワーク通信マネージャ40には既知であるので、ネットワーク通信マネージャ40はその情報をフレーム51(f)について使われるべき前記更新時刻値Tfxとともに使って、期待される(expected)更新時刻値Tfx+1=を生成することができる。これは、次のフレーム51(fx+1)の更新タイムスタンプとして期待されるものである。同期グループのメンバーのネットワーク通信マネージャ40は、次のフレーム51(fx+1)を受け取ったのち、更新時刻値Tfx+1を生成してその値を期待される更新時刻値Tfx+1と比較することができる。二つの時刻値が一致しなければ、あるいは両者の差がある所定の閾値レベルより大きければ、タイムスタンプを生成するためにオーディオ情報チャネルデバイス23によって使われたクロックの進むレートは当該同期グループのメンバーのデジタル‐アナログコンバータクロック34とは異なっており、よってネットワーク通信マネージャ40は当該デジタル‐アナログコンバータクロック34のレートをオーディオ情報チャネルデバイス23によって使われるクロックのレートに近づくよう調整して、時間差の値ΔTが一定になるようにすることができる。他方、前記二つの時刻の値が一致していれば、あるいは差がある閾値レベルよりも小さければ、時間差の値ΔTは一定であり、ネットワーク通信マネージャ40はデジタル‐アナログコンバータクロック34のクロックレートを変える必要はない。クロックレートが調整される場合、レートの調整は固定でもよいし、たとえば更新時刻値Tfx+1と期待される更新時刻値Tfx+1との間の差に基づいて変わるようにしてもよい。
【0098】
また、あるフレーム51(fx+1)についてレート調整が実行されない場合、同期グループのメンバーのネットワーク通信マネージャ40は、次のフレーム51(fx+2)の更新タイムスタンプについて期待される、期待される更新時刻値Tfx+2を、フレーム51(f)について決定された更新された時刻の値Tfxを1フレーム中の標本値の数およびサンプリングレートとともに使って生成し、その期待される更新時刻値Tfx+2をフレーム51(fx+2)を受け取ったときに自らが生成する更新時刻値Tfx+2と比較することができる。ネットワーク通信マネージャ40は、その時点において二つの時刻の値が一致しないと判定する場合、あるいは両者の差がある所定の閾値レベルより大きい場合、当該デジタル‐アナログコンバータクロック34のレートを調整することができる。一連のいくつかのフレーム51(fx+1)、51(fx+2)…についてレート調整が実行されなかった場合にも同様の処理を実行することができる。これにより、前記クロック34とオーディオ情報チャネルデバイス23によってタイムスタンプの生成に使われているクロックとの間のレートが二つ以上の一連のフレームのタイムスタンプを使っても検出できないほど小さい量だけずれている可能性に対応できる。
【0099】
上記したようにクロックレートを調整する代わりに、あるいはそれに加えて、同期グループのメンバーのネットワーク通信マネージャ40は同様の処理を、オーディオ情報チャネルデバイス23から受け取る現在時刻情報との関連でクロックレートを調整することに関連して実行することもできる。
【0100】
さらに、当該ネットワークオーディオシステム10は、同期グループ20のマスターデバイス21がユーザーからユーザーインターフェースモジュール13を通じて与えられる制御情報に反応して、あるゾーンプレーヤー11(n)に対して該ゾーンプレーヤー11(n)がスレーブデバイス22(g)として当該同期グループ20のメンバーになることになっているという通知を与えることができるような形で述べられてきたが、ユーザーインターフェースモジュール13がその通知を直接に、当該同期グループ20のメンバーになることになっているゾーンプレーヤー11(n)に与えることもできることは理解されるであろう。その場合、ゾーンプレーヤー11(n)はマスターデバイス21に、自分がその同期グループ20におけるスレーブデバイス22(g)になることになっていることを通知することができ、そののちにマスターデバイス21は、オーディオ情報チャネルデバイスのマルチキャストアドレスおよびユニキャストアドレスならびに上記したようなその他の情報を含む、当該同期グループ20に関する情報を提供することができる。
【0101】
同様に、当該ネットワークオーディオシステム10は、同期グループ20のマスターデバイス21が、ユーザーからユーザーインターフェースモジュール13を通じて与えられる制御情報に反応して、スレーブデバイス22(g)に対して該スレーブデバイス22(g)にそのボリュームを調整させるコマンドを与えることができるような形で述べられてきたが、ユーザーインターフェースモジュール13がその制御情報を直接にそのスレーブデバイス22(g)に与え、該スレーブデバイス22(g)にそのボリュームを調節させることもできることは理解されるであろう。
【0102】
さらに、ネットワークオーディオシステム10は、各フレーム51(f)にフレームシーケンス番号が割り当てられている(図4のフィールド56参照)ように述べられてきたが、上でパケットシーケンスAおよびパケットシーケンスBとの関連で述べたパケットにパケットシーケンス番号が与えられていれば、フレームシーケンス番号を与える必要はないことも理解されるであろう。フレームの順序関係を定義するためにはパケットシーケンス番号で十分だからである。
【0103】
さらに、ネットワークオーディオシステム10は、ゾーンプレーヤー11(n)がそれぞれのデジタル‐アナログコンバータ33によって与えられるアナログ信号を増幅するためのオーディオ増幅器35を具備するように述べられてきたが、それ自身ではオーディオ増幅器を含まないゾーンプレーヤーを設けてもよいことは理解されるであろう。その場合、アナログ信号はオーディオ再生デバイス15(n)(r)に与えられる前に必要に応じて増幅のために外部増幅器に結合されうる。単一のゾーンプレーヤー11(n)に対して、複数のオーディオ増幅器およびオーディオ再生デバイスならびに必要なら複数のデジタル‐アナログコンバータ33を、対応する数の同期グループにオーディオ番組を提供するために具備してもよいことは理解されるであろう。
【0104】
同様に、ゾーンプレーヤー11(n)は、一つまたは複数のオーディオ情報ソースに接続されうるように述べられてきたが、オーディオ情報ソースがゾーンプレーヤー11(n)の部分をなしてそれに統合されていてもよいことは理解されるであろう。たとえば、ゾーンプレーヤーは、その内部に統合されているコンパクトディスクプレーヤー、カセットテーププレーヤー、放送ラジオ受信機などを含みうる。さらに、上述したように、個々のゾーンプレーヤー11(n)が複数のオーディオ情報ソースに接続されていてもよく、また複数の同期グループのためのオーディオ情報チャネルデバイス23として同時的に動作してもよい。
【0105】
さらに、図1はネットワークオーディオシステム10をユーザーインターフェースモジュール13を一つ含むものとして示しているが、システム10が複数のユーザーインターフェースモジュールを含んでいてもよいことは理解されるであろう。各ユーザーインターフェースモジュールが上記したようなゾーンプレーヤーのすべての制御に有用であってもよいし、あるいはまたユーザーインターフェースモジュールの一つまたは複数がゾーンプレーヤーの所定のサブセットの制御に有用であってもよい。
【0106】
その上、本発明はオーディオ情報との関連で述べられてきたが、本発明がネットワークに接続されているデバイスの間での同期が望ましいいかなる種類の情報との関連でも用途を見出すことが理解されるであろうことは理解されるであろう。
【0107】
上述したように、ゾーンプレーヤー11(n)がある同期グループ20のためのオーディオ情報チャネルデバイス23として動作している間に、そのゾーンプレーヤー11(n)のオーディオ情報ソースインターフェース30またはネットワーク通信マネージャ40がオーディオ情報ソース14(n)(s)からのオーディオ情報に基づくデジタルオーディオ情報フレームをオーディオ情報バッファ31内に保存するとき、各フレームについて、オーディオ情報バッファ31内にバッファリングされたのち若干の時間遅延後の再生のためにスケジュールするためにタイムスタンプが提供される。遅延が設けられるのは、同期グループのメンバーとして動作している他のゾーンプレーヤー11(n′)、11(n″)…のために、該他のゾーンプレーヤー11(n′)、11(n″)…にネットワーク12を通じてオーディオおよび再生タイミング情報が転送されるのに十分な時間があるようにして、前記情報が上記した適切な時刻に処理され、再生されうるようにするためである。前記時間遅延として選択される時間期間は固定でも可変でもよく、いずれの場合であってもいくつかの因子に基づきうる。前記時間遅延について選ばれる時間期間が固定の場合、それはたとえば、ネットワーク12における最大遅延の推定、ゾーンプレーヤー11(n)をなすさまざまなコンポーネントの推定最大負荷および当業者が理解するであろうその他の推定といった因子に基づきうる。
【0108】
前記時間遅延はあらゆる種類のオーディオ情報ソースからのオーディオ情報について同一であってもよいし、同期グループ20がオーディオ作品を再生している全期間にわたって一定であってもよい。あるいはまた、さまざまな基準に基づいて異なる時間遅延が利用されてもよい。たとえば、オーディオ情報が他の種類のメディアに関連した情報とは独立に再生される場合には、時間遅延は、1秒のかなりの部分またはそれ以上のオーダーなど、比較的長く設定してもよい。他方、オーディオ情報がたとえば、ビデオディスク、ビデオテープカセット、ケーブル、衛星または放送テレビなどによって供給されうるビデオ情報と同時的に再生される場合、そのようなビデオ情報はバッファリングするわけにいかなかったり、あるいはネットワークオーディオシステム10とは独立に表示される可能性があったりするので、前記のような長い遅延を設けることは望ましくないことがありうる。当該オーディオ再生の時間遅延は前記ビデオ表示との関係で感知しうるかもしれないからである。その場合、ゾーンプレーヤー11(n)はずっと短い時間遅延を与えることができる。ある実施形態では、ビデオ情報と同時並行して再生されるオーディオ情報のために設けられる時間遅延は、一般に50ミリ秒のオーダーに選ばれる。これはビデオの視聴者に対して感知できるとしてもかろうじてといったところである。その他の種類のソースからの情報についての望ましい時間遅延は当業者には明らかであろう。
【0109】
さらにいま一つの可能性として、ゾーンプレーヤー11(n)は、同期グループ20についてのオーディオ情報チャネルデバイス23として動作しているとき、ネットワークオーディオシステム10内のいくつかの条件に基づいて動的に前記時間遅延を決定することができる。その条件にはたとえば、ネットワーク12内でのメッセージ転送遅延、さまざまなゾーンプレーヤー11(n′)、11(n″)…において使われているマイクロプロセッサまたはその他のコンポーネントの負荷ならびにその他の因子といったものが含まれる。たとえば、オーディオ情報チャネルデバイス23が、ネットワーク12内の遅延が選択した閾値を超えたと判定した場合、オーディオ情報チャネルデバイス23は前記時間遅延を調整して同期グループ20のメンバーが適切な時刻に再生できるようにパケットを受信してフレームを処理できる可能性を増すようにする。同様に、オーディオ情報チャネルデバイス23が、オーディオ情報を提供してやっている同期グループ20のあるメンバーが送信してやっているフレームを受信して処理するのに追加的な時間を必要としていると通知された場合、オーディオ情報チャネルデバイス23は前記時間遅延をしかるべく調整することができる。同期グループのメンバーによるオーディオ再生に生じうる飛びを軽減または最小化するため、オーディオ情報チャネルデバイス23は、ある特定のオーディオトラックの期間中の時間遅延を調整するのではなく、トラックとトラックとの間の、あるトラックの無音期間の、あるいは当業者が理解するであろうその他の場合の時間遅延を調整することもできることは理解されるであろう。さらに、オーディオ情報チャネルデバイス23は、追加的な時間遅延を提供する過程にある間に、通常のオーディオ圧縮手法を使ってオーディオトラックの再生の加速および/または減速を助けることもできる。一般に、同期グループ20のメンバーは、追加的な時間遅延が必要であると判定すれば、オーディオ情報チャネルデバイス23に通知を提供することができ、オーディオ情報チャネルデバイス23は同期グループ20のメンバーからの通知に基づいて時間遅延を調整することができる。
【0110】
本発明に基づくシステムが、全体的または部分的に、専用目的ハードウェアもしくは汎用コンピュータシステムまたはその任意の組み合わせによって構築することができ、そのいかなる部分も好適なプログラムによって制御されうることは理解されるであろう。任意のプログラムは全体的または部分的に、従来の仕方でシステムの部分をなしていたりシステムに保存されたりしていてもよいし、あるいは全体的または部分的に従来の仕方で情報を転送するためのネットワークまたはその他の機構を通じてシステムに提供されてもよい。さらに、当該システムは、該システムに直接接続されていてもよいし当該システムに従来の仕方で情報を転送するためのネットワークまたはその他の機構を通じて情報を転送してもよいオペレーター入力要素(図示せず)を使ってオペレーターによって与えられる情報によって操作および/またはその他の仕方で制御されてもよいことは理解されるであろう。
【0111】
これまでの記述は、本発明の特定の実施形態に限定されてきた。しかし、本発明にさまざまな変形および修正を施して本発明の利点の一部または全部を実現しうることは明らかであろう。付属の請求項は、本発明の真の精神および範囲内にはいる上述した、およびそのような他の変形および修正をカバーすることを目的としている。

【図面の簡単な説明】
【0112】
【図1】本発明に基づいて構築された例示的なネットワーク化オーディオシステムを概略的に描いた図である。
【図2】図1に描かれたネットワーク化オーディオシステム内に形成される複数のゾーンプレーヤーを利用した同期グループの機能ブロック図を概略的に描いた図である。
【図2A】二つの同期グループを概略的に描いており、ある同期グループのメンバーが別の同期グループのメンバーにオーディオ情報を提供できる様子を例示する図である。
【図3】図1に描かれたネットワーク化オーディオシステムにおける使用のためのゾーンプレーヤーの機能ブロック図を描いた図である。
【図4】図1に描かれたネットワークオーディオシステムにおいて有用なデジタルオーディオ情報フレーム構成の仕方を理解するのに有用な図である。


Notice: Undefined index: CLJ in /mnt/www/gzt_disp.php on line 301

【図1】
image rotate

【図2】
image rotate

【図2A】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2007−512718(P2007−512718A)
【公表日】平成19年5月17日(2007.5.17)
【国際特許分類】
【出願番号】特願2006−521889(P2006−521889)
【出願日】平成16年7月2日(2004.7.2)
【国際出願番号】PCT/US2004/023102
【国際公開番号】WO2005/013047
【国際公開日】平成17年2月10日(2005.2.10)
【出願人】(506030756)ソノズ インコーポレイテッド (3)
【Fターム(参考)】