(57)【特許請求の範囲】
【請求項１】
所定の演奏手段の演奏すべき操作子及び当該操作子を演奏すべき指を指示する演奏指示データを有する演奏教習用の曲データを、記憶手段から入力するデータ入力手段と、
入力された曲データにおける前記演奏指示データで指示された演奏すべき操作子及び指に対応する運指画像を所定の表示手段に出力して表示させる表示制御手段と、
前記演奏指示データが和音の演奏を指示する和音演奏指示データであるか否かを検出する和音検出手段と、
前記和音検出手段が検出した第１の和音演奏指示データの後に連続して第２の和音演奏指示データを検出した場合には前記第１の和音演奏指示データにおいて指示された演奏すべき操作子及び指と同一の操作子及び指が前記第２の和音演奏指示データにおいて指示されているか否かを判別する指示判別手段と、
前記指示判別手段によって前記同一の操作子及び指が指示されていると判別された場合には前記表示制御手段によって出力される前記第１の和音演奏指示データに対応する運指画像の当該指示された指に対応する位置に前記同一の操作子及び指が指示されている旨を表す識別画像を合成する画像制御手段と
を有する演奏教習装置。
【請求項２】
前記演奏手段は鍵盤装置であり、前記識別画像は前記第１の和音演奏指示データに対応する手形画像の指の上に重ねて表示される画像であることを特徴とする請求項１に記載の演奏教習装置。
【請求項３】
コンピュータに、
所定の演奏手段の演奏すべき操作子及び当該操作子を演奏すべき指を指示する演奏指示データを有する演奏教習用の曲データを、記憶手段から入力する第１のステップと、
入力された曲データにおける前記演奏指示データで指示された演奏すべき操作子及び指に対応する運指画像を所定の表示手段に出力して表示させる第２のステップと、
前記演奏指示データが和音の演奏を指示する和音演奏指示データであるか否かを検出する第３のステップと、
前記第３のステップが検出した第１の和音演奏指示データの後に連続して第２の和音演奏指示データを検出した場合には前記第１の和音演奏指示データにおいて指示された演奏すべき操作子及び指と同一の操作子及び指が前記第２の和音演奏指示データにおいて指示されているか否かを判別する第４のステップと、
前記第４のステップによって前記同一の操作子及び指が指示されていると判別された場合には前記第２のステップによって出力される前記第１の和音演奏指示データに対応する運指画像の当該指示された指に対応する位置に前記同一の操作子及び指が指示されている旨を表す識別画像を合成する第５のステップと
を実行させるための演奏教習処理のプログラム。
【請求項４】
前記演奏手段は鍵盤装置であり、前記識別画像は前記第１の和音演奏指示データに対応する手形画像の指の上に重ねて表示される画像であることを特徴とする請求項３に記載の演奏教習処理のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演奏教習装置及び演奏教習処理のプログラムに関する。
【０００２】
【従来の技術】
従来の演奏教習装置及び演奏教習処理のプログラムにおいては、例えば、演奏教習用の曲データに従って鍵盤装置を演奏する場合に、鍵盤を演奏すべき指を指示する手形の運指画像を表示装置の画面に表示して、演奏技術に熟達していない初心者のユーザに対して演奏教習を提供している。ユーザは、画面に表示された運指画像を見ながら演奏することができる。特に、初心者にとって和音演奏のように複数の指で演奏するような高度な押鍵操作の場合には、音符を見ただけではどの指でどの鍵を操作するかを理解するのは困難である。したがって、和音の運指画像を表示することは演奏練習の支援に効果がある。
【０００３】
【発明が解決しようとする課題】
しかしながら、短い時間に和音演奏が連続する場合には、現在の和音演奏から次の和音演奏に移行する際に、表示される和音の運指画像も更新される。このため、新たに表示された運指画像を見てもスムーズに次の和音演奏をすることができないという問題があった。
【０００４】
本発明の課題は、演奏すべき指を指示する運指画像を画面に表示して鍵盤装置等の演奏手段を演奏する場合に、２つの和音演奏が連続した場合でも、現在の和音演奏から次の和音演奏にスムーズに移れるようにすることである。
【０００５】
【課題を解決するための手段】
請求項１に記載の演奏教習装置は、所定の演奏手段（実施形態においては、図１（１）の電子楽器２に相当する）の演奏すべき操作子（実施形態においては、図１（１）の電子楽器２である鍵盤装置の鍵に相当する）及び操作子を演奏すべき指を指示する演奏指示データ（実施形態においては、ノートオンデータ）を有する演奏教習用の曲データを、記憶手段（実施形態においては、図１（２）の曲ＲＯＭ１５に相当する）から入力するデータ入力手段と、入力された曲データにおける演奏指示データで指示された演奏すべき操作子及び指に対応する運指画像（実施形態においては、図１２の鍵盤画像２１及び手形画像２２に相当する）を所定の表示手段（実施形態においては、図１（２）の表示部１７に相当する）に出力して表示させる表示制御手段（実施形態においては、図１（２）のＣＰＵ１１に相当する）と、演奏指示データが和音の演奏を指示する和音演奏指示データであるか否かを検出する和音検出手段（実施形態においては、図１（２）のＣＰＵ１１に相当する）と、和音検出手段が検出した第１の和音演奏指示データ（実施形態においては、図２（Ｂ）のＣＣエリアにストアするノートオンデータに相当する）の後に連続して第２の和音演奏指示データ（実施形態においては、図２（Ｂ）のＣＮエリアにストアするノートオンデータに相当する）を検出した場合には第１の和音演奏指示データにおいて指示された演奏すべき操作子及び指と同一の操作子及び指が第２の和音演奏指示データにおいて指示されているか否かを判別する指示判別手段（実施形態においては、図１（２）のＣＰＵ１１に相当する）と、指示判別手段によって同一の操作子及び指が指示されていると判別された場合には表示制御手段によって出力される第１の和音演奏指示データに対応する運指画像の指示された指に対応する位置に同一の操作子及び指が指示されている旨を表す識別画像（実施形態においては、図１２のガイド画像２３に相当する）を合成する画像制御手段（実施形態においては、図１（２）のＣＰＵ１１に相当する）とを有する構成になっている。
【０００６】
請求項３に記載の演奏教習処理のプログラムは、コンピュータに、所定の演奏手段（実施形態においては、図１（１）の電子楽器２に相当する）の演奏すべき操作子（実施形態においては、図１（１）の電子楽器２の鍵に相当する）及び操作子を演奏すべき指を指示する演奏指示データを有する演奏教習用の曲データを、記憶手段（実施形態においては、図１（２）の曲ＲＯＭ１５に相当する）から入力する第１のステップと、入力された曲データにおける演奏指示データで指示された演奏すべき操作子及び指に対応する運指画像（実施形態においては、図１２の鍵盤画像２１及び手形画像２２に相当する）を所定の表示手段（実施形態においては、図１（２）の表示部１７に相当する）に出力して表示させる第２のステップと、演奏指示データが和音の演奏を指示する和音演奏指示データであるか否かを検出する第３のステップと、第３のステップが検出した第１の和音演奏指示データ（実施形態においては、図２（Ｂ）のＣＣエリアにストアするノートオンデータに相当する）の後に連続して第２の和音演奏指示データ（実施形態においては、図２（Ｂ）のＣＮエリアにストアするノートオンデータに相当する）を検出した場合には第１の和音演奏指示データにおいて指示された演奏すべき操作子及び指と同一の操作子及び指が第２の和音演奏指示データにおいて指示されているか否かを判別する第４のステップと、第４のステップによって同一の操作子及び指が指示されていると判別された場合には第２のステップによって出力される第１の和音演奏指示データに対応する運指画像の指示された指に対応する位置に同一の操作子及び指が指示されている旨を表す識別画像（実施形態においては、図１２のガイド画像２３に相当する）を合成する第５のステップとを実行させる。
【０００７】
請求項１又は請求項３に記載の発明によれば、演奏の際に運指画像を表示して演奏を支援する場合において、連続して和音演奏を行う際に、先の和音演奏と後の和音演奏とで操作が変化しない指がある場合には、運指画像におけるその指の位置に識別画像を表示する。
【０００８】
【発明の実施の形態】
以下、本発明による実施形態について、図を参照して説明する。
図１は、本発明による演奏教習装置の実施形態の構成を示し、（１）は演奏教習装置としてのパソコン１に接続された鍵盤装置等の電子楽器２からなるシステム図であり、（２）はパソコン１の内部構成を示すブロック図である。
図１（１）において、パソコン１は、ＯＳ（オペレーションシステム）上でアプリケーション（この実施形態においては、演奏教習処理のプログラム）を起動させて、電子楽器２の演奏操作を検出し、その演奏操作の状態を判定するとともに演奏後の評価を行う。
【０００９】
図１（２）において、ＣＰＵ１１はシステムバス１２を介して、プログラムＲＯＭ１３、ワークＲＡＭ１４、曲ＲＯＭ１５、マウス等からなる操作部１６、表示部１７、及びＩ／Ｏインターフェース１８に接続されている。
プログラムＲＯＭ１３には、ファイル（データ）の管理、メモリの管理、入出力の管理、ユーザインターフェースの提供等を行うＯＳのソフトウェアが格納されている。  曲ＲＯＭ１５には、演奏教習に必要な複数の曲データや運指画像及び後述するガイド画像が記憶されている。各曲データは、基本的には図２（Ａ）に示すように、ノートデータ（ノートオンデータ及びノートオフデータ）とタイムデータで構成されている。各ノートデータは、音高であるノート、オン又はオフを示すフラグ、ベロシティ、運指の手形画像番号、指番号で構成されている。曲ＲＯＭ１５は、例えばフラッシュＲＯＭ等の書き換え可能な不揮発性メモリで構成され、ユーザの希望に応じて記憶する曲データを書き変えることもできる。また、図には示していないが、インターネット等の通信回線を介して所定のサーバからＭＩＤＩ形式等からなる曲データを受信して、この曲ＲＯＭ１５に記憶することも可能である。
ワークＲＡＭ１４は、演奏教習処理やその他の処理に必要なデータを一時的に記憶するＣＰＵ１１のワークエリアであり、各種のレジスタやフラグが設けられている。また、図２（Ｂ）に示すように、２組の和音データをストアするエリアが設けられている。ＣＣ（１）〜ＣＣ（４）は先に入力した和音データをストアするエリア（以下、「ＣＣエリア」という）であり、ＣＮ（１）〜ＣＮ（４）はその後に連続して入力した和音データをストアするエリア（以下、「ＣＮエリア」という）である。
【００１０】
操作部１６はキーボードやマウスで構成され、操作に応じて演奏教習を受ける課題曲の選択等を行うことができる。表示部１７には、演奏教習を支援するメッセージや画像が表示される。例えば、鍵盤演奏を教習する運指画像が表示される。また、マウスのクリックによってオン・オフするアイコンスイッチが表示される。
Ｉ／Ｏインターフェース１８は、電子楽器２で演奏された演奏データを入力してＣＰＵ１１に受け渡す。
【００１１】
図３は、ＣＰＵ１１によって実行される演奏教習処理の動作を示すメインフローチャートである。まず、初期化処理（ステップＡ１）を行った後、スイッチ処理（ステップＡ２）、演奏処理（ステップＡ３）、表示処理（ステップＡ４）、その他の処理（ステップＡ５）を繰り返す。
初期化処理は、図４に示すように、運指画像生成処理（ステップＢ１）、その他の初期化処理（ステップＢ２）を行う。運指画像生成処理では、曲データを構成する各ノートオンデータに応じて、表示すべき鍵盤の画像、演奏する手の手形画像、押鍵する指の番号の組み合わせからなる運指画像を指定する演奏指示データ及び和音演奏指示データを作成するアルゴリズムを実行する。この場合において、曲データのノートオンイベントを入力したときにそのノートオンイベントに従った演奏指示データ及び和音演奏指示データを作成するアルゴリズムを実行する。あるいは、データのノートオンイベントを入力する前に曲データの各ノートオンイベントに従った演奏指示データ及び和音演奏指示データを作成するアルゴリズムを実行する。
【００１２】
図５は、図３のメインフローにおけるスイッチ処理のフローチャートである。図５では、操作部１６において、キーボードのいずれかのスイッチ（又は、マウスクリックによるアイコンスイッチ）がオンされたか否かを判別し（ステップＣ１）、いずれのスイッチもオンでない場合にはこのフローを終了する。いずれかのスイッチがオンされたときは、オンされたスイッチに応じた処理を行う。
スタートスイッチがオンされたか否かを判別し（ステップＣ２）、このスイッチがオンされたときは、フラグＳＴＦの値を反転する（ステップＣ３）。そして、ＳＴＦの値が「１」に反転したか否かを判別する（ステップＣ４）。ＳＴＦが「１」に反転した場合には、レジスタＡＤに選択されている曲データの先頭アドレス（この場合は「０」）をストアする（ステップＣ５）。この後、又はステップＣ４において、ＳＴＦが「０」に反転した場合には、メインフローに戻る。
スタートスイッチがオンでない場合には、その他のスイッチがオンされたか否かを判別し（ステップＣ６）、他のスイッチのいずれかがオンされたときは、そのスイッチに対応するその他の処理を行う（ステップＣ７）。その他の処理では、ワークＲＡＭ１４の各レジスタはクリアされ、各フラグは「０」にリセットされる。この後は、メインフローに戻る。
【００１３】
図６〜図９は、図６のメインフローにおける演奏処理のフローチャートである。図６において、まず、ＳＴＦの値が「１（演奏）」であるか否かを判別する（ステップＤ１）。ＳＴＦの値が「０（演奏停止）」である場合にはこのフローを終了する。ＳＴＦの値が「１」である場合には、曲データにおけるＡＤのアドレス（最初は先頭アドレス「０」）のデータを読み出して、レジスタＤＡＴＡにストアする（ステップＤ２）。そして、ＤＡＴＡにストアしたデータが曲の終了を示すＥＮＤでないか否かを判別する（ステップＤ３）。ストアしたデータがＥＮＤである場合は、このフローを終了する。
【００１４】
ストアしたデータがＥＮＤでない場合には、そのデータがノートオンデータであるか否かを判別する（ステップＤ４）。ノートオンデータである場合には、フラグＮＦの値が「１」であるか否かを判別する（ステップＤ５）。ＮＦは、任意の１つの和音を構成する最初のノートオンデータの入力で「１」、最後のノートオンデータをストアした後に「０」にセットされるフラグである。
ノートオンデータを入力したときにＮＦが「０」である場合には、そのノートオンデータが和音を構成する最初のノートオンデータであるのか、又は、単音としてのノートオンデータであるかを判別する必要がある。そこで、このために用いるレジスタＴをクリアする（ステップＤ６）。そして、ＮＦの値を「１」にセットする（ステップＤ７）。また、ＤＡＴＡのノートオンデータをレジスタＤＲにストアする（ステップＤ８）。このときのノートオンデータはまだ和音を構成するデータであるか、又は単音のデータであるか分からないので、直接に図３（Ｂ）のＣＣエリアにストアせずに、ひとまずＤＲにストアする。次にＡＤのアドレスをインクリメントする（ステップＤ９）。
【００１５】
この後は、ステップＤ２に移行して次のデータをＤＡＴＡにストアする。ステップＤ４においてＤＡＴＡのデータがノートオンデータでない場合には、タイムデータであるか否かを判別する（ステップＤ１０）。タイムデータである場合には、そのタイムデータの値をＴの値に加算する（ステップＤ１１）。この後、又は、ＤＡＴＡのデータがタイムデータでなく、ノートオフデータやその他のデータである場合には、ステップＤ９においてＡＤのアドレスをインクリメントし、ステップＤ２に移行して次のデータをＤＡＴＡにストアする。
【００１６】
ＤＡＴＡのデータがノートオンデータである場合に、ステップＤ５においてＮＦの値が「１」である場合には、図７のステップＤ１２に移行してＴの値が所定の時間ΔＴよりも小さいか否かを判別する。ΔＴは、連続するノートオンデータが和音であるかどうかを判定する最小時間である。Ｔの値がΔＴよりも小さい場合には、フラグＷＦの値が「０」であるか否かを判別する（ステップＤ１３）。ＷＦは、すでに入力した和音データが図２（Ｂ）のＣＣエリアにストアされ、次の和音データを待つ場合に「１」にセットされるフラグである。
ＷＦの値が「０」である場合には、フラグＣＣＦの値が「０」であるか否かを判別する（ステップＤ１４）。ＣＣＦは、連続する（又は、その可能性がある）和音データのうち最初の和音データを構成する２つめのノートオンデータを入力したときに「１」にセットされるフラグである。
【００１７】
ＣＣＦの値が「０」である場合には、ＣＣエリアの各エリアを指定するポインタｎを「１」にセットする（ステップＤ１５）。次に、ＣＣＦの値を「１」にセットする（ステップＤ１６）。そして、ＤＲにひとまずストアしたノートオンデータをＣＣ（ｎ）に転送する（ステップＤ１７）。すなわち、ＤＲにひとまずストアしていたノートオンデータは最初の和音データを構成する最初のノートオンデータであるので、ＣＣ（１）に転送する。そして、ＤＲをクリアする（ステップＤ１８）。次に、ｎの値を「２」にインクリメントして（ステップＤ１９）、ＣＣ（ｎ）にＤＡＴＡのノートオンデータをストアする（ステップＤ２０）。次に、ｎの値をインクリメントして（ステップＤ２１）、図６のステップＤ９に移行してＡＤのアドレスをインクリメントする。この後は、ステップＤ２におけるデータ入力を続行する。
そして、ＤＡＴＡのデータが和音データを構成するノートオンデータである場合には、ｎの値をインクリメントしながらＣＣエリアに順次ストアする。一方、ＤＡＴＡのデータがタイムデータである場合には、Ｔにそのタイムデータの値を累算する。Ｔの累算値がΔＴより小さい限り、次に入力するノートオンデータは和音データを構成する。
【００１８】
図７のステップＤ１２において、Ｔの値がΔＴ以上になったときは、和音データを構成する最後のノートオンデータを入力して和音データとしてストアした場合である。この場合には、図８のフローにおいて、ＮＦの値を「０」に戻す（ステップＤ２２）。次に、ＣＣＦの値が「１」であるか否かを判別する（ステップＤ２３ａ）。この値が「０」である場合には、入力してＤＲにストアしたノートオンデータが和音データを構成せず、単音のノートオンデータの場合である。
一方、ＣＣＦの値が「１」である場合には、和音データをＣＣエリアに全てストアした状態である。ＣＣＦの値が「１」の場合は、フラグＣＮＦの値が「１」であるか否かを判別する（ステップＤ２３ｂ）。
ＣＮＦは、連続する和音データのうち後の和音データを構成する２つめのノートオンデータを入力したときに「１」にセットされるフラグである。ＣＮＦの値が「０」の場合は、ＣＮエリアにまだ和音データがストアされていない場合である。この場合は、ＷＦの値が「０」であるか否かを判別する（ステップＤ２４）。この値が「０」である場合には、ＷＦの値を「１」にセットする（ステップＤ２５）。すなわち、ＣＣエリアにストアした和音データの後に連続する和音データを待つ状態になる。
【００１９】
そして、図６のステップＤ９に移行して、ＡＤのアドレスをインクリメントする。この後は、ステップＤ２においてＤＡＴＡにストアしたデータがＥＮＤでない限り、ステップＤ４においてデータの内容を判別する。ＣＣエリアに全ての和音データをストアした後は、次のノートオンデータをステップＤ８においてひとまずＤＲにストアし、図７のステップＤ１２においてＴの値がΔＴより小さいか否かを判別して、次のノートオンデータが和音データを構成するかどうかを判別する。
Ｔの値がΔＴより小さい場合には、ステップＤ１３においてＷＦの値が「０」であるか否かを判別するが、ＣＣエリアにストアした和音データの後に連続する和音データを待つ状態においては、ＷＦの値は「１」である。この場合には、ＣＮＦの値が「０」であるか否かを判別する（ステップＤ２６）。
【００２０】
ステップＤ２６においてＣＮＦの値が「０」である場合には、先に入力した和音データの場合と同様に、ＣＮエリアの各エリアを指定するポインタｎを「１」にセットする（ステップＤ２７）。次に、ＣＮＦの値を「１」にセットする（ステップＤ２８）。そして、ＤＲにひとまずストアしたノートオンデータをＣＮ（ｎ）に転送する（ステップＤ２９）。すなわち、ＤＲにひとまずストアしていたノートオンデータは次の和音データを構成する最初のノートオンデータであるので、ＣＮ（１）に転送する。そして、ＤＲをクリアする（ステップＤ３０）。次に、ｎの値を「２」にインクリメントして（ステップＤ３１）、ＣＮ（ｎ）にＤＡＴＡのノートオンデータをストアする（ステップＤ３２）。次に、ｎの値をインクリメントして（ステップＤ２１）、図６のステップＤ９に移行してＡＤのアドレスをインクリメントする。この後は、ステップＤ２におけるデータ入力を続行する。
【００２１】
そして、ＤＡＴＡのデータが和音データを構成するノートオンデータである場合には、ｎの値をインクリメントしながらＣＮエリアに順次ストアする。一方、ＤＡＴＡのデータがタイムデータである場合には、Ｔにそのタイムデータの値を累算する。Ｔの累算値がΔＴより小さい限り、次に入力するノートオンデータは和音データを構成する。
図７のステップＤ１２において、Ｔの値がΔＴ以上になったときは、ＣＣエリアにストアした和音データの後に続く次の和音データを構成する最後のノートオンデータをＣＮエリアに入力して和音データとして全てストアした場合である。この場合には、図８のステップＤ２２においてＮＦの値を「０」に戻す。そして、ステップＤ２３ａ、ステップＤ２３ｂへと移行する。
【００２２】
一方、ＣＣエリアにストアした和音データの後に続く次の和音データを待っている状態、すなわち、ＷＦの値が「１」の状態で、ステップＤ１２においてＴの値がΔＴ以上の場合には、連続した次の和音データがない場合である。この場合には、図８のステップｄ２２でＮＦの値を「０」に戻した後、ステップＤ２３ａ、ステップＤ２３ｂ、ステップＤ２４を経て、ステップＤ３３においてＷＦの値を「０」に戻す。
【００２３】
図８のステップＤ２３ａにおいて、ＣＣＦの値が「０」である場合、ステップＤ２３ｂにおいてＣＮＦの値が「１」である場合、又は、ステップＤ３３においてＷＦの値を「０」に戻した後は、ステップＤ３４において運指処理を実行する。すなわち、単音のノートオンデータを入力した場合、連続する和音データを入力した場合、又は、和音データを１つだけ入力した場合は、それぞれのデータに応じた運指処理を実行する。
【００２４】
この運指処理のフローチャートを図９及び図１０に示す。図９において、ＣＣＦの値が「１」であるか否かを判別し（ステップＤ３５）、この値が「１」である場合には、ＣＣエリアの全てのノートオンデータに対応の鍵盤画像・手形画像を選択する（ステップＤ３６）。
次に、図２（Ｂ）に示したＣＣエリアのノートデータＮＯＴＥＣ（ｎ）を押鍵する指番号のデータをストアするＦＣ（ｎ）の各エリアを指定するポインタｎを「１」にセットして（ステップＤ３７）、ＦＣ（ｎ）に指番号をストアする（ステップＤ３８）。ストアするごとにｎの値をインクリメントして（ステップＤ３９）、ｎで指定したＣＣ（ｎ）のエリアにデータが残っていないか判別する（ステップＤ４０）。まだデータが残っている場合には、ステップ３８において指番号をストアする。指定したＣＣ（ｎ）のエリアにデータが残っていない場合には、ＣＮＦの値が「１」であるか否かを判別する（ステップＤ４１）。
ＣＮＦの値が「０」で、ＣＮエリアに和音データが残っていない場合には、このフローを終了して図８のフローに戻る。また、ステップＤ３５においてＣＣＦの値が「０」で、ＣＣエリアに和音データが残っていない場合には、ＤＲにストアしている単音のノートオンデータに対応の鍵盤画像・手形画像を選択して（ステップＤ４２）、このフローを終了して図８のフローに戻る。
【００２５】
ステップＤ４１においてＣＮＦの値が「１」である場合には、ＣＮエリアの全てのノートオンデータに対応の鍵盤画像・手形画像を選択する（ステップＤ４３）。次に、図２（Ｂ）に示したＣＮエリアのノートデータＮＯＴＥＮ（ｎ）を押鍵する指番号のデータをストアするＦＮ（ｎ）の各エリアを指定するポインタｎを「１」にセットして（ステップＤ４４）、ＦＮ（ｎ）に指番号をストアする（ステップＤ４５）。ストアするごとにｎの値をインクリメントして（ステップＤ４６）、ｎで指定したＣＮ（ｎ）のエリアにデータが残っていか判別する（ステップＤ４７）。まだデータが残っている場合には、ステップＤ４５において指番号をストアする。
【００２６】
指定したＣＮ（ｎ）のエリアにデータが残っていない場合には、図１０のフローにおいて、ＣＣエリアのノートデータの各エリアを指定するポインタｊを「１」にセットし（ステップＤ４８）、ＮＯＴＥＣ（ｊ）のノートデータをレジスタＮＯＴＥ１にストアする（ステップＤ４９）。また、ＣＮエリアのノートデータの各エリアを指定するポインタｋを「１」にセットし（ステップＤ５０）、ＮＯＴＥＮ（ｋ）のノートデータをレジスタＮＯＴＥ２にストアする（ステップＤ５１）。そして、ＮＯＴＥ１のノートデータとＮＯＴＥ２のノートデータとが一致するか否かを判別する（ステップＤ５２）。
【００２７】
この２つのノートデータが一致しない場合には、ｋの値をインクリメントする（ステップＤ５３）、そして、ｋの値で指定するＣＮ（ｋ）のエリアにデータが残っていないか判別する（ステップＤ５４）。データが残っている場合には、ステップＤ５１においてＮＯＴＥ２にＮＯＴＥＮ（ｋ）をストアして、ステップＤ５２においてＮＯＴＥ１のノートデータとＮＯＴＥ２のノートデータとが一致するか否かを判別する。２つのノートデータが一致した場合には、ＦＣ（ｊ）の指番号とＦＮ（ｋ）の指番号が一致するか否かを判別する（ステップＤ５５）。２つの指番号が一致する場合には、図２（Ｂ）に示したＣＣエリアにおいて、ｊで指定するフラグＧＦ（ｊ）に「１」をセットする（ステップＤ５６）。
【００２８】
ＧＦ（ｊ）に「１」をセットした後、又は、ステップＤ５４においてＣＮ（ｋ）のエリアにデータが残っていない場合には、ｊの値をインクリメントする（ステップＤ５７）、そして、ｊの値で指定するＣＣ（ｊ）のエリアにデータが残っていないか判別する（ステップＤ５８）。データが残っている場合には、ステップＤ４９に移行して、ステップＤ５８までのループを繰り返す。そして、ＣＣエリア及びＣＮエリアにおいて、ノートオンデータ及び指番号が一致する場合には、ポインタｊで指定する対応するフラグＧＦ（ｊ）に「１」をセットする。ステップＤ５８において、ｊの値で指定するＣＣ（ｊ）のエリアにデータが残っていない場合には、このフローを終了して図８のフローに戻る。
【００２９】
運指処理が終了した後、図８のステップＤ５９ａにおいてＣＣＦの値が「１」であるか否かを判別する。この値が「０」である場合には、この演奏処理のフローを終了して図３のメインフローに戻る。ＣＣＦの値が「１」である場合には、ＣＮＦの値が「１」であるか否かを判別する（ステップＤ５９ａ）。この値が「１」である場合には、ＣＮエリアの全てのノートオンデータをＣＣエリアに転送する（ステップＤ６０）。そして、ＣＣＦの値を「１」にセットし（ステップＤ６１）、ＣＮエリアをクリアする（ステップＤ６２）。また、ＣＮＦの値を「０」に戻し（ステップＤ６３）、ＷＦの値を「１」にセットする（ステップＤ６４）。そして、図３のメインフローに戻る。
すなわち、連続する２つの和音データがある場合において、先の和音データの運指処理が終了した後は、後の和音データをＣＣエリアに移して、さらに和音データが続く場合に対応する。
ステップＤ５９において、ＣＮＦの値が「０」である場合には、和音データが連続していないので、ＣＣエリアをクリアし（ステップＤ６５）、ＣＣＦの値を「０」に戻し（ステップＤ６６）、図３のメインフローに戻る。
【００３０】
図１１は、図３のメインフローにおける表示処理のフローチャートである。入力した曲データのノートオンデータが押鍵タイミングになったか否かを判別し（ステップＥ１）、押鍵タイミングになったときは、その押鍵に係る鍵盤画像及び手形画像を表示部１７に表示する（ステップＥ２）。図１２は表示部１７の画面を示している。図１２（Ａ）、（Ｂ）の２つの画面に、鍵盤画像２１及び手形画像２２が表示されている。
次に、図２（Ｂ）のＣＣエリアを参照して、フラグＧＦ（ｎ）を指定するポインタｎを「１」にセットして（ステップＥ３）、ＧＦ（ｎ）の値が「１」であるか否かを判別する（ステップＥ４）。この値が「１」である場合には、ＦＣ（ｎ）の指番号に対応する手形画像の指にガイド画像を表示する（ステップＥ５）。この後、又はステップＥ４においてＧＦ（ｎ）の値が「０」である場合には、ｎの値をインクリメントする（ステップＥ６）。そして、ｎの値が和音演奏で使う指の最大数である「４」を超えたか否かを判別する（ステップＥ７）。ｎの値が「４」以下である場合には、ステップＥ４に移行してＧＦ（ｎ）の値が「１」であるか否かを判別する。
【００３１】
ステップＥ７において、ｎの値が「４」を超えた場合には、ＧＦ（ｎ）の値が「１」であるＦＣ（ｎ）の指番号に対応する手形画像の指に全てのガイド画像を表示する。実際は、手形画像にガイド画像を合成して、表示部１７に出力して表示する。図１２（Ａ）、（Ｂ）の画面には、手形画像の指の上に●印のガイド画像２３が表示されている。すなわち、和音示データの後に連続して次の和音データがある場合に、次の和音データの演奏で同じ鍵を同じ指で押鍵する場合には、その指の上にガイド画像２３を重ねて表示する。
すなわち、図１２（Ａ）の場合には、現在押鍵している指のうち、親指、中指、及び小指については、次の和音和音演奏に移行しても各指で現在と同じ鍵を押鍵することを示している。また、図１２（Ｂ）の場合には、現在押鍵している指のうち、親指だけは次の和音演奏に移行してもその指で現在と同じ鍵を押鍵することを示している。したがって、ユーザは現在の運指画像を見て和音演奏を行っているときに、次の和音演奏の運指を予想することができる。
次に、離鍵タイミングであるか否かを判別し（ステップＥ８）、離鍵タイミングに達したときは、表示中の運指画像を消去する（ステップＥ９）。運指画像を消去した後、又は、ステップＥ１において押鍵タイミングに達していない場合には、メインフローに戻る。
【００３２】
以上のように、上記実施形態によれば、演奏の際に運指画像を表示して演奏を支援する場合において、連続して和音演奏を行う際に、先の和音演奏と後の和音演奏とで操作が変化しない指がある場合には、運指画像におけるその指の位置にガイド画像を表示する。
したがって、演奏すべき指を指示する運指画像を画面に表示して鍵盤装置等の演奏手段を演奏する場合に、現在の運指画像を見て和音演奏を行っているときに、次の和音演奏の運指を予想することができるので、２つの和音演奏が連続した場合でも、現在の和音演奏から次の和音演奏にスムーズに移ることができる。
【００３３】
また、上記実施形態においては、物の発明としての演奏教習装置について説明したが、上記実施形態におけるフローチャートに示すように、演奏教習処理を実行するプログラムの発明を実現できる。
すなわち、そのプログラムは、所定の演奏手段の演奏すべき操作子及び当該操作子を演奏すべき指を指示する演奏指示データを有する演奏教習用の曲データを入力する第１のステップと、入力された曲データにおける演奏指示データで指示された演奏すべき操作子及び指に対応する運指画像を所定の表示手段に出力して表示させる第２のステップと、演奏指示データが和音の演奏を指示する和音演奏指示データであるか否かを検出する第３のステップと、第３のステップが検出した第１の和音演奏指示データの後に連続して第２の和音演奏指示データを検出した場合には第１の和音演奏指示データにおいて指示された演奏すべき操作子及び指と同一の操作子及び指が第２の和音演奏指示データにおいて指示されているか否かを判別する第４のステップと、第４のステップによって同一の操作子及び指が指示されていると判別された場合には第２のステップによって出力される第１の和音演奏指示データに対応する運指画像の指示された指に対応する位置に同一の操作子及び指が指示されている旨を表す識別画像を合成する第５のステップと
を有する。
【００３４】
【発明の効果】
本発明によれば、演奏すべき指を指示する運指画像を画面に表示して鍵盤装置等の演奏手段を演奏する場合に、現在の運指画像を見て和音演奏を行っているときに、次の和音演奏の運指を予想することができるので、２つの和音演奏が連続した場合でも、現在の和音演奏から次の和音演奏にスムーズに移ることができる。
【図面の簡単な説明】
【図１】本発明の演奏教習装置の構成を示し、（１）はそのシステム図、（２）は図１（１）のパソコンの内部構成を示すブロック図。
【図２】（Ａ）は図１（２）の曲ＲＯＭに記憶されている曲データの構成を示す図、（Ｂ）は図１（２）のワークＲＡＭにおいて和音データをストアするエリアを示す図。
【図３】図１（１）のＣＰＵによって実行されるメインフローチャート。
【図４】図３の初期化処理のフローチャート。
【図５】図３のスイッチ処理のフローチャート。
【図６】図３の演奏処理のフローチャート。
【図７】図６に続く演奏処理のフローチャート。
【図８】図７に続く演奏処理のフローチャート。
【図９】図８における運指処理のフローチャート。
【図１０】図９に続く演奏処理のフローチャート。
【図１１】図３の表示処理のフローチャート。
【図１２】図１（１）の表示部の画面に表示された運指画像及びガイド画像を示す図。
【符号の説明】
１  パソコン
２  電子楽器
１１  ＣＰＵ
１３  プログラムＲＯＭ
１４  ワークＲＡＭ
１５  曲ＲＯＭ
１６  操作部
１７  表示部
１８  Ｉ／Ｏインターフェース
【図１】
0003890935.tif 000002
【図２】
0003890935.tif 000003
【図３】
0003890935.tif 000004
【図４】
0003890935.tif 000005
【図５】
0003890935.tif 000006
【図６】
0003890935.tif 000007
【図７】
0003890935.tif 000008
【図８】
0003890935.tif 000009
【図９】
0003890935.tif 000010
【図１０】
0003890935.tif 000011
【図１１】
0003890935.tif 000012
【図１２】
0003890935.tif 000013