(57)【特許請求の範囲】
【請求項１】
曲を構成する各音を表す音符データを記憶する音符データ記憶手段と、
前記音符データ記憶手段に記憶される音符データに従って曲を構成する各音の演奏をガイドする第１のガイド手段と、
前記第１のガイド手段によるガイドに対応したユーザの演奏操作で発生する演奏データと、ガイドされた音の音符データとを比較して演奏ミスの有無を判定する第１の判定手段と、
前記第１の判定手段により演奏ミスが生じたと判定された音の音符データに対応付けられ、当該演奏ミスの内容に相当する演奏ミス項目の発生回数を計数する計数手段と、
前記計数手段により計数された演奏ミス項目別の発生回数を、曲を構成する各音の音符データ毎に集計した結果に基づき曲中の演奏ミス仕勝ちな音と、その音で起き易い演奏ミス項目とを抽出する抽出手段と、
前記抽出手段によって曲中の演奏ミス仕勝ちな音と、その音で起き易い演奏ミス項目とが抽出された後に前記第１のガイド手段が実行するガイドに対応したユーザの演奏操作で発生する演奏データと、ガイドされた音の音符データとを比較して演奏ミスの有無を判定する第２の判定手段と、
前記第２の判定手段により演奏ミスが生じたと判定された音が、前記抽出手段によって抽出された演奏ミス仕勝ちな音における起き易い演奏ミス項目に合致した場合に、その演奏ミス仕勝ちな音の音符データの演奏を所定回数繰り返しガイドする第２のガイド手段と
を具備することを特徴とする演奏教習装置。
【請求項２】
前記抽出手段は、演奏ミス項目別の発生回数の内、発生回数が最大かつ所定回数以上の演奏ミス項目を有する音符データを、演奏ミス仕勝ちな音における起き易い演奏ミス項目として抽出することを特徴とする請求項１記載の演奏教習装置。
【請求項３】
前記第２のガイド手段は、
前記第２の判定手段により演奏ミスが生じたと判定された音に対応する演奏データが発生した時点の前後所定時間幅を繰り返し練習期間に設定する期間設定手段と、
前記期間設定手段により設定された繰り返し練習期間において、演奏ミス仕勝ちな音の音符データの演奏を所定回数繰り返しガイドした後、前記第１のガイド手段にガイド再開を指示する再開指示手段と
を具備することを特徴とする請求項１記載の演奏教習装置。
【請求項４】
前記第２のガイド手段による繰り返しガイドに対応したユーザの演奏操作が適正であるか否かを判定する繰り返し練習判定手段と、
この繰り返し練習判定手段により誤った演奏操作が行われたと判定された場合に、前記第２のガイド手段に繰り返しガイドを始めからやり直させる練習回数制御手段と
を更に具備することを特徴とする請求項１記載の演奏教習装置。
【請求項５】
曲演奏上の影響度に応じて異なる重み付け係数を予め演奏ミス項目毎に付与しておき、前記第２の判定手段により演奏ミスが生じたと判定された音が、前記抽出手段によって抽出された演奏ミス仕勝ちな音における起き易い演奏ミス項目に合致した場合に、その起き易い演奏ミス項目に付与された重み付け係数を参照して前記第２のガイド手段に指示する繰り返し回数を異ならせる回数指示手段を更に備えることを特徴とする請求項１記載の演奏教習装置。
【請求項６】
コンピュータに、
曲を構成する各音を表す音符データに従って曲を構成する各音の演奏をガイドする第１のガイドステップと、
前記第１のガイドステップによるガイドに対応したユーザの演奏操作で発生する演奏データと、ガイドされた音の音符データとを比較して演奏ミスの有無を判定する第１の判定ステップと、
前記第１の判定ステップにより演奏ミスが生じたと判定された音の音符データに対応付けられ、当該演奏ミスの内容に相当する演奏ミス項目の発生回数を計数する計数ステップと、
前記計数ステップにより計数された演奏ミス項目別の発生回数を、曲を構成する各音の音符データ毎に集計した結果に基づき曲中の演奏ミス仕勝ちな音と、その音で起き易い演奏ミス項目とを抽出する抽出ステップと、
前記抽出ステップによって曲中の演奏ミス仕勝ちな音と、その音で起き易い演奏ミス項目とが抽出された後に前記第１のガイドステップが実行するガイドに対応したユーザの演奏操作で発生する演奏データと、ガイドされた音の音符データとを比較して演奏ミスの有無を判定する第２の判定ステップと、
前記第２の判定ステップにより演奏ミスが生じたと判定された音が、前記抽出ステップによって抽出された演奏ミス仕勝ちな音における起き易い演奏ミス項目に合致した場合に、その演奏ミス仕勝ちな音の音符データの演奏を所定回数繰り返しガイドする第２のガイドステップと
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、曲を演奏するユーザの間違う癖を矯正して練習効果を高める演奏教習装置およびプログラムに関する。
【背景技術】
【０００２】
発音すべき音高とその発音タイミングとを表す曲データに基づき、鍵盤の各鍵に設けられたＬＥＤ（発光素子）の内、発音すべき音高の鍵に配設されるＬＥＤを発音タイミングに対応して点灯させて演奏者に弾くべき鍵をガイドする装置が知られている。この種の装置として、例えば特許文献１には、発音タイミングを過ぎてもガイドされた鍵が押鍵されない時には、そのガイドされた鍵が押鍵されるまで曲データの読み出しを停止させる教習形態とし、発音タイミング前にガイドされた鍵を押鍵した時にはその発音タイミングまで曲データを早送りさせる教習形態とする装置、すなわち弾くべき鍵の押鍵タイミングに応じて教習形態を変化させる装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２０６９６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、音楽に慣れ親しんでいない初心者ユーザでは、上記特許文献１に開示の教習形態であっても、ガイドされた鍵を押鍵することだけに専心する為、毎回同じ箇所（音）で同じ演奏ミスを繰り返してしまう虞があり、この結果、間違った演奏をする癖が付いてしまうことも起こり得る。つまり、換言すれば、曲を演奏するユーザの間違う癖を矯正して練習効果を高めることが叶わない、という問題がある。
【０００５】
本発明は、このような事情に鑑みてなされたもので、曲を演奏するユーザの間違う癖を矯正して練習効果を高めることができる演奏練習装置およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、請求項１に記載の発明では、曲を構成する各音を表す音符データを記憶する音符データ記憶手段と、前記音符データ記憶手段に記憶される音符データに従って曲を構成する各音の演奏をガイドする第１のガイド手段と、前記第１のガイド手段によるガイドに対応したユーザの演奏操作で発生する演奏データと、ガイドされた音の音符データとを比較して演奏ミスの有無を判定する第１の判定手段と、前記第１の判定手段により演奏ミスが生じたと判定された音の音符データに対応付けられ、当該演奏ミスの内容に相当する演奏ミス項目の発生回数を計数する計数手段と、前記計数手段により計数された演奏ミス項目別の発生回数を、曲を構成する各音の音符データ毎に集計した結果に基づき曲中の演奏ミス仕勝ちな音と、その音で起き易い演奏ミス項目とを抽出する抽出手段と、前記抽出手段によって曲中の演奏ミス仕勝ちな音と、その音で起き易い演奏ミス項目とが抽出された後に前記第１のガイド手段が実行するガイドに対応したユーザの演奏操作で発生する演奏データと、ガイドされた音の音符データとを比較して演奏ミスの有無を判定する第２の判定手段と、前記第２の判定手段により演奏ミスが生じたと判定された音が、前記抽出手段によって抽出された演奏ミス仕勝ちな音における起き易い演奏ミス項目に合致した場合に、その演奏ミス仕勝ちな音の音符データの演奏を所定回数繰り返しガイドする第２のガイド手段とを具備することを特徴とする。
【０００７】
上記請求項１に従属する請求項２に記載の発明では、前記抽出手段は、演奏ミス項目別の発生回数の内、発生回数が最大かつ所定回数以上の演奏ミス項目を有する音符データを、演奏ミス仕勝ちな音における起き易い演奏ミス項目として抽出することを特徴とする。
【０００８】
上記請求項１に従属する請求項３に記載の発明では、前記第２のガイド手段は、前記第２の判定手段により演奏ミスが生じたと判定された音に対応する演奏データが発生した時点の前後所定時間幅を繰り返し練習期間に設定する期間設定手段と、前記期間設定手段により設定された繰り返し練習期間において、演奏ミス仕勝ちな音の音符データの演奏を所定回数繰り返しガイドした後、前記第１のガイド手段にガイド再開を指示する再開指示手段とを具備することを特徴とする。
【０００９】
上記請求項１に従属する請求項４に記載の発明では、前記第２のガイド手段による繰り返しガイドに対応したユーザの演奏操作が適正であるか否かを判定する繰り返し練習判定手段と、この繰り返し練習判定手段により誤った演奏操作が行われたと判定された場合に、前記第２のガイド手段に繰り返しガイドを始めからやり直させる練習回数制御手段とを更に具備することを特徴とする。
【００１０】
上記請求項１に従属する請求項５に記載の発明では、曲演奏上の影響度に応じて異なる重み付け係数を予め演奏ミス項目毎に付与しておき、前記第２の判定手段により演奏ミスが生じたと判定された音が、前記抽出手段によって抽出された演奏ミス仕勝ちな音における起き易い演奏ミス項目に合致した場合に、その起き易い演奏ミス項目に付与された重み付け係数を参照して前記第２のガイド手段に指示する繰り返し回数を異ならせる回数指示手段を更に備えることを特徴とする。
【００１１】
請求項６に記載の発明では、コンピュータに、曲を構成する各音を表す音符データに従って曲を構成する各音の演奏をガイドする第１のガイドステップと、前記第１のガイドステップによるガイドに対応したユーザの演奏操作で発生する演奏データと、ガイドされた音の音符データとを比較して演奏ミスの有無を判定する第１の判定ステップと、前記第１の判定ステップにより演奏ミスが生じたと判定された音の音符データに対応付けられ、当該演奏ミスの内容に相当する演奏ミス項目の発生回数を計数する計数ステップと、前記計数ステップにより計数された演奏ミス項目別の発生回数を、曲を構成する各音の音符データ毎に集計した結果に基づき曲中の演奏ミス仕勝ちな音と、その音で起き易い演奏ミス項目とを抽出する抽出ステップと、前記抽出ステップによって曲中の演奏ミス仕勝ちな音と、その音で起き易い演奏ミス項目とが抽出された後に前記第１のガイドステップが実行するガイドに対応したユーザの演奏操作で発生する演奏データと、ガイドされた音の音符データとを比較して演奏ミスの有無を判定する第２の判定ステップと、前記第２の判定ステップにより演奏ミスが生じたと判定された音が、前記抽出ステップによって抽出された演奏ミス仕勝ちな音における起き易い演奏ミス項目に合致した場合に、その演奏ミス仕勝ちな音の音符データの演奏を所定回数繰り返しガイドする第２のガイドステップとを実行させることを特徴とする。
【発明の効果】
【００１２】
本発明では、曲を演奏するユーザの間違う癖を矯正して練習効果を高めることができる。
【図面の簡単な説明】
【００１３】
【図１】実施の一形態による演奏教習装置１００の構成を示すブロック図である。
【図２】ＲＡＭ１４のメモリ構成を示すメモリマップである。
【図３】ＲＡＭ１４の曲データエリアＭＤＥに格納される音符データの構成を示す図である。
【図４】ＲＡＭ１４の演奏データエリアＰＤＥに格納される演奏データの構成を示す図である。
【図５】メインルーチンの動作を示すフローチャートである。
【図６】生成処理の動作を示すフローチャートである。
【図７】スイッチ１処理の動作を示すフローチャートである。
【図８】ガイド１処理の動作を示すフローチャートである。
【図９】鍵盤処理の動作を示すフローチャートである。
【図１０】解析処理の動作を示すフローチャートである。
【図１１】解析処理の動作を示すフローチャートである。
【図１２】解析処理の動作を示すフローチャートである。
【図１３】練習処理の動作を示すフローチャートである。
【図１４】スイッチ２処理の動作を示すフローチャートである。
【図１５】ガイド２処理の動作を示すフローチャートである。
【図１６】ガイド２処理の動作を示すフローチャートである。
【図１７】制御処理の動作を示すフローチャートである。
【図１８】制御処理の動作を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施形態について説明する。
Ａ．構成
図１は、実施の一形態による演奏教習装置１００の構成を示すブロック図である。この図において、鍵盤１０は演奏操作（押離鍵操作）に応じたキーオン／キーオフ信号、鍵番号およびベロシティ等の演奏情報を発生する。スイッチ部１１は、装置パネルに配設される各種操作スイッチを有し、ユーザ操作されるスイッチ種に対応したスイッチイベントを発生する。スイッチ部１１に配設される主要なスイッチとしては、例えば動作モード（後述する生成モード、練習モードおよびクリアモードの何れか）を設定するモードスイッチ、ガイドの開始／停止を指示するスタート／ストップスイッチ等を備える。
【００１５】
ＣＰＵ１２は、スイッチ部１１が発生する各種スイッチイベントに応じて装置各部を制御する。本発明の要旨に係わるＣＰＵ１２の処理動作については追って詳述する。ＲＯＭ１３には、ＣＰＵ１２にロードされる各種の制御プログラムが記憶される。各種の制御プログラムとは、後述するメインルーチン、生成処理、練習処理およびクリア処理を含む。なお、生成処理は、スイッチ１処理、ガイド１処理、鍵盤処理および解析処理から構成される。また、練習処理は、スイッチ２処理、ガイド２処理、鍵盤処理および制御処理から構成される。
【００１６】
ＲＡＭ１４は、図２に図示するように、ワークエリアＷＥ、曲データエリアＭＤＥおよび演奏データエリアＰＤＥを備える。ワークエリアＷＥには、ＣＰＵ１２の処理に用いられる各種レジスタ・フラグデータが一時記憶される。また、ワークエリアＷＥの一部は、演奏データバッファとして用いられ、押離鍵操作に応じて発生する一連の演奏データが一時記憶される。この一時記憶された一連の演奏データは、後述の演奏データエリアＰＤＥにストアされる。
【００１７】
ＲＡＭ１４の曲データエリアＭＤＥには、図３に図示するように、曲を構成する各音を表す音符データ［０］〜［Ｎ］が曲進行順にアドレッシングされて格納される。一つの音符データは、発音ピッチを表す「音高」と、曲開始時点からの経過時間（絶対時間）で発音タイミングを表す「ステップタイム」と、発音期間（音長）を表す「ゲートタイム」、演奏ミスした回数を記録する「ミス回数エリア」と、「終了フラグ」と、「判別フラグ」とから構成される。
【００１８】
「ミス回数エリア」は、演奏ミスの内容を分類して計数する演奏ミス項目として「遅れ回数」、「進み回数」、「誤り回数」および「抜け回数」を備える。「遅れ回数」は、上記「ステップタイム」に対して予め定義される適正な押鍵タイミング許容範囲より遅れて押鍵した場合にカウントされる。「進み回数」は、同様に適正な押鍵タイミング許容範囲より早く押鍵した場合にカウントされる。「誤り回数」は、音符データ中の「音高」と一致しない他の鍵を誤って押鍵した場合にカウントされる。「抜け回数」は、音符データ中の「音高」に一致する鍵を押鍵しなかった場合にカウントされる。
【００１９】
「終了フラグ」は、音符データが解析処理（後述する）に用いられた場合に「１」、用いられていない場合に「０」となるフラグである。「判別フラグ」は、ユーザの間違う癖（起き易い演奏ミスの内容）を表すものであり、後述する解析処理によって付与される。具体的には、演奏ミス項目の中で「遅れ回数」が所定値以上かつ最も多い場合に、押鍵が遅れるというユーザの間違う癖が付いた音符データと判別されてフラグ値「１」がセットされる。
【００２０】
また、演奏ミス項目の中で「進み回数」が所定値以上かつ最も多い場合に、早めに押鍵されるというユーザの間違う癖が付いた音符データと判別されてフラグ値「２」がセットされる。さらに、演奏ミス項目の中で「誤り回数」が所定値以上かつ最も多い場合に、誤押鍵されるというユーザの間違う癖が付いた音符データと判別されてフラグ値「３」がセットされる。また、演奏ミス項目の中で「抜け回数」が所定値以上かつ最も多い場合に、押鍵し忘れるというユーザの間違う癖が付いた音符データと判別されてフラグ値「４」がセットされる。なお、所定値以上かつ最多の演奏ミス項目が複数存在する場合には、ユーザの間違う癖を特定することが出来ない為、フラグ値「０」がセットされる。
【００２１】
演奏データエリアＰＤＥは、図４に図示するように、演奏回数に対応した演奏（１）〜（Ｎ）のエリアに分割されており、一つのエリアには曲の始めから終わりまで弾くユーザの押鍵操作に応じて発生する一連の演奏データ、すなわち上述のワークエリアＷＥに一時記憶された演奏データ［０］〜［ｎ］が転送格納される。一つの演奏データは、押鍵された鍵の音高を表す「ＫＥＹ」と、曲開始時点からの経過時間（絶対時間）で押鍵されたタイミングを表す「ＳＴ（ステップタイム）」と、「終了フラグ」とから構成される。終了フラグは、演奏データが解析処理（後述する）に用いられた場合に「１」、用いられていない場合に「０」となるフラグである。
【００２２】
再び図１を参照して実施形態の構成について説明を進める。図１において、表示部１５は、ＬＣＤパネル等から構成され、ＣＰＵ１２から供給される表示制御信号に応じて装置の設定状態や動作状態など画面表示したりガイド表示したりする。なお、ここで言うガイド表示とは、鍵盤１０の各鍵を示す画像を表示部１５に画面表示しておき、その画面表示された鍵画像の表示形態を変化させて弾くべき鍵をユーザに案内する表示形態を指す。
【００２３】
音源１６は、周知の波形メモリ読み出し方式によって構成され、時分割動作する複数の発音チャンネルを備える。この音源１６は、各種音色の波形データを記憶しており、これらの内、ＣＰＵ１２から供給される楽音パラメータに応じた波形データを読み出して楽音出力を発生する。サウンドシステム１７は、音源１６の楽音出力をアナログ形式の楽音信号に変換した後、その楽音信号から不要ノイズを除去する等のフィルタリングを施してからレベル増幅してスピーカより発音させる。
【００２４】
Ｂ．動作
次に、図５〜図１８を参照して上記構成による実施形態の動作について説明する。以下では、最初にメインルーチンの動作を説明し、続いてメインルーチンからコールされる各処理（生成処理および練習処理）の動作について述べる。
【００２５】
（１）メインルーチンの動作
演奏教習装置１００がパワーオンされると、ＣＰＵ１２は図３に図示するメインルーチンを実行してステップＳＡ１に処理を進め、ＲＡＭ１４のワークエリアＷＥに格納される各種レジスタやフラグデータをゼロリセット又は初期値セットする他、音源１６に対して初期化を指示するイニシャライズを行う。イニシャライズが完了すると、ＣＰＵ１２は、ステップＳＡ２に進み、現在設定されている動作モードが「生成モード」、「練習モード」および「クリアモード」の何れであるかを判別する。なお、動作モードは、後述するように、モードスイッチ操作に応じて変更設定される。また、演奏教習装置１００のパワーオン当初では、上記ステップＳＡ１のイニシャライズにおいて「生成モード」がデフォルト設定される。
【００２６】
動作モードが「生成モード」ならば、ステップＳＡ３に進み、生成処理を実行する。後述するように、生成処理では、ガイドの開始が指示されると、音符データに基づきガイド表示を行い、このガイド表示に従ってユーザが行う押鍵操作に応じて発生する一連の演奏データ［０］〜［ｎ］を、演奏データエリアＰＤＥ中で演奏回数Ｎで指定される演奏（Ｎ）のエリアにストアする。
【００２７】
曲の始めから終わりまでをガイド表示に従って弾く演奏練習がＮ回以上行われると、ポインタｎで指定される演奏データエリアＰＤＥ中の演奏（ｎ）のエリアから、各音符データ［０］〜［Ｎ］の発音タイミングに最も近い演奏データをそれぞれ探し出し、探し出した演奏データとそれに対応する音符データとの比較に基づき演奏ミスの有無を判断し、演奏ミスが有れば、その内容（誤押鍵、押鍵タイミングの遅れ、押鍵タイミングの進み、押鍵抜け）を解析した結果に応じて、対応する音符データ中のミス回数エリアに設けられた演奏ミス項目（「遅れ回数」、「進み回数」、「誤り回数」および「抜け回数」）の中で合致する項目の回数をカウントして各音符データ［０］〜［Ｎ］毎に演奏ミスの内容を分類集計する。
【００２８】
演奏データエリアＰＤＥ中の全てのエリア（演奏（１）〜（Ｎ））の演奏データに基づいて各音符データ［０］〜［Ｎ］毎に演奏ミスの内容を分類集計し終えると、分類集計された各音符データ［０］〜［Ｎ］毎の演奏ミスの内容に基づきユーザの間違う癖（演奏ミス仕勝ちな音と、その音において起き易い演奏ミスの内容）を判別し、その結果を表すフラグ値の判別フラグを各音符データ［０］〜［Ｎ］に付与する。こうした生成処理が完了すると、再び上記ステップＳＡ２に戻り、現在設定されている動作モードを判別する。
【００２９】
動作モードが「練習モード」であると、ステップＳＡ４に進み、練習処理を実行する。後述するように、練習処理では、スタート／ストップスイッチ操作によりガイド開始が指示されると、音符データに基づきガイド表示を行い、そのガイド表示に従ったユーザの押離鍵操作に応じて楽音の発音／消音を音源１６に指示する一方、押鍵操作に対応して押鍵音高ＫＥＹと、押鍵時点におけるレジスタＴの値で表されるステップタイムＳＴと、フラグ値「０」の終了フラグとから構成される演奏データを生成し、生成した演奏データに対応する音符データをＲＡＭ１４の曲データエリアＭＤＥから検索する。
【００３０】
検索された該当音符データと演奏データとの比較に基づき演奏ミスの有無を判別し、演奏ミスが有ると、その演奏ミスした音符データ中の判別フラグを参照して同じ過ちを繰り返したかどうかを判断する。すなわち、早めに押鍵仕勝ちな音を早めに押鍵したり、遅れて押鍵仕勝ちな音を遅れて押鍵したりする演奏ミスや、押鍵間違い仕勝ちな音を誤押鍵したり、押鍵抜け仕勝ちな音を押鍵し忘れたりする演奏ミスが発生すると、その間違う癖を矯正する繰り返し練習期間を設定する。繰り返し練習期間が設定されると、その繰り返し練習期間において繰り返し回数Ｍに達するまで間違う癖を矯正するガイドを繰り返し行い、それが完了すると、通常のガイドを再開する。こうした練習処理が完了すると、再び上記ステップＳＡ２に戻り、現在設定されている動作モードを判別する。
【００３１】
動作モードが「クリアモード」であると、ステップＳＡ５に進み、クリア処理を実行する。クリア処理では、ＲＡＭ１５の曲データエリアＭＤＥ（図３参照）に格納される各音符データ［０］〜［Ｎ］におけるミス回数エリアをゼロクリアすると共に、演奏データエリアＰＤＥ（図４参照）の演奏（１）〜（Ｎ）の各エリアに格納される演奏データ［０］〜［ｎ］を全てクリアする。そして、クリア処理が完了すると、再び上記ステップＳＡ２に戻り、現在設定されている動作モードを判別する。
【００３２】
（２）生成処理の動作
次に、図６を参照して生成処理の動作を説明する。上述したメインルーチンのステップＳＡ３（図５参照）を介して本処理が実行されると、ＣＰＵ１２は図６に図示するステップＳＢ１に進み、スイッチ１処理を実行する。スイッチ１処理では、後述するように、モードスイッチがオン操作された場合には動作モードの変更を指示する。また、スタート／ストップスイッチのオン操作に応じてスタートフラグＳＴＦが「１」となり、ガイドの開始が指示された場合には、レジスタＴおよび解析フラグＫＦをゼロリセットすると共に、タイマインタラプト禁止を解除する。一方、スタート／ストップスイッチのオン操作に応じてスタートフラグＳＴＦが「０」となり、ガイドの停止が指示された場合には、表示部１５のガイド表示を消去してタイマインタラプトを禁止する。
【００３３】
続いて、ステップＳＢ２では、ガイド１処理を実行する。ガイド１処理では、後述するように、ガイド進行中（スタートフラグＳＴＦが「１」）であると、最小単位時間（ティック）の経過毎にレジスタＴの値を歩進し、歩進されたレジスタＴの値と一致するステップタイムを有し、発音タイミングに達した音符データが有れば、その音符データに基づき弾くべき鍵を案内するガイド表示を行い、歩進されたレジスタＴの値が、ステップタイムとゲートタイムとの加算値に一致し、消音タイミングに達した音符データが有れば、その音符データに基づきガイド表示を消去する。こうしたガイドが曲終了まで行われると、そのガイドに従ってユーザが行った押鍵操作に応じて発生した一連の演奏データ［０］〜［ｎ］を、演奏データエリアＰＤＥ中で演奏回数Ｎで指定される演奏（Ｎ）のエリアにストアする。
【００３４】
次いで、ステップＳＢ３では、押離鍵操作に応じて楽音の発音／消音を音源１６に指示する一方、ガイド進行中であれば、ユーザの押鍵操作に応じて、押鍵音高ＫＥＹと、押鍵時点におけるレジスタＴの値で表されるステップタイムＳＴと、フラグ値「０」の終了フラグとから構成される演奏データを発生してＲＡＭ１４のワークエリアＷＥにストアする鍵盤処理を実行する。
【００３５】
そして、ステップＳＢ４では、解析処理を実行する。解析処理では、後述するように、ポインタｎで指定される演奏データエリアＰＤＥ中の演奏（ｎ）のエリアから、曲データエリアＰＤＥ中の各音符データ［０］〜［Ｎ］の発音タイミングに最も近い演奏データをそれぞれ探し出し、探し出した演奏データとそれに対応する音符データとの比較に基づき演奏ミスの有無を判断する。演奏ミスが有れば、その内容（誤押鍵、押鍵タイミングの遅れ、押鍵タイミングの進み、押鍵抜け）を解析した結果に応じて、対応する音符データ中のミス回数エリアに設けられた演奏ミス項目（「遅れ回数」、「進み回数」、「誤り回数」および「抜け回数」）の中で合致する項目の回数をカウントして各音符データ［０］〜［Ｎ］毎に演奏ミスの内容を分類集計する。演奏データエリアＰＤＥ中の全てのエリア（演奏（１）〜（Ｎ））の演奏データに基づいて各音符データ［０］〜［Ｎ］毎に演奏ミスの内容を分類集計し終えると、分類集計された各音符データ［０］〜［Ｎ］毎の演奏ミスの内容に基づきユーザの間違う癖（演奏ミス仕勝ちな音と、その音において起き易い演奏ミスの内容）を判別し、その結果を表すフラグ値の判別フラグを各音符データ［０］〜［Ｎ］に付与する。
【００３６】
次いで、ステップＳＢ５に進み、生成モード以外の他の動作モードに変更されたか否かを判断する。他の動作モードに変更されなければ、判断結果は「ＮＯ」になり、上述したステップＳＢ１に処理を戻す。以後、生成モードから他の動作モードに変更されるまで上記ステップＳＢ１〜ＳＢ４を繰り返す。そして、上述したモードスイッチのオン操作に応じて、生成モードから他の動作モードに変更されると、上記ステップＳＢ５の判断結果が「ＹＥＳ」となり、本処理を終える。
【００３７】
このように、生成処理では、ガイドの開始が指示されると、最小単位時間（ティック）の経過毎に歩進されるレジスタＴの値と一致するステップタイムの音符データ（発音タイミングの音）が有れば、その音符データに基づき弾くべき鍵を案内するガイド表示を行い、歩進されたレジスタＴの値がステップタイムとゲートタイムとの加算値に一致する音符データ（消音タイミングの音）が有れば、その音符データに基づきガイド表示を消去するという動作を曲終了するまで行う一方、ガイド表示に従ってユーザが行った演奏操作に応じて発生する一連の演奏データ［０］〜［ｎ］を、演奏データエリアＰＤＥ中で演奏回数Ｎで指定される演奏（Ｎ）のエリアにストアする。
【００３８】
こうした演奏練習がＮ回以上行われると、ポインタｎで指定される演奏データエリアＰＤＥ中の演奏（ｎ）のエリアから、各音符データ［０］〜［Ｎ］の発音タイミングに最も近い演奏データをそれぞれ探し出し、探し出した演奏データとそれに対応する音符データとの比較に基づき演奏ミスの有無を判断し、演奏ミスが有れば、その内容（誤押鍵、押鍵タイミングの遅れ、押鍵タイミングの進み、押鍵抜け）を解析した結果に応じて、対応する音符データ中のミス回数エリアに設けられた演奏ミス項目（「遅れ回数」、「進み回数」、「誤り回数」および「抜け回数」）の中で合致する項目の回数をカウントして各音符データ［０］〜［Ｎ］毎に演奏ミスの内容を分類集計する。
【００３９】
演奏データエリアＰＤＥ中の全てのエリア（演奏（１）〜（Ｎ））の演奏データに基づいて各音符データ［０］〜［Ｎ］毎に演奏ミスの内容を分類集計し終えると、分類集計された各音符データ［０］〜［Ｎ］毎の演奏ミスの内容に基づきユーザの間違う癖（演奏ミス仕勝ちな音と、その音において起き易い演奏ミスの内容）を判別し、その結果を表すフラグ値の判別フラグを各音符データ［０］〜［Ｎ］に付与する。
【００４０】
（３）スイッチ１処理の動作
次に、図７を参照してスイッチ１処理の動作を説明する。上述した生成処理のステップＳＢ１（図６参照）を介して本処理が実行されると、ＣＰＵ１２は図７に図示するステップＳＣ１に進み、スイッチ部１１に配設されるモードスイッチがオン操作された否かを判断する。
【００４１】
モードスイッチがオン操作されると、判断結果は「ＹＥＳ」となり、ステップＳＣ２に進み、動作モードを変更して本処理を終える。すなわち、モードスイッチはオン操作される毎に「生成モード」、「練習モード」、「クリアモード」をサイクリックに指定するものであり、例えば「生成モード」においてモードスイッチをオン操作した場合には、「生成モード」から「練習モード」に設定変更するようになっている。
【００４２】
一方、モードスイッチがオン操作されなければ、上記ステップＳＣ１の判断結果は「ＮＯ」になり、ステップＳＣ３に進み、スタート／ストップスイッチのオン操作の有無を判断する。スタート／ストップスイッチがオン操作されなければ、判断結果は「ＮＯ」になり、本処理を終えるが、オン操作されると、判断結果が「ＹＥＳ」になり、ステップＳＣ４に進む。
【００４３】
ステップＳＣ４では、スタートフラグＳＴＦを反転する。スタートフラグＳＴＦとは、フラグ値「１」の場合にガイドの開始を表し、フラグ値「０」の場合にガイドの停止を表すフラグである。また、スタート／ストップスイッチは所謂トグル動作するスイッチであり、オン操作に応じてガイドの開始／停止を交互に指示する。次いで、ステップＳＣ５では、スタート／ストップスイッチのオン操作に応じて反転されたスタートフラグＳＴＦが「１」であるか否かを判断する。
【００４４】
反転されたスタートフラグＳＴＦが「１」（ガイドの開始）であると、上記ステップＳＣ５の判断結果は「ＹＥＳ」になり、ステップＳＣ６に進み、レジスタＴをゼロリセットする。次いで、ステップＳＣ７では、タイマインタラプト禁止を解除し、続くステップＳＣ８では、解析フラグＫＦ（後述する）をゼロリセットして本処理を終える。なお、ＣＰＵ１２では、上記ステップＳＣ７においてタイマインタラプト禁止を解除すると、タイマ機能を具現するタイマインタラプト（不図示）をスタートさせ、曲再生テンポに対応した最小単位時間（ティック）をカウントし始める。
【００４５】
一方、スタート／ストップスイッチのオン操作に応じて反転されたスタートフラグＳＴＦが「０」（ガイドの停止）ならば、上記ステップＳＣ５の判断結果は「ＮＯ」になり、ステップＳＣ９に進み、表示部１５のガイド表示を消去する。そして、ステップＳＣ１０に進み、曲進行時間を計時するタイマインタラプトを禁止して本処理を終える。
【００４６】
このように、スイッチ１処理では、モードスイッチがオン操作された場合には動作モードの変更を指示する。また、スタート／ストップスイッチのオン操作に応じてスタートフラグＳＴＦが「１」となり、ガイドの開始が指示された場合には、レジスタＴおよび解析フラグＫＦをゼロリセットすると共に、タイマインタラプト禁止を解除する。一方、スタート／ストップスイッチのオン操作に応じてスタートフラグＳＴＦが「０」となり、ガイドの停止が指示された場合には、表示部１５のガイド表示を消去してタイマインタラプトを禁止する。
【００４７】
（３）ガイド１処理の動作
次に、図８を参照してガイド１処理の動作を説明する。前述した生成処理のステップＳＢ２（図６参照）を介して本処理が実行されると、ＣＰＵ１２は図８に図示するステップＳＤ１に進み、スタートフラグＳＴＦが「１」（ガイドの開始）であるかどうかを判断する。スタートフラグＳＴＦが「０」（ガイドの停止）ならば、判断結果は「ＮＯ」になり、本処理を終えるが、スタートフラグＳＴＦが「１」（ガイドの開始）であると、判断結果は「ＹＥＳ」になり、ステップＳＤ２に進む。
【００４８】
ステップＳＤ２では、タイマ機能（タイマインタラプト）が曲再生テンポに対応した最小単位時間（ティック）をカウントしたか否か、つまり最小単位時間が経過したかどうかを判断する。最小単位時間が経過していなければ、判断結果は「ＮＯ」となり、本処理を終えるが、最小単位時間が経過していると、上記ステップＳＤ２の判断結果は「ＹＥＳ」になり、ステップＳＤ３に進み、レジスタＴの値をインクリメントして歩進させる。そして、ステップＳＤ４では、歩進されたレジスタＴの値と一致するステップタイムを有する音符データをＲＡＭ１４の曲データエリアＭＤＥから検索し、続くステップＳＤ５では、該当する音符データの有無、つまり発音タイミングに達した音符データが有るか否かを判断する。
【００４９】
発音タイミングに達した音符データが有ると、判断結果は「ＹＥＳ」になり、ステップＳＤ６に進み、表示部１５に画面表示される鍵盤画像において、発音タイミングに達した音符データ中の音高に対応した鍵の画像の表示形態を変化させるガイド表示を実行してユーザに弾くべき鍵を案内した後、後述のステップＳＤ１０に進む。
【００５０】
一方、発音タイミングに達した音符データが検索されなければ、上記ステップＳＤ５の判断結果が「ＮＯ」になり、ステップＳＤ７に進む。ステップＳＤ７では、歩進されたレジスタＴの値が、ステップタイムとゲートタイムとの加算値に一致する音符データをＲＡＭ１４の曲データエリアＭＤＥから検索し、続くステップＳＤ８では、該当する音符データの有無、つまり消音タイミングに達した音符データが有るか否かを判断する。
【００５１】
消音タイミングに達した音符データが無ければ、判断結果は「ＮＯ」になり、後述のステップＳＤ１０に進む。これに対し、消音タイミングに達した音符データが有ると、上記ステップＳＤ８の判断結果が「ＹＥＳ」になり、ステップＳＤ９に進み、表示部１５に画面表示される鍵盤画像において、消音タイミングに達した音符データ中の音高に対応した鍵の画像の表示形態を元に戻してガイド表示を消去した後、ステップＳＤ１０に進む。
【００５２】
こうして、発音タイミングに達した音符データが有れば、その音符データに基づき弾くべき鍵を案内するガイド表示を行い、消音タイミングに達した音符データが有れば、その音符データに基づきガイド表示を消去すると、ＣＰＵ１２はステップＳＤ１０に進み、レジスタＴの値が曲終了タイム以上であるか否かを判断する。
【００５３】
レジスタＴの値が曲終了タイムに達せず、音符データに基づくガイドが進行中であるならば、判断結果は「ＮＯ」となり、本処理を終えるが、レジスタＴの値が曲終了タイム以上となって、音符データに基づくガイドが完了すると、上記ステップＳＤ１０の判断結果は「ＹＥＳ」となり、ステップＳＤ１１に進む。ステップＳＤ１１では、ユーザの押鍵操作に応じて発生した一連の演奏データ、すなわち後述する鍵盤処理（図９参照）においてＲＡＭ１４のワークエリアＷＥに一時記憶された一連の演奏データ［０］〜［ｎ］を、ＲＡＭ１４の演奏データエリアＰＤＥ中において演奏回数Ｎで指定される演奏（Ｎ）のエリアにストアする。この後、ステップＳＤ１２に進み、演奏回数Ｎをインクリメントして歩進させ、続くステップＳＤ１３では、レジスタＴをゼロリセットして本処理を終える。
【００５４】
このように、ガイド１処理では、ガイド進行中（スタートフラグＳＴＦが「１」）であると、曲再生テンポに対応した最小単位時間（ティック）が経過する毎にレジスタＴの値を歩進し、歩進されたレジスタＴの値と一致するステップタイムを有し、発音タイミングに達した音符データが存在すると、その音符データに基づき弾くべき鍵を案内するガイド表示を行う。また、歩進されたレジスタＴの値が、ステップタイムとゲートタイムとの加算値に一致し、消音タイミングに達した音符データが存在すると、その音符データに基づきガイド表示を消去する。こうしたガイドが曲終了まで行われると、そのガイドに従ってユーザが行った押鍵操作に応じて発生した一連の演奏データ［０］〜［ｎ］を、演奏データエリアＰＤＥ中で演奏回数Ｎで指定される演奏（Ｎ）のエリアにストアする。
【００５５】
（４）鍵盤処理の動作
次に、図９を参照して鍵盤処理の動作を説明する。前述した生成処理のステップＳＢ３（図６参照）を介して本処理が実行されると、ＣＰＵ１２は図９に図示するステップＳＥ１に進み、鍵盤１０の各鍵についてキーオン／キーオフ信号の有無を検出する鍵走査を行い、続くステップＳＥ２では、上記ステップＳＥ１の鍵走査結果に基づき鍵変化を判別する。
【００５６】
押離鍵操作が行われず、鍵変化が生じなければ、ステップＳＥ２において鍵変化無しと判別して本処理を終える。押鍵操作に応じて発生するキーオン信号を検出した場合には、ステップＳＥ２を介してステップＳＥ３に進み、押鍵された鍵の音高（鍵番号）をレジスタＫＥＹにストアする。以下、レジスタＫＥＹの内容を音高ＫＥＹと称す。次いで、ステップＳＥ４では、音高ＫＥＹおよびベロシティを含むノートオンイベントに基づき生成した楽音パラメータを音源１６に供給する。これにより、音源１６は押鍵された鍵の音高の楽音を発音する。
【００５７】
次に、ステップＳＥ５では、スタートフラグＳＴＦが「１」、すなわちガイド進行中であるかどうかを判断する。ガイド停止中（スタートフラグＳＴＦが「０」）であると、判断結果は「ＮＯ」になり、本処理を終えるが、ガイド進行中ならば、判断結果は「ＹＥＳ」になり、ステップＳＥ６に進み、音高ＫＥＹと、押鍵時点におけるレジスタＴの値で表されるステップタイムＳＴと、フラグ値「０」の終了フラグとから構成される演奏データを発生してＲＡＭ１４のワークエリアＷＥにストアして本処理を終える。
【００５８】
一方、離鍵操作に応じて発生するキーオフ信号を検出した場合には、ステップＳＥ２を介してステップＳＥ７に進み、離鍵された鍵の音高（鍵番号）をレジスタＫＥＹにストアする。そして、ステップＳＥ８では、離鍵された鍵の音高ＫＥＹを含むノートオフイベントに基づき生成した楽音パラメータを音源１６に供給する。これにより、音源１６は、離鍵された鍵の音高の楽音を消音する。
【００５９】
以上のように、鍵盤処理では、押離鍵操作に応じて楽音の発音／消音を音源１６に指示する一方、ガイド進行中であれば、押鍵された鍵の音高ＫＥＹと、押鍵時点におけるレジスタＴの値で表されるステップタイムＳＴと、フラグ値「０」の終了フラグとから構成される演奏データを発生してＲＡＭ１４のワークエリアＷＥにストアする。なお、押鍵毎に生成されてワークエリアＷＥに一時記憶される一連の演奏データは、前述したガイド１処理のステップＳＤ１１（図８参照）においてＲＡＭ１４の演奏データエリアＰＤＥに退避格納される。
【００６０】
（５）解析処理の動作
次に、図１０〜図１２を参照して解析処理の動作を説明する。前述した生成処理のステップＳＢ４（図６参照）を介して本処理が実行されると、ＣＰＵ１２は図１０に図示するステップＳＦ１に進み、解析フラグＫＦが「０」、つまりガイドに従った演奏練習により発生した演奏データに基づいてユーザの演奏ミスの癖を解析する解析処理が未完であるかどうかを判断する。解析フラグＫＦが「１」（解析処理完了済み）ならば、判断結果は「ＮＯ」になり、本処理を終えるが、解析フラグＫＦが「０」（解析処理未完）であると、判断結果は「ＹＥＳ」になり、ステップＳＦ２に進む。
【００６１】
続いて、ステップＳＦ２では、スタートフラグＳＴＦが「０」（ガイド停止中）であるか否かを判断する。ガイド進行中（スタートフラグＳＴＦが「１」）であると、判断結果は「ＮＯ」となり、本処理を終えるが、ガイド停止中ならば、判断結果が「ＹＥＳ」になり、ステップＳＦ３に進む。そして、ステップＳＦ３では、演奏回数Ｎが所定回数以上であるか否かを判断する。演奏回数Ｎが所定回数未満であれば、判断結果は「ＮＯ」になり、本処理を終えるが、所定回数以上ならば、判断結果が「ＹＥＳ」になり、ステップＳＦ４に進む。
【００６２】
つまり、解析処理が未完であって、かつガイド停止中の状態で演奏回数Ｎが所定回数以上であると、上記ステップＳＦ１〜ＳＦ３の各判断結果が何れも「ＹＥＳ」となってステップＳＦ４に進む。そして、ステップＳＦ４〜ＳＦ５では、演奏データエリアＰＤＥにおける演奏エリア指定用のポインタｎを初期値「１」に、曲データエリアＭＤＥにおける音符データ指定用のポインタａを初期値「０」にそれぞれセットする。続いて、ステップＳＦ６では、ポインタａで指定される音符データ［ａ］のステップタイムに最も近いステップタイムＳＴを有する演奏データを、ポインタｎで指定される演奏（ｎ）のエリアの中から検索する。
【００６３】
次いで、ステップＳＦ７では、演奏（ｎ）のエリアの中から検索された該当演奏データ中の終了フラグが「０」であるか否か、つまり未処理の演奏データであるかどうかを判断する。該当演奏データが処理済み（終了フラグが「１」）ならば、判断結果は「ＮＯ」となり、ステップＳＦ８に進み、該当演奏データを検索対象から除外して上記ステップＳＦ６に処理を戻す。
【００６４】
一方、該当演奏データが未処理（終了フラグが「０」）であると、上記ステップＳＦ７の判断結果は「ＹＥＳ」となり、ステップＳＦ９に進む。ステップＳＦ９では、演奏（ｎ）のエリアの中から検索された該当演奏データ中の音高ＫＥＹと、ポインタａで指定される音符データ［ａ］の音高とが一致するか否かを判断する。両音高が不一致であれば、判断結果は「ＮＯ」になり、ステップＳＦ１０に進み、ポインタａで指定される音符データ［ａ］のミス回数エリアにおける誤り回数（図３参照）をインクリメントして歩進させる。これにより、音符データ［ａ］における誤押鍵の回数がカウントされる。この後、図１１に図示するステップＳＦ１５に進む。
【００６５】
これに対し、演奏（ｎ）のエリアの中から検索された該当演奏データ中の音高ＫＥＹと、ポインタａで指定される音符データ［ａ］の音高とが一致すると、上記ステップＳＦ９の判断結果は「ＹＥＳ」となり、図１１に図示するステップＳＦ１１に進む。ステップＳＦ１１〜ＳＦ１４では、音符データ［ａ］の発音タイミングに対し、該当演奏データの押鍵タイミングが許容範囲外であるかどうかや、許容範囲外ならば、押鍵タイミングの遅れ／進みを判別する。
【００６６】
すなわち、ステップＳＦ１１では、ポインタａで指定される音符データ［ａ］のステップタイム（発音タイミング）に対し、該当演奏データ中のステップタイムＳＴ（押鍵タイミング）が予め定められた許容範囲外であるか否かを判断する。該当演奏データが上記許容範囲に収まる適正なタイミングで押鍵されていれば、判断結果は「ＮＯ」となり、後述のステップＳＦ１５に進む。
【００６７】
一方、音符データ［ａ］の発音タイミングに対し、該当演奏データの押鍵タイミングが許容範囲外であると、上記ステップＳＦ１１の判断結果は「ＹＥＳ」となり、ステップＳＦ１２に進み、許容範囲外の押鍵タイミングが発音タイミングに対して遅れであるか否かを判断する。発音タイミングに対して遅れであると、判断結果は「ＹＥＳ」になり、ステップＳＦ１３に進み、ポインタａで指定される音符データ［ａ］のミス回数エリアにおける遅れ回数（図３参照）をインクリメントして歩進させた後、ステップＳＦ１５に進む。
【００６８】
これに対し、発音タイミングに対して進み（早め）であれば、上記ステップＳＦ１２の判断結果は「ＮＯ」になり、ステップＳＦ１４に進み、ポインタａで指定される音符データ［ａ］のミス回数エリアにおける進み回数（図３参照）をインクリメントして歩進させた後、ステップＳＦ１５に進む。
【００６９】
次いで、ステップＳＦ１５では、解析処理の対象として用いられた該当演奏データ中の終了フラグと、音符データ［ａ］中の終了フラグとにそれぞれ「１」をセットする。続いて、ステップＳＦ１６に進むと、ポインタａで指定される音符データ［ａ］が曲終端であるかどうかを判断する。曲終端でなければ、判断結果は「ＮＯ」になり、ステップＳＦ１７に進み、ポインタａをインクリメントして歩進させた後、前述のステップＳＦ６（図１０参照）に処理を戻す。
【００７０】
一方、ポインタａで指定される音符データ［ａ］が曲終端ならば、上記ステップＳＦ１６の判断結果が「ＹＥＳ」になり、ステップＳＦ１８に進む。ステップＳＦ１８では、曲データエリアＭＤＥ中で終了フラグが「０」の音符データ、すなわち解析処理の対象として用いられていない音符データの有無を判断する。演奏抜けが無く、該当する音符データが存在しなければ、判断結果は「ＮＯ」になり、後述のステップＳＦ２０に進む。
【００７１】
これに対し、演奏抜けが有り、終了フラグが「０」の音符データが存在すると、上記ステップＳＦ１８の判断結果は「ＹＥＳ」となり、ステップＳＦ１９に進み、終了フラグが「０」の音符データのミス回数エリアにおける抜け回数（図３参照）をインクリメントして歩進させた後、ステップＳＦ２０に進み、曲データエリアＭＤＥの全ての音符データ［０］〜［Ｎ］の終了フラグをゼロクリアする。
【００７２】
この後、ステップＳＦ２１に進み、演奏データエリアＰＤＥにおける演奏エリア指定用のポインタｎをインクリメントして歩進させ、続くステップＳＦ２１では、歩進されたポインタｎが演奏回数Ｎを超えたかどうかを判断する。歩進されたポインタｎが演奏回数Ｎを超えていなければ、判断結果は「ＮＯ」になり、前述したステップＳＦ５に処理を戻す。
【００７３】
以後、上記ステップＳＦ２１において歩進されたポインタｎで新たに指定される演奏データエリアＰＤＥ中の演奏（ｎ）のエリアから、各音符データ［０］〜［Ｎ］の発音タイミングに最も近い演奏データをそれぞれ探し出し、探し出した演奏データとそれに対応する音符データとの比較に基づき演奏ミスの有無を判断する。そして、演奏ミスが有れば、その内容（誤押鍵、押鍵タイミングの遅れ、押鍵タイミングの進み、押鍵抜け）を解析した結果に応じて、対応する音符データ中のミス回数エリアに設けられた演奏ミス項目（「遅れ回数」、「進み回数」、「誤り回数」および「抜け回数」）の中で合致する項目の回数をカウントする。こうすることによって曲を構成する各音毎に演奏ミスの内容が分類集計される。
【００７４】
そして、演奏データエリアＰＤＥ中の全てのエリア（演奏（１）〜（Ｎ））の演奏データに基づいて各音符データ［０］〜［Ｎ］毎に演奏ミスの内容を分類集計し終えると、上記ステップＳＦ２２の判断結果が「ＹＥＳ」になり、図１２に図示するステップＳＦ２３に処理を進める。ステップＳＦ２３以降では、曲を構成する各音毎に分類集計された演奏ミスの内容に基づきユーザの間違う癖（演奏ミス仕勝ちな音と、その音において起き易い演奏ミスの内容）を判別する。以下、その動作を説明する。
【００７５】
先ずステップＳＦ２３では、ポインタａをゼロリセットする。続いて、ステップＳＦ２４では、ポインタａで指定される音符データ［ａ］のミス回数エリアの演奏ミス項目（「遅れ回数」、「進み回数」、「誤り回数」および「抜け回数」）の内から最大値（最大回数）を検索する。次いで、ステップＳＦ２５では、検索された最大値（最大回数）が所定値以上であるか否かを判断する。なお、ここで言う所定値とは、演奏ミス仕勝ちな音であるかどうかを判別する為の閾値である。この閾値未満であるならば、演奏ミス仕勝ちな音ではないとして、上記ステップＳＦ２５の判断結果は「ＮＯ」になり、後述のステップＳＦ３５に進む。
【００７６】
一方、検索された最大値（最大回数）が閾値以上であると、演奏ミス仕勝ちな音であるとして、上記ステップＳＦ２５の判断結果が「ＹＥＳ」になり、ステップＳＦ２６に進む。ステップＳＦ２６〜ＳＦ３３では、検索された最大値（最大回数）が、「遅れ回数」、「進み回数」、「誤り回数」および「抜け回数」の何れに該当するのかに応じて、起き易い演奏ミスの内容（ユーザの間違う癖）を判別する。
【００７７】
すなわち、ステップＳＦ２６では、検索された最大値（最大回数）が「遅れ回数」であるか否かを判断し、「遅れ回数」であったならば、判断結果は「ＹＥＳ」となり、ステップＳＦ３０に進み、ポインタａで指定される音符データ［ａ］中の判別フラグに「１」をセットする。これにより、音符データ［ａ］は押鍵が遅れるというユーザの間違う癖が付いた音と判別される。そしてこの後、後述のステップＳＦ３５に進む。
【００７８】
検索された最大値（最大回数）が「遅れ回数」でなければ、上記ステップＳＦ２６の判断結果は「ＮＯ」になり、ステップＳＦ２７に進む。ステップＳＦ２７では、検索された最大値（最大回数）が「進み回数」であるか否かを判断し、「進み回数」であったならば、判断結果は「ＹＥＳ」となり、ステップＳＦ３１に進み、ポインタａで指定される音符データ［ａ］中の判別フラグに「２」をセットする。これにより、音符データ［ａ］は早めに押鍵されるというユーザの間違う癖が付いた音と判別される。そしてこの後、後述のステップＳＦ３５に進む。
【００７９】
検索された最大値（最大回数）が「進み回数」でなければ、上記ステップＳＦ２７の判断結果は「ＮＯ」になり、ステップＳＦ２８に進む。ステップＳＦ２８では、検索された最大値（最大回数）が「誤り回数」であるか否かを判断し、「誤り回数」であったならば、判断結果は「ＹＥＳ」となり、ステップＳＦ３２に進み、ポインタａで指定される音符データ［ａ］中の判別フラグに「３」をセットする。これにより、音符データ［ａ］は誤押鍵されるというユーザの間違う癖が付いた音と判別される。そしてこの後、後述のステップＳＦ３５に進む。
【００８０】
検索された最大値（最大回数）が「誤り回数」でなければ、上記ステップＳＦ２８の判断結果は「ＮＯ」になり、ステップＳＦ２９に進む。ステップＳＦ２９では、検索された最大値（最大回数）が「抜け回数」であるか否かを判断し、「抜け回数」であったならば、判断結果は「ＹＥＳ」となり、ステップＳＦ３３に進み、ポインタａで指定される音符データ［ａ］中の判別フラグに「４」をセットする。これにより、音符データ［ａ］は押鍵し忘れるというユーザの間違う癖が付いた音と判別される。そしてこの後、後述のステップＳＦ３５に進む。
【００８１】
検索された最大値（最大回数）が閾値以上かつ同値の演奏ミス項目が複数存在する場合には、上記ステップＳＦ２６〜ＳＦ２９の各判断結果が何れも「ＮＯ」となり、ステップＳＦ３４に進み、ポインタａで指定される音符データ［ａ］中の判別フラグに「０」をセットした後、ステップＳＦ３５に進む。ステップＳＦ３５では、ポインタａで指定される音符データ［ａ］中のミス回数エリア（図３参照）をクリアする。
【００８２】
次いで、ステップＳＦ３６に進み、ポインタａをインクリメントして歩進させ、続くステップＳＦ３７では、歩進させたポインタａの値が曲の音符データ数を超えたか否か、つまり全ての音符データについてユーザの間違う癖（起き易い演奏ミスの内容）を判別し終えたかどうかを判断する。判別し終えていなければ、判断結果は「ＮＯ」となり、前述したステップＳＦ２４に処理を戻し、歩進させたポインタａで指定される音符データ［ａ］についてユーザの間違う癖（起き易い演奏ミスの内容）を判別する。そして、り全ての音符データについて判別し終えると、上記ステップＳＦ３７の判断結果が「ＹＥＳ」となり、ステップＳＦ３８に進み、解析フラグＫＦに「１」をセットし、これにより解析処理終了を表して本処理を終える。
【００８３】
このように、解析処理では、ポインタｎで指定される演奏データエリアＰＤＥ中の演奏（ｎ）のエリアから、各音符データ［０］〜［Ｎ］の発音タイミングに最も近い演奏データをそれぞれ探し出し、探し出した演奏データとそれに対応する音符データとの比較に基づき演奏ミスの有無を判断する。演奏ミスが有れば、その内容（誤押鍵、押鍵タイミングの遅れ、押鍵タイミングの進み、押鍵抜け）を解析した結果に応じて、対応する音符データ中のミス回数エリアに設けられた演奏ミス項目（「遅れ回数」、「進み回数」、「誤り回数」および「抜け回数」）の中で合致する項目の回数をカウントして各音符データ［０］〜［Ｎ］毎に演奏ミスの内容を分類集計する。
【００８４】
演奏データエリアＰＤＥ中の全てのエリア（演奏（１）〜（Ｎ））の演奏データに基づいて各音符データ［０］〜［Ｎ］毎に演奏ミスの内容を分類集計し終えると、分類集計された各音符データ［０］〜［Ｎ］毎の演奏ミスの内容に基づきユーザの間違う癖を判別し、その結果を表すフラグ値の判別フラグを各音符データ［０］〜［Ｎ］に付与する。
【００８５】
（６）練習処理の動作
次に、図１３を参照して練習処理の動作を説明する。前述したメインルーチンのステップＳＡ４（図５参照）を介して本処理が実行されると、ＣＰＵ１２は図１３に図示するステップＳＧ１に進み、スイッチ２処理を実行する。スイッチ２処理では、後述するように、モードスイッチがオン操作された場合には動作モードの変更を指示し、スタート／ストップスイッチのオン操作によりガイドの開始が指示されると、レジスタＴおよび練習フラグＲＦ（後述する）をゼロリセットすると共に、タイマインタラプト禁止を解除する。一方、ガイドの停止が指示されると、表示部１５のガイド表示を消去してタイマインタラプトを禁止する。
【００８６】
続いて、ステップＳＧ２では、ガイド２処理を実行する。ガイド２処理では、後述するように、ガイド進行中ならば、曲再生テンポに対応した最小単位時間（ティック）が経過する毎にレジスタＴの値を歩進し、歩進されたレジスタＴの値と一致するステップタイムを有し、発音タイミングに達した音符データが存在すると、その音符データに基づき弾くべき鍵を案内するガイド表示を行う。また、歩進されたレジスタＴの値が、ステップタイムとゲートタイムとの加算値に一致し、消音タイミングに達した音符データが存在すると、その音符データに基づきガイド表示を消去する。
【００８７】
そして、ガイド進行中に、演奏ミス仕勝ちな音において同じ演奏ミスが生じ、これに応じて後述の制御処理によって繰り返し練習期間が設定されると、その繰り返し練習期間において繰り返し回数Ｍに達するまで間違う癖を矯正するガイドを繰り返し行い、それが完了すると、通常のガイドを再開する。
【００８８】
次いで、ステップＳＧ３では、押離鍵操作に応じて楽音の発音／消音を音源１６に指示する一方、ガイド進行中であれば、押鍵音高ＫＥＹと、押鍵時点におけるレジスタＴの値で表されるステップタイムＳＴと、フラグ値「０」の終了フラグとから構成される演奏データを発生してＲＡＭ１４のワークエリアＷＥにストアする鍵盤処理を実行する。
【００８９】
そして、ステップＳＧ４では、制御処理を実行する。制御処理では、後述するように、上記ステップＳＧ３の鍵盤処理により生成される演奏データに対応する音符データをＲＡＭ１４の曲データエリアＭＤＥから検索し、検索された該当音符データと演奏データとの比較に基づき演奏ミスの有無を判別する。演奏ミスが有ると、その演奏ミスした音符データ中の判別フラグを参照して同じ過ちを繰り返したかどうかを判断する。すなわち、早めに押鍵仕勝ちな音を早めに押鍵したり、遅れて押鍵仕勝ちな音を遅れて押鍵したりする演奏ミスや、押鍵間違い仕勝ちな音を誤押鍵してたり、押鍵抜け仕勝ちな音を押鍵し忘れたりする演奏ミスが発生すると、その間違う癖（演奏ミス仕勝ちな音と、その音において起き易い演奏ミスの内容）を矯正する繰り返し練習期間を設定する。
【００９０】
続いて、ステップＳＧ５では、練習モード以外の他の動作モードに変更されたか否かを判断する。他の動作モードに変更されなければ、判断結果は「ＮＯ」になり、上述したステップＳＧ１に処理を戻す。以後、練習モードから他の動作モードに変更されるまで上記ステップＳＧ１〜ＳＧ４を繰り返す。そして、モードスイッチのオン操作に応じて、練習モードから他の動作モードに変更されると、上記ステップＳＧ５の判断結果が「ＹＥＳ」となり、本処理を終える。
【００９１】
以上のように、練習処理では、ガイド開始が指示されると、曲再生テンポに対応した最小単位時間（ティック）が経過する毎にレジスタＴの値を歩進し、歩進されたレジスタＴの値と一致するステップタイムを有し、発音タイミングに達した音符データが存在すると、その音符データに基づき弾くべき鍵を案内するガイド表示を行う。また、歩進されたレジスタＴの値が、ステップタイムとゲートタイムとの加算値に一致し、消音タイミングに達した音符データが存在すると、その音符データに基づきガイド表示を消去する。
【００９２】
ガイドに従ったユーザの押離鍵操作に応じて楽音の発音／消音を音源１６に指示する一方、押鍵に対応して押鍵音高ＫＥＹと、押鍵時点におけるレジスタＴの値で表されるステップタイムＳＴと、フラグ値「０」の終了フラグとから構成される演奏データを生成し、生成した演奏データに対応する音符データをＲＡＭ１４の曲データエリアＭＤＥから検索する。
【００９３】
検索された該当音符データと演奏データとの比較に基づき演奏ミスの有無を判別し、演奏ミスが有ると、その演奏ミスした音符データ中の判別フラグを参照して同じ過ちを繰り返したかどうかを判断する。すなわち、早めに押鍵仕勝ちな音を早めに押鍵したり、遅れて押鍵仕勝ちな音を遅れて押鍵したりする演奏ミスや、押鍵間違い仕勝ちな音を誤押鍵したり、押鍵抜け仕勝ちな音を押鍵し忘れたりする演奏ミスが発生すると、その間違う癖を矯正する繰り返し練習期間を設定する。繰り返し練習期間が設定されると、その繰り返し練習期間において繰り返し回数Ｍに達するまで間違う癖を矯正するガイドを繰り返し行い、それが完了すると、通常のガイドを再開する。
【００９４】
（７）スイッチ２処理の動作
次に、図１４を参照してスイッチ２処理の動作を説明する。上述した練習処理のステップＳＧ１（図１３参照）を介して本処理が実行されると、ＣＰＵ１２は図１４に図示するステップＳＨ１に進み、スイッチ部１１に配設されるモードスイッチのオン操作の有無を判断する。
【００９５】
モードスイッチがオン操作されると、判断結果は「ＹＥＳ」となり、ステップＳＨ２に進み、動作モードを変更して本処理を終える。すなわち、モードスイッチはオン操作される毎に「生成モード」、「練習モード」、「クリアモード」をサイクリックに指定するものであり、例えば「生成モード」においてモードスイッチをオン操作した場合には、「生成モード」から「練習モード」に設定変更するようになっている。
【００９６】
一方、モードスイッチがオン操作されなければ、上記ステップＳＨ１の判断結果は「ＮＯ」になり、ステップＳＨ３に進み、スタート／ストップスイッチのオン操作の有無を判断する。スタート／ストップスイッチがオン操作されなければ、判断結果は「ＮＯ」になり、本処理を終えるが、オン操作されると、判断結果が「ＹＥＳ」になり、ステップＳＨ４に進む。
【００９７】
ステップＳＨ４では、スタートフラグＳＴＦを反転し、続くステップＳＨ５では、反転されたスタートフラグＳＴＦが「１」であるか否かを判断する。反転されたスタートフラグＳＴＦが「１」（ガイドの開始）であると、上記ステップＳＨ５の判断結果は「ＹＥＳ」になり、ステップＳＨ６に進み、レジスタＴをゼロリセットする。そして、ステップＳＨ７に進み、タイマインタラプト禁止を解除する。次いで、ステップＳＨ８では、練習フラグＲＦ（後述する）をゼロリセットして本処理を終える。なお、ＣＰＵ１２では、上記ステップＳＨ７においてタイマインタラプト禁止を解除すると、タイマ機能を具現するタイマインタラプト（不図示）をスタートさせ、曲再生テンポに対応したタイマ最小時間（ティック）をカウントし始める。
【００９８】
一方、スタート／ストップスイッチのオン操作に応じて反転されたスタートフラグＳＴＦが「０」（ガイドの停止）ならば、上記ステップＳＨ５の判断結果は「ＮＯ」になり、ステップＳＨ９に進み、表示部１５のガイド表示を消去する。この後、ステップＳＨ１０に進み、曲進行時間を計時するタイマインタラプトを禁止して本処理を終える。
【００９９】
このように、スイッチ２処理では、モードスイッチがオン操作された場合には動作モードの変更を指示する。また、スタート／ストップスイッチのオン操作に応じてスタートフラグＳＴＦが「１」となり、ガイドの開始が指示された場合には、レジスタＴおよび練習フラグＲＦ（後述する）をゼロリセットすると共に、タイマインタラプト禁止を解除する。一方、スタート／ストップスイッチのオン操作に応じてスタートフラグＳＴＦが「０」となり、ガイドの停止が指示された場合には、表示部１５のガイド表示を消去してタイマインタラプトを禁止する。
【０１００】
（８）ガイド２処理の動作
次に、図１５〜図１６を参照してガイド２処理の動作を説明する。前述した練習処理のステップＳＧ２（図１３参照）を介して本処理が実行されると、ＣＰＵ１２は図１５に図示するステップＳＪ１に進み、スタートフラグＳＴＦが「１」（ガイドの開始）であるかどうかを判断する。スタートフラグＳＴＦが「０」（ガイドの停止）ならば、判断結果は「ＮＯ」になり、本処理を終えるが、スタートフラグＳＴＦが「１」（ガイドの開始）であると、判断結果は「ＹＥＳ」になり、ステップＳＪ２に進む。
【０１０１】
ステップＳＪ２では、タイマ機能（タイマインタラプト）が曲再生テンポに対応した最小単位時間（ティック）をカウントしたか否か、つまり最小単位時間が経過したかどうかを判断する。最小単位時間が経過していなければ、判断結果は「ＮＯ」となり、本処理を終えるが、最小単位時間が経過していると、上記ステップＳＪ２の判断結果は「ＹＥＳ」になり、ステップＳＪ３に進み、レジスタＴの値をインクリメントして歩進させる。そして、ステップＳＪ４では、歩進されたレジスタＴの値と一致するステップタイムを有する音符データをＲＡＭ１４の曲データエリアＭＤＥから検索し、続くステップＳＪ５では、該当する音符データの有無、つまり発音タイミングに達した音符データが有るか否かを判断する。
【０１０２】
発音タイミングに達した音符データが有ると、判断結果は「ＹＥＳ」になり、ステップＳＪ６に進み、表示部１５に画面表示される鍵盤画像において、発音タイミングに達した音符データ中の音高に対応した鍵の画像の表示形態を変化させるガイド表示を実行してユーザに弾くべき鍵を案内した後、後述のステップＳＪ１０に進む。
【０１０３】
一方、発音タイミングに達した音符データが検索されなければ、上記ステップＳＪ５の判断結果が「ＮＯ」になり、ステップＳＪ７に進む。ステップＳＪ７では、歩進されたレジスタＴの値が、ステップタイムとゲートタイムとの加算値に一致する音符データをＲＡＭ１４の曲データエリアＭＤＥから検索し、続くステップＳＪ８では、該当する音符データの有無、つまり消音タイミングに達した音符データが有るか否かを判断する。
【０１０４】
消音タイミングに達した音符データが無ければ、判断結果は「ＮＯ」になり、後述のステップＳＪ１０に進む。これに対し、消音タイミングに達した音符データが有ると、上記ステップＳＪ８の判断結果が「ＹＥＳ」になり、ステップＳＪ９に進み、表示部１５に画面表示される鍵盤画像において、消音タイミングに達した音符データ中の音高に対応した鍵の画像の表示形態を元に戻してガイド表示を消去した後、ステップＳＪ１０に進む。
【０１０５】
そして、ステップＳＪ１０では、練習フラグＲＦが「０」であるか否かを判断する。なお、練習フラグＲＦとは、ユーザの間違う癖（演奏ミス仕勝ちな音において起き易い演奏ミスの内容）を矯正する為の繰り返し練習期間が、後述する制御処理（図１８〜図１８参照）において設定された場合に「１」、繰り返し練習期間が解除された場合に「０」となるフラグである。したがって、このステップＳＪ１０では、繰り返し練習期間が設定されているかどうかを判断する。
【０１０６】
スタート／ストップスイッチの操作によりガイド開始が指示された当初、すなわち後述する制御処理（図１８〜図１８参照）により繰り返し練習期間が設定されていない状態であれば、練習フラグＲＦは「０」なので、判断結果は「ＹＥＳ」となり、図１６に図示するステップＳＪ１１に進む。ステップＳＪ１１では、レジスタＴの値が曲終了タイム以上であるか否か、つまり音符データに基づくガイドが完了したかどうかを判断する。
【０１０７】
レジスタＴの値が曲終了タイムに達せず、音符データに基づくガイドが進行中であるならば、判断結果は「ＮＯ」となり、本処理を終えるが、レジスタＴの値が曲終了タイム以上となって、音符データに基づくガイドが完了すると、上記ステップＳＪ１１の判断結果は「ＹＥＳ」となり、ステップＳＪ１２に進み、曲進行時間を計時するタイマインタラプトを禁止する。この後、ステップＳＪ１３に進み、スタートフラグＳＴＦをゼロリセットし、続くステップＳＪ１４では、表示部１５のガイド表示を消去して本処理を終える。
【０１０８】
これに対し、後述する制御処理（図１７〜図１８参照）により繰り返し練習期間が設定され、練習フラグＲＦが「１」となった以後に本ガイド２処理が再び実行されて上述したステップＳＪ１０（図１５参照）に処理を進めると、当該ステップＳＪ１０の判断結果は「ＮＯ」になり、図１６に図示するステップＳＪ１５に進む。ステップＳＪ１５では、レジスタＴの値がレジスタＴ２の値以上であるか否かを判断する。
【０１０９】
レジスタＴには、現在の曲位置に相当するタイム値がストアされ、レジスタＴ２には、後述する制御処理によって繰り返し練習期間の終わりに相当するタイム値がストアされる。したがって、ステップＳＪ１５では、繰り返し練習期間を過ぎたかどうかを判断する。繰り返し練習期間を過ぎていなければ、判断結果は「ＮＯ」になり、本処理を終えるが、繰り返し練習期間を過ぎると、判断結果が「ＹＥＳ」になり、ステップＳＪ１６に進み、練習回数ｍをインクリメントして歩進させる。
【０１１０】
次いで、ステップＳＪ１７では、歩進された練習回数ｍが繰り返し回数Ｍを超えたか否かを判断する。練習回数ｍが繰り返し回数Ｍを超えていなければ、判断結果は「ＮＯ」になり、ステップＳＪ１９に進み、繰り返し練習期間の始まりに相当するレジスタＴ１のタイム値をレジスタＴにストアして一旦本処理を終える。以後、本ガイド２処理では、繰り返し練習期間の始まり（Ｔ１）から終わり（Ｔ２）までのガイドを繰り返す。
【０１１１】
そして、繰り返し回数Ｍに達するまで間違う癖（演奏ミス仕勝ちな音において起き易い演奏ミスの内容）を矯正するガイドを繰り返し行うと、上記ステップＳＪ１７の判断結果が「ＹＥＳ」になり、ステップＳＪ１８に進み、繰り返し練習期間の解除を表すべく練習フラグＲＦをゼロリセットし、続くステップＳＪ１９では、繰り返し練習期間の始まりに相当するレジスタＴ１のタイム値をレジスタＴにストアして一旦本処理を終える。以後、本処理では、レジスタＴ１のタイム値から通常のガイドを再開する。
【０１１２】
以上のように、ガイド２処理では、ガイド進行中（スタートフラグＳＴＦが「１」）であると、曲再生テンポに対応した最小単位時間（ティック）が経過する毎にレジスタＴの値を歩進し、歩進されたレジスタＴの値と一致するステップタイムを有し、発音タイミングに達した音符データが存在すると、その音符データに基づき弾くべき鍵を案内するガイド表示を行う。また、歩進されたレジスタＴの値が、ステップタイムとゲートタイムとの加算値に一致し、消音タイミングに達した音符データが存在すると、その音符データに基づきガイド表示を消去する。
【０１１３】
こうしたガイドが進行中に、演奏ミス仕勝ちな音において同じ演奏ミスが生じ、これに応じて後述の制御処理によって繰り返し練習期間（レジスタＴ１のタイム値からレジスタＴ２のタイム値まで）が設定されると、繰り返し回数Ｍに達するまで間違う癖（演奏ミス仕勝ちな音において起き易い演奏ミスの内容）を矯正するガイドを繰り返し行い、それが完了すると、レジスタＴ１のタイム値から通常のガイドを再開する。
【０１１４】
（９）制御処理の動作
次に、図１７〜図１８を参照して制御処理の動作を説明する。前述した練習処理のステップＳＧ４（図１３参照）を介して本処理が実行されると、ＣＰＵ１２は図１７に図示するステップＳＬ１に進み、練習フラグＲＦが「１」であるか否か、つまりユーザの間違う癖を矯正する為の繰り返し練習期間が設定済みであるかどうかを判断する。繰り返し練習期間が設定済みならば、判断結果は「ＹＥＳ」になり、本処理を終える。
【０１１５】
一方、繰り返し練習期間が未設定（練習フラグＲＦが「０」）であれば、判断結果は「ＮＯ」になり、ステップＳＬ２に進む。ステップＳＬ２では、演奏データのステップタイムＳＴに最も近いステップタイムを有する音符データをＲＡＭ１４の曲データエリアＭＤＥから検索する。なお、演奏データは、前述の鍵盤処理（図９参照）において押鍵に応じて生成されてＲＡＭ１４のワークエリアＷＥに一時記憶されるデータであり、押鍵された鍵の音高ＫＥＹと、押鍵時点におけるレジスタＴの値で表されるステップタイムＳＴと、フラグ値「０」の終了フラグとから構成される。
【０１１６】
続いて、ステップＳＬ３では、曲データエリアＭＤＥから検索された該当音符データ中の終了フラグが「０」であるか否か、つまり未処理の音符データであるかどうかを判断する。該当音符データが処理済み（終了フラグが「１」）ならば、判断結果は「ＮＯ」となり、ステップＳＬ４に進み、該当音符データを検索対象から除外して上記ステップＳＬ２に処理を戻す。
【０１１７】
一方、該当音符データが未処理（終了フラグが「０」）であると、上記ステップＳＬ３の判断結果は「ＹＥＳ」となり、ステップＳＬ５に進む。ステップＳＬ５では、曲データエリアＭＤＥから検索された該当音符データ中の音高と、演奏データの音高ＫＥＹとが一致するか否か、つまり誤押鍵であるかどうかを判断する。以下では、誤押鍵でない場合と、誤押鍵の場合とに分けて動作説明を進める。
【０１１８】
＜誤押鍵でない場合＞
この場合、曲データエリアＭＤＥから検索された該当音符データ中の音高と、演奏データの押鍵音高ＫＥＹとが一致するので、上記ステップＳＬ５は「ＹＥＳ」となり、ステップＳＬ６に進む。ステップＳＬ６では、該当音符データのステップタイム（発音タイミング）と、演奏データのステップタイムＳＴ（押鍵タイミング）との差分が予め定められた所定範囲に収まっているか否か、つまり適正なタイミングで押鍵されたかどうかを判断する。適正なタイミングで押鍵されていれば、判断結果は「ＹＥＳ」となり、ステップＳＬ７に進み、曲データエリアＭＤＥから検索された該当音符データ中の終了フラグを「１」にセットして本処理を終える。
【０１１９】
これに対し、該当音符データのステップタイム（発音タイミング）と、演奏データのステップタイムＳＴ（押鍵タイミング）との差分が予め定められた所定範囲に収まらず、適正なタイミングで押鍵されていない場合には、上記ステップＳＬ６の判断結果が「ＮＯ」となり、ステップＳＬ８に進む。ステップＳＬ８では、該当音符データのステップタイム（発音タイミング）に対する演奏データのステップタイムＳＴ（押鍵タイミング）のずれが「進み」であるか否かを判断する。
【０１２０】
発音タイミングに対する押鍵タイミングのずれが「進み」ならば、判断結果は「ＹＥＳ」になり、ステップＳＬ９に進む。ステップＳＬ９では、該当音符データ中の判別フラグが「２」、つまり早めに押鍵仕勝ちな音を早めに押鍵してしまうという同じ過ちを繰り返したかどうかを判断する。同じ過ちを繰り返していなければ、判断結果は「ＮＯ」となり、本処理を終えるが、同じ過ちを繰り返すと、判断結果が「ＹＥＳ」になり、後述のステップＳＬ１７（図１８参照）に進む。
【０１２１】
一方、発音タイミングに対する押鍵タイミングのずれが「遅れ」であると、上記ステップＳＬ８の判断結果は「ＮＯ」になり、ステップＳＬ１０に進む。ステップＳＬ１０では、該当音符データ中の判別フラグが「１」、つまり遅れて押鍵仕勝ちな音を遅れて押鍵してしまうという同じ過ちを繰り返したかどうかを判断する。同じ過ちを繰り返していなければ、判断結果は「ＮＯ」となり、本処理を終えるが、同じ過ちを繰り返すと、判断結果が「ＹＥＳ」になり、後述のステップＳＬ１７（図１８参照）に進む。
【０１２２】
このように、早めに押鍵仕勝ちな音を早めに押鍵したり、遅れて押鍵仕勝ちな音を遅れて押鍵したりするといった同じ過ちを繰り返してしまった場合には、図１８に図示するステップＳＬ１７以降を実行し、その間違う癖（演奏ミス仕勝ちな音において起き易い演奏ミスの内容）を矯正する為の繰り返し練習期間を設定する。
【０１２３】
先ずステップＳＬ１７では、同じ過ちを繰り返した時の演奏データのステップタイムＳＴ（押鍵タイミング）より所定時間前のタイム値をレジスタＴ１にストアし、続くステップＳＬ１８では、当該演奏データのステップタイムＳＴ（押鍵タイミング）より所定時間後のタイム値をレジスタＴ２にストアする。こうして、レジスタＴ１にストアされたタイム値と、レジスタＴ２にストアされたタイム値とで繰り返し練習期間が設定されると、ステップＳＬ１９に進み、レジスタＴ１のタイム値（繰り返し練習期間の始端に相当）をレジスタＴにストアした後、続くステップＳＬ２０では、繰り返し練習期間が設定された旨を表すべく練習フラグＲＦを「１」にセットして本処理を終える。
【０１２４】
なお、繰り返し練習期間が設定されると、前述したガイド２処理（図１５〜図１６参照）では、繰り返し回数Ｍに達するまで間違う癖を矯正するガイドを繰り返し行うようになっている。
【０１２５】
＜誤押鍵の場合＞
この場合、曲データエリアＭＤＥから検索された該当音符データ中の音高と、演奏データの音高ＫＥＹとが不一致になるので、図１７に図示するステップＳＬ５の判断結果が「ＮＯ」になり、図１８に図示するステップＳＬ１１に進む。ステップＳＬ１１では、演奏データのステップタイムＳＴに対して２番目に近いステップタイムを有する音符データをＲＡＭ１４の曲データエリアＭＤＥから検索する。すなわち現在弾くべき音の次に弾く音の音符データを探し出す。
【０１２６】
次いで、ステップＳＬ１２では、曲データエリアＭＤＥから検索された該当音符データ中の終了フラグが「０」であるか否か、つまり未処理の音符データであるかどうかを判断する。該当音符データが処理済み（終了フラグが「１」）ならば、判断結果は「ＮＯ」となり、ステップＳＬ１３に進み、該当音符データを検索対象から除外して上記ステップＳＬ１１に処理を戻す。
【０１２７】
一方、該当音符データが未処理（終了フラグが「０」）であると、上記ステップＳＬ１２の判断結果は「ＹＥＳ」となり、ステップＳＬ１４に進み、曲データエリアＭＤＥから検索された該当音符データ中の音高と、演奏データの押鍵音高ＫＥＹとが一致するか否かを判断する。つまり、ステップＳＬ１４では、次に弾く音を誤って弾いてしまったかどうかを判断する。該当音符データ中の音高と、演奏データの音高ＫＥＹとが不一致の場合、すなわち次に弾く音を弾いていなければ、判断結果は「ＮＯ」になり、ステップＳＬ１５に進む。
【０１２８】
ステップＳＬ１５では、該当音符データ中の判別フラグが「３」、つまり押鍵間違い仕勝ちな音を誤押鍵してしまうという同じ過ちを繰り返したかどうかを判断する。同じ過ちを繰り返していなければ、判断結果は「ＮＯ」となり、本処理を終えるが、同じ過ちを繰り返すと、判断結果が「ＹＥＳ」になり、ステップＳＬ１７に進む。
【０１２９】
これに対し、該当音符データ中の音高と、演奏データの押鍵音高ＫＥＹとが一致し、次に弾く音を誤って弾いてしまった場合には、上記ステップＳＬ１４の判断結果が「ＹＥＳ」になり、ステップＳＬ１６に進む。ステップＳＬ１６では、該当音符データ中の判別フラグが「４」、つまり押鍵抜け仕勝ちな音を押鍵し忘れてしまうという同じ過ちを繰り返したかどうかを判断する。同じ過ちを繰り返していなければ、判断結果は「ＮＯ」となり、本処理を終えるが、同じ過ちを繰り返すと、判断結果が「ＹＥＳ」になり、ステップＳＬ１７に進む。
【０１３０】
押鍵間違い仕勝ちな音を誤押鍵したり、押鍵抜け仕勝ちな音を押鍵し忘れたりするといった同じ過ちを繰り返してしまった場合には、前述したステップＳＬ１７以降を実行し、その間違う癖（演奏ミス仕勝ちな音において起き易い演奏ミスの内容）を矯正する為の繰り返し練習期間を設定して本処理を終える。なお、繰り返し練習期間が設定されると、前述したガイド２処理（図１５〜図１６参照）では、繰り返し回数Ｍに達するまで間違う癖を矯正するガイドを繰り返し行う。
【０１３１】
このように、制御処理では、押鍵に応じて発生した演奏データに対応する音符データをＲＡＭ１４の曲データエリアＭＤＥから検索し、検索された該当音符データと演奏データとの比較に基づき演奏ミスの有無を判別し、演奏ミスが有れば、その演奏ミスした音符データの判別フラグを参照して同じ過ちを繰り返したかどうかを判断する。すなわち、早めに押鍵仕勝ちな音を早めに押鍵したり、遅れて押鍵仕勝ちな音を遅れて押鍵したりする演奏ミスや、押鍵間違い仕勝ちな音を誤押鍵してたり、押鍵抜け仕勝ちな音を押鍵し忘れたりする演奏ミスが発生すると、その間違う癖を矯正する繰り返し練習期間を設定する。
【０１３２】
以上説明したように、本実施形態では、先ず生成モードにおいて、曲を構成する各音を表す音符データに基づきユーザに弾くべき鍵を案内するガイド表示を行い、それに従ってユーザが行う押鍵操作で発生する演奏データと、それに対応する音符データとの比較に基づき演奏ミスの有無を判断し、演奏ミスが有れば、対応する演奏ミス項目別に分類して発生回数を計数する処理を複数回実行して曲を構成する各音の内から演奏ミス仕勝ちな音と、その音で起き易い演奏ミス項目とを抽出しておく。
【０１３３】
そして、練習モードにおいて、曲を構成する各音を表す音符データに基づきユーザに弾くべき鍵を案内するガイド表示を行い、それに従ってユーザが行う押鍵操作で発生する演奏データと、それに対応する音符データとの比較に基づき演奏ミスの有無を判断し、演奏ミスが有れば、生成モードで抽出された演奏ミス仕勝ちな音における起き易い演奏ミス項目であるか否か、つまり同じ過ちが繰り返されたかどうかを判断し、同じ過ちが繰り返された場合には、その演奏ミス仕勝ちな音の演奏を繰り返し練習するようにガイド表示するので、曲を演奏するユーザの間違う癖を矯正して練習効果を高めることが可能になる。
【０１３４】
なお、本実施形態では、同じ過ちが繰り返された音について一律に所定回数の繰り返し練習を行わせるようにしたが、これに限らず、繰り返し練習中の押鍵操作が適正であるか否かを判定する繰り返し練習判定手段と、この繰り返し練習判定手段により誤った押鍵操作が行われたと判定された場合に、練習回数ｍをゼロリセットして繰り返し練習を始めからやり直させる練習回数制御手段とを更に設ける態様とすることも可能である。こうした構成を更に具備することによって、ユーザの間違う癖を矯正する効果を一層向上させ得る。
【０１３５】
さらには、例えば誤押鍵など曲演奏上の影響度が高い演奏ミスに高い重み付けを与える等、前述した演奏ミス項目（「遅れ回数」、「進み回数」、「誤り回数」および「抜け回数」）毎に影響度に応じた重み付け係数を予め付与しておき、同じ過ちが繰り返された音の演奏ミス項目に付与された重み付け係数を参照して繰り返し練習回数を異ならせる態様にすることも可能である。こうすることで曲演奏上の影響度が高い音で間違う癖が出たら繰り返し練習回数を多くし、一方、影響度が低い音で間違う癖が出たら繰り返し練習回数を少なくするので、曲演奏上の影響度が高い音で間違う癖を重点的に矯正することが可能になる。
【０１３６】
また、上述した実施形態では、説明の簡略化を図る為、曲を構成する各音を表すデータ（音高、ステップタイムおよびゲートタイム）と、生成処理又は練習処理に供するデータ（ミス回数エリア、終了フラグおよび判別フラグ）とを一体化した音符データを用いるようにしたが、それら両データを分離した態様とすることも可能である。
【０１３７】
すなわち、生成処理又は練習処理に供するデータ（ミス回数エリア、終了フラグおよび判別フラグ）を、曲を構成する各音に対応付けた別個のデータベースとして設けておき、生成処理又は練習処理の実行時にこのデータベースを参照する態様としても、上述した実施形態と同様、曲を演奏するユーザの間違う癖を矯正して練習効果を高めることができる。
【符号の説明】
【０１３８】
１０  鍵盤
１１  スイッチ部
１２  ＣＰＵ
１３  ＲＯＭ
１４  ＲＡＭ
１５  表示部
１６  音源
１７  サウンドシステム
１００  演奏教習装置
【図１】
0005454771.tif 000002
【図２】
0005454771.tif 000003
【図３】
0005454771.tif 000004
【図４】
0005454771.tif 000005
【図５】
0005454771.tif 000006
【図６】
0005454771.tif 000007
【図７】
0005454771.tif 000008
【図８】
0005454771.tif 000009
【図９】
0005454771.tif 000010
【図１０】
0005454771.tif 000011
【図１１】
0005454771.tif 000012
【図１２】
0005454771.tif 000013
【図１３】
0005454771.tif 000014
【図１４】
0005454771.tif 000015
【図１５】
0005454771.tif 000016
【図１６】
0005454771.tif 000017
【図１７】
0005454771.tif 000018
【図１８】
0005454771.tif 000019