(57)【特許請求の範囲】
【請求項１】
演奏教習に係る曲を構成する複数の音符の各音符ごとの音高及び発音開始時間のデータを含む音符データを記憶する記憶手段と、
演奏に際して楽音の音高を指定するための複数の操作子と、
各操作子ごとに対応して設けられ異なる態様で表示可能な表示手段と、
所定時間を設定する時間設定手段と、
前記記憶手段から音符データを順次読み出すデータ読出手段と、
このデータ読出手段によって読み出された音符データの発音開始時間と現在時間に前記所定時間を加算した未来時間とを比較して、当該未来時間以内の発音開始時間を有する音符データを選択するデータ選択手段と、
前記データ選択手段によって選択され現在時間に達した発音開始時間を有する音符データの音高を指定するための操作子に対応する第１の表示手段群と
前記データ選択手段によって選択され現在時間に達していない発音開始時間を有する音符のデータのうち当該現在時間に最も近い発音開始時間を有する音符データの音高を指定するための操作子に対応する第２の表示手段群と
前記データ選択手段によって選択され現在時間に達していない発音開始時間を有する音符のデータのうち当該現在時間に最も近い発音開始時間を有する音符データ以外の音高を指定するための操作子に対応する第３の表示手段群とを
表示させる表示制御手段と、
電源が交流電源であるか又はバッテリーであるかを検出する検出手段と
を備える演奏教習装置において、
前記検出手段の検出結果が交流電源であった場合には前記第１乃至第３の表示手段群を表示し、
前記検出手段の検出結果がバッテリーであった場合には第１と第２の表示手段群の表示は行い第３の表示手段群の表示は行わない、
ことを特徴とする演奏教習装置。
【請求項２】
コンピューターに、
演奏教習に係る曲を構成する複数の音符の各音符ごとの音高及び発音開始時間のデータを含む音符データを記憶する記憶手段から、音符データを順次読み出すデータ読出手順と、
このデータ読出手順によって読み出された音符データの発音開始時間と現在時間に所定時間を加算した未来時間とを比較して当該未来時間以内の発音開始時間を有する音符データを選択するデータ選択手順と、
演奏に際して楽音の音高を指定するための複数の操作子の各操作子ごとに対応して設けられ、異なる態様で表示可能な表示手段に対して、
前記データ選択手順によって選択され現在時間に達した発音開始時間を有する音符データの音高を指定するための操作子に対応する第１の表示手段群と
前記データ選択手順によって選択され現在時間に達していない発音開始時間を有する音符のデータのうち当該現在時間に最も近い発音開始時間を有する音符データの音高を指定するための操作子に対応する第２の表示手段群と
前記データ選択手順によって選択され現在時間に達していない発音開始時間を有する音符のデータのうち当該現在時間に最も近い発音開始時間を有する音符データ以外の音高を指定するための操作子に対応する第３の表示手段群と
を選択する表示選択手順と、
電源が交流電源であるか又はバッテリーであるかを検出する検出手順と、
前記検出手順の検出結果が交流電源であった場合には前記表示選択手順によって選択された第１乃至第３の表示手段群を表示し、
前記検出手順の検出結果がバッテリーであった場合には前記表示選択手順によって選択された第１と第２の表示手段群の表示は行い第３の表示手段群の表示は行わない、
表示制御手順と、
を実行させるためのプログラムを記録したコンピューター読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演奏教習装置及び演奏教習処理プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
演奏をガイドする演奏教習（演奏ナビゲーション）についての先行技術として、例えば、特開昭５７−６４７８３号公報、特開昭６０−１５３０７５号公報、実開昭６２−１６７２７２公報がある。いずれも、各鍵ごとに設けたランプ、ＬＥＤ等により押鍵すべき位置を表示する構成になっている。
特開昭５７−６４７８３号公報には、２小節分の音符の押鍵位置を表示させ、１小節進行（押鍵）するごとに表示を更新して、常に１小節分は重ねて表示させる技術が記載されている。
特開昭６０−１５３０７５号公報には、各鍵ごとに赤、緑、黄の３色のＬＥＤを設けて、次に押鍵すべき鍵を赤色で指示し、次の次に押鍵すべき鍵を緑色で指示し、押鍵中の鍵の押鍵すべき時間を黄色で指示する技術が記載されている。
実開昭６２−１６７２７２公報には、各鍵ごとに赤、青、黄の３色の発光素子を設けて、３つ先までの押鍵すべき複数の鍵を指示する技術が記載されている。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記従来の技術において、特開昭５７−６４７８３号公報の場合には、押鍵すべき順番が全く分からないという欠点がある。すなわち、１小節進むごとに２小節分の表示されるので、最初にどの鍵を押鍵すべきかが分からない。また、押鍵ごとにその鍵の表示を消灯する場合には、１小節の最後の音符に対応する鍵を押鍵したとたんに、表示が一気に切り替わるので、却って演奏者がとまどってしまい、演奏をガイドすることができないという問題があった。一方、１小節ごとに表示を消灯する場合には、押鍵した鍵の表示が消えずに残っているため、演奏ガイドを阻害してしまうという問題があった。
特開昭６０−１５３０７５号公報及び実開昭６２−１６７２７２公報の場合には、音符（イベント）数のみで処理しているため、運指速度を予測することができなかった。例えば、２分音符が３つ続いた場合も、１６分音符が３つ続いた場合も、表示形態は同じであるので、８分音符の演奏が続いた後に、２分音符が３つ続いた場合には押鍵が早すぎるおそれがあり、１６分音符が３つ続いた場合には押鍵が間に合わなくなるおそれがある。この結果、押鍵・離鍵タイミングや押鍵位置を誤ることが多くなる。また、ユーザーは、休符の存在を知ることもできない。
さらに、上記従来技術においては、電源供給の態様にかかわらず表示パターンが同じであり、電力消費に対する考慮が一切されていない。
本発明の第１の課題は、押鍵すべき順番を明示するとともに、運指速度を予測できるようにすることである。さらに、休符の存在を知ることができるようにすることである。
本発明の第２の課題は、供給電源の電力消費を考慮した演奏ガイドを行うようにすることである。
【０００４】
【課題を解決するための手段】
請求項１に記載の演奏教習装置は、演奏教習に係る曲を構成する複数の音符の各音符ごとの音高及び発音開始時間のデータを含む音符データを記憶する記憶手段と、演奏に際して楽音の音高を指定するための複数の操作子と、各操作子ごとに対応して設けられ異なる態様で表示可能な表示手段と、所定時間を設定する時間設定手段と、前記記憶手段から音符データを順次読み出すデータ読出手段と、このデータ読出手段によって読み出された音符データの発音開始時間と現在時間に前記所定時間を加算した未来時間とを比較して、当該未来時間以内の発音開始時間を有する音符データを選択するデータ選択手段と、前記データ選択手段によって選択され現在時間に達した発音開始時間を有する音符データの音高を指定するための操作子に対応する第１の表示手段群と前記データ選択手段によって選択され現在時間に達していない発音開始時間を有する音符のデータのうち当該現在時間に最も近い発音開始時間を有する音符データの音高を指定するための操作子に対応する第２の表示手段群と前記データ選択手段によって選択され現在時間に達していない発音開始時間を有する音符のデータのうち当該現在時間に最も近い発音開始時間を有する音符データ以外の音高を指定するための操作子に対応する第３の表示手段群とを表示させる表示制御手段と、電源が交流電源であるか又はバッテリーであるかを検出する検出手段とを備える演奏教習装置において、前記検出手段の検出結果が交流電源であった場合には前記第１乃至第３の表示手段群を表示し、前記検出手段の検出結果がバッテリーであった場合には第１と第２の表示手段群の表示は行い第３の表示手段群の表示は行わない、ことを特徴としている。
【０００６】
請求項２に記載の記録媒体は、演奏教習に係る曲を構成する複数の音符の各音符ごとの音高及び発音開始時間のデータを含む音符データを記憶する記憶手段から、音符データを順次読み出すデータ読出手順と、このデータ読出手順によって読み出された音符データの発音開始時間と現在時間に所定時間を加算した未来時間とを比較して当該未来時間以内の発音開始時間を有する音符データを選択するデータ選択手順と、演奏に際して楽音の音高を指定するための複数の操作子の各操作子ごとに対応して設けられ、異なる態様で表示可能な表示手段に対して、前記データ選択手順によって選択され現在時間に達した発音開始時間を有する音符データの音高を指定するための操作子に対応する第１の表示手段群と前記データ選択手順によって選択され現在時間に達していない発音開始時間を有する音符のデータのうち当該現在時間に最も近い発音開始時間を有する音符データの音高を指定するための操作子に対応する第２の表示手段群と前記データ選択手順によって選択され現在時間に達していない発音開始時間を有する音符のデータのうち当該現在時間に最も近い発音開始時間を有する音符データ以外の音高を指定するための操作子に対応する第３の表示手段群とを選択する表示選択手順と、電源が交流電源であるか又はバッテリーであるかを検出する検出手順と、前記検出手順の検出結果が交流電源であった場合には前記表示選択手順によって選択された第１乃至第３の表示手段群を表示し、前記検出手順の検出結果がバッテリーであった場合には前記表示選択手順によって選択された第１と第２の表示手段群の表示は行い第３の表示手段群の表示は行わない、表示制御手順と、を実行する演奏教習処理プログラムを記録している。
【０００８】
【発明の実施の形態】
以下、本発明の実施形態について、図を参照して詳細に説明する。
図１は、実施形態における演奏教習装置のシステム構成を示している。ＣＰＵ１は、システムバスを介して、ＲＯＭ２、ＲＡＭ３、鍵盤４、ＬＥＤ群５、スイッチ群６、及びサウンドシステム７に接続されている。ＲＯＭ２は、ＣＰＵ１によって実行される演奏教習処理プログラム、及び、複数の曲データを記憶している記憶手段である。
【０００９】
図１において、ＲＡＭ３には、演奏データを一時的に記憶するバッファ、楽音教習処理に必要なレジスタ、フラグが設けられている。鍵盤４は、演奏に際して発音の音高を指定するための複数の操作子である。発光手段としてのＬＥＤ群５は、各鍵内又は各鍵の近傍に設けられた、赤色の発光素子及び緑色の発光素子で構成された、２色発光の発光ダイオードである。スイッチ群６は、演奏モードを通常演奏モード又はナビゲーション演奏モード（演奏教習モード）に設定するモードスイッチ、ナビゲーション演奏を開始又は停止を指示するスタート／ストップスイッチ、その他の演奏条件を設定するスイッチで構成されている。サウンドシステム６は、ＣＰＵ１の発音指示及び消音指示に応じて発音を制御する。
【００１０】
図２は、ＲＯＭ２に記憶されている曲データのフォーマットを示している。複数の曲（曲０１、０２、０３……）の各曲ごとに、アドレスによって指定されるイベントデータが記憶されている。先頭アドレスには、曲の拍子及びテンポのデータが記憶されている。次のアドレスからは、各アドレスごとに、音高、発音タイミング（発音開始時間）、及び音長のデータからなる音符データが記憶されている。また、各曲の最後のアドレスには、曲終了を示すＥＮＤデータが記憶されている。
【００１１】
図３はＲＡＭ３のワークエリアのフォーマットを示している。ノーマルアドレス及びオフセットアドレスには、演奏をガイドする曲のイベントデータのアドレスが一時的に記憶される。バッファエリアには、ＲＯＭ２から読み出した音符データを一時的に記憶する。その他、図に示すように各種のフラグやレジスタがＲＡＭ３に設けられている。ＮＶＦは、ナビゲーションの進行状態／停止状態を示すフラグである。ＮＶＦ＝１はナビゲーション進行状態を示し、ＮＶＦ＝０はナビゲーション停止状態を示す。ＮＭＦは、ナビゲーションの進行態様を示すフラグである。ＮＭＦが０の場合には、正しい押鍵に応じてナビゲーションが進行する押鍵ナビゲーションを表わし、ＮＭＦが１の場合には、押鍵にかかわらず自動的にナビゲーションが進行する自動ナビゲーションを表わす。
【００１２】
ＴＦは、ＲＯＭ２からＲＡＭ３に音符データを転送してナビゲート処理を行うか否かを示すフラグである。ＴＦが１の場合には音符データを転送してナビゲート処理を行い、ＴＦが０の場合には音符データは転送せずナビゲート処理を行わない。タイマカウント値のエリアには、タイマインタラプトがあるとインクリメントされた値がストアされる。Ｔ１及びＴ２は、ＮＭＦが１の自動ナビゲーションの場合に用いるレジスタである。Ｔ１には、ＲＯＭ２からＲＡＭ３への音符データの転送の際にタイマカウント値（現在時間）がストアされる。Ｔ２には、テンポ値に応じた一定の時間データ、例えばその曲における最も短い音符の音長の時間データがストアされる。ＡＤＦは、電源供給状態がＡＣラインからである（ＡＤＦ＝１）か、又は、バッテリーからである（ＡＤＦ＝０）かを示すフラグである。ＭＦは、通常演奏モード（ＭＦ＝０）又はナビゲーション演奏モード（ＭＦ＝１）であるかを示すフラグである。ＯＦＴは、テンポによって自動的に（あるいはユーザの操作によって）設定される所定時間である。ＫＦは、正しい押鍵に応じてナビゲーションが進行するモード（ＮＭＦ＝０）において、正しい押鍵がなされたときに１にセットされるフラグである。
【００１３】
次に、実施形態における演奏教習処理の動作について図を参照して説明する。図４は、ＣＰＵ１のメインフローチャートである。このフローにおいては、イニシャライズ処理（ステップＡ１）を行った後、スイッチ処理（ステップＡ２）、ナビゲート処理（ステップＡ３）、鍵盤処理（ステップＡ４）、その他の処理（ステップＡ５）を繰り返し実行する。
【００１４】
図５は、タイマインタラプト処理のフローである。一定時間ごとに入るタイマインタラプトに応じてメインフローからこのフローに移行する。まず、ＮＶＦが１（ナビゲーション進行状態）であるか否かを判別する（ステップＡ６）。ＮＶＦが０（ナビゲーション停止状態）である場合には、図４のメインフローに戻る。ＮＶＦが１である場合には、ＮＭＦが０（押鍵ナビゲーション）であるか否かを判別する（ステップＡ７）。ＮＭＦが０である場合には、ＴＦが１であるか否かを判別する（ステップＡ８）。ＴＦが１である場合には、タイマカウント値にＴＰのテンポデータを加算する（ステップＡ９）。そして、このフローを終了して図４のメインフローに戻る。
【００１５】
ステップＡ７において、ＮＭＦが１（自動ナビゲーション）である場合には、タイマカウント値にＴＰのテンポデータを加算する（ステップＡ１０）。そして、タイマカウント値からＴ１の値を減算した値がＴ２の値を超えたか否かを判別する（ステップＡ１１）。この減算した値がＴ２の値を超えたときは、ＴＦを１にセットする（ステップＡ１２）。次に、Ｔ１にタイマカウント値をストアする（ステップＡ１３）。そして、このフローを終了して図４のメインフローに戻る。ステップＡ１１において、タイマカウント値からＴ１の値を減算した値がＴ２の値を超えない場合には、ＴＦを０にリセットして（ステップＡ１４）、このフローを終了して図４のフローに戻る。
【００１６】
図６は、メインフローのステップＡ１におけるイニシャライズ処理のフローである。この処理では、ＡＣアダプタが装着されているか否かを判別する（ステップＢ１）。装着されている場合には、フラグＡＤＦを１にセットし（ステップＢ２）、装着されていない場合にはＡＤＦを０にセットする（ステップＢ３）。ＡＤＦをセットした後は、その他のイニシャライズ処理を行って（ステップＢ４）、図４のメインフローに戻る。その他のイニシャライズ処理では、図３に示したＲＡＭのレジスタ、ＡＤＦを除く他のフラグ、バッファの各エリアをクリアする。
【００１７】
図７は、メインフローのステップＡ２におけるスイッチ処理のフローである。この処理では、モードスイッチがオンされたか否かを判別し（ステップＣ１）、オンされたときはフラグＭＦを反転する（ステップＣ２）。次に、ＭＦが１であるか０であるかを判別する（ステップＣ３）。ＭＦが１（ナビゲーション演奏モード）である場合には、ナビゲーションの態様を自動ナビゲーション又は押鍵ナビゲーションのいずれかに設定するための、自動／押鍵待ち・スイッチが操作されたか否かを判別する（ステップＣ４）。このスイッチが操作されたときはフラグＮＭＦを反転する（ステップＣ５）。この後、ナビゲーション演奏の曲を選択する曲選択処理を実行する（ステップＣ６）。
【００１８】
次に、スタート／ストップ・スイッチが操作されたか否かを判別する（ステップＣ７）。このスイッチが操作されたときは、フラグＮＶＦを反転する（ステップＣ８）。そして、ＮＶＦが１（ナビゲーション進行状態）であるか、０（ナビゲーション停止状態）であるかを判別する（ステップＣ９）。ＮＶＦが１である場合には、フラグＴＦを１にセットする（ステップＣ１０）。次に、選択曲の先頭アドレスの次のアドレスを、ノーマルアドレス及びオフセットアドレスにともにストアする（ステップＣ１１）。次に、タイマカウント値を０にセットする（ステップＣ１２）。この後、又はステップＣ７においてスタート／ストップ・スイッチが操作されない場合には、その他のスイッチ処理を行って（ステップＣ１３）、このフローを終了して図４のメインフローに戻る。
【００１９】
図７のステップＣ３において、ＭＦが０（通常演奏モード）である場合には、ＮＶＦを０（ナビゲーション停止状態）にセットして（ステップＣ１４）、ＲＡＭ３のバッファエリアをクリアし（ステップＣ１５）、全てのＬＥＤを消灯する（ステップＣ１６）。そして、ステップＣ１３のその他のスイッチ処理を行う。ステップＣ９において、ＮＶＦが０である場合には、ＲＡＭ３のバッファエリアをクリアし（ステップＣ１５）、全てのＬＥＤを消灯する（ステップＣ１６）。そして、ステップＣ１３のその他のスイッチ処理を行う。
【００２０】
ステップＣ６における曲選択処理のフローを図８に示す。この処理では、フラグＮＶＦが１であるか否かを判別し（ステップＤ１）、ＮＶＦが０（ナビゲーション停止状態）である場合にはこのフローを終了するが、ＮＶＦが１（ナビゲーション進行状態）である場合には、選択曲の変更があるか否かを判別する（ステップＤ２）。選択曲の変更がない場合にはこのフローを終了するが、選択曲の変更があったときは、その選択曲の先頭アドレスをノーマルアドレスにストアし、先頭アドレスの次のアドレスをオフセットアドレスにストアする（ステップＤ３）。すなわち、図２に示すデータにおいて、拍子データ及びテンポデータのアドレスをノーマルアドレスにストアし、最初の音符データ（音高、発音タイミング、音長の各データ）のアドレスをオフセットアドレスにストアする。
【００２１】
次に、ノーマルアドレスのデータの拍子データ、テンポデータをそれぞれレジスタＴＭ、レジスタＴＰにストアする（ステップＤ４）。そして、ＴＭ及びＴＰの値（又はＴＰのみの値）を用いて、オフセット値を算出し、算出したオフセット値をレジスタＯＦＴにストアする（ステップＤ５）。すなわち、選択曲の拍子及びテンポ（又はテンポのみ）に応じた所定時間のデータをＯＦＴにストアする。例えば、１つの８分音符♪の時間長が１２５ｍｓであるテンポの曲において、８分音符２．５個分の３１２．５ｍｓの所定時間をＯＦＴにセットする。次に、ノーマルアドレスをインクリメントして（ステップＤ６）、このフローを終了して図７のフローに戻る。
【００２２】
メインフローのステップＡ３におけるナビゲート処理のフローを図９に示す。この処理では、ＮＶＦが１（ナビゲーション進行状態）であるか否かを判別し（ステップＥ１）、ＮＶＦが１である場合にはＡＤＦが１であるか０であるかを判別する（ステップＥ２）。ＡＤＦが１でＡＣラインからの電源供給である場合には、ナビゲーション１処理を実行する（ステップＥ３）。ＡＤＦが０でバッテリーからの電源供給である場合には、ナビゲーション２処理を実行する（ステップＥ４）。ナビゲーション１処理若しくはナビゲーション２処理の後、又はステップＥ１においてＮＶＦが０（ナビゲーション停止状態）の場合には、このフローを終了してメインフローに戻る。
【００２３】
図１０〜図１３は、図９のステップＥ３におけるナビゲーション１処理のフローである。図１０において、ＴＦが１であるか否かを判別する（ステップＦ１）。ＴＦが０である場合にはこのフローを終了するが、ＴＦが１である場合には、ノーマルアドレスのデータがＥＮＤであるか否かを判別する（ステップＦ２）。このデータがＥＮＤでない場合には、オフセットアドレスのデータがＥＮＤであるか否かを判別する（ステップＦ３）。このデータがＥＮＤでない場合には、タイマカウント値（現在時間）にＯＦＴのデータ（所定時間）を加算した値（未来時間）が、オフセットアドレスの発音タイミングの値以上であるか否かを判別する（ステップＦ４）。
【００２４】
曲の最初においては、まだタイマインタラプトが入らなければタイマカウント値は０である。また、オフセットアドレスは、先頭アドレスの次のアドレスになっているので、ＯＦＴの値が最初の音符データの発音タイミング以上であるか否かを判別する。例えば、ＯＦＴの値が３１２．５ｍｓで、最初の音符データの発音タイミングが１００ｍｓであるとすると、ステップＦ４からステップＦ５に移行する。次に、オフセットアドレスの音高データに対応する鍵のＬＥＤが消灯中であるか否かを判別する。消灯中である場合には、オフセットアドレスの音高データに対応する鍵のＬＥＤを緑で点灯する（ステップＦ６）。そして、オフセットアドレスのデータをバッファに格納する（ステップＦ７）。
【００２５】
次に、オフセットアドレスをインクリメントして（ステップＦ８）、ステップＦ４に移行する。そして、オフセットアドレスのデータがＥＮＤでなく、かつ、ステップＦ４においてタイマカウント値にＯＦＴのデータを加算した値が、オフセットアドレスの発音タイミングデータの値以上である場合には、ステップＦ３〜ステップＦ８のループを繰り返す。ステップＦ５において、オフセットアドレスの音高データに対応する鍵のＬＥＤがすでに点灯している場合には、タイマカウント値にＯＦＴのデータを加算した時間内に同じ音高で発音タイミングが異なる音符データが複数ある場合である。この場合には、オフセットアドレスのデータをバッファに追加格納する（ステップＦ７）。
【００２６】
ステップＦ３においてオフセットアドレスののデータがＥＮＤであるか、又は、ステップＦ４においてタイマカウント値にＯＦＴのデータを加算した値が、オフセットアドレスの発音タイミングデータの値未満である場合には、図１１のフローにおいて、タイマカウント値（現在時間）がノーマルアドレスの発音タイミング（発音開始時間）に達したか否かを判別する（ステップＦ９）。発音タイミングに達していない場合には、ＬＥＤが緑点灯のみで赤点灯及び赤点滅のＬＥＤが全くないか否かを判別する（ステップＦ１０）。緑点灯のみである場合には、ノーマルアドレスの発音タイミングと同じ発音タイミングを有するデータをバッファ内から検索する（ステップＦ１１）。そして、検索されたデータ全てに対応する鍵のＬＥＤを赤点滅する（ステップＦ１２）。
【００２７】
ステップＦ９において、タイマカウント値がノーマルアドレスの発音タイミングに達したときは、ノーマルアドレスの音高データに対応する鍵のＬＥＤを赤点灯する（ステップＦ１３）。次に、ノーマルアドレスをインクリメントして（ステップＦ１４）、ノーマルアドレスのデータがＥＮＤであるか否かを判別する（ステップＦ１５）。ＥＮＤでない場合には、タイマカウント値がノーマルアドレスの発音タイミングデータの値に達したか否かを判別する（ステップＦ１６）。発音タイミングデータの値に達したときはステップＦ１３に移行してステップＦ１６までのループを繰り返す。すなわち、和音の音符データのように、異なる音高で発音タイミングが同じ音符データがある場合には、その異なる音高に対応する鍵のＬＥＤをすべて赤点灯する。
【００２８】
ステップＦ１６において、タイマカウント値がノーマルアドレスの発音タイミングデータの値に達していない場合には、ノーマルアドレスの発音タイミングと同じ発音タイミングを有するデータをバッファ内から検索する（ステップＦ１７）。そして、同じ発音タイミングのデータがあるか否かを判別する（ステップＦ１８）。同じ発音タイミングのデータがある場合には、検索されたデータのうちで対応する鍵のＬＥＤが赤点灯しているものがあるか否かを判別する（ステップＦ１９）。赤点灯しているＬＥＤがある場合には、赤点灯しているＬＥＤ以外の検索データに対応する鍵のＬＥＤを赤点滅する（ステップＦ２０）。ステップＦ１９において、赤点灯しているＬＥＤがない場合には、検索されたデータ全てに対応する鍵のＬＥＤを赤点滅する（ステップＦ１２）。
【００２９】
ステップＦ１０において赤点灯若しくは赤点滅又はその両方のＬＥＤがある場合、ステップＦ１５においてノーマルアドレスのデータがＥＮＤである場合、ステップＦ１８においてノーマルアドレスの発音タイミングと同じ発音タイミングを有するデータがバッファ内にない場合、ステップＦ１２若しくはステップＦ２０においてＬＥＤを赤点滅した場合には、図１２のフローに移行する。
【００３０】
そして、タイマカウント値と比較することにより、バッファ内で消音タイミングに達したデータを検索して（ステップＦ２１）、消音タイミングに達したデータがあるか否かを判別する（ステップＦ２２）。消音タイミングに達したデータがない場合には、このフローを終了して図４のメインフローに戻る。消音タイミングに達したデータがある場合には、ＮＭＦが０であるか否かを判別する（ステップＦ２３）。ＮＭＦが０（押鍵ナビゲーション）である場合には、フラグＫＦが１（ナビゲーションに応じた押鍵あり）であるか否かを判別する（ステップＦ２４）。ＫＦが０（ナビゲーションに応じた押鍵なし）である場合には、このフローを終了して図４のメインフローに戻る。
【００３１】
ステップＦ２４においてＫＦが１である場合には、ＫＦを０にセットして（ステップＦ２５）、ＴＦを１にセットする（ステップＦ２６）。そして、検索されたデータに対応する鍵のＬＥＤを全て消灯する（ステップＦ２７）。ステップＦ２３において、ＮＭＦが１（自動ナビゲーション）の場合には、押鍵にかかわらず自動的にナビゲーションが進行するので、ステップＦ２７に移行して検索されたデータに対応する鍵のＬＥＤを全て消灯する。ステップＦ２７においてＬＥＤを消灯した後は、検索されたデータと同じ音高で、異なる発音タイミングを有するデータがバッファ内にあるか否かを判別する（ステップＦ２８）。
【００３２】
そのようなデータがバッファ内にある場合には、その同音高で異なる発音タイミングのデータのうち、ノーマルアドレスの発音タイミングと同じ発音タイミングを有するデータがあるか否かを判別する（ステップＦ２９）。そのようなデータがある場合には、そのデータに対応する鍵のＬＥＤを赤点滅し、それ以外の同音高で異なる発音タイミングのデータに対応する鍵のＬＥＤを緑点灯する（ステップＦ３０）。ノーマルアドレスの発音タイミングと同じ発音タイミングを有するデータがない場合には、同音高で異なる発音タイミングのデータ全てに対応する鍵のＬＥＤを緑点灯する（ステップＦ３１）。ステップＦ３０又はステップＦ３１における緑点灯の後は、上記の検索された消音タイミングに達したデータ全てをバッファから消去する（ステップＦ３２）。そして、このフローを終了して図４のメインフローに戻る。
【００３３】
ステップＦ２８において、同じ音高で異なる発音タイミングを有するデータがバッファ内にない場合には、図１３のフローにおいて、検索されたデータ全てをバッファから消去する（ステップＦ３３）。次に、バッファ内にデータがあるか否かを判別する（ステップＦ３４）。データがない場合には、ノーマルアドレスのデータがＥＮＤであるか否かを判別する（ステップＦ３５）。データがＥＮＤである場合には、ＮＶＦを０にセットして（ステップＦ３６）、このフローを終了して図４のメインフローに戻る。ステップＦ３４においてバッファ内にデータがある場合、又はステップＦ３５においてノーマルアドレスのデータがＥＮＤでない場合には、このフローを終了して図４のメインフローに戻る。
【００３４】
図１４〜図１６は、図９のステップＥ４におけるナビゲーション２処理のフローである。図１４において、ＴＦが１であるか否かを判別し（ステップＧ１Ａ）、ＴＦが０である場合には、このフローを終了して図４のメインフローに戻る。ＴＦが１である場合には、ノーマルアドレスのデータがＥＮＤであるか否かを判別する（ステップＧ１Ｂ）。データがＥＮＤでない場合には、タイマカウント値（現在時間）がノーマルアドレスの発音タイミング（発音開始時間）に達したか否かを判別する（ステップＧ２）。タイマカウント値がノーマルアドレスの発音タイミングに達したときは、ノーマルアドレスの音高データに対応する鍵のＬＥＤを赤点灯する（ステップＧ３）。そして、ノーマルアドレスのデータをバッファに格納する（ステップＧ４）。次に、ノーマルアドレスをインクリメントして（ステップＧ５）、ノーマルアドレスのデータがＥＮＤであるか否かを判別する（ステップＧ６）。ＥＮＤでない場合には、タイマカウント値がノーマルアドレスの発音タイミングデータの値に達したか否かを判別する（ステップＧ７）。発音タイミングデータの値に達したときはステップＧ３に移行してステップＧ７までのループを繰り返す。すなわち、和音の音符データのように、異なる音高で発音タイミングが同じ音符データがある場合には、その異なる音高に対応する鍵のＬＥＤをすべて赤点灯する（ステップＧ３）とともに、そのデータをバッファに追加する（ステップＧ４）。
【００３５】
ステップＧ７において、タイマカウント値がノーマルアドレスの発音タイミングデータの値に達していない場合には、図１５のフローにおいて、オフセットアドレスの音高データがバッファ内の音高データと同じであるか否かを判別する（ステップＧ９）。音高データが同じである場合には、オフセットアドレスの音高データに対応する鍵のＬＥＤを赤点滅する（ステップＧ１０）。赤点滅した後、又は、ステップＧ９において音高データが同じでない場合には、オフセットアドレスをインクリメントする（ステップＧ１１）。そして、オフセットアドレスのデータがＥＮＤであるか否かを判別する（ステップＧ１２）。データがＥＮＤでない場合には、オフセットアドレスの発音タイミングデータが、１つ前のオフセットアドレスの発音タイミングデータと同じであるか否かを判別する（ステップＧ１３）。発音タイミングが同じである場合、すなわち、和音である場合には、ステップＧ９に移行してステップＧ１３までのループを繰り返す。
【００３６】
図１４のステップＧ２において、タイマカウント値がノーマルアドレスの発音タイミングに達していない場合には、赤点灯及び赤点滅のＬＥＤが全くないか否かを判別する（ステップＧ８）。赤点灯及び赤点滅のＬＥＤが全くない場合には、図１５のステップＧ１０に移行して、オフセットアドレスの音高データに対応する鍵のＬＥＤを赤点滅する。
【００３７】
図１４のステップＧ８において赤点灯若しくは赤点滅又はその両方のＬＥＤがある場合、ステップＧ１Ｂ又はステップＧ６においてノーマルアドレスのデータがＥＮＤである場合、図１５のステップＧ１２においてオフセットアドレスのデータがＥＮＤである場合、ステップＧ１３においてオフセットアドレス及び１つ前のオフセットアドレスの発音タイミングが同じでない場合には、図１６のフローに移行する。
【００３８】
そして、タイマカウント値と比較することにより、バッファ内で消音タイミングに達したデータを検索して（ステップＧ１５）、消音タイミングに達したデータがあるか否かを判別する（ステップＧ１６）。消音タイミングに達したデータがない場合には、このフローを終了して図４のメインフローに戻る。消音タイミングに達したデータがある場合には、検索されたデータに対応する鍵のＬＥＤを全て消灯する（ステップＧ１７）とともに、検索されたデータの全てをバッファから消去する（ステップＧ１８）。次に、バッファ内にデータがあるか否かを判別する（ステップＧ１９）。データがない場合には、ノーマルアドレスのデータがＥＮＤであるか否かを判別する（ステップＧ２０）。データがＥＮＤである場合には、ＮＶＦを０にセットして（ステップＧ２１）、このフローを終了して図４のメインフローに戻る。ステップＧ１９においてバッファ内にデータがある場合、又はステップＧ２０においてノーマルアドレスのデータがＥＮＤでない場合にも、このフローを終了して図４のメインフローに戻る。
【００３９】
メインフローにおけるステップＡ４の鍵盤処理のフローを図１７に示す。この処理では、新たな押鍵があるか否かを判別し（ステップＨ１）、新たな押鍵があったときは、キーコード検知を行う（ステップＨ２）。そして、検知したキーコードに応じた音高での発音をサウンドシステムに指示する（ステップＨ３）。次に、ＮＭＦが０（押鍵ナビゲーション）であるか否かを判別し（ステップＨ４）、ＮＭＦが０である場合には、赤点灯のＬＥＤの鍵が押鍵されたか否かを判別する（ステップＨ５）。すなわち、ナビゲーションされた鍵が正しく押鍵されたか否かを判別する。正しい押鍵である場合には、フラグＫＦを１にセットして（ステップＨ）、このフローを終了して図４のメインフローに戻る。ステップＨ４において、ＮＭＦが１（自動ナビゲーション）である場合には、押鍵にかかわらずナビゲーションが進行するので、直ちにこのフローを終了して図４のメインフローに戻る。
【００４０】
ステップＨ１において、新たな押鍵がない場合には、新たな離鍵があるか否かを判別する（ステップＨ７）。新たな離鍵があったときは、キーコード検知を行う（ステップＨ８）。そして、検知したキーコードに応じた音高での消音をサウンドシステムに指示する（ステップＨ９）。ステップＨ１において新たな押鍵がなく、かつ、ステップＨ７において新たな離鍵もない場合には、このフローを終了して図４のメインフローに戻る。
【００４１】
音符データには様々な態様がある。図１８は、音高の変化を縦方向にとり、時間経過を横方向にとったときの、音符データの様々な態様を表わした図である。音高の異なるノーマルな音符データの他に、短休符や長休符が間にある場合、レガートやアルペジオのように１つの音符が終わる前に異なる音高の他の音符が重なる場合、コードのように異なる音高で発音タイミングが同じ音符の場合がある。上記実施形態によれば、このような様々な態様の音符データに対応したナビゲーションが可能になる。
【００４２】
例えば、正しい押鍵によってナビゲーションが進行する押鍵ナビゲーションの場合において、ＡＣラインから電源供給を受ける場合を例に採る。この場合においては、図１９に示す曲のナビゲーションを実施形態の演奏教習処理によって行う。この曲データは、図２０に示すようになる。この場合には、図２１に示すように、鍵に設けられたＬＥＤが点灯及び点滅する。図２１において、黒で示す鍵は赤点灯の鍵であり、太いハッチングで示す鍵は赤点滅の鍵であり、細いハッチングで示す鍵は緑点灯の鍵である。また、図１９において、Ａ〜Ｅで示すタイミング（時間）に対応するナビゲーション表示が、図２１においてＡ〜Ｅで示す表示態様になっている。
【００４３】
まず、図６のイニシャライズ処理のステップＢ１においてＡＣアダプタ装着と判別して、ステップＢ２においてＡＤＦを１にセットする。また、図７のスイッチ処理のフローのステップＣ３においてＭＦが１（ナビゲーション演奏モード）と判別される。さらに、ステップＣ６の曲選択処理において、図１９の曲が選択されると、図８のステップＤ４において拍子データがレジスタＴＭにストアされ、テンポデータがレジスタＴＰにストアされる。テンポデータが８分音符で６０とすると、８分音符の音長は１２５ｍｓとなり、１６分音符の音長は６２．５ｍｓとなる。なお、この場合において、曲の最初の音符データの発音タイミングデータを１００ｍｓとし、ＯＦＴの所定時間をテンポデータの２．５倍の値とする。したがって、図８のステップＤ５において設定するＯＦＴの値である所定時間は、３１２．５ｍｓとなる。
【００４４】
図７のスイッチ処理においてステップＣ７でスタートスイッチの操作があったことを判別すると、ステップＣ４０においてＴＦを１にセットする。また、ステップＣ４１において、ノーマルアドレス及びオフセットアドレスには、最初の音符データ（音高データ＝Ｅ５、発音タイミングデータ＝１００ｍｓ）のアドレスがストアされる。そして、図９のナビゲート処理のフローにおいて、ステップＥ２でＡＤＦが１と判別して、図１０〜図１３のナビ１を実行する。
【００４５】
図１０のフローのステップＦ４において、オフセットアドレスの発音タイミングデータ（＝１００ｍｓ）と、タイマカウンタ値（＝０ｍｓ）＋ＯＦＴの値（＝３１２．５ｍｓ）とが比較される。この場合には、１００ｍｓ≦３１２．５ｍｓであるので、ステップＦ５を経てステップＦ６で音高データ＝Ｅ５に対応する鍵のＬＥＤを緑点灯し、ステップＦ７で音符データをバッファに格納する。ステップＦ８でオフセットアドレスをインクリメントすると、２番目の音符データ（音高データ＝Ｄ５＃、発音タイミングデータ＝１６２．５ｍｓ）のアドレスがセットされる。この場合も１６２．５ｍｓ≦３１２．５ｍｓであるので、ステップＦ５を経てステップＦ６で音高データ＝Ｄ５＃に対応する鍵のＬＥＤを緑点灯し、ステップＦ７で音符データをバッファに追加して格納する。
【００４６】
次に、３番目の音符データ（音高データ＝Ｅ５、発音タイミングデータ＝２２５ｍｓ）のアドレスがセットされると、２２５ｍｓ≦３１２．５ｍｓであるので、ステップＦ５に移行するが、すでに音高データ＝Ｅ５（最初の音符データ）に対応する鍵のＬＥＤが緑点灯されている。したがって、ステップＦ６の処理を行わずに、ステップＦ７で音高データ＝Ｅ５の音符データをバッファに重複して追加格納する。
【００４７】
そして、５番目の音符データ（音高データ＝Ｄ５、発音タイミングデータ＝３５０ｍｓ）のアドレスがセットされると、ステップＦ４において３５０ｍｓ＞３１２．５ｍｓと判別されるので、ステップＦ５には移行せず、図１１のステップＦ９に移行する。この状態では、Ｅ５、Ｄ５＃、Ｂ４の３個の鍵のＬＥＤが緑点灯している。また、バッファには、Ｅ５、Ｄ５＃、Ｅ５、Ｂ４の４個の音符データがバッファに格納されている。
【００４８】
図１１のステップＦ９においては、ノーマルアドレスの発音タイミングデータ（＝１００ｍｓ）＞タイマカウント値（＝０ｍｓ）と判別され、ステップＦ１０に移行する。ここで緑点灯のみと判別されて、ステップＦ１１に移行する。この場合、ノーマルアドレスの発音タイミングと同じ発音タイミングのデータは、１個（最初の音符データのみ）であるので、ステップＦ１２において、音高データ＝Ｅ５に対応する鍵のＬＥＤを赤点滅する。
【００４９】
次に、タイマカウント値が図５のステップＡ９でインクリメントされてゆき、１００ｍｓに達すると、図１０のステップＦ４において、タイマカウント値（＝１００ｍｓ）＋ＯＦＴの値（＝３１２．５ｍｓ）＝４１２．５ｍｓを超えない発音タイミングデータをもつ音符データがバッファに格納される。したがって、図２０に示すように、１番目から６番目までの、Ｅ５、Ｄ５＃、Ｅ５、Ｂ４、Ｄ５、Ｃ５の音符データがバッファに格納され、４１２．５ｍｓを超える発音タイミングデータ４７５ｍｓをもつ７番目及び８番目の、Ａ４及びＡ２音符データは格納されない。また、この場合には、Ｅ５、Ｄ５＃、Ｂ４、Ｄ５、Ｃ５の音高データに対応する鍵のＬＥＤが緑点灯される。
【００５０】
ところが、図１１のステップＦ９において、ノーマルアドレスの発音タイミングデータ（＝１００ｍｓ）≦タイマカウント値（＝１００ｍｓ）と判別し、ステップＦ１３に移行する。そして、音高データ＝Ｅ５に対応する鍵のＬＥＤを赤点灯する。次に、ステップＦ１４でノーマルアドレスをインクリメントすると、２番目の音符データのアドレスが指定される。この後、ステップＦ１５からステップＦ１６に移行し、ノーマルアドレスの発音タイミングデータ（＝１６２．５ｍｓ）＞タイマカウント値（＝１００ｍｓ）と判別する。したがって、ステップＦ１７〜ステップＦ１９を経て、ステップＦ２０において２番目の音符データの音高データＤ５＃に対応する鍵のＬＥＤを赤点滅する。すなわち、Ｅ５、Ｄ５＃、Ｂ４、Ｄ５、Ｃ５の音高データに対応する鍵のＬＥＤが緑点灯されるのは一瞬であり、次の瞬間には、Ｅ５の鍵のＬＥＤが赤点灯、Ｄ５＃の鍵のＬＥＤが赤点滅、Ｂ４、Ｄ５、Ｃ５の３個の鍵のＬＥＤが緑点灯となる。したがって、図２１のＡの状態となる。
【００５１】
次に、図１９の曲においてＢのタイミングになると、図１０のフローのステップＦ４において、タイマカウント値（＝２８７．５ｍｓ）＋ＯＦＴの値（＝３１２．５ｍｓ）＝６００ｍｓを超えない発音タイミングデータの音符データが判別されて、ステップＦ５においてＬＥＤの点灯・点滅処理を行い、ステップＦ７においてバッファ内に格納する。この場合には、４番目の音符データＢ４（発音タイミングデータ＝２８７．５ｍｓ）から、１０番目の音符データＡ３（発音タイミングデータ＝６００ｍｓ）までの、７個の音符データがバッファ内に格納される。またこの場合には、バッファ内において同じ音高データのものがないので、バッファ内の全ての音高データに対応する７個の鍵のＬＥＤが点灯及び点滅される。また、１番目の音符データから３番目の音符データは、その消音タイミングがタイマカウント値（＝２８７．５ｍｓ）以下となるので、図１２のステップＦ２７において対応する鍵のＬＥＤが消灯され、ステップＦ３２においてバッファから消去される。したがって、図２１のＢに示すように、４番目の音符データＢ４に対応する鍵のＬＥＤが赤点灯し、５番目の音符データＤ５に対応する鍵のＬＥＤが赤点滅し、残りの６番目から１０番目の音符データに対応する５個の鍵のＬＥＤが緑点灯する。
【００５２】
次に、図１９の曲においてＣのタイミングになると、図１０のフローのステップＦ４において、タイマカウント値（＝４７５ｍｓ）＋ＯＦＴの値（＝３１２．５ｍｓ）＝７８７．５ｍｓを超えない発音タイミングデータの音符データが判別されて、ステップＦ５においてＬＥＤの点灯・点滅処理を行い、ステップＦ７においてバッファ内に格納する。この場合には、７番目の音符データＡ４（発音タイミングデータ＝４７５ｍｓ）から、１３番目の音符データＡ４（発音タイミングデータ＝７８７．５ｍｓ）までの、７個の音符データがバッファ内に格納される。またこの場合には、バッファ内において同じ音高データＡ４が２個あるので、バッファ内の重複しない全ての音高データに対応する６個の鍵のＬＥＤが点灯及び点滅される。さらにこの場合においては、７番目及び８番目の音符データは同じ発音タイミングデータ（＝４７５ｍｓ）である。また、４番目の音符データから６番目の音符データは、その消音タイミングがタイマカウント値（＝４７５ｍｓ）以下となるので、図１２のステップＦ２７において対応する鍵のＬＥＤが消灯され、ステップＦ３２においてバッファから消去される。したがって、図２１のＣに示すように、７番目の音符データＡ４及び８番目の音符データＡ２に対応する２個の鍵のＬＥＤが赤点灯し、９番目の音符データＥ３に対応する鍵のＬＥＤが赤点滅し、残りの１０番目から１３番目の音符データに対応する４個の鍵のＬＥＤが緑点灯する。
【００５３】
次に、図１９の曲においてＤのタイミングになると、図１０のフローのステップＦ４において、タイマカウント値（＝８５０ｍｓ）＋ＯＦＴの値（＝３１２．５ｍｓ）＝１１６２．５ｍｓを超えない発音タイミングデータの音符データが判別されて、ステップＦ５においてＬＥＤの点灯・点滅処理を行い、ステップＦ７においてバッファ内に格納する。この場合には、１４番目の音符データＢ４（発音タイミングデータ＝８５０ｍｓ）のみがバッファ内に格納される。１５番目の音符データＢ４の発音タイミングデータは１２２５ｍｓであるので、タイマカウント値（＝８５０ｍｓ）＋ＯＦＴの値（＝３１２．５ｍｓ）＝１１６２．５ｍｓを超えてしまい、バッファ内には格納されない。また、７番目の音符データから１３番目の音符データは、その消音タイミングがタイマカウント値（＝８５０ｍｓ）以下となるので、図１２のステップＦ２７において対応する鍵のＬＥＤが消灯され、ステップＦ３２においてバッファから消去される。この場合には、図２１のＤに示すように、１４番目の音符データＢ４に対応する鍵のＬＥＤが赤点灯し、他の鍵のＬＥＤは全て点灯も点滅もされない。したがって、長い音長の音符であることが容易に認識できる。
【００５４】
次に、図１９の曲においてＥのタイミング（タイマカウント値＝９１２．５ｍｓ）になると、図１０のフローのステップＦ４において、タイマカウント値（＝９１２．５ｍｓ）＋ＯＦＴの値（＝３１２．５ｍｓ）＝１２２５ｍｓを超えない発音タイミングデータの音符データが判別されて、ステップＦ５においてＬＥＤの点灯・点滅処理を行い、ステップＦ７においてバッファ内に格納する。この場合には、１５番目の音符データＣ５（発音タイミングデータ＝１２２５ｍｓ）及び１６番目の音符データＡ２（発音タイミングデータ＝１２２５ｍｓ）の、２個の音符データがバッファ内に格納される。また、１４番目の音符データは、その消音タイミング（＝１２２５ｍｓ）がタイマカウント値（＝９１２．５ｍｓ）より大きいので、図１２のステップＦ２７において対応する鍵のＬＥＤは赤点灯の状態が維持され、ステップＦ３２においてバッファから消去されない。したがって、図２１のＥに示すように、１４番目の音符データＢ４に対応する鍵のＬＥＤが赤点灯を維持し、１５番目の音符データＣ５及び１６番目の音符データＡ２に対応する２個の鍵のＬＥＤが赤点滅する。
【００５５】
このように、上記実施形態においては、ＣＰＵ１は、ＲＯＭ２から音符データを読み出すデータ読出手段を構成するとともに、読み出した音符データの発音開始時間（発音タイミング）と現在時間（タイマカウント値）に、所定時間（ＯＦＴの値）を加算した未来時間とを比較して、その未来時間以内の発音開始時間を有する音符データを選択するデータ選択手段を構成する。また、この所定時間を設定する時間設定手段を構成する。さらに、音符データの音高を指定するための鍵に対応する表示手段（ＬＥＤ）を、その音符データの発音開始時間に応じた態様で表示させる表示制御手段を構成する。
【００５６】
この構成により、演奏教習に係る曲を構成する複数の音符の各音符ごとの音高及び発音開始時間のデータを含む音符データを演奏教習に先立って読み出し、読み出した音符データの発音開始時間と現在時間に所定時間を加算した未来時間とを比較して、未来時間以内の発音開始時間を有する音符データを選択し、選択した音符データの音高を指定するための操作子に対応する表示手段を、その音符データの発音開始時間に応じた態様で表示させる。したがって、押鍵すべき順番を明示するとともに、運指速度を予測することができる。さらに、未来時間以内に発音開始時間を有する音符データがない場合には、すべての表示手段が表示しないので、休符の存在を知ることができる。
【００５７】
さらに上記実施形態によれば、電源供給が交流電源からであるか又はバッテリーからであるかを検出して、その検出結果によって表示手段の態様を指定する。例えば、バッテリーからの電源供給である場合には表示させる表示手段の内容を制限する。したがって、バッテリーからの電源供給である場合には消費電力を節約できる。
【００５８】
なお、上記実施形態においては、ＲＯＭ２内に記憶されている演奏教習処理プログラムをＣＰＵ１が実行する構成にしたが、実施形態においてＣＰＵ１のフローチャートによって表わされる演奏教習処理プログラムを、フロッピーディスク、ＣＤ等の汎用の記録媒体に記録して、これをパソコン等の汎用の情報処理装置で読み出して演奏教習処理を行うようにしてもよい。この場合には、記録媒体の発明を構成する。
【００５９】
【発明の効果】
本発明によれば、押鍵すべき順番を明示するとともに、運指速度を予測することができる。さらに、未来時間以内に発音開始時間を有する音符データがない場合には、すべての表示手段が表示しないので、休符の存在を知ることができる。
【００６０】
さらに本発明によれば、バッテリーからの電源供給である場合には消費電力を節約できる。
【図面の簡単な説明】
【図１】実施形態におけるシステム構成を示すブロック図。
【図２】図１のＲＯＭに記憶された演奏教習の曲データの構成を示す図。
【図３】図１のＲＡＭにおける記憶エリアの構成を示す図。
【図４】図１のＣＰＵのメインフローチャート。
【図５】タイマインタラプトのフローチャート。
【図６】図４におけるイニシャライズ処理のフローチャート。
【図７】図４におけるスイッチ処理のフローチャート。
【図８】図７における曲選択処理のフローチャート。
【図９】図４におけるナビゲート処理のフローチャート。
【図１０】図９におけるナビ１のフローチャート。
【図１１】図１０に続くナビ１のフローチャート。
【図１２】図１１に続くナビ１のフローチャート。
【図１３】図１２に続くナビ１のフローチャート。
【図１４】図９におけるナビ２のフローチャート。
【図１５】図１４に続くナビ２のフローチャート。
【図１６】図１５に続くナビ２のフローチャート。
【図１７】図４における鍵盤処理のフローチャート。
【図１８】音符データの態様を示す図。
【図１９】演奏教習の曲の例を示す図。
【図２０】図１９の曲のデータ構成を示す図。
【図２１】図１９の曲のナビゲート処理によって鍵盤の発光状態を示す図。
【符号の説明】
１  ＣＰＵ
２  ＲＯＭ
３  ＲＡＭ
４  鍵盤
５  ＬＥＤ群
６  スイッチ群
【図１】
0003896727.tif 000002
【図２】
0003896727.tif 000003
【図３】
0003896727.tif 000004
【図４】
0003896727.tif 000005
【図５】
0003896727.tif 000006
【図６】
0003896727.tif 000007
【図７】
0003896727.tif 000008
【図８】
0003896727.tif 000009
【図９】
0003896727.tif 000010
【図１０】
0003896727.tif 000011
【図１１】
0003896727.tif 000012
【図１２】
0003896727.tif 000013
【図１３】
0003896727.tif 000014
【図１４】
0003896727.tif 000015
【図１５】
0003896727.tif 000016
【図１６】
0003896727.tif 000017
【図１７】
0003896727.tif 000018
【図１８】
0003896727.tif 000019
【図１９】
0003896727.tif 000020
【図２０】
0003896727.tif 000021
【図２１】
0003896727.tif 000022