(57)【特許請求の範囲】
【請求項１】
楽器を用いて演奏を行った演奏者の画像データを記録及び記録された画像データを再生する装置であって、
前記楽器に対して行うべき演奏操作を表すイベントデータ及びその操作タイミングを記億する演奏データ記億手段と、
画像データ記憶手段と、
第１及び第２のモードのいずれかを指定するモード指定手段と、
このモード指定手段により第１のモードが指定されているときに、前記演奏データ記億手段に記億されたイベントデータを、対応する操作タイミングに基づいて読み出すとともに、前記楽器を用いて演奏を行っている演奏者の画像データをリアルタイムに取得する画像データ取得手段と、
前記読み出されたイベントデータを参照して、前記演奏者が行ったと特定した演奏操作が適切か否か判定するとともに、判定結果を表わす判定データをリアルタイムに取得する判定データ取得手段と、
前記画像データ取得手段が取得した画像データ及び前記判定データ取得手段が取得した判定データを、前記演奏データ記億手段に記億されたイベントデータに対応付けて前記画像データ記憶手段に記録させる画像データ記録制御手段と、
前記モード指定手段により第２のモードが指定されているときに、前記演奏データ記億手段に記億されたイベントデータを、対応する操作タイミングに基づいて順次読み出すとともに、当該読み出されたイベントデータに対応する前記画像データ及び判定データを前記画像データ記憶手段から読み出す読み出し手段と、
この読み出し手段にて読み出された判定データが表す判定結果を判別するとともに、判定結果が適切を表すと判定された場合は、当該判定データに対応する画像データをそのまま表示装置上に表示させ、判定結果が不適切を表すと判定された場合は、前記判定データに対応する画像データに対して色付けを行って前記表示装置上に表示させる表示制御手段と、
を具備することを特徴とする演奏記録再生装置。
【請求項２】
楽器に対して行うべき演奏操作を表すイベントデータ及びその操作タイミングを記億する演奏データ記億手段と、画像データ記憶手段と、第１及び第２のモードのいずれかを指定するモード指定手段と、を有し、前記楽器を用いて演奏を行った演奏者の画像データを記録及び記録された画像データを再生する装置として用いられるコンピュータに実行させるプログラムであって、
このモード指定手段により第１のモードが指定されているときに、前記演奏データ記億手段に記億されたイベントデータを、対応する操作タイミングに基づいて読み出すとともに、前記楽器を用いて演奏を行っている演奏者の画像データをリアルタイムに取得する画像データ取得機能と、
前記読み出されたイベントデータを参照して、前記演奏者が行ったと特定した演奏操作が適切か否か判定するとともに、判定結果を表わす判定データをリアルタイムに取得する判定データ取得機能と、
前記取得された画像データ及び判定データを、前記演奏データ記億手段に記億されたイベントデータに対応付けて前記画像データ記憶手段に記録させる画像データ記録制御機能と、
前記モード指定手段により第２のモードが指定されているときに、前記演奏データ記億手段に記億されたイベントデータを、対応する操作タイミングに基づいて順次読み出すとともに、当該読み出されたイベントデータに対応する前記画像データ及び判定データを、前記画像データ記憶手段から読み出す読み出し機能と、
この読み出された判定データが表す判定結果を判別するとともに、判定結果が適切を表すと判定された場合は、当該判定データに対応する画像データをそのまま表示装置上に表示させ、判定結果が不適切を表すと判定された場合は、前記判定データに対応する画像データに対して色付けを行って前記表示装置上に表示させる表示制御機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽器を用いて行った演奏の内容を、その演奏者に視覚的に確認させるための技術に関する。
【０００２】
【従来の技術】
楽器を用いた演奏は、発音させるべき楽音を発音させるための演奏操作を順次、行っていくことで実現される。その演奏を正しく行えるように支援する演奏誘導装置としては、例えば特許文献１に記載されたものが知られている。
【０００３】
その演奏誘導装置では、手を示す図形を表示装置上に表示させ、その図形を通して手の動かし方を演奏者に教示することにより支援を行っている。また、演奏者の演奏状態、つまり演奏操作を行う手を撮影し、撮影した手を図形と重ねて表示することにより、表示装置上に表示される画像から、演奏操作を適切に行っているか否か演奏者が確認できるようにさせている。
【０００４】
【特許文献１】
特開平７−３６４４６号公報
【０００５】
【発明が解決しようとする課題】
演奏中、手は複雑に動かすことが多く、その演奏中における手の動かし方までは決められていない。その動かし方が決められていないために、たとえ演奏者が正確な演奏を行っても、撮影した手の動きと図形のそれとは必ずしも一致しない。このようなこともあって、撮影した手を図形と重ねて表示させる場合、たとえ手と図形を区別しやすい形で表示させたとしても、それらの間に存在する演奏操作の相違を認識するのは極めて困難なのが普通である。演奏技術が低い演奏者の多くは、表示装置を見る余裕も無いことから、その相違を認識できるとは期待できないということになる。これらのことから、行った演奏の内容確認は、その演奏とは別に行えるようにすることが望ましいと考えられる。
【０００６】
その確認は、例えば撮影した手の画像を記録し、それを再生することで行わせることができる。しかし、単に再生すると、撮影した手で行われた演奏操作が適切か否か必ずしも判りやすいとは限らない。また、行われた演奏操作自体、正確に認識するのが困難なこともある。その認識が困難であれば、行われた演奏操作が適切か否か判断するのは更に困難となる。このようなことから、演奏を行っている演奏者を演奏内容確認用に撮影する場合には、実際に行われた演奏操作が適切か否か容易に確認できるように再生することが望ましいと考えられる。
【０００７】
例えば鍵盤楽器では、押鍵した鍵、その押鍵に使用した指、及びその押鍵を行ったタイミングを正確に把握できるようにする必要により、特許文献１に記載された演奏誘導装置のように、上方から手を撮影するのが望ましいと言える。しかし、上方からの撮影では、単に押鍵、離鍵したときの指の動き、その動きに伴う鍵の変化は比較的に小さい。例えば親指を他の指の下にくぐらせて鍵を押鍵する、いわゆる指くぐりと呼ばれる運指が行われた場合には、指くぐりさせた指は他の指に隠されてしまう。このようなことから、押鍵した鍵、その押鍵タイミングを正確に把握するのは必ずしも容易ではない。
【０００８】
本発明の課題は、楽器の演奏を行っている演奏者を撮影して得られた画像を、実際に行われた演奏操作が適切か否か容易に確認できるように再生（表示）するための技術を提供することにある。
【０００９】
【課題を解決するための手段】
本発明の記録再生装置は、楽器を用いて演奏を行った演奏者の画像データを記録及び記録された画像データを再生する装置であって、前記楽器に対して行うべき演奏操作を表すイベントデータ及びその操作タイミングを記億する演奏データ記億手段と、画像データ記憶手段と、第１及び第２のモードのいずれかを指定するモード指定手段と、このモード指定手段により第１のモードが指定されているときに、前記演奏データ記億手段に記億されたイベントデータを、対応する操作タイミングに基づいて読み出すとともに、前記楽器を用いて演奏を行っている演奏者の画像データをリアルタイムに取得する画像データ取得手段と、前記読み出されたイベントデータを参照して、前記演奏者が行ったと特定した演奏操作が適切か否か判定するとともに、判定結果を表わす判定データをリアルタイムに取得する判定データ取得手段と、前記画像データ取得手段が取得した画像データ及び前記判定データ取得手段が取得した判定データを、前記演奏データ記億手段に記億されたイベントデータに対応付けて前記画像データ記憶手段に記録させる画像データ記録制御手段と、前記モード指定手段により第２のモードが指定されているときに、前記演奏データ記億手段に記億されたイベントデータを、対応する操作タイミングに基づいて順次読み出すとともに、当該読み出されたイベントデータに対応する前記画像データ及び判定データを前記画像データ記憶手段から読み出す読み出し手段と、この読み出し手段にて読み出された判定データが表す判定結果を判別するとともに、判定結果が適切を表すと判定された場合は、当該判定データに対応する画像データをそのまま表示装置上に表示させ、判定結果が不適切を表すと判定された場合は、前記判定データに対応する画像データに対して色付けを行って前記表示装置上に表示させる表示制御手段と、を具備する。
【００１２】
本発明のプログラムは、上記本発明の演奏記録再生装置を実現させるための機能を搭載している。
【００１３】
本発明では、楽器を用いて演奏を行っている演奏者の画像データをリアルタイムに取得し、その演奏中に演奏者が行った演奏操作、或いは演奏者が行うべき演奏操作をリアルタイムに特定し、特定した演奏操作を示すイベントデータを、取得する画像データと対応付け、演奏の記録として併せて保存する。そのようにしてそれらを対応付けることにより、画像データの再生時に、演奏者が行った演奏操作、或いは演奏者が行うべき演奏操作を判りやすい形で演奏者に提示することが可能となる。
【００１４】
演奏者が行ったと特定した演奏操作が適切か否か判定し、その判定結果を示す判定データを画像データと対応付けて更に保存するようにした場合には、その演奏操作が適切か否か演奏者に判りやすい形で更に提示することが可能となる。
【００１５】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
＜第１の実施の形態＞
図１は、第１の実施の形態による演奏記録装置、及び演奏記録再生装置を用いて構築された演奏システムの構成を示す図である。
【００１６】
その演奏システムは、図１に示すように、演奏記録・再生装置１０に対し、カメラ２０、表示装置３０、及び電子楽器４０をそれぞれケーブルで接続させることで構築されている。その演奏記録・再生装置１０は、電子楽器４０を演奏するユーザ（演奏者）の画像をカメラ２０により撮影して記録し、その記録した画像を表示装置３０上に表示させることで再生する。本実施の形態による演奏記録装置、及び演奏記録再生装置は、その演奏記録・再生装置１０に搭載される形で実現されている。以降、演奏記録・再生装置１０は「再生装置」と略記する。
【００１７】
上記電子楽器４０は、鍵盤４１を備えたものである。図４に示すように、その鍵盤４１を構成する鍵のなかで演奏者（ユーザ）が演奏操作を行った鍵、それを行った指、及びそのタイミングは、上方からの視点では把握し易い。このことから、カメラ２０による撮影は上方から演奏者の手を対象に行うことを前提としている。
【００１８】
図２は、上記再生装置１０の回路構成を示す図である。
その再生装置１０は、図２に示すように、装置１０全体の制御を実行するＣＰＵ２０１と、ＣＰＵ２０１が実行するプログラムや各種制御用データ等を格納したＲＯＭ２０２と、ＣＰＵ２０１がワークに用いるワークＲＡＭ２０３と、接続された表示装置３０に、ＣＰＵ２０１から指示された画像を表示させるディスプレイコントローラ２０４と、接続された電子楽器４０からＭＩＤＩデータを入力できるＭＩＤＩ入出力部２０５と、図１に示す再生スイッチ（ＳＷ）１１、及び練習スイッチ（ＳＷ）１２を有するスイッチ（ＳＷ）回路２０６と、ＣＰＵ２０１の指示に従って楽音を発音させる音源システム２０７と、接続されたカメラ２０を制御するためのカメラコントローラ２０８と、を備えて構成されている。
【００１９】
上記音源システム２０７は、例えば発音させる楽音の波形データを生成する音源、その音源が生成した波形データをアナログのオーディオデータにＤ／Ａ変換するＤ／Ａ変換器、それが出力するオーディオデータの増幅を行う増幅器（アンプ）、及び増幅後のオーディオデータを音声に変換して放音するスピーカ、を備えたものである。
【００２０】
以上の構成において動作を説明する。
図１に示す練習スイッチ１２は、練習のためにユーザが電子楽器４０を用いて演奏する様子の記録を指示するためのものであり、他方の再生スイッチ１１は、記録した内容の再生を指示するためのものである。ここでは、それらのスイッチ１１、１２をユーザが操作した場合に着目して動作を説明することとする。
【００２１】
先ず、練習スイッチ１２をユーザが操作した場合の動作について説明する。
そのスイッチ１２が操作された場合、本実施の形態では、表示装置３０を介して押鍵すべき鍵を教示する形で演奏の誘導（ガイド）を行うようにしている。そのために、演奏の対象とする曲を、そのスイッチ１２の操作前にユーザに指定させるようにしている。
【００２２】
演奏のガイドは、曲の演奏で行うべき演奏操作、及びその演奏操作を行うべきタイミングを表す曲（演奏）データを参照して行う。その曲データは、演奏操作を示すイベントデータ（例えばＭＩＤＩデータ）毎に、その演奏操作を行うべきタイミングを示すタイムデータを付加して構成されたものである（図３参照）。特に詳細な説明は省略するが、ＲＯＭ２０２には複数の曲データが格納されており、その曲データの何れかを選択するか、或いはＭＩＤＩ入出力部２０５に曲データを受信させることでユーザは曲データを指定するようになっている。その受信は、不図示のスイッチをユーザが操作した場合に行うようになっている。
【００２３】
ユーザが指定した曲データは、練習スイッチ１２が操作されると、演奏をガイドするために、楽音を発音させない形で再生を開始する。それにより、押鍵すべき鍵、その鍵を押鍵しているべき期間を特定し、その鍵、及びその期間をユーザに教示する。
【００２４】
そのように演奏をガイドすると、ユーザはそのガイドに沿って演奏を行う。このことから、本実施の形態では、演奏操作として押鍵が行われるべきタイミングでカメラ３０に撮影を行わせている。その撮影は、ＣＰＵ２０１がカメラコントローラ２０８を介してカメラ３０に撮影を指示することで行われる。
【００２５】
一方のカメラ３０は、その指示に従って撮影を行い、その撮影で得た画像データを送信する。ＣＰＵ２０１は、その画像データを、カメラコントローラ２０８を介して受け取り、ワークＲＡＭ２０３に確保した領域（図３の画像データエリア）に格納する。その撮影により図４に示すような画像のデータがリアルタイムに得られることとなる。
【００２６】
画像データは、カメラ３０で、或いはワークＲＡＭ２０３に格納する段階で圧縮される。しかし、ここでは説明上、便宜的に、圧縮や解凍についての説明は省略することとする。
このようにして、本実施の形態では、ユーザが押鍵を行うべきタイミングで手の状態を静止画で間欠的に撮影するようにしている。これは、動画では全体のデータ量が静止画と比較して非常に大きくなる、連続する静止画間の変化が比較的に大きくなって実際に行われた演奏操作の把握がより容易となる、楽音の発音開始タイミングはその終了タイミングよりも演奏内容に大きく影響する、といった理由からである。それにより、データ量を抑えつつ、演奏内容の正確な確認を行えるようにしている。押鍵時の静止画の換わりに動画を保存させても良く、或いはそれと併せて離鍵時の静止画を保存させるようにしても良い。
【００２７】
保存した画像データは、曲データ中のイベントデータと対応付けている。それにより、曲データを利用して、保存した画像データを撮影順に、その撮影間隔を維持させつつ再生できるようにさせている。その再生は、表示装置３０に表示させることで行う。
【００２８】
しかし、そのように画像データを再生させたとしても、ユーザが演奏中に行った演奏操作が適切か否か正確、且つ容易に把握できるとは限らない。例えば撮影を行った際に、押鍵のためにユーザが指を移動させているような場合もありえる。このことから、本実施の形態では、ユーザが行った演奏操作が適切か否か示す判定データを画像データと併せて保存するようにしている。適切か否か判定する演奏操作としては、上述した理由から押鍵のみとしている。
【００２９】
電子楽器４０は、ユーザが鍵盤４１に対して演奏操作、即ち押鍵、或いは離鍵を行う度に、その操作内容を示すＭＩＤＩ（イベント）データをリアルタイムで再生装置１０に送信する。送信されたＭＩＤＩデータは、再生装置１０に搭載されたＭＩＤＩ入出力部２０５で受信される。このことから、ユーザが行った演奏操作が適切か否かの判定は、再生中の曲データから特定される行うべき演奏操作が、ＭＩＤＩ入出力部２０５に受信したＭＩＤＩデータが示す演奏操作と一致するか否か確認することで行っている。
【００３０】
図３は、ワークＲＡＭ２０３に格納されるデータを説明する図である。
図３中の曲データエリアは、練習スイッチ１２への操作により演奏のガイドを行う曲の曲データを格納するために確保されるエリアである。その曲データは、上述したように、タイムデータ、及びイベントデータからなるデータ対が、その再生順に並べた形で構成されている。その曲データの格納は、ユーザが曲を指定する度に上書きする形で行う。
【００３１】
画像データエリアは、カメラ２０から送信された画像データ保存用に確保されるエリアである。そのエリア内には、画像データ毎にそれを保存するためのサブエリア（図３中「（１）」等を表記したエリア）が確保される。画像データ保存用のサブエリアについては、それに保存されるデータは演奏操作の結果を示すものであることから。以降、便宜的に「結果データエリア」と呼ぶことにする。
【００３２】
その結果データエリアには、画像データの他に、図３中「ＮＧＦ」「ＡＤ」と表記のデータが保存される。ＮＧＦは、演奏操作が適切に行われたか否か示す判定データであり、ＡＤは、曲データエリアに保存された曲データを構成するイベントデータのなかで、画像データを得た撮影時に行うべきタイミングとなったイベントデータを示すデータである。そのデータとして、そのイベントデータが格納されているアドレスを示す値を保存している。ここでは、結果データエリアの場所を示すデータも「アドレス」と呼ぶことにする。ＮＧＦ、ＡＤについては、それらは変数として扱われることから、以降、変数を付して表記する。
【００３３】
練習スイッチ１２をユーザが操作すると、ＣＰＵ２０１は、曲データエリアに格納された曲データを再生して演奏のガイドを行い、画像データエリア内でデータを格納する結果データエリアを順次、変更しながら、カメラ２０に撮影させることで得られた画像データ、更には変数ＮＧＦ、及びＡＤを結果データエリアに格納する。そのようにして、ユーザが行った演奏の記録を行う。
【００３４】
次に、再生スイッチ１１をユーザが操作した場合の動作について説明する。
そのスイッチ１１が操作されると、ＣＰＵ２０１は、曲データエリアに格納された曲データの再生を開始し、画像データエリア内に確保の結果データエリアに格納されている画像データの再生（表示）は、そのエリアに格納された変数ＡＤによって対応付けたイベントデータを処理するタイミングで行う。それにより、画像データの再生は、撮影時と同様に、曲データの再生進行に合わせて行う。
【００３５】
カメラ２０による撮影は、鍵を押鍵すべきタイミングで行っている。このため、表示させた画像データから、押鍵すべき鍵を押鍵している、或いはその鍵を押鍵しようとしていることが認識できれば、その鍵は適切に押鍵していることが確認できる。そうでなければ、つまり押鍵すべきでない鍵を押鍵している、押鍵すべき鍵を押鍵しようとしていない、といったようなことが認識できれば、押鍵すべき鍵を適切に押鍵していないことが確認できる。
【００３６】
しかし、静止画の画像データの表示では、手の前後の動きは判りにくいのが実状である。そのため、本実施の形態では、変数ＮＧＦの値を画像データの表示に反映させている。その反映は、例えば対応付けられたイベントデータから特定される、表示画像中の押鍵すべき鍵（図４参照）の表示色を、変数ＮＧＦの値に応じて変化させることで行う。それにより、適切な押鍵を行ったか否か容易に確認できるようにさせている。
【００３７】
演奏中、電子楽器４０の位置は通常は動かない。このことから、そのような反映は、例えば鍵盤４１を対象にした撮影を予め行わせて、撮影された画像中の各鍵の範囲を周知の画像処理により抽出しておき、抽出した範囲のなかでイベントデータに対応する範囲内の画素データの値を書き換えることで行うことができる。画像データの表示装置３０への表示は、ディスプレイコントローラ２０４に、表示させる画像データを送出することで行われる。
【００３８】
なお、変数ＮＧＦの値の画像データへの反映には、別の方法を用いても良い。例えば手や指、或いは鍵以外の場所の表示色を変化させることで行っても良く、或いはその値に応じた図形、若しくはメッセージなどを表示させることで行っても良い。
【００３９】
ＣＰＵ２０１は、押鍵を示すイベントデータを処理するタイミングとなる度に、それに対応付けられた画像データを画像データエリアから読み出し、それと併せて保存された変数ＮＧＦの値に応じた操作をその画像データに行ってディスプレイコントローラ２０４に出力する。そのようにして、画像データエリアに保存された画像データの再生を行う。
【００４０】
次に、図５〜図１３に示す各種フローチャートを参照して、再生装置１０の動作について詳細に説明する。
図５は、全体処理のフローチャートである。始めに図５を参照して、その全体処理について詳細に説明する。その全体処理は、例えばＣＰＵ２０１が、ＲＯＭ２０２に格納されているプログラムを実行することで実現される。
【００４１】
電源がオンされると、先ず、ステップ５０１で装置１０のイニシャライズを行い、所定の状態に設定する。次のステップ５０２では、スイッチ回路２０６から、再生スイッチ１１や練習スイッチ１２を含む各種スイッチに対して行われた操作内容を示す操作情報を受け取り、行われた操作に対応するためのスイッチ（ＳＷ）処理を実行する。その後はステップ５０３に移行する。
【００４２】
ステップ５０３では、電子楽器４０の鍵盤４１に対して行われた演奏操作に対応するための鍵盤処理を実行する。続くステップ５０４では、練習スイッチ１２への操作に対応するための練習処理を実行する。次のステップ５０５では、再生スイッチ１１への操作に対応するための再生処理を実行する。その次のステップ５０６では、ＭＩＤＩ入出力部２０５からのＭＩＤＩデータの出力などに対応するためのその他の処理を実行する。その実行後は上記ステップ５０２に戻る。それにより、ステップ５０２〜５０６で形成される処理ループを、電源がオフされるまでの間、繰り返し実行する。
【００４３】
以降は、上記全体処理内で実行されるサブルーチン処理について詳細に説明する。
図６は、上記ステップ５０２として実行されるスイッチ処理のフローチャートである。
【００４４】
そのスイッチ処理では、図６に示すように、先ず、ステップ６０１で練習スイッチ１２への操作に対応するための練習スイッチ処理を実行し、次のステップ６０２で再生スイッチ１１への操作に対応するための再生スイッチ処理を実行し、その次のステップ６０３でその他のスイッチへの操作に対応するためのその他のスイッチ処理を実行した後、一連の処理を終了するようになっている。ここでは、図７、及び図８に示す各フローチャートを参照して、ステップ６０１、及び６０２として実行されるサブルーチン処理について詳細に説明する。
【００４５】
上述したように、スイッチ回路２０６から、各種スイッチに対して行われた操作内容を示す操作情報を受け取る。その操作情報から、注目するスイッチが操作されたか否か判定するようになっている。ユーザが指定した曲データの曲データエリアへの保存は、ステップ６０３のその他のスイッチ処理を実行することで実現される。
【００４６】
図７は、上記ステップ６０２として実行される再生スイッチ処理のフローチャートである。スイッチ処理内で実行されるサブルーチン処理では、始めに図７を参照して、再生スイッチ処理について詳細に説明する。
先ず、ステップ７０１では、再生スイッチ１１が操作（オン）されたか否か判定する。スイッチ回路２０６から受け取った操作情報が、そのスイッチ１１に対して操作が行われたことを示していた場合、判定はＹＥＳとなってステップ７０２に移行し、そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００４７】
ステップ７０２では、再生管理用の変数ＰＬＡＹＦに、再生中であることを示す値の１を代入する。続くステップ７０３では、曲データエリア（図３参照）の先頭アドレスを示す値を変数ＭＡＤに代入する。以降は、変数ＭＡＤの値で指定されるアドレスからデータ（タイムデータ）を読み出して変数ＴＩＭＥに代入し（ステップ７０４）、画像データエリア内で先頭に位置する結果データエリアを指定するアドレスの値を変数ＧＡＤに代入し（ステップ７０５）、更にタイマインタラプト処理の実行禁止を解除してから（ステップ７０６）、一連の処理を終了する。
【００４８】
曲データを構成するタイムデータは、予め定められた分解能で時間を表現する。そのタイマインタラプト処理は、その分解能でタイムデータが表現する時間を計時するために実行する処理である。その時間を計時するために、その分解能で表現できる最小時間（以降「最小単位時間」と呼ぶ）を周期として実行される。それの実行禁止解除は、その周期で発生する割り込む信号を有効にして、その割り込み信号の発生により実行させるようにすることである。
【００４９】
図８は、図６に示すスイッチ処理内でステップ６０１として実行される練習スイッチ処理のフローチャートである。次に図８を参照して、その練習スイッチ処理について詳細に説明する。
先ず、ステップ８０１では、練習スイッチ１２が操作（オン）されたか否か判定する。スイッチ回路２０６から受け取った操作情報が、そのスイッチ１２に対して操作が行われたことを示していた場合、判定はＹＥＳとなってステップ８０２に移行し、そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００５０】
ステップ８０２では、練習管理用の変数ＳＴＦに、練習中であることを示す値の１を代入する。続くステップ８０３では、曲データエリア（図３参照）の先頭アドレスを示す値を変数ＡＤに代入する。以降は、変数ＡＤの値で指定されるアドレスからデータ（タイムデータ）を読み出して変数ＴＩＭＥに代入し（ステップ８０４）、画像データエリアに格納されたデータをクリアすることで初期化を行い（ステップ８０５）、そのエリア内で先頭に位置する結果データエリアを指定するアドレスの値を変数ＧＡＤに代入し（ステップ８０６）、更にタイマインタラプト処理の実行禁止を解除してから（ステップ８０７）、一連の処理を終了する。
【００５１】
ステップ６０１の練習スイッチ処理を実行することにより、ユーザが行う演奏の記録として画像データ等を保存するうえでの準備が行われ、他方のステップ６０２の再生スイッチ処理を実行することにより、演奏の記録として保存された画像データを再生するうえでの準備が行われることとになる。
【００５２】
図５に示す全体処理内で実行されるサブルーチン処理の説明に戻る。
図９は、その全体処理内でステップ５０３として実行される鍵盤処理のフローチャートである。次に図９を参照して、その鍵盤処理について詳細に説明する。ここでは、説明上、便宜的に、同時に放音させる楽音は１音であることを前提にしてそのフローチャートを示している。これは、以降、説明するサブルーチン処理のフローチャートでも同様である。
【００５３】
電子楽器４０は、鍵盤４１に対してユーザが行った演奏操作を示すＭＩＤＩ（イベント）データをリアルタイムで送信し、再生装置１０は、そのＭＩＤＩデータをＭＩＤＩ入出力部２０５で受信する。このことから、鍵盤処理では、その入出力部２０５が受信したＭＩＤＩデータを対象にした処理が行われる。その入出力部２０５は、受信したＭＩＤＩデータを、例えばワークＲＡＭ２０３に確保したエリア内に格納する。
【００５４】
先ず、ステップ９０１では、ＭＩＤＩ入出力部２０５が受信したＭＩＤＩデータをそのエリア内から読み出して取得する。続くステップ９０２では、そのＭＩＤＩデータが示す演奏操作、つまり鍵の状態変化を判定する。ＭＩＤＩデータを取得できなかった場合、その状態変化は無かったと判定し、ここで一連の処理を終了する。取得したＭＩＤＩデータが鍵の離鍵（ＯＦＦ）を示すノートオフメッセージであった場合には、その旨が判定され、ステップ９０３に移行してそのＭＩＤＩデータが音高を示す鍵番号を変数ＫＥＹに代入し、更にステップ９０４でそのＭＩＤＩデータを音源システム２０７に送出した後、一連の処理を終了する。取得したＭＩＤＩデータが鍵の押鍵（ＯＮ）を示すノートオンメッセージであった場合には、その旨が判定されてステップ９０５に移行する。
【００５５】
ステップ９０５では、そのＭＩＤＩデータが音高を示す鍵番号を変数ＫＥＹに代入し、続くステップ９０６では、そのＭＩＤＩデータを音源システム２０７に送出する。その後に移行するステップ９０７では、変数ＳＴＦの値が１か、つまり、練習スイッチ１２への操作により開始される練習中か否か判定する。その練習中であった場合、判定はＹＥＳとなってステップ９０８に移行し、そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００５６】
本実施の形態では、変数ＮＧＦに、押鍵すべき鍵を押鍵すべきタイミングで行った場合に「０」、押鍵すべきでない鍵を押鍵すべきタイミングで行った場合に「１」、押鍵すべきでないタイミングで押鍵を行った場合に「２」、押鍵すべき鍵がありながらその押鍵を行わなかった場合に「３」をそれぞれ代入するようにしている。それにより、押鍵を適切に行ったか否か、つまり押鍵すべき鍵を押鍵すべきタイミングで行ったか否かの他に、適切に行えなかった押鍵がどのような理由で適切でないのか把握できるようにさせている。
【００５７】
変数ＮＧＦに代入される値のなかで「０」〜「２」は、ユーザの押鍵によって特定することができる値である。ステップ９０８以降では、変数ＮＧＦに代入すべき値を特定してその値を保存するための処理が行われる。
先ず、ステップ９０８では、変数ＯＮＦの値が１か否か判定する。その変数ＯＮＦは、押鍵すべきタイミングを判定するために用意した変数であり、それに代入される１はそのタイミングであることを示し、０はそのタイミングでないことを示している。このことから、そのタイミングでなかった場合、判定はＮＯとなってステップ９１３に移行し、そうでない場合には、判定はＹＥＳとなってステップ９０９に移行する。
【００５８】
ステップ９０９では、押鍵すべき鍵の鍵番号が代入される変数ＮＯＴＥの鍵番号が、変数ＫＥＹに代入されたそれと等しくないか否か判定する。ユーザが押鍵すべき鍵を押鍵した場合、それらは一致することから、判定はＮＯとなり、ステップ９１０に移行して、画像データエリア内の結果データエリアのなかで変数ＧＡＤの値により指定される結果データエリアに、０の値の変数ＮＧＦを書き込み、更にステップ９１２で変数ＯＫＦに１を代入した後、一連の処理を終了する。そうでない場合には、即ち押鍵すべきでない鍵をユーザが押鍵した場合には、それらは一致しないことから、判定はＹＥＳとなってステップ９１１に移行し、変数ＧＡＤの値により指定される結果データエリアに、１の値の変数ＮＧＦを書き込んだ後、そのステップ９１２に移行する。
【００５９】
上記変数ＯＫＦは、鍵を押鍵すべきタイミングとなった後、押鍵が行われたか否か判定するために用意した変数であり、それに代入される１は押鍵が行われたことを示し、０はその押鍵が行われなかったことを示している。ここでは、押鍵が行われたことから、それに１を代入している。
【００６０】
上記ステップ９０８の判定がＮＯとなって移行するステップ９１３では、画像データエリア内の結果データエリアのなかで変数ＧＡＤの値により指定される結果データエリアに、２の値の変数ＮＧＦを書き込む。その後は上記ステップ９１２に移行して、変数ＯＫＦに１を代入する。
【００６１】
次に、図５に示す全体処理内でステップ５０４として実行される練習処理について、図１０、及び図１１に示すそのフローチャートを参照して詳細に説明する。そのフローチャートは、上述したように、同時に発音させる楽音は１音と前提した場合のものである。
【００６２】
先ず、ステップ１００１では、変数ＳＴＦの値が１か否か判定する。練習中、つまり演奏ガイドを行っている場合、それには１が代入されていることから、判定はＹＥＳとなってステップ１００２に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００６３】
ステップ１００２では、最小単位時間が経過したか否か判定する。その時間を計時するために実行するタイマインタラプト処理から引数として渡された変数の値がその経過を示していなかった場合、判定はＮＯとなり、ここで一連の処理を終了する。そうでない場合には、判定はＹＥＳとなり、次にステップ１００３で変数ＴＩＭＥの値をデクリメントした後、ステップ１００４に移行する。
【００６４】
ステップ１００４では、変数ＴＩＭＥの値が０以下か否か判定する。それに代入したタイムデータが処理タイミングを示すイベントデータの処理タイミングとなった場合、その値は０以下となることから、判定はＹＥＳとなってステップ１００５に移行し、そうでない場合には、判定はＮＯとなって一連の処理を終了する。
【００６５】
ステップ１００５では、変数ＡＤの値をインクリメントする。続くステップ１００６では、変数ＡＤの値が、曲データの最後に位置するデータが格納されたアドレス（最終アドレス）の値以下か否か判定する。曲データの再生が終了していない場合、その変数ＡＤの値は最終アドレスの値以下となることから、判定はＹＥＳとなってステップ１００９に移行する。そうでない場合には、判定はＮＯとなり、次にステップ１００７で変数ＳＴＦに０を代入し、更にステップ１００８でタイマインタラプト処理の実行を禁止させた後、一連の処理を終了する。
【００６６】
ステップ１００９では、変数ＡＤの値で指定されるアドレスからデータを読み出す。次のステップ１０１０では、そのデータの種類を判定する。そのデータがタイムデータだった場合、その旨が判定されてステップ１０１１に移行し、そのデータを変数ＴＩＭＥに代入した後、一連の処理を終了する。そのデータがイベント（ＭＩＤＩ）データであった場合には、その旨が判定されて図１１のステップ１０１２に移行する。
【００６７】
そのステップ１０１２では、イベントデータが示すイベント（演奏操作）が押鍵（ノートオン）か否か判定する。そのイベントが押鍵でなかった場合、判定はＮＯとなってステップ１０１９に移行し、そうでない場合には、判定はＹＥＳとなってステップ１０１３に移行する。
【００６８】
ステップ１０１３では、イベントデータが鍵番号で示す押鍵すべき鍵の押鍵をユーザに指示する。その指示方法としては様々な方法を用いることができるが、一例を挙げれば、例えば鍵盤４１を表す鍵盤図形を表示装置３０に表示させ、その図形のなかで押鍵すべき鍵の表示色を他の鍵と異ならせることで行う。
【００６９】
ステップ１０１３に続くステップ１０１４では、変数ＯＮＦに１、変数ＯＫＦに０をそれぞれ代入する。その次に移行するステップ１０１５では、イベントデータが示す鍵盤号を変数ＮＯＴＥに代入する。それ以降は、カメラコントローラ２０８を介してカメラ２０に撮影を指示し、その指示によってカメラ２０が送信する画像データをコントローラ２０８が受信するのを待ち（ステップ１０１６）、そのコントローラ２０８が受信した画像データを、変数ＧＡＤの値で指定される結果データエリアにストアし（ステップ１０１７）、そのデータエリアに変数ＡＤの値（押鍵（ノートオン）を示すイベントデータがストアされたアドレス値）を更にストアしてから（ステップ１０１８）、図１０のステップ１００５に戻る。
【００７０】
上記ステップ１０１２の判定がＮＯとなって移行するステップ１０１９では、イベントデータが鍵番号で示す離鍵すべき鍵の離鍵をユーザに指示するために、押鍵すべきとして表示色を他の鍵と異ならせていた鍵の表示色を元の表示色に変更する。その後は、ステップ１０２０で変数ＯＮＦに０を代入してからステップ１０２１に移行する。
【００７１】
ステップ１０２１では、変数ＯＫＦの値が０か否か判定する。離鍵すべきタイミングとなるまでにユーザが押鍵を行わなかった場合、それには０が代入されていることから判定はＹＥＳとなり、ステップ１０２２で変数ＧＡＤの値により指定される結果データエリアに３の値の変数ＮＧＦを書き込んだ後、図１０のステップ１００５に戻る。そうでない場合には、判定はＮＯとなり、ステップ１０２３で変数ＯＫＦに０を代入した後、そのステップ１００５に戻る。
【００７２】
このようにして、画像データがストアされた結果データエリアには、０〜３のうちの何れかの値が変数ＮＧＦの値としてストアされる。それにより、押鍵が不適切となった理由をユーザが容易に把握できるようにさせている。
図１２，及び図１３は、図５に示す全体処理内でステップ５０５として実行される再生処理のフローチャートである。最後に図１２、及び図１３を参照して、その再生処理について詳細に説明する。
【００７３】
先ず、ステップ１２０１では、変数ＰＬＡＹＦの値が１か否か判定する。再生中、つまり画像データエリアにストアした画像データの表示を行っている場合、それには１が代入されていることから、判定はＹＥＳとなってステップ１２０２に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００７４】
ステップ１２０２〜１２１１の処理内容は、曲データエリアからデータを読み出すアドレス管理用の変数名が異なるだけで、図１０に示すステップ１００２〜１０１１のそれと基本的に同じである。このことから、それらの説明は省略する。図１３のステップ１２１２には、ステップ１２０９で読み出したデータをステップ１２１０でイベントデータと判定した場合に移行する。
【００７５】
そのステップ１２１２では、イベントデータが示すイベント（演奏操作）が押鍵（ノートオン）か否か判定する。そのイベントが押鍵でなかった場合、判定はＮＯとなり、次にステップ１０１３でそのイベントデータを音源システム２０７に送出した後、図１２のステップ１２０５に戻る。そうでない場合には、判定はＹＥＳとなり、ステップ１２１４でイベントデータを音源システム２０７に送出してからステップ１２１５に移行する。
【００７６】
このようにして、本実施の形態では、画像データの再生と並行させる形で、曲データの再生も併せて行っている。それにより、視覚と聴覚を使った演奏内容の確認をユーザが行えるようにさせている。
その聴覚により楽音の適切な発音開始タイミングやその楽音の音高は容易に認識できるようになる。それにより、聴覚から認識するそれらを視覚から認識するものと比較できるようになることから、ユーザは自身が行った押鍵のタイミング、その押鍵を行った鍵が適切か否かより容易に確認できるようになる。
【００７７】
ステップ１２１５では、変数ＧＡＤに、画像データエリア内で先頭に位置する結果データエリアを指定するアドレスの値を代入する。続くステップ１２１６では、変数ＧＡＤの値で指定される結果データエリアから変数ＡＤの値を読み出す。その次に移行するステップ１２１７では、変数ＭＡＤの値とその変数ＡＤの値が一致するか否か判定する。ステップ１２１４で音源システム２０７に送出のイベントデータと対応付けた画像データがストアされている結果データエリアから変数ＡＤを読み出した場合、それらは一致することから、判定はＹＥＳとなってステップ１２１９に移行する。そうでない場合には、判定はＮＯとなり、次にステップ１２１８で変数ＧＡＤの値を例えばインクリメントすることで進めた後、上記ステップ１２１６に戻る。それにより、音源システム２０７に送出のイベントデータと対応付けた画像データがストアされている結果データエリアを特定するまで、ステップ１２１６〜１２１８で形成される処理ループを繰り返し実行する。
【００７８】
ステップ１２１９では、変数ＧＡＤの値で指定される結果データエリアから画像データの読み出しを行う。次のステップ１２２０では、その結果データエリアから変数ＮＧＦの読み出しを行う。その後に移行するステップ１２２１では、変数ＮＧＦの値が０か否か判定する。その値が０であった場合、即ちイベントデータが示す押鍵をユーザが適切に行った場合、判定はＹＥＳとなり、ステップ１２１９で読み出した画像データをそのままディスプレイコントローラ２０４に送出して表示装置３０に表示させた後、図１２のステップ１２０５に戻る。そうでない場合には、判定はＮＯとなってステップ１２２３に移行する。
【００７９】
ステップ１２２３では、変数ＮＧＦの値を判定する。変数ＮＧＦの値が１であった場合、その旨が判定されてステップ１２２４に移行し、読み出した画像データに対して表示色Ａによる色付けを行う。同様に、その値が２であった場合には、その旨が判定されて移行するステップ１２２５で画像データに対して表示色Ｂによる色付けを行い、その値が３であった場合には、その旨が判定されて移行するステップ１２２６で画像データに対して表示色Ｃによる色付けを行う。そのようにして表示色Ａ〜Ｃの何れかで色付けを行った後に移行するステップ１２２７では、その色付け後の画像データをディスプレイコントローラ２０４に送出して表示装置３０に表示させる。その後は図１２のステップ１２０５に戻る。その色付けは、上述したように、対応付けられたイベントデータから特定した押鍵すべき鍵（図４参照）を対象に行う。
＜第２の実施の形態＞
上記第１の実施の形態では、曲データの再生に合わせて画像データの再生（表示）を行うようにしている。これに対し、第２の実施の形態は、その画像データの再生をユーザの指示に応じて行うようにしたものである。
【００８０】
第２の実施の形態における再生装置の構成は、第１の実施の形態におけるそれと基本的に同じである。動作も大部分は基本的に同じである。このため、第１の実施の形態の説明で付した符号をそのまま用いつつ、第１の実施の形態から異なる部分についてのみ説明することとする。
【００８１】
第２の実施の形態では、第１の実施の形態と同様に、画像データが表示されていない状態で図１に示す再生スイッチ１１をユーザが操作することでその画像データの表示（再生）を開始する。しかし、それ以降は、そのスイッチ１１をユーザが操作する度に、表示させる画像データを先頭から順次、切り換えて表示していくようになっている。それにより、時間をかけて演奏操作の確認や検討をユーザが行えるようにさせている。
【００８２】
上述したように画像データの再生を行うことから、図５に示す全体処理では、ステップ５０５として再生処理は実行しない。ステップ５０２として実行するスイッチ処理では、ステップ６０２として実行する再生スイッチ処理（図６参照）が第１の実施の形態から大きく異なっている。他は基本的に同じである。このことから、第２の実施の形態で実行される再生スイッチ処理についてのみ、図１４、及び図１５に示すそのフローチャートを参照して詳細に説明する。
【００８３】
先ず、ステップ１４０１では、再生スイッチ１１が操作（オン）されたか否か判定する。スイッチ回路２０６から受け取った操作情報が、そのスイッチ１１に対して操作が行われたことを示していた場合、判定はＹＥＳとなってステップ１４０２に移行し、そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００８４】
ステップ１４０２では、変数ＰＬＡＹＦの値が０か否か判定する。第１の実施の形態と同様に、画像データの再生中、それには１が代入される。このことから、画像データを再生中であった場合、判定はＮＯとなって図１５のステップ１４０７に移行し、そうでない場合には、判定はＹＥＳとなってステップ１４０３に移行する。
【００８５】
ステップ１４０３では、画像データエリア内で先頭に位置する結果データエリアを指定するアドレスの値を変数ＧＡＤに代入する。その後は、変数ＰＬＡＹＦに１を代入し（ステップ１４０４）、変数ＧＡＤの値で指定される結果データエリアから画像データを読み出し（ステップ１４０５）、読み出した画像データをディスプレイコントローラ２０４に送出することで表示装置３０に表示させてから（ステップ１４０６）、一連の処理を終了する。
【００８６】
結果データエリアには、変数ＮＧＦ、ＡＤの各値も併せてストアされている。このことから、画像データは、第１の実施の形態と同様に、変数ＡＤの値から特定される鍵の表示色を変数ＮＧＦの値に応じた表示色で表示させても良い。
上記ステップ１４０２での判定のＮＯは、表示させる画像データを切り換えるために再生スイッチ１１をユーザが操作したことを意味する。このことから、その判定がＮＯとなって移行する図１５のステップ１４０７以降では、その切り替えを行うための処理が実行される。
【００８７】
そのステップ１４０７では、変数ＧＡＤの値をインクリメントする。続くステップ１４０８では、変数ＧＡＤの値が、最後の画像データをストアした結果データエリアを指定する値以下か否か判定する。全ての画像データを表示させていない場合、変数ＧＡＤの値はその結果データエリアを指定する値以下となることから、判定はＹＥＳとなり、図１４のステップ１４０５に移行する。それにより、次に表示すべき画像データを表示する。一方、そうでない場合には、つまり全ての画像データの表示が終了した場合には、判定はＮＯとなり、変数ＰＬＡＹＦに０を代入し（ステップ１４０９）、表示装置３０に表示させている画像を消去させてから（ステップ１４１０）、一連の処理を終了する。
＜第３の実施の形態＞
上記第１、及び第２の実施の形態では何れも、全ての画像データの再生（表示）を行っている。これに対し、第３の実施の形態は、全ての画像データのなかで再生の対象とする範囲を自動的に設定して再生を行うようにしたものである。
【００８８】
第３の実施の形態における再生装置の構成は、第１の実施の形態におけるそれと基本的に同じである。動作も大部分は基本的に同じである。このため、第２の実施の形態と同様に、第１の実施の形態の説明で付した符号をそのまま用いつつ、第１の実施の形態から異なる部分についてのみ説明することとする。
【００８９】
演奏操作の確認では、適切な演奏操作を確認するより、不適切な演奏操作がどこでどのように行ったかを確認するほうが重要であるといえる。このことから、第３の実施の形態では、最初の不適切な演奏操作（ここでは押鍵）から最後の不適切な演奏操作までを再生の対象とする範囲として設定し、その範囲内で撮影により得られた画像データのみをその範囲の先頭から再生するようにしている。それにより、不適切な演奏操作に着目した確認や検討をユーザがより容易に行えるようにさせている。
【００９０】
上述したように画像データの再生を行うことから、図５に示す全体処理では、ステップ５０２として実行するスイッチ処理、より具体的には、そのスイッチ処理内でステップ６０２として実行する再生スイッチ処理（図６参照）、及びステップ５０５として実行する再生処理が第１の実施の形態から異なっている。他は基本的に同じである。このことから、それらのサブルーチン処理についてのみ説明する。
【００９１】
図１６、及び図１７は、第３の実施の形態における再生スイッチ処理のフローチャートである。始めに図１６、及び図１７を参照して、そのスイッチ処理について詳細に説明する。そのスイッチ処理では、再生の対象とする範囲を設定するための処理が第１の実施の形態から追加されている。
【００９２】
先ず、ステップ１６０１では、再生スイッチ１１が操作（オン）されたか否か判定する。スイッチ回路２０６から受け取った操作情報が、そのスイッチ１１に対して操作が行われたことを示していた場合、判定はＹＥＳとなってステップ１６０２に移行し、そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００９３】
ステップ１６０２では、変数ＰＬＡＹＦに１、変数ＳＦ、ＳＡＤ、及びＥＡＤに０をそれぞれ代入する。その代入後は、画像データエリア内で先頭に位置する結果データエリアを指定するアドレスの値を変数ＧＡＤに代入し（ステップ１６０３）、変数ＧＡＤの値で指定される結果データエリアから変数ＮＧＦを読み出してから（ステップ１６０４）、ステップ１６０５に移行する。上記変数ＳＦは、不適切な押鍵の有無判定用の変数であり、変数ＳＡＤ、及びＥＡＤは、範囲設定用の変数である。
【００９４】
ステップ１６０５では、読み出した変数ＮＧＦの値（図中「ＮＧＦ（ＧＡＤ）」と表記）が０でないか否か、つまりそれにストアされている画像データが得られた撮影の際の押鍵が適切に行われていないか否か判定する。その押鍵が適切に行われた場合、変数ＮＧＦの値は０であることから、判定はＮＯとなってステップ１６１０に移行し、そうでない場合には、判定はＹＥＳとなってステップ１６０６に移行する。
【００９５】
ステップ１６０６では、変数ＳＦの値が０か否か判定する。それに初期値として代入される０は、不適切な押鍵が行われていないことを示す値である。このことから、直前に読み出した変数ＮＧＦの値が０以外の値であった場合、変数ＳＦには０が代入されているために判定はＹＥＳとなり、次のステップ１６０７で変数ＳＡＤに変数ＧＡＤの値、その次のステップ１６０８で変数ＳＦに１をそれぞれ代入した後、ステップ１６１０に移行する。そうでない場合には、判定はＮＯとなり、次のステップ１６０９で変数ＥＡＤに変数ＧＡＤの値を代入した後にそのステップ１６１０に移行する。
【００９６】
このようにして、値が０でない変数ＮＧＦを最初に読み出したときの変数ＧＡＤの値を変数ＳＡＤに代入し、その代入後は、値が０でない変数ＮＧＦを読み出す度に、変数ＧＡＤの値を変数ＥＡＤに代入するようにしている。それにより、変数ＳＡＤ、及びＥＡＤにはそれぞれ、最初、及び最後に不適切な押鍵が行われた際の撮影によって得られた画像データがストアされている結果データエリアを示す値が代入される。
【００９７】
ステップ１６１０では、変数ＧＡＤの値をインクリメントする。次に移行するステップ１６１１では、変数ＧＡＤの値が、最後の画像データをストアした結果データエリアを指定する値以下か否か判定する。その値より変数ＧＡＤの値が大きい場合、つまり結果データエリアにストアされている全ての変数ＮＧＦの値の確認が終了した場合、判定はＮＯとなって図１７のステップ１６１２に移行する。そうでない場合には、判定はＹＥＳとなって上記ステップ１６０４に戻る。それにより、着目する結果データエリアが無くなるまで、画像データに着目した再生する範囲の特定を行う。
【００９８】
図１７のステップ１６１２では、変数ＳＡＤの値が変数ＥＡＤの値と等しいか否か判定する。変数ＮＧＦの値が０以外であれば、同じ初期値が代入されるそれらのうちの何れかの値が初期値以外の値に更新されるために、それらの値は一致しなくなる。このことから、不適切な押鍵が一度も行われていない場合、それらの値は等しくなって判定はＹＥＳとなり、ステップ１６１３で変数ＰＬＡＹＦに０を代入した後、一連の処理を終了する。そうでない場合には、判定はＮＯとなってステップ１６１４に移行する。
【００９９】
変数ＰＬＡＹＦに０を代入することにより、画像データの再生は行われず、ユーザが行った画像データの再生指示は無効とされる。第３の実施の形態では、そのように無効とすることにより、画像データの再生に代えて、不適切な押鍵が一度も行われていないことをユーザに通知するようにしている。
【０１００】
不適切な押鍵が行われた際の画像データから再生を開始すると、それに至る演奏の流れをユーザは把握することができない。そのため、第３の実施の形態では、上述したようにして特定した範囲の前後も状況に応じて再生するようにさせている。ステップ１６１４以降の処理は、その前後を含めた範囲を再生の対象として設定するために行われる。画像データの再生は、曲データの再生と合わせて行っていることから、その範囲は、曲データ中で再生する範囲を設定する形で行っている。
【０１０１】
先ず、ステップ１６１４では、変数ＳＡＤの値から所定値αを引いた値が、画像データエリア内で先頭に位置する結果データエリアを示す値より小さいか否か判定する。所定値αは、流れを把握するうえで必要と思われる長さの演奏を行わせるために設定した値である。このため、演奏の最初の部分で行うべき押鍵を適切に行えなかったような場合、前者の値は後者の値より小さくなって判定はＹＥＳとなり、次にステップ１６１５で変数ＳＡＤにその後者の値を代入した後、ステップ１６１７に移行する。そうでない場合には、判定はＮＯとなり、次にステップ１６１６で変数ＳＡＤに前者の値を代入した後にそのステップ１６１７に移行する。
【０１０２】
ステップ１６１７では、変数ＳＡＤの値で指定される結果データエリアから変数ＡＤを読み出し、続くステップ１６１８では、変数ＡＤの値をデクリメントした値を変数ＭＡＤに代入する。それにより、流れを把握できる長さの演奏を直前に行うように、曲データ中で再生を開始するデータを指定する値を変数ＭＡＤに代入し保存する。
【０１０３】
ステップ１６１８に続くステップ１６１９〜１６２３では、流れを把握できる長さの演奏を最後に行うように、曲データ中で再生を終了させるデータを指定する値を変数ＥＡＤに代入し保存するための処理が行われる。それら各ステップの処理は、上記ステップ１６１４〜１６１８と同じ流れで行われるだけでなく、その処理内容も基本的には同じ考え方で決定されている。このようなことから、その説明は省略する。
【０１０４】
ステップ１６２３の処理を実行した後に移行するステップ１６２４では、変数ＭＡＤの値で指定されるデータを曲データエリア（図３参照）から読み出し、変数ＴＩＭＥに代入する。続くステップ１６２５では、変数ＧＡＤに、画像データエリア内で先頭に位置する結果データエリアを指定する値を代入する。それに続くステップ１６２６では、タイマインタラプト処理の実行禁止を解除する。一連の処理はその実行後に終了する。
【０１０５】
このようにして、画像データを再生する範囲が曲データ中で再生する範囲によって設定される。その範囲を示す値が代入された変数ＭＡＤ、ＥＡＤは、図５に示す全体処理内でステップ５０５として実行する再生処理（図１２参照）に渡される。それにより、第３の実施の形態では、変数ＥＡＤを新たに再生処理に渡している。
【０１０６】
その再生処理では、変数ＭＡＤを、曲データ中から読み出すデータを管理するために使用しており、それに代入される値に応じて処理内容を変更する必要性は存在しない。変数ＥＡＤには、曲データ中で再生を終了するデータを示す値が代入されている。このことから、第３の実施の形態では、ステップ１２０６において、変数ＭＡＤの値が変数ＥＡＤの値以下か否か判定するように変更している。それ以外は基本的に第１の実施の形態のままであり、その判定結果に応じた移行先についても変更していない。
【０１０７】
なお、上記第１〜第３の実施の形態では、それぞれ異なる方法で画像データを再生するようになっているが、それらのうちの複数の方法でその再生を行えるようにしても良い。その再生時には、押鍵すべき鍵をユーザに具体的に提示するために、その鍵の音高を示すシンボル、或いは図形などを表示させるようにしても良い。撮影タイミングについては、曲データから特定される押鍵すべきタイミングとしているが、ユーザが実際に押鍵を行ったタイミングとしても良い。
【０１０８】
本実施の形態（第１〜第３の実施の形態）では、曲データから特定される押鍵すべきタイミングで撮影を行うことにより、曲データ中で対応付けるイベントデータが反映された画像データを保存している。しかし、画像データと対応付けるイベントデータは、ユーザが行った演奏操作を示すものとしても良く、それを併せて対応付けても良い。
【０１０９】
ユーザが行った演奏操作を示すイベントデータと対応付けられるようにする場合には、ユーザが行った演奏操作を表すデータを例えば曲データの形で保存しておくことが望ましい。そのようなデータを保存しておくことにより、実際の押鍵時に撮影して保存した画像データを適切なタイミングで表示させていくことができるだけでなく、押鍵した鍵の音高をシンボルや図形などの表示によって提示できるようになる。それにより、ユーザにとってはより望ましい形で演奏内容の確認を行えるようになる。
【０１１０】
本実施の形態は、演奏記録装置、及び演奏記録再生装置を一つの装置１０に搭載した場合のものであるが、それらは別の装置として実現させても良い。そのようにした場合には、記録したデータは記録媒体、或いは通信ネットワークを介してやりとりさせれば良い。
【０１１１】
上述したような演奏記録装置、或いは演奏記録再生装置の動作を実現させるようなプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ、或いは光磁気ディスク等の記録媒体に記録させて配布しても良い。或いは、公衆網等で用いられる伝送媒体を介して、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザーはプログラムを取得してコンピュータなどのデータ処理装置にロードすることにより、そのデータ処理装置に本発明を適用させることができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。
【０１１２】
【発明の効果】
以上、説明したように本発明は、楽器を用いて演奏を行っている演奏者の画像データをリアルタイムに取得し、その演奏中に演奏者が行った演奏操作、或いは演奏者が行うべき演奏操作をリアルタイムに特定し、特定した演奏操作を示すイベントデータを、取得する画像データと対応付け、演奏の記録として併せて保存する。そのようにしてそれらを対応付けるため、画像データの再生時に、演奏者が行った演奏操作、或いは演奏者が行うべき演奏操作を判りやすい形で演奏者に提示することができる。
【０１１３】
演奏者が行ったと特定した演奏操作が適切か否か判定し、その判定結果を示す判定データを画像データと対応付けて更に保存するようにした場合には、その演奏操作が適切か否か演奏者に判りやすい形で更に提示することができるようになる。
【０１１４】
それらの提示は何れも、演奏中に実際に行われた演奏操作が適切か否かより容易に確認できるようにする。このため、演奏者はその確認を容易に行うことができるようになる。
【図面の簡単な説明】
【図１】第１の実施の形態による演奏記録装置、及び演奏記録再生装置を用いて構築された演奏システムの構成を示す図である。
【図２】第１の実施の形態による演奏記録装置、及び演奏記録再生装置を搭載した演奏記録・再生装置の回路構成を示す図である。
【図３】ワークＲＡＭに格納されるデータを説明する図である。
【図４】カメラで撮影される画像を説明する図である。
【図５】全体処理のフローチャートである。
【図６】スイッチ処理のフローチャートである。
【図７】再生スイッチ処理のフローチャートである。
【図８】練習スイッチ処理のフローチャートである。
【図９】鍵盤処理のフローチャートである。
【図１０】練習処理のフローチャートである。
【図１１】練習処理のフローチャートである（続き）。
【図１２】再生処理のフローチャートである。
【図１３】再生処理のフローチャートである（続き）。
【図１４】再生スイッチ処理のフローチャートである（第２の実施の形態）。
【図１５】再生スイッチ処理のフローチャートである（第２の実施の形態：続き）。
【図１６】再生スイッチ処理のフローチャートである（第３の実施の形態）。
【図１７】再生スイッチ処理のフローチャートである（第３の実施の形態：続き）。
【符号の説明】
１０    演奏記録・再生装置
１１    再生スイッチ
１２    練習スイッチ
２０    カメラ
３０    表示装置
４０    電子楽器
４１    鍵盤
２０１    ＣＰＵ
２０２    ＲＯＭ
２０３    ワークＲＡＭ
２０４    ディスプレイコントローラ
２０５    ＭＩＤＩ入出力部
２０６    スイッチ回路
２０８    カメラコントローラ
【図１】
0004655455.tif 000002
【図２】
0004655455.tif 000003
【図３】
0004655455.tif 000004
【図４】
0004655455.tif 000005
【図５】
0004655455.tif 000006
【図６】
0004655455.tif 000007
【図７】
0004655455.tif 000008
【図８】
0004655455.tif 000009
【図９】
0004655455.tif 000010
【図１０】
0004655455.tif 000011
【図１１】
0004655455.tif 000012
【図１２】
0004655455.tif 000013
【図１３】
0004655455.tif 000014
【図１４】
0004655455.tif 000015
【図１５】
0004655455.tif 000016
【図１６】
0004655455.tif 000017
【図１７】
0004655455.tif 000018