(57)【要約】【課題】押鍵しない指をどの位置に置いておけばよいのかを教示する演奏支援情報生成装置を実現する。【解決手段】曲を構成する各音を表すと共に、それら各音を弾くべき指を指定する曲データＭＥ［０］〜［Ｎ］毎に、押鍵する指の位置座標ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］、押鍵しない指の座標位置ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］および手の位置座標ｓＨａｎｄＰｏｓを生成して登録し、これらに基づき各音を演奏する際の手および各指の位置をグラフ化して表示部１２に画面表示するので、押鍵しない指をどの位置に置いておけばよいのかを教示し得るようになる。【選択図】図２
2011237821.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも曲を構成する各音およびそれら各音を弾く指を表す曲データを記憶する曲データ記憶手段と、
前記曲データ記憶手段から各音毎の曲データを読み出し、読み出した曲データの音を押鍵する指の位置を表す押鍵指位置座標を生成する押鍵指位置発生手段と、
前記曲データ記憶手段から各音毎の曲データを読み出し、読み出した曲データの音を押鍵しない指の位置を表す無押鍵指位置座標を生成する無押鍵指位置発生手段と、
前記押鍵指位置発生手段により生成された押鍵指位置座標と、前記無押鍵指位置発生手段により生成された無押鍵指位置座標とを参照して曲データを演奏する際の各指の位置変化を表示する指位置表示手段と
を具備することを特徴とする演奏支援情報生成装置。
【請求項２】
前記押鍵指位置発生手段は、読み出した曲データの音の音高と弾くべき指とに応じて、押鍵する指の鍵盤上での位置を表す押鍵指位置座標を生成することを特徴とする請求項１記載の演奏支援情報生成装置。
【請求項３】
前記押鍵指位置発生手段は、読み出した曲データの音が和音を構成する場合、当該曲データの音を除く他の和音構成音にそれぞれ割当てられる各指の押鍵状態を表す押鍵情報と、それら和音構成音を押鍵する各指の位置を表す和音押鍵指位置情報とを生成して当該曲データに登録することを特徴とする請求項１記載の演奏支援情報生成装置。
【請求項４】
前記無押鍵指位置発生手段は、読み出した曲データの音と同時刻に押鍵される指の位置と、読み出した曲データの音以前に押鍵していた指の位置と、読み出した曲データの音以降に押鍵する指の位置とを勘案して、読み出した曲データの音を押鍵しない指の鍵盤上での位置を表す無押鍵指位置座標を生成することを特徴とする請求項１記載の演奏支援情報生成装置。
【請求項５】
前記押鍵指位置発生手段によって生成された押鍵指位置座標と、前記無押鍵指位置発生手段によって生成された無押鍵指位置座標とを対応する曲データに登録する指位置座標登録手段を更に具備することを特徴とする請求項１記載の演奏支援情報生成装置。
【請求項６】
前記読み出した曲データの音に対して親指から小指までの全ての指が取り得る位置範囲から手の位置を表す手位置座標を生成する手位置発生手段と、前記手位置発生手段により生成された手位置座標を参照して曲データを演奏する際の手の位置変化を表示する手位置表示手段とを更に具備することを特徴とする請求項１記載の演奏支援情報生成装置。
【請求項７】
少なくとも曲を構成する各音およびそれら各音を弾く指を表す曲データを各音毎に読み出す読み出し処理と、
前記読み出し処理により読み出される曲データの音を押鍵する指の位置を表す押鍵指位置座標を生成する押鍵指位置発生処理と、
前記読み出し処理により読み出される曲データの音を押鍵しない指の位置を表す無押鍵指位置座標を生成する無押鍵指位置発生処理と、
前記押鍵指位置発生処理により生成された押鍵指位置座標と、前記無押鍵指位置発生処理により生成された無押鍵指位置座標とを参照して曲データを演奏する際の各指の位置変化を表示する指位置表示処理と
をコンピュータで実行させることを特徴とする演奏支援情報生成プログラム。 
【請求項８】
前記押鍵指位置発生処理は、前記読み出し処理により読み出される曲データの音の音高と弾くべき指とに応じて、押鍵する指の鍵盤上での位置を表す押鍵指位置座標を生成することを特徴とする請求項５記載の演奏支援情報生成プログラム。
【請求項９】
前記押鍵指位置発生処理は、前記読み出し処理により読み出される曲データの音が和音を構成する場合、当該曲データの音を除く他の和音構成音にそれぞれ割当てられる各指の押鍵状態を表す押鍵情報と、それら和音構成音を押鍵する各指の位置を表す和音押鍵指位置情報とを生成して当該曲データに登録することを特徴とする請求項５記載の演奏支援情報生成プログラム。
【請求項１０】
前記無押鍵指位置発生処理は、前記読み出し処理により読み出される曲データの音と同時刻に押鍵される指の位置と、読み出される曲データの音以前に押鍵していた指の位置と、読み出される曲データの音以降に押鍵する指の位置とを勘案して、読み出される曲データの音を押鍵しない指の鍵盤上での位置を表す無押鍵指位置座標を生成することを特徴とする請求項５記載の演奏支援情報生成プログラム。
【請求項１１】
前記押鍵指位置発生処理によって生成された押鍵指位置座標と、前記無押鍵指位置発生処理によって生成された無押鍵指位置座標とを対応する曲データに登録する登録処理をさらにコンピュータで実行させることを特徴とする請求項７記載の演奏支援情報生成プログラム。
【請求項１２】
前記読み出した曲データの音に対して親指から小指までの全ての指が取り得る位置範囲から手の位置を表す手位置座標を生成する手位置発生処理と、前記手位置発生処理により生成された手位置座標を参照して曲データを演奏する際の手の位置変化を表示する手位置表示処理をさらにコンピュータで実行させることを特徴とする請求項７記載の演奏支援情報生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子楽器に用いて好適な演奏支援情報生成装置および演奏支援情報生成プログラムに関する。
【背景技術】
【０００２】
従来より、演奏操作を支援するための情報を生成する装置が知られている。この種の装置として、例えば特許文献１には、どの鍵をどの指で押鍵すべきかを示す運指情報から鍵盤操作する手のポスチャー（姿勢）を示すデータを発生して鍵操作の練習を支援するものが開示されている。また、特許文献２には、曲を構成する各音の音高と、それら各音を弾く指を表す運指データとを含む曲データをメモリから読み出し、読み出した曲データ中の音高に対応する運指データが指替えを指示する運指である場合、その指替えを指示する運指画像を生成して運指の仕方を指示するものが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１７７５４６号公報
【特許文献２】特開２００４−２０５７９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、鍵盤操作に不慣れな初心者ユーザでは、押鍵時の手の位置や姿勢あるいは指替えの仕方はもとより、それ以前に押鍵しない指をどの位置に置いておけばよいのかも判らないことが多い。したがって、上記特許文献１，２に開示の技術のように、押鍵時の手の位置や姿勢あるいは指替えの仕方などをユーザに教示しても、その教示に通りに行うには、押鍵しない指を適正な位置において鍵操作に備える必要がある。つまり、換言すれば、上記特許文献１，２に開示の技術では、押鍵しない指をどの位置に置いておけばよいのかを教示することができない、という問題が生じる。
【０００５】
本発明は、このような事情に鑑みてなされたもので、押鍵しない指をどの位置に置いておけばよいのかを教示することができる演奏支援情報生成装置および演奏支援情報生成プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、請求項１に記載の発明では、少なくとも曲を構成する各音およびそれら各音を弾く指を表す曲データを記憶する曲データ記憶手段と、前記曲データ記憶手段から各音毎の曲データを読み出し、読み出した曲データの音を押鍵する指の位置を表す押鍵指位置座標を生成する押鍵指位置発生手段と、前記曲データ記憶手段から各音毎の曲データを読み出し、読み出した曲データの音を押鍵しない指の位置を表す無押鍵指位置座標を生成する無押鍵指位置発生手段と、前記押鍵指位置発生手段により生成された押鍵指位置座標と、前記無押鍵指位置発生手段により生成された無押鍵指位置座標とを参照して曲データを演奏する際の各指の位置変化を表示する指位置表示手段とを具備することを特徴とする。
【０００７】
上記請求項１に従属する請求項２に記載の発明では、前記押鍵指位置発生手段は、読み出した曲データの音の音高と弾くべき指とに応じて、押鍵する指の鍵盤上での位置を表す押鍵指位置座標を生成することを特徴とする。
【０００８】
上記請求項１に従属する請求項３に記載の発明では、前記押鍵指位置発生手段は、読み出した曲データの音が和音を構成する場合、当該曲データの音を除く他の和音構成音にそれぞれ割当てられる各指の押鍵状態を表す押鍵情報と、それら和音構成音を押鍵する各指の位置を表す和音押鍵指位置情報とを生成して当該曲データに登録することを特徴とする。
【０００９】
上記請求項１に従属する請求項４に記載の発明では、前記無押鍵指位置発生手段は、読み出した曲データの音と同時刻に押鍵される指の位置と、読み出した曲データの音以前に押鍵していた指の位置と、読み出した曲データの音以降に押鍵する指の位置とを勘案して、読み出した曲データの音を押鍵しない指の鍵盤上での位置を表す無押鍵指位置座標を生成することを特徴とする。
【００１０】
上記請求項１に従属する請求項５に記載の発明では、前記押鍵指位置発生手段によって生成された押鍵指位置座標と、前記無押鍵指位置発生手段によって生成された無押鍵指位置座標とを対応する曲データに登録する指位置座標登録手段を更に具備することを特徴とする。
【００１１】
上記請求項１に従属する請求項６に記載の発明では、前記読み出した曲データの音に対して親指から小指までの全ての指が取り得る位置範囲から手の位置を表す手位置座標を生成する手位置発生手段と、前記手位置発生手段により生成された手位置座標を参照して曲データを演奏する際の手の位置変化を表示する手位置表示手段とを更に具備することを特徴とする。
【００１２】
請求項７に記載の発明では、少なくとも曲を構成する各音およびそれら各音を弾く指を表す曲データを各音毎に読み出す読み出し処理と、前記読み出し処理により読み出される曲データの音を押鍵する指の位置を表す押鍵指位置座標を生成する押鍵指位置発生処理と、前記読み出し処理により読み出される曲データの音を押鍵しない指の位置を表す無押鍵指位置座標を生成する無押鍵指位置発生処理と、前記押鍵指位置発生処理により生成された押鍵指位置座標と、前記無押鍵指位置発生処理により生成された無押鍵指位置座標とを参照して曲データを演奏する際の各指の位置変化を表示する指位置表示処理とをコンピュータで実行させることを特徴とする。
【００１３】
上記請求項７に従属する請求項８に記載の発明では、前記押鍵指位置発生処理は、前記読み出し処理により読み出される曲データの音の音高と弾くべき指とに応じて、押鍵する指の鍵盤上での位置を表す押鍵指位置座標を生成することを特徴とする。
【００１４】
上記請求項７に従属する請求項９に記載の発明では、前記押鍵指位置発生処理は、前記読み出し処理により読み出される曲データの音が和音を構成する場合、当該曲データの音を除く他の和音構成音にそれぞれ割当てられる各指の押鍵状態を表す押鍵情報と、それら和音構成音を押鍵する各指の位置を表す和音押鍵指位置情報とを生成して当該曲データに登録することを特徴とする。
【００１５】
上記請求項７に従属する請求項１０に記載の発明では、前記無押鍵指位置発生処理は、前記読み出し処理により読み出される曲データの音と同時刻に押鍵される指の位置と、読み出される曲データの音以前に押鍵していた指の位置と、読み出される曲データの音以降に押鍵する指の位置とを勘案して、読み出される曲データの音を押鍵しない指の鍵盤上での位置を表す無押鍵指位置座標を生成することを特徴とする。
【００１６】
上記請求項７に従属する請求項１１に記載の発明では、前記押鍵指位置発生処理によって生成された押鍵指位置座標と、前記無押鍵指位置発生処理によって生成された無押鍵指位置座標とを対応する曲データに登録する登録処理をさらにコンピュータで実行させることを特徴とする。
【００１７】
上記請求項７に従属する請求項１２に記載の発明では、前記読み出した曲データの音に対して親指から小指までの全ての指が取り得る位置範囲から手の位置を表す手位置座標を生成する手位置発生処理と、前記手位置発生処理により生成された手位置座標を参照して曲データを演奏する際の手の位置変化を表示する手位置表示処理をさらにコンピュータで実行させることを特徴とする。
【発明の効果】
【００１８】
本発明では、少なくとも曲を構成する各音およびそれら各音を弾く指を表す曲データを各音毎に読み出し、読み出した曲データの音を押鍵する指の位置を表す押鍵指位置座標を生成して対応する曲データに登録すると共に、読み出した曲データの音を押鍵しない指の位置を表す無押鍵指位置座標と、その読み出した曲データの音に対して親指から小指までの全ての指が取り得る位置範囲から手の位置を表す手位置座標とを生成して対応する曲データに登録する。そして、曲データに登録された押鍵指位置座標、無押鍵指位置座標および手位置座標を参照して曲データを演奏する際の手および各指の位置変化を表示するので、押鍵しない指をどの位置に置いておけばよいのかを教示することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明による実施の一形態の構成を示すブロック図である。
【図２】曲データＭＥのデータ構成を示す図である。
【図３】演奏支援処理の動作を示すフローチャートである。
【図４】押鍵する指の座標設定処理の動作を示すフローチャートである。
【図５】押鍵する指の座標設定処理の動作を示すフローチャートである。
【図６】押鍵しない指の座標設定処理の動作を示すフローチャートである。
【図７】座標候補取得処理の動作を示すフローチャートである。
【図８】座標取得［１］処理の動作を示すフローチャートである。
【図９】座標取得［２］処理の動作を示すフローチャートである。
【図１０】座標決定処理の動作を示すフローチャートである。
【図１１】演奏支援処理の動作の一例を説明するための図である。
【図１２】演奏支援処理の動作の一例を説明するための図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して本発明の実施の形態について説明する。
Ａ．構成 
（１）全体構成 
図１は、本発明による演奏支援情報生成装置を搭載した電子楽器の全体構成を示すブロック図である。この図において、鍵盤１０は押離鍵操作（演奏操作）に応じたキーオン／キーオフイベント、鍵番号およびベロシティ等の演奏情報を発生する。スイッチ部１１は、楽器パネルに配設される各種操作スイッチを有し、ユーザ操作されるスイッチ種に対応したスイッチイベントを発生する。スイッチ部１１に配設される主要なスイッチとしては、例えばパワーオンオフする電源スイッチの他、曲データを選択する曲選択スイッチや、動作モードを設定するモードスイッチ等がある。なお、本実施の形態では、モードスイッチ操作により演奏モード又は演奏支援情報発生モードが設定される。
【００２１】
表示部１２は、ＬＣＤパネル等から構成され、ＣＰＵ１３から供給される表示制御信号に応じて楽器全体の動作モードや各種設定状態を表示する。具体的には、演奏支援情報発生モードに設定されている場合、ＣＰＵ１３が後述する演奏支援処理を実行することにより、曲を構成する各音を演奏する際の手および各指の位置をグラフ化して表示部１２に画面表示するようになっている。
【００２２】
ＣＰＵ１３は、モードスイッチ操作で設定される動作モードで楽器各部を制御する。具体的には、演奏モードに設定されると、ＣＰＵ１３は押離鍵操作に応じて鍵盤１０から出力される演奏情報に対応した各種楽音パラメータ（ノートオン／ノートオフ等）を発生し、これを音源１６に供給して楽音発生を指示する。一方、演奏支援情報発生モードに設定された場合には、ＣＰＵ１３は後述する演奏支援処理を実行し、曲選択スイッチ操作で選択された曲データに基づき演奏支援情報を生成し、生成した演奏支援情報に基づき演奏時の手および各指の位置をグラフ化して表示部１２に画面表示する。
【００２３】
ＲＯＭ１４には、ＣＰＵ１３にロードされる各種の制御プログラムが記憶される。各種の制御プログラムとは、後述する演奏支援処理を含む。ＲＡＭ１５は、ワークエリアおよびデータエリアを備える。ＲＡＭ１５のワークエリアには、ＣＰＵ１３の処理に使用される各種レジスタ・フラグデータが一時記憶される。ＲＡＭ１５のデータエリアには、複数曲の曲データが格納されており、そのデータ構成については追って述べる。
【００２４】
音源１６は、周知の波形メモリ読み出し方式によって構成され、時分割動作する複数の発音チャンネルを備える。この音源１６は、各種音色の波形データを記憶しており、これらの内、ＣＰＵ１３から供給される楽音パラメータに応じた波形データを読み出して楽音波形を発生する。サウンドシステム１７は、音源１６から出力される楽音波形をアナログ形式の楽音信号に変換した後、その楽音信号から不要ノイズを除去する等のフィルタリングを施してからレベル増幅してスピーカより発音させる。
【００２５】
（２）曲データの構成
図２は、ＲＡＭ１５のデータエリアに格納される曲データの構成を示す図である。１つの曲は、所謂ＭＩＤＩ形式で表現され、曲を構成する各音に対応する曲データＭＥ［０］〜ＭＥ［Ｎ］から構成される。そして、１つの曲データＭＥは、発音開始時刻ｌＴｉｍｅ、発音時間（音長）ｌＧａｔｅ、発音開始時間（絶対時間）ｌＴｉｍｓｅｃ、ピッチ（音高）Ｐｉｔｃｈ、鍵盤座標ｉＰｏｓ、和音フラグｃｌｓＨａｒｍ、ポインタｐＨＴｏｐ、ポインタｐＨＴａｉｌ、ポインタｐＰＨＴｏｐ、ポインタｐＰＨＴａｉｌ、ポインタｐＮＨＴｏｐ、ポインタｐＮＨＴａｉｌおよび運指ｃｆｉｇを備える。さらに、曲データＭＥには、押鍵の有無を各指毎に表す押鍵フラグｉＦｉｇＯｎ［１］〜［５］、各指の位置を表す座標ｓｆｉｇＰｏｓ［１］〜［５］および手の位置座標ｓＨａｎｄＰｏｓが後述の後述する演奏支援処理により生成されて登録される。なお、曲データＭＥを構成する上記各データが意図するところについては後述する動作の説明に交えて述べる。
【００２６】
Ｂ．動作
次に、図３〜図１２を参照して上記構成による実施形態におけるＣＰＵ１３が実行する演奏支援処理の動作を説明する。 
【００２７】
（１）演奏支援処理の動作
電源投入後のモードスイッチ操作に応じて、演奏支援情報発生モードに設定されると、ＣＰＵ１３は図３に図示する演奏支援処理を実行してステップＳＡ１に処理を進める。ステップＳＡ１では、曲選択スイッチ操作で選択された曲データＭＥ［０］〜ＭＥ［Ｎ］を、ＲＡＭ１５のデータエリアから読み込み、ワークエリアに展開する。
【００２８】
続いて、ステップＳＡ２では、押鍵する指の座標設定処理を実行する。この処理では、後述するように、ポインタｍｅで指定される曲データＭＥ［ｍｅ］毎に、鍵の位置（鍵盤座標ｍｅ．ｉＰｏｓ）を、押鍵する指の位置座標ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］として登録したり、曲データＭＥ［ｍｅ］が和音構成音であると、他の和音構成音にそれぞれ割当てられた各指の押鍵（押鍵フラグｉＦｉｇＯｎ［ｃｆｉｇＥ］＝１）と、それら各指が押鍵する鍵盤座標（座標ｍｅ．ｓｆｉｇＰｏｓ［ｃｆｉｇＥ］）とを登録する。
【００２９】
次いで、ステップＳＡ３では、押鍵しない指の座標設定処理を実行する。この処理では、後述するように、ポインタｍｅで指定される曲データＭＥ［ｍｅ］毎に、押鍵しない指の座標位置ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］を登録すると共に、親指から小指までの全ての指が取り得る最大指座標ｓｆＭａｘおよび最小指座標ｓｆＭｉｎの平均値（ｓｆＭａｘ＋ｓｆＭｉｎ）／２から得られる手の位置座標ｓＨａｎｄＰｏｓを登録する。
【００３０】
そして、ステップＳＡ４では、上記ステップＳＡ２〜ＳＡ３において、ポインタｍｅで指定される曲データＭＥ［ｍｅ］毎に登録した押鍵する指の位置座標ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］、押鍵しない指の座標位置ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］および手の位置座標ｓＨａｎｄＰｏｓに基づき、各曲データＭＥ［０］〜［Ｎ］を演奏する際の手および各指の位置変化をグラフ化して表示部１２に画面表示する。これにより、押鍵しない指をどの位置に置いておけばよいのかを教示し得るようになる。
【００３１】
（２）押鍵する指の座標設定処理の動作
次に、図４〜図５を参照して、押鍵する指の座標設定処理の動作を説明する。上述した演奏支援処理のステップＳＡ２（図３参照）を介して本処理が実行されると、ＣＰＵ１３は図４に図示するステップＳＢ１に進み、先頭の曲データＭＥ［０］を指定するアドレスを、ポインタｍｅにストアする。次いで、ステップＳＢ２では、歩進されたポインタｍｅが「ＮＵＬＬ」、つまり全ての曲データＭＥについて処理し終えたかどうかを判断する。歩進されたポインタｍｅが「ＮＵＬＬ」ではなく、全ての曲データＭＥについて処理し終えていなければ、判断結果は「ＮＯ」になり、ステップＳＢ３に進む。
【００３２】
ステップＳＢ３では、メロディパートを演奏する右手の各指を指定するポインタｉｆｉｇに初期値「１」をセットする。なお、ポインタｉｆｉｇは「１」の時に親指、「２」の時に人差し指、「３」の時に中指、「４」の時に薬指、「５」の時に小指をそれぞれ指定する。したがって、ステップＳＢ３では、先ず親指を指定することになる。次いで、ステップＳＢ４では、ポインタｉｆｉｇが「６」より小さいか否か、つまり親指から小指までの全ての指について処理し終えたかどうかを判断する。全ての指について処理し終えていなければ、判断結果は「ＮＯ」になり、ステップＳＢ５に進む。
【００３３】
ステップＳＢ５では、ポインタｉｆｉｇと、ポインタｍｅで指定される曲データＭＥ［ｍｅ］中の運指ｃｆｉｇ（ｍｅ．ｃｆｉｇ）とが一致するか、すなわちポインタｉｆｉｇにより現在指定されている指が、運指ｍｅ．ｃｆｉｇで表される押鍵すべき指の指番号に一致するかどうかを判断する。現在指定されている指が押鍵すべき指でなければ、判断結果が「ＮＯ」になり、ステップＳＢ６に進み、ポインタｉｆｉｇをインクリメントして歩進させた後、上記ステップＳＢ４に処理を戻す。
【００３４】
歩進されたポインタｉｆｉｇの値が「６」より小さく、親指から小指までの全ての指について処理し終えていない場合には、上記ステップＳＢ４の判断結果が再び「ＮＯ」になり、ステップＳＢ５に進む。そして、ステップＳＢ５において、歩進されたポインタｉｆｉｇと運指ｃｆｉｇとが一致し、現在指定されている指が押鍵すべき指になると、判断結果は「ＹＥＳ」になり、ステップＳＢ７に進む。
【００３５】
ステップＳＢ７では、ポインタｍｅで指定される曲データＭＥ［ｍｅ］中の鍵盤座標ｍｅ．ｉＰｏｓを、当該曲データＭＥ［ｍｅ］中の指座標ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］に登録する。ここで、鍵盤座標ｍｅ．ｉＰｏｓとは、曲データＭＥ［ｍｅ］のピッチＰｉｔｃｈ（音高）に対応した鍵の位置を表す。したがって、このステップＳＢ７では、曲データＭＥ［ｍｅ］の音を押鍵する指の位置として、押鍵すべき鍵の位置を登録する。
【００３６】
続いて、図５に図示するステップＳＢ８に進み、ポインタｍｅで指定される曲データＭＥ［ｍｅ］中の和音フラグｍｅ．ｃｌｓＨａｒｍが「０」より大であるか否かを判断する。和音フラグｍｅ．ｃｌｓＨａｒｍは、曲データＭＥ［ｍｅ］の音が和音であるか否かを表すフラグであり、「０」の場合に非和音を、「１」の場合に和音であることを表す。
【００３７】
したがって、このステップＳＢ８では、曲データＭＥ［ｍｅ］の音が和音であるかどうかを判断する。曲データＭＥ［ｍｅ］の音が非和音であると、判断結果は「ＮＯ」になり、図４に図示するステップＳＢ１４に処理を進め、次の曲データＭＥ［ｍｅ．ｎｅｘｔ］を指定するようポインタｍｅを更新させた後、前述のステップＳＢ２に処理を戻す。
【００３８】
一方、曲データＭＥ［ｍｅ］の音が和音ならば、上記ステップＳＢ８の判断結果が「ＹＥＳ」になり、次のステップＳＢ９に進む。ステップＳＢ９では、ポインタｍｅで指定される曲データＭＥ［ｍｅ］中のポインタｍｅ．ｐＨＴｏｐを、ポインタｍｅｅにストアする。ここで、ポインタｍｅ．ｐＨＴｏｐとは、曲データＭＥ［ｍｅ］の音を含む和音の内、音高が最も低い和音構成音（以下、最低音と称す）の曲データＭＥを指定する。次いで、ステップＳＢ１０では、ポインタｍｅｅで指定される曲データＭＥ［ｍｅｅ］中の運指ｍｅｅ．ｃｆｉｇを、レジスタｃｆｉｇＥにストアする。つまり、レジスタｃｆｉｇＥには、最低音を押鍵する指を表す運指番号が格納される。
【００３９】
そして、ステップＳＢ１１では、ポインタｍｅで指定される曲データＭＥ［ｍｅ］中の押鍵フラグｉＦｉｇＯｎ［１］〜［５］の内、レジスタｃｆｉｇＥに格納された運指番号で指定される指の押鍵フラグｉＦｉｇＯｎ［ｃｆｉｇＥ］に「１」をセットする。これにより、最低音に割当てられた指の押鍵が曲データＭＥ［ｍｅ］中に登録される。
【００４０】
また、ステップＳＢ１１では、ポインタｍｅｅで指定される曲データＭＥ［ｍｅｅ］中の鍵盤座標ｍｅｅ．ｉＰｏｓを、ポインタｍｅで指定される曲データＭＥ［ｍｅ］中の座標ｍｅ．ｓｆｉｇＰｏｓ［ｃｆｉｇＥ］にストアする。これにより、最低音の鍵盤座標が、レジスタｃｆｉｇＥに格納された運指番号で指定される指の座標ｍｅ．ｓｆｉｇＰｏｓ［ｃｆｉｇＥ］として曲データＭＥ［ｍｅ］中に登録される。
【００４１】
次いで、ステップＳＢ１２では、ポインタｍｅｅと、ポインタｍｅで指定される曲データＭＥ［ｍｅ］中のポインタｍｅ．ｐＨＴａｉｌとが一致するか否かを判断する。ここで、ポインタｍｅ．ｐＨＴａｉｌとは、曲データＭＥ［ｍｅ］の音を含む和音の内、音高が最も高い和音構成音（以下、最高音と称す）の曲データＭＥを指定する。
【００４２】
したがって、このステップＳＢ１２では、最低音から最高音までの各和音構成音について上記ステップＳＢ１１の処理を行ったかどうかを判断する。つまり、最低音から最高音までの各和音構成音にそれぞれ割当てられた各指の押鍵と、それら各指が押鍵する鍵盤座標とを曲データＭＥ［ｍｅ］に登録し終えたか否かを判断する。そして、登録し終えていなければ、判断結果は「ＮＯ」になり、次のステップＳＢ１３に進む。
【００４３】
ステップＳＢ１３では、曲データＭＥ［ｍｅ］の音を含む和音の内、最低音の次に音高が低い和音構成音を指定するようポインタｍｅを更新させた後、前述のステップＳＢ１０に処理を戻す。以後、最高音に達する迄、上述したステップＳＢ１０〜ＳＢ１３を繰り返す。
【００４４】
こうして、最低音から最高音までの各和音構成音にそれぞれ割当てられた各指の押鍵と、それら各指が押鍵する鍵盤座標とが曲データＭＥ［ｍｅ］に登録されると、上記ステップＳＢ１２の判断結果が「ＹＥＳ」になり、図４に図示するステップＳＢ１４に進み、次の曲データＭＥ［ｍｅ．ｎｅｘｔ］を指定するようポインタｍｅを更新させた後、前述のステップＳＢ２に処理を戻す。以後、上述したステップＳＢ２以降を繰り返し、全ての曲データＭＥ［０］〜［Ｎ］について処理し終えると、ステップＳＢ２の判断結果が「ＹＥＳ」になり、本処理を完了させる。
【００４５】
このように、押鍵する指の座標設定処理では、歩進されるポインタｍｅで指定される曲データＭＥ［ｍｅ］において、鍵の位置（鍵盤座標ｍｅ．ｉＰｏｓ）を、押鍵する指の位置（指座標ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］）として登録する。また、曲データＭＥ［ｍｅ］の音が和音ならば、和音構成音の最低音から最高音にそれぞれ割当てられた各指の押鍵（押鍵フラグｉＦｉｇＯｎ［ｃｆｉｇＥ］＝１）と、それら各指が押鍵する鍵盤座標（座標ｍｅ．ｓｆｉｇＰｏｓ［ｃｆｉｇＥ］）とを登録する。
【００４６】
（３）押鍵しない指の座標設定処理の動作
次に、図６を参照して、押鍵しない指の座標設定処理の動作を説明する。上述した演奏支援処理のステップＳＡ３（図３参照）を介して本処理が実行されると、ＣＰＵ１３は図６に図示するステップＳＣ１に進み、先頭の曲データＭＥ［０］を指定するアドレスを、ポインタｍｅにストアする。次いで、ステップＳＣ２では、歩進されたポインタｍｅが「ＮＵＬＬ」、つまり全ての曲データＭＥについて処理し終えたかどうかを判断する。歩進されたポインタｍｅが「ＮＵＬＬ」ではなく、全ての曲データＭＥについて処理し終えていなければ、判断結果は「ＮＯ」になり、ステップＳＣ３に進む。
【００４７】
ステップＳＣ３では、メロディパートを演奏する右手の各指を指定するポインタｉｆｉｇに初期値「１」をセットする。なお、ポインタｉｆｉｇは「１」の時に親指、「２」の時に人差し指、「３」の時に中指、「４」の時に薬指、「５」の時に小指をそれぞれ指定する。したがって、ステップＳＣ３では、先ず親指を指定することになる。次いで、ステップＳＣ４では、ポインタｉｆｉｇが「６」より小さいか否か、つまり親指から小指までの全ての指について処理し終えたかどうかを判断する。全ての指について処理し終えていなければ、判断結果は「ＮＯ」になり、ステップＳＣ５に進む。
【００４８】
ステップＳＣ５では、ポインタｍｅで指定される曲データＭＥ［ｍｅ］において、ポインタｉｆｉｇで指定される指の押鍵フラグｉＦｉｇＯｎ［ｉｆｉｇ］が「０」、つまり現在指定されている指は押鍵していないかどうかを判断する。現在指定されている指が押鍵している場合（押鍵フラグｉＦｉｇＯｎ［ｉｆｉｇ］＝１）には、判断結果が「ＮＯ」になり、後述するステップＳＣ１０に処理を進める。
【００４９】
一方、現在指定されている指が押鍵していなければ、上記ステップＳＣ５の判断結果は「ＹＥＳ」になり、ステップＳＣ６に進む。ステップＳＣ６では、座標候補取得処理を実行する。後述するように、座標候補取得処理では、上記ステップＳＣ５で抽出された押鍵しない指の座標候補を取得するものであり、押鍵しない指より上側の指番号の指が押鍵する時には、その押鍵する指の指番号と押鍵しない指の指番号との差分に応じて定まる座標補正値を、押鍵する指の位置を表す座標（ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｇ］）から減算して押鍵しない指の座標候補ｓｆｉｇＨを算出する。一方、押鍵しない指より下側の指番号の指が押鍵する時には、その押鍵する指の指番号と押鍵しない指の指番号との差分に応じて定まる座標補正値を、押鍵する指の位置を表す座標（ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｇ］）に加算して押鍵しない指の座標候補ｓｆｉｇＬを算出する。
【００５０】
次いで、ステップＳＣ７では、座標取得［１］処理を実行する。後述するように、座標取得［１］処理では、ポインタｍｅで指定される曲データＭＥ［ｍｅ］の音以前に存在する音において、ポインタｉｆｉｇで指定される押鍵しない指と同じ運指を有する音（曲データＭＥ［ｍｅｐ］）を探し出し、該当する音が存在する場合には、その音を押鍵した指の位置座標ｓｆｉｇＰおよび押鍵時刻ｌＴｆｉｇＰを抽出する。
【００５１】
続いて、ステップＳＣ８では、座標取得［２］処理を実行する。後述するように、座標取得［２］処理では、座標取得［２］処理では、ポインタｍｅで指定される曲データＭＥ［ｍｅ］の音以降に存在する音において、ポインタｉｆｉｇで指定される押鍵しない指と同じ運指を有する音（曲データＭＥ［ｍｅｎ］）を探し出し、該当する音が存在する場合には、その音を押鍵する指の位置座標ｓｆｉｇＮおよび押鍵時刻ｌＴｆｉｇＮを抽出する。
【００５２】
そして、ステップＳＣ９では、座標決定処理を実行する。後述するように、座標決定処理では、ステップＳＣ６の座標候補取得処理で得られる押鍵しない指の座標候補ｓｆｉｇＨ、ｓｆｉｇＬと、ステップＳＣ７の座標取得［１］処理で得られる指の位置座標ｓｆｉｇＰ、押鍵時刻ｌＴｆｉｇＰと、ステップＳＣ８の座標取得［２］処理で得られる指の位置座標ｓｆｉｇＮ、押鍵時刻ｌＴｆｉｇＮとを勘案して、ポインタｍｅで指定される曲データＭＥ［ｍｅ］において、ポインタｉｆｉｇで指定される押鍵しない指の座標位置ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］を登録する。
【００５３】
次いで、ステップＳＣ１０では、ポインタｉｆｉｇで指定されている指の座標位置ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］が最大指座標ｓｆＭａｘより大きければ、それを新たに最大指座標ｓｆＭａｘとして更新したり、ポインタｉｆｉｇで指定されている指の座標位置ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］が最小指座標ｓｆＭｉｎより小さければ、それを新たに最小指座標ｓｆＭｉｎとして更新したりする。そして、ステップＳＣ１１では、ポインタｉｆｉｇを歩進させて次の指を指定した後、上述のステップＳＣ４に処理を戻す。
【００５４】
以後、歩進されたポインタｉｆｉｇが「６」に達するまで、つまり親指から小指までの全ての指について処理し終えるまで上述したステップＳＣ４〜ＳＣ１１を繰り返し、ポインタｍｅで指定される曲データＭＥ［ｍｅ］において、押鍵しない指の座標位置ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］を登録すると共に、親指から小指までの全ての指が取り得る最大指座標ｓｆＭａｘおよび最小指座標ｓｆＭｉｎを検出する。そして、親指から小指までの全ての指について処理し終えると、上述したステップＳＣ４の判断結果が「ＹＥＳ」になり、ステップＳＣ１２に進む。
【００５５】
ステップＳＣ１２では、上記ステップＳＣ１０にて更新され、親指から小指までの全ての指で取り得る最大指座標ｓｆＭａｘおよび最小指座標ｓｆＭｉｎの平均値（ｓｆＭａｘ＋ｓｆＭｉｎ）／２を、ポインタｍｅで指定される曲データＭＥ［ｍｅ］中の手の位置座標ｓＨａｎｄＰｏｓとして登録する。続いて、ステップＳＣ１３に進み、次の曲データＭＥ［ｍｅ．ｎｅｘｔ］を指定するようポインタｍｅを更新させた後、前述のステップＳＣ２に処理を戻す。そして、全ての曲データＭＥについて上述した処理をし終えると、ステップＳＣ２の判断結果が「ＹＥＳ」になり、本処理を終える。
【００５６】
このように、押鍵しない指の座標設定処理では、歩進されるポインタｍｅで指定される曲データＭＥ［ｍｅ］において、押鍵しない指の座標位置ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］を登録すると共に、親指から小指までの全ての指が取り得る最大指座標ｓｆＭａｘおよび最小指座標ｓｆＭｉｎの平均値（ｓｆＭａｘ＋ｓｆＭｉｎ）／２を、手の位置座標ｓＨａｎｄＰｏｓとして登録する。
【００５７】
（４）座標候補取得処理の動作
次に、図７を参照して座標候補取得処理の動作を説明する。上述したステップＳＣ６（図６参照）を介して本処理が実行されると、ＣＰＵ１３は図７に図示するステップＳＤ１に進み、ポインタｉｆｉｇの指番号をインクリメントしてレジスタｉｆｇにストアする。レジスタｉｆｇの値を検索ポインタｉｆｇと記す。
【００５８】
続いて、ステップＳＤ２では、検索ポインタｉｆｇが「６」より小さいか否かを判断する。検索ポインタｉｆｇが「６」より小さければ、判断結果は「ＹＥＳ」になり、ステップＳＤ３に進む。ステップＳＤ３では、ポインタｍｅで指定される曲データＭＥ［ｍｅ］において、検索ポインタｉｆｇで指定される指の押鍵フラグｉＦｉｇＯｎ［ｉｆｉｇ］が「１」、つまり検索ポインタｉｆｇで指定されている指が押鍵しているかどうかを判断する。検索ポインタｉｆｇで指定されている指が押鍵していなければ、判断結果は「ＮＯ」になり、ステップＳＤ４に進み、検索ポインタｉｆｇを歩進させた後、上述のステップＳＤ２に処理を戻す。
【００５９】
このように、ステップＳＤ１〜ＳＤ４では、例えば上述した「押鍵しない指の座標設定処理」において、ポインタｉｆｉｇで指定される押鍵しない指が「中指（指番号：３）」であったとすると、歩進される検索ポインタｉｆｇに応じて指定される「薬指（指番号：４）」および「小指（指番号：５）」の内から押鍵する指を検索する。押鍵する指が存在しなければ、上記ステップＳＤ２の判断結果が「ＮＯ」になり、後述のステップＳＤ６に処理を進める。
【００６０】
これに対し、押鍵する指が見つかると、上記ステップＳＤ３の判断結果が「ＹＥＳ」になり、ステップＳＤ５に進む。ステップＳＤ５では、上述の「押鍵しない指の座標設定処理」で処理対象とされている曲データＭＥ［ｍｅ］において、検索ポインタｉｆｇで指定され、押鍵する指の位置を表す座標（ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｇ］）から座標補正値２×（ｉｆｇ−ｉｆｉｇ）を減算して、ポインタｉｆｉｇで指定される押鍵しない指の座標候補ｓｆｉｇＨを算出する。なお、座標補正値２×（ｉｆｇ−ｉｆｉｇ）は、押鍵する指の指番号ｉｆｇと押鍵しない指の指番号ｉｆｉｇとの差を白鍵の数に換算した値である。また、鍵盤座標では、白鍵１つ分が「２」に相当する。
【００６１】
例えばポインタｉｆｉｇで指定される押鍵しない指が「中指（指番号：３）」であって、検索ポインタｉｆｇで指定される押鍵する指が「小指（指番号：５）」の場合には、座標補正値は２×（５−３）＝４となる。したがって、押鍵する指の位置を表す座標（ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｇ］）から座標補正値「４」を減算した座標値、つまり押鍵する指の位置を表す座標（ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｇ］）から白鍵２個分低い座標が、ポインタｉｆｉｇで指定される押鍵しない指の座標候補ｓｆｉｇＨとなる。
【００６２】
次に、ステップＳＤ６では、検索ポインタｉｆｇをデクリメントする。続いて、ステップＳＤ７では、デクリメントした検索ポインタｉｆｇの値が「０」以上であるか否かを判断する。検索ポインタｉｆｇが「０」以上であれば、判断結果は「ＹＥＳ」になり、ステップＳＤ８に進む。ステップＳＤ８では、ポインタｍｅで指定される曲データＭＥ［ｍｅ］において、検索ポインタｉｆｇで指定される指の押鍵フラグｉＦｉｇＯｎ［ｉｆｉｇ］が「１」、つまり検索ポインタｉｆｇで指定されている指が押鍵しているかどうかを判断する。検索ポインタｉｆｇで指定されている指が押鍵していなければ、判断結果は「ＮＯ」になり、ステップＳＤ９に進み、検索ポインタｉｆｇをデクリメントさせた後、上述のステップＳＤ７に処理を戻す。
【００６３】
このように、ステップＳＤ６〜ＳＤ９では、例えば上述した「押鍵しない指の座標設定処理」において、ポインタｉｆｉｇで指定される押鍵しない指が「中指（指番号：３）」であったとすると、デクリメントされる検索ポインタｉｆｇに応じて指定される「人差し指（指番号：２）」および「親指（指番号：１）」の内から押鍵する指を検索する。押鍵する指が存在しなければ、上記ステップＳＤ７の判断結果が「ＮＯ」になり、本処理を完了させる。
【００６４】
一方、押鍵する指が見つかると、上記ステップＳＤ８の判断結果が「ＹＥＳ」になり、ステップＳＤ１０に進む。ステップＳＤ１０では、上述の「押鍵しない指の座標設定処理」で処理対象とされている曲データＭＥ［ｍｅ］において、検索ポインタｉｆｇで指定され、押鍵する指の位置を表す座標（ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｇ］）から座標補正値２×（ｉｆｇ−ｉｆｉｇ）を減算して、ポインタｉｆｉｇで指定される押鍵しない指の座標候補ｓｆｉｇＬを算出して本処理を終える。
【００６５】
例えばポインタｉｆｉｇで指定される押鍵しない指が「中指（指番号：３）」であって、検索ポインタｉｆｇで指定される押鍵する指が「親指（指番号：１）」の場合には、座標補正値は２×（１−３）＝−４となる。したがって、押鍵する指の位置を表す座標（ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｇ］）に座標補正値「４」を加算した座標値、つまり押鍵する指の位置を表す座標（ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｇ］）から白鍵２個分高い座標が、ポインタｉｆｉｇで指定される押鍵しない指の座標候補ｓｆｉｇＬとなる。
【００６６】
このように、座標候補取得処理では、「押鍵しない指の座標設定処理」で処理対象とされている曲データＭＥ［ｍｅ］において、ポインタｉｆｉｇで指定される押鍵しない指の座標候補を取得するものであり、押鍵しない指より上側の指番号の指が押鍵する時には、その押鍵する指の指番号と押鍵しない指の指番号との差分に応じて定まる座標補正値を、押鍵する指の位置を表す座標（ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｇ］）から減算して押鍵しない指の座標候補ｓｆｉｇＨを算出し、一方、押鍵しない指より下側の指番号の指が押鍵する時には、その押鍵する指の指番号と押鍵しない指の指番号との差分に応じて定まる座標補正値を、押鍵する指の位置を表す座標（ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｇ］）に加算して押鍵しない指の座標候補ｓｆｉｇＬを算出する。
【００６７】
（５）座標取得［１］処理の動作
次に、図８を参照して座標取得［１］処理の動作を説明する。上述の「押鍵しない指の座標設定処理」のステップＳＣ７（図６参照）を介して本処理が実行されると、ＣＰＵ１３は図８に図示するステップＳＥ１に進み、ポインタｍｅで指定される曲データＭＥ［ｍｅ］中のポインタｍｅ．ｐＰＨＴａｉｌを、ポインタｍｅｐにセットする。ポインタｍｅ．ｐＰＨＴａｉｌとは、ポインタｍｅで指定される曲データＭＥ［ｍｅ］の音の前の音列群の和音の終端（一番上の音）へのポインタであり、音列群が単音であればその音自身を指すポインタである。つまり、ＭＥ［ｍｅ］の直前の音を指し示すポインタである。
【００６８】
続いて、ステップＳＥ２では、ポインタｍｅで指定される曲データＭＥ［ｍｅ］中の発音開始時間ｍｅ．ｌＴｉｍｓｅｃからポインタｍｅｐで指定される曲データＭＥ［ｍｅｐ］中の発音開始時間ｍｅｐ．ｌＴｉｍｓｅｃを減算した時間差が所定値ＦｏｒｃａｓｔＴｉｍｅより小さいか否かを判断する。つまり、曲データＭＥ［ｍｅ］の直前の音が、現在時刻（発音開始時間ｍｅ．ｌＴｉｍｓｅｃ）より所定値ＦｏｒｃａｓｔＴｉｍｅ遡った範囲内に存在するかどうかを判断する。
【００６９】
そして、曲データＭＥ［ｍｅ］の直前の音が、現在時刻（発音開始時間ｍｅ．ｌＴｉｍｓｅｃ）より所定値ＦｏｒｃａｓｔＴｉｍｅ遡った範囲内に存在するならば、上記ステップＳＥ２の判断結果は「ＹＥＳ」になり、ステップＳＥ３に進む。ステップＳＥ３では、ポインタｍｅｐで指定される曲データＭＥ［ｍｅｐ］中の運指ｍｅｐ．ｃｆｉｇと、ポインタｉｆｉｇで指定される押鍵しない指とが一致するか否かを判断する。一致しなければ、判断結果は「ＮＯ」になり、ステップＳＥ４に進む。ステップＳＥ４では、さらに一つ前の音を指定するようポインタｍｅｐを更新させた後、上述のステップＳＥ２に処理を戻す。
【００７０】
以後、ステップＳＥ２〜ＳＥ４を繰り返して現在時刻（発音開始時間ｍｅ．ｌＴｉｍｓｅｃ）より所定値ＦｏｒｃａｓｔＴｉｍｅ遡った範囲内に、ポインタｉｆｉｇで指定される押鍵しない指と同じ運指を有し、曲データＭＥ［ｍｅ］の音より前に存在する音を探し出す。そして、該当する音が見つからなければ、上記ステップＳＥ２の判断結果が「ＮＯ」になり、本処理を終えるが、該当する音が見つかると、上記ステップＳＥ３の判断結果が「ＹＥＳ」になり、ステップＳＥ５に進む。
【００７１】
ステップＳＥ５では、ポインタｍｅｐで指定される曲データＭＥ［ｍｅｐ］（該当する音）においてポインタｉｆｉｇで指定される指の座標ｍｅｐ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］をレジスタｓｆｉｇＰにストアすると共に、曲データＭＥ［ｍｅｐ］の発音開始時間ｍｅｐ．ｌＴｉｍｓｅｃをレジスタｌＴｆｉｇＰにストアする。
【００７２】
このように、座標取得［１］処理では、曲データＭＥ［ｍｅ］の音以前に存在する音において、ポインタｉｆｉｇで指定される押鍵しない指と同じ運指を有する音（曲データＭＥ［ｍｅｐ］）を探し出し、該当する音が存在する場合には、その音を押鍵した指の位置座標ｓｆｉｇＰおよび押鍵時刻ｌＴｆｉｇＰを抽出する。
【００７３】
（６）座標取得［２］処理の動作
次に、図９を参照して座標取得［２］処理の動作を説明する。上述の「押鍵しない指の座標設定処理」のステップＳＣ８（図６参照）を介して本処理が実行されると、ＣＰＵ１３は図９に図示するステップＳＦ１に進み、ポインタｍｅで指定される曲データＭＥ［ｍｅ］中のポインタｍｅ．ｐＮＨＴｏｐを、ポインタｍｅｎにセットする。ポインタｍｅ．ｐＮＨＴｏｐとは、ポインタｍｅで指定される曲データＭＥ［ｍｅ］の音の後の音列群の和音の先頭（一番下の音）へのポインタであり、音列群が単音であればその音自身を指すポインタである。つまり、ＭＥ［ｍｅ］の直後の音を指し示すポインタである。
【００７４】
続いて、ステップＳＦ２では、ポインタｍｅで指定される曲データＭＥ［ｍｅ］中の発音開始時間ｍｅ．ｌＴｉｍｓｅｃからポインタｍｅｎで指定される曲データＭＥ［ｍｅｎ］中の発音開始時間ｍｅｐ．ｌＴｉｍｓｅｃを減算した時間差が所定値ＦｏｒｃａｓｔＴｉｍｅより小さいか否かを判断する。つまり、曲データＭＥ［ｍｅ］の直後の音が、現在時刻（発音開始時間ｍｅ．ｌＴｉｍｓｅｃ）より所定値ＦｏｒｃａｓｔＴｉｍｅ経過した範囲内に存在するかどうかを判断する。
【００７５】
そして、曲データＭＥ［ｍｅ］の直後の音が、現在時刻（発音開始時間ｍｅ．ｌＴｉｍｓｅｃ）より所定値ＦｏｒｃａｓｔＴｉｍｅ経過した範囲内に存在するならば、上記ステップＳＦ２の判断結果は「ＹＥＳ」になり、ステップＳＦ３に進む。ステップＳＦ３では、ポインタｍｅｎで指定される曲データＭＥ［ｍｅｎ］中の運指ｍｅｎ．ｃｆｉｇと、ポインタｉｆｉｇで指定される押鍵しない指とが一致するか否かを判断する。一致しなければ、判断結果は「ＮＯ」になり、ステップＳＦ４に進む。ステップＳＦ４では、さらに一つ後の音を指定するようポインタｍｅｎを更新させた後、上述のステップＳＦ２に処理を戻す。
【００７６】
以後、ステップＳＦ２〜ＳＦ４を繰り返して現在時刻（発音開始時間ｍｅ．ｌＴｉｍｓｅｃ）より所定値ＦｏｒｃａｓｔＴｉｍｅ経過した範囲内に、ポインタｉｆｉｇで指定される押鍵しない指と同じ運指を有し、曲データＭＥ［ｍｅ］の音以降に存在する音を探し出す。そして、該当する音が見つからなければ、上記ステップＳＦ２の判断結果が「ＮＯ」になり、本処理を終えるが、該当する音が見つかると、上記ステップＳＦ３の判断結果が「ＹＥＳ」になり、ステップＳＦ５に進む。
【００７７】
ステップＳＦ５では、ポインタｍｅｎで指定される曲データＭＥ［ｍｅｎ］（該当する音）においてポインタｉｆｉｇで指定される指の座標ｍｅｎ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］をレジスタｓｆｉｇＮにストアすると共に、曲データＭＥ［ｍｅｎ］の発音開始時間ｍｅｎ．ｌＴｉｍｓｅｃをレジスタｌＴｆｉｇＮにストアする。
【００７８】
このように、座標取得［２］処理では、曲データＭＥ［ｍｅ］の音以降に存在する音において、ポインタｉｆｉｇで指定される押鍵しない指と同じ運指を有する音（曲データＭＥ［ｍｅｎ］）を探し出し、該当する音が存在する場合には、その音を押鍵する指の位置座標ｓｆｉｇＮおよび押鍵時刻ｌＴｆｉｇＮを抽出する。
【００７９】
（７）座標決定処理の動作 
次に、図１０を参照して座標決定処理の動作を説明する。上述の「押鍵しない指の座標設定処理」のステップＳＣ９（図６参照）を介して本処理が実行されると、ＣＰＵ１３は図１０に図示するステップＳＧ１に進む。ステップＳＧ１では、座標取得［１］処理で得られる指の位置座標ｓｆｉｇＰと、座標取得［２］処理で得られる指の位置座標ｓｆｉｇＮとの双方が存在するか否かを判断する。以下、「指の位置座標ｓｆｉｇＰ，ｓｆｉｇＮの双方が存在する場合」、「指の位置座標ｓｆｉｇＰのみ存在する場合」、「指の位置座標ｓｆｉｇＮのみ存在する場合」、「指の位置座標ｓｆｉｇＰ，ｓｆｉｇＮいずれも存在しない場合」に分けて動作説明を進める。
【００８０】
ａ．指の位置座標ｓｆｉｇＰ，ｓｆｉｇＮの双方が存在する場合
この場合、ステップＳＧ１の判断結果が「ＹＥＳ」になり、ステップＳＧ２に進む。ステップＳＧ２では、次式（１）に従い、上述した座標取得［１］処理で得られた指の位置座標ｓｆｉｇＰおよび押鍵時刻ｌＴｆｉｇＰと、座標取得［２］処理で得られた指の位置座標ｓｆｉｇＮおよび押鍵時刻ｌＴｆｉｇＮとに基づき内挿補間を行って、現在時刻（発音開始時間ｍｅ．ｌＴｉｍｓｅｃ）における押鍵しない指の位置座標ｓｆｉｇＤを算出する。
ｓｆｉｇＤ＝（ｓｆｉｇＰ（ｌＴｆｉｇＮ−ｍｅ．ｌＴｉｍｓｅｃ）＋ｓｆｉｇＮ（ｌＴｆｉｇＰ−ｍｅ．ｌＴｉｍｓｅｃ））／（ｌＴｆｉｇＮ−ｌＴｆｉｇＰ）…（１）
【００８１】
なお、座標取得［１］処理で得られる指の位置座標ｓｆｉｇＰは、曲データＭＥ［ｍｅ］の音を押鍵しない指であって、その指が曲データＭＥ［ｍｅ］の音以前の音を押鍵したときの指の位置を表し、押鍵時刻ｌＴｆｉｇＰはその時刻を表す。また、座標取得［２］処理で得られる指の位置座標ｓｆｉｇＮは、曲データＭＥ［ｍｅ］の音を押鍵しない指であって、その指が曲データＭＥ［ｍｅ］の音以降の音を押鍵するときの指の位置を表し、押鍵時刻ｌＴｆｉｇＮはその時刻を表す。
【００８２】
次いで、ステップＳＧ３では、下記（イ）〜（ホ）の操作を行って、ポインタｍｅで指定される曲データＭＥ［ｍｅ］において、ポインタｉｆｉｇで指定される押鍵しない指の座標位置ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］を登録する。すなわち、
（イ）上述した座標候補取得処理で求めた指の座標候補ｓｆｉｇＨ，ｓｆｉｇＬの内、大きい方の座標候補Ｍａｘ（ｓｆｉｇＨ，ｓｆｉｇＬ）を選択する。
（ロ）上記（イ）で選択したＭａｘ（ｓｆｉｇＨ，ｓｆｉｇＬ）と、上記ステップＳＧ２の内挿補間により算出した押鍵しない指の位置座標ｓｆｉｇＤとを比較して大きい値の位置座標を選択する。
（ハ）上述した座標候補取得処理で求めた指の座標候補ｓｆｉｇＨ，ｓｆｉｇＬの内、小さい方の座標候補ｍｉｎ（ｓｆｉｇＨ，ｓｆｉｇＬ）を選択する。
（ニ）上記（ハ）で選択したｍｉｎ（ｓｆｉｇＨ，ｓｆｉｇＬ）と、上記ステップＳＧ２の内挿補間にて算出した押鍵しない指の位置座標ｓｆｉｇＤとを比較して小さい値の位置座標を選択する。
（ホ）上記（ロ）で選択した位置座標と、上記（ニ）で選択した位置座標との平均値を算出し、これをポインタｍｅで指定される曲データＭＥ［ｍｅ］において、ポインタｉｆｉｇで指定される押鍵しない指の座標位置ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］に登録して本処理を終える。
【００８３】
ｂ．指の位置座標ｓｆｉｇＰのみ存在する場合 
この場合、上述したステップＳＧ１の判断結果が「ＮＯ」となり、ステップＳＧ４に進む。ステップＳＧ４では、指の位置座標ｓｆｉｇＰのみ存在するか否かを判断する。そして、ステップＳＧ４の判断結果は「ＹＥＳ」になり、ステップＳＧ５に進む。ステップＳＧ５では、指の位置座標ｓｆｉｇＰを、押鍵しない指の位置座標ｓｆｉｇＤに設定する。この後、上述したステップＳＧ３に進み、ポインタｉｆｉｇで指定される押鍵しない指の座標位置ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］を登録して本処理を終える。
【００８４】
ｃ．指の位置座標ｓｆｉｇＮのみ存在する場合 
この場合、上述したステップＳＧ１、ＳＧ４の各判断結果がいずれも「ＮＯ」となり、ステップＳＧ６に進む。ステップＳＧ６では、指の位置座標ｓｆｉｇＮのみ存在するか否かを判断する。そして、ステップＳＧ６の判断結果は「ＹＥＳ」になり、ステップＳＧ７に進む。ステップＳＧ７では、指の位置座標ｓｆｉｇＮを、押鍵しない指の位置座標ｓｆｉｇＤに設定する。この後、上述したステップＳＧ３に進み、ポインタｉｆｉｇで指定される押鍵しない指の座標位置ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］を登録して本処理を終える。
【００８５】
ｄ．指の位置座標ｓｆｉｇＰ，ｓｆｉｇＮいずれも存在しない場合 
この場合、上述したステップＳＧ１、ＳＧ４、ＳＧ６の各判断結果がいずれも「ＮＯ」となり、ステップＳＧ８に進む。ステップＳＧ８では、上述した座標候補取得処理で求めた指の座標候補ｓｆｉｇＨ，ｓｆｉｇＬの平均値（ｓｆｉｇＨ＋ｓｆｉｇＬ）／２を、ポインタｍｅで指定される曲データＭＥ［ｍｅ］において、ポインタｉｆｉｇで指定される押鍵しない指の座標位置ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］を設定して本処理を終える。
【００８６】
以上説明したように、本実施の形態では、曲を構成する各音を表すと共に、それら各音を弾くべき指を指定する曲データＭＥ［０］〜［Ｎ］毎に、押鍵する指の位置座標ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］、押鍵しない指の座標位置ｍｅ．ｓｆｉｇＰｏｓ［ｉｆｉｇ］および手の位置座標ｓＨａｎｄＰｏｓを生成して登録し、これらに基づき各音を演奏する際の手および各指の位置変化をグラフ化して表示部１２に画面表示するので、押鍵しない指をどの位置に置いておけばよいのかを教示し得るようになる。
【００８７】
したがって、例えば図１１に図示する楽譜の曲データＭＥ［０］〜［Ｎ］の場合、演奏する際の手および各指の位置は図１２に図示するグラフとして表現される。なお、図１１に図示した楽譜において各音符上に付与される数字は運指を表す指番号である。また、図１２に図示したグラフにおいて、横軸は演奏開始時点を起点とした演奏時刻を、縦軸は鍵盤座標を表す。
【符号の説明】
【００８８】
１０  鍵盤
１１  スイッチ部
１２  表示部
１３  ＣＰＵ
１４  ＲＯＭ
１５  ＲＡＭ
１６  音源
１７  サウンドシステム
【図１】
2011237821.tif 000003
【図２】
2011237821.tif 000004
【図３】
2011237821.tif 000005
【図４】
2011237821.tif 000006
【図５】
2011237821.tif 000007
【図６】
2011237821.tif 000008
【図７】
2011237821.tif 000009
【図８】
2011237821.tif 000010
【図９】
2011237821.tif 000011
【図１０】
2011237821.tif 000012
【図１１】
2011237821.tif 000013
【図１２】
2011237821.tif 000014
【手続補正書】
【提出日】平成23年8月4日(2011.8.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
上記目的を達成するため、請求項１に記載の発明では、少なくとも曲を構成する各音およびそれら各音を弾く指を表す曲データを記憶する曲データ記憶手段と、
前記曲データ記憶手段から各音毎の曲データを読み出し、読み出した曲データの音を押鍵する指の位置を表す押鍵指位置座標を生成するとともに、前記読み出した曲データの音が和音を構成する場合、当該曲データの音を除く他の和音構成音にそれぞれ割当てられる各指の押鍵状態を表す押鍵情報と、それら和音構成音を押鍵する各指の位置を表す和音押鍵指位置情報とを生成して当該曲データに登録する押鍵指位置発生手段と、
前記曲データ記憶手段から各音毎の曲データを読み出し、当該読み出した曲データの音を押鍵しない指の位置を表す無押鍵指位置座標を生成する無押鍵指位置発生手段と、
前記押鍵指位置発生手段により生成された押鍵指位置座標と、前記無押鍵指位置発生手段により生成された無押鍵指位置座標とを参照して曲データを演奏する際の各指の位置変化を表示する指位置表示手段とを具備することを特徴とする。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】削除
【補正の内容】
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】削除
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
上記請求項１に従属する請求項２に記載の発明では、前記無押鍵指位置発生手段は、前記読み出した曲データの音と同時刻に押鍵される指の位置と、前記読み出した曲データの音以前に押鍵していた指の位置と、前記読み出した曲データの音以降に押鍵する指の位置とを勘案して、読み出した曲データの音を押鍵しない指の鍵盤上での位置を表す無押鍵指位置座標を生成することを特徴とする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
上記請求項１に従属する請求項３に記載の発明では、前記押鍵指位置発生手段によって生成された押鍵指位置座標と、前記無押鍵指位置発生手段によって生成された無押鍵指位置座標とを対応する曲データに登録する指位置座標登録手段を更に具備することを特徴とする。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
上記請求項１に従属する請求項４に記載の発明では、前記読み出した曲データの音に対して親指から小指までの全ての指が取り得る位置範囲から手の位置を表す手位置座標を生成する手位置発生手段と、前記手位置発生手段により生成された手位置座標を参照して曲データを演奏する際の手の位置変化を表示する手位置表示手段とを更に具備することを特徴とする。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
請求項５に記載の発明では、少なくとも曲を構成する各音およびそれら各音を弾く指を表す曲データを記憶する曲データ記憶手段を有するコンピュータに、
各音毎に読み出す読み出し処理と、
前記読み出し処理により読み出した曲データの音を押鍵する指の位置を表す押鍵指位置座標を生成するとともに、前記読み出した曲データの音が和音を構成する場合、当該曲データの音を除く他の和音構成音にそれぞれ割当てられる各指の押鍵状態を表す押鍵情報と、それら和音構成音を押鍵する各指の位置を表す和音押鍵指位置情報とを生成して当該曲データに登録する押鍵指位置発生処理と、
前記読み出し処理により読み出した曲データの音を押鍵しない指の位置を表す無押鍵指位置座標を生成する無押鍵指位置発生処理と、
前記押鍵指位置発生処理により生成された押鍵指位置座標と、前記無押鍵指位置発生処理により生成された無押鍵指位置座標とを参照して曲データを演奏する際の各指の位置変化を表示する指位置表示処理とを実行させることを特徴とする。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】削除
【補正の内容】
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】削除
【補正の内容】
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
上記請求項５に従属する請求項６に記載の発明では、前記無押鍵指位置発生処理は、前記読み出し処理により読み出した曲データの音と同時刻に押鍵される指の位置と、前記読み出した曲データの音以前に押鍵していた指の位置と、前記読み出した曲データの音以降に押鍵する指の位置とを勘案して、前記読み出した音を押鍵しない指の鍵盤上での位置を表す無押鍵指位置座標を生成することを特徴とする。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
上記請求項５に従属する請求項７に記載の発明では、前記押鍵指位置発生処理によって生成された押鍵指位置座標と、前記無押鍵指位置発生処理によって生成された無押鍵指位置座標とを対応する曲データに登録する登録処理をさらにコンピュータに実行させることを特徴とする。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
上記請求項５に従属する請求項８に記載の発明では、前記読み出した曲データの音に対して親指から小指までの全ての指が取り得る位置範囲から手の位置を表す手位置座標を生成する手位置発生処理と、前記手位置発生処理により生成された手位置座標を参照して曲データを演奏する際の手の位置変化を表示する手位置表示処理をさらにコンピュータに実行させることを特徴とする。
【手続補正１３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも曲を構成する各音およびそれら各音を弾く指を表す曲データを記憶する曲データ記憶手段と、
前記曲データ記憶手段から各音毎の曲データを読み出し、読み出した曲データの音を押鍵する指の位置を表す押鍵指位置座標を生成するとともに、前記読み出した曲データの音が和音を構成する場合、当該曲データの音を除く他の和音構成音にそれぞれ割当てられる各指の押鍵状態を表す押鍵情報と、それら和音構成音を押鍵する各指の位置を表す和音押鍵指位置情報とを生成して当該曲データに登録する押鍵指位置発生手段と、
前記曲データ記憶手段から各音毎の曲データを読み出し、当該読み出した曲データの音を押鍵しない指の位置を表す無押鍵指位置座標を生成する無押鍵指位置発生手段と、
前記押鍵指位置発生手段により生成された押鍵指位置座標と、前記無押鍵指位置発生手段により生成された無押鍵指位置座標とを参照して曲データを演奏する際の各指の位置変化を表示する指位置表示手段と
を具備することを特徴とする演奏支援情報生成装置。
【請求項２】
前記無押鍵指位置発生手段は、前記読み出した曲データの音と同時刻に押鍵される指の位置と、読み出した曲データの音以前に押鍵していた指の位置と、前記読み出した曲データの音以降に押鍵する指の位置とを勘案して、前記読み出した曲データの音を押鍵しない指の鍵盤上での位置を表す無押鍵指位置座標を生成することを特徴とする請求項１記載の演奏支援情報生成装置。
【請求項３】
前記押鍵指位置発生手段によって生成された押鍵指位置座標と、前記無押鍵指位置発生手段によって生成された無押鍵指位置座標とを対応する曲データに登録する指位置座標登録手段を更に具備することを特徴とする請求項１記載の演奏支援情報生成装置。
【請求項４】
前記読み出した曲データの音に対して親指から小指までの全ての指が取り得る位置範囲から手の位置を表す手位置座標を生成する手位置発生手段と、前記手位置発生手段により生成された手位置座標を参照して曲データを演奏する際の手の位置変化を表示する手位置表示手段とを更に具備することを特徴とする請求項１記載の演奏支援情報生成装置。
【請求項５】
少なくとも曲を構成する各音およびそれら各音を弾く指を表す曲データを記憶する曲データ記憶手段を有するコンピュータに、
各音毎に読み出す読み出し処理と、
前記読み出し処理により読み出した曲データの音を、押鍵する指の位置を表す押鍵指位置座標を生成するとともに、前記読み出した曲データの音が和音を構成する場合、当該曲データの音を除く他の和音構成音にそれぞれ割当てられる各指の押鍵状態を表す押鍵情報と、それら和音構成音を押鍵する各指の位置を表す和音押鍵指位置情報とを生成して当該曲データに登録する押鍵指位置発生処理と、
前記読み出し処理により読み出した曲データの音を押鍵しない指の位置を表す無押鍵指位置座標を生成する無押鍵指位置発生処理と、
前記押鍵指位置発生処理により生成された押鍵指位置座標と、前記無押鍵指位置発生処理により生成された無押鍵指位置座標とを参照して曲データを演奏する際の各指の位置変化を表示する指位置表示処理と
を実行させることを特徴とする演奏支援情報生成プログラム。
【請求項６】
前記無押鍵指位置発生処理は、前記読み出し処理により読み出した曲データの音と同時刻に押鍵される指の位置と、前記読み出した曲データの音以前に押鍵していた指の位置と、前記読み出した曲データの音以降に押鍵する指の位置とを勘案して、前記読み出した曲データの音を押鍵しない指の鍵盤上での位置を表す無押鍵指位置座標を生成することを特徴とする請求項５記載の演奏支援情報生成プログラム。
【請求項７】
前記押鍵指位置発生処理によって生成された押鍵指位置座標と、前記無押鍵指位置発生処理によって生成された無押鍵指位置座標とを対応する曲データに登録する登録処理をさらにコンピュータで実行させることを特徴とする請求項５記載の演奏支援情報生成プログラム。
【請求項８】
前記読み出した曲データの音に対して親指から小指までの全ての指が取り得る位置範囲から手の位置を表す手位置座標を生成する手位置発生処理と、前記手位置発生処理により生成された手位置座標を参照して曲データを演奏する際の手の位置変化を表示する手位置表示処理をさらにコンピュータで実行させることを特徴とする請求項５記載の演奏支援情報生成プログラム。