(57)【要約】【課題】  ネットワークを利用した遠隔の音楽教育やその他の音楽教育に利用する演奏練習用のデータを作成する場合に、楽譜データだけでなく演奏する手の位置や手の傾きなどの画像データを含めて、きめ細かな音楽教育を実現する。【解決手段】  ＭＩＤＩインターフェース１６は、電子楽器１で演奏された演奏データを入力する。カメラ５は、電子楽器１の鍵盤２の画像および鍵盤２を演奏中の手の画像を撮像する。パソコン６は、入力された演奏データ並びにカメラ５によって撮像された鍵盤の画像および演奏中の手の画像に基づいて演奏練習用のデータを作成する。【選択図】  図１
2006091632.tif 000002
【特許請求の範囲】
【請求項１】
鍵盤装置で演奏された楽曲の演奏データを入力するデータ入力手段と、
前記鍵盤装置の鍵盤の画像および当該鍵盤を演奏中の手の画像を撮像する撮像手段と、
前記楽曲に対する演奏練習用の曲データを作成する際に、前記データ入力手段によって入力された演奏データ並びに前記撮像手段によって撮像された鍵盤の画像および演奏中の手の画像に基づいて、所定の表示手段に表示して演奏する手の動きを練習するための画像データを含めて作成するデータ作成手段と、
を備えた演奏データ作成システム。
【請求項２】
前記データ作成手段は、前記鍵盤の画像および手の画像に基づいて手の位置および傾きを検出することによって演奏練習用の画像データを作成することを特徴とする請求項１に記載の演奏データ作成システム。
【請求項３】
前記データ作成手段は、手の甲の複数箇所に施された異なる色彩に基づいて手の位置および傾きを検出することを特徴とする請求項２に記載の演奏データ作成システム。
【請求項４】
前記データ作成手段は、各指先に施された異なる色彩を検出することによって演奏練習用の運指の画像データを作成することを特徴とする請求項２に記載の演奏データ作成システム。
【請求項５】
前記データ作成手段によって作成された演奏練習用の画像データが前記表示手段に表示された場合において、所定の操作手段から入力された修正データに応じて当該画像データを修正するデータ修正手段をさらに備えたことを特徴とする請求項２、３又は４に記載の演奏データ作成システム。
【請求項６】
鍵盤装置で演奏された楽曲の演奏データを入力する第１のステップと、
前記鍵盤装置の鍵盤の画像および当該鍵盤を演奏中の手の画像を所定の撮像手段によって撮像する第２のステップと、
前記楽曲に対する演奏練習用の曲データを作成する際に、前記第１のステップによって入力された演奏データ並びに前記第２のステップによって撮像された鍵盤の画像および演奏中の手の画像に基づいて、所定の表示手段に表示して演奏する手の動きを練習するための画像データを含めて作成する第３のステップと、
を実行する演奏データ作成処理のプログラム。
【請求項７】
前記第３のステップは、前記鍵盤の画像および手の画像に基づいて手の位置および傾きを検出することによって演奏練習用の画像データを作成することを特徴とする請求項６に記載の演奏データ作成処理のプログラム。
【請求項８】
前記第３のステップは、手の甲の複数箇所に施された異なる色彩に基づいて手の位置および傾きを検出することを特徴とする請求項７に記載の演奏データ処理のプログラム。
【請求項９】
前記第３のステップは、各指先に施された異なる色彩を検出することによって演奏練習用の運指の画像データを作成することを特徴とする請求項７に記載の演奏データ作成処理のプログラム。
【請求項１０】
前記第３のステップによって作成された演奏練習用の画像データが前記表示手段に表示された場合において、所定の操作手段から入力された修正データに応じて当該画像データを修正する第４のステップをさらに有することを特徴とする請求項７、８又は９に記載の演奏データ処理のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演奏データ作成システムおよび演奏データ作成処理のプログラムに関し、特に、鍵盤の演奏練習の模範となるデータを作成する演奏データ作成システムおよび演奏データ作成処理のプログラムに関するものである。
【背景技術】
【０００２】
従来、電子鍵盤楽器や外部音源に接続して演奏するキーボード装置などの鍵盤装置によって演奏練習を行うもの、模範演奏に基づいて演奏を誘導するもの、ネットワークを介して先生が生徒に音楽教育を行うもの等々、演奏技術の向上を図るための多くの提案がなされている。
ある提案における演奏誘導装置の特許文献では、押鍵する鍵や指運びまで表示して、演奏イメージそっくりに演奏誘導する発明が記載されている。この提案によれば、その実施例における図１に示すように、テンポキー９ａ、９ｂ、ストップキー１０ｂ、プレイキー１０ｄ、カーソルキー１１、ポジションキー１２、ズームキー１３等を有する本体２、カメラ３、表示部４等を演奏誘導装置１に備えている。
カメラ３で実際の演奏時の鍵盤７と手を撮影して、表示部４に実映像として表示出力し、演奏曲に合わせて押鍵する鍵や手および指運びを示す演奏指示映像を実映像に重ね合わせて表示部４に表示出力して、演奏誘導する。このときポジションキー１２とズームキー１３でモード選択し、カーソルキー１１で演奏指示映像の位置および倍率を調整して実映像に一致させる。また、テンポキー９ａ、９ｂにより演奏指示映像の進行速度を調整し、ストップキー１０ｂやプレイキー１０ｄ等により演奏指示映像の停止や開始を行い、演奏指示映像と実映像を見ながら実際の演奏を行うことによって、演奏練習をするようになっている。（特許文献１参照）
【０００３】
また、別の提案における遠隔音楽教育システムの特許文献では、ネットワークを利用した遠隔教育において、遠隔地にいながらにして、各生徒の個性に合わせた適切な音楽教育を行う発明が記載されている。この提案によれば、その実施形態における図１および図２に示すように、教師１の使用する端末１０と、生徒の使用する端末２０とはネットワークを介して接続されており、それぞれ、マイク１３、２３、カメラ１２、２２を備えており、音声および画像の双方向通信が可能である。教師１と生徒２との間は、カメラ１２、２３で撮像されたお互いの姿、および、マイク１３、２３を介したお互いの音声によって、双方向通信によるコミュニケーションが可能であるとともに、教師１からは生徒２に楽譜データなどの教材データが送信され、情報の共有が可能であり、教師１、生徒２が演奏する楽器１５、２５の演奏音はＭＩＤＩデータとして交換可能である。（特許文献２参照）
【特許文献１】特開平７−３６４４６号公報
【特許文献２】特開２００２−３２３８４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１においては、実際の演奏時の鍵盤と手をカメラで撮影しているにもかかわらず、その撮像された画像からは、押鍵された鍵がどの指で演奏されたのかを検出することができない。また、特許文献２の提案においては、カメラで撮像されたお互いの姿を見ることはできるが、特許文献１の場合と同様に、撮像された画像からは、押鍵された鍵がどの指で演奏されたのかを検出することができない。このため、ネットワークを利用した遠隔教育において、教師から生徒に送信される模範の教材データには、楽譜データを含めることはできるが、演奏する手の位置、手の傾き、運指などの画像データを含まれることができず、ネットワークを利用した遠隔の音楽教育が十分に生かされていない。
本発明は、このような従来の課題を解決するためのものであり、ネットワークを利用した遠隔の音楽教育やその他の音楽教育に利用する演奏練習用のデータを作成する場合に、楽譜データだけでなく演奏する手の位置や手の傾きなどの画像データを含めて、きめ細かな音楽教育を実現することを目的とする。
【課題を解決するための手段】
【０００５】
請求項１に記載の演奏データ作成システムは、鍵盤装置（実施形態においては、図１および図２の電子楽器１に相当する）で演奏された楽曲の演奏データを入力するデータ入力手段（実施形態においては、図２のＣＰＵ１１およびＭＩＤＩ・インターフェース１６に相当する）と、鍵盤装置の鍵盤の画像および当該鍵盤を演奏中の手の画像を撮像する撮像手段（実施形態においては、図２のカメラ５に相当する）と、楽曲に対する演奏練習用の曲データを作成する際に、データ入力手段によって入力された演奏データ並びに撮像手段によって撮像された鍵盤の画像および演奏中の手の画像に基づいて、所定の表示手段（実施形態においては、図２の表示部１５に相当する）に表示して演奏する手の動きを練習するための画像データを含めて作成するデータ作成手段（実施形態においては、図２のＣＰＵ１１に相当する）と、を備えた構成になっている。
【０００６】
請求項１の演奏データ作成システムにおいて、請求項２に記載したように、データ作成手段は、鍵盤の画像および手の画像に基づいて手の位置および傾きを検出することによって演奏練習用の画像データを作成するような構成にしてもよい。
【０００７】
請求項２の演奏データ作成システムにおいて、請求項３に記載したように、データ作成手段は、手の甲の複数箇所に施された異なる色彩（実施形態においては、手の甲に貼付された５個のシールに相当する）に基づいて手の位置および傾きを検出するような構成にしてもよい。
【０００８】
請求項２の演奏データ作成システムにおいて、請求項４に記載したように、データ作成手段は、各指先に施された異なる色彩（実施形態においては、各指の爪に貼付されたシールに相当する）を検出することによって演奏練習用の運指の画像データを作成するような構成にしてもよい。
【０００９】
請求項２、３又は４の演奏データ作成システムにおいて、請求項５に記載したように、データ作成手段によって作成された演奏練習用の画像データが表示手段に表示された場合において、所定の操作手段（実施形態においては、図２のスイッチ部１４に相当する）から入力された修正データに応じて当該画像データを修正するデータ修正手段（実施形態においては、図２のＣＰＵ１１に相当する）をさらに備えた構成にしてもよい。
【００１０】
請求項６に記載の演奏データ作成処理のプログラムは、鍵盤装置（実施形態においては、に相当する）で演奏された楽曲の演奏データを入力する第１のステップと、鍵盤装置の鍵盤の画像および当該鍵盤を演奏中の手の画像を所定の撮像手段（実施形態においては、図１および図２のカメラ５に相当する）によって撮像する第２のステップと、楽曲に対する演奏練習用の曲データを作成する際に、第１のステップによって入力された演奏データ並びに第２のステップによって撮像された鍵盤の画像および演奏中の手の画像に基づいて、所定の表示手段（実施形態においては、図２の表示部１５に相当する）に表示して演奏する手の動きを練習するための画像データを含めて作成する第３のステップと、を実行する。
【００１１】
請求項６の演奏データ作成処理のプログラムにおいて、請求項７に記載したように、第３のステップは、鍵盤の画像および手の画像に基づいて手の位置および傾きを検出することによって演奏練習用の画像データを作成するような構成にしてもよい。
【００１２】
請求項７の演奏データ作成処理のプログラムにおいて、請求項８に記載したように、第３のステップは、手の甲の複数箇所に施された異なる色彩（実施形態においては、手の甲に貼付された５個のシールに相当する）に基づいて手の位置および傾きを検出するような構成にしてもよい。
【００１３】
請求項７の演奏データ作成処理のプログラムにおいて、請求項９に記載したように、第３のステップは、各指先に施された異なる色彩（実施形態においては、各指の爪に貼付されたシールに相当する）を検出することによって演奏練習用の運指の画像データを作成するような構成にしてもよい。
【００１４】
請求項７、８又は９の演奏データ作成処理のプログラムにおいて、請求項１０に記載したように、第３のステップによって作成された演奏練習用の画像データが表示手段に表示された場合において、所定の操作手段（実施形態においては、図２のスイッチ部１４に相当する）から入力された修正データに応じて当該画像データを修正する第４のステップをさらに有するような構成にしてもよい。
【発明の効果】
【００１５】
本発明の演奏データ作成システムおよび演奏データ作成処理のプログラムによれば、ネットワークを利用した遠隔の音楽教育やその他の音楽教育に利用する演奏練習用のデータを作成する場合に、楽譜データだけでなく演奏する手の位置や手の傾きなどの画像データを含めて、きめ細かな音楽教育を実現できるという効果が得られる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明による演奏データ作成システムの実施形態について、鍵盤を備えた電子楽器、パソコン、およびカメラを組合わせた場合を例に採って説明する。
図１は、実施形態における演奏データ作成システムの外観図である。電子楽器１は、鍵盤２を備えているとともに、その背面側には、アングル３が取り付け部３ａによって固定されている。アングル３の最上部には、鍵盤２の中心部と対応する位置にカメラ取り付け部４が設けられ、ＣＣＤやＣＭＯＳなどの撮像素子を有するカメラ５が取り付けられている。なお、図には示していないが、カメラ取り付け部４には、カメラ５の水平位置（図の左右方向および奥行き方向の位置）を調節する機構が設けられている。
電子楽器１の上面にはパソコン６が置かれている。ただし、パソコン６は図に示した位置に限定されない。比較的奥行きのある電子楽器の場合や、平面型の表示部と本体とが別体のパソコンの場合には、演奏者の正面の位置、例えば、アングル３の取り付け部３ａの上に置くようにしてもよい。
【００１７】
図２は、カメラ５の撮像素子で撮像された画像を示す図である。撮像された画像は、撮像素子の各画素に対応するｘ座標およびｙ座標の位置が決定する。図２においては、左上の座標（０，０）、右上の座標（ＳＸ，０）、左下の座標（０，ＳＹ）、座標（ＳＸ，ＳＹ）によって指定される画角の中に、鍵盤の画像２ｉ、右手の画像７ｉ、および左手の画像８ｉが撮像できるように、カメラ５の水平位置が調節されている。右手および左手の甲のそれぞれには、中央、中指（根元）、手首、親指（根元）、小指（根元）に異なる色彩のシールが貼付されている。さらに、各指の爪には、異なる色のシールが貼付されている。
【００１８】
図３は、電子楽器１、カメラ５、パソコン６の接続関係、および、パソコン６の内部構成を示すブロック図である。パソコン６のＣＰＵ１１は、システムバスを介して、ＲＯＭ１２、ＲＡＭ１３、スイッチ部１４、表示部１５、ＭＩＤＩ・Ｉ／Ｆ（インターフェース）１６、ビデオキャプチャ・Ｉ／Ｆ１７、不揮発性メモリ１８と接続され、各部との間でコマンドおよびデータの授受を行うことによって、このシステム全体を制御する。
【００１９】
ＲＯＭ１２は、ＣＰＵ１１によって実行される演奏データ作成処理のプログラム、演奏練習の複数種類の曲データなどを音楽教育の教材として記憶している。ＲＡＭ１３は、ＣＰＵ１１のワークエリアであり、ＣＰＵ１１によって処理されるデータを一時的に記憶する。スイッチ部１４は、キーボードおよびマウスなどのポインティングデバイスで構成され、ユーザの操作に応じて、録音開始指令、録音停止指令、曲選択指令、再生指令、再生停止指令などのコマンドをＣＰＵ１１に入力する。表示部１５は、液晶ディスプレイやプラズマディスプレイなどで構成され、演奏データ作成処理のプログラムやその他のアプリケーションを起動させるメニュー画面、選択された曲データの楽譜、その他、演奏データ作成やデータ修正に必要なアイコンなどを表示する。ＭＩＤＩ・Ｉ／Ｆ１６は、演奏ガイドのためにＭＩＤＩ形式の曲データを電子楽器１に出力するとともに、電子楽器１からＭＩＤＩ形式の演奏データを入力する。
【００２０】
ビデオキャプチャ１７は、カメラ５に対してＣＰＵ１１の制御コマンドを出力してカメラ５を制御し、カメラ５で撮像された画像データをＣＰＵ１１に入力する。例えば、カメラ５の位置設定指令に応じて、図２に示した撮像画像の位置調整、画角調整、フォーカス調整などを制御する。不揮発性メモリ１８は、ＵＳＢなどのコネクタを介して、着脱可能に装着された半導体メモリ、又はハードディスクなどで構成され、作成された演奏練習用の曲データを記録するメモリである。
なお、図には示していないが、インターネットなどのネットワークを介して、生徒のパソコンやサーバとの間でデータの送受信やアプリケーションプログラムのダウンロードを行う通信手段を備えている。
【００２１】
次に、ＣＰＵ１１によって実行される演奏データ作成処理のプログラムのフローチャート、不揮発性メモリ１８に記憶されている曲データ、ＲＡＭ１３に記憶される演奏データなどに基づいて、図１に示した演奏データ作成システムの動作について説明する。
図４は、演奏データ作成処理のプログラムにおけるメインルーチンのフローチャートである。種々の変数の初期化（ステップＳＡ１）の後、演奏練習用の楽音の曲データの読込みを行う（ステップＳＡ２）。次に、スイッチ部１４から終了指令が入力されたか否かを判別する（ステップＳＡ３）。終了指令が入力されたときは、演奏データ作成処理のアプリケーションプログラムを終了して、パソコンの初期メニューに戻る。終了指令が入力されない場合には、録音開始指令が入力されたか否かを判別し（ステップＳＡ５）、録音開始指令が入力されたときは、録音変数を初期化して（ステップＳＡ６）、手の座標特定処理を実行する（ステップＳＡ７）。そして、録音停止指令が入力されたか否かを判別し（ステップＳＡ８）、録音停止指令が入力されない場合は手の座標特定処理を続行する。ステップＳＡ４において録音開始指令が入力されない場合、又は、ステップＳＡ８において録音停止指令が入力されたときは、ステップＳＡ４に移行して終了指令が入力されたか否かを判別する。
なお、図には示していないが、スイッチ部１４からの曲選択指令、カメラの位置設定指令、その他の指令に応じた処理を実行する。
【００２２】
図５は、電子楽器１から入力される演奏データをストアするＲＡＭ１３のエリアを示す図である。この図に示すように、ＰＬＡＹ（０）、ＰＬＡＹ（１）、ＰＬＡＹ（２）…からなる各演奏データは、押鍵開始時間を示すＯＮＴＩＭＥ、押鍵継続時間を示すＧＡＴＥ、押鍵の音高を示すＰＩＴＣＨ、その演奏データを示すポインタであるｐｐ、演奏した指番号を示すＦＩＧＰ、１つ前に演奏した指番号を示すＦＰＲＥＶ、図２に示した手の画像７ｉ、８ｉの中央の横方向および縦方向の位置を示すｘ座標ＰＸおよびｙ座標ＰＹ、手の傾きを表わすＧＤ、手の幅を表わすＷＤ、１つ前の演奏データを示すポインタであるｐｒ、次の演奏データを示すポインタであるｐｎで構成されている。なお、演奏終了後は、図５の演奏データは不揮発性メモリ１８に履歴データとして保存される。ＦＩＧＰおよびＦＰＲＥＶのデータは、右手の親指０、人差し指１、中指２、薬指３、小指４、左手の親指５、人差し指６、中指７８、薬指、小指９が割り当てられている。したがって、ＰＬＡＹのデータが右手の演奏によるものか又は左手の演奏によるものかを指の番号によって識別できる。
【００２３】
図６は、電子楽器１から入力される演奏データを一時的にストアするＲＡＭ１３のエリアを示す図である。この図に示すように、ＰＬＢＵＦ（０）、ＰＬＢＵＦ（１）、ＰＬＢＵＦ（３）…の各エリアには、押鍵開始時間を示すＯＮＴＩＭＥ、図５のエリアを示すポインタであるｐｐ、図８の当該エリアを示すポインタであるｐｑのデータがストアされる。
【００２４】
図７は、カメラ５によって撮像された図２の画像の各画素ＩＭＧ（０，０）、ＩＭＧ（０，２）、ＩＭＧ（０３０）…ＩＭＧ（ＳＸ，ＳＹ）における青、緑、赤の３原色の値であるＢＶＡＬＵＥ、ＧＶＡＬＵＥ、ＲＶＡＬＵＥを示す１画面分の画像データをストアするＲＡＭ１３のエリアを示す図である。この場合において、ＢＶＡＬＵＥ、ＧＶＡＬＵＥ、ＲＶＡＬＵＥは０から１までの値で表される。外光の分光特性や反射率などによって多少変化はするが、白鍵の領域における各画素のＢＶＡＬＵＥ、ＧＶＡＬＵＥ、ＲＶＡＬＵＥは、ほぼ（１，１，１）となり、黒鍵のＢＶＡＬＵＥ、ＧＶＡＬＵＥ、ＲＶＡＬＵＥは、ほぼ（０，０，０）となる。
【００２５】
図８は、図２に示した手の画像７ｉ、８ｉにおいて甲に貼付された１０個のシールの異なる色のデータＨＡＮＤＣ（０）〜ＨＡＮＤＣ（９）をストアするＲＡＭ１３のエリアを示す図である。各色は青、緑、赤の３原色の値であるＢＶＡＬＵＥ、ＧＶＡＬＵＥ、ＲＶＡＬＵＥの比率によって識別される。
図９は、演奏中の右手ＨＡＮＤ（０）および左手ＨＡＮＤ（１）の中央を示すｘ座標ＰＸ、ｙ座標ＰＹ、手の傾きＧＤ、手の幅ＷＤのデータを一時的にストアするＲＡＭ１３のエリアを示す図である。
【００２６】
図１０および図１１は、図４のメインルーチンにおける手の座標特定処理のフローチャートである。図１０において、変数ｉに０をセットし（ステップＳＢ１）、レジスタｘｍａｘ、ｘｍｉｎ、ｙｍａｘ、ｙｍｉｎにそれぞれ撮像画像の左端の最小値座標０、右端の最大値座標ＳＸ、上端の最小値座標０、下端の最大値座標ＳＹをセットする（ステップＳＢ２）。次に、現在処理中の画素の座標ｘ、ｙをともに０にセットする（ステップＳＢ３）。すなわち、図７のエリアのＩＭＧ（０，０）の画素を指定する。そして、座標ｘ、座標ｙの値をインクリメントしながら、ＩＭＧ（０，０）の画素からＩＭＧ（ＳＸ，ＳＹ）の画素に至るまで以下のループ処理を行う。
【００２７】
ＩＭＧ（ＳＸ，ＳＹ）の画素の色と変数ｉで指定したＨＡＮＤＣ（ｉ）の色とが一致するか否かを判別する（ステップＳＢ４）。両者の色が一致する場合には、ｘの座標がｘｍａｘの座標よりも大きいか否かを判別し（ステップＳＢ５）、ｘの座標がｘｍａｘの座標よりも大きい場合には、ｘの座標をｘｍａｘの座標として更新する（ステップＳＢ６）。次に、ｘの座標がｘｍｉｎの座標よりも小さいか否かを判別し（ステップＳＢ７）、ｘの座標がｘｍｉｎの座標よりも小さい場合には、ｘの座標をｘｍｉｎの座標として更新する（ステップＳＢ８）。次に、ｙの座標がｙｍａｘの座標よりも大きいか否かを判別し（ステップＳＢ９）、ｙの座標がｙｍａｘの座標よりも大きい場合には、ｙの座標をｙｍａｘの座標として更新する（ステップＳＢ１０）。次に、ｙの座標がｙｍｉｎの座標よりも小さいか否かを判別し（ステップＳＢ１１）、ｙの座標がｙｍｉｎの座標よりも小さい場合には、ｙの座標をｙｍｉｎの座標として更新する（ステップＳＢ１２）。すなわち、ＨＡＮＤＣ（ｉ）の画像において、最大のｘ座標、最小のｘ座標、最大のｙ座標、および最小のｙ座標を検索する。
【００２８】
ステップＳＢ４において、ＩＭＧ（ＳＸ，ＳＹ）の画素の色とＨＡＮＤＣ（ｉ）の色とが一致しない場合には、ｘの座標を１つインクリメントする（ステップＳＢ１３）。このとき、ｘの座標が最大値座標ＳＸを超えたか否かを判別し（ステップＳＢ１４）、ｘの座標がＳＸ以下である場合には、ステップＳＢ４に移行して、ＩＭＧ（ＳＸ，ＳＹ）の画素の色とＨＡＮＤＣ（ｉ）の色とが一致するか否かを判別する。ｘの座標がＳＸを超えたときは、ｘの座標を０にセットし、ｙの座標を１つインクリメントする（ステップＳＢ１５）。このとき、ｙの座標が最大値座標ＳＹを超えたか否かを判別し（ステップＳＢ１６）、ｙの座標がＳＹ以下である場合には、ステップＳＢ４に移行して、ＩＭＧ（ＳＸ，ＳＹ）の画素の色とＨＡＮＤＣ（ｉ）の色とが一致するか否かを判別する。
【００２９】
ｙの座標がＳＹを超えたとき、すなわち、撮像された画面のすべての画素の色について、ＨＡＮＤＣ（ｉ）の色との一致又は不一致の判別が終了したときは、図１１のフローにおいて、ｘｍａｘの値とｘｍｉｎの値との和の平均値をＰＸ（ｉ）にストアし、ｙｍａｘの値とｙｍｉｎの値との和の平均値をＰＹ（ｉ）にストアする（ステップＳＢ１７）。すなわち、ＨＡＮＤＣ（ｉ）に対応するシールのｘ座標の中心をＰＸ（ｉ）にストアし、ｙ座標の中心をＰＹ（ｉ）にストアする。したがって、ＨＡＮＤＣ（ｉ）に対応するシールの中心位置を取得する。
【００３０】
次に、ｉの値を１つインクリメントして（ステップＳＢ１８）、次のシールを指定する。このとき、ｉの値が最大値である９以下であるか否かを判別する（ステップＳＢ１９）。ｉの値が９以下である場合には、図１０のステップＳＢ２に移行して、ステップＳＢ１９までの処理を繰り返す。ステップＳＢ１９において、ｉの値が９を超えたとき、すなわち、両手の甲に貼付された１０個のシールの中心位置を取得したときは、右手および左手を指定するための変数ｉを０にセットして（ステップＳＢ２０）、下記の演算式を実行する（ステップＳＢ２１）。
ＰＸＤ＝ＰＸ（４＊ｉ＋２）−ＰＸ（４＊ｉ＋３）
ＰＹＤ＝ＰＹ（４＊ｉ＋２）−ＰＹ（４＊ｉ＋３）
【００３１】
ｉの値が０（右手）であるときは、ＰＸＤ＝ＰＸ（２）−ＰＸ（３）となり、ＰＹＤ＝ＰＹ（２）−ＰＹ（３）となる。図８に示した割り付けによって、ＰＸ（２）は右手の中指（根元）のｘ座標を表わし、ＰＸ（３）は右手の手首のｘ座標を表わす。したがって、ＰＸＤの値は、右手の中指（根元）と手首との横方向の差分の値である。同様に、ＰＹ（２）は右手の中指（根元）のｙ座標を表わし、ＰＹ（３）は右手の手首のｙ座標を表わす。したがって、ＰＹＤの値は、右手の中指（根元）と手首との縦方向の差分の値である。
【００３２】
次に、下記の演算式を実行して、ＧＤ（ｉ）を算出する（ステップＳＢ３２）。
ＧＤ（ｉ）＝ＡＴ（ＰＸＤ／ＰＹＤ）−ＫＧＤ
この演算式において、ＡＴ（ＰＸＤ／ＰＹＤ）はtan−１（ＰＸＤ／ＰＹＤ）すなわち逆正接関数であり、ＰＸＤおよびＰＹＤの値によって手の傾き角度を算出している。ＫＧＤは電子楽器１の鍵盤２の傾き角度である。したがって、ｉの値が０である場合には、ＧＤ（０）は鍵盤２に対する右手の相対的な傾きを表わしている。
【００３３】
次に、下記の演算式を実行して、ＷＤ（ｉ）を算出する（ステップＳＢ２３）。
|ＰＸ（４＊ｉ＋４）−ＰＸ（４＊ｉ＋５）|／cos｛ＧＤ（ｉ）−ＫＷＤ｝＝ＷＤ（ｉ）
ｉの値が０（右手）である場合には、
|ＰＸ（４）−ＰＸ（５）|／cos｛ＧＤ（０）−ＫＷＤ｝＝ＷＤ（０）
となる。したがって、ＷＤ（０）の値は右手の親指（根元）の位置と小指（根元）の座標差をＧＤ（０）の余弦で除算した値であり、鍵盤２に対する相対的な手の傾きを補正した右手の幅を表わしている。
【００３４】
ステップＳＢ２３の後、ｉの値を１つインクリメントして（ステップＳＢ２４）、ｉの値が１を超えたか否かを判別する（ステップＳＢ２５）。ｉの値が１である場合には、ステップＳＢ２１に移行してステップ２５までの処理を繰り返す。
すなわち、ステップＳＢ２１の演算式において、ｉの値が１（左手）であるときは、ＰＸＤ＝ＰＸ（６）−ＰＸ（７）となり、ＰＹＤ＝ＰＹ（６）−ＰＹ（７）となる。図８によって、ＰＸ（６）は左手の中指（根元）のｘ座標を表わし、ＰＸ（７）は左手の手首のｘ座標を表わす。したがって、ＰＸＤの値は、左手の中指（根元）と手首との横方向の差分の値である。同様に、ＰＹ（２）は左手の中指（根元）のｙ座標を表わし、ＰＹ（３）は左手の手首のｙ座標を表わす。したがって、ＰＹＤの値は、左手の中指（根元）と手首との横方向の差分の値である。次に、ステップＳＢ２２の演算式において、ｉの値が１である場合には、ＧＤ（１）は鍵盤２に対する左手の相対的な傾きを表わしている。
【００３５】
次に、ステップＳＢ２３の演算式において、ｉの値が１（左手）である場合には、
|ＰＸ（８）−ＰＸ（９）|／cos｛ＧＤ（１）−ＫＷＤ｝＝ＷＤ（１）
となる。したがって、ＷＤ（１）の値は左手の親指（根元）の位置と小指（根元）の座標差をＧＤ（１）の余弦で除算した値であり、鍵盤２に対する相対的な手の傾きを補正した左手の幅を表わしている。
ステップＳＢ２５においてｉの値が１を超えたときは、図４のメインルーチンに戻る。
【００３６】
図１２は、電子楽器１から演奏データが入力されたときの割り込み処理であるＭＩＤＩ・ＩＮ処理のフローチャートである。この割り込みがあると、入力された演奏データが押鍵であるか否かを判別し（ステップＳＣ１）、押鍵である場合には押鍵処理を行う（ステップＳＣ２）。演奏データが押鍵でない場合には、演奏データが離鍵であるか否かを判別し（ステップＳＣ３）、離鍵である場合には離鍵処理を行う（ステップＳＣ４）。演奏データが押鍵でも離鍵でもない場合、例えば、エフェクト操作などの場合には、その演奏データに対応する処理を行う（ステップＳＣ５）。演奏データに対応する処理の後はメインルーチンに戻る。
【００３７】
図１３および図１４は、図１２におけるステップＳＣ２の押鍵処理のフローチャートである。図１３のフローにおいて、まず、押鍵された鍵番号をＫＥＹにストアする（ステップＳＤ１）。次に、初期設定を行うために、フラグＰＬＡＹＦが０であるか否かを判別する（ステップＳＤ２）。ＰＬＡＹＦは図４におけるステップＳＡ１の変数の初期化で０にリセットされている。ＰＬＡＹＦが０である場合には、ＰＬＡＹＦを１にセットし（ステップＳＤ３）、次の演奏データを示すポインタｐｎを０にセットし（ステップＳＤ４）、この押鍵処理で用いる変数ｍを−１にセットし（ステップＳＤ５）、ポインタｐｑを０にセットする（ステップＳＤ６）。
【００３８】
ステップＳＤ３ないしステップＳＤ６の初期設定の後、又は、ステップＳＤ２においてＰＬＡＹＦが１である場合には、ポインタｐｎによって図５のＰＬＡＹ（ｐｎ）を指定する（ステップＳＤ７）。したがって、初期設定した直後はＰＬＡＹ（０）を指定する。次に、押鍵開始時間であるＯＮＴＩＭＥにＮＯＷＴＩＭＥの現時刻をストアする（ステップＳＤ８）。また、押鍵された鍵番号であるＫＥＹのデータをＰＩＴＣＨにストアする（ステップＳＤ９）。この後、ｐｐにｐｎの値をセットし（ステップＳＤ１０）、ｐｒにｍの値をセットし（ステップＳＤ１１）、ｍにｐｐ＋１の値をセットする（ステップＳＤ１２）。したがって、初期設定した最初は、現在のＰＬＡＹ（ｐｐ）を示すポインタｐｐの値は０、変数ｍの値は１となる。
【００３９】
次に、図１４のフローに移行して、ＰＬＡＹ（ｍ）がＮＵＬＬであるか否かを判別する（ステップＳＤ１３）。したがって、最初は、ＰＬＡＹ（０）の次のエリアであるＰＬＡＹ（１）がＮＵＬＬであるか否かを判別する。ＰＬＡＹ（ｍ）がＮＵＬＬでない場合には、ｍの値を１つインクリメントする（ステップＳＤ１４）。このとき、ｍの値が最大値を超えたか否かを判別し（ステップＳＤ１５）、最大値以内である場合には、ステップＳＤ１３において再びＰＬＡＹ（ｍ）がＮＵＬＬであるか否かを判別する。すなわち、変数ｍの値をインクリメントしながら、次の演奏データをストアできる空きエリアを捜す。
【００４０】
ＰＬＡＹ（ｍ）がＮＵＬＬの空きエリアを見つけた場合には、次のエリアを示すポインタｐｎにｍの値をセットし（ステップＳＤ１６）、ｍに現在のエリアを示すポインタｐｐの値をセットする（ステップＳＤ１７）。すなわち、ｍの値をインクリメントしてＰＬＡＹ（ｍ）がＮＵＬＬの空きエリアを見つけたので、ｍの値を元の値に戻す。次に、図６に示したバッファにおいてＰＬＢＵＦ（ｐｑ）のエリアを指定する（ステップＳＤ１８）。したがって、最初はＰＬＢＵＦ（０）のエリアを指定する。次に、押鍵開始時間であるＯＮＴＩＭＥにＮＯＷＴＩＭＥの現時刻をストアする（ステップＳＤ１９）。次に、ＰＬＢＵＦ（ｐｑ）のエリアのポインタｐｐに、ＰＬＡＹ（ｐｐ）のエリアにおけるｐｐの値をセットする（ステップＳＤ２０）。すなわち、電子楽器１から入力された現在の演奏データをストアしたＰＬＡＹ（ｐｐ）のエリアとＰＬＢＵＦ（ｐｑ）のエリアとをポインタｐｐによって対応させる。そして、ｐｑの値を１つインクリメントして（ステップＳＤ２１）、次に演奏データをストアするためのＰＬＢＵＦ（ｐｑ）のエリアを示すポインタを変更する。この後は、演奏中の指を検出するための画像処理（ステップＳＤ２２）を行って、メインルーチンに戻る。
【００４１】
図１５は、電子楽器１の鍵盤２の各鍵で指が接触する領域ＡＲ（０）〜ＡＲ（１２７）を示すＲＡＭ１３のエリアを示す図である。各領域は、その領域内の画素の座標ＰＯＳＩ（ｘ、ｙ）および鍵番号ＫＥＹ（０〜１２７）で表わされる。図１６は、図２に示した鍵盤の画像２ｉの一部であり、各白鍵および各黒鍵において押鍵する指が接触する範囲を二点鎖線の矩形の領域ＡＲ（０）、ＡＲ（１）、ＡＲ（２）、ＡＲ（３）…で示している。これらの領域は、撮像素子の画素によって位置の座標が確定されるので、各領域における１つの座標、例えば、左下の座標を基準にすると、すべての領域ＡＲ（０）〜ＡＲ（１２７）における画素の座標を確定することができる。
図１７は、変数ｊ，ｋで指定される画素（ｊ，ｋ）に基づく矩形の範囲を示す図である。この図に示すように、ｘ（水平）方向がαでｙ（垂直）方向がβの範囲が画像処理の対象となる領域であり、この領域の画素数は（α＋１）×（β＋１）である。
【００４２】
図１８ないし図２０は、画像処理のフローチャートである。この画像処理においては、右手の親指、人差し指、中指、薬指、小指の各画像であるＦＩＧ（０）、ＦＩＧ（１）、ＦＩＧ（２）、ＦＩＧ（３）、ＦＩＧ（４）、および、左手の親指、人差し指、中指、薬指、小指の各画像であるＦＩＧ（５）、ＦＩＧ（６）、ＦＩＧ（７）、ＦＩＧ（８）、ＦＩＧ（９）において、爪に貼付された各シールにおける青、緑、赤の３原色の値として、あらかじめ登録されたＢＦＩＧ、ＧＦＩＧ、ＲＦＩＧの画像データと、カメラ５によって撮像された図２の画像の各画素のデータとを比較する。
【００４３】
図１８において、まず、押鍵された鍵番号であるＫＥＹの値に対応する領域の基準座標であるｘ（ＫＥＹ）をｊとし、ｙ（ＫＥＹ）をｋとする（ステップＳＥ１）。すなわち、ＡＲ（ＫＥＹ）の領域を特定する。次に、押鍵した指番号をストアするＦＩＧＰに−１をストアし、この画像処理によって各指に対応する画素をカウントするカウンタＣＮＴ（０）〜ＣＮＴ（４）を０にクリアする（ステップＳＥ２）。次に、変数ｊ，ｋで指定される画素（ｊ，ｋ）をＩＭＧにストアして（ステップＳＥ３）、ＩＭＧの青成分、緑成分、および赤成分と基準の青成分、緑成分、および赤成分とのそれぞれの差の絶対値を算出する。
【００４４】
すなわち、ＢＶＡＬＵＥとＢＲＥＦとの差の絶対値をＤＢにストアし（ステップＳＥ４）、ＧＶＡＬＵＥとＧＲＥＦとの差の絶対値をＤＧにストアし（ステップＳＥ５）、ＲＶＡＬＵＥとＲＲＥＦとの差の絶対値をＤＲにストアする（ステップＳＥ６）。次に、ＤＢ、ＤＧ、ＤＲの値のいずれかが所定値以下であるか否かを判別する（ステップＳＥ７）。ＩＭＧの青成分、緑成分、又は赤成分と、基準の青成分、緑成分、又は赤成分との差が所定値以下である場合には、ＩＭＧの画素は爪に貼付されたシールの画素の可能性がある。一方、ＤＢ、ＤＧ、ＤＲの値のすべてが所定値を超えている場合には、ＩＭＧの画素はシールの画素ではない。
【００４５】
ステップＳＥ７において、ＤＢ、ＤＧ、ＤＲの値のすべてが所定値を超えている場合には、ｊの値を１つインクリメントする（ステップＳＥ８）。このとき、ｊの値がαの値を超えているか否かを判別し（ステップＳＥ９）、αの値を超えているときは、ｊの値を０にセットして、ｋの値を１つインクリメントする（ステップＳＥ１０）。このとき、ｋの値がβの値を超えているか否かを判別する（ステップＳＥ１１）。ステップＳＥ９においてｊの値がαの値を超えていない場合、又は、ステップＳＥ１１においてｋの値がβの値を超えていない場合には、ＡＲ（ＫＥＹ）の領域において未処理の画素が残っているので、ステップＳＥ３に移行してｊ，ｋで指定される画素（ｊ，ｋ）をＩＭＧにストアして、上記のループ処理を繰り返し、その画素の色を判定する。
【００４６】
ステップＳＥ７において、ＤＢ、ＤＧ、ＤＲの値のいずれかが所定値以下である場合には、図１９のフローにおいて、変数ｉを０にセットして（ステップＳＥ１２）、あらかじめ登録されている各指に貼付されたシールの色データの中から、ｉで指定する指のシールの色データであるＦＩＧＣ（ｉ）の青成分ＢＦＩＧ、緑成分ＧＦＩＧ、赤成分ＲＦＩＧを読出し（ステップＳＥ１３）、ＩＭＧの画素（ｊ，ｋ）の青成分ＢＶＡＬＵＥ、緑成分ＧＶＡＬＵＥ、赤成分ＲＶＡＬＵＥとの差の絶対値を算出する。
すなわち、ＢＶＡＬＵＥとＢＦＩＧとの差の絶対値をＪＢにストアし（ステップＳＥ１４）、ＧＶＡＬＵＥとＧＦＩＧとの差の絶対値をＪＧにストアし（ステップＳＥ１５）、ＲＶＡＬＵＥとＲＦＩＧとの差の絶対値をＪＲにストアする（ステップＳＥ１６）。
【００４７】
そして、ＪＢ、ＪＧ、ＪＲのすべてが基準値であるか否かを判別する（ステップＳＥ１７）。ＪＢ、ＪＧ、ＪＲのすべてが基準値である場合には、画素（ｊ，ｋ）は指番号ｉの色データＦＩＧＣ（ｉ）と一致する。この場合には、ＣＮＴ（ｉ）の値を１つインクリメントする（ステップＳＥ１８）。この後、又は、ステップＳＥ１７においてＪＢ、ＪＧ、ＪＲのすべてが基準値でなく、画素（ｊ，ｋ）が指番号ｉの色データＦＩＧＣ（ｉ）と一致しない場合には、ｉの値を１つインクリメントする（ステップＳＥ１９）。このとき、ｉの値が４を超えたか否かを判別し（ステップＳＥ２０）、ｉの値が４以下である場合には、ステップＳＥ１３に移行して、次の指番号ｉで指定するＦＩＧＣ（ｉ）のＢＦＩＧ、ＧＦＩＧ、ＲＦＩＧを読出し、上記の色判別処理を繰り返す。そして、ステップＳＥ２０においてｉの値が４を超えたときは、図１８のフローのステップＳＥ８に移行して、次の画素を指定する。
【００４８】
図１８のステップＳＥ１１において、ｋの値がβの値を超えた場合、すなわち、押鍵された鍵番号の領域ＡＲ（ＫＥＹ）におけるすべての画素について色判別処理が終了したときは、図２０のフローにおいて、指番号を指定する２つの変数ｉ，ｄをともに０にセットし（ステップＳＥ２１）、押鍵の指を示すＦＩＧＰにｄの値をストアする（ステップＳＥ２２）。したがって、最初はＦＩＧＰの値は０であり、親指が押鍵の指として仮に設定される。次に、ｉの値を１つインクリメントし（ステップＳＥ２３）、ｉの値が４以下であるか否かを判別する（ステップＳＥ２４）。
【００４９】
ｉの値が４以下である場合には、ＣＮＴ（ｉ）の値がＣＮＴ（ｄ）の値よりも大きいか否かを判別する（ステップＳＥ２５）。すなわち、押鍵された鍵番号の領域ＡＲ（ＫＥＹ）において、ｉで指定する指のシールの画素数がｄで指定する指のシールの画素数よりも大きいか否かを判別する。ＣＮＴ（ｉ）の値がＣＮＴ（ｄ）の値よりも大きい場合には、押鍵した指の可能性は、ｄで指定した指よりもｉで指定した指の方が高い。この場合には、ｄにｉの値をセットして（ステップＳＥ２６）、ステップＳＥ２２に移行して、ＦＩＧＰにストアする指番号ｄの値を変更する。そして、ステップＳＥ２３に移行して、ｉの値を１つインクリメントする。一方、ステップＳＥ２５において、ＣＮＴ（ｉ）の値がＣＮＴ（ｄ）の値よりも小さい場合には、押鍵した指の可能性は、ｉで指定した指よりもｄで指定した指の方が高い。この場合には、ＦＩＧＰにストアする指番号を変更することなく、ステップＳＥ２３に移行して、ｉの値を１つインクリメントする。そして、ｉの値が４を超えるまでＣＮＴ（ｉ）の値とＣＮＴ（ｄ）の値とを比較しながら、押鍵した可能性がより高い指を捜す。
【００５０】
ｉの値が４を超えたときは、押鍵の指が暫定的に判定されるが、指くぐりや指越えによって親指がカメラ５から見えない場合もある。例えば、演奏練習前のウォーミングアップや初心者の基礎練習で音階を演奏する際には、低音から高音への１オクターブの演奏では「ドレミファソラシド」のファの鍵を指くぐりの親指で押鍵し、高音から低音への１オクターブの演奏では「ドシラソファミレド」のミの鍵を指越えの中指で押鍵する。このため、指くぐり又は指越えの演奏であるかを判定しなければ、押鍵の指を確定的に判定することができない。
【００５１】
したがって、ステップＳＥ２４においてｉの値が４を超えたときは、ＦＩＧＰの暫定的な指番号が０でないか否かを判別する（ステップＳＥ２７）。暫定的な指番号が０である場合には、カメラ５によって親指のシールが撮像されているので、指くぐりおよび指越えの演奏ではないので、暫定的に判定した親指は実際の押鍵の指として確定する。一方、ＦＩＧＰの暫定的な指番号が０でない場合には、押鍵された鍵番号を中心とする所定範囲、例えば、手の幅に相当する範囲に、親指が無いか否かを判別する（ステップＳＥ２８）。親指がある場合には、暫定的に判定した人差し指、中指、薬指、又は小指は実際の押鍵の指として確定する。
【００５２】
所定範囲に親指が無い場合には、親指くぐり又は親指越えの演奏の可能性があるので、前回の押鍵の指を示すＦＰＲＥＶの値が０でないか否かを判別する（ステップＳＥ２９）。親指で押鍵した後に親指くぐりので押鍵することはないので、ＦＰＲＥＶの値が０でない場合には、押鍵した指は親指であるので、ＦＩＧＰに０をストアする（ステップＳＥ３０）。ＦＰＲＥＶの値が０で前回の押鍵が親指である場合には、今回の押鍵は親指以外の他の指である。すなわち、暫定的な指番号が押鍵の指番号として確定される。指番号を確定した後は、その確定したＦＩＧＰの指番号をＦＰＲＥＶにストアして（ステップＳＥ３１）、このフローチャートを終了する。
【００５３】
図２１は、図１２のＭＩＤＩ・ＩＮのフローにおけるステップＳＣ４の離鍵処理のフローチャートである。まず、押鍵の鍵番号をＫＥＹにストアし（ステップＳＦ１）、ＫＥＹで指定される演奏データの離鍵開始時間ＯＮＴＩＭＥ（ＫＥＹ）に現時刻をストアする（ステップＳＦ２）。次に、図６のＰＬＢＵＦのエリアを指定するポインタｐｑを０にセットして（ステップＳＦ３）、ｐｑの値をインクリメントしながら、離鍵された鍵番号に対応する押鍵の演奏データを捜す。ｐｑで指定するＰＬＢＵＦ（ｐｑ）がＮＵＬＬであるか否かを判別し（ステップＳＦ４）、ＰＬＢＵＦ（ｐｑ）がＮＵＬＬでない場合には、ＰＬＢＵＦ（ｐｑ）におけるｐｐによってＰＬＡＹ（ｐｐ）を指定する（ステップＳＦ５）。そして、ＰＬＡＹ（ｐｐ）の鍵番号とＫＥＹの鍵番号とが一致するか否かを判別する（ステップＳＦ６）。これらの鍵番号が一致しない場合には、ｐｑの値を１つインクリメントして（ステップＳＦ７）、ステップＳＦ４において、新たなｐｑで指定するＰＬＢＵＦ（ｐｑ）がＮＵＬＬであるか否かを判別する。
【００５４】
ステップＳＦ６においてＰＬＡＹ（ｐｐ）の鍵番号とＫＥＹの鍵番号とが一致した場合には、ＰＬＡＹ（ｐｐ）の押鍵開始時間ＯＮＴＩＭＥ（ｐｐ）に離鍵開始時間ＯＮＴＩＭＥ（ＫＥＹ）を加算した時間をＰＬＡＹ（ｐｐ）の発音継続時間（音長）としてストアする（ステップＳＦ８）。そして、メインルーチンに戻る。ステップＳＦ４において、ＰＬＢＵＦ（ｐｑ）がＮＵＬＬである場合には、離鍵された鍵番号に対応する押鍵の演奏データがＰＬＢＵＦのすべてのエリアに存在しないので、メインルーチンに戻る。
【００５５】
上記した演奏データ作成処理によって作成された楽曲の演奏データは、不揮発性メモリ１８に演奏練習用の曲データとして保存される。図２２は、不揮発性メモリ１８に記憶されている曲データを示すフォーマットである。この図に示すように、曲データは、ＮＯＴＥ（０）、ＮＯＴＥ（１）、ＮＯＴＥ（３）…、および、曲の終了を示すＮＵＬＬからなる複数のイベントのシーケンスデータで構成されている。各イベントは、発音開始時間を示すＯＮＴＩＭＥ、発音継続時間（音長）を示すＧＡＴＥ、音高を示すＰＩＴＣＨ、指番号を示すＦＩＧＯ、手の位置を示すＰＸＯおよびＰＹＯ、手の傾きを示すＧＤＯ、手の幅を示すＷＤＯ、生徒側への送信時に付加される正誤判定に用いるフラグを示すＭＫ、前回のイベントを示すポインタであるｐｒ、次のイベントを示すポインタであるｐｎで構成されている。ＦＩＧＯの番号は、右手の親指、人差し指、中指、薬指、小指がそれぞれ０，１，２，３，４で指定され、左手の親指、人差し指、中指、薬指、小指がそれぞれ５，６，７，８，９で指定される。
【００５６】
図２３は、ＲＡＭ１３のバッファエリアＯＮＢＵＦ（０）、ＯＮＢＵＦ（１）、ＯＮＢＵＦ（３）…の構成を示し、各バッファエリアには、スイッチ部１４からの再生指令に応じて、不揮発性メモリ１８から読込まれた図２２のイベントのうち、電子楽器１に出力される発音開始時間を示すＯＮＴＩＭＥ、音高を示すＰＩＴＣＨの値とともに、演算で算出される消音時間を示すＯＦＦＴＩＭＥおよび対応する図２２のイベントＮＯＴＥを示すポインタであるｐｓがストアされる。
【００５７】
図２４は、曲データの再生に伴って表示部１５に出力される表示される演奏ガイドの画面を示す図である。不揮発性メモリ１８から読込まれた図２２のイベントのうち、音高を示すＰＩＴＣＨ、指番号を示すＦＩＧＯ、手の位置を示すＰＸＯおよびＰＹＯ、手の傾きを示すＧＤＯ、手の幅を示すＷＤＯに対応する画像が表示される。すなわち、再生中の曲データの楽譜２１、現在の音符の直後に表示される進行マーク２２、鍵盤画像２３、現在の音符に対応する鍵の位置２４、手の位置２５、現在の音符に対応する鍵を押鍵する指を示す運指マーク２６が示される。このほか、カメラ５の位置を設定するためのアイコン２８、指の色を設定するためのアイコン２８、および、曲の再生、停止、一時停止などを指示するためのアイコン２９が表示される。
【００５８】
図２２に示した不揮発性メモリ１８の曲データは、インターネットなどのネットワークを介して生徒のパソコンに送信されるが、送信する前に、教師又は管理側において、作成された演奏練習用の曲データが適切であるかどうかを検証することも必要な場合がある。図２５は、検証するための再生処理を行うためのメインルーチンのフローチャートであると同時に、生徒のパソコンで実行される演奏練習のメインルーチンのフローチャートでもある。すなわち、生徒側のパソコンにおいて実行される演奏練習の適正が図２５のフローでシミュレーションされる。
【００５９】
まず、種々の変数の初期化（ステップＳＧ１）の後、検知データ設定処理を行う（ステップＳＧ２）。そして、不揮発性メモリ１８に保存された曲データの読込みを行う（ステップＳＧ３）。次に、スイッチ部１４から終了指令が入力されたか否かを判別する（ステップＳＧ４）。終了指令が入力されたときは、このフローを終了して、パソコンの初期メニューに戻る。終了指令が入力されない場合には、再生指令が入力されたか否かを判別し（ステップＳＧ５）、再生指令が入力されたときは、再生処理を実行する（ステップＳＧ６）。この後は、再生停止指令が入力されたか否かを判別し（ステップＳＧ７）、再生停止指令が入力されない場合は再生処理処理を続行する。再生停止指令が入力されたときは、曲選択指令が入力されたか否かを判別し（ステップＳＧ８）、曲選択指令が入力されたときは、ステップＳＧ３において新たな曲データを読込む。ステップＳＧ５において再生指令が入力されない場合、又は、ステップＳＧ８において曲選択指令が入力されない場合は、ステップＳＧ４に移行して終了指令が入力されたか否かを判別する。
【００６０】
図２６は、図２５におけるステップＳＧ６の再生処理のフローチャートである。まず、変数を初期化する（ステップＳＨ１）。次に、ＭＩＤＩ・Ｉ／Ｆ１６を介して電子楽器１に出力して演奏をガイドするために、図６のエリアにストアされているイベントのポインタｐｓを変数ｎにセットする（ステップＳＨ２）。そして、ステップＳＨ４からステップＳＨ１１までのループ処理を実行する。
すなわち、図５に示したＲＯＭ１２の曲データにおいて、ＮＯＴＥ（ｎ）がＮＵＬＬすなわち曲の終了であるか否かを判別し（ステップＳＨ４）、ＮＯＴＥ（ｎ）がＮＵＬＬでない場合には、ＮＯＷＴＩＭＥに経過時間を加算する（ステップＳＨ５）。すなわち、曲再生開始からの時刻であるリアルタイムでＮＯＷＴＩＭＥを更新する。実際には、曲再生開始からのクロック数によってリアルタイムを表わすが、説明を分かり易くするために時刻を用いることにする。この後、ノートオン処理（ステップＳＨ６）、ノートオフ処理（ステップＳＨ７）、表示処理（ステップＳＨ８）を行う。次に、ＮＯＷＴＩＭＥの時刻をＬＡＳＴＴＩＭＥにストアして（ステップＳＨ９）、ｎの値を次のイベントのポインタｐｎに変更する（ステップＳＨ１０）。そして、ステップＳＨ４に移行して上記ループ処理を繰り返す。
【００６１】
ステップＳＨ４においてＮＯＴＥ（ｎ）がＮＵＬＬである場合には、ＯＮＢＵＦ（０）がＮＵＬＬであるか否かを判別する（ステップＳＨ１１）。ＯＮＢＵＦ（０）がＮＵＬＬでない場合には、ステップＳＨ５においてＮＯＷＴＩＭＥに経過時間を加算する。一方、ＯＮＢＵＦ（０）がＮＵＬＬである場合には、電子楽器１に出力するイベントが残っていないので、メインルーチンに戻る。
【００６２】
図２７は、図２６におけるステップＳＨ６のノートオン処理のフローチャートである。この処理においては、不揮発性メモリ１８の曲データをＲＡＭ１３のバッファエリアにストアする。まず、変数ｎのイベントＮＯＴＥ（ｎ）がＮＵＬＬであるか否かを判別し（ステップＳＪ１）、ＮＯＴＥ（ｎ）がＮＵＬＬである場合にはこのフローを終了するが、ＮＵＬＬでない場合には、ＮＯＷＴＩＭＥの時刻がＯＮＴＩＭＥの発音開始時間に達したか否かを判別する（ステップＳＪ２）。まだ発音開始時間に達していない場合はこのフローを終了するが、発音開始時間に達したときは、ＯＮＢＵＦの空きエリアを捜すために、エリアを指定する変数ｉを０にセットし（ステップＳＪ３）、ｉの値をインクリメントしながら以下のループ処理を実行する。
【００６３】
ＯＮＢＵＦ（ｉ）がＮＵＬＬであるか否かを判別し（ステップＳＪ４）、ＯＮＢＵＦ（ｉ）がＮＵＬＬでない場合には、ｉの値を１つインクリメントする（ステップＳＪ５）。このとき、ｉの値が最大値ｉＭＡＸを超えたか否かを判別し（ステップＳＪ６）、ｉの値が最大値以内である場合には、ステップＳＪ４においてＯＮＢＵＦ（ｉ）がＮＵＬＬであるか否かを判別する。ＯＮＢＵＦ（ｉ）がＮＵＬＬである場合には、ＮＯＴＥ（ｎ）の発音開始時間ＯＮＴＩＭＥ、音高ＰＩＴＣＨ、ポインタｐｓをＯＮＢＵＦ（ｉ）にストアする（ステップＳＪ７）。そして、ＯＮＢＵＦ（ｉ）のＯＮＴＩＭＥ、ＰＩＴＣＨを電子楽器１に出力する（ステップＳＪ９）。次に、ＮＯＴＥ（ｎ）のＯＮＴＩＭＥ、ＰＩＴＣＨ、ＦＩＧＯ、ＰＸＯ、ＰＹＯ、ＧＤＯ、ＷＤＯに対応する画像データを生成して表示部１５に出力する。そして、変数ｎに次のイベントを示すポインタｐｎをストアする（ステップＳＪ１０）。そして、図２６のフローに戻り、ステップＳＨ７のノートオフ処理に移行する。
【００６４】
図２８は、ステップＳＨ７のノートオフ処理のフローチャートである。まず、ＲＡＭ１３のＯＮＢＵＦのエリアを指定する変数ｉを０にセットし（ステップＳＫ１）、ｉの値をインクリメントしながら以下のループ処理を実行する。ＯＮＢＵＦ（ｉ）がＮＵＬＬであるか否かを判別する（ステップＳＫ２）。ＯＮＢＵＦ（ｉ）がＮＵＬＬでない場合には、ＮＯＷＴＩＭＥの時刻がＯＦＦＴＩＭＥの消音時間に達したか否かを判別する（ステップＳＫ３）。ＯＮＢＵＦ（ｉ）がＮＵＬＬである場合、又は、ＮＯＷＴＩＭＥの時刻がＯＦＦＴＩＭＥの消音時間に達していない場合には、ｉの値を１つインクリメントする（ステップＳＫ４）。このとき、ｉの値が最大値ｉＭＡＸを超えたか否かを判別し（ステップＳＫ５）、ｉの値が最大値以内である場合には、ステップＳＫ２においてＯＮＢＵＦ（ｉ）がＮＵＬＬであるか否かを判別する。
【００６５】
ＮＯＷＴＩＭＥの時刻がＯＦＦＴＩＭＥの消音時間に達したときは、ＯＮＢＵＦ（ｉ）のＰＩＴＣＨおよび消音指令のＭＩＤＩデータを電子楽器１に出力する（ステップＳＫ６）。次に、ＯＮＢＵＦ（ｉ＋１）のデータをＯＮＢＵＦ（ｉ）のエリアに上書きして更新する（ステップＳＫ７）。そして、ｉの値をインクリメントして（ステップＳＫ８）、ＯＮＢＵＦ（ｉ＋１）がＮＵＬＬであるか否かを判別する（ステップＳＫ９）。ＯＮＢＵＦ（ｉ＋１）がＮＵＬＬでない場合には、ステップＳＫ７〜ステップＳＫ９のループ処理を繰り返し、ＯＮＢＵＦ（ｉ＋１）のデータを順次ＯＮＢＵＦ（ｉ）のエリアに上書きする。ステップＳＫ９において、ＯＮＢＵＦ（ｉ＋１）がＮＵＬＬである場合には、バッファのエリアの上書きがすべて終了したので、図２６のフローに戻り、ステップＳＨ８の表示処理に移行する。
【００６６】
この再生処理において、模範演奏として作成した曲データを再生して電子楽器１で演奏した結果、演奏練習として適切でない部分は修正される。図２９および図３０は、データ修正のフローチャートであり、図３１は、データ修正処理における表示部１５の画面を示す図である。図２９において、まず、表示部１５に補正画面を表示して（ステップＳＬ１）、現在の設定データの読込みを行う（ステップＳＬ２）。次に、修正項目が指定されたか否かを判別する（ステップＳＬ３）。例えば、図３１に示すように、表示された楽譜３１において修正対象として点線で囲まれた音符３２のデータを修正する場合には、鍵盤の画像３３、手の画像３４とともに、手の位置、手の傾き、手の幅をそれぞれ修正するための複数のアイコン３５を表示し、読込んだ補正対象のデータをＲＡＭ１３のエリアＮＯＴＥ（ｉ）にストアする。ＮＯＴＥ（ｉ）のエリアは、指を指定するＦＩＧＯ（ｉ）、手の位置を指定するＰＸＯ（ｉ）およびＰＹＯ（ｉ）、手の傾きを指定するＧＤＯ（ｉ）、手の幅を指定するＷＤＯ（ｉ）の項目別エリアで構成されている。また、修正したデータを不揮発性メモリ１８に保存するための確定のアイコン３６を表示する。
【００６７】
項目別エリアの指定によって設定項目が指定されたときは、設定値が入力されたか否かを判別する（ステップＳＬ４）。設定値が入力されたときは、指定された項目に応じた処理を行う。ＦＩＧＯ（ｉ）が指定されたか否かを判別し（ステップＳＬ５）、この項目が指定されたときは、入力された設定値をＦＩＧＯ（ｉ）にストアする（ステップＳＬ６）。ＰＸＯ（ｉ）が指定されたか否かを判別し（ステップＳＬ７）、この項目が指定されたときは、入力された設定値をＰＸＯ（ｉ）にストアする（ステップＳＬ８）。ＰＹＯ（ｉ）が指定されたか否かを判別し（ステップＳＬ９）、この項目が指定されたときは、入力された設定値をＰＹＯ（ｉ）にストアする（ステップＳＬ１０）。図３０において、ＧＤＯ（ｉ）が指定されたか否かを判別し（ステップＳＬ１１）、この項目が指定されたときは、入力された設定値をＧＤＯ（ｉ）にストアする（ステップＳＬ１２）。ＷＤＯ（ｉ）が指定されたか否かを判別し（ステップＳＬ１３）、この項目が指定されたときは、入力された設定値をＷＤＯ（ｉ）にストアする（ステップＳＬ１４）。
【００６８】
何らかのデータ修正がされたときは、図３１の画面において表示画像を変更する（ステップＳＬ１５）。この後、アイコン３６によって修正されたデータを確定するか否かを判別し（ステップＳＬ１６）、確定されない場合には、図２９のステップＳＬ３に移行して次の修正項目が指定されたか否かを判別する。次の修正項目が指定され、ステップＳＬ４において設定値が入力されるたびに、ステップＳＬ５ないしステップＳＬ１５の処理を繰り返す。ステップＳＬ３において修正項目が指定されない場合、又は、ステップＳＬ４において設定値が入力されない場合には、ステップＳＬ１６においてデータを確定するか否かを判別する。アイコン３６の選択によって修正データが確定されたときは、ＮＯＴＥ（ｉ）のデータを不揮発性メモリ１６に保存して（ステップＳＬ１７）、メインルーチンに戻る。
【００６９】
以上のように、上記実施形態によれば、パソコン１は、電子楽器１で演奏された楽曲の演奏データを入力し、カメラ５は、電子楽器１の鍵盤１の画像２ｉおよび鍵盤２を演奏中の右手の画像７ｉおよび左手の画像８ｉを撮像する。ＣＰＵ１１は、楽曲に対する演奏練習用の曲データを作成する際に、入力された演奏データ並びにカメラ５によって撮像された鍵盤の画像２ｉ、演奏中の右手および左手の画像７ｉおよび８ｉに基づいて、表示部１５に表示して演奏する手の動きを練習するための画像データを含めて作成する。
したがって、ネットワークを利用した遠隔の音楽教育やその他の音楽教育に利用する演奏練習用のデータを作成する場合に、楽譜データだけでなく演奏する手の位置や手の傾きなどの画像データを含めて、きめ細かな音楽教育を実現できる。
【００７０】
この場合において、ＣＰＵ１１は、鍵盤２の画像２ｉおよび手の画像７ｉ、８ｉに基づいて手の位置および傾きを検出することによって、演奏練習用の画像データを作成する。この場合において、ＣＰＵ１１は、手の甲の５箇所に貼付された異なる色彩のシールに基づいて手の位置および傾きを検出する。
したがって、演奏中の微妙な手の動きを画像でガイドすることによって、きめ細かな音楽教育を実現できる。
また、ＣＰＵ１１は、各指先に施された異なる色彩のシールを検出することによって、演奏練習用の運指の画像データを作成する。
したがって、正確な運指を画像でガイドすることによって、きめ細かな音楽教育を実現できる。
【００７１】
ＣＰＵ１１は、作成した演奏練習用の画像データが表示部１５に表示された場合において、スイッチ部１４から入力された修正データに応じて、その画像データを修正する。
したがって、作成した演奏練習用の画像データを固定化することなく、教師と生徒との間のコミュニケーションや優れた教師を確保することで、作成した演奏練習用の画像データを修正して、より優れた教材データを生徒に提供することができる。
【００７２】
なお、上記実施形態においては、パソコン６と接続する鍵盤装置として、電子楽器１を例に採って本発明の演奏データ作成システムを説明したが、本発明の演奏データ作成システムに使用する鍵盤装置は電子楽器１に限定するものではない。例えば、外部音源と接続して楽音を発音するキーボード装置をパソコン６と接続することも可能である。
【００７３】
上記実施形態においては、手の爪に異なる色彩のシールを貼付することによって、シールの画像とそれ以外の画像とを識別して、演奏する指を判定する構成にしたが、実施形態の変形例として、手の爪にシールを貼付しない構成について説明する。
図３２は、カメラ５で撮像された右手の画像と、その画像に対して上下位置ｙを変えながら、ｘ方向にスキャンした信号を示す図である。なお、左手の画像は、右手の画像と対称になることと、指番号が異なるだけであるので、説明および図面は省略する。
【００７４】
図３２（Ａ）に示すように、親指くぐりや親指越えがない場合には、手が存在する部分を「１」存在しない部分を「０」に２値化した信号は、ｙ１の位置では指の画像がないＭＯＤＥ＝０のパターンになる。ｙ２の位置になると、親指（０）の画像のみが現れ、他の指の画像はまだ現れないＭＯＤＥ＝１のパターンになる。ｙ３の位置になると、親指の画像はなくなり、人差し指（１）、中指（２）、薬指（３）、小指（４）の画像が現れるＭＯＤＥ＝３のパターンになる。ここで、１又は０に２値化した信号における親指（０）、人差し指（１）、中指（２）、薬指（３）、小指（４）の画像信号を、ＦＩＧ（０）、ＦＩＧ（１）、ＦＩＧ（２）、ＦＩＧ（３）、ＦＩＧ（４）と定義する。
【００７５】
一方、図３２（Ｂ）に示すように、親指くぐりや親指越えがある場合には、ｙ１の位置では、図３２（Ａ）の場合と同じように、指の画像がないＭＯＤＥ＝０のパターンになるが、ｙ２の位置においては、図３２（Ａ）の場合と異なり、指の画像がないＭＯＤＥ＝０のパターンになる。そして、ｙ３の位置になると、再び図３２（Ａ）の場合と同じように、親指の画像はなくなり、人差し指（１）、中指（２）、薬指（３）、小指（４）の画像が現れるＭＯＤＥ＝３のパターンになる。
【００７６】
この変形例では、上記の実施形態における図１４の画像処理（ステップＳＤ２２）が異なり、他の処理については実施形態と同じである。図３３ないし図３５は、変形例における画像処理のフローチャートである。
図３３において、まず、押鍵された鍵の座標であるｘ（ＫＥＹ）を変数ｊにストアし、ｙ（ＫＥＹ）を変数ｋにストアする（ステップＳＭ１）。次に、鍵盤の画像を消去する（ステップＳＭ２）。実際には、ＲＡＭ１３に鍵盤の画像のエリア、手の画像のエリア、座標のエリアを設けて、図１８に示したように、各白鍵および各黒鍵において押鍵する指が接触する範囲の領域ＡＲ（０）、ＡＲ（１）、ＡＲ（２）、ＡＲ（３）…を確定した後は、鍵盤の画像のエリアを消去するか、又は画像処理の対象から外す。
【００７７】
次に、上下方向の位置であるｙの値をｙ１にセットして（ステップＳＭ３）、その位置でスキャンした信号のパターンがＭＯＤＥ＝０であるか否かを判別する（ステップＳＭ４）。信号のパターンがＭＯＤＥ＝０でない場合には、鍵盤上に手がない状態であるのでこのフローを終了するが、信号のパターンがＭＯＤＥ＝０の場合には、ｙの値を所定値であるΔだけインクリメントする（ステップＳＭ５）。Δの値は実像における数ミリ程度、例えば、５ミリとする。次に、その位置でスキャンした信号のパターンがＭＯＤＥ＝０からＭＯＤＥ＝１に変化したか否かを判別する（ステップＳＭ６）。
【００７８】
信号のパターンがＭＯＤＥ＝１に変化したときは、さらにｙの値をΔだけインクリメントする（ステップＳＭ７）。そして、その位置でスキャンした信号のパターンにおいて、ＦＩＧ（０）が１から０に変化したか否かを判別する（ステップＳＭ８）。すなわち、親指の画像が消えたか否かを判別する。ＦＩＧ（０）が０に変化したときは、ｙの値をΔだけデクリメントして（ステップＳＭ９）、親指の画像が存在する位置まで戻る。そして、ＦＩＧ（０）の位置を取得する（ステップＳＭ１０）。具体的には、図３２（Ｃ）に示すように、親指の画像の左端および右端のｘ座標であるｘ１およびｘ２を検出して、中点の座標ｘ＝（ｘ１＋ｘ２）／２の演算式で求めて、ＦＩＧ（０）の座標Ｐ０（ｘ、ｙ）を取得する。
【００７９】
次に、再びｙの値をΔだけインクリメントして（ステップＳＭ１１）、その位置でスキャンした信号のパターンがＭＯＤＥ＝３に変化したか否かを判別する（ステップＬ１２）。ＭＯＤＥ＝３に変化しない場合には、ステップＳＭ１１においてさらにｙの値をΔだけインクリメントする。すなわち、親指以外の４本の指の画像が現れる状態、すなわち、ＦＩＧ（１）＝ＦＩＧ（２）＝ＦＩＧ（３）＝ＦＩＧ（４）＝１の信号のパターンになるまでｙの値をインクリメントする。
【００８０】
ステップＳＭ５におけるｙの値のインクリメントによって、ステップＳＭ６でＭＯＤＥ＝１に変化しない場合には、ＭＯＤＥ＝２に変化したか否かを判別する（ステップＳＭ１３）。ＭＯＤＥ＝２に変化しない場合、すなわち、ＭＯＤＥ＝０の状態が続いている場合には、ステップＳＭ５におけるｙの値のインクリメントを繰り返す。ステップＳＭ１３においてＭＯＤＥ＝２に変化した場合、すなわち、ステップＳＭ５におけるｙの値のインクリメントによって、ＭＯＤＥ＝０からＭＯＤＥ＝１を経ることなくＭＯＤＥ＝２に変化した場合は、図３２（Ｂ）に示した親指くぐり又は親指越えの場合である。
【００８１】
この場合には、親指くぐりでの親指による押鍵であるか、又は親指越えでの中指による押鍵であるかを判別する必要がある。したがって、上記の実施形態の場合と同様に、前回の押鍵の指番号であるＦＰＲＥＶが０（親指）でないか否かを判別して（ステップＳＭ１４ａ）、ＦＰＲＥＶが０でない場合には、ＦＩＧＰに０をストアする（ステップＳＭ１４ｂ）。すなわち、前回の押鍵が親指でない場合には、図３２（Ｂ）に示した画像は親指くぐりであるので、今回の押鍵の指番号を０（親指）とする。ＦＩＧＰに０をストアした後は、このフローを終了して判定処理に移行する。
【００８２】
ステップＳＭ１２においてＭＯＤＥ＝２に変化した場合、又は、ステップＳＭ２４ａにおいてＦＰＲＥＶが０である場合には、図３４のフローにおいて、人差し指、中指、薬指、小指の信号ＦＩＧ（１）、ＦＩＧ（２）、ＦＩＧ（３）、ＦＩＧ（４）が１であるか０であるかを判別するフラグｆ（１）、ｆ（２）、ｆ（３）、ｆ（４）をすべて１にセットし、指の画像の数を示す変数Ｍを４にセットする（ステップＳＭ１５）。次に、指を指定する変数ｉを１にセットして（ステップＳＭ１６）、ｙの値をΔだけインクリメントする（ステップＳＭ１７）。次に、指（ｉ）に対応するｆ（ｉ）が１であるか否かを判別する（ステップＳＭ１８）。ｆ（ｉ）が１である場合には、信号ＦＩＧ（ｉ）＝０であるか否かを判別する（ステップＳＭ１９）。図３２（Ａ）、（Ｂ）に示すように、信号のパターンがＭＯＤＥ＝２になった最初は、人差し指、中指、薬指、小指のすべてについて、信号ＦＩＧ（ｉ）＝１である。したがって、ｉの値を１つインクリメントして（ステップＳＭ２０）、ｉの値が４を超えたか否かを判別する（ステップＳＭ２１）。ｉの値が４以下である場合には、ステップＳＭ１８においてｆ（ｉ）が０であるか否かを判別する。ｉの値が４を超えた場合には、ステップＳＭ１６に移行して再びｉを１に戻して、ステップＳＭ１７以下の処理を繰り返す。
【００８３】
ｙの値をΔ単位でインクリメントしていった結果、ある指（ｉ）の信号ＦＩＧ（ｉ）＝０になったときは、ｆ（ｉ）を０にリセットして（ステップＳＭ２２）、ｙの値をΔだけデクリメントして（ステップＳＭ２３）、ＦＩＧ（ｉ）＝１の位置に戻る。そして、図３２（Ｃ）に示すように、その指の位置である座標Ｐｉ（ｘ、ｙ）を取得する（ステップＳＭ２４ａ）。次に、ｙの値をΔだけインクリメントして元の位置に戻る（ステップＳＭ２４ｂ）。この後、Ｍの値を１つデクリメントする（ステップＳＭ２５）。このとき、Ｍの値が０になったか否かを判別し（ステップＳＭ２６）、Ｍの値が１以上である場合には、ステップＳＭ２０に移行してｉの値を１つインクリメントする。
【００８４】
このように、ｙの値をΔだけインクリメントしながら、任意の指のＦＩＧ（ｉ）が１から０に変化する位置、すなわち、その指の先端部を検出するたびに、その指の座標Ｐｉ（ｘ、ｙ）を取得する。そして、１つの指の座標Ｐｉ（ｘ、ｙ）を取得するごとにＭの値をデクリメントする。ステップＳＭ２６においてＭの値が０になった場合、すなわち、人差し指、中指、薬指、小指のすべてについて座標Ｐｉ（ｘ、ｙ）（ｉ＝１〜４）を取得したときは、図３５のフローにおいて、ｉを０にセットして（ステップＳＭ２７）、ｉの値を変化させながら押鍵した指を検出する処理を行う。
【００８５】
すなわち、Ｐｉ（ｘ、ｙ）がＡＲ（ＫＥＹ）の位置であるか否かを判別し（ステップＳＭ２８）、Ｐｉ（ｘ、ｙ）がＡＲ（ＫＥＹ）とは異なる位置である場合には、ｉの値をインクリメントする（ステップＳＭ２９）。このとき、ｉの値が４を超えたか否かを判別する（ステップＳＭ３０）。ｉの値が４以下である場合には、ステップＳＭ２８においてＰｉ（ｘ、ｙ）がＡＲ（ＫＥＹ）の位置であるか否かを判別する。Ｐｉ（ｘ、ｙ）がＡＲ（ＫＥＹ）の位置である場合には、ＦＩＧＰにｉの値をストアする（ステップＳＭ３１）。そして、ＰＰＲＥＶにＦＩＧＰの値をストアして（ステップＳＭ３２）、このフローを終了してメインフローに戻る。ステップＳＭ３０においてｉの値が４を超えたときは、正常な演奏ではないので、ＦＩＧＰにＮＵＬＬをストアして（ステップＳＭ３３）、このフローを終了してメインフローに戻る。
【００８６】
以上のように、この変形例においては、ＣＰＵ１１は、各指にシールが貼付されない場合でも、鍵盤の画像および手の画像に基づいて、図３３ないし図３５の画像処理を行って、各鍵の位置および演奏中の各指の位置を検出することによって、演奏中の運指の画像処理を行うことができる。
【００８７】
さらに、上記実施形態においては、図２に示したように、右手および左手の甲において、中央、中指（根元）、手首、親指（根元）、小指（根元）に異なる色彩のシールを貼付して、手の位置、手の傾き、手の幅を検出する構成を説明したが、図３３ないし図３５のフローを応用して、シールを貼付しない場合でも、手の位置、手の傾き、手の幅を検出することができる。
【００８８】
例えば、図３２（Ａ）の場合において、ｙの値をΔだけインクリメントしたときに、ＭＯＤＥ＝０からＭＯＤＥ＝１に変化した場合には、ＭＯＤＥ＝１の信号において、手の甲に対応する信号の左右両端のｘ座標であるｘ１およびｘ２を取得し、その中点である（ｘ１＋ｘ２）／２のｘ座標とｙ座標によって手の中央の位置ＰＸおよびＰＹを検出できる。
【００８９】
さらに、ｙの値をΔだけデクリメントして、ＭＯＤＥ＝０に戻した場合において、ＭＯＤＥ＝０の信号における左端のｘ座標を取得すれば、親指（根元）の位置のｘ座標を検出できる。この後、ｙの値をインクリメントしていき、ＭＯＤＥ＝１の信号が変形したときは、そのときのｙの位置が手の甲と親指以外の４本の指との境界と見なせるので、信号における右端のｘ座標を取得すれば、小指（根元）の位置のｘ座標を検出できる。したがって、小指（根元）の位置のｘ座標から親指（根元）の位置のｘ座標を減算すれば、右手の幅ＷＤ（０）のデータが得られる。
【００９０】
さらに、ｙの値をインクリメントして、ＭＯＤＥ＝２の信号に変化したとき、中指の信号ＦＩＧ（２）における中心位置のｘ座標を図３２（Ｃ）によって算出すれば、中指（根元）の座標を検出できる。最後に、中指の先端における中心位置のｘ座標を図３２（Ｃ）によって算出すれば、中指の指先の位置のｘ座標を検出できる。上記実施形態においては、手首の位置と中指（根元）の位置によって手の傾きを算出したが、中指の根元の位置と中指の先端の位置によっても手の傾きを算出することができる。その算出方法は、図１１のステップＳＢ２１およびステップＳＢ２２の処理と同じである。すなわち、逆正接関数を用いた演算によって、この２つの位置の角度すなわち右手の傾きＧＤ（０）を検出できる。
【００９１】
上記実施形態においては、ＲＯＭ１２にあらかじめ記憶された演奏データ作成処理のプログラムをＣＰＵ１１が実行する装置の発明について説明したが、フレキシブルディスク（ＦＤ）、ＣＤ、ＭＤなどの記憶媒体に記録されている演奏データ作成処理のプログラムをパソコン６の不揮発性メモリ１８にインストールしたり、インターネットなどのネットワークからダウンロードした演奏データ作成処理のプログラムを不揮発性メモリ１８にインストールして、そのプログラムをパソコン６のＣＰＵ１１が実行することも可能である。この場合には、プログラムの発明やそのプログラムを記録した記録媒体の発明を実現できる。
【００９２】
すなわち、本発明による演奏データ作成処理のプログラムは、鍵盤装置で演奏された楽曲の演奏データを入力する第１のステップと、前記鍵盤装置の鍵盤の画像および当該鍵盤を演奏中の手の画像を所定の撮像手段によって撮像する第２のステップと、前記楽曲に対する演奏練習用の曲データを作成する際に、前記第１のステップによって入力された演奏データ並びに前記第２のステップによって撮像された鍵盤の画像および演奏中の手の画像に基づいて、所定の表示手段に表示して演奏する手の動きを練習するための画像データを含めて作成する第３のステップと、を実行する。
【００９３】
前記第３のステップは、前記鍵盤の画像および手の画像に基づいて手の位置および傾きを検出することによって演奏練習用の画像データを作成する。
前記第３のステップは、手の甲の複数箇所に施された異なる色彩に基づいて手の位置および傾きを検出する。
前記第３のステップは、各指先に施された異なる色彩を検出することによって演奏練習用の運指の画像データを作成する。
【００９４】
前記第３のステップによって作成された演奏練習用の画像データが前記表示手段に表示された場合において、所定の操作手段から入力された修正データに応じて当該画像データを修正する第４のステップをさらに有する。
【図面の簡単な説明】
【００９５】
【図１】本発明の実施形態における演奏データ作成システムの外観図。
【図２】図１の演奏データ作成システムにおける電子楽器の鍵盤の画像を示す図。
【図３】図１の演奏データ作成システムにおける電子楽器、パソコン、カメラの接続関係およびパソコンの内部構成を示すブロック図。
【図４】実施形態のＣＰＵの演奏データ作成処理におけるメインルーチンのフローチャート。
【図５】実施形態において電子楽器から入力されて演奏データをストアするＲＡＭのエリアを示す図。
【図６】実施形態において電子楽器から入力されて演奏データを一時的にストアするＲＡＭのエリアを示す図。
【図７】実施形態においてカメラによって撮像された１画面の画素をストアしたＲＡＭのエリアを示す図。
【図８】実施形態において手の甲に貼付された１０個のシールの色データをストアしたＲＡＭのエリアを示す図。
【図９】実施形態において両手の位置、傾き、幅のデータをストアしたＲＡＭのエリアを示す図。
【図１０】図４のメインルーチンにおける手の座標特定処理のフローチャート。
【図１１】図１０に続く手の座標特定処理のフローチャート。
【図１２】実施形態において電子楽器から演奏データが入力された場合のＭＩＤＩ・ＩＮ処理のフローチャート。
【図１３】図１２のＭＩＤＩ・ＩＮ処理における押鍵処理のフローチャート。
【図１４】図１３に続く押鍵処理のフローチャート。
【図１５】実施形態において演奏中の指が接触する鍵盤の領域を指定するデータをストアしたＲＡＭのエリアを示す図。
【図１６】図２における鍵盤の画像の一部を示す図。
【図１７】図１６における矩形の領域の１つの範囲を示す図。
【図１８】図１４の押鍵処理における画像処理のフローチャート。
【図１９】図１８に続く画像処理のフローチャート。
【図２０】図１９に続く画像処理のフローチャート。
【図２１】図１２における離鍵処理のフローチャート。
【図２２】実施形態において作成された曲データをストアした不揮発性メモリのエリアを示す図。
【図２３】実施形態において不揮発性メモリから読込まれた曲データをストアしたＲＡＭのエリアを示す図。
【図２４】実施形態においてパソコンの表示部における演奏ガイドの画像を示す図。
【図２５】実施形態において曲データを再生するメインルーチンのフローチャート。
【図２６】図２５における再生処理のフローチャート。
【図２７】図２６におけるノートオン処理のフローチャート。
【図２８】図２６におけるノートオフ処理のフローチャート。
【図２９】実施形態におけるデータ修正処理のフローチャート。
【図３０】図２９に続くデータ修正処理のフローチャート。
【図３１】実施形態におけるデータ修正の画面を示す図。
【図３２】実施形態の変形例においてカメラで撮像された右手の画像および画像のスキャン信号を示す図。
【図３３】変形例における画像処理のフローチャート。
【図３４】図３３に続く画像処理のフローチャート。
【図３５】図３４に続く画像処理のフローチャート。
【符号の説明】
【００９６】
１  電子楽器
２  鍵盤
３  アングル
４  カメラ取り付け部
５  カメラ
６  パソコン
２ｉ  鍵盤の画像
７ｉ、８ｉ  手の画像
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  スイッチ部
１５  表示部
１６  ＭＩＤＩ・インターフェース
１７  ビデオキャプチャ・インターフェース
１８  不揮発性メモリ
【図１】
2006091632.tif 000003
【図２】
2006091632.tif 000004
【図３】
2006091632.tif 000005
【図４】
2006091632.tif 000006
【図５】
2006091632.tif 000007
【図６】
2006091632.tif 000008
【図７】
2006091632.tif 000009
【図８】
2006091632.tif 000010
【図９】
2006091632.tif 000011
【図１０】
2006091632.tif 000012
【図１１】
2006091632.tif 000013
【図１２】
2006091632.tif 000014
【図１３】
2006091632.tif 000015
【図１４】
2006091632.tif 000016
【図１５】
2006091632.tif 000017
【図１６】
2006091632.tif 000018
【図１７】
2006091632.tif 000019
【図１８】
2006091632.tif 000020
【図１９】
2006091632.tif 000021
【図２０】
2006091632.tif 000022
【図２１】
2006091632.tif 000023
【図２２】
2006091632.tif 000024
【図２３】
2006091632.tif 000025
【図２４】
2006091632.tif 000026
【図２５】
2006091632.tif 000027
【図２６】
2006091632.tif 000028
【図２７】
2006091632.tif 000029
【図２８】
2006091632.tif 000030
【図２９】
2006091632.tif 000031
【図３０】
2006091632.tif 000032
【図３１】
2006091632.tif 000033
【図３２】
2006091632.tif 000034
【図３３】
2006091632.tif 000035
【図３４】
2006091632.tif 000036
【図３５】
2006091632.tif 000037