JP3358528B2 - 通信装置及び通信方法 - Google Patents

通信装置及び通信方法

Info

Publication number
JP3358528B2
JP3358528B2 JP08132398A JP8132398A JP3358528B2 JP 3358528 B2 JP3358528 B2 JP 3358528B2 JP 08132398 A JP08132398 A JP 08132398A JP 8132398 A JP8132398 A JP 8132398A JP 3358528 B2 JP3358528 B2 JP 3358528B2
Authority
JP
Japan
Prior art keywords
time
time information
data
time stamp
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP08132398A
Other languages
English (en)
Other versions
JPH11282461A (ja
Inventor
菊池  健
祐二 小池
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=13743199&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP3358528(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP08132398A priority Critical patent/JP3358528B2/ja
Priority to US09/272,506 priority patent/US6757303B1/en
Publication of JPH11282461A publication Critical patent/JPH11282461A/ja
Application granted granted Critical
Publication of JP3358528B2 publication Critical patent/JP3358528B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0682Clock or time synchronisation in a network by delay compensation, e.g. by compensation of propagation delay or variations thereof, by ranging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/375Tempo or beat alterations; Music timing control
    • G10H2210/391Automatic tempo adjustment, correction or control
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/185Error prevention, detection or correction in files or streams for electrophonic musical instruments
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/281Protocol or standard connector for transmission of analog or digital data to or from an electrophonic musical instrument
    • G10H2240/295Packet switched network, e.g. token ring
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/281Protocol or standard connector for transmission of analog or digital data to or from an electrophonic musical instrument
    • G10H2240/295Packet switched network, e.g. token ring
    • G10H2240/301Ethernet, e.g. according to IEEE 802.3
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/281Protocol or standard connector for transmission of analog or digital data to or from an electrophonic musical instrument
    • G10H2240/295Packet switched network, e.g. token ring
    • G10H2240/305Internet or TCP/IP protocol use for any electrophonic musical instrument data or musical parameter transmission purposes
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/281Protocol or standard connector for transmission of analog or digital data to or from an electrophonic musical instrument
    • G10H2240/311MIDI transmission
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/281Protocol or standard connector for transmission of analog or digital data to or from an electrophonic musical instrument
    • G10H2240/315Firewire, i.e. transmission according to IEEE1394
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Computer And Data Communications (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、通信技術に関し、
特に時間情報を通信する通信技術に関する。
【0002】
【従来の技術】電子楽器間の通信の統一規格として、M
IDI(musical instrument digitalinterface)規格
がある。MIDI規格のインターフェースを備えた電子
楽器は、MIDI用ケーブルを用いて、他の電子楽器と
接続することができる。電子楽器は、MIDI用ケーブ
ルを介して、MIDIデータを通信することができる。
例えば、一つの電子楽器は、演奏者が演奏した情報をM
IDIデータとして送信し、他の電子楽器は、当該MI
DIデータを受信し、楽音を発音することができる。一
つの電子楽器で演奏すると、他の電子楽器でリアルタイ
ムに発音することができる。
【0003】また、複数の汎用コンピュータを接続する
通信ネットワークでは、種々の情報を通信することがで
きる。例えば、コンピュータに接続されているハードデ
ィスク等にオーディオデータ(生の楽音情報)やMID
Iデータ等の情報を一度蓄積しておき、通信ネットワー
クを介して、当該情報を送信する。他のコンピュータ
は、当該情報を受信して、ハードディスク等の記憶装置
に記憶する。汎用の通信ネットワークは、情報の通信を
行うのみであり、MIDIとは性質を異にする。
【0004】MIDI規格は、電子楽器間のリアルタイ
ム通信を可能にするが、長距離の通信及び多数ノード間
の通信に適していない。一方、汎用通信ネットワーク
は、長距離の通信及び多数ノード間の通信に適している
が、電子楽器間のリアルタイム通信を考慮したものでは
ない。
【0005】
【発明が解決しようとする課題】汎用ネットワークにお
いて、時間情報を通信する場合を考える。送信装置と受
信装置は、汎用ネットワークに接続され、それぞれが独
自のタイマを有し、日付や時刻の時間情報を生成するこ
とができる。送信装置のタイマと受信装置のタイマは、
通常、同期がとれていなので、両装置が生成する時間情
報は必ずしも一致せず、ずれることがある。
【0006】送信装置が生成した時間情報を受信装置に
送信すると、その時間情報は、受信装置が生成した時間
情報と必ずしも一致していない。両者の時間情報が一致
していない場合に、受信装置が、その時間情報に応じ
て、データの処理を行うと、種々の不都合が生じること
がある。
【0007】また、汎用ネットワークは、長距離通信を
行ったり、その通信経路が種々変化する場合があるの
で、各パケット毎の通信時間は一定とは限らない。この
通信時間の変化は、受信装置が送信装置から受信した時
間情報に応じて処理をする際に悪影響を及ぼすことがあ
る。
【0008】本発明の目的は、時間情報を通信する際に
時間情報の信頼性を高めることができる通信装置、通信
方法又はプログラムを記録した媒体を提供することであ
る。
【0009】
【課題を解決するための手段】 本発明の一観点によれ
ば、通信装置は、第1の時間情報を外部から受信する受
信手段と、第2の時間情報を生成する時間情報生成手段
と、前記第1の時間情報と第2の時間情報との所定以上
の時間差を検出する時間差検出手段と、前記時間差検出
手段が所定以上の時間差を検出した回数を計測し、前記
第1の時間情報に対する前記第2の時間情報の進み又は
遅れ状態に応じて前記回数の値を減少又は増加させる計
測手段と、前記計測手段による計測回数が所定数に達し
た時に前記第2の時間情報を修正する修正手段とを有す
る。また、本発明のさらに他の観点によれば、通信装置
は、第1の時間情報を外部から受信する受信手段と、第
2の時間情報を生成する時間情報生成手段と、前記第1
の時間情報と第2の時間情報との所定以上の時間差を検
出する時間差検出手段と、前記所定以上の時間差を検出
したことに応じて前記第2の時間情報を第1の所定時間
おきに当該第1の所定時間よりも小さい第2の所定時間
ずつ漸次修正する修正手段とを有する。
【0010】第1の時間情報は、外部の送信装置により
生成され、送信されたものを受信する。第2の時間情報
は、時間情報生成手段が生成する。第1の時間情報と第
2の時間情報とは、必ずしも同期がとれていない。第1
の時間情報と第2の時間情報との時間差を検出し、その
時間差に応じて第2の時間情報を修正することにより、
第1の時間情報と第2の時間情報とのずれを修復するこ
とができる。
【0011】
【発明の実施の形態】図2は、楽音情報及び画像情報の
通信ネットワークを示す図である。
【0012】演奏会場1には、MIDI楽器2、音声入
力装置12、カメラ4、エンコーダー3、5、及びルー
タ6が備えられる。音声入力装置12は、例えばマイク
ロフォンである。演奏会場1では、演奏者がMIDI楽
器2を演奏し、歌手がその演奏にあわせて音声入力装置
12に向かって歌う。また、音声入力装置12を生ドラ
ムや生ピアノやエレキギターのそばに置いて、それらの
音を音声入力装置12に入力してもよい。
【0013】MIDI楽器2は、演奏者の演奏操作に応
じてMIDIデータを生成し、エンコーダー3に供給す
る。音声入力装置12は、歌手の歌声又はドラムの音等
を電気信号に変換してアナログ形式のオーディオ信号
(音声信号)を生成し、リアルタイムでエンコーダー3
に供給する。エンコーダー3は、アナログ形式のオーデ
ィオ信号をデジタル形式のオーディオデータ(音声デー
タ)に変換し、MIDIデータ及びオーディオデータを
所定のデータ形式で、ルータ6を介してインターネット
上にパケット送信する。データ形式は、後に図4
(A)、(B)を参照しながら説明する。
【0014】カメラ4は、演奏者が演奏している様子を
撮影し、その様子を画像データとしてエンコーダー5に
供給する。エンコーダー5は、画像データを所定のデー
タ形式で、ルータ6を介してインターネット上にパケッ
ト送信する。
【0015】ルータ6は、以下に示すインターネットを
介して、MIDIデータ、オーディオデータ及び画像デ
ータを送信する。当該データは、電話回線又は専用回線
を通り、ルータ6からサーバー7に供給され、さらに複
数のWWW(world wide web)サーバー8に供給され
る。WWWサーバー8は、いわゆるプロバイダである。
【0016】ユーザは、ホームコンピュータ9をWWW
サーバー8に接続することにより、インターネットを使
用することができる。ホームコンピュータ9は、インタ
ーネットを使用し、MIDIデータ、オーディオデータ
及び画像データを受信することができる。ホームコンピ
ュータ9は、ディスプレイ装置とMIDI音源を有し、
MIDI音源は音声出力装置11に接続される。
【0017】画像データは、ディスプレイ装置に表示さ
れる。MIDIデータは、MIDI音源で楽音信号に変
換され、音声出力装置11で発音される。オーディオデ
ータは、デジタル形式からアナログ形式に変換されて、
音声出力装置11で発音される。ホームコンピュータ9
は、MIDIデータとオーディオデータの同期をとっ
て、両データに応じて音声出力装置11で発音させる。
演奏会場1の演奏音や歌声と同等の音が音声出力装置1
1からリアルタイムで発音される。
【0018】また、ホームコンピュータ9の外部に、M
IDI音源10を接続すれば、ホームコンピュータ9
は、MIDI音源10に楽音信号を生成させ、音声出力
装置11から発音させることができる。
【0019】なお、音楽の演奏において、ユーザにとっ
ては、画像データよりもMIDIデータ及びオーディオ
データの方が重要な情報であるので、画像データよりも
MIDIデータ及びオーディオデータを優先して処理を
行う。画像データは、画質が悪く、コマ数が少なくても
さほど気にならないが、MIDIデータ及びオーディオ
データに基づく楽音信号は高品質が要求される。なお、
スポーツの中継等の場合は、画像と音との関係が逆にな
る。
【0020】ユーザは、演奏会場1に赴かなくても、自
宅にいながらディスプレイ装置で演奏会場1の模様を見
ながら、リアルタイムで演奏音及び歌声を聴くことがで
きる。また、自宅のホームコンピュータ9をインターネ
ットに接続すれば、誰でも演奏音及び歌声を聴くことが
できる。例えば、演奏会場1でコンサートを行った場合
には、不特定多数人が自宅でそのコンサートを楽しむこ
とができる。
【0021】演奏会場からMIDIデータを自宅に送信
することにより、演奏者が複数のユーザのそれぞれの自
宅で電子楽器を演奏しているかのような状況を作り出す
ことができる。MIDIデータの通信は、雑音により音
質を下げることはない。
【0022】図3は、送信端であるエンコーダー3と受
信端であるホームコンピュータ9を示す。以下、両者の
関係を説明するため、便宜的にエンコーダー3をサーバ
3と呼び、ホームコンピュータ9をクライアント9と呼
ぶ。
【0023】サーバ3とクライアント9は、インターネ
ットのデジタル回線により接続される。サーバ3は、M
IDI楽器2からMIDIデータを受け、音声入力装置
12からアナログ形式のオーディオ信号を受ける。デジ
タル形式に変換されたオーディオデータ及びMIDIデ
ータは、サーバ3からクライアント9に送信される。ク
ライアント9は、MIDI音源10にMIDIデータを
出力し、音声出力装置11にアナログ形式に変換された
オーディオ信号を出力する。MIDI音源10は、MI
DIデータを受け、アナログ形式の楽音信号を生成して
音声出力装置11に出力する。音声出力装置11は、ア
ナログ形式のオーディオ信号及び楽音信号を受けて発音
する。
【0024】図4(A)は、サーバ3が送信するMID
Iデータパケット49の構造を示す。
【0025】MIDIデータパケット49は、ヘッダ5
1とMIDIデータ44とフッタ52を有する。ヘッダ
51は、時間情報を表すタイムスタンプ41、パケット
の順番を示すシーケンスナンバ53、当該パケットがM
IDIデータであることを示す識別子(ID)42、当
該パケットのサイズ43を有する。
【0026】タイムスタンプ41は、パケット内のMI
DIデータ44の送信時刻を表すと共に、演奏時刻、録
音時刻、再生時刻をも表す。サーバ3は、自己のシステ
ムクロック(タイマ)が生成する時間情報に応じて、タ
イムスタンプ41を生成する。
【0027】シーケンスナンバ53は、パケット単位で
付与される順番を表す番号である。クライアント9は、
通信エラーによりデータの順序が入れ替わった場合で
も、パケットを所定時間だけバッファリングした後、バ
ッファ内のデータをシーケンスナンバ53に従ってソー
ト処理することにより、通信エラーをリカバリすること
ができる。
【0028】識別子42は、MIDIデータパケットや
オーディオデータパケットや画像データパケット等のパ
ケットの種類を表すことが可能である。ここでは、MI
DIデータ44を送信するので、MIDIデータパケッ
トを表すものとなる。
【0029】MIDIデータ44は、スタンダードMI
DIファイルフォーマットに準拠したものであり、デル
タタイム(インターバル)とMIDIイベントを1組に
したデータの列である。デルタタイムは、直前のMID
Iイベントと当該MIDIイベントの間の時間間隔を表
す。ただし、デルタタイムが0であるときには、デルタ
タイムを省略することができる。
【0030】フッタ52は、データの終了を表すデータ
を有する。ヘッダ51又はフッタ52に、チェックサム
を含ませてもよい。チェックサムは、例えばMIDIデ
ータ44の合計値である。この場合、サーバ3は、当該
合計値を計算し、チェックサムとしてパケット中に付与
する。クライアント9は、当該合計値を計算し、チェッ
クサムの値と合っていれば、通信エラーがないことを確
認することができる。
【0031】図4(B)は、サーバ3が送信するオーデ
ィオデータパケット50の構造を示す。
【0032】オーディオデータパケット50は、ヘッダ
51とデジタルオーディオデータ48とフッタ52を有
する。デジタルオーディオデータ48は、音声入力装置
12(図3)から生成されたデータを、A/D変換し、
圧縮したデータである。
【0033】ヘッダ51は、MIDIデータパケットの
場合と同様に、タイムスタンプ41、シーケンスナンバ
53、当該パケットがオーディオデータであることを示
す識別子(ID)42、当該パケットのサイズ43を有
する。タイムスタンプ41は、MIDIデータパケット
の場合と同様に、パケット内のオーディオデータ48の
送信時刻等を表す。
【0034】次に、タイムスタンプと通信時間との関係
を説明する。パケット内には、タイムスタンプが含まれ
ている。クライアント9は、このタイムスタンプに応じ
て、MIDIデータ等の処理を行えばよい。
【0035】しかし、インターネット等では、パケット
毎に通信時間が異なる場合がある。すなわち、あるパケ
ットは通信時間が長く、他のパケットは通信時間が短い
場合がある。これは、長距離通信の場合や通信経路がパ
ケット毎に変化する場合に顕著に現れる。
【0036】また、通信エラーにより、送信時のパケッ
トの順番と受信時のパケットの順番が異なることがあ
る。すなわち、パケットの通信順序の入れ替えが発生す
ることがある。
【0037】クライアント9は、受信データをバッファ
にバッファリングし、タイムスタンプの時刻から所定時
間(例えば3秒)経過後に、バッファ内のデータの処理
を開始する。
【0038】バッファ内にデータをバッファリングする
ことにより、パケット毎の通信時間の相違を吸収するこ
とができる。また、上記のシーケンスナンバ53(図4
(A)、(B))に応じて、パケット内のデータをソー
ト処理することにより、パケットの順序を正常なものに
戻すことができる。
【0039】次に、サーバ3のシステムクロックとクラ
イアント9のシステムクロックとのずれによる影響を説
明する。サーバ3のシステムクロックとクライアント9
のシステムクロックは、それぞれ独自に時間情報を生成
し、両者は同期がとれていない。したがって、両者のシ
ステムクロックが生成する時間情報は時間経過と共にず
れていくことがある。これは、一般の時計に誤差がある
のと同じである。
【0040】例えば、クライアント9のシステムクロッ
クがサーバ3のものよりも進んだ場合を考える。当初
は、3秒経過後にバッファ内のデータを取り出していて
も、徐々にその時間が短くなり、やがては受信したデー
タを直ちに取り出して、処理するようになってしまう。
この場合、一定時間だけバッファリングする機能を失う
ことになる。
【0041】次に、クライアント9のシステムクロック
がサーバ3のものよりも遅れた場合を考える。当初は、
3秒経過後にバッファ内のデータを取り出していても、
徐々にその時間が長くなり、時間の経過と共にバッファ
内のデータ量が増加して行く。バッファの容量が小さい
場合には、バッファからデータが溢れて、データを失う
事態も起こりえる。
【0042】以上の弊害を除去するため、クライアント
9のシステムクロックをサーバ3のものに合わせる(同
期させる)ための修正を行う。具体的には、クライアン
ト9のシステムクロックが生成するタイムスタンプを、
サーバ3のシステムクロックが生成するタイムスタンプ
に一致させる。その詳細を、以下説明する。
【0043】図1(A)は、サーバのタイムスタンプと
クライアントのタイムスタンプがずれる過程を示すタイ
ムチャートである。横軸は、時間を示す。
【0044】サーバは、送信開始時に、タイムスタンプ
を0分にして、そのタイムスタンプを含んだパケットP
0をクライアントに送信する。サーバのシステムクロッ
クは、その後、そのタイムスタンプを順次カウントアッ
プする。
【0045】クライアントは、0分のタイムスタンプを
含むパケットP0を受信すると、その時点で、クライア
ントのタイムスタンプを0分にリセットする。クライア
ントのシステムクロックは、その後、当該タイムスタン
プを順次カウントアップする。サーバのタイムスタンプ
とクライアントのタイムスタンプは、同期がとれていな
い。
【0046】ここで、クライアントのタイムスタンプが
サーバのものよりも進む場合を考える。例えば、サーバ
のタイムスタンプが15分の時、クライアントのタイム
スタンプが15分300m秒であるとする。クライアン
トのタイムスタンプの進みは、300m秒である。
【0047】サーバが、15分経過後に、15分のタイ
ムスタンプを含むパケットP1をクライアントに送信す
るとする。クライアントは、パケットP1を受信した時
点で、両者のタイムスタンプを比較し、自己のタイムス
タンプが300m秒進んでいることを認識することがで
きる。
【0048】図1(B)は、タイムスタンプの修正方法
を示すタイムチャートである。横軸は時間である。図1
(A)の15分の時点を時刻T1とする。
【0049】時刻T1の時点で、クライアントのタイム
スタンプは、サーバのものよりも300m秒進んでい
る。クライアントは、自己のタイムスタンプが例えば3
00m秒以上進んだことを所定データ数以上認識した時
点で、タイムスタンプの修正処理を開始する。この際、
タイムスタンプのずれを一気に修正するのではなく、以
下の方法により、徐々に修正していく。
【0050】時刻T1では、300m秒のずれがある。
時刻T1から、5秒経過後の時刻T2までの間に100
m秒だけクライアントのタイムスタンプを修正する。時
刻T2では、200m秒のずれがある。続いて、時刻T
2から、5秒経過後の時刻T3までの間に再び100m
秒修正する。時刻T3では、100m秒のずれがある。
時刻T3から、5秒経過後の時刻T4までの間に再び1
00m秒修正する。時刻T4では、ずれがなくなる。以
上で、タイムスタンプの修正処理が終了する。タイムス
タンプの修正は、約15秒かけて、100m秒ずつ3回
に分けて行う。
【0051】図5は、図3の具体的なハードウエア構成
を示す図である。サーバ3とクライアント9は、共に汎
用コンピュータ又はパーソナルコンピュータ等を用いる
ことができる。
【0052】サーバ3とクライアント9は、基本的に同
じ構成である。両者の構成を説明する。バス21には、
CPU22、RAM24、外部記憶装置25、外部に対
してMIDIデータを送受信するためのMIDIインタ
ーフェース26、サウンドカード27、ROM28、表
示装置29、キーボードやスイッチやマウス等の入力手
段30、インターネットを行うための通信インターフェ
ース31が接続されている。
【0053】サウンドカード27は、バッファ27aと
コーデック回路27bを有する。バッファ27は、外部
に対して入力又は出力するためのデータをバッファリン
グする。コーデック回路27bは、A/D変換器及びD
/A変換器を有し、アナログ形式とデジタル形式の両者
間の変換を行うことができる。さらに、コーデック回路
27bは、圧縮/伸張回路を有し、データの圧縮及び伸
張を行うことができる。データは、圧縮された状態で、
インターネット通信される。
【0054】外部記憶装置25は、例えばハードディス
クドライブ、フロッピーディスクドライブ、CD−RO
Mドライブ、光磁気ディスクドライブ等であり、MID
Iデータ、オーディオデータ、画像データ又はコンピュ
ータプログラム等を記憶することができる。
【0055】ROM28は、コンピュータプログラム及
び各種パラメータを記憶することができる。RAM24
は、バッファやレジスタ等のワーキングエリアを有し、
外部記憶装置25に記憶されている内容をコピーして記
憶することができる。
【0056】CPU22は、ROM28又はRAM24
に記憶されているコンピュータプログラムに従って、各
種演算または処理を行う。CPU22は、システムクロ
ック23から時間情報を得て、タイマ割り込み処理を行
うことができる。サーバ3のシステムクロック23は、
サーバのタイムスタンプを生成し、クライアント9のシ
ステムクロック23は、クライアントのタイムスタンプ
を生成する。
【0057】インターネット回線32には、サーバ3の
通信インターフェース31及びクライアント9の通信イ
ンタフェース31が接続される。通信インターフェース
31は、インターネットにより、MIDIデータ、オー
ディオデータ及び画像データを送受信するためのインタ
ーフェースである。サーバ3とクライアント9は、イン
ターネット回線32により接続される。
【0058】まず、サーバ3について説明する。MID
Iインタフェース26には、MIDI楽器2が接続さ
れ、サウンドカード27には、音声入力装置12が接続
される。MIDI楽器2は、演奏者の演奏操作に応じて
MIDIデータを生成し、MIDIインタフェース26
に出力する。音声入力装置12は、演奏会場における音
声を入力し、アナログ形式のオーディオ信号をサウンド
カード27に出力する。サウンドカード27は、アナロ
グ形式のオーディオ信号をバッファ27aにバッファリ
ングし、コーデック回路27bでアナログ形式のオーデ
ィオ信号をデジタル形式のオーディオデータに変換し、
そのデータを圧縮する。
【0059】次に、クライアント9について説明する。
図3に示すように、MIDIインタフェース26には、
MIDI音源10が接続され、サウンドカード27に
は、音声出力装置11が接続される。CPU22は、通
信インタフェース31を介して、インタネット回線32
上からMIDIデータとオーディオデータと画像データ
を受信する。
【0060】図6に示すように、クライアント9のRA
M24は、受信バッファ24a、パケット内のタイムス
タンプ(サーバのタイムスタンプ)を格納するレジスタ
24b、自己のタイムスタンプ(クライアントのタイム
スタンプ)を格納するレジスタ24c、タイムスタンプ
のずれの大きさを表すずれ検出カウンタ値を格納するレ
ジスタ24dを有する。
【0061】通信インタフェース31は、インターネッ
ト用インタフェースの他、イーサネット用インタフェー
ス、IEEE1394規格のデジタル通信インタフェー
ス、RS−232C用インタフェースでもよく、種々の
ネットワークに接続することができる。
【0062】サーバ3は、MIDIデータ等を送信する
ためのコンピュータプログラムを記憶する。クライアン
ト9は、MIDIデータ等を受信したり、タイムスタン
プを修正するためのコンピュータプログラムを記憶す
る。コンピュータプログラムや各種パラメータ等を外部
記憶装置25に記憶させておき、それをRAM24に読
み込むことにより、コンピュータプログラム等の追加や
バージョンアップ等が容易に行える。
【0063】CD−ROM(コンパクトディスク−リー
ド・オンリィ・メモリ)ドライブは、CD−ROMに記
憶されているコンピュータプログラム等を読み出す装置
である。読み出したコンピュータプログラム等は、ハー
ドディスクにストアされる。コンピュータプログラムの
新規インストールやバージョンアップ等が容易に行え
る。
【0064】通信インターフェース31はLAN(ロー
カルエリアネットワーク)やインターネット、電話回路
等の通信ネットワーク32に接続されており、該通信ネ
ットワーク32を介して、コンピュータ33と接続され
る。外部記憶装置25内に上記のコンピュータプログラ
ム等が記憶されていない場合、コンピュータ33からコ
ンピュータプログラム等をダウンロードすることができ
る。サーバ3又はクライアント9は、通信インターフェ
ース31及び通信ネットワーク32を介してコンピュー
タ33へコンピュータプログラム等のダウンロードを要
求するコマンドを送信する。コンピュータ33は、この
コマンドを受け、要求されたコンピュータプログラム等
を、通信ネットワーク32を介してサーバ3又はクライ
アント9へ配信する。サーバ3又はクライアント9が通
信インタフェース31を介して、コンピュータプログラ
ム等を受信して外部記憶装置25に蓄積することによ
り、ダウンロードが完了する。
【0065】なお、本実施例は、本実施例に対応するコ
ンピュータプログラム等をインストールした市販のパー
ソナルコンピュータ等によって、実施させるようにして
もよい。その場合には、本実施例に対応するコンピュー
タプログラム等を、CD−ROMやフロッピディスク等
の、コンピュータが読み込むことができる記憶媒体に記
憶させた状態で、ユーザーに提供してもよい。そのパー
ソナルコンピュータ等が、LAN、インターネット、電
話回線等の通信ネットワークに接続されている場合に
は、通信ネットワークを介して、コンピュータプログラ
ムや各種データ等をパーソナルコンピュータ等に提供し
てもよい。
【0066】また、サーバ3又はクライアント9は、パ
ーソナルコンピュータの他、電子楽器、ゲーム機、カラ
オケ装置、テレビ等の形態として適用してもよい。
【0067】図7〜図9に、サーバが行う処理のフロー
チャートを示す。図7は、サーバが行うオーディオデー
タの送信処理を示すフローチャートである。
【0068】ステップSA1では、音声入力装置12
(図2)からオーディオデータを受信する。
【0069】ステップSA2では、受信したオーディオ
データをアナログ形式からデジタル形式に変換する。具
体的には、所定のサンプリングレートで、オーディオデ
ータのサンプリングを行い、デジタル形式のオーディオ
データを生成する。
【0070】ステップSA3では、デジタル形式のオー
ディオデータを圧縮し、データ量を削減する。ステップ
SA2のA/D変換及びステップSA3の圧縮処理は、
コーデック回路27b(図5)で行うことができる。
【0071】ステップSA4では、圧縮したデータに、
タイムスタンプを付与して、パケット化する。このパケ
ットは、図4(B)に示す構造である。タイムスタンプ
の生成方法は、後に図9を参照しながら説明する。この
タイムスタンプは、サーバのタイムスタンプである。
【0072】ステップSA5では、当該パケットをイン
ターネットにより送信する。以上で、オーディオデータ
の送信処理が終了する。
【0073】図8は、サーバが行うMIDIデータの送
信処理を示すフローチャートである。
【0074】ステップSB1では、MIDI楽器2(図
2)からMIDIデータを受信する。
【0075】ステップSB2では、受信したMIDIデ
ータに、タイムスタンプを付与して、パケット化する。
このパケットは、図4(A)に示す構造である。タイム
スタンプの生成方法は、後に図9を参照しながら説明す
る。このタイムスタンプも、サーバのタイムスタンプで
ある。
【0076】ステップSB3では、当該パケットをイン
ターネットにより送信する。以上で、MIDIデータの
送信処理が終了する。
【0077】図9は、サーバがタイムスタンプを生成す
る処理を示すフローチャートである。この処理は、上記
のパケットを送信する際に必要とされる処理であり、必
ずしもタイマ割り込みにより定期的に行う必要はない。
【0078】ステップSC1では、演奏開始時における
最初のパケット作成であるか否か、すなわち、最初に送
信するパケットであるか否かをチェックする。最初のパ
ケットであるときには、yesの矢印に従い、ステップ
SC2へ進む。最初のパケットでないときには、noの
矢印に従い、ステップSC4へ進む。
【0079】ステップSC2では、サーバのシステムク
ロックの値を読み出し、記憶部(RAM24)に演奏開
始時刻として記憶する。
【0080】ステップSC3では、サーバのタイムスタ
ンプの値を0にクリアする。すなわち、タイムスタンプ
は、演奏開始時(送信開始時)に0に設定される。以上
により、タイムスタンプ生成の処理を終了する。
【0081】次に、パケットが最初のパケットでない場
合を説明する。この場合、上記のように、ステップSC
1からステップSC4へ進む。
【0082】ステップSC4では、サーバのシステムク
ロックの値を読み出す。この値は、パケットの送信時刻
に相当する。
【0083】ステップSC5では、記憶部(例えばRA
M24)に記憶されている演奏開始時刻を読み出す。演
奏開始時刻は、上記のステップSC2にて、既に記録さ
れている。
【0084】ステップSC6では、ステップSC4で読
み出したシステムクロックの値から、ステップSC5で
読み出した演奏開始時刻を減算し、その値をタイムスタ
ンプとする。タイムスタンプは、演奏開始時を0とした
ときの時間情報であり、サーバのシステムクロックによ
りカウントアップされる。以上により、タイムスタンプ
生成の処理を終了する。なお、タイムスタンプは、タイ
マ割り込みによるカウンタにより生成してもよい。
【0085】図10〜図14に、クライアントが行う処
理のフローチャートを示す。図10は、クライアントの
受信処理を示すフローチャートである。
【0086】ステップSD1では、パケットを受信す
る。ステップSD2では、受信したパケットが最初のパ
ケットであるか否かを判断し、最初のパケットであれ
ば、クライアントのタイムスタンプの値を0にクリアす
る。最初のパケット内には、サーバのタイムスタンプと
して0が含まれている。パケット内のタイムスタンプと
クライアントのタイムスタンプは、共に0になる。
【0087】図11に示すように、クライアントのタイ
ムスタンプは、クライアントのタイマ割り込み処理によ
り生成される。ステップSE1では、クライアントのシ
ステムクロックに同期してタイムスタンプをカウントア
ップする。タイムスタンプは、システムクロックと同じ
タイミングで増加する。なお、クライアントのタイムス
タンプは、図9のサーバのタイムスタンプ生成処理と同
様な方法により生成してもよい。
【0088】図10に戻り、ステップSD3では、パケ
ット内のタイムスタンプを取得する。パケット内のタイ
ムスタンプは、サーバが生成するものであり、演奏開始
時からの時間に相当する。当該パケットが最初のパケッ
トであれば、タイムスタンプは0である。
【0089】ステップSD4では、クライアントのタイ
ムスタンプを取得する。このタイムスタンプは、上記の
図11の処理によりカウントアップされる。
【0090】ステップSD5では、ステップSD3で取
得したパケット内のタイムスタンプとステップSD4で
取得したクライアントのタイムスタンプを比較し、両者
のずれ量を求める。
【0091】ステップSD6では、ずれ量が許容範囲内
であるか否かをチェックする。クライアントとサーバの
システムクロックにずれがない場合にも、通信状況によ
り、わずかなタイムスタンプのずれが生じることがある
ので、そのようなずれを除外するため、上記のずれ量に
許容範囲を設けている。この許容範囲(設定修正時間)
に相当する値はクライアント側で任意に設定できるもの
であっても構わない。
【0092】ずれ量が許容範囲を超えているときには、
noの矢印に従い、ステップSD8へ進む。ずれ量が許
容範囲内であるときには、yesの矢印に従い、ステッ
プSD7へ進む。
【0093】ステップSD8では、ずれ量が許容範囲を
超えているので、ずれ検出カウンタ24d(図6)の値
を以下のように調整する。クライアントのタイムスタン
プが遅れていれば、ずれ検出カウンタの値を増加させ
る。逆に、クライアントのタイムスタンプが進んでいれ
ば、ずれ検出カウンタの値を減少させる。ずれ検出カウ
ンタの値は、初期時が0であり、正値であれば遅れを示
し、負値であれば進みを示す。
【0094】パケットを受信する度に、タイムスタンプ
のずれ量が判別され、ずれ検出カウンタがカウントを行
う。ずれ検出カウンタは、許容範囲(設定修正時間)を
越えたずれの回数(累算値)を示す。ずれ検出カウンタ
の値が所定値を超えると、後に示す図13の処理でタイ
ムスタンプが修正されることになる。その後、ステップ
SD9へ進む。
【0095】一方、ステップSD7では、ずれ量が許容
範囲内であるので、ずれ検出カウンタの絶対値をカウン
トダウンする。例えば、ずれ検出カウンタが5であれば
4にし、−5であれば−4にする。
【0096】タイムスタンプのずれは一時的な場合があ
る。つまり、前回はずれが発生したが、今回はずれが発
生しない場合がある。その場合は、タイムスタンプのず
れがなくなったと判断し、ずれ検出カウンタの絶対値を
カウントダウンする。この場合、ずれ検出カウンタは、
0にリミットされる。その後、ステップSD9へ進む。
【0097】ステップSD9では、上記で受信したパケ
ットをデータの種類に応じて、異なるバッファにバッフ
ァリングする。データの種類は、オーディオデータ、M
IDIデータ、画像データであり、データID42(図
4(A)、(B))により判断される。以上で、クライ
アントの受信処理が終了する。
【0098】図12は、クライアントが行う再生処理を
示すフローチャートである。ステップSF1では、デー
タの種類毎のバッファ(例えばMIDIデータ用バッフ
ァやオーディオデータ用バッファ等)を定期的に検索
し、各バッファ内にデータが存在するか否かをチェック
する。存在するときには、そのデータをバッファから読
み出す。
【0099】ステップSF2では、現在のクライアント
のタイムスタンプを取得する。当該タイムスタンプは、
上記の図11の処理でカウントアップされる。
【0100】ステップSF3では、ステップSF1で読
み出したデータに対応するパケット内のタイムスタンプ
(サーバのタイムスタンプ)を取得する。
【0101】ステップSF4では、ステップSF2で取
得したクライアントのタイムスタンプとステップSF3
で取得したパケット内のタイムスタンプを比較し、両者
の差をディレイ時間として求める。
【0102】ステップSF5では、当該ディレイ時間が
所定値に達したか否かをチェックする。このディレイ時
間は、バッファ内にデータを蓄積する時間に相当し、例
えば3秒である。
【0103】ディレイ時間が所定値に達したときには、
yesの矢印に従い、ステップSF6へ進み、当該デー
タを再生する処理を行う。ディレイ時間が所定値に達し
ていないときには、noの矢印に従い、処理を終了し、
ディレイ時間が所定値に達するまでデータの再生を行わ
ない。以上により、クライアントの再生処理を終了す
る。
【0104】上記のように、一定時間(例えば3秒)だ
けデータをバッファ内に蓄積し、その後にデータの再生
を行うことにより、各パケット毎の通信時間の相違(ず
れ)やパケットの通信順序の入れ替えによる悪影響を防
止することができる。
【0105】図13は、クライアントのタイムスタンプ
のずれを検出する処理を示すフローチャートである。こ
のフローに相当する処理は定期的に起動されても良い
し、図10のSD8の処理後SD9の前に挿入して起動
されても構わない。
【0106】ステップSG1では、ずれ検出カウンタが
所定値を超えたか否かをチェックする。ずれ検出カウン
タは、許容範囲(設定修正時間)を越えたずれの回数
(累算)をカウントするものであり、図10のステップ
SD8でカウントされる。ずれの回数が所定値を超えて
いれば、そのずれは一時的なずれではなく、タイムスタ
ンプを修正する必要がある。
【0107】所定値を超えたときには、yesの矢印に
従い、ステップSG2へ進み、タイムスタンプのずれの
修正の準備を行う。一方、所定値を超えないときには、
ずれが一時的なものであるとして、タイムスタンプのず
れの修正を行わずに、noの矢印に従い、処理を終了す
る。
【0108】ステップSG2では、ずれ検出カウンタ値
をタイムスタンプ補正モジュールへ引き渡し、ずれ検出
カウンタをクリアする。タイムスタンプ補正モジュール
は、後に示す図14の処理に相当する。
【0109】ステップSG3では、タイムスタンプ補正
モジュールに起動がかかるように処理する。例えば、起
動用フラグを用いて、このフラグがセットされたときに
当該モジュールが起動するようにしてもよいし、当該モ
ジュールを直接呼び出(コール)してもよい。以上によ
り、タイムスタンプのずれ検出処理が終了する。
【0110】図14は、クライアントのタイムスタンプ
補正モジュールの処理を示すフローチャートである。ス
テップSH1では、ステップSG2で引数として渡され
たずれ検出カウンタ値を取得する。
【0111】ステップSH2では、ずれ検出カウンタ値
を基に、クライアントのタイムスタンプが遅れているか
又は進んでいるかを判断する。例えば、ずれ検出カウン
タ値が正値であれば遅れであり、負値であれば進みであ
る。
【0112】次に、遅れか進みかにより、クライアント
のタイムスタンプを修正する時間方向を決定する。クラ
イアントのタイムスタンプが遅れているときには、前記
クライアントのタイムスタンプを加算する方向(進む方
向)に修正し、進んでいる時には減算する方向(遅らせ
る方向)に修正するように決定する。
【0113】ステップSH3では、設定修正時間に応じ
て、補正値をテーブル等から取得し、補正値レジスタに
セットする。例えば、前記設定修正時間が300m秒で
あれば、補正値レジスタに3をセットする。
【0114】ステップSH4では、補正値レジスタの値
が0であるか否かをチェックする。0でないときには、
noの矢印に従い、ステップSH5へ進む。
【0115】ステップSH5では、所定値をタイムスタ
ンプに加算又は減算する。所定値は、補正値の1目盛り
に対応する修正時間であり、例えば100m秒(図1
(B))である。加算又は減算は、上記のステップSH
2の決定に従い、いずれかが行われる。
【0116】ステップSH6では、補正値から所定値を
減算する。所定値は、例えば1である。その後、所定時
間経過後に、ステップSH4へ戻る。所定時間は、例え
ば5秒(図1(B))である。
【0117】ステップSH4では、再び補正値レジスタ
が0か否かをチェックする。0でなければ、上記のステ
ップSH5及びSH6の処理を繰り返す。補正値レジス
タが0になれば、処理を終了する。
【0118】補正値レジスタが0になるまで、ステップ
SH4、SH5、SH6を含むステップSH10の処理
は、定期的(例えば5秒間隔)に行われる。
【0119】以上のように、タイムスタンプが所定値
(例えば300m秒)以上ずれていることが所定回数以
上検出されると、所定時間(例えば5秒)おきに所定時
間(例えば100m秒)ずつタイムスタンプを修正す
る。300m秒のずれを一度に修正するのではなく、1
5秒の時間をかけて徐々に100m秒ずつ3回に分けて
タイムスタンプのずれを滑らかに修正する。これによ
り、データの再生速度が急激に変化することを防止し、
滑らかな再生を行うことができる。
【0120】パケットのタイムスタンプとクライアント
のタイムスタンプとの差が所定値を超えたときに再生処
理により発音されるので(図12のステップSF5、S
F6)、上記のタイムスタンプの修正を行っても、途中
の音の発音が省略されることはない。
【0121】本実施例によれば、クライアントは、受信
したデータをバッファ内に所定時間(例えば3秒)だけ
格納した後に、データの再生処理を行う。これにより、
各パケット毎に通信時間が異なる場合やパケットの通信
順序が入れ替わった場合にも、適切な再生時間かつ適切
なデータ順序で再生することができる。
【0122】クライアントのタイムスタンプが進んだ場
合には、バッファ内にデータを蓄積(バッファリング)
する時間が次第に短くなり、最終的には蓄積する時間が
0になってしまい、データをバッファリングする上記の
機能が失われてしまう。
【0123】逆に、クライアントのタイムスタンプが遅
れた場合には、バッファ内に蓄積するデータ量が次第に
増加する。バッファ容量が少ない場合には、やがてバッ
ファ内のデータがあふれてしまい、データが失われるこ
とがある。
【0124】クライアントは、クライアントのタイムス
タンプがずれた(進んだり遅れた)ことを検出した場合
には、そのタイムスタンプを修正することができる。こ
れにより、上記の問題点を解消することができる。その
際、ずれが大きいときには、一度に修正するのではな
く、複数回に分けて少しずつ修正する。これにより、タ
イムスタンプを修正する際にも、データを滑らかに再生
することができる。
【0125】なお、本実施例は、オーディオデータ及び
MIDIデータ等をインターネットで通信する場合に限
定されない。例えば、IEEE1394規格のデジタル
シリアル通信や通信衛星等の他の通信にも適用すること
ができる。
【0126】以上実施例に沿って本発明を説明したが、
本発明はこれらに制限されるものではない。例えば、種
々の変更、改良、組み合わせ等が可能なことは当業者に
自明であろう。
【0127】
【発明の効果】以上説明したように、本発明によれば、
外部から受信する第1の時間情報と自己が生成する第2
の時間情報との同期がとれていなくても、第1の時間情
報と第2の時間情報との時間差を検出し、その時間差に
応じて第2の時間情報を修正することができる。第1の
時間情報と第2の時間情報との間にずれが発生しても、
そのずれを修正することができるので、そのずれによる
弊害を防止することができる。
【図面の簡単な説明】
【図1】 図1(A)はタイムスタンプのずれの発生を
示すタイムチャートであり、図1(B)はタイムスタン
プの修正を示すタイムチャートである。
【図2】 楽音情報及び画像情報の通信ネットワークを
示す図である。
【図3】 送信端であるエンコーダー(サーバ)と受信
端であるホームコンピュータ(クライアント)の接続を
示す図である。
【図4】 図4(A)はMIDIデータパケットの構造
を示し、図4(B)はオーディオデータパケットの構造
を示す図である。
【図5】 サーバ及びクライアントのハードウエアの構
成を示す図である。
【図6】 クライアントのRAMを示す図である。
【図7】 サーバが行うオーディオデータの処理を示す
フローチャートである。
【図8】 サーバが行うMIDIデータの処理を示すフ
ローチャートである。
【図9】 サーバが行うタイムスタンプの生成処理を示
すフローチャートである。
【図10】 クライアントが行う受信処理を示すフロー
チャートである。
【図11】 クライアントが行うタイムスタンプの生成
処理を示すフローチャートである。
【図12】 クライアントが行う再生処理を示すフロー
チャートである。
【図13】 クライアントが行うタイムスタンプのずれ
検出処理を示すフローチャートである。
【図14】 クライアントが行うタイムスタンプ補正モ
ジュールの処理を示すフローチャートである。
【符号の説明】
1 演奏会場、 2 MIDI楽器、 3 エンコ
ーダー(サーバ)、4 カメラ、 5 エンコーダ
ー、 6 ルータ、 7 サーバー、8 WWWサ
ーバー、 9 ホームコンピュータ(クライアン
ト)、 10 MIDI音源、 11 音声出力装
置、 12 音声入力装置、 21 バス、 2
2 CPU、 23 システムクロック、 24
RAM、 25 外部記憶装置、 26 MIDI
インタフェース、 27 サウンドカード、 27
a バッファ、 27b コーデック回路、 28
ROM、 29 表示装置、 30 入力手段、
31 通信インタフェース、 32 通信ネットワ
ーク、 33 コンピュータ、 41 タイムスタ
ンプ、 42 識別子(ID)、 43 パケット
サイズ、 44 MIDIデータ、 45,47
MIDIイベント、 46 デルタタイム、 48
デジタルオーディオデータ、 49 MIDIデー
タパケット、 50 オーディオデータパケット、
51 ヘッダ、 52 フッタ、 53 シーケ
ンスナンバ
フロントページの続き (56)参考文献 特開 平9−312669(JP,A) 特開 平9−116593(JP,A) 特開 平8−256161(JP,A) 特開 平7−239831(JP,A) 特開 平6−59670(JP,A) 特開 平5−347630(JP,A) 特開 平5−189385(JP,A) 特表 平9−503070(JP,A) (58)調査した分野(Int.Cl.7,DB名) G10H 1/00 G06F 15/177 680 G06F 9/44 H04L 11/00 G04G 1/00 - 15/00

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 第1の時間情報を外部から受信する受信
    手段と、 第2の時間情報を生成する時間情報生成手段と、 前記第1の時間情報と第2の時間情報との所定以上の時
    間差を検出する時間差検出手段と、 前記時間差検出手段が所定以上の時間差を検出した回数
    を計測し、前記第1の時間情報に対する前記第2の時間
    情報の進み又は遅れ状態に応じて前記回数の値を減少又
    は増加させる計測手段と、 前記計測手段による計測回数が所定数に達した時に前記
    第2の時間情報を修正する修正手段とを有する通信装
    置。
  2. 【請求項2】 第1の時間情報を外部から受信する受信
    手段と、 第2の時間情報を生成する時間情報生成手段と、 前記第1の時間情報と第2の時間情報との所定以上の時
    間差を検出する時間差検出手段と、 前記所定以上の時間差を検出したことに応じて前記第2
    の時間情報を第1の所定時間おきに当該第1の所定時間
    よりも小さい第2の所定時間ずつ漸次修正する修正手段
    とを有する通信装置。
  3. 【請求項3】 第1の時間情報を外部から受信する受信
    工程と、 第2の時間情報を生成する時間情報生成工程と、 前記第1の時間情報と第2の時間情報との所定以上の時
    間差を検出する時間差検出工程と、 前記時間差検出工程で所定以上の時間差を検出した回数
    を計測し、前記第1の時間情報に対する前記第2の時間
    情報の進み又は遅れ状態に応じて前記回数の値を減少又
    は増加させる計測工程と、 前記計測工程による計測回数が所定数に達した時に前記
    第2の時間情報を修正する修正工程とを有する通信方
    法。
  4. 【請求項4】 第1の時間情報を外部から受信する受信
    工程と、 第2の時間情報を生成する時間情報生成工程と、 前記第1の時間情報と第2の時間情報との所定以上の時
    間差を検出する時間差検出工程と、 前記所定以上の時間差を検出したことに応じて前記第2
    の時間情報を第1の所定時間おきに当該第1の所定時間
    よりも小さい第2の所定時間ずつ漸次修正する修正工程
    とを有する通信方法。
JP08132398A 1998-03-27 1998-03-27 通信装置及び通信方法 Expired - Fee Related JP3358528B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP08132398A JP3358528B2 (ja) 1998-03-27 1998-03-27 通信装置及び通信方法
US09/272,506 US6757303B1 (en) 1998-03-27 1999-03-19 Technique for communicating time information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08132398A JP3358528B2 (ja) 1998-03-27 1998-03-27 通信装置及び通信方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2002072600A Division JP3786039B2 (ja) 2002-03-15 2002-03-15 通信装置及び方法

Publications (2)

Publication Number Publication Date
JPH11282461A JPH11282461A (ja) 1999-10-15
JP3358528B2 true JP3358528B2 (ja) 2002-12-24

Family

ID=13743199

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08132398A Expired - Fee Related JP3358528B2 (ja) 1998-03-27 1998-03-27 通信装置及び通信方法

Country Status (2)

Country Link
US (1) US6757303B1 (ja)
JP (1) JP3358528B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI115494B (fi) * 1999-09-08 2005-05-13 Nokia Corp Tukiaseman taajuussynkronointi
JP3552667B2 (ja) 2000-12-19 2004-08-11 ヤマハ株式会社 通信システム及び通信プログラムを記録した記録媒体
JP4586268B2 (ja) * 2000-12-25 2010-11-24 ヤマハ株式会社 ネットワークにおけるデータ送受信管理方法及び同データ送受信管理装置
DE602004012571D1 (de) * 2004-10-27 2008-04-30 Nokia Siemens Networks Gmbh Verfahren und Anlage zur Zeitsynchronisation in einem verteilten Kommunikationsnetzwerk
JP2006285300A (ja) * 2005-03-31 2006-10-19 Toshiba Corp 信号転送装置及び信号転送方法
US7839897B2 (en) * 2006-09-29 2010-11-23 Agere Systems Inc. Methods and apparatus for unidirectional timing message transport over packet networks
US8193481B2 (en) * 2009-01-26 2012-06-05 Centre De Recherche Industrielle De Quebec Method and apparatus for assembling sensor output data with data representing a sensed location on a moving article
FR2979719B1 (fr) * 2011-09-02 2014-07-25 Thales Sa Systeme de communications permettant la transmission de signaux entre des equipements terminaux raccordes a des equipements intermediaires relies a un reseau ethernet

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05189385A (ja) 1992-01-09 1993-07-30 Fuji Xerox Co Ltd 分散処理環境系におけるタイマ同期方式
US5388264A (en) 1993-09-13 1995-02-07 Taligent, Inc. Object oriented framework system for routing, editing, and synchronizing MIDI multimedia information using graphically represented connection object
US5670732A (en) * 1994-05-26 1997-09-23 Kabushiki Kaisha Kawai Gakki Seisakusho Midi data transmitter, receiver, transmitter/receiver, and midi data processor, including control blocks for various operating conditions
JP3344123B2 (ja) * 1994-11-16 2002-11-11 ヤマハ株式会社 データ受信装置
US5731534A (en) * 1995-09-22 1998-03-24 Yamaha Corporation Method and apparatus for imparting an effect to a tone signal with grade designation
JP3442228B2 (ja) * 1996-08-29 2003-09-02 松下電器産業株式会社 同期保持装置
CA2184517A1 (en) * 1996-08-30 1998-03-01 Randy A. Law Clock recovery for video communication over atm network
JPH10122861A (ja) * 1996-10-16 1998-05-15 Nikon Corp 位置測定装置及びそれを利用した位置測定方法
JP3747584B2 (ja) * 1996-10-18 2006-02-22 ヤマハ株式会社 端末装置の機能拡張方法及びホストコンピュータ並びに端末装置
JP2845228B2 (ja) * 1996-12-10 1999-01-13 日本電気株式会社 隣接セル同期検出方式
US5734119A (en) 1996-12-19 1998-03-31 Invision Interactive, Inc. Method for streaming transmission of compressed music
US5995570A (en) * 1997-06-27 1999-11-30 International Business Machines Corporation Recovering a clock signal in a multimedia network using time stamps
JP3870490B2 (ja) * 1997-06-30 2007-01-17 ヤマハ株式会社 音楽演奏情報伝送方式

Also Published As

Publication number Publication date
JPH11282461A (ja) 1999-10-15
US6757303B1 (en) 2004-06-29

Similar Documents

Publication Publication Date Title
JP3242028B2 (ja) データ送受信方法およびシステム
JP3196715B2 (ja) 楽音情報の通信装置、通信方法、制御装置、制御方法及びプログラムを記録した媒体
US7756595B2 (en) Method and apparatus for producing and distributing live performance
JP4001091B2 (ja) 演奏システム及び楽音映像再生装置
JP5733321B2 (ja) 自動演奏装置
EP1126435A2 (en) Real time communication of musical tone information
JP5729393B2 (ja) 演奏システム
WO1997042734A1 (fr) Procede et dispositif de transmission de donnees
JP3358528B2 (ja) 通信装置及び通信方法
JP2005284041A (ja) コンテンツ配信方法、コンテンツ配信サーバ、およびコンテンツ受信装置
JP3180708B2 (ja) 音源設定情報通信装置
US6525253B1 (en) Transmission of musical tone information
KR20210108715A (ko) 네트워크에 기반한 합동 공연을 제공하는 장치 및 그 방법
JP3786039B2 (ja) 通信装置及び方法
JP3705581B2 (ja) データ送信方法および送信システム
US6909728B1 (en) Synchronous communication
WO2007054285A1 (en) A method and system for sound reproduction, and a program product
JP5674590B2 (ja) 送出装置、コンテンツ提供システム及びプログラム
JPH11284588A (ja) 通信装置、通信方法及びプログラムを記録した媒体
JP3180751B2 (ja) データの通信装置、通信方法、通信システム及びプログラムを記録した媒体
JP3271572B2 (ja) 楽音情報の通信方法、通信装置及びプログラムを記録した媒体
JP2003085068A (ja) ライブ情報提供サーバ、情報通信端末、ライブ情報提供システムおよびライブ情報提供方法
JP3196681B2 (ja) 通信データ一時記憶装置
US20080140238A1 (en) Method for Playing and Processing Audio Data of at Least Two Computer Units
Severi et al. Demonstration of a Networked Music Performance Experience with MEVO

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20020212

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20020910

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20071011

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20081011

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20091011

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20101011

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20101011

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20111011

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20111011

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20121011

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20121011

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20131011

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees