(57)【要約】【課題】演奏操作子の操作に対応してＭＩＤＩデータを外部出力可能な電子楽器において、ＭＩＤＩデータの受信側で処理をしても実際に忠実なイベントタイミングとして再現できるようにする。【解決手段】送信側の電子楽器１２にタイムスタンプ付加モジュール１２ａの機能を備え、鍵盤演奏でＭＩＤＩデータが発生する毎にそのＭＩＤＩデータの発生タイミングを示すタイムスタンプ（時間情報）を生成し、ＭＩＤＩデータに付加してコントローラ１１に出力する。コントローラ１１からＭＩＤＩデータとタイムスタンプを受信側に送信する。受信側のコントローラ２１はタイムスタンプと内部時計２１ａでＭＩＤＩデータのタイミングを計算して、電子楽器２４の近傍に配置したディスプレイ２２でＭＩＤＩデータに基づいてピアノロール形式の運指ガイド表示を行う。【選択図】図１
2005196073.tif 000002
【特許請求の範囲】
【請求項１】
操作に応じた操作イベントと、該操作イベントの発生タイミングを制御するタイミング情報とを少なくとも含む演奏情報を発生する演奏情報発生手段であって、前記演奏情報は同時に発生する複数の操作イベントに対しては共通する１つのタイミング情報が付与されるようにしているものと、
該演奏情報発生手段で発生された演奏情報を外部に出力するための外部出力部と、
操作イベントに対してタイミング情報を付与するタイミング情報付与部と、
を備え、
前記外部出力部で演奏情報を出力する際に、前記演奏情報発生手段から操作イベントが同時に複数発生したときに、前記タイミング情報付与部が各操作イベントに対してタイミング情報を付加して出力するようにしたことを特徴とする演奏情報出力装置。
【請求項２】
複数の演奏イベントと該演奏イベントの発生タイミングを制御するタイミング情報とを含んで構成される演奏データを、シリアルに順次入力する入力部と、
一部に複数の演奏操作子を表示するとともに、前記入力部から入力された演奏データに基づき、表示された前記演奏操作子の中の前記演奏データに対応するものにおいて操作形態に応じた表示を行う表示部と、
前記入力部に入力された演奏データのイベントについて、その発生タイミングと前記表示部に表示している操作イベントの表示開始の位置に対応する時刻とを比較する比較手段と、
該比較手段によって、イベントの発生タイミングが前記表示部の最新時刻よりも前だったときに、表示上のイベントの発生タイミングの位置から表示を更新する表示更新手段を有することを特徴とする演奏データ表示システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演奏操作部の操作に応じて該操作イベントに対応するＭＩＤＩデータを発生して外部に出力可能な電子楽器等の演奏情報出力装置、及びその出力された演奏情報を表示する演奏データ表示システムに関する。
【背景技術】
【０００２】
従来、電子楽器において、演奏操作に対応してその内部処理でＭＩＤＩ規格のデータを用いて楽音の発生等を制御するものが多い。また、このような電子楽器では演奏操作で発生させたノートオンイベントやノートオフイベント等の各種ＭＩＤＩデータを外部に出力するＭＩＤＩ出力端子と、外部機器からＭＩＤＩデータを入力するＭＩＤＩ入力端子とを備えたものが一般的である。これにより、電子楽器と外部ＭＩＤＩ機器とを接続し（「ＭＩＤＩ接続」という。）、この電子楽器と外部ＭＩＤＩ機器との間で演奏操作によるＭＩＤＩデータの授受を行うことができる。そして、例えば電子楽器で発生したＭＩＤＩデータを外部のＭＩＤＩ機器に出力し、このＭＩＤＩ機器で楽音を発生するように構成することもできる。なお、この種の電子楽器（あるいはＭＩＤＩ機器）は多々あるがその一例をあげると例えば特開２０００−３１７１号公報に開示されたものがある。
【０００３】
また、演奏ガイドや音楽ゲームにおいて、演奏データを読み出して、例えば鍵盤楽器における押鍵タイミングがわかるように、そのタイミングの前からスクロール表示を行う技術がある。例えば、特許第３０５８０５１号公報に開示されている。
【特許文献１】特開２０００−３１７１号公報
【特許文献２】特許第３０５８０５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ここで、電子楽器から演奏操作時のＭＩＤＩデータを外部ＭＩＤＩ機器に送出し、この外部ＭＩＤＩ機器でそのＭＩＤＩデータを例えば演奏データとして蓄積（記憶）する場合を考える。この場合、送出する際に、同時に発生したイベントでもシリアルに変換されて出力され、外部ＭＩＤＩ機器では内部時計等の時間をタイムベースとして各ＭＩＤＩデータの受信タイミングをそのイベントのタイミングとして決定するしかない。すなわち、外部から入力されるＭＩＤＩデータをその受信タイミングに基づいて処理している。
【０００５】
このような構成では、隣接する２台の機器の間でＭＩＤＩケーブルで接続するなど、伝送系における転送時間が非常に短いものにおいて演奏や表示を行う場合は問題ないが、伝送系の通信速度が非常に遅かったり、あるいは高速な伝送系であっても遠距離間の通信で、送信側と受信側との間に別途発生する割り込みなどによってその通信速度が変化してしまうものにおいては、低速の通信時にシリアルにデータが送られることによって、受信側がそのデータを受け取ったときに内部時計を基準として演奏や表示を制御すると、同時に発生したイベントであっても発音タイミングや表示位置にずれを生じてしまい、正確に送信時の態様を再現できないという問題があった。したがって、受信したＭＩＤＩデータでは例えば運指ガイドなどを行うと表示位置や表示タイミングがずれてしまうという問題がある。
【０００６】
従来の電子楽器の演奏時に発生するＭＩＤＩデータは、キーセンサの時間精度程度の遅延はあっても、実質的に演奏（押鍵）に同期して発生する。図１０は従来のＭＩＤＩデータの送受信動作と運指ガイド表示を概念的に示す図である。送信側の例えばメモリに同時タイミングの複数イベントとなるＭＩＤＩデータがあると、一つのタイミングデータ（Tim.）に対応して各イベントのデータ（Ｉ1 ，Ｉ2 ，Ｉ3 ，…）が纏めて記憶されている。このデータを外部出力し例えばＭＩＤＩケーブルで送信すると、これらのＭＩＤＩデータが（Tim.，Ｉ1 ，Ｉ2 ，Ｉ3 ，…）のようにシリアルに送られる。受信側ではこのデータをシリアルに受信し、一つのデータを受信する毎に受信バッファに記憶していく。
【０００７】
すなわち、最初の受信データはタイミングデータ（Tim.）であり受信バッファは(i) の状態になる。以後、データＩ1 が受信されて受信バッファは(ii)の状態になり、順にデータＩ2 、Ｉ3 、が受信され、受信バッファは(iii) →(iv)の状態になる。このＭＩＤＩデータにより運指ガイド表示を行うと、(ii)のときノートバーＩ1 の先頭のみが表示され、次に、(iii) のとき、ノートバーＩ1 が１スクロール分進んでノートバーＩ2 の先頭が表示される。次に、(iv)のときノートバーＩ1 、Ｉ2 が１スクロール分進んでノートバーＩ3 の先頭が表示される。この運指ガイド表示はピアノロールであり、各ノートバーの先頭が押鍵タイミングに対応しているが、同時に発生したＭＩＤＩデータにも関わらず、運指ガイド表示において押鍵タイミングがずれたものとなってしまう。このように、本来同時押鍵操作された３つの鍵の表示が、受信側でその開始位置の表示がずれてしまうという問題を生じてしまう。
【０００８】
本発明は、電子楽器から外部出力されるＭＩＤＩデータ等の演奏情報を受信し、受信側でこの演奏情報に基づいて処理をしても実際に忠実なイベントタイミングとして再現できるようにすることを課題とする。
【課題を解決するための手段】
【０００９】
請求項１の演奏情報出力装置は、操作に応じた操作イベントと、該操作イベントの発生タイミングを制御するタイミング情報とを少なくとも含む演奏情報を発生する演奏情報発生手段であって、前記演奏情報は同時に発生する複数の操作イベントに対しては共通する１つのタイミング情報が付与されるようにしているものと、該演奏情報発生手段で発生された演奏情報を外部に出力するための外部出力部と、操作イベントに対してタイミング情報を付与するタイミング情報付与部と、を備え、前記外部出力部で演奏情報を出力する際に、前記演奏情報発生手段から操作イベントが同時に複数発生したときに、前記タイミング情報付与部が各操作イベントに対してタイミング情報を付加して出力するようにしたことを特徴とする。したがって、少なくとも複数同時に発生した演奏情報について、各演奏情報が発生したタイミングを示すタイミング情報を生成し、該タイミング情報をそれぞれ対応する操作イベントに対して付加して出力するので、このタイミング情報から実際に忠実なイベントタイミングが判明する。
【００１０】
本発明の請求項２の演奏データ表示システムは、複数の演奏イベントと該演奏イベントの発生タイミングを制御するタイミング情報とを含んで構成される演奏データを、シリアルに順次入力する入力部と、一部に複数の演奏操作子を表示するとともに、前記入力部から入力された演奏データに基づき、表示された前記演奏操作子の中の前記演奏データに対応するものにおいて操作形態に応じた表示を行う表示部と、前記入力部に入力された演奏データのイベントについて、その発生タイミングと前記表示部に表示している操作イベントの表示開始の位置に対応する時刻とを比較する比較手段と、該比較手段によって、イベントの発生タイミングが前記表示部の最新時刻よりも前だったときに、表示上のイベントの発生タイミングの位置から表示を更新する表示更新手段を有することを特徴とする。
【００１１】
請求項２の演奏データ表示システムにおいて、演奏データは、複数の演奏イベントと該演奏イベントの発生タイミングを制御するタイミング情報とを含んで構成されており、入力部によりこの演奏データをシリアルに順次入力する。表示部は、例えば表示画面の一部に複数の演奏操作子を表示するとともに、入力された演奏データに基づき、表示された演奏操作子の中の演奏データに対応するものにおいて操作形態に応じた表示を行う。このとき、比較手段は、入力部に入力された演奏データのイベントについて、その発生タイミングと表示部に表示している操作イベントの表示開始の位置に対応する時刻とを比較し、表示更新手段は、イベントの発生タイミングが表示部の最新時刻よりも前だったときに、表示上のイベントの発生タイミングの位置から表示を更新する。したがって、演奏データの実際の発生タイミングに忠実な表示を行う。
【発明の効果】
【００１２】
請求項１の演奏情報出力装置によれば、ＭＩＤＩデータ等の演奏情報を受信する受信側で、該演奏情報に対応するタイミング情報により該演奏情報の発生タイミングに対応する実際に忠実なイベントタイミングを再現することができる。
【００１３】
請求項２の演奏データ表示システムによれば、運指ガイド表示のように、演奏データに基づいて該演奏データの実際の発生タイミングに忠実な表示を行うことができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明の一実施形態について説明する。図１は本発明の実施形態の電子楽器を用いた遠隔レッスンシステムの要部機能を説明する機能ブロック図である。先ず、送受信動作と時計補正の動作を説明する。送信側のコントローラ１１及び受信側のコントローラ２１はコンピュータ等で構成されており、送信側の内部時計１１ａ、パケットセンドモジュール１１ｂ、クリック発生モジュール１１ｃはコントローラ１１の機能である。また、受信側の内部時計２１ａ、クリック発生時刻バッファ２１ｂ、パケットレシーブモジュール２１ｃ、ＭＩＤＩアウトバッファ２１ｄ、クリックタイミング検出モジュール２１ｅ、タイミング計算モジュール２１ｆ、画像処理モジュール２１ｇはコントローラ２１の機能である。
【００１５】
送信側の電子楽器１２は本発明を適用した電子楽器である。この電子楽器１２は、タイムスタンプ付加モジュール１２ａの機能を備えており、鍵盤の演奏操作によって発生するＭＩＤＩデータ（演奏データ）を出力するとき、そのＭＩＤＩデータに対して、図示しない内部時計を参照して得られる該ＭＩＤＩデータの発生時刻を示すタイムスタンプを付加し、コントローラ１１（コンピュータ等）のパケットセンドモジュール１１ｂに出力する。
【００１６】
送信側のコントローラ１１は送信開始時にクリック発生モジュール１１ｃを起動して該クリック発生モジュール１１ｃは一定間隔でクリック信号を発生し、このクリック信号はビデオフォン１３に入力されるとともにコントローラ１１で内部処理される。コントローラ１１は、電子楽器１２からＭＩＤＩデータが発生されると、そのＭＩＤＩデータとそれに付加されたタイムスタンプとを、パケットセンドモジュール１１ｂからパケットデータとして送信する。また、クリック信号が検出されると、このクリック信号のクリック発生時刻を示すクリックタイムデータ（パルス時間データ）を生成し、このクリックタイムデータをパケットセンドモジュール１１ｂからパケットデータとして送信する。なお、パケットデータにはＭＩＤＩ／クリックタイムかを識別するデータがヘッダ等に記録され、受信側ではこのヘッダの情報でＭＩＤＩデータとクリックタイムデータを識別する。なお、この実施形態では、ＭＩＤＩデータの発生時刻を示すタイムスタンプが「時間情報」に相当する。
【００１７】
また、ビデオフォン１３は、クリック発生モジュール１１ｃからクリック信号が発生する毎に、そのクリック信号をオーディオ信号に含ませて送信する。ビデオカメラ１４は電子楽器１２における鍵盤演奏を撮像して、そのビデオ信号をビデオフォン１３に出力する。ビデオフォン１３は上記ビデオ信号と前記オーディオ信号を圧縮して送信する。
【００１８】
受信側のコントローラ２１は、パケットレシーブモジュール２１ｃでパケットデータを受信し、そのパケットデータがＭＩＤＩデータ（タイムスタンプを含む）である場合は、ＭＩＤＩデータとそれに付加されているタイムスタンプをＭＩＤＩアウトバッファ２１ｄに格納する。パケットデータがクリックタイムデータである場合は、クリックタイムデータをクリック発生時刻バッファ２１ｂに格納する。また、ビデオフォン２３は受信したビデオ信号とオーディオ信号を復号し、コントローラ２１は、そのオーディオ信号からクリックタイミング検出モジュール２１ｅでクリック信号が検出されると、このクリック信号に対応するクリックタイムデータとにより、内部時計２１ａを補正する。
【００１９】
タイミング計算モジュール２１ｆは、ＭＩＤＩアウトバッファ２１ｄのＭＩＤＩデータとタイムスタンプを読み出し、内部時計２１ａの時間をタイムベースとして、タイムスタンプでＭＩＤＩデータのイベント発生タイミングを計算して、画像処理モジュール２１ｇに与える。画像処理モジュール２１ｇは、計算されたイベント発生のタイミングデータに基づいて後述の運指ガイド表示要素の画像データを生成する。そして、ビデオフォン１３で受信されるビデオ信号から送信側の鍵盤演奏の画像データを再生して上記運指ガイド表示要素の画像と合成して、ディスプレイ２２で映像を再生する。なお、後述説明する図８(B) に示すように上記鍵盤演奏の再生画像を表示する部分を「実画像部」、運指ガイド表示要素（ノートバーＢａ）を表示する部分を「ガイド部」という。
【００２０】
図２は実施形態における遠隔レッスンシステムのハードウエア構成を示すブロック図である。コントローラ１１からのＭＩＤＩデータ（タイムスタンプを含む）及び前記クリックタイムデータ（クリック信号のクリック発生時刻）は、インターネット１０を利用したパケット通信システム（第１伝送系統）でパケットデータとしてコントローラ２１に送信する。また、ビデオフォン１３はビデオカメラ１４からのビデオ信号とモノラルのオーディオ信号を圧縮して出力し、このビデオ信号とオーディオ信号は、インターネット１０を利用したビデオ会議システムの伝送系統（第２伝送系統）により、受信側のビデオフォン２３に送信する。そして、このオーディオ信号にはクリック発生モジュール１１ｃからのクリック信号（パルス信号）を含めて送信する。
【００２１】
送信側のコントローラ１１は先生側の電子楽器１２の近傍に配置されたコンピュータ等であり、電子楽器１２の演奏により発生するＭＩＤＩデータが前記のようにパケット通信システムで送信される。また、ビデオカメラ１４は電子楽器１２の鍵盤の上部に配置されており、電子楽器１２における鍵盤演奏を上方から撮像して演奏者（例えば先生）の手の動きと鍵盤とを撮像したビデオ信号が前記のようにビデオ会議システムで送信される。受信側のコントローラ２１は生徒側の電子楽器２４の近傍に配置されたコンピュータ等であり、ディスプレイ２２は電子楽器２４の鍵盤近傍の上部に配設された表示器である。そして、後述説明するように、このディスプレイ２２で先生が演奏する手の動きと運指ガイド表示要素による運指ガイドの画像が表示される。したがって、生徒は、ディスプレイ２２の運指ガイド表示を見ながら電子楽器２４でレッスン演奏をすることができる。
【００２２】
図３は実施形態における時間進行に対するパケットデータとクリック信号（オーディオ信号）の関係を概念的に示す図である。クリック信号は所定間隔のパルス信号として出力される。パケットデータは主にＭＩＤＩデータ（図中「ＭＩＤＩ」）を送信するが、送信側でクリック信号が発生したときにクリックタイムデータ（図中「クリック」）も送信する。このクリック信号とクリックタイムデータとは、受信側でクリックタイムデータを検出するタイミングとクリック信号を検出するタイミングが略同時となるように送信することで、互いにペアとなるように対応付けられている。この対応するクリック信号とクリックタイムデータとは同時に受信できるとは限らないので所定の時間間隔内で検出されたもの同士を対応するものとする。
【００２３】
図４はクリック信号とクリックタイムデータの受信タイミングの差を吸収してペアを検出する例を示す図である。図４(A) のようにクリック信号が先に到来すると、そのクリック信号の立ち上がりでクリック検出信号がえられる。そこでこのクリック検出信号により、所定時間を計時するタイマを起動し、クリックタイムデータが検出されるまでの時間ΔＴを計時する。そして、クリックタイムデータが検出された時点で、そのクリックタイムデータが示すクリックタイムｔにタイマ値ΔＴを加算した時刻を、受信側の現時刻として内部時計２１ａを補正する。これにより、内部時計２１ａはクリック信号が検出された時点でそのクリック信号に対応する（ペアの）クリックタイムデータに基づいて補正されたと同様な結果となる。なお、タイマが計時終了する所定時間は、断続的に送信（及び受信）するクリック信号間の間隔（インターバル）に応じて設定されており、このクリック信号が検出されてから所定時間内にクリックタイムデータが検出されない場合は、この検出した今回のクリック信号による補正動作を中止する。
【００２４】
また、図４(B) のように、クリックタイムデータが先に到来した場合は、そのクリックタイムデータが示すクリックタイムｔを前記クリック発生時刻バッファ２１ｂに記憶しておき、所定時間内にクリック信号（クリック検出信号）が検出されると、クリック発生時刻バッファ２１ｂに記憶しているクリックタイムｔを、受信側のクリック信号検出時の現時刻として内部時計２１ａを補正する。この場合も、クリックタイムデータが検出されてから所定時間内にクリック信号が検出されない場合は、この検出した今回のクリックタイムデータによる補正動作を中止する。
【００２５】
次に第２伝送系統のシステムの違い（ビデオ会議系とストリーミング系）に応じた所定時間について説明する。第１伝送系統のＭＩＤＩ信号側の遅延は、ネットワーク状態によって変化する部分もあるが、通常は１０〜１００ｍ秒（ミリ秒）程度である。
【００２６】
（ビデオ会議系）ビデオ会議系は、ビデオ側の遅延時間が２００〜３００ｍ秒程度であり、ネットワーク状態によってクリックタイムデータが検出信号より先に来る場合（図４(B) ）とクリックタイムデータが検出信号より後に来る場合（図４(A) ）を想定してタイミング補正動作をする。クリックタイムデータが検出信号より先に来る場合には、第１伝送系統の最小遅延時間１０ｍ秒と第２伝送系統の最大遅延時間の差である３００ｍ秒弱程度の遅延時間をカバーできればよいものであり、所定時間は３００＋αｍ秒（α：数十〜２００ｍ秒）あればよい。クリックタイムデータが検出信号より後に来る場合は、上述のＭＩＤＩ信号側で想定する遅延時間の範囲を超える遅延が生じた場合のものなので、仮に３００ｍ秒程度の遅延でもカバーできるものにするとすれば、所定時間は第２伝送系統の最小遅延時間の差である１００ｍ秒弱程度あればよい。なお、第１伝送系統のネットワーク状態が悪く、ＭＩＤＩパケットの送信に時間がかかることを想定しているもので、このような場合には、受信した側はタイミング補正と並行して通信の停止を送信側に促したりするようにしてもよい。
【００２７】
（ストリーミング系）ストリーミング系は、ビデオ側の遅延が１５〜３０秒程度であり、第１伝送系統の遅延時間と比較して桁違いに大きいものとなっている。このため、クリックタイムデータが先に来る場合にタイミング補正動作をする。クリックタイムデータが検出信号より後に来る場合は考えられなくはないが、その場合はＭＩＤＩ信号自体がエラーとして処理され同期処理には利用されない。クリックタイムデータが先に来る場合の上記所定時間は、第１伝送系統の最小遅延時間と第２伝送系統の最大遅延時間との差分の補正ができればよいのだが、上述のように第２伝送系統の遅延時間が第１伝送系統に比べて非常に長いので、所定時間は３０秒＋β（β：数秒）あればよい。また、クリックタイムデータが後に来る場合の上記所定時間は０に設定すればよい。なお、αとβは、いずれもビデオ系の遅延が急激に変化する可能性のある値をさす。
【００２８】
これらのことに基づき、所定時間とクリック信号のインターバルの例をあげると、クリック信号（オーディオビデオ信号）を送信する第２伝送系統は、この実施形態ではビデオ会議システムであり、この場合には送信から受信に係る遅延が２００〜３００ｍ秒程度であり、クリック信号間の間隔（インターバル）は２秒程度に設定されている。なお、クリックタイムデータが先に来る場合に対応して想定する所定時間を「所定時間Ｂ」とし、クリックタイムデータが後に来る場合に対応して想定する所定時間を「所定時間Ａ」とする。この場合、上記タイマにより規制する所定時間Ｂは例えば０．５秒程度でよい。また、所定時間Ａとしては、０．１秒程度でよい。なお、この第２伝送系統としてストリーミングシステムを利用する場合は、この伝送系統は遅延が５〜２０秒程度であり、クリック信号間の間隔（インターバル）は余裕を見て３０秒程度に設定するとよい。この場合は上記タイマにより規制する所定時間Ｂは２５秒程度でよく、所定時間Ａは０秒でよい。
【００２９】
図５は送信側のコントローラ１１の送信処理の要部を示すフローチャートである。先ず、ステップＳ１１で電子楽器１２からＭＩＤＩデータが発生するのを監視するとともに、ステップＳ１２でクリック発生モジュール１１ｃからクリック信号が発生するのを監視する。ＭＩＤＩデータが発生したら、ステップＳ１３でＭＩＤＩデータにタイムスタンプを付加してパケットセンドモジュール１１ｂに送り、ステップＳ１４でパケットデータとして送信する。このとき、タイムスタンプ付加モジュール１２ａは、同時に発生した押鍵イベントのそれぞれに対して、タイムスタンプを付与する。したがって、１つの押鍵イベントとタイムスタンプがペアになって構成されることになる。また、クリック信号が発生したら、ステップＳ１６で内部時計１１ａからクリックタイムを取得し、そのクリックタイムデータをパケットセンドモジュール１１ｂに送り、パケットデータとして送信する。そして、処理終了の指示があれば処理を終了する。なお、クリック発生モジュール１１ｃからのクリック信号（オーディオ信号）及びビデオカメラ１４からのビデオ信号はビデオフォン１３により、コントローラ１１の処理とは独立して送信される。
【００３０】
図６は受信側のコントローラ２１の受信処理の要部を示すフローチャートであり、この処理では、前記図４(A) 及び図４(B) の処理を併用するために、ＡフラグとＢフラグを用いている。また、所定時間Ａを計時する所定時間Ａタイマ、所定時間Ｂを計時する所定時間Ｂタイマを用いている。なお、パケットレシーブモジュール２１ｃでの受信処理は別途割込み処理により行われ、ＭＩＤＩデータあるいはクリックタイムデータの受信の有無に応じた処理を行う。先ず、ステップＳ２１でＡフラグ及びＢフラグを“０”にリセットする。次に、ステップＳ２２ａでデータ受信処理を行い、ステップＳ２２ｂで受信データがＭＩＤＩデータかビデオ信号かを判定し、ビデオ信号であればステップＳ２３ａで実画像部（Ｇ１部）に鍵盤演奏の画像を描画してステップＳ２４に進む。ＭＩＤＩデータであれば、ステップＳ２３ｂで、ＭＩＤＩデータとタイムスタンプをＭＩＤＩアウトバッファ２１ｄに書き込み、ステップＳ２４に進む。ＭＩＤＩデータがなければステップＳ２４でクリックタイムデータが有るかを判定する。クリックタイムデータが無ければステップＳ２５でクリック信号を検出したかを判定し、検出していなければステップＳ２２ａ以降を繰り返す。
【００３１】
ステップＳ２４でクリックタイムデータが無く、ステップＳ２５でクリック信号が検出されていれば、前記図４(A) の場合（クリック信号が先）であり、ステップＳ２６でＢフラグ＝“１”かを判定する。このＢフラグはクリックタイムデータが先の場合に“１”にセットされるので、この場合は、ステップＳ２７に進み、前記所定時間Ａタイマを起動する。そして、ステップＳ２８でＡフラグを“１”にセットする。そして、ステップＳ２９で所定時間Ａタイマが計時終了したか否かを判定し、計時を終了していればステップＳ２１に戻ってＡフラグとＢフラグをリセットする。所定時間Ａタイマが計時終了していなければ、ステップＳ３０で図７の表示処理を行ってステップＳ２０１に進む。ステップＳ２０１では処理終了の指示が有るかを判定し、処理終了の指示があれば処理を終了し、処理終了の指示がなければステップＳ２２ａに戻る。
【００３２】
すなわち、この状態では、所定時間Ａタイマによる所定時間Ａの計時を行いながら、クリックタイムデータの検出を監視する。そして、所定時間Ａ内にクリックタイムデータが検出されれば、ステップＳ２０２でＡフラグ＝“１”かを判定する。このＡフラグはクリック信号が先の場合に“１”にセットされるので、この場合は、ステップＳ２０３に進み、クリックタイムｔにタイマ値ΔＴを加算して現時刻を求め、内部時計２１ａを補正する。そして、２０４でＡフラグ及び所定時間Ａタイマをリセットし、ステップＳ２９に進む。
【００３３】
一方、クリック信号が検出される前にステップＳ２４でクリックタイムデータが検出されていれば、前記図４(B) の場合であり、この場合は、ステップＳ２０２からステップＳ２０５に進み、前記所定時間Ｂタイマを起動する。次に、ステップＳ２０６でクリックタイムデータをクリック発生時刻バッファ２１ｂに記憶し、ステップＳ２０７でＢフラグを“１”にセットする。そして、ステップＳ２９で所定時間Ｂタイマが計時終了したか否かを判定し、計時を終了していればステップＳ２１に戻ってＡフラグとＢフラグをリセットする。所定時間Ｂタイマが計時終了していなければ、前記同様にステップＳ３０の処理を行ってステップＳ２０１に進み、処理終了の指示がなければステップＳ２２ａに戻る。
【００３４】
この状態では、所定時間Ｂタイマによる所定時間Ｂの計時を行いながら、クリック信号の検出を監視する。所定時間Ｂ内にクリック信号が検出されれば、ステップＳ２５からステップＳ２６に進み、さらにステップＳ２６からステップＳ２０８に進む。そして、ステップＳ２０８で、クリック発生時刻バッファ２１ｂに記憶したクリックタイムｔを現時刻（クリック信号検出タイミング）として、内部時計２１ａを補正する。そして、ステップＳ２０９でＢフラグ及び所定時間Ｂタイマをリセットする。
【００３５】
このように、クリック信号の到来時にそれに対応するクリックタイムデータを現時刻とし、あるいは、クリックタイムデータが先に到来したときは、それに対応するクリック信号が到来した時点の時刻をクリックタイムデータから求め、それぞれ内部時計２１ａを補正している。また、クリック信号を含んでいるオーディオビデオ信号とビデオ信号はそのクリック信号と当然に同期している（同時性が保証されている）ので、前記のようにタイミング計算モジュール２１ｆにより、内部時計２１ａの時間をタイムベースとしてタイムスタンプによりＭＩＤＩデータのイベント発生タイミングを計算すると、このタイミングに基づいて表示される運指ガイド表示要素（ノートバーＢａ）とビデオ信号による画像は同期したものとなる。
【００３６】
なお、何らかの事情でクリック信号あるいはクリックタイムデータを受信できなかった場合（取り逃した場合）でも、次のペアあるいはその次のペアによって時計を補正することができる。このような場合でも、一旦補正されると同期外れが生じるまで（あるいは時間のズレが目立つようになるまで）、有る程度の時間がかかるので問題はない。
【００３７】
図７は表示処理（図６のステップＳ３０）のフローチャートであり、主に前記ガイド部Ｇ２のノートバーＢａの表示の制御を行う。先ず、ステップＳ３１で、間欠的なスクロールのインターバルに相当するスクロールの所定時間が経過したかを判定し、経過していなければ元のルーチンに復帰し、経過していればステップＳ３２でガイド部「Ｇ２部」の単位長分をスクロールする処理を行う。次に、ステップＳ３３で、ＭＩＤＩアウトバッファにデータが有るかを判定し、無ければ元のルーチンに復帰し、有ればステップＳ３４で１イベント分のデータを読み出す。次にステップＳ３５でそのＭＩＤＩデータに付加されているタイムスタンプのデータからイベントの発生タイミングを計算する。ステップＳ３６では、計算結果のタイミングが現在の表示開始位置のタイミングより前であるか否かを判定し、前であれば、ステップＳ３７でノートバーＢａの描画長さを計算し、ステップＳ３８で、そのイベントに対応する鍵（実画像部Ｇ１の鍵）の位置で、計算された描画長さの分の色を変更し、描画を更新する。そして、ステップＳ３９で描画したイベントのＭＩＤＩデータをＭＩＤＩアウトバッファの中からクリアし、ステップＳ３０４に進む。
【００３８】
ステップＳ３６で、計算結果のタイミングが現在の表示開始位置のタイミングより前でなければ、ステップＳ３０１で、計算結果のタイミングが現在の表示開始位置のタイミングと同じで有るかを判定する。同じであれば、ステップＳ３０２で、そのイベントに対応する鍵の位置で、色を変更し、描画を更新する。そして、ステップＳ３０３で描画したイベントのＭＩＤＩデータをＭＩＤＩアウトバッファの中からクリアし、ステップＳ３０４に進む。ステップＳ３０１で、計算結果のタイミングが現在の表示開始位置のタイミングと同じでなければ、ステップＳ３０４でＭＩＤＩアウトバッファにそのＭＩＤＩデータを保存し、ステップＳ３０４に進む。そして、ステップＳ３０４でバッファ内の全イベントについての処理が完了していなければステップＳ３４に戻り、完了していれば元のルーチンに復帰する。
【００３９】
図８は実施形態の運指ガイド表示を説明する図であり、図８(A) は受信されたビデオ信号をそのまま再生したビデオ画像（１フレーム）の例を示し、図８(B) はディスプレイ２２に表示される運指ガイド表示の一例を示している。図８(A) の画像は電子楽器１２の上部から鍵盤演奏を撮像してたものであり、斜線で示した電子楽器１２の本体部分とその下に鍵盤と演奏者の手が映っている。そして、このビデオ画像を加工して図８(B) の運指ガイド表示の画像を生成する。この運指ガイド表示は実画像部Ｇ１とガイド部Ｇ２とで構成され、実画像部Ｇ１には、この実画像部Ｇ１には図８(A) の破線で囲った部分を切り出して拡大した鍵盤と演奏者の手の画像を再生する。また、実画像部Ｇ１の上（画面上）のガイド部Ｇ２には運指ガイド表示要素としてピアノロール形式のノートバーＢａを表示する。
【００４０】
このピアノロール形式の表示は、演奏データを表示するための従来のピアノロール形式の表示と同様であり、ノートバーＢａは曲の進行に従ってガイド部Ｇ２を上から下に流れ、各ノートバーＢａがその直下（画面上）にある鍵（実画像部Ｇ１の鍵）を押鍵すべき鍵であることを示している。そして、ノートバーＢａの先端（画面上の下端）がガイド部Ｇ２の下辺に掛かったときが押鍵のタイミングを示し、ガイド部Ｇ２の下辺に掛かっていないノートバーＢａは押鍵すべき時刻以前の鍵を予告している。さらに、ノートバーＢａの長さはキーオンからキーオフまでの時間を示している。
【００４１】
なお、ＭＩＤＩイベントからピアノロール表示を制御する手法は、例えば特許３０５８０５１号公報の手法にならって、所定時間毎に、所定描画長分をスクロール方向にコピーして、同様に画面全体を順次描画していくなどの手法を行えばよい。
【００４２】
また、図８(A) の原画像を表示できるモードを設け、例えば送信側（先生側）で演奏に先だって曲の最低音と最高音の鍵域を指などで指示してそれを画像表示し、受信側（生徒側）でその原画像を見ながら実画像部Ｇ１として切り出す範囲を選択設定できるようにしてもよい。
【００４３】
また、図１の電子楽器１２でＭＩＤＩデータが発生する毎に、そのＭＩＤＩデータに発生時刻に相当するタイムスタンプを時刻情報として付加し、最終的に（この実施形態では受信側のタイミング計算モジュール２１ｆの処理で）タイムスタンプでタイミングの計算を行うようにしているので、前記図１０で説明したような問題が解消する。図９は実施形態におけるＭＩＤＩデータの送受信動作と運指ガイド表示を概念的に示す図であり、同時に発生した例えば３つのイベントのデータ（Ｉ1 ，Ｉ2 ，Ｉ3 ，…）に対して、タイムスタンプ付加モジュール１２ａでそれぞれタイムスタンプ（Tim.Ａ，Tim.Ｂ，Tim.Ｃ）が付加される。これらのイベントのデータとタイムスタンプが（Tim.Ａ，Ｉ1 ，Tim.Ｂ，Ｉ2 ，Tim.Ｃ，Ｉ3 ，…）のようにシリアルに送られる。受信側ではこのデータをシリアルに受信し、一つのデータを受信する毎に受信バッファに記憶していく。
【００４４】
すなわち、最初の受信データはタイムスタンプ（Tim.Ａ）であり受信バッファは(i) の状態になる。以後、データＩ1 が受信されて受信バッファは(ii)の状態になり、次にタイムスタンプ（Tim.Ｂ）が受信され受信バッファは(iii) の状態になるり、さらにデータＩ2 が受信されて(iv)の状態になる。同様に、順次タイムスタンプ（Tim.Ｃ）、データＩ3 が受信され、受信バッファは(v) →(vi)の状態になる。このＭＩＤＩデータにより運指ガイド表示を行うとき、タイミング計算モジュール２１ｆの処理（図７のステップＳ３５）でイベント発生タイミングを計算するので、図示のように表示される。(ii)のときノートバーＩ1 の先頭のみが表示され、次に、(iv)のとき、ノートバーＩ1 が１スクロール分進んでノートバーＩ2 がその先頭をノートバーＩ1 の先頭に合わせた状態で表示される。次に、(vi)のときノートバーＩ1 、Ｉ2 が１スクロール分進んでノートバーＩ3 がその先頭をノートバーＩ1 、Ｉ2 の先頭に合わせた状態で表示される。この先頭が合わせられるのは、各イベントが同時のイベントであり、ステップＳ３６→Ｓ３７→Ｓ３８の処理による。このように、タイムスタンプにより実際のタイミングを復元でき、同時のタイミングを忠実に表示することができる。
【００４５】
前記実施形態では、略リアルタイムでレッスンできる。すなわち、送信側での演奏（先生の演奏）と略並行して受信側で演奏する。このとき、ピアノロール形式や前記特開平５−１７３５４６号公報のように押鍵すべき時刻以前の表示を行う場合には、ＭＩＤＩデータとタイムスタンプの読み出し開始、画像データの再生開始は、最初のデータ受信から所定時間遅延させて実行する必要がある。この場合の遅延時間は例えば図８(B) の表示のときは、ガイド部Ｇ２の縦幅をノートバーＢａが横切るのに要する時間程度とすればよい。また、直ぐに押鍵すべき鍵のみをガイド表示するような場合には、伝送路における遅延だけで略リアルタイムでレッスンすることができる。なお、受信側においてＭＩＤＩデータとビデオ信号を予めメモリに蓄積しておき、送信側での演奏終了後に、運指ガイド表示用のデータを生成し、ビデオ信号を再生してレッスンを行うようにしてもよい。
【００４６】
なお、実施形態ではインターネットの通信システムを用いた場合について説明したが、例えばローカルエリアネットワークでもよい。また、以上の実施形態では、ＭＩＤＩデータ（演奏データ）を運指ガイド表示に利用する場合について説明したが、電子楽器で発生したＭＩＤＩデータに基づいて他の機器で自動演奏等を行う場合にも適用できる。例えば送信側の電子楽器で発生したＭＩＤＩデータにより、受信側で自動ピアノの演奏を行うような遠隔コンサート、あるいは受信側の電子楽器で自動演奏を再生するような場合にも適用できる。さらに、ネットワークに限らず、２台の電子楽器をＭＩＤＩケーブルで直接接続して、一方の電子楽器で演奏して、そのＭＩＤＩデータにより他方の電子楽器で自動演奏等を行う場合でもよい。
【００４７】
実施形態ではノートバーの表示によりピアノロール形式の運指ガイド表示を行うようにしているが、例えばガイド部Ｇ２の実画像部Ｇ１の近傍で、押鍵すべき鍵（実画像部Ｇ１の画像の鍵）の直上に何らかのマークを表示するようにしてもよい。この場合、押鍵すべき時刻以前の表示のマークを色を換えて表示したり上下の位置を換えて表示する等してもよい。
【００４８】
また、実施形態ではインターネットの通信システムを用いた場合について説明したが、例えばローカルエリアネットワークでもよい。また、ネットワークを用いて遠隔レッスンを行う場合に限らず、２台の電子楽器をＭＩＤＩケーブルで直接接続して、先生側から生徒側にＭＩＤＩデータを伝送してレッスンするような場合、あるいは１台で演奏して他方のＭＩＤＩ機器（コンピュータも含む）でＭＩＤＩデータにより楽音を発生等の各種の処理を行うような場合にも適用できる。これらの場合にも、少なくとも送信側に本発明の電子楽器を用いることはいうまでもない。
【００４９】
伝送系統については、ストリーミングシステムのように、オーディオ信号として左右（ＬＲ）のステレオ信号を伝送できる場合は、片方のチャンネルにクリック信号を含ませて他のチャンネルで音声信号をそのまま送信するようにしてもよい。また、実施形態のようにオーディオ信号がモノラルの場合、例えば音声信号として頻繁には出現しないような周波数（例えば４０Ｈｚ）のクリック信号として音声信号に含ませ、受信側でフィルタを通してクリック信号を検出するようにしてもよい。
【００５０】
また、実施形態では、パルス信号の間隔（インターバル）が受信側においても予め既知であり、この間隔に応じて所定時間Ａタイマ及び所定時間Ｂタイマの計時終了時間が予め決められているものとして説明したが、送信開始から受信側である程度の数のパルス信号を検出して、それに基づいてパルス信号の間隔を検出するとともに、所定時間Ａタイマ及び所定時間Ｂタイマの計時終了時間を決定するようにしてもよい。
【００５１】
なお、実施形態ではパルス信号を「クリック信号」として説明しているが、オーディオ信号に含ませて圧縮しても、復号によりパルス信号として検出できるような信号であれば、どのような信号でもよい。
【００５２】
クリック信号（パルス信号）とその発生時刻を示すクリックタイムデータ（パルス時間データ）とを対応させる方法として、実施形態では所定時間Ａタイマ及び所定時間Ｂタイマの計時終了内に検出されるものをペアとして対応つけるようにしている。しかし、クリック信号あるいはクリックタイムデータが到来する間隔（あるいはタイミング）は予測がつくので、この予測した所定間隔のタイミングで検出できなければ、次のペアを目標とするような方法で、クリック信号とクリックタイムデータとを対応付けるようにしてもよい。
【００５３】
実施形態では、送信側において電子楽器１２から出力するＭＩＤＩデータに対応する時間情報が時刻を示すタイムスタンプの場合について説明したが、ＭＩＤＩデータに対して直前のＭＩＤＩデータとの時間間隔（デュレーション）のデータを時間情報として付加するようにしてもよい。なお、最初のＭＩＤＩデータには例えば時間間隔＝０を付加すればよい。この場合、コントローラ１１あるいはコントローラ２１において、ＭＩＤＩデータのタイミングを得るときには、各時間間隔を順次加算すればイベントタイミングを時刻に合わせることができる。
【００５４】
実施形態では、運指ガイドを目的として、鍵盤の表示を表示部の下に位置させ、操作タイミングがわかるように、ピアノロールは操作タイミングから所定時間前からイベントの表示を開始し、表示されたイベントを操作時間分の長さにして鍵盤に向かってスクロールするようにしたが、演奏結果を表示させる目的として、表示されている鍵盤から操作があった鍵について、現在操作されている鍵がどの程度前から操作されているかが分かるように、操作があったタイミングから操作イベントの表示を開始し鍵から離れていくようにスクロール表示するようにしてもよい。
【００５５】
また、鍵盤部の表示は、上下左右のどこの辺に沿う形でも構わない。左右に位置する場合は、横方向にスクロール表示を行えばよい。また、この場合、スクロール表示を行うときは、目的に応じて、表示された鍵盤に近づけるように、あるいは鍵盤から遠ざかるようにスクロールさせればよい。
【００５６】
ガイド部Ｇ２には、イベントのノートに対応する鍵の位置でキーオンからキーオフまでの操作時間に対応する棒状のスクロールバーを表示するようにしたが、これに限らず、キーオンとキーオフのタイミングでベロシティに応じた色やアイコンを鍵に対応した一定の位置で点灯表示したりしてもよい。操作の形態に応じた表示を行うものであれば、適用可能である。
【００５７】
また、実施形態では、鍵盤を利用した演奏の表示システムとして説明したが、ピアノのペダル操作の表示や他の楽器、例えば管楽器（トランペットのバルブ等）の操作を表示するようにし、その操作をスクロール表示するようにしてもよい。
【００５８】
実施形態では、送信側でＭＩＤＩデータを外部に出力する際に、個々のイベントに対して時間情報（タイムスタンプ）を付加するようにし、表示を制御する際には個々のイベントに対応するタイミングとスクロールバーの表示開始位置の時刻とを比較するようにしたが、個々のイベントに対して時間データを付与しないで表示開始位置を変更するようにしてもよい。この場合、図７のＳ３６とＳ３０１の判断を、読み出されたイベントの前にタイミングデータ（タイムスタンプ）が有ったか否かを判断するようにして、タイミングデータがあれば、そのタイミングデータに基づく時刻とスクロール表示の表示開始位置の時刻とを比較して表示制御するようにし、タイミングデータがなければ、その前のイベントと同じ発生タイミングと判断して、判断された発生タイミングとスクロール表示の表示開始位置の時刻と比較して表示制御するようにすればよい。
【００５９】
実施形態では、電子楽器から出力を行うようにしたが、これに限らず、記録されたＭＩＤＩデータを読み出して出力する際に、タイムスタンプを付与する構造のシーケンサのような自動演奏装置に適用してもよい。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施形態における遠隔レッスンシステムの要部機能を説明する機能ブロック図である。
【図２】実施形態における遠隔レッスンシステムのハードウエア構成を示すブロック図である。
【図３】実施形態におけるパケットデータとクリック信号の関係を概念的に示す図である。
【図４】実施形態におけるクリック信号とクリックタイムデータの受信タイミングの差を吸収してペアを検出する例を示す図である。
【図５】実施形態における送信処理の要部を示すフローチャートである。
【図６】実施形態における受信処理の要部を示すフローチャートである。
【図７】実施形態における表示信処理の要部を示すフローチャートである。
【図８】実施形態の運指ガイド表示を説明する図である。
【図９】実施形態におけるタイミング調整の例とそのときの表示例を示す図である。
【図１０】従来のＭＩＤＩデータの伝送時のバラツキの発生の例とそのときの問題を示す図である。
【符号の説明】
【００６１】
１１…コントローラ（送信側）、１１ａ…内部時計、１２…電子楽器、１２ａ…タイムスタンプ付加モジュール
【図１】
2005196073.tif 000003
【図２】
2005196073.tif 000004
【図３】
2005196073.tif 000005
【図４】
2005196073.tif 000006
【図５】
2005196073.tif 000007
【図６】
2005196073.tif 000008
【図７】
2005196073.tif 000009
【図８】
2005196073.tif 000010
【図９】
2005196073.tif 000011
【図１０】
2005196073.tif 000012