Nothing Special   »   [go: up one dir, main page]

JP4071140B2 - Data communication apparatus, method and program - Google Patents

Data communication apparatus, method and program Download PDF

Info

Publication number
JP4071140B2
JP4071140B2 JP2003093351A JP2003093351A JP4071140B2 JP 4071140 B2 JP4071140 B2 JP 4071140B2 JP 2003093351 A JP2003093351 A JP 2003093351A JP 2003093351 A JP2003093351 A JP 2003093351A JP 4071140 B2 JP4071140 B2 JP 4071140B2
Authority
JP
Japan
Prior art keywords
data
input
video data
performance
transmission
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
JP2003093351A
Other languages
Japanese (ja)
Other versions
JP2004301998A (en
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.)
Kawai Musical Instrument Manufacturing Co Ltd
Original Assignee
Kawai Musical Instrument Manufacturing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kawai Musical Instrument Manufacturing Co Ltd filed Critical Kawai Musical Instrument Manufacturing Co Ltd
Priority to JP2003093351A priority Critical patent/JP4071140B2/en
Publication of JP2004301998A publication Critical patent/JP2004301998A/en
Application granted granted Critical
Publication of JP4071140B2 publication Critical patent/JP4071140B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Reverberation, Karaoke And Other Acoustics (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、データ通信技術に関し、特に演奏データ及び映像データの通信技術に関する。
【0002】
【従来の技術】
遠隔地同士での演奏データの通信において、カメラで取り込んだ相手の映像を表示することができると、さらに楽しいコミュニケーションが可能になると考えられる。しかし、演奏データ(MIDIデータ)に比べ、映像データは量が多く、通信の負荷が大きくなってしまう。合奏を行うためには、できるだけ高速に演奏データを送受信する必要があるので、通信状態に影響を与える映像データの通信を行うことはあまり望ましくない。
【0003】
また、カメラによる映像データのキャプチャを行う場合、CPUの負荷が増大し、それ以外の処理に影響を与える場合がある。このときも、合奏を行う場合の演奏データの通信に支障をきたすことが考えられる。
【0004】
このように、遠隔地同士の合奏において、相手の映像が見られることが望まれているが、実際には演奏に遅延を発生させる原因になり、実現が難しくなっている。
【0005】
また、下記の特許文献1が公開されている。
【0006】
【特許文献1】
特開2000−20055号公報
【0007】
【発明が解決しようとする課題】
本発明の目的は、演奏データ及び映像データを送信する際に、演奏データの通信遅延を防止することができるデータ通信技術を提供することである。
【0008】
【課題を解決するための手段】
本発明の一観点によれば、演奏データを入力する演奏データ入力手段と、カメラから映像データを入力する映像データ入力手段と、前記入力された演奏データを送信する演奏データ送信手段と、前記演奏データ入力後の所定時間経過前は前記入力された映像データの送信を許可せず、所定時間経過後は前記入力された映像データの送信を許可する映像データ送信手段とを有するデータ通信装置が提供される。
本発明の他の観点によれば、演奏データを入力する演奏データ入力ステップと、カメラから映像データを入力する映像データ入力ステップと、前記入力された演奏データを送信する演奏データ送信ステップと、前記演奏データ入力後の所定時間経過前は前記入力された映像データの送信を許可せず、所定時間経過後は前記入力された映像データの送信を許可する映像データ送信ステップとを有するデータ通信方法が提供される。
本発明のさらに他の観点によれば、演奏データを入力する演奏データ入力ステップと、カメラから映像データを入力する映像データ入力ステップと、前記入力された演奏データを送信する演奏データ送信ステップと、前記演奏データ入力後の所定時間経過前は前記入力された映像データの送信を許可せず、所定時間経過後は前記入力された映像データの送信を許可する映像データ送信ステップとをコンピュータに実行させるためのプログラムが提供される。
【0009】
本発明によれば、演奏データ入力後の所定時間経過前は入力された映像データの送信を許可しないので、映像データの送信に基づく演奏データの送信遅延を防止することができる。また、演奏データ入力後の所定時間経過後は、入力された映像データの送信を許可するので、映像データを送信することができる。
【0010】
【発明の実施の形態】
図1は、本発明の実施形態によるデータ通信システムの第1の構成例を示す。2個の端末110及び120は、2人の演奏者が遠隔地で合奏を行うために、直接接続され、相互に演奏データ、音声データ及び映像データを通信する。例えば、端末110がサーバーであり、端末120がクライアントである。端末110及び120は、それぞれ、鍵盤101、音源102、マイク103、スピーカ104、カメラ105及びディスプレイ106を有する。
【0011】
演奏者が鍵盤(電子楽器)101を演奏すると、鍵盤101は演奏データを生成して端末110に供給する。演奏データは、例えばMIDI(Musical Instrument Digital Interface)データである。端末110は、鍵盤101からMIDIデータを入力すると、音源102に出力すると共に、インターネット(ネットワーク)130を介して端末120に送信する。音源102は、MIDIデータを基に楽音信号を生成し、スピーカ104から楽音を発音させる。端末120でも、同様に、音源102及びスピーカ104により楽音が発音される。
【0012】
マイク103は、演奏者の歌声等の音声を基に音声信号を生成し、端末110に出力する。端末110は、マイク103からアナログ形式の音声信号を入力すると、デジタル形式の音声データに変換し、スピーカ104から発音させると共に、インターネット130を介して端末120に送信する。端末120でも、同様に、スピーカ104から音声が発音される。
【0013】
カメラ105は、演奏者又は楽譜等の映像データを生成し、端末110に出力する。端末110は、カメラ105から映像データを入力すると、ディスプレイ106に表示すると共に、インターネット130を介して端末120に送信する。端末120でも、同様に、ディスプレイ106に映像が表示される。
【0014】
同様に、端末120においても、生成されたMIDIデータ、音声データ及び映像データが再生されると共に、端末110に送信される。端末110では、同じMIDIデータ、音声データ及び映像データが再生される。これにより、2人の演奏者が遠隔地においてリアルタイムで合奏を行うことができる。
【0015】
インターネット130環境下では、端末110及び120は、TCP(Transmission Control Protocol)ポート131を介して音声データ及び映像データ等を通信し、UDP(User Datagram Protocol)ポート132を介してMIDIデータ等を通信する。MIDIデータは、音声データ及び映像データに比べて、高速性(リアルタイム性)が要求される。したがって、MIDIデータはUDPポート132を使用し、音声データ及び映像データはTCPポート131を使用する。TCPポート131及びUDPポート132を分けずにUDPポートだけを使用してもよい。その場合には、データに優先順位を付けて、MIDIデータを優先して送受信するようにするのがよい。なお、2人モードでは、2個の端末110及び120のうち、先に接続要求した方がサーバーになり、他方がクライアントになる。
【0016】
図2は、本発明の実施形態によるデータ通信システムの第2の構成例を示す。4個の端末211〜214は、4人の演奏者が遠隔地で合奏を行うために、セッションサーバー260を介して接続され、相互に演奏データ、音声データ及び映像データを通信する。3人以上であればこのモードになるが、4人の場合を例に説明する。4個の端末211〜214はすべてクライントであり、セッションサーバー260がサーバーになる。端末211〜214は、図1と同様に、それぞれ、鍵盤101、音源102、マイク103、スピーカ104、カメラ105及びディスプレイ106を有する。
【0017】
各端末211〜214とセッションサーバー260とは、インターネット(ネットワーク)250を介して接続される。インターネット250環境下では、端末211〜214は、TCPポート251を介して音声データ及び映像データ等を通信し、UDPポート252を介してMIDIデータ等を通信する。各端末211〜214は、セッションサーバー260を介して、相互にMIDIデータ、音声データ及び映像データを通信する。これにより、3人以上(例えば4人)の演奏者が遠隔地においてリアルタイムで合奏を行うことができる。
【0018】
図1のように、2人の端末で合奏する場合には、2人の端末を直接接続して通信を行うのが好ましい。端末間を直接接続すると、高速に通信を行うことができる。しかし、3個以上の端末を直接接続すると、各端末がそれぞれ複数の端末に対して通信を行うため負荷が増大する。したがって、図2のように、3人以上の端末で合奏する場合にはセッションサーバー260を介して3人以上の端末を接続して通信を行うのが好ましい。セッションサーバー260を介して端末を接続すると、各端末はセッションサーバー260のみに対して通信すればよいので、各端末の負荷を軽減することができる。
【0019】
図3は、第1の端末310及び第2の端末320が通信を行うときのデータ処理の流れを示す。縦軸は時間である。左欄は第1の端末310の処理であり、右欄は第2の端末320の処理である。
【0020】
まず、MIDIデータについて説明する。第1の端末310で押鍵されると、第1の端末310はMIDIデータを第2の端末320に送信し、発音処理する。第2の端末320は、そのMIDIデータを受信し、発音処理する。また、第1の端末310で離鍵されると、第1の端末310はMIDIデータを第2の端末320に送信し、消音処理する。第2の端末320は、そのMIDIデータを受信し、消音処理する。
【0021】
同様に、第2の端末320で押鍵されると、第2の端末320はMIDIデータを第1の端末310に送信し、発音処理する。第1の端末310は、そのMIDIデータを受信し、発音処理する。また、第2の端末320で離鍵されると、第2の端末320はMIDIデータを第1の端末310に送信し、消音処理する。第1の端末310は、そのMIDIデータを受信し、消音処理する。
【0022】
次に、音声データについて説明する。音声データは、録音バッファに録音される。所定間隔(例えば0.45秒)301毎に、録音バッファがフル(一杯)になり、再生される。第1の端末310で録音バッファがフルになると、第1の端末310は音声データをエンコードし、第2の端末320に送信する。第2の端末320は、その音声データを受信し、デコードし、再生バッファにセットし、再生する。同様に、第2の端末320で録音バッファがフルになると、第2の端末320は音声データをエンコードし、第1の端末310に送信する。第1の端末310は、その音声データを受信し、デコードし、再生バッファにセットし、再生する。
【0023】
次に、映像データについて説明する。映像データは、所定間隔(例えば0.5秒)302毎にカメラのキャプチャ指令がなされる。第1の端末310でキャプチャ指令がなされると、第1の端末310は映像データをJPEG圧縮し、第2の端末320に送信し、映像データを表示する。第2の端末320は、そのJPEGデータを受信し、JPEG伸張し、表示する。同様に、第2の端末320でキャプチャ指令がなされると、第2の端末320は映像データをJPEG圧縮し、第1の端末310に送信し、映像データを表示する。第1の端末310は、そのJPEGデータを受信し、JPEG伸張し、表示する。
【0024】
MIDIデータに比べ、映像データは量が多い。そのため、映像データの入力処理及び送信処理は、MIDIデータの送信遅延を招く原因になる。MIDIデータは、映像データに比べ、リアルタイム性が要求される。すなわち、演奏の遅延は、映像の遅延に比べ、悪影響の度合いが大きい。以下、MIDIデータ及び映像データを送信する際に、MIDIデータの通信遅延を防止する方法を説明する。
【0025】
図4は、本実施形態によるデータ通信方法を示す図である。横軸は時間を示す。端末は、例えば一定間隔Tprv毎にカメラ105(図1)のプレビュー処理を行う。プレビュー処理は、カメラ105から映像データを取り込んで入力し、メモリに格納する処理である。間隔Tprvは、例えば0.033[s]である。
【0026】
間隔Tdspは、図3の間隔302に対応し、例えば0.5[s]であり、キャプチャ映像データ送信の間隔である。端末は、一定間隔Tdsp毎のタイミングt1、t2、t3等で、プレビューによりメモリに格納された映像データの送信処理を行う。
【0027】
次に、MIDIデータM1及びM2が鍵盤101(図1)から入力された場合又は他の端末からネットワークを介して入力(受信)した場合を説明する。MIDIデータM1はタイミングt1及びt2の間に入力され、MIDIデータM2はタイミングt2及びt3の間に入力されるとする。カウンタ値401の初期値は0である。MIDIデータM1が入力されるまでは、カウンタ値401は0である。MIDIデータM1が入力されると、カウンタ値401が所定値(例えば1[s])にセットされる。その後、カウンタ値401は、間隔Tchk単位(例えばTchk=5[ms])でデクリメントされる。次に、MIDIデータM2が入力されると、カウンタ値401が再び所定値にセットされる。その後、カウンタ値401は、再び間隔Tchk単位でデクリメントされる。やがて、カウンタ値401が0になる。
【0028】
期間T1及びT3は、カウンタ値401が0の期間である。期間T2は、カウンタ値401が1以上の期間である。期間T1及びT3では、カウンタ値401が0であるので、間隔Tchkでのプレビュー処理及び間隔Tdspでの映像データ送信処理を許可する。期間T2では、カウンタ値401が1以上であるので、間隔Tprvでのプレビュー処理及び間隔Tdspでの映像データ送信処理を許可しない。
【0029】
MIDIデータM1及びM2の入力後の所定時間経過前の期間T2では、映像データのプレビュー(入力)処理及び送信処理を許可しないので、映像データに基づくMIDIデータの送信遅延を防止することができる。また、MIDIデータ入力後の所定時間経過後の期間T1,T3では、映像データのプレビュー(入力)処理及び送信処理を許可するので、映像データを送信することができる。
【0030】
上記では、映像データをプレビュー(入力)する間隔Tprvが、映像データを送信する間隔Tdspよりも短い場合を例に説明した。映像データをプレビュー(入力)する間隔Tprvは、映像データを送信する間隔Tdspと同じにしてもよい。これにより、端末のプレビュー処理による負荷を軽減することができる。
【0031】
なお、受信側端末は、MIDIデータを入力しているときは、映像データを定期的に受信することができない。その際、受信側端末は、前回に受信した映像データを表示し続ける。
【0032】
図5は、上記の端末及びセッションサーバーのコンピュータのハードウェア構成図である。バス501には、中央処理装置(CPU)502、ROM503、RAM504、ネットワークインタフェース505、入力装置506、出力装置507及び外部記憶装置508が接続されている。
【0033】
CPU502は、データの処理及び演算を行うと共に、バス501を介して接続された上記の構成ユニットを制御するものである。ROM503には、予めブートプログラムが記憶されており、このブートプログラムをCPU502が実行することにより、コンピュータが起動する。外部記憶装置508にコンピュータプログラムが記憶されており、そのコンピュータプログラムがRAM504にコピーされ、CPU502により実行される。このコンピュータは、コンピュータプログラムを実行することにより、後に説明する図6〜図8の処理等を行うことができる。
【0034】
外部記憶装置508は、例えばハードディスク記憶装置等であり、電源を切っても記憶内容が消えない。外部記憶装置508は、コンピュータプログラム、MIDIデータ、音声データ及び映像データ等を記録媒体に記録したり、記録媒体からコンピュータプログラム等を読み出すことができる。
【0035】
ネットワークインタフェース505は、ネットワーク(インターネット及びMIDI等)に対してMIDIデータ、音声データ及び映像データの他、コンピュータプログラム等を送受信することができる。入力装置506は、例えばキーボード及びポインティングデバイス(マウス)等であり、各種指定又は入力等を行うことができる。出力装置507は、ディスプレイ等であり、種々の情報を表示することができる。
【0036】
図6は、MIDIデータが鍵盤101(図1)から入力されたとき又は他の端末からネットワークを介して入力(受信)したときの端末の処理を示すフローチャートである。ステップS601では、プレビュー処理を停止する。すなわち、端末は、カメラから映像データを定期的に取り込んで入力する処理を停止する。図7のステップS704にてプレビュー処理の開始が指示されるまでは、プレビュー処理を行わない。次に、ステップS602では、カウンタに定数をセットする。次に、ステップS603では、入力されたMIDIデータをネットワークを介して他の端末に送信する。他の端末は、そのMIDIデータを受信して発音処理等を行う。次に、ステップS604では、そのMIDIデータの処理を行う。MIDIデータがキーオンイベントであれば発音処理を行い、キーオフイベントであれば消音処理を行う。以上で、処理を終了する。
【0037】
図7は、間隔Tchk(図4)で行うタイマー割り込み処理を示すフローチャートである。ステップS701では、カウンタ値が0より大きいか否かをチェックする。0より大きければステップS702へ進み、大きくなければ処理を終了する。ステップS702では、カウンタ値をデクリメントする。次に、ステップS703では、カウンタ値が0か否かをチェックする。0であればステップS704へ進み、0でなければ処理を終了する。ステップS704では、プレビュー処理を開始する。これ以後、端末は、カメラから映像データを定期的に取り込んで入力する。以上で、処理を終了する。
【0038】
図8は、間隔Tdsp(図4)で行うタイマー割り込み処理を示すフローチャートである。ステップS801では、カウンタ値が0か否かをチェックする。0であればステップS802へ進み、0でなければ処理を終了する。ステップS802では、上記のプレビュー処理によりカメラから取り込んだ映像データをキャプチャデータとして取得する。次に、ステップS803では、そのキャプチャ映像データをネットワークを介して他の端末に送信する。他の端末は、その映像データを受信して表示する。次に、ステップS804では、そのキャプチャ映像データをディスプレイに表示する。以上で、処理を終了する。
【0039】
以上のように、本実施形態によれば、MIDIデータ入力後の所定時間経過前では、映像データのプレビュー(入力)処理、送信処理及び表示処理を許可しないので、映像データに基づくMIDIデータの送信遅延を防止することができる。また、MIDIデータ入力後の所定時間経過後では、映像データのプレビュー(入力)処理、送信処理及び表示処理を許可するので、映像データを送信することができ、相手側の端末に自己の映像を表示させることができる。
【0040】
本実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したCD−ROM等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びコンピュータプログラムプロダクトは、本発明の範疇に含まれる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
【0041】
上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0042】
【発明の効果】
以上説明したように、演奏データ入力後の所定時間経過前は入力された映像データの送信を許可しないので、映像データの送信に基づく演奏データの送信遅延を防止することができる。また、演奏データ入力後の所定時間経過後は、入力された映像データの送信を許可するので、映像データを送信することができる。
【図面の簡単な説明】
【図1】本発明の実施形態によるデータ通信システムの第1の構成例を示す図である。
【図2】本発明の実施形態によるデータ通信システムの第2の構成例を示す図である。
【図3】第1の端末及び第2の端末が通信を行うときのデータ処理の流れを示す図である。
【図4】本実施形態によるデータ通信方法を示す図である。
【図5】端末及びセッションサーバーのコンピュータのハードウェア構成図である。
【図6】鍵盤からMIDIデータが入力されたときの端末の処理を示すフローチャートである。
【図7】間隔Tchkで行うタイマー割り込み処理を示すフローチャートである。
【図8】間隔Tdspで行うタイマー割り込み処理を示すフローチャートである。
【符号の説明】
101 鍵盤
102 音源
103 マイク
104 スピーカ
105 カメラ
106 ディスプレイ
110,120 端末
130 インターネット
131 TCPポート
132 UDPポート
211〜214 端末
250 インターネット
251 TCPポート
252 UDPポート
260 セッションサーバー
501 バス
502 CPU
503 ROM
504 RAM
505 ネットワークインタフェース
506 入力装置
507 出力装置
508 外部記憶装置
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to data communication technology, and in particular, to communication technology for performance data and video data.
[0002]
[Prior art]
In communication of performance data between remote locations, it will be possible to have more enjoyable communication if the video of the other party captured by the camera can be displayed. However, compared with performance data (MIDI data), the amount of video data is large and the communication load becomes large. In order to perform an ensemble, it is necessary to transmit and receive performance data as fast as possible, so it is not very desirable to communicate video data that affects the communication state.
[0003]
In addition, when capturing video data with a camera, the load on the CPU increases, which may affect other processes. At this time, it is conceivable that communication of performance data when performing an ensemble is hindered.
[0004]
As described above, it is desired that the other party's video can be seen in the ensemble between the remote locations, but this actually causes a delay in the performance and is difficult to realize.
[0005]
Moreover, the following patent document 1 is disclosed.
[0006]
[Patent Document 1]
JP 2000-20055 JP
[Problems to be solved by the invention]
An object of the present invention is to provide a data communication technique capable of preventing communication delay of performance data when transmitting performance data and video data.
[0008]
[Means for Solving the Problems]
According to one aspect of the present invention, performance data input means for inputting performance data, video data input means for inputting video data from a camera, performance data transmission means for transmitting the input performance data, and the performance Provided by a data communication device having a video data transmission means that does not permit transmission of the input video data before the lapse of a predetermined time after data input and permits transmission of the input video data after the lapse of a predetermined time Is done.
According to another aspect of the present invention, a performance data input step for inputting performance data, a video data input step for inputting video data from a camera, a performance data transmission step for transmitting the input performance data, A data communication method comprising: a video data transmission step that does not permit transmission of the input video data before the elapse of a predetermined time after performance data input and permits transmission of the input video data after the elapse of a predetermined time. Provided.
According to still another aspect of the present invention, a performance data input step for inputting performance data, a video data input step for inputting video data from a camera, a performance data transmission step for transmitting the input performance data, Before the predetermined time elapses after the performance data is input, transmission of the input video data is not permitted, and after the predetermined time has elapsed, a video data transmission step of permitting transmission of the input video data is executed by a computer. A program is provided.
[0009]
According to the present invention, since transmission of the input video data is not permitted before the elapse of a predetermined time after the performance data is input, it is possible to prevent a delay in transmission of the performance data based on the transmission of the video data. Further, after a predetermined time has elapsed after the performance data is input, transmission of the input video data is permitted, so that the video data can be transmitted.
[0010]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 shows a first configuration example of a data communication system according to an embodiment of the present invention. The two terminals 110 and 120 are directly connected so that two performers can perform ensembles at remote locations, and communicate performance data, audio data, and video data with each other. For example, the terminal 110 is a server and the terminal 120 is a client. The terminals 110 and 120 each have a keyboard 101, a sound source 102, a microphone 103, a speaker 104, a camera 105, and a display 106.
[0011]
When the performer plays the keyboard (electronic musical instrument) 101, the keyboard 101 generates performance data and supplies it to the terminal 110. The performance data is, for example, MIDI (Musical Instrument Digital Interface) data. When the MIDI data is input from the keyboard 101, the terminal 110 outputs the MIDI data to the sound source 102 and transmits it to the terminal 120 via the Internet (network) 130. The sound source 102 generates a tone signal based on the MIDI data, and causes the speaker 104 to generate a tone. Similarly, at the terminal 120, a musical sound is generated by the sound source 102 and the speaker 104.
[0012]
The microphone 103 generates a sound signal based on the sound such as the performer's singing voice and outputs the sound signal to the terminal 110. When an analog audio signal is input from the microphone 103, the terminal 110 converts the audio signal into digital audio data, generates a sound from the speaker 104, and transmits the sound to the terminal 120 via the Internet 130. Similarly, at the terminal 120, sound is produced from the speaker 104.
[0013]
The camera 105 generates video data such as a performer or a score and outputs it to the terminal 110. When the video data is input from the camera 105, the terminal 110 displays the video data on the display 106 and transmits it to the terminal 120 via the Internet 130. Similarly, the terminal 120 displays the video on the display 106.
[0014]
Similarly, at the terminal 120, the generated MIDI data, audio data, and video data are reproduced and transmitted to the terminal 110. In the terminal 110, the same MIDI data, audio data, and video data are reproduced. Thereby, two performers can perform an ensemble in a remote place in real time.
[0015]
Under the Internet 130 environment, the terminals 110 and 120 communicate audio data and video data via a TCP (Transmission Control Protocol) port 131 and communicate MIDI data via a UDP (User Datagram Protocol) port 132. . MIDI data is required to be faster (real time) than audio data and video data. Therefore, the MIDI data uses the UDP port 132, and the audio data and video data use the TCP port 131. Only the UDP port may be used without dividing the TCP port 131 and the UDP port 132. In that case, it is preferable to prioritize the data and send / receive MIDI data with priority. In the two-person mode, of the two terminals 110 and 120, the one that requests the connection first is the server, and the other is the client.
[0016]
FIG. 2 shows a second configuration example of the data communication system according to the embodiment of the present invention. The four terminals 211 to 214 are connected via a session server 260 so that four performers can perform ensembles at remote locations, and communicate performance data, audio data, and video data with each other. This mode is used when there are three or more people, but the case of four people will be described as an example. The four terminals 211 to 214 are all clients, and the session server 260 is a server. Similarly to FIG. 1, the terminals 211 to 214 each have a keyboard 101, a sound source 102, a microphone 103, a speaker 104, a camera 105, and a display 106.
[0017]
The terminals 211 to 214 and the session server 260 are connected via the Internet (network) 250. Under the Internet 250 environment, the terminals 211 to 214 communicate audio data, video data, and the like via the TCP port 251, and communicate MIDI data and the like via the UDP port 252. The terminals 211 to 214 communicate MIDI data, audio data, and video data with each other via the session server 260. Thereby, three or more (for example, four) performers can perform an ensemble in real time in a remote place.
[0018]
As shown in FIG. 1, when performing an ensemble with two terminals, it is preferable to communicate by directly connecting the two terminals. If the terminals are directly connected, high-speed communication can be performed. However, when three or more terminals are directly connected, the load increases because each terminal communicates with a plurality of terminals. Therefore, as shown in FIG. 2, when performing an ensemble with three or more terminals, it is preferable to connect and communicate with three or more terminals via the session server 260. When a terminal is connected via the session server 260, each terminal only needs to communicate with the session server 260 only, so that the load on each terminal can be reduced.
[0019]
FIG. 3 shows a flow of data processing when the first terminal 310 and the second terminal 320 perform communication. The vertical axis is time. The left column is the process of the first terminal 310, and the right column is the process of the second terminal 320.
[0020]
First, MIDI data will be described. When the key is pressed by the first terminal 310, the first terminal 310 transmits MIDI data to the second terminal 320 to perform sound generation processing. The second terminal 320 receives the MIDI data and performs sound generation processing. When the key is released at the first terminal 310, the first terminal 310 transmits MIDI data to the second terminal 320 and performs a mute process. The second terminal 320 receives the MIDI data and performs a mute process.
[0021]
Similarly, when the key is depressed at the second terminal 320, the second terminal 320 transmits MIDI data to the first terminal 310 to perform sound generation processing. The first terminal 310 receives the MIDI data and performs sound generation processing. When the key is released from the second terminal 320, the second terminal 320 transmits MIDI data to the first terminal 310 and performs a mute process. The first terminal 310 receives the MIDI data and performs a mute process.
[0022]
Next, audio data will be described. Audio data is recorded in the recording buffer. Every predetermined interval (for example, 0.45 seconds) 301, the recording buffer becomes full (full) and is played back. When the recording buffer becomes full in the first terminal 310, the first terminal 310 encodes the audio data and transmits it to the second terminal 320. The second terminal 320 receives the audio data, decodes it, sets it in the reproduction buffer, and reproduces it. Similarly, when the recording buffer becomes full in the second terminal 320, the second terminal 320 encodes the audio data and transmits it to the first terminal 310. The first terminal 310 receives the audio data, decodes it, sets it in the reproduction buffer, and reproduces it.
[0023]
Next, video data will be described. For the video data, a camera capture command is issued at predetermined intervals (for example, 0.5 seconds) 302. When a capture command is issued at the first terminal 310, the first terminal 310 JPEG-compresses the video data, transmits it to the second terminal 320, and displays the video data. The second terminal 320 receives the JPEG data, decompresses the JPEG, and displays it. Similarly, when a capture command is given by the second terminal 320, the second terminal 320 JPEG-compresses the video data, transmits it to the first terminal 310, and displays the video data. The first terminal 310 receives the JPEG data, decompresses the JPEG, and displays it.
[0024]
Compared to MIDI data, the amount of video data is large. Therefore, video data input processing and transmission processing cause a delay in the transmission of MIDI data. MIDI data is required to be real-time compared to video data. That is, the performance delay has a greater adverse effect than the video delay. Hereinafter, a method of preventing communication delay of MIDI data when transmitting MIDI data and video data will be described.
[0025]
FIG. 4 is a diagram illustrating a data communication method according to the present embodiment. The horizontal axis indicates time. The terminal performs preview processing of the camera 105 (FIG. 1), for example, at regular intervals Tprv. The preview process is a process for acquiring video data from the camera 105, inputting it, and storing it in a memory. The interval Tprv is, for example, 0.033 [s].
[0026]
The interval Tdsp corresponds to the interval 302 in FIG. 3 and is 0.5 [s], for example, and is an interval of capture video data transmission. The terminal performs transmission processing of video data stored in the memory by preview at timings t1, t2, t3, etc. at regular intervals Tdsp.
[0027]
Next, the case where the MIDI data M1 and M2 are input from the keyboard 101 (FIG. 1) or the case where they are input (received) from another terminal via the network will be described. The MIDI data M1 is input between timings t1 and t2, and the MIDI data M2 is input between timings t2 and t3. The initial value of the counter value 401 is 0. Until the MIDI data M1 is input, the counter value 401 is zero. When the MIDI data M1 is input, the counter value 401 is set to a predetermined value (for example, 1 [s]). Thereafter, the counter value 401 is decremented at intervals of Tchk (for example, Tchk = 5 [ms]). Next, when the MIDI data M2 is input, the counter value 401 is set to a predetermined value again. After that, the counter value 401 is again decremented by the interval Tchk. Eventually, the counter value 401 becomes zero.
[0028]
Periods T1 and T3 are periods in which the counter value 401 is zero. The period T2 is a period in which the counter value 401 is 1 or more. Since the counter value 401 is 0 in the periods T1 and T3, the preview process at the interval Tchk and the video data transmission process at the interval Tdsp are permitted. In the period T2, since the counter value 401 is 1 or more, the preview process at the interval Tprv and the video data transmission process at the interval Tdsp are not permitted.
[0029]
In the period T2 before the predetermined time elapses after the MIDI data M1 and M2 are input, the video data preview (input) processing and transmission processing are not permitted, so that transmission delay of MIDI data based on the video data can be prevented. In the periods T1 and T3 after the lapse of a predetermined time after the MIDI data is input, the video data preview (input) processing and transmission processing are permitted, so that the video data can be transmitted.
[0030]
In the above description, the case where the interval Tprv for previewing (inputting) video data is shorter than the interval Tdsp for transmitting video data has been described as an example. The interval Tprv for previewing (inputting) video data may be the same as the interval Tdsp for transmitting video data. Thereby, it is possible to reduce the load due to the preview processing of the terminal.
[0031]
The receiving terminal cannot periodically receive video data when MIDI data is being input. At that time, the receiving terminal continues to display the previously received video data.
[0032]
FIG. 5 is a hardware configuration diagram of the computer of the terminal and the session server. A central processing unit (CPU) 502, a ROM 503, a RAM 504, a network interface 505, an input device 506, an output device 507, and an external storage device 508 are connected to the bus 501.
[0033]
The CPU 502 performs data processing and calculation, and controls the above-described constituent units connected via the bus 501. The ROM 503 stores a boot program in advance, and the computer is activated when the CPU 502 executes the boot program. A computer program is stored in the external storage device 508, and the computer program is copied to the RAM 504 and executed by the CPU 502. This computer can execute the processes of FIGS. 6 to 8 described later and the like by executing a computer program.
[0034]
The external storage device 508 is, for example, a hard disk storage device or the like, and the stored content does not disappear even when the power is turned off. The external storage device 508 can record a computer program, MIDI data, audio data, video data, and the like on a recording medium, and can read out the computer program and the like from the recording medium.
[0035]
The network interface 505 can transmit and receive computer programs and the like in addition to MIDI data, audio data, and video data to and from a network (Internet, MIDI, and the like). The input device 506 is, for example, a keyboard and a pointing device (mouse), and can perform various designations or inputs. The output device 507 is a display or the like and can display various information.
[0036]
FIG. 6 is a flowchart showing processing of the terminal when MIDI data is input from the keyboard 101 (FIG. 1) or input (received) from another terminal via the network. In step S601, the preview process is stopped. That is, the terminal stops the process of periodically taking and inputting video data from the camera. The preview process is not performed until the start of the preview process is instructed in step S704 in FIG. Next, in step S602, a constant is set in the counter. In step S603, the input MIDI data is transmitted to another terminal via the network. Other terminals receive the MIDI data and perform sound generation processing and the like. In step S604, the MIDI data is processed. If the MIDI data is a key-on event, sound generation processing is performed, and if the MIDI data is a key-off event, mute processing is performed. Thus, the process ends.
[0037]
FIG. 7 is a flowchart showing timer interrupt processing performed at the interval Tchk (FIG. 4). In step S701, it is checked whether or not the counter value is greater than zero. If greater than 0, the process proceeds to step S702, and if not greater, the process ends. In step S702, the counter value is decremented. In step S703, it is checked whether the counter value is zero. If it is 0, the process proceeds to step S704, and if it is not 0, the process ends. In step S704, preview processing is started. Thereafter, the terminal periodically captures and inputs video data from the camera. Thus, the process ends.
[0038]
FIG. 8 is a flowchart showing timer interrupt processing performed at the interval Tdsp (FIG. 4). In step S801, it is checked whether the counter value is 0 or not. If it is 0, the process proceeds to step S802, and if it is not 0, the process ends. In step S802, the video data captured from the camera by the preview process is acquired as capture data. In step S803, the captured video data is transmitted to another terminal via the network. Other terminals receive and display the video data. In step S804, the captured video data is displayed on the display. Thus, the process ends.
[0039]
As described above, according to the present embodiment, the preview (input) process, the transmission process, and the display process of the video data are not permitted before the predetermined time has elapsed after the MIDI data is input. Delay can be prevented. In addition, after a predetermined time has elapsed after the MIDI data is input, video data preview (input) processing, transmission processing, and display processing are permitted, so that the video data can be transmitted, and the self video can be transmitted to the partner terminal. Can be displayed.
[0040]
This embodiment can be realized by a computer executing a program. Also, means for supplying a program to a computer, for example, a computer-readable recording medium such as a CD-ROM recording such a program, or a transmission medium such as the Internet for transmitting such a program is also applied as an embodiment of the present invention. Can do. A computer program product such as a computer-readable recording medium in which the above program is recorded can also be applied as an embodiment of the present invention. The above program, recording medium, transmission medium, and computer program product are included in the scope of the present invention. As the recording medium, for example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a magnetic tape, a nonvolatile memory card, a ROM, or the like can be used.
[0041]
The above-described embodiments are merely examples of implementation in carrying out the present invention, and the technical scope of the present invention should not be construed as being limited thereto. That is, the present invention can be implemented in various forms without departing from the technical idea or the main features thereof.
[0042]
【The invention's effect】
As described above, since transmission of the input video data is not permitted before the elapse of a predetermined time after the performance data is input, performance data transmission delay due to transmission of the video data can be prevented. In addition, after a predetermined time has elapsed after the performance data is input, transmission of the input video data is permitted, so that the video data can be transmitted.
[Brief description of the drawings]
FIG. 1 is a diagram showing a first configuration example of a data communication system according to an embodiment of the present invention.
FIG. 2 is a diagram showing a second configuration example of the data communication system according to the embodiment of the present invention.
FIG. 3 is a diagram illustrating a flow of data processing when a first terminal and a second terminal perform communication.
FIG. 4 is a diagram showing a data communication method according to the present embodiment.
FIG. 5 is a hardware configuration diagram of a computer of a terminal and a session server.
FIG. 6 is a flowchart showing processing of a terminal when MIDI data is input from a keyboard.
FIG. 7 is a flowchart showing timer interrupt processing performed at an interval Tchk.
FIG. 8 is a flowchart showing timer interrupt processing performed at an interval Tdsp.
[Explanation of symbols]
101 Keyboard 102 Sound Source 103 Microphone 104 Speaker 105 Camera 106 Display 110, 120 Terminal 130 Internet 131 TCP Port 132 UDP Port 211-214 Terminal 250 Internet 251 TCP Port 252 UDP Port 260 Session Server 501 Bus 502 CPU
503 ROM
504 RAM
505 Network interface 506 Input device 507 Output device 508 External storage device

Claims (11)

演奏データを入力する演奏データ入力手段と、
カメラから映像データを入力する映像データ入力手段と、
前記入力された演奏データを送信する演奏データ送信手段と、
前記演奏データ入力後の所定時間経過前は前記入力された映像データの送信を許可せず、所定時間経過後は前記入力された映像データの送信を許可する映像データ送信手段と
を有するデータ通信装置。
Performance data input means for inputting performance data;
Video data input means for inputting video data from the camera;
Performance data transmission means for transmitting the input performance data;
A data communication apparatus comprising: a video data transmitting unit that does not permit transmission of the input video data before a predetermined time elapses after the performance data is input and permits transmission of the input video data after a predetermined time elapses .
前記映像データ入力手段は、前記演奏データ入力後の所定時間経過前はカメラから映像データを入力せず、所定時間経過後はカメラから映像データを入力する請求項1記載のデータ通信装置。2. The data communication apparatus according to claim 1, wherein the video data input means does not input video data from the camera before a predetermined time elapses after the performance data is input, and inputs video data from the camera after a predetermined time elapses. 前記映像データ送信手段は、前記演奏データ入力後の所定時間経過後は前記入力された映像データを一定間隔で送信する請求項2記載のデータ通信装置。3. The data communication apparatus according to claim 2, wherein the video data transmitting means transmits the input video data at regular intervals after a predetermined time has elapsed after the performance data is input. 前記映像データ入力手段は、前記演奏データ入力後の所定時間経過後はカメラから映像データを一定間隔で入力する請求項3記載のデータ通信装置。4. The data communication apparatus according to claim 3, wherein the video data input means inputs video data from the camera at a constant interval after a predetermined time has elapsed after the performance data is input. 前記映像データを入力する間隔が前記映像データを送信する間隔よりも短い請求項4記載のデータ通信装置。5. The data communication apparatus according to claim 4, wherein an interval for inputting the video data is shorter than an interval for transmitting the video data. 前記映像データを入力する間隔が前記映像データを送信する間隔と同じである請求項4記載のデータ通信装置。5. The data communication apparatus according to claim 4, wherein an interval for inputting the video data is the same as an interval for transmitting the video data. 前記映像データ送信手段は、前記演奏データが入力されるとカウンタのカウントを開始し、該カウンタが所定値になると映像データの送信を許可する請求項1〜6のいずれか1項に記載のデータ通信装置。The data according to any one of claims 1 to 6, wherein the video data transmission means starts counting of a counter when the performance data is input, and permits transmission of video data when the counter reaches a predetermined value. Communication device. 前記演奏データ入力手段は、電子楽器から演奏データを入力する請求項1〜7のいずれか1項に記載のデータ通信装置。The data communication device according to claim 1, wherein the performance data input unit inputs performance data from an electronic musical instrument. 前記演奏データは、MIDIデータである請求項1〜8のいずれか1項に記載のデータ通信装置。The data communication apparatus according to claim 1, wherein the performance data is MIDI data. 演奏データを入力する演奏データ入力ステップと、
カメラから映像データを入力する映像データ入力ステップと、
前記入力された演奏データを送信する演奏データ送信ステップと、
前記演奏データ入力後の所定時間経過前は前記入力された映像データの送信を許可せず、所定時間経過後は前記入力された映像データの送信を許可する映像データ送信ステップと
を有するデータ通信方法。
A performance data input step for inputting performance data;
A video data input step for inputting video data from the camera;
A performance data transmission step of transmitting the input performance data;
A data communication method comprising: a video data transmission step that does not permit transmission of the input video data before a predetermined time elapses after the performance data is input and permits transmission of the input video data after a predetermined time elapses .
演奏データを入力する演奏データ入力ステップと、
カメラから映像データを入力する映像データ入力ステップと、
前記入力された演奏データを送信する演奏データ送信ステップと、
前記演奏データ入力後の所定時間経過前は前記入力された映像データの送信を許可せず、所定時間経過後は前記入力された映像データの送信を許可する映像データ送信ステップと
をコンピュータに実行させるためのプログラム。
A performance data input step for inputting performance data;
A video data input step for inputting video data from the camera;
A performance data transmission step of transmitting the input performance data;
Before the predetermined time elapses after the performance data is input, transmission of the input video data is not permitted, and after the predetermined time has elapsed, a video data transmission step of permitting transmission of the input video data is executed by a computer. Program for.
JP2003093351A 2003-03-31 2003-03-31 Data communication apparatus, method and program Expired - Fee Related JP4071140B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003093351A JP4071140B2 (en) 2003-03-31 2003-03-31 Data communication apparatus, method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003093351A JP4071140B2 (en) 2003-03-31 2003-03-31 Data communication apparatus, method and program

Publications (2)

Publication Number Publication Date
JP2004301998A JP2004301998A (en) 2004-10-28
JP4071140B2 true JP4071140B2 (en) 2008-04-02

Family

ID=33406172

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003093351A Expired - Fee Related JP4071140B2 (en) 2003-03-31 2003-03-31 Data communication apparatus, method and program

Country Status (1)

Country Link
JP (1) JP4071140B2 (en)

Also Published As

Publication number Publication date
JP2004301998A (en) 2004-10-28

Similar Documents

Publication Publication Date Title
CA2438194C (en) Live navigation web-conferencing system and method
JP2003280644A (en) Session device and program for realizing control method therefor
JP5380109B2 (en) Karaoke service system, distribution server, terminal device
JP2009535988A (en) System and method for processing data signals
JP2002091291A (en) Data communication system for piano lesson
JP3324672B2 (en) Real-time digital speech reverberation system
WO2006011401A1 (en) Information processing device and method, recording medium, and program
CN113270080A (en) Chorus method, system, device, terminal and computer readable storage medium
JP3852348B2 (en) Playback and transmission switching device and program
JP4071140B2 (en) Data communication apparatus, method and program
JP6196839B2 (en) A communication karaoke system characterized by voice switching processing during communication duets
JP6051075B2 (en) A communication karaoke system that can continue duet singing in the event of a communication failure
JP6170692B2 (en) A communication karaoke system that can continue duet singing in the event of a communication failure
CN108769799A (en) A kind of information processing method and electronic equipment
JP4126246B2 (en) Performance data communication system
JP2003085068A (en) Live information providing server, information communication terminal, live information providing system and live information providing method
JP4543586B2 (en) Audio reproduction apparatus and audio reproduction method
JP2004094683A (en) Server, communication method, and spectator terminal
TWI844231B (en) System and method for providing karaoke service
WO2023084933A1 (en) Information processing device, information processing method, and program
WO2024047816A1 (en) Video-related sound reproduction method, video-related sound reproduction device, and video-related sound reproduction program
WO2022264537A1 (en) Haptic signal generation device, haptic signal generation method, and program
JP4422656B2 (en) Remote multi-point concert system using network
WO2024047814A1 (en) Playback volume control method, playback volume control device, and playback volume control program
WO2024057399A1 (en) Media playback control device, media playback control method, and media playback control program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071206

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080116

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees