(57)【特許請求の範囲】
【請求項１】
メンバーを識別するための識別子およびメンバーの属性を示す属性データをメンバー毎に記憶したメンバー記憶手段と、
端末から送信されたデータをネットワーク経由で受信する受信手段と、
前記メンバー記憶手段に記憶されている識別子が前記受信手段により受信されると、該識別子を送信した端末の通信アドレスを該識別子に対応付けて前記メンバー記憶手段に書き込む追加手段と、
特定のデータの送信を要求するデータが前記受信手段により受信されると、該データを送信した端末の通信アドレスに対応付けて前記メンバー記憶手段に記憶されている属性が所定の属性であるか否かを判定し、所定の属性であれば、前記特定のデータを前記メンバー記憶手段に通信アドレスが記憶されている全ての端末へ前記ネットワーク経由で送信する静的同報手段と、
第１のモードと第２のモードのいずれかを示すモードフラグを記憶するフラグ記憶手段と、
前記モードフラグの内容が前記第１のモードを示しているときに、当該モードフラグの変更を要求するデータが前記受信手段により受信されると、該データを送信した端末の通信アドレスに対応付けて前記メンバー記憶手段に記憶されている属性が所定の属性であるか否かを判定し、所定の属性であれば、前記フラグ記憶手段に記憶される前記モードフラグの内容を前記第２のモードに変更する変更手段と、
前記所定の属性に対応付けて記憶されている通信アドレスの端末以外の端末から、当該端末以外の端末へ送信すべきデータが前記受信手段により受信されると、前記フラグ記憶手段が記憶する前記モードフラグの内容が第１のモードを示している場合には、該データを前記メンバー記憶手段に通信アドレスが記憶されている全ての端末から該データの送信元の端末を除外した端末へ前記ネットワーク経由で送信し、前記フラグ記憶手段が記憶する前記モードフラグの内容が第２のモードを示している場合には、該データを前記メンバー記憶手段において前記所定の属性に対応付けて記憶されている通信アドレスの端末へ前記ネットワーク経由で送信する動的同報手段と
を有する配信装置。
【請求項２】
データが書き込まれる共有記憶手段と、
前記特定のデータの送信を要求するデータが前記受信手段により受信されると、該データを送信した端末の通信アドレスに対応付けて前記メンバー記憶手段に記憶されている属性が所定の属性であるか否かを判定し、所定の属性であれば、前記特定のデータを前記共有記憶手段に書き込む静的書き込み手段と、
前記メンバー記憶手段に記憶されている識別子が前記受信手段により受信されると、前記共有記憶手段にデータが書き込まれているか否かを判定し、書き込まれている場合には前記共有記憶手段に書き込まれているデータを該識別子に対応付けて前記メンバー記憶手段に通信アドレスが記憶されている端末へ送信する静的追従手段と
を有することを特徴とする請求項１に記載の配信装置。
【請求項３】
データが書き込まれる共有記憶手段と、
他の端末へ送信すべきデータが前記受信手段により受信されると、該データを送信した端末の通信アドレスに対応付けて前記メンバー記憶手段に記憶されている属性が所定の属性であるか否かを判定し、所定の属性であれば、該データを前記共有記憶手段に書き込む動的書き込み手段と、
前記メンバー記憶手段に記憶されている識別子が前記受信手段により受信されると、前記共有記憶手段にデータが書き込まれているか否かを判定し、書き込まれている場合には前記共有記憶手段に書き込まれているデータを該識別子に対応付けて前記メンバー記憶手段に通信アドレスが記憶されている端末へ前記ネットワーク経由で送信する動的追従手段と
を有することを特徴とする請求項１に記載の配信装置。
【請求項４】
記憶手段を備えるコンピュータを、
端末から送信されたデータをネットワーク経由で受信する受信手段と、
メンバーを識別するための識別子およびメンバーの属性を示す属性データがメンバー毎に登録されているメンバーテーブル内の識別子が前記受信手段により受信されると、該識別子を送信した端末の通信アドレスを該識別子に対応付けて前記メンバーテーブルに登録する追加手段と、
特定のデータの送信を要求するデータが前記受信手段により受信されると、該データを送信した端末の通信アドレスに対応付けて前記メンバーテーブルに登録されている属性が所定の属性であるか否かを判定し、所定の属性であれば、前記特定のデータを前記メンバーテーブルに通信アドレスが登録されている全ての端末へ前記ネットワーク経由で送信する静的同報手段と、
前記記憶手段に記憶された第１のモードと第２のモードのいずれかを示すモードフラグの内容が前記第１のモードを示しているときに、当該モードフラグの変更を要求するデータが前記受信手段により受信されると、該データを送信した端末の通信アドレスに対応付けて前記メンバーテーブル内の属性が所定の属性であるか否かを判定し、所定の属性であれば、前記記憶手段に記憶される前記モードフラグの内容を前記第２のモードに変更する変更手段と、
前記所定の属性に対応付けて記憶されている通信アドレスの端末以外の端末から、他の端末へ送信すべきデータが前記受信手段により受信されると、前記記憶手段が記憶する前記モードフラグの内容が第１のモードを示している場合には、該データを前記メンバーテーブルに通信アドレスが登録されている全ての端末から該データの送信元の端末を除外した端末へ前記ネットワーク経由で送信し、前記記憶手段が記憶する前記モードフラグの内容が第２のモードを示している場合には、該データを前記メンバーテーブルにおいて前記所定の属性に対応付けて登録されている通信アドレスの端末へ前記ネットワーク経由で送信する動的同報手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の端末間でデータを共有する技術に関する。
【背景技術】
【０００２】
複数の端末が各種のデータをネットワーク経由で共有して楽器演奏の遠隔教習を行うシステムが提案されている。例えば、特許文献１及び特許文献２には、それぞれ、教師の音声や映像等のデータをネットワーク経由で生徒側の端末へ送り、生徒の音声や映像等のデータをネットワーク経由で教師側の端末へ送るシステムが開示されている。また、特許文献２における教師側の端末は、センタに記憶されている教材データを教師の指示に従ってダウンロードし、記憶している教材データを教師の指示に従って生徒側の端末へ送信する。
【特許文献１】特開２００２−１３３２３８号公報
【特許文献２】特開２００２−３２３８４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、実際の楽器演奏の教習では、教師が、眺めるべき教材（例えば楽譜）を取り出し、取り出した教材を生徒に通知し、生徒が、通知された教材を取り出して眺める。もし、このような作業を簡素化することができれば、教習効率が向上する。しかし、特許文献１には、このような簡素化について何も記載されていない。また、特許文献２に記載のシステムでは、教師は、眺めるべき教材をセンタからダウンロードするために端末を操作し、更に、ダウンロードした教材を生徒へ送信するために再び端末を操作しなければならず、負担が大きい。
【０００４】
本発明は、上述した背景の下になされたものであり、端末の使用者に負担をかけることなく、複数の端末間でデータを共有することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、メンバーを識別するための識別子およびメンバーの属性を示す属性データをメンバー毎に記憶したメンバー記憶手段と、端末から送信されたデータをネットワーク経由で受信する受信手段と、前記メンバー記憶手段に記憶されている識別子が前記受信手段により受信されると、該データを送信した端末の通信アドレスを該識別子に対応付けて前記メンバー記憶手段に書き込む追加手段と、特定のデータの送信を要求するデータが前記受信手段により受信されると、該データを送信した端末の通信アドレスに対応付けて前記メンバー記憶手段に記憶されている属性が所定の属性であるか否かを判定し、所定の属性であれば、前記特定のデータを前記メンバー記憶手段に通信アドレスが記憶されている全ての端末へ前記ネットワーク経由で送信する静的同報手段と、第１のモードと第２のモードのいずれかを示すモードフラグを記憶するフラグ記憶手段と、前記モードフラグの内容が前記第１のモードを示しているときに、当該モードフラグの変更を要求するデータが前記受信手段により受信されると、該データを送信した端末の通信アドレスに対応付けて前記メンバー記憶手段に記憶されている属性が所定の属性であるか否かを判定し、所定の属性であれば、前記フラグ記憶手段に記憶される前記モードフラグの内容を前記第２のモードに変更する変更手段と、前記所定の属性に対応付けて記憶されている通信アドレスの端末以外の端末から、当該端末以外の端末へ送信すべきデータが前記受信手段により受信されると、前記フラグ記憶手段が記憶する前記モードフラグの内容が第１のモードを示している場合には、該データを前記メンバー記憶手段に通信アドレスが記憶されている全ての端末から該データの送信元の端末を除外した端末へ前記ネットワーク経由で送信し、前記フラグ記憶手段が記憶する前記モードフラグの内容が第２のモードを示している場合には、該データを前記メンバー記憶手段において前記所定の属性に対応付けて記憶されている通信アドレスの端末へ前記ネットワーク経由で送信する動的同報手段とを有する配信装置を提供する。
この装置では、所定の属性のメンバーに使用されている端末が特定のデータの送信を要求するデータを送信すると、このデータを受信手段が受信し、静的同報手段が、この端末を含む予め登録されたメンバーに使用されている全ての端末へ当該データを送信する。
【０００６】
また、上記の装置に、データが書き込まれる共有記憶手段と、前記特定のデータの送信を要求するデータが前記受信手段により受信されると、該データを送信した端末の通信アドレスに対応付けて前記メンバー記憶手段に記憶されている属性が所定の属性であるか否かを判定し、所定の属性であれば、前記特定のデータを前記共有記憶手段に書き込む静的書き込み手段と、前記メンバー記憶手段に記憶されている識別子が前記受信手段により受信されると、前記共有記憶手段にデータが書き込まれているか否かを判定し、書き込まれている場合には前記共有記憶手段に書き込まれているデータを該識別子に対応付けて前記メンバー記憶手段に通信アドレスが記憶されている端末へ送信する静的追従手段とを追加した態様としてもよいし、データが書き込まれる共有記憶手段と、他の端末へ送信すべきデータが前記受信手段により受信されると、該データを送信した端末の通信アドレスに対応付けて前記メンバー記憶手段に記憶されている属性が所定の属性であるか否かを判定し、所定の属性であれば、該データを前記共有記憶手段に書き込む動的書き込み手段と、前記メンバー記憶手段に記憶されている識別子が前記受信手段により受信されると、前記共有記憶手段にデータが書き込まれているか否かを判定し、書き込まれている場合には前記共有記憶手段に書き込まれているデータを該識別子に対応付けて前記メンバー記憶手段に通信アドレスが記憶されている端末へ前記ネットワーク経由で送信する動的追従手段とを追加した態様としてもよい。
【０００７】
前者の態様であれば、受信手段が、静的同報手段により特定のデータが送信された後に、メンバー記憶手段に記憶されている識別子を受信すると、静的追従手段が、この識別子の送信元の端末へ特定のデータを送信する。後者の態様であれば、受信手段が、動的同報手段によりデータが送信された後に、メンバー記憶手段に記憶されている識別子を受信すると、動的追従手段が、この識別子の送信元の端末へ、動的同報手段により送信されたデータを送信する。
【０００８】
さらに、本発明は、記憶手段を備えるコンピュータを、端末から送信されたデータをネットワーク経由で受信する受信手段と、メンバーを識別するための識別子およびメンバーの属性を示す属性データがメンバー毎に登録されているメンバーテーブル内の識別子が前記受信手段により受信されると、該識別子を送信した端末の通信アドレスを該識別子に対応付けて前記メンバーテーブルに登録する追加手段と、特定のデータの送信を要求するデータが前記受信手段により受信されると、該データを送信した端末の通信アドレスに対応付けて前記メンバーテーブルに登録されている属性が所定の属性であるか否かを判定し、所定の属性であれば、前記特定のデータを前記メンバーテーブルに通信アドレスが登録されている全ての端末へ前記ネットワーク経由で送信する静的同報手段と、前記記憶手段に記憶された第１のモードと第２のモードのいずれかを示すモードフラグの内容が前記第１のモードを示しているときに、当該モードフラグの変更を要求するデータが前記受信手段により受信されると、該データを送信した端末の通信アドレスに対応付けて前記メンバーテーブル内の属性が所定の属性であるか否かを判定し、所定の属性であれば、前記記憶手段に記憶される前記モードフラグの内容を前記第２のモードに変更する変更手段と、前記所定の属性に対応付けて記憶されている通信アドレスの端末以外の端末から、他の端末へ送信すべきデータが前記受信手段により受信されると、前記記憶手段が記憶する前記モードフラグの内容が第１のモードを示している場合には、該データを前記メンバーテーブルに通信アドレスが登録されている全ての端末から該データの送信元の端末を除外した端末へ前記ネットワーク経由で送信し、前記記憶手段が記憶する前記モードフラグの内容が第２のモードを示している場合には、該データを前記メンバーテーブルにおいて前記所定の属性に対応付けて登録されている通信アドレスの端末へ前記ネットワーク経由で送信する動的同報手段として機能させるためのプログラムを提供する。
このプログラムを実行したコンピュータでは、所定の属性のメンバーに使用されている端末が特定のデータの送信を要求するデータを送信すると、このデータを受信手段が受信し、静的同報手段が、この端末を含む予め登録されたメンバーに使用されている全ての端末へ当該データを送信する。
【発明の効果】
【０００９】
本発明によれば、所定の属性のメンバーに使用されている端末が特定のデータの送信を要求するデータを送信するだけで、この端末を含む予め登録されたメンバーに使用されている全ての端末間で特定のデータが共有される。よって、端末の使用者に負担をかけることなく、複数の端末間でデータを共有することができる。また、特定のデータの共有は所定の属性のメンバーにより主導されるから、教材の共有が教師により主導されるべき教習に用いて好適である。
【００１０】
また、本発明によれば、端末の使用者に負担をかけることなく、通信アドレスが後で対応付けられた端末と先に対応付けられた端末との間で、特定のデータや動的同報手段により送信されるデータを共有することができる。また、本発明によれば、これらの端末間で、所定の属性のメンバーに使用されている端末から送信され動的同報手段により送信されるデータを共有することができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して、本発明の一実施形態について説明する。
［１：構成］
図１は本実施形態に係る遠隔教習システムの構成を示すブロック図である。
本システムは、楽器演奏の教習を行うための仮想的な教室（以降、単に「教室」と記す）を提供する配信装置１、教室にログインして教習を行う教師Ａに使用される教師端末２Ａ、及び教室にログインして教習を行う生徒Ｂ〜Ｄに使用される生徒端末２Ｂ〜２Ｄを有する。配信装置１、教師端末２Ａ、及び生徒端末２Ｂ〜２Ｄはそれぞれコンピュータであり、ネットワーク３に接続されている。ネットワーク３はパケット通信網であり、配信装置１、教師端末２Ａ、及び生徒端末２Ｂ〜２Ｄは、ネットワーク３を用いてパケットを送受信することができる。また、ネットワーク３には、図示を略すが、生徒端末２Ｂ〜２ＤからＵＲＬ（Uniformed Resource Locator）を受信して当該ＵＲＬ内のドメイン名に応じた通信アドレスを返信するＤＮＳ（Domain Name System）サーバが接続されている。
【００１２】
教師Ａおよび生徒Ｂ〜Ｄには教室にログインするための所定のＵＲＬが予め配布されている。このＵＲＬは配信装置１のドメイン名を含んでいる。また、教師Ａおよび生徒Ｂ〜Ｄには予め固有のメンバーＩＤが割り当てられている。メンバーＩＤは教室にログイン可能なメンバーを識別するための情報であり、教師ＡにはメンバーＩＤ「Ａ」が、生徒Ｂ〜ＤにはメンバーＩＤ「Ｂ」〜「Ｄ」が割り当てられている。以降の説明では、必要に応じて、教師ＡをメンバーＡ、生徒ＢをメンバーＢ、生徒ＣをメンバーＣ、生徒ＤをメンバーＤと呼ぶ。また、以降の説明では、教師端末２Ａ及び生徒端末２Ｂ〜２Ｄの総称として「端末２」を用いる。
【００１３】
教師端末２ＡにはＭＩＤＩ楽器４１Ａ、マイク４２Ａ、スピーカ４３Ａ、及びカメラ４４Ａが接続されている。
ＭＩＤＩ楽器４１ＡはＭＩＤＩ（Musical Instruments Digital Interface）規格に対応した鍵盤楽器であり、図２に示すように、ＭＩＤＩキーボード４１１、ＭＩＤＩ音源４１２及びスピーカ４１３を有する。ＭＩＤＩキーボード４１１は鍵盤、ペダル、及び他の操作子を有し、これらの操作子がメンバーＡにより操作されると、ＭＩＤＩデータを生成してＭＩＤＩ音源４１２へ供給する。
【００１４】
ＭＩＤＩ音源４１２はＭＩＤＩデータに従って楽音信号を生成するとともに、ＭＩＤＩデータが音色を設定するためのＭＩＤＩデータであれば、このＭＩＤＩデータに従って音色を設定する。なお、上記の他の操作子はＭＩＤＩ音源４１２を設定する際に操作される。また、スピーカ４１３はＭＩＤＩ音源４１２により生成された楽音信号に従って放音する。
【００１５】
また、ＭＩＤＩ楽器４１ＡはＭＩＤＩキーボード４１１により生成されたＭＩＤＩデータを教師端末２Ａに供給する一方、教師端末２Ａから供給されたＭＩＤＩデータをＭＩＤＩ音源４１２へ供給する。
【００１６】
マイク４２ＡはメンバーＡの音声を集音して音声データとして教師端末２Ａへ供給する。スピーカ４３Ａは教師端末２Ａから供給された音声データに従って放音する。カメラ４４Ａは予め定められた時間間隔でメンバーＡを撮像してメンバーＡの姿を表す画像データを教師端末２Ａへ供給する。
【００１７】
マイク４２Ｂ〜４２Ｄ、スピーカ４３Ｂ〜４３Ｄ、及びカメラ４４Ｂ〜４４Ｄについても、上記と同様に構成されている。以降の説明では、ＭＩＤＩ楽器４１Ａ〜４１Ｄの総称として「ＭＩＤＩ楽器４１」を、マイク４２Ａ〜４２Ｄの総称として「マイク４２」を、スピーカ４３Ａ〜４３Ｄの総称として「スピーカ４３」を、カメラ４４Ａ〜４４Ｄの総称として「カメラ４４」を用いる。
【００１８】
［１−１：パケット］
図３はネットワーク３を用いて送受信されるパケットのデータ構造を模式的に示す図である。この図に示すように、パケットは、宛先の装置の通信アドレスを格納するための宛先アドレス領域Ｐ１、送信元の装置の通信アドレスを格納するための送信元アドレス領域Ｐ２、及び自身が運ぶデータ本体を格納するためのデータ領域Ｐ３を有する。データ領域Ｐ３には、教材データ、音声データ、画像データ、演奏データ、及びコマンドのいずれかが格納される。
【００１９】
教材データは楽譜等の教材の内容や使用状況を表すデータである。本システムにおいて教習中に配信されるデータには、配信装置１内に予め存在する静的データと、教習中に発生する動的データとがあり、教材データにも、静的データと動的データとがある。
音声データはマイク４２から端末２へ供給される音声データであり、メンバーＡ〜Ｄの音声を表す。例えば、メンバーＡの音声を表す音声データはマイク４２Ａから教師端末２Ａへ供給される音声データである。なお、全ての音声データは動的データである。
画像データはカメラ４４から端末２へ供給される画像データであり、メンバーＡ〜Ｄの姿を視覚的に表す。例えば、メンバーＡの様子を表す画像データはカメラ４４Ａから教師端末２Ａへ供給される画像データである。なお、全ての画像データは動的データである。
【００２０】
演奏データはＭＩＤＩ楽器４１の操作の内容を表すデータである。例えば、ＭＩＤＩ楽器４１Ａの演奏データはＭＩＤＩ楽器４１Ａから教師端末２Ａへ供給されるＭＩＤＩデータに時刻を表す時刻データを対応付けたデータであり、教師端末２Ａにおいてパケットに格納される。なお、全ての演奏データは動的データである。このような演奏データの生成および格納の様子について図４を参照して説明する。
【００２１】
この図では、Ｃ３のノートとＧ３のノートがｔ１にてオンとなり、ｔ２にてオフとなる。さらにＧ３のノートがｔ３にてオンとなり、ｔ４にてオフとなる。本実施形態では予め定められた収集時間（例えば５０ｍｓ）毎に、収集時間内に生成された演奏データを１つのパケットに格納するようにしており、ｔ１は第１の収集時間内の時刻であり、ｔ２〜ｔ４は第１の収集時間に後続する第２の収集時間内の時刻である。
【００２２】
この図に示す例では、第１の収集時間において１つの演奏データが生成される。この演奏データは、Ｃ３のノート及びＧ３のノートがオンになったことを示すＭＩＤＩデータとｔ１を表す時刻データとが対応付けられたデータである。この演奏データは１つのパケットに格納される。なお、ノートオンを示すＭＩＤＩデータには、打鍵強度（ベロシティ）を示すデータも内包されている。
【００２３】
また、第２の収集時間において３つの演奏データが生成される。１つ目の演奏データは、Ｃ３のノート及びＧ３のノートがオフになったことを示すＭＩＤＩデータとｔ２を表す時刻データとが対応付けられたデータである。２つ目の演奏データは、Ｇ３のノートがオンになったことを示すＭＩＤＩデータとｔ３を表す時刻データとが対応付けられたデータである。３つ目の演奏データは、Ｇ３のノートがオフになったことを示すＭＩＤＩデータとｔ４を表す時刻データとが対応付けられたデータである。これら３つの演奏データは１つのパケットに格納される。
【００２４】
コマンドは配信装置１または端末２により生成される。端末２により生成されるコマンドには、ログインコマンド、教材配信コマンド、モード変更コマンド及びログアウトコマンドがある。配信装置１により生成されるコマンドには、ログイン通知コマンド、共有状況通知コマンド及び画面配信コマンドがある。
【００２５】
ログインコマンドは教室へのログインを要求するためのコマンドであり、ＵＲＬとメンバーＩＤとを含む。
教材配信コマンドは教材データの配信を要求するためのコマンドである。
モード変更コマンドは演奏データの配信モードの変更を要求するためのコマンドである。演奏データの配信モードには、生徒端末２Ｂ〜２Ｄからの演奏データを全ての端末２で共有する共有モードと、教師端末２Ａのみへ送信する個別モードとがある。
ログアウトコマンドは教室からのログアウトを要求するためのコマンドであり、ＵＲＬを含む。
【００２６】
ログイン通知コマンドは教室へのログインに成功したことを通知するためのコマンドであり、ログインに成功したメンバーのメンバーＩＤを含む。
共有状況通知コマンドは教室にログインしているメンバーを通知するためのコマンドである。
画面配信コマンドは後述の教習画面データ１３２を含むコマンドである。
【００２７】
図３に示すように、データ領域Ｐ３はデータ本体を格納するための本体領域Ｐ３１、データ本体の生成元を示すメンバーＩＤを格納するための生成元領域Ｐ３２、及びデータ本体の種別を示す種別データを格納するための種別領域Ｐ３３に分かれている。例えば、ＭＩＤＩ楽器４１Ａの操作の内容を表す演奏データを運ぶパケットの本体領域Ｐ３１には当該演奏データが格納され、生成元領域Ｐ３２にはメンバーＩＤ「Ａ」が格納され、種別領域Ｐ３３には演奏データである旨の種別データが格納される。
【００２８】
［１−２：配信装置］
図５は配信装置１の構成を示すブロック図である。
この図に示すように、配信装置１は、ＣＰＵ（中央処理装置）１１、ＲＡＭ（Random Access Memory）１２、ハードディスク１３、及び通信部１４を有する。通信部１４はＣＰＵ１１とネットワーク３との間でパケットを中継する。
【００２９】
ハードディスク１３には共有領域１３１が確保されている。共有領域１３１とは追従データが書き込まれる領域である。追従データとは共有メンバーに共有されるべき教材データまたはＭＩＤＩデータであり、後からログインしたメンバーの環境（端末２の記憶内容やＭＩＤＩ音源４１２の設定状態）を先にログインしているメンバーの環境に追従させるために用いられる。共有メンバーとは教室にログインしているメンバーである。なお、以降の説明では、教室にログイン可能なメンバーのうち、共有メンバーでないメンバーを非共有メンバーと呼ぶ。
【００３０】
また、ハードディスク１３には、教習画面データ１３２、楽譜データ１３３（静的データ）、表示ページデータ１３４（静的データ）、モードフラグ１３５、メンバーテーブルＴ１、及び管理プログラム１３６が書き込まれている。
【００３１】
教習画面データ１３２はメンバーＡ〜Ｄが眺める教習画面を表すデータである。図６に示すように、教習画面は表示領域Ｒ１〜Ｒ９を有する。表示領域Ｒ１は楽譜の内容の表示に用いられる領域である。表示領域Ｒ２は各種のツールの表示に用いられる領域である。各種のツールとしては、教習に必要な教材データをダウンロードする旨の指示を入力するためのボタンや、楽譜のページを捲る旨の指示を入力するためのボタン、楽譜にテキストや図形を書き込むためのボタン等がある。表示領域Ｒ３は教師Ａの姿の表示に用いられる領域である。表示領域Ｒ４〜Ｒ７はそれぞれ生徒Ｂ〜Ｄの姿の表示に用いられる領域である。表示領域Ｒ８は鍵盤の操作内容の表示に用いられる領域である。表示領域Ｒ９はペダルの操作内容の表示に用いられる領域である。
【００３２】
楽譜データ１３３は楽譜の内容を表す教材データであり、表示ページデータ１３４は楽譜のページを示す教材データである。
モードフラグ１３５は演奏データの配信モード（共有モード／個別モード）を示すデータであり、初期状態では共有モードを示している。
メンバーテーブルＴ１は教習画面の表示領域Ｒ３〜Ｒ７にメンバーＡ〜Ｄを対応付けたテーブルである。この対応付けは、表示領域Ｒ３〜Ｒ７に固有の領域番号「Ｒ３」〜「Ｒ７」とメンバーＩＤ「Ａ」〜「Ｄ」を対応付けることにより為されている。具体的には、図７に示すように、領域番号「Ｒ３」にはメンバーＩＤ「Ａ」が、領域番号「Ｒ４」にはメンバーＩＤ「Ｂ」が、領域番号「Ｒ５」にはメンバーＩＤ「Ｃ」が、領域番号「Ｒ６」にはメンバーＩＤ「Ｄ」が対応付けられている。
【００３３】
メンバーテーブルＴ１はメンバーに関する情報も格納する。メンバーに関する情報としては、メンバーＩＤ、メンバーの属性（教師／生徒）、メンバーの状態（ログイン／ログアウト）、メンバーが使用している端末２の通信アドレスがある。メンバーテーブルＴ１の初期値は図７に示す通りであり、例えば、メンバーＡに関する情報としては、メンバーＩＤ「Ａ」、メンバーＡの属性「教師」、及びメンバーＡの状態「ログアウト」が格納されている。なお、メンバーＡ〜Ｄについて通信アドレスが格納されていないのは、メンバーＡ〜Ｄの状態がいずれも「ログアウト」であるためである。
【００３４】
管理プログラム１３６はＣＰＵ１１に後述の動作を実行させるためのプログラムである。ＣＰＵ１１は、図示せぬ電源が投入されると、管理プログラム１３６を読み出して実行する。この際、ＣＰＵ１１のワークエリアとしてＲＡＭ１２が使用される。ＣＰＵ１１が管理プログラム１３６を用いて行う動作については後述するが、その流れの一部は図８〜図１０に示す通りである。
【００３５】
［１−３：端末］
図１１は教師端末２Ａの構成を示すブロック図である。
この図に示すように、教師端末２Ａは、ＣＰＵ２１、ＲＡＭ２２、ハードディスク２３、通信部２４、操作部２５、ディスプレイ２６、ＭＩＤＩインタフェース２７、音声入出力インタフェース２８、及びカメラインタフェース２９を有する。
【００３６】
通信部２４はＣＰＵ２１とネットワーク３との間でパケットを中継する。
操作部２５はメンバーＡに操作され、この操作の内容に応じた操作信号をＣＰＵ２１に供給する。メンバーＡは、この操作部２５を操作することにより教師端末２Ａに各種の指示を入力することができる。ＣＰＵ２１は操作部２５からの操作信号を受けてメンバーＡが教師端末２Ａに入力した指示を特定することができる。
ディスプレイ２６はフレームメモリを備え、フレームメモリに書き込まれている画像データを用いて画像を表示する。この表示は予め定められた時間間隔で繰り返し行われる。
ＭＩＤＩインタフェース２７はＭＩＤＩ楽器４１Ａとの間でＭＩＤＩデータを中継する。
音声入出力インタフェース２８は、マイク４２Ａからの音声データをＣＰＵ２１へ中継する一方、ＣＰＵ２１からの音声データをスピーカ４３Ａへ中継する。
カメラインタフェース２９はカメラ４４Ａからの画像データをＣＰＵ２１へ中継する。
【００３７】
ＲＡＭ２２には、演奏データの送信に用いられる送信領域２２２、および受信した演奏データを一時的に格納するための即時再生領域２２１が確保される。即時再生領域２２１はメンバーＡを除いたメンバー（すなわちメンバーＢ、Ｃ及びＤ）毎に確保される。
ハードディスク２３には教材領域２３１、自ＩＤ領域２３２、画面領域２３３、対応領域２３４、及び選択領域２３５が確保されている。教材領域２３１は教材データが書き込まれる領域であり、自ＩＤ領域２３２はメンバーＡのメンバーＩＤ「Ａ」が書き込まれる領域であり、画面領域２３３は教習画面データ１３２が書き込まれる領域であり、対応領域２３４は後述の対応テーブルＴ２が書き込まれる領域であり、選択領域２３５は後述の選択テーブルＴ３が書き込まれる記憶領域である。
【００３８】
対応テーブルＴ２は、教習画面の表示領域Ｒ３〜Ｒ７にメンバーＡ〜Ｄを対応付けるテーブルであり、図１２に例示するように、前述のメンバーテーブルＴ１と同様のデータを格納する。ただし、図１２の対応テーブルＴ２において、メンバーＡの状態は「ログイン」や「ログアウト」ではなく、「自身」となっている。
選択テーブルＴ３は、表示領域Ｒ３〜Ｒ７の選択状態を示すデータテーブルであり、図１３に例示するように、表示領域Ｒ３〜Ｒ７の領域番号「Ｒ３」〜「Ｒ７」と表示領域Ｒ３〜Ｒ７の選択状態「選択」／「非選択」とを対応付けて格納している。
【００３９】
また、ハードディスク２３には、受信した演奏データを最終的に格納するためのＭＩＤＩ領域２３７が確保される。ＭＩＤＩ領域２３７はメンバーＡを除いたメンバー（すなわちメンバーＢ、Ｃ及びＤ）毎に確保される。
また、ハードディスク２３には端末プログラム２３６が書き込まれている。端末プログラム２３６はＣＰＵ２１に後述の動作を実行させるためのプログラムである。ＣＰＵ２１は、教師端末２Ａに入力された指示が端末プログラム２３６の実行を開始する旨の指示であれば、端末プログラム２３６を読み出して実行する。この際、ＣＰＵ２１のワークエリアとしてＲＡＭ２２が使用される。また、ＣＰＵ２１は、教師端末２Ａに入力された指示が教室からログアウトする旨の指示であれば、端末プログラム２３６の実行を終了する。ＣＰＵ２１が端末プログラム２３６を用いて行う動作については後述するが、その流れの一部は図１４〜図１６に示す通りである。
生徒端末２Ｂ〜２Ｄについても、上記と同様に構成されている。
【００４０】
［２：動作］
次に本システムの動作について、図１７に示す教習例に沿って説明する。
［２−１：メンバーＢのログイン］
まず、メンバーＢが生徒端末２Ｂを用いてログイン作業を開始する。
ログイン作業では、まず、メンバーＢが操作部２５を用いてＵＲＬとメンバーＩＤ「Ｂ」を送信して教室にログインする旨の指示を生徒端末２Ｂに入力する。このＵＲＬはメンバーＢに対して予め配布された所定のＵＲＬである。すると、操作部２５からＣＰＵ２１に操作信号が供給され、ＣＰＵ２１は供給された操作信号を受けてメンバーＢにより入力された指示を特定する。特定した指示は所定のＵＲＬとメンバーＩＤ「Ｂ」を送信して教室にログインする旨の指示であるから、ＣＰＵ２１は、通信部２４およびネットワーク３を介してＤＮＳサーバ（図示略）と通信し、このＵＲＬ内のドメイン名に応じた通信アドレス（すなわち配信装置１の通信アドレス）を取得してＲＡＭ２２に書き込む。次に、ＣＰＵ２１はこれらのＵＲＬ及びメンバーＩＤを含むログインコマンドを生成し、このログインコマンドを本体領域Ｐ３１に格納したパケットを生成し、このパケットを配信装置１宛で送信する。このパケットは配信装置１宛のパケットであるから、その宛先アドレス領域Ｐ１には配信装置１の通信アドレスが格納されている。また、生徒端末２Ｂを送信元としたパケットであるから、送信元アドレス領域Ｐ２には生徒端末２Ｂの通信アドレスが格納されている。このパケットは通信部２４及びネットワーク３を介して配信装置１に届く。
【００４１】
配信装置１のＣＰＵ１１は、このパケットを受信し（図８のステップＳＡ１）、このパケットに正当なログインコマンドが格納されているか否かを判定する（ステップＳＡ２）。このパケットの本体領域Ｐ３１にはログインコマンドが格納されており、このログインコマンド内のＵＲＬは所定のＵＲＬであり、このログインコマンド内のメンバーＩＤ「Ｂ」はメンバーテーブルＴ１に格納されているから、この判定結果は「ＹＥＳ」となる。よって、ＣＰＵ１１はログイン処理を行う（ステップＳＡ３）。
【００４２】
ログイン処理において、ＣＰＵ１１はメンバーＢを共有メンバーとする共有処理を行う（図９のステップＳＢ１）。この共有処理では、ＣＰＵ１１はメンバーテーブルＴ１を更新する。この更新では、メンバーＢの状態が「ログアウト」から「ログイン」に変化し、メンバーＢが使用している端末２の通信アドレスとして生徒端末２Ｂの通信アドレスが格納される。この結果、メンバーテーブルＴ１の内容は図１８に示す通りとなる。
【００４３】
さらに、共有処理では、ＣＰＵ１１は第１〜第３のパケットを生成し、これらを生徒端末２Ｂ宛で送信する。これらのパケットの種別領域Ｐ３３にはコマンドである旨の種別データが格納されている。
第１のパケットの本体領域Ｐ３１にはメンバーＩＤ「Ｂ」を含むログイン通知コマンドが格納されている。また、第２のパケットの本体領域Ｐ３１には教習画面データ１３２を含む画面配信コマンドが格納されている。また、第３のパケットの本体領域Ｐ３１には、メンバーテーブルＴ１を含む共有状況通知コマンドが格納されている。この第３のパケットは共有メンバーが使用している端末２宛で送信されるべきものであるが、ここでは、共有メンバーがメンバーＢのみであるから、生徒端末２Ｂ宛で送信される。
【００４４】
次に、ＣＰＵ１１はメンバーテーブルＴ１を参照してメンバーＢの属性が「教師」であるか否かを判定する（ステップＳＢ２）。メンバーＢの属性は「生徒」であるから、この判定結果は「ＮＯ」となる。よって、ＣＰＵ１１は追従データが存在するか否かを判定する（ステップＳＢ３）。この時点では、共有領域１３１にデータは書き込まれていないから、この判定結果は「ＮＯ」となる。よって、ＣＰＵ１１はログイン処理を終了する。
【００４５】
生徒端末２ＢのＣＰＵ２１は、上記の第１のパケットを受信し、このパケット内のメンバーＩＤ「Ｂ」を自ＩＤ領域２３２に書き込む。また、上記の第２のパケットを受信し、このパケット内の教習画面データ１３２を画面領域２３３に書き込む。また、上記の第３のパケットを受信し、このパケット内のメンバーテーブルＴ１の内容を変更して対応テーブルＴ２を生成し、この対応テーブルＴ２を対応領域２３４に書き込む。この変更では、メンバーＢの状態が「ログイン」から「自身」に変化する。この結果、対応領域２３４には図１９に示す対応テーブルＴ２が書き込まれる。
【００４６】
さらに、ＣＰＵ２１は対応テーブルＴ２を参照し、即時再生領域２２１およびＭＩＤＩ領域２３７を状態が「自身」ではないメンバー（すなわちメンバーＡ、Ｃ及びＤ）毎に確保する。即時再生領域２２１はＲＡＭ２２上に確保され、ＭＩＤＩ領域２３７はハードディスク１３上に確保される。また、ＣＰＵ２１は対応テーブルＴ２を参照して選択テーブルＴ３を作成し、ハードディスク２３上の選択領域２３５に書き込む。ここでは、状態「ログイン」及び状態「ログアウト」が選択状態「選択」に変更され、状態「自身」が「非選択」に変更される。この結果、選択領域２３５には図２０に示す選択テーブルＴ３が書き込まれる。
【００４７】
このとき、カメラ４４ＢはメンバーＢを撮像してメンバーＢの姿を表す画像データを生徒端末２Ｂへ供給している。ＣＰＵ２１はカメラ４４Ｂからの画像データを受け取り、受け取った画像データ（動的データ）を本体領域Ｐ３１に含むパケットを生成し、生成したパケットを配信装置１宛で送信する。送信されるパケットの種別領域Ｐ３３には画像データである旨の種別データが格納されている。
【００４８】
また、マイク４２ＢはメンバーＢの音声を集音して音声データとして生徒端末２Ｂへ供給している。ＣＰＵ２１はマイク４２Ｂから音声データを受け取り、受け取った音声データ（動的データ）を本体領域Ｐ３１に含むパケットを生成し、生成したパケットを配信装置１宛で送信する。送信されるパケットの種別領域Ｐ３３には音声データである旨の種別データが格納されている。
これらのパケットの生成元領域Ｐ３２にはメンバーＩＤ「Ｂ」が格納されている。
【００４９】
また、ＣＰＵ２１は送信領域２２２をＲＡＭ２２上に確保し、図１４に示すＭＩＤＩ送信処理を開始する。ＭＩＤＩ送信処理において、ＣＰＵ２１は送信領域２２２の記憶内容をクリアし（ステップＳＣ１）、予め定められた収集時間後にタイムアウトする送信用タイマをセットするが、この時点では、ＭＩＤＩ楽器４１Ｂが操作されていないから、送信領域２２２にデータが書き込まれることなく送信用タイマがタイムアウトする（ステップＳＣ２：ＮＯ、ＳＣ３：ＮＯ、ＳＣ２：ＮＯ、…、ＳＣ２：ＹＥＳ）。よって、ＣＰＵ２１は演奏データを格納したパケットを送信することなく、タイムアウトした送信用タイマを再セットする処理を繰り返す（ステップＳＣ４：ＮＯ、ＳＣ１、…）。
【００５０】
配信装置１のＣＰＵ１１は、生徒端末２Ｂからのパケットを受信し、正当なログインコマンドが格納されているか否かを判定する（ステップＳＡ１、ＳＡ２）。この時点で受信されるパケットは、本体領域Ｐ３１に画像データ又は音声データを格納したパケットである。したがって、この判定結果は「ＮＯ」となる。よって、ＣＰＵ１１はメンバーテーブルＴ１を参照し、受信したパケットの生成元領域Ｐ３２内のメンバーＩＤ「Ｂ」のメンバー（すなわちメンバーＢ）が共有メンバーであるか否かを判定する（ステップＳＡ４）。メンバーＢは共有メンバーであるから、この判定結果は「ＹＥＳ」となる。よって、ＣＰＵ１１はパケット処理を行う（ステップＳＡ５）。
【００５１】
受信したパケットの種別領域Ｐ３３には画像データ又は音声データである旨の種別データが格納されているから、パケット処理では、ＣＰＵ１１は、当該パケットのデータ領域Ｐ３に格納されているデータを抽出し、このデータをデータ領域Ｐ３に格納したパケットを生成し、このパケットを、メンバーＢを除く全ての共有メンバーの端末２へ送信しようとする（図１０のステップＳＤ１：ＮＯ、ＳＤ２：ＮＯ、ＳＤ３：ＮＯ、ＳＤ４）。しかし、この時点での共有メンバーはメンバーＢのみであり、宛先となる端末２は存在しないから、ＣＰＵ１１はパケットを送信しない。つまり、生徒端末２Ｂからの画像データ及び音声データは配信装置１において破棄される。
【００５２】
また、この時点では、生徒端末２Ｂに他の端末２からのデータが供給されることはないから、生徒端末２ＢのＣＰＵ２１は、カメラ４４Ｂからの画像データ、画面領域２３３内の教習画面データ１３２、対応領域２３４内の対応テーブルＴ２、及び選択領域２３５内の選択テーブルＴ３を用いて、教習画面を表す画像データを生成し、生成した画像データをディスプレイ２６のフレームメモリに書き込む。この結果、ディスプレイ２６には、図２１に示す教習画面が表示される。この教習画面において、選択テーブルＴ３により選択されている表示領域Ｒ３及びＲ５〜Ｒ７は太枠で強調されており、対応テーブルＴ２により状態「自身」が対応付けられた表示領域Ｒ４内にはカメラ４４Ｂからの画像データで表される画像（すなわちメンバーＢの姿）が表示されている。
【００５３】
［２−２：メンバーＡのログイン］
図１７の教習例では、次に、メンバーＡが教師端末２Ａを用いてログイン作業を行う。このログイン作業では、メンバーＡは操作部２５を用いて所定のＵＲＬとメンバーＩＤ「Ａ」を送信して教室にログインする旨の指示を教師端末２Ａに入力する。この結果、教師端末２ＡのＣＰＵ２１は、所定のＵＲＬとメンバーＩＤ「Ａ」を含むログインコマンドを生成し、このログインコマンドを本体領域Ｐ３１に格納したパケットを生成し、生成したパケットを配信装置１宛で送信する。
【００５４】
配信装置１のＣＰＵ１１は、このパケットを受信してログイン処理を行う（ステップＳＡ１、ＳＡ２：ＹＥＳ、ＳＡ３）。メンバーＡの属性は「教師」であるから、このログイン処理では追従データの有無は判定されない（ステップＳＢ２：ＹＥＳ）。このログイン処理の結果、配信装置１では、メンバーＡが共有メンバーとなり、メンバーテーブルＴ１が更新される。更新後のメンバーテーブルＴ１には、メンバーＡの状態として「ログイン」が登録され、メンバーＡが使用している端末２の通信アドレスとして教師端末２Ａの通信アドレスが登録されている。
【００５５】
また、上記のログイン処理の結果、教師端末２Ａでは、自ＩＤ領域２３２にメンバーＩＤ「Ａ」が書き込まれ、対応領域２３４に対応テーブルＴ２が書き込まれ、選択領域２３５に選択テーブルＴ３が書き込まれる。この対応テーブルＴ２において状態「自身」が対応付けられているのはメンバーＡであり、この選択テーブルＴ３において選択状態「非選択」が対応付けられているのは表示領域Ｒ３である。
【００５６】
また、上記のログイン処理において、メンバーＡが共有メンバーとなるから、前述の第３のパケットと同様のパケットが教師端末２Ａのみならず、生徒端末２Ｂにも届く。生徒端末２ＢのＣＰＵ２１は、このパケットを受信し、このパケット内のメンバーテーブルＴ１を用いて対応テーブルＴ２を生成し、この対応テーブルＴ２を対応領域２３４に上書きする。つまり、生徒端末２Ｂの対応テーブルＴ２が更新される。更新後の対応テーブルＴ２が更新前のテーブルから変化した点は、メンバーＡの状態が「ログアウト」から「ログイン」に変わった点のみである。
また、上記のログイン処理の結果、教師端末２Ａでは、画面領域２３３に教習画面データ１３２が書き込まれる。
【００５７】
これに並行して、教師端末２ＡのＣＰＵ２１は、カメラ４４Ａからの画像データを本体領域Ｐ３１に格納したパケットを生成し、生成したパケットを配信装置１宛で送信するとともに、マイク４２Ａからの音声データを本体領域Ｐ３１に格納したパケットを生成し、生成したパケットを配信装置１宛で送信する。また、生徒端末２ＢのＣＰＵ２１は、カメラ４４Ｂからの画像データを本体領域Ｐ３１に格納したパケットを生成し、生成したパケットを配信装置１宛で送信するとともに、マイク４２Ｂからの音声データを本体領域Ｐ３１に格納したパケットを生成し、生成したパケットを配信装置１宛で送信する。
【００５８】
配信装置１のＣＰＵ１１は、教師端末２Ａからのパケットを受信し、パケット処理を行う（ステップＳＡ１、ＳＡ２：ＮＯ、ＳＡ４：ＹＥＳ、ＳＡ５）。この時点で受信されるパケットは、種別領域Ｐ３３に音声データ又は画像データである旨の種別データを格納したパケットであるから、パケット処理では、ＣＰＵ１１は、受信したパケットのデータ領域Ｐ３に格納されているデータを抽出し、このデータをデータ領域Ｐ３に格納したパケットを生成し、このパケットを、メンバーＡを除く全ての共有メンバーの端末２（すなわち生徒端末２Ｂ）宛で送信する（図１０のステップＳＤ１：ＮＯ、ＳＤ２：ＮＯ、ＳＤ３：ＮＯ、ＳＤ４）。これと同様の処理が生徒端末２Ｂからのパケットについても行われる。こうして、教師端末２Ａからの画像データ及び音声データは生徒端末２Ｂへ、生徒端末２Ｂからの画像データ及び音声データは教師端末２Ａへ送信される。
【００５９】
教師端末２ＡのＣＰＵ２１は教師端末２Ａ宛のパケットを受信する。この時点で受信されるパケットは、本体領域Ｐ３１に画像データ又は音声データを格納したパケットである。ＣＰＵ２１は、受信したパケットの種別領域Ｐ３３に音声データである旨の種別データが格納されていれば、このパケットの本体領域Ｐ３１内の音声データをスピーカ４３Ａへ供給する。この結果、スピーカ４３ＡからはメンバーＢの音声が放音される。
【００６０】
一方、このパケットの種別領域Ｐ３３に画像データである旨の種別データが格納されていれば、ＣＰＵ２１は、このパケットの本体領域Ｐ３１内の画像データを、当該パケットの生成元領域Ｐ３２内のメンバーＩＤのメンバー（ここではメンバーＢ）の画像データとして抽出する。次に、ＣＰＵ２１は、メンバーＢの画像データ、カメラ４４Ａからの画像データ、画面領域２３３内の教習画面データ１３２、対応領域２３４内の対応テーブルＴ２、及び選択領域２３５内の選択テーブルＴ３を用いて、教習画面を表す画像データを生成し、生成した画像データをディスプレイ２６のフレームメモリに書き込む。この結果、ディスプレイ２６には、図２２に示す教習画面が表示される。
【００６１】
この教習画面において、選択テーブルＴ３により選択されている表示領域Ｒ４〜Ｒ７は太枠で強調されており、対応テーブルＴ２により状態「自身」が対応付けられた表示領域Ｒ３内にはカメラ４４Ａからの画像データで表される画像（すなわちメンバーＡの姿）が表示されており、対応テーブルＴ２によりメンバーＢが対応付けられた表示領域Ｒ４内にはメンバーＢの画像データで表される画像（すなわちメンバーＢの姿）が表示されている。
これと同様に、スピーカ４３ＢからはメンバーＡの音声が放音され、生徒端末２Ｂのディスプレイ２６にはメンバーＡ及びＢの姿が表示される。
【００６２】
［２−３：メンバーＣのログイン］
図１７の教習例では、次に、メンバーＣが生徒端末２Ｃを用いてログイン作業を行う。この結果、配信装置１ではメンバーＢのログイン時と同様のログイン処理が行われる。このログイン処理の結果、配信装置１では、メンバーＣが共有メンバーとなり、メンバーテーブルＴ１が更新される。更新後のメンバーテーブルＴ１には、メンバーＣの状態として「ログイン」が登録され、メンバーＣが使用している端末２の通信アドレスとして生徒端末２Ｃの通信アドレスが登録されている。
【００６３】
また、上記のログイン処理の結果、生徒端末２Ｃでは、自ＩＤ領域２３２にメンバーＩＤ「Ｃ」が書き込まれ、対応領域２３４に対応テーブルＴ２が書き込まれ、選択領域２３５に選択テーブルＴ３が書き込まれる。この対応テーブルＴ２において状態「自身」が対応付けられているのはメンバーＣであり、この選択テーブルＴ３において選択状態「非選択」が対応付けられているのは表示領域Ｒ５である。
【００６４】
また、上記のログイン処理において、メンバーＣが共有メンバーとなるから、前述の第３のパケットと同様のパケットが教師端末２Ａ及び生徒端末２Ｂにも届く。よって、教師端末２Ａ及び生徒端末２Ｂにおいて対応領域２３４内のメンバーテーブルＴ１が更新される。更新後の対応テーブルＴ２が更新前のテーブルから変化した点は、メンバーＣの状態が「ログアウト」から「ログイン」に変化した点のみである。また、上記のログイン処理の結果、生徒端末２Ｃでは、画面領域２３３に教習画面データ１３２が書き込まれる。
【００６５】
最終的には、スピーカ４３ＣからはメンバーＡ及びＢの音声が放音され、生徒端末２Ｃのディスプレイ２６には図２３に示す教習画面が表示される。この教習画面において、選択領域２３５内の選択テーブルＴ３により選択されている表示領域Ｒ３、Ｒ４、Ｒ６及びＲ７は太枠で強調されており、対応領域２３４内の対応テーブルＴ２により状態「自身」が対応付けられた表示領域Ｒ５内にはカメラ４４Ｃからの画像データで表される画像（すなわちメンバーＣの姿）が表示されており、この対応テーブルＴ２によりメンバーＡ及びＢが対応付けられた表示領域Ｒ３及びＲ４内にはメンバーＡ及びＢの画像データで表される画像（すなわちメンバーＡ及びＢの姿）が表示されている。
【００６６】
これと同様に、スピーカ４３ＡからはメンバーＢ及びＣの音声が放音され、教師端末２Ａのディスプレイ２６にはメンバーＡ〜Ｃの姿が表示される。また、スピーカ４３ＢからはメンバーＡ及びＣの音声が放音され、生徒端末２Ｂのディスプレイ２６にはメンバーＡ〜Ｃの姿が表示される。
【００６７】
［２−４：教材データの配信］
図１７の教習例では、次に、メンバーＡが教師端末２Ａの操作部２５を操作して、教習で使用される教材データの配信を要求する旨の指示を教師端末２Ａに入力する。ＣＰＵ２１は、この際に操作部２５から供給される操作信号を受けて、メンバーＡにより入力された指示を特定する。特定した指示は教習で使用される教材データの配信を要求する旨の指示であるから、ＣＰＵ２１は教材配信コマンドを生成し、この教材配信コマンドを本体領域Ｐ３１に格納したパケットを生成し、生成したパケットを配信装置１宛で送信する。このパケットの種別領域Ｐ３３にはコマンドである旨の種別データが格納されており、生成元領域Ｐ３２にはメンバーＩＤ「Ａ」が格納されている。このメンバーＩＤ「Ａ」は自ＩＤ領域２３２に書き込まれているメンバーＩＤである。
【００６８】
配信装置１のＣＰＵ１１は、このパケットを受信し、パケット処理を行う（ステップＳＡ１、ＳＡ２：ＮＯ、ＳＡ４：ＹＥＳ、ＳＡ５）。このパケットの種別領域Ｐ３３にはコマンドである旨の種別データが格納されているから、パケット処理では、ＣＰＵ１１は、このコマンドが正当なログアウトコマンドであるか否かを判定する（ステップＳＤ１：ＹＥＳ、ＳＤ５）。このコマンドは教材配信コマンドであるから、この判定結果は「ＮＯ」となる。よって、ＣＰＵ１１は、このパケットの生成元領域Ｐ３２内のメンバーＩＤのメンバーが教師であるか否かを、メンバーテーブルＴ１を参照して判定する（ステップＳＤ６）。
【００６９】
このパケットの生成元領域Ｐ３２内のメンバーＩＤは「Ａ」であり、メンバーＩＤ「Ａ」には属性「教師」が対応付けられているから、この判定結果は「ＹＥＳ」となる。よって、ＣＰＵ１１は、このコマンドが教材配信コマンドであるか否かを判定する（ステップＳＤ７）。この判定結果は「ＹＥＳ」となる。よって、ＣＰＵ１１は、楽譜データ１３３（静的データ）及び表示ページデータ１３４（静的データ）をハードディスク１３から読み出して共有領域１３１に書き込む一方、これらの教材データを本体領域Ｐ３１に格納したパケットを生成し、生成したパケットを送信する（ステップＳＤ８、ＳＤ４）。ここで送信されるパケットの宛先は教師端末２Ａ、生徒端末２Ｂ及び生徒端末２Ｃであり、当該パケットの種別領域Ｐ３３には教材データである旨の種別データが格納されている。
【００７０】
教師端末２ＡのＣＰＵ２１は、教師端末２Ａのパケットを受信し、受信したパケット内の教材データを教材領域２３１に書き込む。次に、ＣＰＵ２１は、教材領域２３１内の教材データと、メンバーＢ及びＣの画像データ、カメラ４４Ａからの画像データ、画面領域２３３内の教習画面データ１３２、対応領域２３４内の対応テーブルＴ２、及び選択領域２３５内の選択テーブルＴ３を用いて、教習画面を表す画像データを生成し、生成した画像データをディスプレイ２６のフレームメモリに書き込む。この結果、ディスプレイ２６には、図２４に示す教習画面が表示される。この教習画面の表示領域Ｒ１内には、教材領域２３１内の楽譜データで表される楽譜の内容のうち、教材領域２３１内の表示ページデータで表されるページの内容が表示されている。
【００７１】
これと同様の処理が、生徒端末２Ｂ及び２Ｃにおいても行われ、結局、共有メンバーが使用している教師端末２Ａ、生徒端末２Ｂ及び生徒端末２Ｃにおいて、同一の楽譜の内容が表示される。
なお、教師端末２Ａではなく生徒端末２Ｂから、教材配信コマンドを本体領域Ｐ３１に格納したパケットが配信装置１宛で送信された場合、このパケットの生成元領域Ｐ３２内のメンバーＩＤは「Ｂ」となり、このメンバーＩＤ「Ｂ」には属性「生徒」が対応付けられているから、配信装置１のＣＰＵ１１は上述の処理を行うことなくパケット処理を終了する（ステップＳＤ６：ＮＯ）。つまり、共有メンバーのうち、教習で使用される教材の配信を指示することができるのは教師Ａのみである。
【００７２】
［２−５：教材のページ捲り］
図１７の教習例では、次に、メンバーＡが教師端末２Ａの操作部２５を操作して、教材のページを捲る旨の指示を教師端末２Ａに入力する。ＣＰＵ２１は、この際に操作部２５から供給される操作信号を受けてメンバーＡにより入力された指示を特定する。特定した指示は教材のページを捲る旨の指示であるから、ＣＰＵ２１は、教材領域２３１内の表示ページデータを、次のページのページ番号を示すように更新する。次に、ＣＰＵ２１は、教材領域２３１内の教材データと、メンバーＢ及びＣの画像データ、カメラ４４Ａからの画像データ、画面領域２３３内の教習画面データ１３２、対応領域２３４内の対応テーブルＴ２、及び選択領域２３５内の選択テーブルＴ３を用いて、教習画面を表す画像データを生成し、生成した画像データをディスプレイ２６のフレームメモリに書き込む。この結果、教師端末２Ａの教習画面の表示領域Ｒ１には、楽譜の次のページの内容が表示される。
【００７３】
また、ＣＰＵ２１は、表示ページデータを更新すると、更新後の表示ページデータ（動的データ）を本体領域Ｐ３１に格納したパケットを生成し、生成したパケットを配信装置１宛で送信する。このパケットの生成元領域Ｐ３２にはメンバーＩＤ「Ａ」が格納されており、種別領域Ｐ３３には教材データである旨の種別データが格納されている。
【００７４】
配信装置１のＣＰＵ１１は、このパケットを受信してパケット処理を行う（ステップＳＡ１、ＳＡ２：ＮＯ、ＳＡ４：ＹＥＳ、ＳＡ５）。このパケットの種別領域Ｐ３３には教材データである旨の種別データが格納されているから、パケット処理では、ＣＰＵ１１は、このパケットの生成元領域Ｐ３２に格納されたメンバーＩＤのメンバーの属性が「教師」であるか否かを、メンバーテーブルＴ１を参照して判定する（ステップＳＤ１：ＮＯ、ＳＤ２：ＹＥＳ、ＳＤ９）。このパケットの生成元領域Ｐ３２内のメンバーＩＤは「Ａ」であり、メンバーＩＤ「Ａ」には属性「教師」が対応付けられているから、この判定結果は「ＹＥＳ」となる。
【００７５】
よって、ＣＰＵ１１は、このパケットの本体領域Ｐ３１内の表示ページデータを共有領域１３１に書き込む（ステップＳＤ１０）。つまり、共有領域１３１内の表示ページデータを更新する。次に、ＣＰＵ１１は、このパケットのデータ領域Ｐ３に格納されているデータを抽出し、抽出したデータをデータ領域Ｐ３に格納したパケットを生成し、生成したパケットを共有メンバーに使用されている生徒端末２Ｂ及び２Ｃ宛で送信する（ステップＳＤ４）。
【００７６】
生徒端末２ＢのＣＰＵ２１は、生徒端末２Ｂ宛のパケットを受信する。受信したパケットの種別領域Ｐ３３には教材データである旨の種別データが格納されているから、ＣＰＵ２１は当該パケットの本体領域Ｐ３１内の表示ページデータを教材領域２３１に書き込む。つまり、教材領域２３１内の教材データを更新する。これにより、最終的には、生徒端末２Ｂの教習画面の表示領域Ｒ１には、楽譜の次のページの内容が表示される。これと同様の処理が、生徒端末２Ｃにおいても行われる。
結局、教師端末２Ａ、生徒端末２Ｂ及び生徒端末２Ｃにおいて、楽譜の次のページの内容が表示される。
【００７７】
なお、教師端末２Ａではなく生徒端末２Ｂから、ページ捲りデータを本体領域Ｐ３１に格納したパケットが配信装置１宛で送信された場合、このパケットの生成元領域Ｐ３２には生徒ＢのメンバーＩＤ「Ｂ」が格納されており、メンバーＩＤ「Ｂ」には属性「生徒」が対応付けられているから、配信装置１のＣＰＵ１１は上述の処理を行うことなくパケット処理を終了する（ステップＳＤ９：ＮＯ）。つまり、共有メンバーのうち、楽譜のページを捲ることができるのは教師Ａのみである。
【００７８】
［２−６：メンバーＡによるＭＩＤＩ音源の設定］
図１７の教習例では、次に、メンバーＡがＭＩＤＩ楽器４１Ａを操作し、ＭＩＤＩ音源４１２の音色を設定する。この際、ＭＩＤＩ楽器４１Ａから教師端末２ＡへＭＩＤＩデータが供給され、これを教師端末２ＡのＣＰＵ２１が受け取る。ＣＰＵ２１は図１４に示す送信処理を行っており、ＭＩＤＩデータを受け取ると、このＭＩＤＩデータが、教習には不要であって、教習の枠を超えた要求を防止するためにフィルタリングすべきＭＩＤＩデータ（例えばダンプリクエスト）や送信するデータ量を削減するためにフィルタリングすべきＭＩＤＩデータ（例えばペダル／鍵盤の連続値のように後述する画像の生成に用いられないＭＩＤＩデータ）、または教習のレベル・内容に合わないためにフィルタリングすべきＭＩＤＩデータであるか否かを判定する（ステップＳＣ３：ＹＥＳ、ＳＣ６）。受け取ったＭＩＤＩデータはＭＩＤＩ音源４１２の音色を設定するためのＭＩＤＩデータであるから、この判定結果は「ＮＯ」となる。よって、ＣＰＵ２１は入力したＭＩＤＩデータと現在時刻を表す時刻データとを対応付けて演奏データを生成し、これを送信領域２２２に書き込む（ステップＳＣ７）。ＣＰＵ２１は、このような処理を送信用タイマがタイムアウトするまで繰り返す。
【００７９】
そして、送信用タイマがタイムアウトすると、ＣＰＵ２１は送信領域２２２に演奏データが書き込まれているか否かを判定する（ステップＳＣ４）。ここでは、送信領域２２２に演奏データが書き込まれているから、この判定結果は「ＹＥＳ」となる。よって、ＣＰＵ２１は送信領域２２２から演奏データを読み出し、読み出した演奏データ（動的データ）を本体領域Ｐ３１に格納したパケットを生成し、生成したパケットを配信装置１宛で送信する（ステップＳＣ２：ＹＥＳ、ＳＣ４：ＹＥＳ、ＳＣ５）。このパケットの生成元領域Ｐ３２にはメンバーＩＤ「Ａ」が格納されており、種別領域Ｐ３３には演奏データである旨の種別データが格納されている。
【００８０】
配信装置１のＣＰＵ１１は、教師端末２Ａからのパケットを受信し、パケット処理を行う（ステップＳＡ１、ＳＡ２：ＮＯ、ＳＡ４：ＹＥＳ、ＳＡ５）。受信したパケットの本体領域Ｐ３１には演奏データである旨の種別データが格納されているから、パケット処理では、ＣＰＵ１１は、当該パケットの本体領域Ｐ３１内の演奏データにダンプリクエスト及びダンプレスポンスの少なくとも一方が含まれているか否かを判定する（ステップＳＤ１：ＮＯ、ＳＤ２：ＮＯ、ＳＤ３：ＹＥＳ、ＳＤ１１）。当該パケット内のＭＩＤＩデータはＭＩＤＩ音源４１２の音色を設定するためのＭＩＤＩデータであるから、この判定結果は「ＮＯ」となる。
【００８１】
よって、ＣＰＵ１１は、当該パケットの生成元領域Ｐ３２に格納されたメンバーＩＤのメンバーの属性が「教師」であるか否かを、メンバーテーブルＴ１を参照して判定する（ステップＳＤ１２）。当該パケットの生成元領域Ｐ３２内のメンバーＩＤは「Ａ」であり、メンバーＩＤ「Ａ」には属性「教師」が対応付けられているから、この判定結果は「ＹＥＳ」となる。よって、ＣＰＵ１１は、当該パケットの本体領域Ｐ３１内の演奏データから、ＭＩＤＩ音源４１２の音色を設定するためのＭＩＤＩデータを抽出し、抽出したＭＩＤＩデータ（動的データ）を共有領域１３１に書き込む（ステップＳＤ１３）。
【００８２】
次に、ＣＰＵ１１は、当該パケットのデータ領域Ｐ３から演奏データを抽出し、抽出した演奏データをデータ領域Ｐ３に格納したパケットを生成し、生成したパケットを生徒端末２Ｂ及び２Ｃ宛で送信する（ステップＳＤ４）。
【００８３】
生徒端末２ＢのＣＰＵ２１は生徒端末２Ｂ宛のパケットを受信する。受信したパケットの種別領域Ｐ３３には演奏データである旨の種別データが格納されているから、ＣＰＵ２１は当該パケットの本体領域Ｐ３１に時刻データが格納されているか否かを調べる。当該パケットの本体領域Ｐ３１には時刻データが格納されているから、ＣＰＵ２１は、本体領域Ｐ３１内の演奏データを、生成元領域Ｐ３２内のメンバーＩＤのメンバー（ここではメンバーＡ）の演奏データとして抽出し、このメンバー用に確保された即時再生領域２２１に追記する。この際、ＣＰＵ２１は、当該パケットの受信を開始した時点から予め設定された余裕時間（例えば５００ｍｓ）が経過した後に、メンバーＡ用の即時再生領域２２１に最初に書き込んだ時刻データで表される時刻を初期値として再生用タイマをスタートさせ、図１５に示す即時再生処理および図１６に示す移動処理を並列に実行する。なお、上記の余裕時間はネットワーク３におけるパケットの伝送遅延のバラツキを吸収するために設定されている。
【００８４】
即時再生処理では、ＣＰＵ２１は、再生タイミングを迎えた演奏データが即時再生領域２２１に存在するか否かを判定し続ける（ステップＳＥ１：ＮＯ、ＳＥ２：ＮＯ）。この判定は、再生用タイマのカウント値と即時再生領域２２１内の時刻データとを比較することにより行われる。そして、メンバーＡ用の即時再生領域２２１に書き込まれた演奏データの再生タイミングを迎えると、ＣＰＵ２１は、対応テーブルＴ２及び選択テーブルＴ３を参照して、再生タイミングを迎えた演奏データが再生すべき演奏データとして選択されているか否かを判定する（ステップＳＥ２：ＹＥＳ、ＳＥ３）。メンバーＡに対応する表示領域Ｒ３の選択状態が「選択」となっているから、この判定結果は「ＹＥＳ」となる。
【００８５】
よって、ＣＰＵ２１は、再生タイミングを迎えた演奏データについて再生処理を行う（ステップＳＥ４）。つまり、再生タイミングを迎えた演奏データからＭＩＤＩデータを抽出してＭＩＤＩ楽器４１Ｂに供給する。ここでＭＩＤＩ楽器４１Ｂに供給されるＭＩＤＩデータはＭＩＤＩ音源４１２の音色を設定するためのＭＩＤＩデータであるから、ＭＩＤＩ楽器４１ＢのＭＩＤＩ音源４１２の音色が設定される。
【００８６】
また、ＣＰＵ２１はＭＩＤＩ楽器４１Ｂに供給したＭＩＤＩデータが可視化可能なＭＩＤＩデータを含んでいるか否かを判定する（ステップＳＥ５）。可視化可能なＭＩＤＩデータとは、鍵盤やペダルのように演奏中に用いられる操作子の動きに変換することができるＭＩＤＩデータである。ここでは、ＭＩＤＩ楽器４１Ｂに供給したＭＩＤＩデータはＭＩＤＩ音源４１２の音色の設定のためのＭＩＤＩデータであるから、この判定結果は「ＮＯ」となる。よって、ＣＰＵ２１は可視化処理を行わない。
【００８７】
一方、移動処理において、ＣＰＵ２１は、メンバーＡ用の即時再生領域２２１に書き込まれている演奏データが無くなるまで、再生タイミングを過ぎた演奏データを当該即時再生領域２２１からメンバーＡ用のＭＩＤＩ領域２３７へ移動する処理を繰り返す（ステップＳＦ１：ＮＯ、ＳＦ２、ＳＦ３）。メンバーＡ用の即時再生領域２２１から全ての演奏データが移動されると、ＣＰＵ２１は、移動処理および即時再生処理を終了する（ステップＳＦ１：ＹＥＳ、ＳＥ１：ＹＥＳ）。
【００８８】
これと同様の処理が、生徒端末２Ｃにおいても行われる。こうして、ＭＩＤＩ楽器４１Ｂ及び４１ＣのＭＩＤＩ音源４１２の音色が、ＭＩＤＩ楽器４１Ａにおける音色と同様に設定される。
【００８９】
［２−７：メンバーＡの演奏］
図１７の教習例では、次に、メンバーＡがＭＩＤＩ楽器４１Ａを用いて演奏する。このときにも、教師端末２ＡのＣＰＵ２１は、本体領域Ｐ３１に演奏データ（動的データ）を格納したパケットを生成し、配信装置１宛で送信する。ただし、このパケット内の演奏データに含まれているＭＩＤＩデータは、ＭＩＤＩ音源４１２の音色を設定するためのデータではなく、メンバーＡによる鍵盤やペダルの操作に応じたデータである。
【００９０】
配信装置１のＣＰＵ１１は、教師端末２Ａからのパケットを受信し、パケット処理を行う（ステップＳＡ１、ＳＡ２：ＮＯ、ＳＡ４：ＹＥＳ、ＳＡ５）。受信されたパケットの種別領域Ｐ３３には演奏データである旨の種別データが格納されており、かつ、本体領域Ｐ３１内の演奏データにはダンプリクエスト及びダンプレスポンスのいずれも含まれておらず、かつ、生成元領域Ｐ３２に格納されたメンバーＩＤのメンバーの属性は「教師」である。よって、パケット処理において、ＣＰＵ１１は、当該パケットの本体領域Ｐ３１内の演奏データからＭＩＤＩ音源４１２の音色を設定するためのＭＩＤＩデータを抽出しようとする（ステップＳＤ１：ＮＯ、ＳＤ２：ＮＯ、ＳＤ３：ＹＥＳ、ＳＤ１１：ＮＯ、ＳＤ１２、ＹＥＳ、ＳＤ１３）。
【００９１】
しかし、当該パケットの本体領域Ｐ３１内のＭＩＤＩデータは鍵盤やペダルの操作の内容に応じたデータであり、ＭＩＤＩ音源４１２の音色を設定するためのデータではないから、ＣＰＵ１１は上記の抽出に失敗する。よって、ここでは、共有領域１３１にＭＩＤＩデータが書き込まれることはない。次に、ＣＰＵ１１は、当該パケットのデータ領域Ｐ３内のデータを抽出し、抽出したデータをデータ領域Ｐ３に格納したパケットを生成し、生成したパケットを生徒端末２Ｂ及び２Ｃ宛で送信する（ステップＳＤ４）。
【００９２】
生徒端末２ＢのＣＰＵ２１は配信装置１からのパケットを受信し、前述と同様の処理を行う。ただし、受信されたパケットの本体領域Ｐ３１内の演奏データに含まれているＭＩＤＩデータは鍵盤やペダルの操作の内容に応じたデータであるから、ＭＩＤＩ楽器４１Ｂから当該ＭＩＤＩデータに従って楽音が放音される。つまり、メンバーＡの演奏に応じた楽音がＭＩＤＩ楽器４１Ｂから出力される。
【００９３】
また、受信されたパケットの本体領域Ｐ３１内の演奏データに含まれているＭＩＤＩデータは鍵盤やペダルの操作の内容に応じたデータであるから、その可視化が可能である。よって、ＣＰＵ２１は可視化処理を行う（ステップＳＥ５：ＹＥＳ、ＳＥ６）。
可視化処理では、ＣＰＵ２１は、再生タイミングを迎えた演奏データ内のＭＩＤＩデータが鍵盤の操作の内容に応じたデータであれば、当該ＭＩＤＩデータとＭＩＤＩ楽器４１の鍵盤に模した図形とを用いて、鍵盤の操作の内容を表す画像データを生成する。一方、再生タイミングを迎えた演奏データ内のＭＩＤＩデータがペダルの操作の内容に応じたデータであれば、当該ＭＩＤＩデータとＭＩＤＩ楽器４１のペダルに模した図形とを用いて、ペダルの操作の内容を表す画像データを生成する。
【００９４】
そして、ＣＰＵ２１は、生成した画像データと、教材領域２３１内の教材データと、メンバーＢ及びＣの画像データ、カメラ４４Ａからの画像データ、画面領域２３３内の教習画面データ１３２、対応領域２３４内の対応テーブルＴ２、及び選択領域２３５内の選択テーブルＴ３を用いて、教習画面を表す画像データを生成し、この画像データをディスプレイ２６のフレームメモリに書き込む。この結果、ディスプレイ２６には、図２５に示す教習画面が表示される。この教習画面の表示領域Ｒ８内には鍵盤の操作の内容を鍵盤に模した図形を用いて表現した画像が表示されており、表示領域Ｒ９内にはペダルの操作の内容をペダルに模した図形を用いて表現した画像が表示されている。この教習画面においては、押下されている鍵の色と押下されていない鍵の色とが異なっており、踏み込まれているペダルの表示位置と踏み込まれていないペダルの表示位置とが異なっている。
【００９５】
これと同様の処理が生徒端末２Ｃにおいても行われる。こうして、教師Ａの演奏に応じた楽音がＭＩＤＩ楽器４１Ｂ及び４１Ｃから出力され、生徒端末２Ｂ及び２Ｃでは教師ＡによるＭＩＤＩ楽器４１Ａの操作の内容が鍵盤やペダルを模した図形を用いて表示される。
【００９６】
［２−８：メンバーＢの演奏］
図１７の教習例では、次に、メンバーＢがＭＩＤＩ楽器４１Ｂを用いて演奏する。この場合、生徒端末２ＢのＣＰＵ２１は、本体領域Ｐ３１に演奏データを格納したパケットを生成し、配信装置１宛で送信する。このパケット内の演奏データは鍵盤やペダルの操作の内容に応じたＭＩＤＩデータと時刻データとを対応付けたデータである。また、このパケットの生成元領域Ｐ３２にはメンバーＩＤ「Ｂ」が格納されている。
【００９７】
配信装置１のＣＰＵ１１は、生徒端末２Ｂからのパケットを受信し、パケット処理を行う（ステップＳＡ１、ＳＡ２：ＮＯ、ＳＡ４：ＹＥＳ、ＳＡ５）。受信されたパケットの種別領域Ｐ３３には演奏データである旨の種別データが格納されており、かつ、このパケットの本体領域Ｐ３１内の演奏データにはダンプリクエスト及びダンプレスポンスのいずれも含まれておらず、かつ、このパケットの生成元領域Ｐ３２に格納されたメンバーＩＤのメンバーの属性は「生徒」である。よって、パケット処理において、ＣＰＵ１１は、当該パケットの本体領域Ｐ３１に格納された演奏データがＭＩＤＩ音源４１２の音色を設定するためのＭＩＤＩデータを含んでいるか否かを判定する（ステップＳＤ１：ＮＯ、ＳＤ２：ＮＯ、ＳＤ３：ＹＥＳ、ＳＤ１１：ＮＯ、ＳＤ１２、ＮＯ、ＳＤ１４）。
【００９８】
このパケットの本体領域Ｐ３１に格納された演奏データが含んでいるＭＩＤＩデータは、鍵盤やペダルの操作の内容に応じたデータであるから、この判定結果は「ＮＯ」となる。よって、ＣＰＵ１１は、配信モードが共有モードであるか否かをモードフラグ１３５を参照して判定する（ステップＳＤ１５）。この時点では、配信モードは共有モードであるから、ＣＰＵ１１は、このパケットのデータ領域Ｐ３に格納されたデータを抽出し、抽出したデータをデータ領域Ｐ３に格納したパケットを生成し、生成したパケットを教師端末２Ａ及び生徒端末２Ｃ宛で送信する（ステップＳＤ１５：ＹＥＳ、ＳＤ４）。
【００９９】
教師端末２ＡのＣＰＵ２１は配信装置１からのパケットを受信し、前述と同様の即時再生処理および移動処理を行う。これと同様の処理が生徒端末２Ｃにおいても行われる。この結果、生徒Ｂの演奏に応じた楽音がＭＩＤＩ楽器４１Ａ及び４１Ｃから放音され、教師端末２Ａ及び生徒端末２Ｃでは生徒ＢによるＭＩＤＩ楽器４１Ｂの操作の内容が鍵盤やペダルを模した図形を用いて表示される。
【０１００】
なお、メンバーＢがＭＩＤＩ楽器４１Ｂを操作してＭＩＤＩ音源４１２の音色を設定すれば、演奏データを本体領域Ｐ３１に格納したパケットが生徒端末２Ｂから配信装置１宛で送信されるが、当該パケットの生成元領域Ｐ３２に格納されたメンバーＩＤのメンバーの属性は生徒であり、当該パケットの本体領域Ｐ３１に格納された演奏データはＭＩＤＩ音源４１２の音色を設定するためのＭＩＤＩデータを含んでいるから、配信装置１のＣＰＵ１１は、当該パケットを受信して破棄する（ステップＳＤ１２：ＮＯ、ＳＤ１４：ＹＥＳ）。つまり、共有メンバーのうち、ＭＩＤＩ音源４１２の音色を設定するためのＭＩＤＩデータを配信することができるのは教師Ａのみである。
【０１０１】
［２−９：メンバーＢ及びＣの同時演奏］
図１７の教習例では、次に、メンバーＡが教師端末２Ａの操作部２５を操作して、配信モードを変更する旨の指示を教師端末２Ａに入力する。この結果、モード変更コマンドを本体領域Ｐ３１に格納したパケットが、教師端末２Ａから配信装置１宛で送信される。このパケットの生成元領域Ｐ３２にはメンバーＩＤ「Ａ」が格納されており、種別領域Ｐ３３にはコマンドである旨の種別データが格納されている。
【０１０２】
配信装置１のＣＰＵ１１は、このパケットを受信し、パケット処理を行う（ステップＳＡ１、ＳＡ２：ＮＯ、ＳＡ４：ＹＥＳ、ＳＡ５）。このパケットの種別領域Ｐ３３にはコマンドである旨の種別データが格納されており、かつ当該パケットの本体領域Ｐ３１内のコマンドは正当なログアウトコマンドではなく、かつ当該パケットの生成元領域Ｐ３２には教師ＡのメンバーＩＤ「Ａ」が格納されており、かつ当該パケットの本体領域Ｐ３１内のコマンドは教材配信コマンドではない。よって、パケット処理では、ＣＰＵ１１は当該パケットの本体領域Ｐ３１内のコマンドがモード変更コマンドであるか否かを判定する（ステップＳＤ１：ＹＥＳ、ＳＤ５：ＮＯ、ＳＤ６：ＹＥＳ、ＳＤ７：ＮＯ、ＳＤ１６）。
【０１０３】
このパケットの本体領域Ｐ３１内のコマンドはモード変更コマンドであるから、この判定結果は「ＹＥＳ」となる。よって、ＣＰＵ１１は演奏データの配信モードを変更する（ステップＳＤ１７）。具体的には、ハードディスク１３に書き込まれているモードフラグ１３５を更新する。この更新により、モードフラグ１３５の内容は、共有モードを示す内容から個別モードを示す内容に変化する。
【０１０４】
メンバーＡは、次に、教師端末２Ａの操作部２５を操作して、表示領域Ｒ４のみを選択する旨の指示を教師端末２Ａに入力する。これを受けて、教師端末２ＡのＣＰＵ２１は表示領域Ｒ４のみが選択されるように、選択領域２３５内の選択テーブルＴ３を更新する。この結果、教師端末２Ａのディスプレイ２６には図２６に示す教習画面が表示される。この教習画面においては、表示領域Ｒ４のみが太枠で強調されている。
【０１０５】
次に、メンバーＢ及びＣが同時に演奏する。これにより、生徒端末２Ｂ及び２Ｃからパケットが送信されて配信装置１に届く。当該パケットの本体領域Ｐ３１には鍵盤やペダルの操作の内容に応じたＭＩＤＩデータと時刻データとが対応付けられた演奏データが格納されており、種別領域Ｐ３３には演奏データである旨の種別データが格納されている。また、生徒端末２Ｂから送信されたパケットの生成元領域Ｐ３２にはメンバーＩＤ「Ｂ」が格納されており、生徒端末２Ｃから送信されたパケットの生成元領域Ｐ３２にはメンバーＩＤ「Ｃ」が格納されている。
【０１０６】
配信装置１のＣＰＵ１１は生徒端末２Ｂ及び２Ｃからのパケットを受信し、パケット処理を行う（ステップＳＡ１、ＳＡ２：ＮＯ、ＳＡ４：ＹＥＳ、ＳＡ５）。当該パケットの種別領域Ｐ３３には演奏データである旨の種別データが格納されており、本体領域Ｐ３１内の演奏データにはダンプリクエスト及びダンプレスポンスのいずれも含まれておらず、生成元領域Ｐ３２には生徒Ｂ又はＣのメンバーＩＤが格納されており、本体領域Ｐ３１に格納された演奏データはＭＩＤＩ音源４１２の音色を設定するためのＭＩＤＩデータを含んでいない。また、この時点で、モードフラグ１３５により示されている配信モードは個別モードである。よって、パケット処理において、ＣＰＵ１１は、当該パケットのデータ領域Ｐ３に格納されたデータを抽出し、抽出したデータをデータ領域Ｐ３に格納したパケットを生成し、生成したパケットを教師端末２Ａ宛で送信する（ステップＳＤ１５：ＮＯ、ＳＤ１８）。この際、生成されたパケットが生徒端末２Ｂや生徒端末２Ｃ宛で送信されることはない。
【０１０７】
教師端末２ＡのＣＰＵ２１は配信装置１からのパケットを受信する。受信されたパケットの種別領域Ｐ３３には演奏データである旨の種別データが格納されており、かつ、本体領域Ｐ３１には時刻データを含む演奏データが格納されており、かつ、生成元領域Ｐ３２にはメンバーＩＤ「Ｂ」又は「Ｃ」が格納されている。よって、ＣＰＵ２１は、受信した各パケットの本体領域Ｐ３１内の演奏データを該当する即時再生領域２２１に書き込むとともに、前述と同様の即時再生処理および移動処理を行う。ただし、再生タイマは、メンバーＢ用の即時再生領域２２１とメンバーＣ用の即時再生領域２２１とのいずれかに演奏データが書き込まれたときにスタートする。
【０１０８】
このとき、メンバーＢに対応付けられている表示領域Ｒ４は選択されているが、メンバーＣに対応付けられている表示領域Ｒ５は選択されていない。よって、即時再生処理において、ＣＰＵ２１は、メンバーＢ用の即時再生領域２２１に書き込まれている演奏データ、すなわちメンバーＢの演奏データについては再生処理および可視化処理を行うが（ステップＳＥ１：ＮＯ、ＳＥ２：ＹＥＳ、ＳＥ３：ＹＥＳ、ＳＥ４、ＳＥ５：ＹＥＳ、ＳＥ６）、メンバーＣ用の即時再生領域２２１に書き込まれている演奏データ、すなわちメンバーＣの演奏データについては再生処理および可視化処理を行わない（ステップＳＥ１：ＮＯ、ＳＥ２：ＹＥＳ、ＳＥ３：ＮＯ）。
【０１０９】
この結果、ＭＩＤＩ楽器４１Ａから放音される楽音は生徒Ｂの演奏に応じた楽音となり、教師端末２Ａにおいて鍵盤やペダルを模した図形を用いて表示されるのは生徒ＢによるＭＩＤＩ楽器４１Ｂの操作の内容となる。
【０１１０】
なお、即時再生処理および移動処理の終了後に、メンバーＡが教師端末２Ａの操作部２５を操作して、表示領域Ｒ５のみを選択する旨の指示を教師端末２Ａに入力し、更にメンバーＣ用のＭＩＤＩ領域２３７に書き込まれているＭＩＤＩデータを再生する旨の指示を教師端末２Ａに入力すると、教師端末２Ａの教習画面においては、メンバーＣによるＭＩＤＩ楽器４１Ｃの操作の内容が鍵盤やペダルを模した図形を用いて表示され、ＭＩＤＩ楽器４１Ａからは、メンバーＣの演奏に応じた楽音が放音される。
【０１１１】
［２−１０：書き込み］
図１７の教習例では、次に、メンバーＡが教師端末２Ａの操作部２５を操作して、楽譜に図形を書き込む旨の指示を教師端末２Ａに入力する。この結果、教師端末２ＡのＣＰＵ２１は、この指示に応じた書き込みデータを生成して教材領域２３１に書き込む。これにより、ディスプレイ２６には、図２７に示す教習画面が表示される。この教習画面の表示領域Ｒ１には楽譜の内容が表示されており、この内容は楽譜に図形が書き込まれていることを示す内容となっている。また、ＣＰＵ２１は、生成した書き込みデータ（動的データ）を本体領域Ｐ３１に格納したパケットを生成し、配信装置１宛で送信する。このパケットの生成元領域Ｐ３２にはメンバーＩＤ「Ａ」が格納されており、種別領域Ｐ３３には教材データである旨の種別データが格納されている。
【０１１２】
配信装置１のＣＰＵ１１は、このパケットを受信し、パケット処理を行う（ステップＳＡ１、ＳＡ２：ＮＯ、ＳＡ４：ＹＥＳ、ＳＡ５）。このパケットの種別領域Ｐ３３には教材データである旨の種別データが格納されており、生成元領域Ｐ３２には教師ＡのメンバーＩＤが格納されている。よって、パケット処理では、ＣＰＵ１１は、このパケットの本体領域Ｐ３１内の書き込みデータを共有領域１３１に書き込む（ステップＳＤ１：ＮＯ、ＳＤ２：ＹＥＳ、ＳＤ９：ＹＥＳ、ＳＤ１０）。次に、ＣＰＵ１１は、このパケットのデータ領域Ｐ３に格納されたデータを抽出し、抽出したデータをデータ領域Ｐ３に格納したパケットを生成し、生徒端末２Ｂ及び２Ｃ宛で送信する（ステップＳＤ４）。
【０１１３】
生徒端末２ＢのＣＰＵ２１は配信装置１からのパケットを受信する。このパケットの種別領域Ｐ３３には教材データである旨の種別データが格納されており、本体領域Ｐ３１には書き込みデータが格納されている。よって、ＣＰＵ２１は、この書き込みデータを教材領域２３１に追記する。この結果、生徒端末２Ｂの教習画面の表示領域Ｒ１には、教師Ａにより書き込まれた図形が楽譜の内容とともに表示される。これと同様の処理が、生徒端末２Ｃにおいても行われる。
【０１１４】
なお、生徒Ｂの誤操作等のミスにより、書き込みデータを本体領域Ｐ３１に格納したパケットが、生徒端末２Ｂから配信装置１宛で送信された場合、このパケットの生成元領域Ｐ３２には生徒ＢのメンバーＩＤ「Ｂ」が格納されているから、配信装置１のＣＰＵ１１は上述の処理を行うことなくパケット処理を終了する（ステップＳＤ９：ＮＯ）。つまり、共有メンバーのうち、楽譜に書き込みを行うことができるのは教師Ａのみである。
【０１１５】
［２−１１：メンバーＤのログイン］
図１７の教習例では、次に、メンバーＤが生徒端末２Ｄを用いてログイン作業を行う。このログイン作業や、このログイン作業に起因して行われる各種処理は、追従データの配信が行われる点を除いて、前述したものと同様である。よって、以降では、追従データの配信に関する動作のみについて説明する。
【０１１６】
配信装置１のＣＰＵ１１は、生徒端末２Ｄから、正当なログインコマンドを本体領域Ｐ３１に格納したパケットを受信すると、ログイン処理を行う（ステップＳＡ１、ＳＡ２：ＹＥＳ、ＳＡ３）。このパケットの本体領域Ｐ３１内のログインコマンドに含まれているメンバーＩＤは生徒ＤのメンバーＩＤ「Ｄ」である。また、共有領域１３１には追従データが書き込まれている。よって、ＣＰＵ１１は、メンバーＤを共有メンバーとする共有処理を行った後に追従データの送信処理を行う（ステップＳＢ１、ＳＢ２：ＮＯ、ＳＢ３：ＹＥＳ、ＳＢ４）。
【０１１７】
追従データの送信処理では、ＣＰＵ１１は共有領域１３１から楽譜データ１３３（静的データ）、表示ページデータ（動的データ）、及び書き込みデータ（動的データ）を読み出し、これらを本体領域Ｐ３１に格納したパケットを生成し、生成したパケットを生徒端末２Ｄ宛で送信する。当該パケットの種別領域Ｐ３３には教材データである旨の種別データが格納されている。また、ＣＰＵ１１は共有領域１３１からＭＩＤＩデータ（動的データ）を読み出し、これを本体領域Ｐ３１に格納したパケットを生成し、生成したパケットを生徒端末２Ｄ宛で送信する。当該パケットの種別領域Ｐ３３には演奏データである旨の種別データが格納されている。
【０１１８】
生徒端末２ＤのＣＰＵ２１は、これらのパケットを受信する。受信したパケットの種別領域Ｐ３３に教材データである旨の種別データが格納されている場合、ＣＰＵ２１は、当該パケットの本体領域Ｐ３１に格納されている追従データを教材領域２３１に書き込む。この結果、生徒端末２Ｄの教習画面の表示領域Ｒ１には、他の端末２の教習画面の表示領域Ｒ１に表示されている画像と同一の画像が表示される。
【０１１９】
また、受信したパケットの種別領域Ｐ３３に演奏データである旨の種別データが格納されている場合、当該パケットの本体領域Ｐ３１には時刻データが格納されていないから、ＣＰＵ２１は、当該ＭＩＤＩデータをＭＩＤＩ楽器４１Ｄに供給する。この結果、ＭＩＤＩ楽器４１ＤのＭＩＤＩ音源４１２の音色が、他のＭＩＤＩ楽器４１Ａ、４１Ｂ及び４１Ｃにおける音色と同様に設定される。
【０１２０】
［２−１２：メンバーＤのログアウト］
図１７の教習例では、次に、メンバーＤが生徒端末２Ｄを用いてログアウト作業を行う。ログアウト作業では、まず、メンバーＢが操作部２５を用いて予め配布された所定のＵＲＬとメンバーＩＤ「Ｄ」を送信して教室からログアウトする旨の指示を生徒端末２Ｂに入力する。この結果、所定のＵＲＬを含むログアウトコマンドを本体領域Ｐ３１に格納したパケットが、生徒端末２Ｄから配信装置１宛で送信される。このパケットの生成元領域Ｐ３２にはメンバーＩＤ「Ｄ」が格納されている。この処理の後、ＣＰＵ１１は端末プログラム２３６の実行を終了する。
【０１２１】
配信装置１のＣＰＵ１１は、このパケットを受信し、パケット処理を行う（ステップＳＡ１、ＳＡ２：ＮＯ、ＳＡ４：ＹＥＳ、ＳＡ５）。このパケットの種別領域Ｐ３３にはコマンドである旨の種別データが格納されており、本体領域Ｐ３１には所定のＵＲＬを含むログアウトコマンドが格納されており、生成元領域Ｐ３２には共有メンバーである生徒ＤのメンバーＩＤ「Ｄ」が格納されている。よって、ＣＰＵ１１はログアウト処理を行う（ステップＳＤ１：ＹＥＳ、ＳＤ５：ＹＥＳ、ＳＤ１９）。
【０１２２】
ログアウト処理では、ＣＰＵ１１は、このパケットの生成元領域Ｐ３２に格納されているメンバーＩＤのメンバーを非共有メンバーとし、メンバーテーブルＴ１を更新する。この更新では、メンバーＤの状態が「ログイン」から「ログアウト」に変化し、メンバーＤが使用している端末２の通信アドレスがメンバーテーブルＴ１から削除される。さらに、ログアウト処理において、ＣＰＵ１１は、前述の第３のパケットと同様のパケットを、教師端末２Ａ、生徒端末２Ｂ及び生徒端末２Ｃ宛で送信する。当該パケットの本体領域Ｐ３１には、最新のメンバーテーブルＴ１を含む共有状況通知コマンドが格納されている。
以降の動作については、以上の説明から自明であるから、その説明を省略する。
【０１２３】
以上、説明したように、配信装置１のＣＰＵ１１は、メンバーテーブルＴ１に登録されているメンバーＩＤを受信すると、このデータを送信した端末の通信アドレスを当該メンバーＩＤに対応付けてメンバーテーブルＴ１に登録し、また、教材の配信を要求する教材配信コマンドを受信すると、このコマンドを送信した端末の通信アドレスに対応付けてメンバーテーブルＴ１に登録されている属性が「教師」であるか否かを判定し、「教師」であれば、教材を、メンバーテーブルＴ１に通信アドレスが登録されている全ての端末へ送信する。つまり、メンバーＡは、教師端末２Ａに教材をダウンロードする旨の指示を入力するだけで、教室にログインしている全てのメンバーに教材を共有させることができる。また、ＣＰＵ１１はログインしたメンバーの環境を先にログインしているメンバーの環境に追従させるための処理を自動的に行うから、メンバーにかかる負担はより低減される。
【０１２４】
[３：補足]
上述した実施形態を以下に列記するように変形してもよい。
例えば、教習画面の表示領域Ｒ８に表示される鍵盤の操作内容を表現する画像において、押下されている鍵の色が打鍵強度に応じて変化するようにしてもよい。
また、鍵盤楽器ではない楽器の教習に適用してもよい。例えば、ドラム等の打楽器の教習に適用してもよい。
また、ＭＩＤＩデータの可視化を送信側の端末において行うようにしてもよい。つまり、送信側の端末において鍵盤やペダルの操作の内容を鍵盤に模した図形を用いて表現した画像を生成して送信し、受信側の端末において受信した画像を表示するようにしてもよい。
また、ログインしたメンバーの環境を先にログインしているメンバーの環境に追従させるための処理を行わないようにしてもよい。
また、配信装置が、教師端末から送信されたデータだけではなく、生徒端末から送信されたデータをも共有領域に書き込むようにしてもよい。
また、共有するデータは上記の例に限らず、例えば教師から生徒への指示を表すテキストデータであってもよい。
また、上記の配信装置の機能を教師端末に持たせてもよい。
また、配信装置と端末との間に複数の通信コネクションを確立して、送信するデータの種別毎に通信コネクションを使い分ける態様としてもよい。この通信コネクションがＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）における通信コネクションの場合、前述の種別データの代わりにＴＣＰにおけるポート番号が用いられることになる。
【図面の簡単な説明】
【０１２５】
【図１】本発明の一実施形態に係る遠隔教習システムの構成を示すブロック図である。
【図２】本システムにおいて用いられるＭＩＤＩ楽器４１の構成を示すブロック図である。
【図３】本システムにおいて用いられるパケットのデータ構造を示す図である。
【図４】本システムにおいて用いられる演奏データの生成の様子を示す図である。
【図５】本システムを構成する配信装置１の構成を示すブロック図である。
【図６】本システムにおいて用いられる教習画面データ１３２で表される画面を示す図である。
【図７】配信装置１が有するメンバーテーブルＴ１の内容を模式的に示す図である。
【図８】配信装置１が行う処理の流れを示すフローチャートである。
【図９】配信装置１が行う処理の流れを示すフローチャートである。
【図１０】配信装置１が行う処理の流れを示すフローチャートである。
【図１１】本システムを構成する教師端末２Ａの構成を示すブロック図である。
【図１２】教師端末２Ａが有する対応テーブルＴ２の一例を模式的に示す図である。
【図１３】教師端末２Ａが有する選択テーブルＴ３の一例を模式的に示す図である。
【図１４】本システムを構成する端末２が行う処理の流れを示すフローチャートである。
【図１５】本システムを構成する端末２が行う処理の流れを示すフローチャートである。
【図１６】本システムを構成する端末２が行う処理の流れを示すフローチャートである。
【図１７】本システムを用いて行われる教習例を示すシーケンス図である。
【図１８】配信装置１が有するメンバーテーブルＴ１の一例を模式的に示す図である。
【図１９】本システムを構成する生徒端末２Ｂが有する対応テーブルＴ２の一例を模式的に示す図である。
【図２０】生徒端末２Ｂが有する選択テーブルＴ３の一例を模式的に示す図である。
【図２１】生徒端末２Ｂにて表示される教習画面の一例を示す図である。
【図２２】教師端末２Ａにて表示される教習画面の一例を示す図である。
【図２３】本システムを構成する生徒端末２Ｃにて表示される教習画面の一例を示す図である。
【図２４】教師端末２Ａに表示される教習画面の一例を示す図である。
【図２５】生徒端末２Ｂに表示される教習画面の一例を示す図である。
【図２６】教師端末２Ａに表示される教習画面の一例を示す図である。
【図２７】教師端末２Ａに表示される教習画面の一例を示す図である。
【符号の説明】
【０１２６】
１…配信装置、１１，２１…ＣＰＵ、１２，２２…ＲＡＭ、１３，２３…ハードディスク、１４…通信部、２Ａ…教師端末、２Ｂ，２Ｃ，２Ｄ…生徒端末、２４…通信部、２５…操作部、２６…ディスプレイ、２７…ＭＩＤＩインタフェース。
【図１】
0004649851.tif 000002
【図２】
0004649851.tif 000003
【図３】
0004649851.tif 000004
【図４】
0004649851.tif 000005
【図５】
0004649851.tif 000006
【図６】
0004649851.tif 000007
【図７】
0004649851.tif 000008
【図８】
0004649851.tif 000009
【図９】
0004649851.tif 000010
【図１０】
0004649851.tif 000011
【図１１】
0004649851.tif 000012
【図１２】
0004649851.tif 000013
【図１３】
0004649851.tif 000014
【図１４】
0004649851.tif 000015
【図１５】
0004649851.tif 000016
【図１６】
0004649851.tif 000017
【図１７】
0004649851.tif 000018
【図１８】
0004649851.tif 000019
【図１９】
0004649851.tif 000020
【図２０】
0004649851.tif 000021
【図２１】
0004649851.tif 000022
【図２２】
0004649851.tif 000023
【図２３】
0004649851.tif 000024
【図２４】
0004649851.tif 000025
【図２５】
0004649851.tif 000026
【図２６】
0004649851.tif 000027
【図２７】
0004649851.tif 000028