(57)【特許請求の範囲】
【請求項１】
楽音情報を入力する入力手段と、
前記入力手段に入力される楽音情報を順次一時的に記憶するファーストインファーストアウトバッファであるバッファ手段と、
前記バッファ手段に一時的に記憶された楽音情報のうち、先頭から所定のデータ量の楽音情報を抽出してパケット化し、前記パケット化したパケット内の最後の楽音情報に対応する時刻から所定時間経過後に再実行するように設定するパケット生成手段と、
前記パケット生成手段によりパケット化されたパケットを転送する転送手段と
を有する楽音情報転送装置。
【請求項２】
時刻を計時するクロック手段と、
楽音情報を入力する入力手段と、
前記入力手段に入力される楽音情報を順次一時的に記憶するファーストインファーストアウトバッファであるバッファ手段と、
前記バッファ手段に一時的に記憶された楽音情報のうち、先頭から所定のデータ量の楽音情報を抽出してパケット化するパケット生成部と、前記バッファ手段内に前記パケット生成部により抽出されなかった残りの楽音情報が存在するか否かを判定する判定部と、前記判定部において前記バッファ手段内に残りの楽音情報が存在しないと判定された場合は現時刻を取得し、前記バッファ手段内に残りの楽音情報が存在すると判定された場合は前記パケット化したパケット内の最後の楽音情報に対応する時刻を取得する時刻取得部と、前記時刻取得部により取得された時刻から所定時間経過後に再実行するように設定する起動設定部とを含んで構成されるパケット生成手段と、
前記パケット生成手段によりパケット化されたパケットを転送する転送手段と
を有する楽音情報転送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、転送技術に関し、特に楽音情報の転送技術に関する。
【０００２】
【従来の技術】
電子楽器間の通信の統一規格として、ＭＩＤＩ（ｍｕｓｉｃａｌ  ｉｎｓｔｒｕｍｅｎｔ  ｄｉｇｉｔａｌ  ｉｎｔｅｒｆａｃｅ）規格がある。ＭＩＤＩ規格のインターフェースを備えた電子楽器は、ＭＩＤＩ用ケーブルを用いて、他の電子楽器と接続することができる。電子楽器は、ＭＩＤＩ用ケーブルを介して、ＭＩＤＩデータを通信することができる。例えば、一つの電子楽器は、演奏者が演奏した情報をＭＩＤＩデータとして送信し、他の電子楽器は、当該ＭＩＤＩデータを受信し、楽音を発音することができる。一つの電子楽器で演奏すると、他の電子楽器でリアルタイムに発音することができる。
【０００３】
また、複数の汎用コンピュータを接続する通信ネットワークでは、種々の情報を通信することができる。例えば、コンピュータに接続されているハードディスク等にオーディオデータ（生の楽音情報）やＭＩＤＩデータ等の情報を一度蓄積しておき、通信ネットワークを介して、当該情報を送信する。他のコンピュータは、当該情報を受信して、ハードディスク等の記憶装置に記憶する。汎用の通信ネットワークは、情報の通信を行うのみであり、ＭＩＤＩとは性質を異にする。
【０００４】
ＭＩＤＩ規格は、電子楽器間のリアルタイム通信を可能にするが、長距離の通信及び多数ノード間の通信に適していない。一方、汎用通信ネットワークは、長距離の通信及び多数ノード間の通信に適しているが、電子楽器間のリアルタイム通信を考慮したものではない。
【０００５】
【発明が解決しようとする課題】
汎用ネットワークにおいて、マルチメディアの通信が普及しつつある。オーディオデータは、サンプリング周波数が例えば４８ｋＨｚであり、データ量が比較的多い。サンプリングされたオーディオデータをリアルタイムで送信することは困難である。特に、送信装置の処理能力が低い場合に困難である。その場合には、オーディオデータを間引いてデータ量を減らすことが考えられるが、データを間引くと音質が悪くなってしまう。
【０００６】
オーディオデータを圧縮して送信する場合がある。その圧縮処理に長時間を要する場合にも、オーディオデータをリアルタイムで送信することが困難である。
【０００７】
本発明の目的は、効率的に楽音情報を転送することができる楽音情報転送装置を提供することである。
【０００８】
【課題を解決するための手段】
本発明の一観点によれば、楽音情報転送装置は、楽音情報を入力する入力手段と、前記入力手段に入力される楽音情報を順次一時的に記憶するファーストインファーストアウトバッファであるバッファ手段と、前記バッファ手段に一時的に記憶された楽音情報のうち、先頭から所定のデータ量の楽音情報を抽出してパケット化し、前記パケット化したパケット内の最後の楽音情報に対応する時刻から所定時間経過後に再実行するように設定するパケット生成手段と、前記パケット生成手段によりパケット化されたパケットを転送する転送手段とを有する。
また、本発明の他の観点によれば、楽音情報転送装置は、時刻を計時するクロック手段と、楽音情報を入力する入力手段と、前記入力手段に入力される楽音情報を順次一時的に記憶するファーストインファーストアウトバッファであるバッファ手段と、前記バッファ手段に一時的に記憶された楽音情報のうち、先頭から所定のデータ量の楽音情報を抽出してパケット化するパケット生成部と、前記バッファ手段内に前記パケット生成部により抽出されなかった残りの楽音情報が存在するか否かを判定する判定部と、前記判定部において前記バッファ手段内に残りの楽音情報が存在しないと判定された場合は現時刻を取得し、前記バッファ手段内に残りの楽音情報が存在すると判定された場合は前記パケット化したパケット内の最後の楽音情報に対応する時刻を取得する時刻取得部と、前記時刻取得部により取得された時刻から所定時間経過後に再実行するように設定する起動設定部とを含んで構成されるパケット生成手段と、前記パケット生成手段によりパケット化されたパケットを転送する転送手段とを有する。
【０００９】
加工された所定周期内の楽音情報の量を検出し、その量が所定量よりも多いときにはその所定量の楽音情報を抽出してパケット化する。次のパケット化の際には、前回パケット化したパケット内の最後の楽音情報に対応する時刻から所定周期経過後に次の楽音情報の量を検出して前記パケット化を行う。上記の所定周期の開始時刻は、前回のパケット内の楽音情報の量に応じて決まるので、効率的なパケット転送を行うことができる。
【００１０】
【発明の実施の形態】
図１は、マルチメディアの通信ネットワークを示す図である。
【００１１】
演奏会場１には、カメラ４、マイク３、ＭＩＤＩ楽器２、エンコーダ５ａ，５ｂ，５ｃ、送信サーバ６が備えられる。演奏会場１では、演奏者がＭＩＤＩ楽器２を演奏し、歌手がその演奏にあわせてマイク３に向かって歌う。さらに、他のマイク３を生ドラムや生ピアノや生ギターのそばに置いて、それらの音を他のマイク３に入力する。
【００１２】
マイク３は、歌手の歌声又はドラムの音等を電気信号に変換してアナログ形式のオーディオ信号（音声信号）を生成し、リアルタイムでエンコーダ５ｂに供給する。エンコーダ５ｂは、アナログ形式のオーディオ信号をデジタル形式のオーディオデータ（音声データ）に変換する。
【００１３】
ＭＩＤＩ楽器２は、演奏者の演奏操作に応じてＭＩＤＩデータを生成し、リアルタイムでエンコーダ５ｃに供給する。カメラ４は、演奏者が演奏している様子を撮影し、その様子を画像データとしてリアルタイムでエンコーダ５ａに供給する。
【００１４】
エンコーダ５ａ，５ｂ，５ｃのうちの全て又は特に負荷が重いものは分散処理を行う。例えば、エンコーダ５ｂは、複数のエンコーダ（コンピュータ）を有し、分散処理を行う。分散処理によりエンコーダ５ｂの処理効率を向上させ、効率的なリアルタイム処理が可能になる。その詳細は、後に図２を参照しながら説明する。
【００１５】
エンコーダ５ａ，５ｂ，５ｃは、画像データ、オーディオデータ、及びＭＩＤＩデータを所定のデータ形式にパケット化して、リアルタイムで送信サーバ６に送信する。パケット形式は、後に図１０（Ａ）、（Ｂ）を参照しながら説明する。
【００１６】
送信サーバ６は、ルータ７を介して中継プロバイダ８にリアルタイムでパケット送信する。送信サーバ６は、リアルタイムでパケット送信することが好ましい。リアルタイムは、エンコーダ５ａ、５ｂ又は５ｃがカメラ４、マイク３又はＭＩＤＩ楽器２からデータを入力してから、送信サーバ６がそのデータに対応するパケットを送信するまでの時間が３０秒以内、好ましくは１０秒以内、より好ましくは５秒以内、さらにより好ましくは３秒以内がよい。例えば、データをバッファリングする時間は１〜２秒であり、エンコード（例えば圧縮）及びパケット化する時間は数ｍ秒である。送信サーバ６の代わりに、エンコーダ５ａ、５ｂ及び５ｃがパケット生成処理を行う場合には、エンコーダ５ａ、５ｂ又は５ｃがデータを入力してからパケットを送信するまでの時間が上記の時間である。
【００１７】
また、リアルタイムは、演奏会場１で演奏が開始してから終了するまでの間に、送信サーバ６又はエンコーダ５ａ、５ｂ、５ｃがパケット送信を開始することが好ましい。すなわち、エンコーダ５ａ、５ｂ、５ｃがデータ（好ましくは、１曲のデータ）の入力を開示してから終了するまでの間に、送信サーバ６又はエンコーダ５ａ、５ｂ、５ｃがパケット送信を開始することが好ましい。
【００１８】
また、リアルタイムは、エンコーダ５ａ、５ｂ、５ｃ又は送信サーバ６が人為的な送信要求を受けることなく、入力されたデータをパケット送信することが好ましい。例えば、エンコーダ５ａ、５ｂ、５ｃは、入力されたデータをハードディスクに蓄積しておき、操作者がキーボードやマウス等で送信指示をしない限り、送信されないようではリアルタイム性が失われる。送信要求がなくても、入力されたデータを自動的にパケット送信することにより、リアルタイム性が維持される。
【００１９】
中継プロバイダ８は、複数設けられ、分散処理により、そのパケットをインターネット回線９に送信する。ルータ８ａは、中継プロバイダ８の入力を管理し、ルータ８ｂは中継プロバイダ８の出力を管理する。
【００２０】
インターネット回線９は、例えば電話回線又は専用回線である。複数の送信プロバイダ１０は、それぞれルータ１０ａを介してインターネット回線９からパケットを受信する。
【００２１】
ユーザは、ホームコンピュータ１２を用いてダイヤルアップすることにより送信プロバイダ１０に接続することができる。また、ホームコンピュータ１２は、ルータ１１，１０ｂを介して送信プロバイダ１０に常に（直接）接続することができる。
【００２２】
ホームコンピュータ１２は、インターネットに接続し、オーディオデータ、ＭＩＤＩデータ及び画像データを受信することができる。ホームコンピュータ１２は、ディスプレイ装置とＭＩＤＩ音源を有し、そのＭＩＤＩ音源は外部の音声出力装置１４に接続される。
【００２３】
画像データは、ディスプレイ装置に表示される。ＭＩＤＩデータは、ＭＩＤＩ音源で楽音信号に変換され、音声出力装置１４で発音される。オーディオデータは、デジタル形式からアナログ形式に変換されて、音声出力装置１４で発音される。ホームコンピュータ１２は、ＭＩＤＩデータとオーディオデータの同期をとって、両データに応じて音声出力装置１４で発音させる。演奏会場１の演奏音や歌声と同等の音が音声出力装置１４からリアルタイムで発音される。
【００２４】
また、ホームコンピュータ１２の外部に、ＭＩＤＩ音源１３を接続すれば、ホームコンピュータ１２は、ＭＩＤＩ音源１３に楽音信号を生成させ、音声出力装置１４から発音させることができる。
【００２５】
ルータ７が送信してからホームコンピュータ１２が受信するまでの時間は、例えば遅くても３０秒である。ホームコンピュータ１２は、受信を開始した後、連続的にデータを受信する。受信データを基に、リアルタイムで楽音の発音及び／又は画像の表示を行う。
【００２６】
なお、音楽の演奏において、ユーザにとっては、画像データよりもＭＩＤＩデータ及びオーディオデータの方が重要な情報であるので、画像データよりもＭＩＤＩデータ及びオーディオデータを優先して処理を行う。画像データは、画質が悪く、コマ数が少なくてもさほど気にならないが、ＭＩＤＩデータ及びオーディオデータに基づく楽音信号は高品質が要求される。なお、スポーツの中継等の場合は、画像と音との関係が逆になる。
【００２７】
ユーザは、演奏会場１に赴かなくても、自宅にいながらディスプレイ装置で演奏会場１の映像を見ながら、リアルタイムで演奏音及び歌声を聴くことができる。また、自宅のホームコンピュータ１２をインターネットに接続すれば、誰でも演奏音及び歌声を聴くことができる。例えば、演奏会場１でコンサートを行った場合には、不特定多数人が自宅でそのコンサートを楽しむことができる。
【００２８】
演奏会場からＭＩＤＩデータを自宅に送信することにより、演奏者が複数のユーザのそれぞれの自宅で電子楽器を演奏しているかのような状況を作り出すことができる。ＭＩＤＩデータの通信は、雑音により音質を下げることはない。
【００２９】
図２（Ａ）は、図１に示すエンコーダ５ｂの分散処理を示す。エンコーダ５ｂは、例えば３つのエンコーダＰＣ０，ＰＣ１，ＰＣ２からなる。マイク３（図１）は、ステレオデータを構成する左チャンネルデータＤＬ及び右チャンネルデータＤＲをエンコーダＰＣ０に供給する。エンコーダＰＣ０は、データＤＬ及びＤＲをＡ／Ｄ変換し、左チャンネルデータＤＬをエンコーダＰＣ１に転送し、右チャンネルデータＤＲをエンコーダＰＣ２に転送する。
【００３０】
エンコーダＰＣ１は、左チャンネルデータＤＬを圧縮し、パケット化して送信サーバ６（図１）に送信する。エンコーダＰＣ２は、右チャンネルデータＤＲを圧縮し、パケット化して送信サーバ６（図１）に送信する。
【００３１】
以上のように、エンコーダＰＣ０は、受けたオーディオデータＤＬ，ＤＲをエンコーダＰＣ１及びＰＣ２に振り分ける。オーディオデータＤＬ，ＤＲは、エンコーダＰＣ１及びＰＣ２で分散処理される。分散処理を行うことにより、各エンコーダＰＣ０，ＰＣ１，ＰＣ２の処理負担を軽減させることができる。
【００３２】
仮に、エンコーダ５ｂを１つのエンコーダで構成する場合には、分散処理できず、エンコーダ５ｂの処理負担が増える。入力データＤＬ，ＤＲは、エンコーダ５ｂ内のバッファに蓄積され、やがてバッファが溢れてしまうことがある。また、データＤＬ，ＤＲの処理のリアルタイム性が失われることもある。
【００３３】
オーディオデータを分散処理することにより、左チャンネルデータＤＬと右チャンネルデータＤＲとの２チャンネル分のデータを処理することができ、また３チャンネル以上のデータも処理することができる。チャンネルは、演奏パート毎に使用してもよい。
【００３４】
また、オーディオデータＤＬ，ＤＲのサンプル数を増やして、音質を向上させることができる。分散処理により各エンコーダＰＣ１，ＰＣ２の処理負担が軽減されるので、チャンネル数又はサンプル数が増加しても、オーディオデータのリアルタイム処理が可能である。
【００３５】
なお、エンコーダＰＣ１，ＰＣ２は必ずしもパケット化処理を行う必要はない。図２（Ｂ）に示すように、エンコーダＰＣ０がエンコーダＰＣ１，ＰＣ２から圧縮データを受け取って、パケット化し、送信サーバ６（図１）にパケットを送信してもよい。同様に、図２（Ｃ）に示すように、送信サーバ６がパケット化し、パケットを送信してもよい。エンコーダＰＣ０又は送信サーバ６がパケット化する場合には、データＤＬ及びＤＲを別々にパケット化してもよいし、それらをまとめてパケット化してもよい。
【００３６】
図３にエンコーダ５ｂの見かけ上の処理を示し、図４にエンコーダ５ｂの分散処理を示す。図３は、エンコーダ５ｂの見かけ上の処理を示すフローチャートである。
【００３７】
ステップＳＡ１では、入力データＤＬ，ＤＲをＡ／Ｄ変換し、圧縮処理し、時間データ等を付与する。時間データは、演奏時間を表し、パケット毎に付与される。
【００３８】
ステップＳＡ２では、前記データをパケット化して、送信サーバ６に転送する。パケット形式は、後に図１０（Ａ）を参照しながら説明する。
【００３９】
図４は、エンコーダ５ｂが行う分散処理を示すフローチャートである。左側の処理ＳＢ１，ＳＢ２はエンコーダＰＣ０が行う処理であり、右側の処理ＳＢ３，ＳＢ４はエンコーダＰＣ１，ＰＣ２が行う処理である。
【００４０】
ステップＳＢ１では、エンコーダＰＣ０が入力データＤＬ，ＤＲをＡ／Ｄ変換する。
【００４１】
ステップＳＢ２では、エンコーダＰＣ０が左チャンネルデータＤＬをエンコーダＰＣ１に、右チャンネルデータＤＲをエンコーダＰＣ２に転送する。
【００４２】
ステップＳＢ３では、エンコーダＰＣ１，ＰＣ２がそれぞれ受信データを圧縮し、時間データ等を付与する。
【００４３】
ステップＳＢ４では、エンコーダＰＣ１，ＰＣ２がそれぞれ前記データをパケット化して、送信サーバ６に転送する。
【００４４】
図５は、エンコーダ５ｂの他の分散処理例を示す。エンコーダ５ｂは、例えばｎ＋１個のエンコーダＰＣ０，ＰＣ１，ＰＣ２，ＰＣ３，・・・，ＰＣｎからなる。オーディオデータＤＴは、マイク３（図１）からエンコーダＰＣ０に供給される。
【００４５】
エンコーダＰＣ０は、オーディオデータＤＴをＡ／Ｄ変換し、そのデジタル形式のオーディオデータＤＴを時分割して、エンコーダＰＣ１〜ＰＣｎに振り分ける。例えば、オーディオデータＤＴは、データＤ１，Ｄ２，Ｄ３，・・・，Ｄｎ，Ｄｎ＋１，・・・に時分割される。
【００４６】
エンコーダＰＣ１〜ＰＣｎは、それぞれ所定時間分のデータが自己のバッファ内に蓄積されたところで圧縮処理を開始し、圧縮したデータをパケット化して、送信サーバ６（図１）に転送する。
【００４７】
データＤ１はエンコーダＰＣ１、データＤ２はエンコーダＰＣ２、データＤ３はエンコーダＰＣ３、・・・、データＤｎはエンコーダＰＣｎによりそれぞれ処理されて転送される。次のデータＤｎ＋１は、再びエンコーダＰＣ１で処理され、転送される。
【００４８】
以上のように、エンコーダＰＣ０は、受けたオーディオデータＤＴをｎ個のエンコーダＰＣ１〜ＰＣｎに時分割で振り分ける。オーディオデータＤＴは、エンコーダＰＣ１〜ＰＣｎで分散して処理される。この分散処理は、例えば圧縮処理等であり、必要に応じてパケット化処理も含む。分散処理により各エンコーダＰＣ１〜ＰＣｎの処理負担が軽減されるので、サンプル数を増やして（サンプリング周波数を高くして）、音質を向上させることができる。
【００４９】
オーディオデータを処理するエンコーダ５ｂについて説明したが、画像データを処理するエンコーダ５ａ及びＭＩＤＩデータを処理するエンコーダ５ｃも同様に分散処理を行うことできる。
【００５０】
エンコーダ５ａは、画像データの圧縮処理を分散することができる。例えば、フレーム毎に処理を分散させることができる。
【００５１】
エンコーダ５ｃは、ＭＩＤＩデータを複数のＭＩＤＩデータ群に時分割し、ＭＩＤＩデータ群内の各ＭＩＤＩデータの時間間隔を計測し、その時間間隔の情報を対応するＭＩＤＩデータに付与する。これらの処理を分散処理することができる。所定周期で１個又は複数のＭＩＤＩデータがパケット化される。１つのパケットには、１つの時間データ（図３のステップＳＡ１）が付与される。この時間データは、パケット内のＭＩＤＩデータの演奏時間を表す。上記の各ＭＩＤＩデータ毎の時間情報は、さらに高分解能の演奏時間を表す。
【００５２】
図６は、ＭＩＤＩデータの第１のパケット生成処理を示す。ＭＩＤＩデータは、ノートオン、ノートオフ又はプログラムチェンジ（音色指定）等を含み、単位時間当たりのデータ量は一定ではない。
【００５３】
エンコーダ５ｃは、周期Ｔｐで入力データＭＤ１，ＭＤ２のパケット生成処理を行う。パケット生成周期Ｔｐは、例えば５００ｍｓである。ＭＩＤＩデータＭＤ１は、時刻ｔ０からｔ１０までの周期Ｔｐに受けたデータであり、例えば６００バイトである。ＭＩＤＩデータＭＤ２は、時刻ｔ１０からｔ２０までの周期Ｔｐに受けたデータであり、例えば７００バイトである。
【００５４】
エンコーダ５ｃは、入力データＭＤ１，ＭＤ２を自己のバッファに格納し、周期Ｔｐ毎にバッファ内のデータについてパケット生成処理を行う。パケット内のデータ部は、５００バイト程度が好ましい。データ量が多すぎると、転送負荷が重くなってしまう。逆に、データ量が少なすぎると、データ転送の効率が悪くなる（オーバーヘッドが増加する）。
【００５５】
まず、エンコーダ５ｃは、時刻ｔ０から周期Ｔｐ経過後の時刻ｔ１０において、パケット生成処理を行う。バッファ内の入力データＭＤ１は、６００バイトであり、５００バイトを超えている。エンコーダ５ｃは、入力データＭＤ１を分割し、２つのパケットＰ１及びＰ２を生成する。パケットＰ１は、データＭＤ１中の最初の５００バイトを含み、パケットＰ２は、データＭＤ１中の残りの１００バイトを含む。パケットＰ１及びＰ２は、共に５００バイト以内のデータ部を有する。
【００５６】
次に、エンコーダ５ｃは、時刻ｔ１０から周期Ｔｐ経過後の時刻ｔ２０において、パケット生成処理を行う。バッファ内の入力データＭＤ２は、７００バイトであり、５００バイトを超えている。エンコーダ５ｃは、入力データＭＤ２を分割し、２つのパケットＰ３及びＰ４を生成する。パケットＰ３は、データＭＤ２中の最初の５００バイトを含み、パケットＰ４は、データＭＤ２中の残りの２００バイトを含む。
【００５７】
上記のパケット生成処理によれば、パケット内のデータを常に５００バイト以下に収めることができる。エンコーダ５ｃは、４個のパケットＰ１〜Ｐ４を転送する。
【００５８】
図７は、ＭＩＤＩデータの第２のパケット生成処理を示す。エンコーダ５ｃは、周期Ｔｐの開始タイミングを調整して、効率的に入力データＭＤ１，ＭＤ２のパケット生成処理を行う。
【００５９】
まず、エンコーダ５ｃは、時刻ｔ０から周期Ｔｐ経過後の時刻ｔ１０でパケット生成処理を行う。その際、６００バイトの入力データＭＤ１の最初の５００バイトのデータを基にパケットＰ１を生成する。このパケットＰ１内の５００バイトのデータの終了時刻ｔ９を次の周期Ｔｐの開始時刻とする。
【００６０】
ここで、時刻ｔ９の取得方法を２つ説明する。まず、第１の方法を示す。１個のＭＩＤＩデータ（ＭＩＤＩイベント）は、代表的には１〜３バイトで構成される。エンコーダ５ｃは、ＭＩＤＩデータが入力される度に、その入力時刻（好ましくは絶対時間）をＭＩＤＩデータと共にバッファに格納する。そして、パケットＰ１を生成した後、パケットＰ１内の５００バイトのデータの最後のデータに対応する入力時刻を取得する。その入力時刻をｔ９とする。
【００６１】
また、上記の入力時刻は絶対時間でも相対時間でもよい。エンコーダ５ｃは、パケットＰ１内の５００バイトの最初のデータの入力時刻と最後のデータの入力時刻を取得し、その両者の入力時刻の差を時刻ｔ０に加算して、時刻ｔ９を取得してもよい。
【００６２】
次に、第２の方法を示す。エンコーダ５ｃは、ＭＩＤＩデータが入力される度に、前回のＭＩＤＩデータと今回のＭＩＤＩデータの入力時間の間隔を今回のＭＩＤＩデータと共にバッファに格納する。そして、パケットＰ１を生成した後、パケットＰ１内のすべてのＭＩＤＩデータに対応する時間間隔を加算し、その加算値を時刻ｔ０に加算することにより、時刻ｔ９を取得することができる。以上で時刻ｔ９の取得方法の説明を終える。
【００６３】
次に、エンコーダ５ｃは、時刻ｔ９から周期Ｔｐ経過後の時刻ｔ１９において、パケット生成処理を行う。その際、バッファに格納されている入力データＭＤ１の残り及びＭＤ２の先頭の５００バイトを基にパケットＰ２を生成する。パケットＰ２は、入力データＭＤ１の最後の１００バイトのデータ及び入力データＭＤ２の先頭の４００バイトのデータを有する。このパケットＰ２内の５００バイトのデータの終了時刻ｔ１８を次の周期Ｔｐの開始時刻とする。
【００６４】
次に、エンコーダ５ｃは、時刻ｔ１８から周期Ｔｐ経過後の時刻ｔ２７において、パケット生成処理を行う。その際、バッファに格納されている入力データＭＤ２中の残りの３００バイトのデータを基にパケットＰ３を生成する。
【００６５】
このパケットＰ３内の３００バイトのデータの終了時刻をｔ２０とする。次の周期Ｔｐの開始時刻は、時刻ｔ２０又はｔ２７のいずれにしてもよい。時刻ｔ２０を開始時刻とすると、パケットを細分化して送信することができる利点がある。一方、時刻ｔ２７を開始時刻とすると、送信するパケットの数を減らすことができる利点がある。
【００６６】
第１のパケット生成処理（図６）はパケット数が４個であったが、第２のパケット生成処理（図７）はパケット数を３個に減らすことができる。第２のパケット生成処理は、パケット数を減らし、効率的なパケット転送を行うことができる。
【００６７】
なお、上記の第１又は第２のパケット生成処理は、エンコーダ５ｃの他、他のエンコーダ５ａ，５ｂ又は送信サーバ６（図１）が行ってもよい。オーディオデータは、サンプリング周波数を変更することにより、単位当たりのデータ量が変化する。
【００６８】
図８は、上記の第２のパケット生成処理（図７）を示すフローチャートである。
【００６９】
ステップＳＣ１では、バッファ内のデータ（例えばデータＭＤ１）を先頭から５００バイト分だけパケット化する。このバッファは、ファーストインファーストアウトバッファ（ＦＩＦＯ）であり、パケット化されたデータはバッファから消去される。
【００７０】
ステップＳＣ２では、バッファ内に未だデータが残っているか否かをチェックする。残っているときにはｙｅｓの矢印に従い、ステップＳＣ３へ進み、残っていないときにはｎｏの矢印に従い、ステップＳＣ４へ進む。
【００７１】
ステップＳＣ３では、パケット化した最後のデータに相当する時刻（例えば時刻ｔ９）を取得し、ステップＳＣ５へ進む。
【００７２】
ステップＳＣ４では、今回パケット処理を開始した時刻（例えば時刻ｔ２７）を取得し、ステップＳＣ５へ進む。
【００７３】
なお、ステップＳＣ２では、バッファ内にデータが残っていても残っていなくても、ステップＳＣ３へ進むようにしてもよい。
【００７４】
ステップＳＣ５では、上記で取得した時間から周期Ｔｐ（５００ｍｓ）経過後にこのパケット処理モジュール（図８）が再起動されるように準備する。
【００７５】
図９は、エンコーダ５（エンコーダ５ａ，５ｂ又は５ｃ）とホームコンピュータ１２の具体的なハードウエア構成を示す図である。エンコーダ５とホームコンピュータ１２は、共に汎用コンピュータ又はパーソナルコンピュータ等を用いることができる。
【００７６】
エンコーダ５とホームコンピュータ１２は、基本的に同じ構成である。両者の構成を説明する。バス２１には、ＣＰＵ２２、ＲＡＭ２４、外部記憶装置２５、外部に対してＭＩＤＩデータを送受信するためのＭＩＤＩインターフェース２６、サウンドカード２７、ＲＯＭ２８、表示装置２９、キーボードやスイッチやマウス等の入力手段３０、インターネットを行うための通信インターフェース３１が接続されている。
【００７７】
サウンドカード２７は、バッファ２７ａとコーデック回路２７ｂを有する。バッファ２７ａは、外部に対して入力又は出力するためのデータをバッファリングする。コーデック回路２７ｂは、Ａ／Ｄ変換器及びＤ／Ａ変換器を有し、アナログ形式とデジタル形式の両者間の変換を行うことができる。さらに、コーデック回路２７ｂは、圧縮／伸張回路を有し、データの圧縮及び伸張を行うことができる。データは、圧縮された状態で、インターネット通信される。
【００７８】
外部記憶装置２５は、例えばハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭドライブ、光磁気ディスクドライブ等であり、ＭＩＤＩデータ、オーディオデータ、画像データ又はコンピュータプログラム等を記憶することができる。
【００７９】
ＲＯＭ２８は、コンピュータプログラム及び各種パラメータを記憶することができる。ＲＡＭ２４は、バッファやレジスタ等のワーキングエリアを有し、外部記憶装置２５に記憶されている内容をコピーして記憶することができる。
【００８０】
ＣＰＵ２２は、ＲＯＭ２８又はＲＡＭ２４に記憶されているコンピュータプログラムに従って、各種演算または処理を行う。システムクロック２３は、時間情報を生成する。ＣＰＵ２２は、システムクロック２３から時間情報を得て、タイマ割り込み処理を行うことができる。
【００８１】
インターネット回線３２には、エンコーダ５の通信インターフェース３１及びホームコンピュータ１２の通信インターフェース３１が接続される。通信インターフェース３１は、インターネットにより、ＭＩＤＩデータ、オーディオデータ及び画像データを送受信するためのインターフェースである。エンコーダ５とホームコンピュータ１２は、インターネット回線３２により接続される。
【００８２】
まず、エンコーダ５について説明する。エンコーダ５ｃ（図１）では、ＭＩＤＩインターフェース２６にＭＩＤＩ楽器２が接続され、エンコーダ５ｂ（図１）では、サウンドカード２７にマイク３が接続される。ＭＩＤＩ楽器２は、演奏者の演奏操作に応じてＭＩＤＩデータを生成し、ＭＩＤＩインターフェース２６に出力する。マイク３は、演奏会場における音声を入力し、アナログ形式のオーディオ信号をサウンドカード２７に出力する。サウンドカード２７は、アナログ形式のオーディオ信号をバッファ２７ａにバッファリングし、コーデック回路２７ｂでアナログ形式のオーディオ信号をデジタル形式のオーディオデータに変換し、そのデータを圧縮する。
【００８３】
次に、ホームコンピュータ１２について説明する。ＭＩＤＩインターフェース２６には、ＭＩＤＩ音源１３が接続され、サウンドカード２７には、音声出力装置１４が接続される。ＣＰＵ２２は、通信インターフェース３１を介して、インタネット回線３２上からＭＩＤＩデータとオーディオデータと画像データを受信する。
【００８４】
通信インターフェース３１は、インターネット用インターフェースの他、イーサネット（登録商標）用インターフェース、ＩＥＥＥ１３９４規格のデジタル通信インターフェース、ＲＳ−２３２Ｃ用インターフェースでもよく、種々のネットワークに接続することができる。
【００８５】
エンコーダ５は、分散処理やパケット転送等をするためのコンピュータプログラムを記憶する。ホームコンピュータ１２は、オーディオデータの受信や再生等をするためのコンピュータプログラムを記憶する。コンピュータプログラムや各種パラメータ等を外部記憶装置２５に記憶させておき、それをＲＡＭ２４に読み込むことにより、コンピュータプログラム等の追加やバージョンアップ等が容易に行える。
【００８６】
ＣＤ−ＲＯＭ（コンパクトディスク−リード・オンリィ・メモリ）ドライブは、ＣＤ−ＲＯＭに記憶されているコンピュータプログラム等を読み出す装置である。読み出したコンピュータプログラム等は、ハードディスクにストアされる。コンピュータプログラムの新規インストールやバージョンアップ等が容易に行える。
【００８７】
通信インターフェース３１はＬＡＮ（ローカルエリアネットワーク）やインターネット、電話回線等の通信ネットワーク３２に接続されており、該通信ネットワーク３２を介して、コンピュータ３３と接続される。外部記憶装置２５内に上記のコンピュータプログラム等が記憶されていない場合、コンピュータ３３からコンピュータプログラム等をダウンロードすることができる。エンコーダ５又はホームコンピュータ１２は、通信インターフェース３１及び通信ネットワーク３２を介してコンピュータ３３へコンピュータプログラム等のダウンロードを要求するコマンドを送信する。コンピュータ３３は、このコマンドを受け、要求されたコンピュータプログラム等を、通信ネットワーク３２を介してエンコーダ５又はホームコンピュータ１２へ配信する。エンコーダ５又はホームコンピュータ１２が通信インターフェース３１を介して、コンピュータプログラム等を受信して外部記憶装置２５に蓄積することにより、ダウンロードが完了する。
【００８８】
なお、本実施例は、本実施例に対応するコンピュータプログラム等をインストールした市販のパーソナルコンピュータ等によって、実施させるようにしてもよい。その場合には、本実施例に対応するコンピュータプログラム等を、ＣＤ−ＲＯＭやフロッピディスク等の、コンピュータが読み込むことができる記憶媒体に記憶させた状態で、ユーザーに提供してもよい。そのパーソナルコンピュータ等が、ＬＡＮ、インターネット、電話回線等の通信ネットワークに接続されている場合には、通信ネットワークを介して、コンピュータプログラムや各種データ等をパーソナルコンピュータ等に提供してもよい。
【００８９】
また、エンコーダ５又はホームコンピュータ１２は、パーソナルコンピュータの他、電子楽器、ゲーム機、カラオケ装置、テレビ等の形態として適用してもよい。
【００９０】
図１０（Ａ）は、エンコーダ５ｂが送信するオーディオデータパケット５０の構造を示す。
【００９１】
オーディオデータパケット５０は、ヘッダ５１とオーディオデータ４８とフッタ５２を有する。ヘッダ５１は、時間情報を表すタイムスタンプ４１、パケットの順番を示すシーケンスナンバ５３、当該パケットがオーディオデータであることを示す識別子（ＩＤ）４２、当該パケットのサイズ４３を有する。
【００９２】
タイムスタンプ４１は、パケット内のオーディオデータ４８の送信時刻を表すと共に、演奏時刻、録音時刻、或いは再生時刻をも表す。エンコーダ５ｂは、自己のシステムクロックが生成する時間情報に応じて、タイムスタンプ４１を生成する。
【００９３】
識別子４２は、オーディオデータパケットやＭＩＤＩデータパケットや画像データパケット等のパケットの種類を表すことが可能である。ここでは、オーディオデータ４８を送信するので、オーディオデータパケットを表すものとなる。
【００９４】
オーディオデータ４８は、サンプリング周波数及び圧縮モードを含むヘッダ４８ａとオーディオデータ４８ｂを含む。オーディオデータ４８ｂは、マイク３（図１、図９）で生成されたデータを、Ａ／Ｄ変換し、圧縮したデータである。
【００９５】
フッタ５２は、データの終了を表すデータを有する。ヘッダ５１又はフッタ５２に、チェックサムを含ませてもよい。チェックサムは、例えばオーディオデータ４８の合計値である。この場合、エンコーダ５ｂは、当該合計値を計算し、チェックサムとしてパケット中に付与する。ホームコンピュータ１２は、当該合計値を計算し、チェックサムの値と合っていれば、通信エラーがないことを確認することができる。
【００９６】
図１０（Ｂ）は、エンコーダ５ｃが送信するＭＩＤＩデータパケット４９の構造を示す。
【００９７】
ＭＩＤＩデータパケット４９は、ヘッダ５１とＭＩＤＩデータ４４とフッタ５２を有する。
【００９８】
ヘッダ５１は、オーディオデータパケットの場合と同様に、タイムスタンプ４１、シーケンスナンバ５３、当該パケットがＭＩＤＩデータであることを示す識別子（ＩＤ）４２、当該パケットのサイズ４３を有する。
【００９９】
ＭＩＤＩデータ４４は、スタンダードＭＩＤＩファイルフォーマットに準拠したものであり、デルタタイム（インターバル）とＭＩＤＩイベントを１組にしたデータの列である。デルタタイムは、直前のＭＩＤＩイベントと当該ＭＩＤＩイベントの間の時間間隔を表す。ただし、デルタタイムが０であるときには、デルタタイムを省略することができる。
【０１００】
画像データについても、上記のオーディオデータパケットと同様なパケット構造を有する。その場合、識別子４２は、画像データであることを示す。
【０１０１】
以上のように、エンコーダ５ａ，５ｂ，５ｃは、分散処理を行うことにより、画像データ、オーディオデータ、ＭＩＤＩデータのリアルタイム処理の負担を軽減させることができる。エンコーダ５ａ，５ｂ，５ｃの処理負担は軽減されるので、オーディオデータのサンプル数等を増加させて、音質等を向上させることができる。
【０１０２】
分散処理の対象としては、特に楽音情報の加工処理が好ましい。楽音情報は、オーディオデータ又はＭＩＤＩデータ等である。加工処理は、圧縮処理、時間情報の付与、又はパケット生成処理である。
【０１０３】
また、パケット生成処理では、図７に示したように、周期Ｔｐの開始時刻をバッファ内のデータ量に応じて調整することにより、パケット数を減らし、パケット転送負荷を軽減させることができる。
【０１０４】
なお、本実施例は、オーディオデータ及びＭＩＤＩデータ等をインターネットで通信する場合に限定されない。例えば、ＩＥＥＥ１３９４規格のデジタルシリアル通信や通信衛星等の他の通信にも適用することができる。
【０１０５】
以上実施例に沿って本発明を説明したが、本発明はこれらに制限されるものではない。例えば、種々の変更、改良、組み合わせ等が可能なことは当業者に自明であろう。
【０１０６】
【発明の効果】
以上説明したように、本発明によれば、パケット化の際に、前回パケット化したパケット内の最後の楽音情報に対応する時刻から所定周期経過後に次の楽音情報の量を検出してパケット化を行うことにより、効率的なパケット転送を行うことができる。
【図面の簡単な説明】
【図１】  マルチメディアの通信ネットワークを示すブロック図である。
【図２】  図２（Ａ）〜（Ｃ）はステレオチャンネルデータの分散処理を行うエンコーダを示すブロック図である。
【図３】  エンコーダの見かけ上の処理を示すフローチャートである。
【図４】  エンコーダの分散処理を示すフローチャートである。
【図５】  時分割で分散処理を行うエンコーダを示すブロック図である。
【図６】  第１のパケット生成処理を示すタイムチャートである。
【図７】  第２のパケット生成処理を示すタイムチャートである。
【図８】  第２のパケット生成処理を示すフローチャートである。
【図９】  エンコーダ及びホームコンピュータのハードウエアの構成を示す図である。
【図１０】  図１０（Ａ）はオーディオデータパケットの構造を示し、図１０（Ｂ）はＭＩＤＩデータパケットの構造を示す図である。
【符号の説明】
１  演奏会場、  ２  ＭＩＤＩ楽器、  ３  マイク、  ４  カメラ、５ａ，５ｂ，５ｃ  エンコーダ、  ６  送信サーバ、  ７  ルータ、８  中継プロバイダ、８ａ，８ｂ  ルータ、  ９  インタネット回線、１０  送信プロバイダ、  １０ａ，１０ｂ  ルータ、  １１  ルータ、１２  ホームコンピュータ、  １３  ＭＩＤＩ音源、  １４  音声出力装置、  ＰＣ  エンコーダ、  ２１  バス、  ２２  ＣＰＵ、  ２３  システムクロック、  ２４  ＲＡＭ、  ２５  外部記憶装置、  ２６  ＭＩＤＩインターフェース、  ２７  サウンドカード、  ２７ａバッファ、２７ｂ  コーデック回路、  ２８  ＲＯＭ、  ２９  表示装置、  ３０入力手段、  ３１  通信インターフェース、  ３２  通信ネットワーク、３３  コンピュータ、  ４１  タイムスタンプ、  ４２  識別子（ＩＤ）、４３  パケットサイズ、  ４４  ＭＩＤＩデータ、  ４５，４７  ＭＩＤＩイベント、４６  デルタタイム、  ４８  デジタルオーディオデータ、  ４９  ＭＩＤＩデータパケット、  ５０  オーディオデータパケット、５１  ヘッダ、  ５２  フッタ、  ５３  シーケンスナンバ
【図１】
0003700693.tif 000002
【図２】
0003700693.tif 000003
【図３】
0003700693.tif 000004
【図４】
0003700693.tif 000005
【図５】
0003700693.tif 000006
【図６】
0003700693.tif 000007
【図７】
0003700693.tif 000008
【図８】
0003700693.tif 000009
【図９】
0003700693.tif 000010
【図１０】
0003700693.tif 000011