(57)【要約】      （修正有）【課題】ユーザーが演奏ミスしたらこの演奏ミスに気付かせて正しく弾くようにすること、また、間違った曲の解釈で演奏ミスしていた場合であれば、これを正すことにある。【解決手段】演奏ガイドされた操作子に対応して、これが実際に演奏操作された操作子の全てであり、且つ、この演奏ガイドされた操作子のみ演奏操作された場合に限って次に続く演奏ガイドを継続させ、それ以外の演奏操作がなされると演奏ガイドを停止するようにした。例え、演奏ガイドしている部分を正しく演奏していても、演奏ガイドしていない他の操作子までも同時に操作していた場合は、完全に正しく演奏するまで演奏ガイドを進行させない構成にしたので、演奏者に演奏ミス、或いは、演奏上の誤解を正すことができる。【選択図】図１３
2004219778.tif 000002
【特許請求の範囲】
【請求項１】
一連の音高情報を記憶する記憶手段と、
この記憶手段より音高情報を読み出す読出手段と、
この読出手段により読み出された音高情報に基づき、演奏装置に設けられた複数の操作子の中から演奏すべき演奏操作子をガイドする演奏ガイド手段と、
前記複数の演奏操作子夫々に対して演奏操作されたか否かを検出する演奏操作検出手段と、
この演奏操作検出手段により前記演奏装置の全ての演奏操作子に対して演奏操作がなされたか否かの検出が終了した後に、前記演奏ガイド手段によりガイドされた演奏すべき演奏操作子と、前記演奏操作検出手段により演奏操作がなされたと検出された演奏操作子とを比較し、当該演奏操作がなされたことを検出された演奏操作子が、当該ガイドされた演奏操作子の全てであり、且つ、当該ガイドされた演奏操作子のみであるか否かを判定する判定手段と、
前記判定手段により当該演奏操作がなされたことを検出された演奏操作子が、当該ガイドされた演奏操作子の全てであり、且つ、当該ガイドされた演奏操作子のみであると判定された場合にのみ、前記記憶手段から次に続く音高情報を読み出すように前記読出手段を制御すると共に、それ以外の演奏操作が検出された場合は前記読出手段の読出し動作を停止するように制御する制御手段と、
を有することを特徴とする演奏指示装置。
【請求項２】
記憶手段に記憶された音高情報を読み出し、この読み出された音高情報に基づいて、演奏装置に設けられた複数の操作子の中から演奏すべき演奏操作子をガイドするステップと、
前記複数の演奏操作子夫々に対して演奏操作されたか否かを検出するステップと、
前記複数の演奏操作子夫々に対して演奏操作がなされたか否かの検出が終了した後に、前記演奏ガイドされた演奏すべき演奏操作子と、前記演奏操作がなされたと検出された演奏操作子とを比較し、当該演奏操作がなされたことを検出された演奏操作子が、当該ガイドされた演奏操作子の全てであり、且つ、当該ガイドされた演奏操作子のみであるか否かを判定するステップと、
当該演奏操作がなされたことを検出された演奏操作子が、当該ガイドされた演奏操作子の全てであり、且つ、当該ガイドされた演奏操作子のみであると判定された場合にのみ、前記記憶手段から次に続く音高情報を読み出すと共に、それ以外の演奏操作が検出された場合は音高情報の読出し動作を停止するように制御するステップと、
を有することを特徴とする演奏指示処理のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、演奏指示装置及び演奏指示処理プログラムに関する。
【０００２】
【従来の技術】
従来、電子鍵盤楽器のレッスン機能として、記憶手段に記憶されている模範演奏の曲データを読み出して演奏指示するものがある。
例えば、模範演奏となる曲データの音高とユーザーによる押鍵操作された鍵の音高とを比較して、演奏ガイドした音高が押鍵操作されたことを検出すると、この次に続く曲データの音高を読み出して演奏ガイドを継続するという演奏指示装置がある（引例は特許文献１、特許文献２、特許文献３参照）。
【０００３】
【特許文献１】
特開２０００−２６７６６２号公報（第１頁−第２０頁、図５３）
【特許文献２】
特開２０００−２７６１４７号公報（第１頁−第２０頁、図５３）
【特許文献３】
特開２００１−１２５５６９号公報（第１頁−第１５頁、図４１）
【０００４】
【発明が解決しようとする課題】
例えば、初心者が演奏ガイドされている鍵を押鍵する場合、この押鍵すべき鍵とその隣接するガイドされていない鍵も同時に押鍵してしまうことがある。
このように、正しい演奏操作子と誤った演奏操作子を同時に演奏操作した場合でも、上述の特許文献１〜３に示される演奏ガイド装置は、とにかく正解鍵は押鍵されているので、正しい押鍵を行ったとして、そのまま次の演奏ガイドを継続してしまうので、ユーザーはいつまでもたっても演奏ミスに気付かないで同じミスを何度も繰り返し、演奏が上達しないという問題が生ずる。
【０００５】
本発明は、上述の如き従来の課題を解決するために成されたもので、その目的は、ユーザーが演奏ミスしたらこの演奏ミスに気付かせて正しく弾くようにすること、また、間違った曲の解釈で演奏ミスしていた場合であれば、これを正すことにある。
【０００６】
【課題を解決するための手段】
この発明の解決の手段は以下のとおりである。
上記目的を達成するために、請求項１に係る発明においては、まず一連の音高情報を記憶する記憶手段と、この記憶手段より音高情報を読み出す読出手段を有し、
この読出手段により読み出された音高情報に基づき、演奏装置に設けられた複数の操作子の中から演奏すべき演奏操作子をガイドする演奏ガイド手段を有する。
そして、前記複数の演奏操作子夫々に対して演奏操作されたか否かを検出する演奏操作検出手段を有し、
この演奏操作検出手段により前記演奏装置の全ての演奏操作子に対して演奏操作がなされたか否かの検出が終了した後に、前記演奏ガイド手段によりガイドされた演奏すべき演奏操作子と、前記演奏操作検出手段により演奏操作がなされたと検出された演奏操作子とを比較し、当該演奏操作がなされたことを検出された演奏操作子が、当該ガイドされた演奏操作子の全てであり、且つ、当該ガイドされた演奏操作子のみであるか否かを判定する判定手段とを有する。
そして、この判定手段により当該演奏操作がなされたことを検出された演奏操作子が、当該ガイドされた演奏操作子の全てであり、且つ、当該ガイドされた演奏操作子のみであると判定された場合にのみ、前記記憶手段から次に続く音高情報を読み出すように前記読出手段を制御すると共に、それ以外の演奏操作が検出された場合は前記読出手段の読出し動作を停止するように制御する制御手段を有する。
【０００７】
本発明は、請求項２の記載のように、上記手段の動作手順をプログラム化し、コンピュータに実行させることにより実施できる。その際、コンピュータプログラムはハードディスク等のディスク型記録媒体、半導体メモリやカード型メモリ等の各種メモリ、或いは通信ネットワーク等の各種プログラム記録媒体を通じてコンピュータに供給することができる。
【０００８】
本発明は、上記構成を有することにより、演奏する曲に対して正当な演奏操作子に対して演奏操作されたときのみ、これに続く演奏ガイドを継続することができる。
【０００９】
【発明の実施の形態】
図１は、本発明の実施形態に係る演奏指示装置の構成例を示したブロック図である。
ＣＰＵ１０１は、バスライン１１０を介して演奏指示装置を構成する後述の各回路、装置に接続され、各種データを授受して全体の機能を統制する。
【００１０】
スイッチ群１０２は、複数のスイッチから成り、電源をオンオフする電源スイッチ、モードを選択するモードスイッチ、自動演奏のテンポを指定するテンポスイッチ、自動演奏の開始／停止を指示するスタート／ストップスイッチ、その他各種機能を設定するスイッチ等が設けられている。
【００１１】
鍵盤１０３は、複数の鍵から成り、後述するように鍵盤下方には鍵表面部を照射するＬＥＤ（発光ダイオード）などのガイド用表示部１０７が設けられているとともに、各鍵に対応して夫々押鍵／離鍵を検出する鍵スイッチが設けられている。
これらの鍵を押鍵／離鍵操作すると、この鍵操作に応じて鍵スイッチがオンオフ動作する。このオンオフ信号はバスライン１１０を介してＣＰＵ１０１に入力される。
【００１２】
プログラムＲＯＭ１０４は、ＣＰＵ１０１において、定められた手順に従い各種機能の処理を実行するためのプログラムを記憶する記憶装置である。
【００１３】
ワークＲＡＭ１０５は、ＣＰＵ１０１がプログラムの処理を実行する際に、必要なデータを一時的にストアするワークメモリである。
【００１４】
ガイド用データＲＯＭ１０６は、ガイド用の演奏データを記憶する記憶装置である。
【００１５】
ガイド用表示部１０７は、前述のように鍵盤１０３に設けられた各鍵毎のガイド用ＬＥＤから成り、ＣＰＵ１０１からの表示指示に基づき点灯、点滅、及び、消灯、が制御される。尚、このガイド用表示部１０７は、鍵下方に設けられたＬＥＤに代わり、例えば液晶表示パネルなどを設けてガイド表示の他に演奏に関わる情報を複合して表示してもよい。
【００１６】
音源１０８は、ＣＰＵ１０１からの楽音生成指示に基づいて、楽音信号を生成する。
発音回路１０９は、音源１０８によって生成された楽音信号を増幅してスピーカーより発音する。
【００１７】
図２は、ガイド用データＲＯＭ１０６のデータ配置構成を示す。
このガイド用データＲＯＭ１０６のメモリエリアは、ガイド用の曲を構成する各種「イベント」、この「イベント」から次のイベントまでの時間データである「タイム」、そして、このガイド曲の終了を示す「ＥＮＤ」をストアするエリアから成る。
この「イベント」をストアするメモリエリアには、このイベントを構成するデータとして、演奏に用いる右手／左手を示す「パート」、ノートオン／ノートオフを示す「識別コード」、鍵番号（音高値に対応）を示す「ノート」、押鍵速度又は強度を示す「ベロシティ」、のデータがストアされている。
【００１８】
図３は、本発明の基本処理を示すフローチャートである。
ＣＰＵ１０１は、電源スイッチ（図示せず）がオンされるとワークＲＡＭ１０５内にストアされている各データを初期状態にセットする（Ｓ３０１）。
【００１９】
次に、スイッチ群１０２によって検出されたスイッチ操作状態を読み込むＳＷ処理（Ｓ３０２）を実行した後、ガイド処理（Ｓ３０３）、鍵盤処理（Ｓ３０４）、その他の処理（Ｓ３０５）を夫々実行して電源スイッチがオフされるまでＳ３０２からＳ３０５の処理を繰り返す。
電源スイッチがオフされると電源オフ処理を実行して本ルーティンを終了する。
【００２０】
次に、図３に示されるＳＷ処理Ｓ３０２の詳細について、図４のフローチャートを参照して説明する。
まず、テンポＳＷ処理を実行してからスタート／ストップＳＷ処理を実行し、次にその他のＳＷ処理を実行して本ルーティンを終了する。
【００２１】
図４に示されるテンポＳＷ処理Ｓ４０１の詳細について、図５のフローチャートを参照して説明する。
まず、ＣＰＵ１０１は、スイッチ群１０２に設けられているテンポＳＷ（図示せず）が操作されているか否かを判定する（Ｓ５０１）。
ここで、テンポＳＷが操作されてテンポ設定されていれば、この設定された入力テンポ値をレジスタ「ＴＥＭＰＯ」にストアする（Ｓ５０２）。
そして、このレジスタ「ＴＥＭＰＯ」の値に基づいて、ガイド用ＲＯＭ１０６からガイド曲のデータを読み出すための基準タイミング周期を決める最小単位時間が設定される（Ｓ５０３）。
【００２２】
図４に示されるスタート／ストップＳＷ処理Ｓ４０２の詳細について、図６及び図７のフローチャートを参照して説明する。
まず、ＣＰＵ１０１は、スイッチ群１０２に設けられているスタート／ストップＳＷ（図示せず）がオンされたか否かを判定する（Ｓ６０１）。
ここで、スタート／ストップＳＷがオンされていなければ、何もしないでそのまま本ルーティンを終了するが、スタート／ストップＳＷがオンされると、スタートフラグＳＴＦを反転させる（Ｓ６０２）。
そして、この反転されたスタートフラグＳＴＦが自動演奏のスタートを示す「１」であるか否かを判定する（Ｓ６０３）。
このとき、ＳＴＦが「１」を示すものであればアドレスポインタＡＤの値をガイド用データＲＯＭ１０６の先頭アドレスに移動させる（Ｓ６０４）。
【００２３】
これにより、ガイド用データＲＯＭ１０６の先頭アドレスにストアされている「タイム」を読み（Ｓ６０５）、この読み出された「タイム」をワークＲＡＭ１０５のレジスタ「ＴＩＭＥ」にストアする（Ｓ６０６）。
そして、次回押鍵すべき鍵を指示するためのガイド用データを読み込むため、ワークＲＡＭ１０５のレジスタ「ＮＥＸＴ  ＡＤ」にアドレスポインタＡＤの示すアドレスをそのままストアして（Ｓ６０７）、このレジスタ「ＮＥＸＴ  ＡＤ」をインクリメントする（Ｓ６０８）。
【００２４】
そして、この「ＮＥＸＴ  ＡＤ」のアドレスポインタの値によりガイド用データＲＯＭ１０６からデータを読み込み（Ｓ６０９）、この読み出されたガイド用データが「イベント」を示すものであるか否かを判定する（図７のＳ７０１）。
ここで、読み出されたガイド用データが「イベント」を示すものであれば、このイベントの「パート」が「右手」を示すものか否かを判定する（Ｓ７０２）。
【００２５】
このイベントの「パート」が「右手」を示しているものであれば、次に、イベント内の「識別コード」が「ノートオン」を示すものであるか否かを判定する（Ｓ７０３）。
この識別コードが「ノートオン」を示すものであれば、これに対応するイベント内の「ノート」を読み出して、レジスタ「ＮＥＸＴ  ＮＯＴＥ」にストアする（Ｓ７０４）。
【００２６】
次に、イベント内の「ベロシティ」のデータを読み出して、レジスタ「ＮＥＸＴ  ＶＥＬＯＣＩＴＹ」にストアする（Ｓ７０５）。
そして、「ＮＥＸＴ  ＮＯＴＥ」にストアされた「ノート」（鍵番号）により指定された鍵下方に設けられたガイド用ＬＥＤを点滅させて、次に押鍵すべき鍵であることを報知する（Ｓ７０６）。
【００２７】
次に、レジスタ「ＴＩＭＥ」にストアされた「タイム」の時間を累積するためのタイマＴ１にストアする（Ｓ７０７）。
そして、実際の演奏経過時間をカウントするタイマＴ２を「０」にセットしてから（Ｓ７０８）、ガイド用データＲＯＭ１０６からデータを順次読み出すための基準となる最小単位時間の経過をカウントするタイマＴ３を起動（Ｓ７０９）して、本ルーティンを終了する。
【００２８】
一方、Ｓ７０１の処理において読み出されたガイド用データが「イベント」でない場合、Ｓ７０２の処理でイベント内のパートが「右手」でない場合、或いは、イベント内の識別コードが「ノートオン」でない場合は、図６のＳ６０８の処理に戻り、ＮＥＸＴ  ＡＤを進めてガイドデータＲＯＭ１０６から次のデータを読み出す処理を行う。
【００２９】
また、Ｓ６０３の処理においてスタートフラグＳＴＦが「１」でない場合、つまりストップ状態になった場合はタイマＴ３のカウントを停止して（Ｓ６１０）、発音中の全ての楽音をノートオフして消音するよう指示する（Ｓ６１１）。
そして、点灯中のガイド用ＬＥＤを全て消灯指示して（Ｓ６１２）、本ルーティンを終了する。
【００３０】
上述のとおり、スタート／ストップ処理において、スタート／ストップＳＷがオンされてスタート状態になると、ガイド用データＲＯＭ１０６の先頭アドレスからデータを読み込むと共に、各種タイマを起動させる。
更にガイド用データを先読みして、次回押鍵の対象となる鍵に設けられたガイド用ＬＥＤを点滅表示する。
そして、後述のガイド処理に移行する。
【００３１】
次に、図３に示されるガイド処理Ｓ３０３の詳細について、図８乃至図１１のフローチャートを参照して説明する。
まず、スタートフラグＳＴＦが「１」を示すものであるか否かを判定する（Ｓ８０１）。
このスタートフラグＳＴＦがスタート状態である「１」を示すものであれば、タイマＴ３のカウント値が最小単位の時間を経過したか否かを判定する（Ｓ８０２）。
【００３２】
ここで、タイマＴ３のカウント値が最小単位の時間に達していれば、押鍵時間を累積するタイマＴ２をインクリメントして（Ｓ８０３）、押鍵待ちの状態か否かを示すフラグＷＡＩＴ  Ｆが「０」を示すものであるか否かを判定する（Ｓ８０４）。
ここで、ＷＡＩＴ  Ｆが押鍵待ちの状態でない「０」を示すものであれば、ガイド用データの「タイム」をストアしたレジスタ「ＴＩＭＥ」の値をデクリメントして（Ｓ８０５）、このレジスタ「ＴＩＭＥ」にストアされている時間が経過して「０」に達したか否かを判定する（Ｓ８０６）。
【００３３】
ここで、レジスタ「ＴＩＭＥ」の値が「０」に達すれば、アドレスポインタＡＤをインクリメントして（Ｓ８０７）、ガイド用データＲＯＭ１０６からこのアドレスポインタＡＤの示すガイド用データを読み出す（Ｓ８０８）。
そして、この読み出されたガイド用データがデータの終わりを示す「ＥＮＤ」であるか否かを判定する（Ｓ８０９）。
【００３４】
ここで、読み出されたガイド用データが「ＥＮＤ」でなければ、このガイド用データが「タイム」を示すものであるか否かを判定する（図９のＳ９０１）。
この読み出されたガイド用データが「タイム」でなければ、図１０のＳ１００１の処理に進み、ガイド用データが「イベント」を示すものであるか否かを判定する。
このガイド用データが「イベント」を示すものであれば、この「イベント」の「パート」が「右手」を示すデータであるか否かを判定する（Ｓ１００２）。
【００３５】
次に、この「イベント」の「パート」が「右手」を示すデータであれば、イベントの「識別パート」が「ノートオン」を示すものであるか否かを判定する（Ｓ１００３）。
ここで、「イベント」の「識別パート」が「ノートオン」を示すものであれば、この「イベント」の「ノート（鍵番号）」をレジスタＧＮＯＴＥにストアする（Ｓ１００４）。
そして、次に「イベント」の「ベロシティ」を読み出してレジスタＧＶＥＬＯＣＩＴＹにストアする（Ｓ１００５）。
【００３６】
そして、このレジスタＧＮＯＴＥにストアされている「ノート（鍵番号）」に対応する鍵のガイド用ＬＥＤの点滅を停止してから（Ｓ１００６）、このＧＮＯＴＥにストアされている「ノート」に対応する鍵のガイド用ＬＥＤを点灯させて、当該鍵が今回押鍵すべきタイミングに達したことを報知する（Ｓ１００７）。
【００３７】
次に、アドレスポインタＡＤの示すポインタを次回押鍵すべき鍵を指示するためのガイド用データを読み出すために、レジスタＮＥＸＴ  ＡＤに転送する（Ｓ１００８）。
そして、このＮＥＸＴ  ＡＤをインクリメントして（Ｓ１００９）、ガイド用データＲＯＭ１０６からこのＮＥＸＴ  ＡＤが示すガイド用データを読み込む（Ｓ１０１０）。
ここで、読み込まれたガイド用データが「イベント」を示すものであるか否かを判定する（図１１のＳ１１０１）。
【００３８】
この読み出されたガイド用データが「イベント」を示すものであれば、この「イベント」の「パート」が「右手」を示すものであるか否かを判定する（Ｓ１１０２）。
この「イベント」の「パート」が「右手」を示すものであれば、「イベント」の「識別コード」が「ノートオン」を示すものであるか否かを判定する（Ｓ１１０３）。
この「イベント」の「識別コード」が「ノートオン」を示すものであれば、この「イベント」の「ノート」を読み出して、レジスタＮＥＸＴ  ＮＯＴＥにストアする（Ｓ１１０４）。
【００３９】
次に、この「イベント」の「ベロシティ」を読み出して、レジスタＮＥＸＴ  ＶＥＬＯＣＩＴＹにストアして（Ｓ１１０５）、レジスタＮＥＸＴ  ＮＯＴＥにストアされた「ノート」に対応する鍵のガイド用ＬＥＤを点滅させる（Ｓ１１０６）。
そして、フラグＷＡＩＴ  Ｆに押鍵の待ち状態を示す「１」をセット（Ｓ１１０７）してから、再び図８のＳ８０７の処理に戻る。
【００４０】
一方、Ｓ１１０１の処理において読み出されたガイド用データが「イベント」でない場合、或いは、Ｓ１１０２の処理において「イベント」の「パート」が「右手」でない場合、或いは、Ｓ１１０３の処理において「イベント」の「識別コード」が「ノートオン」でない場合は、再度Ｓ１００９の処理に戻り次のガイド用データを読み出す処理を行う。
【００４１】
また、Ｓ１００３の処理において「イベント」の「識別パート」が「ノートオン」を示すものでなければ、読み出された「イベント」の「ノート」をレジスタＧＮＯＴＥにストアして（Ｓ１０１３）、このＧＮＯＴＥにストアされたノートに対応する鍵に設けられた点灯中のガイド用ＬＥＤを消灯（Ｓ１０１４）してから、図８のＳ８０７の処理に戻り、次のガイド用データを読み出す。
また、Ｓ１００２の処理において「イベント」の「パート」が「右手」でなければ、読み出されたイベントに基づいて、発音用イベントに変換し（Ｓ１０１１）、これを音源１０８に送出して楽音信号の生成を処理してから（Ｓ１０１２）、図８のＳ８０７の処理に戻る。
更に、Ｓ１００１の処理において読み出されたガイド用データが「イベント」以外のときも、図８のＳ８０７の処理に戻る。
【００４２】
また、Ｓ９０１の処理において読み出されたガイド用データが「タイム」を示すものであれば、この「タイム」をレジスタＴＩＭＥにストアして（Ｓ９０２）、このガイド用データのタイムを累算するタイマＴ１に加算する（Ｓ９０４）。
そして、タイムを累算したタイマＴ１の値が所定値、例えば１小節分の時間に達したか否かを比較する（Ｓ９０４）。
ここで、タイマＴ１の累積時間が「所定値」に達すれば、テンポの更新を示すフラグＣＨＡＮＧ  Ｆを「１」にセットしてから（Ｓ９０５）本ルーティンを終了する。
一方、Ｓ９０４の処理においてタイマＴ１の累積時間が「所定値」に達していなければ何もしないで本ルーティンを終了する。
【００４３】
次に、図８のＳ８０９の処理において読み出されたガイド用データが「ＥＮＤ」を示すものであればスタートフラグＳＴＦをストップ状態として「０」にセットして（Ｓ８１０）、発音中の全ての楽音をノートオフ処理してから（Ｓ８１１）、点滅中／点灯中のガイド用ＬＥＤを全て消灯して（Ｓ８１２）本ルーティンを終了する。
【００４４】
一方、Ｓ８０１の処理においてスタートフラグＳＴＦが「１」でないとき、Ｓ８０２の処理でタイマＴ３のカウント値がまだ最小単位の時間に達していないとき、Ｓ８０４の処理で次の押鍵の待機を示すフラグＷＡＩＴ  Ｆが「０」でないとき、Ｓ８０６の処理でレジスタＴＩＭＥが「０」に達していないとき、のいずれの場合は何もせずにそのまま本ルーティンを終了する。
【００４５】
上述のとおり、本ガイド処理において、ガイド用データＲＯＭ１０６からガイド用データが順次読み出され、点滅表示状態にあるガイド用ＬＥＤを持つ次回押鍵すべき鍵が今回押鍵タイミングに達すると、そのガイド用ＬＥＤは「点灯」に切り換わる。
そして、更に次回押鍵すべき鍵を指示するガイド用データを先に読み込んで、当該鍵を点滅表示する。
これと同時に、ガイド用データを読み出す度にイベント間のタイムを所定時間累積する（Ｔ１）と共に、実際の演奏経過時間（Ｔ２）をカウントし、この両者を比較するための準備をしている。
【００４６】
図１２は、図３のＳ３０４鍵盤処理の詳細フローチャートを示す。
まず、鍵番号を指定するポインタｎの値を「０」にセットする（Ｓ１２０１）。
そして、ポインタｎの値で示される鍵番号の鍵が押鍵／離鍵されたか否か、鍵操作に変化がなかったか否かを調べ（Ｓ１２０２）、当該鍵スイッチがオフからオンになったことが検出されると、この押鍵速度に応じたベロシティ値を検出してレジスタＶＥＬＯＣＩＴＹにストアする（Ｓ１２０３）。
【００４７】
次に、このポインタｎの値（鍵番号）とレジスタＶＥＬＯＣＩＴＹにストアされているベロシティ値に基づいてノートオンコマンドを作成して（Ｓ１２０４）、音源１０８にこのノートオンコマンドを送出して楽音信号の生成処理を指示する（Ｓ１２０５）。
そして、このポインタｎの値に対応する鍵が押鍵されたか否かを示すレジスタＯＮ（ｎ）に押鍵状態であることを示す「１」をセットしてから（Ｓ１２０６）、鍵番号を指定するポインタｎの値をインクリメントする（Ｓ１２０７）。
【００４８】
次に、このポインタｎの値が鍵数の最高値に達したか否かを判定する（Ｓ１２０８）。
ここで、インクリメントされたポインタｎの値が鍵数の最高値に達しなければ、Ｓ１２０２の処理に戻る。
【００４９】
一方、Ｓ１２０２の処理においてポインタｎの値に対応する鍵がオンからオフしたことが検出されると、レジスタＶＥＬＯＣＩＴＹに「０」にセットする（Ｓ１２０９）。
そして、このポインタｎの値とレジスタＶＥＬＯＣＩＴＹのデータ「０」に基づいて、ノートオフコマンドを作成し（Ｓ１２１０）、このノートオフコマンドを音源１０８に送出して消音処理を指示する（Ｓ１２１１）。
そして、このポインタｎの値に対応するレジスタＯＮ（ｎ）に離鍵状態であることを示す「０」をセットしてから（Ｓ１２１２）、Ｓ１２０７の処理に進む。
また、Ｓ１２０２の処理において鍵番号がｎの値の鍵スイッチに何も変化がないと検出されるとＳ１２０７の処理に進む。
【００５０】
以上の処理は、ポインタｎの値が鍵数の最高値に到達するまで繰り返し行われ、鍵盤１０３の全鍵の鍵変化状態が検出される。
そして、Ｓ１２０８の処理においてポインタｎの値が鍵数の最高値に達すると、図１３のＳ１３０１の処理に進む。
【００５１】
上述の如く、図１２の処理は鍵盤処理の一部を示すものであり、鍵操作の検出の有無に応じて楽音生成の処理を実行している。
具体的には、鍵盤１０３の全鍵に亘って押鍵／離鍵操作されたか否か、或いは何も鍵操作がなされていないか否かを調べ、何れかの鍵が押鍵操作されるとこの鍵番号とベロシティに基づいて楽音信号の生成処理を指示している。
また、押鍵されていた鍵が離鍵されると、この鍵番号に対応する発音中の楽音の消音処理を指示している。
【００５２】
図１３のＳ１３０１の処理においてスタートフラグＳＴＦが「０」を示すものであるか否かを判定する。
このスタートフラグＳＴＦが「０」であれば、ストップ状態であるのでこのルーティンを終了する。
また、スタートフラグＳＴＦが「０」でなければ、フラグＷＡＩＴ  Ｆが「１」を示すものであるか否かを判定する（Ｓ１３０２）。
このフラグＷＡＩＴ  Ｆが押鍵の待ちの状態を示す「１」であれば、ポインタｎに最初の鍵番号として「０」をセットして（Ｓ１３０３）、レジスタＧＮＯＴＥにストアされているノート（鍵番号）が、このポインタｎの値と等しいか否かを判定する（Ｓ１３０４）。
【００５３】
ここで、ＧＮＯＮＥにストアされているノートが、ポインタｎの値と等しければ、レジスタＯＮ（ｎ）が押鍵状態であることを示す「１」を示すものであるか否かを判定する（Ｓ１３０５）。
このレジスタＯＮ（ｎ）が「１」を示すものであれば、このポインタｎの値に対応する鍵番号の鍵が押鍵されたときのベロシティをストアするレジスタＶＥＬＯＣＩＴＩＹの値が、ＧＶＥＬＯＣＩＴＹにストアされているガイド用データの「ベロシティ」の値±許容値αの範囲内であるか否かを判定する（Ｓ１３０６）。
【００５４】
ここで、レジスタＶＥＬＯＣＩＴＩＹの値が、ＧＶＥＬＯＣＩＴＹの値±許容値αの範囲内であれば、鍵番号を指定するポインタｎの値をインクリメントして（Ｓ１３０７）、このポインタｎの値が鍵番号の最大数に達したか否かを判定する（Ｓ１３０８）。
この、Ｓ１３０８の処理においてポインタｎの値が鍵番号の最大数に達していなければ、再びＳ１３０４の処理に戻る。
【００５５】
一方、Ｓ１３０４の処理で、レジスタＧＮＯＴＥにストアされたガイド用データのノートの値と鍵番号を示すポインタｎの値が一致していない場合も、レジスタＯＮ（ｎ）が「１」を示すものであるか否かを判定する（Ｓ１３１１）。
そして、レジスタＯＮ（ｎ）が「１」でなければ、Ｓ１３０７の処理に進む。しかし、鍵番号のレジスタＯＮ（ｎ）が「１」である場合、即ち、レジスタＧＮＯＴＥにストアされているノート（鍵番号）に対応する鍵でない鍵が押鍵されている場合は本ルーティンを終了する。
このようにして、ガイド用データのイベントで押鍵を指示していない鍵が押鍵されているか否かについても検証しており、たとえば、ガイド用データで押鍵を指示していない鍵が押鍵されると、これに続くガイドデータを読み出さないようにしているので、正しく押鍵されるまで押鍵すべき鍵の点灯を継続している。
そして、鍵盤１０３の全鍵に亘って、読み出されているガイド用データが指示する鍵を許容範囲内のベロシティで押鍵されているか否か、演奏ガイドされていない鍵が押鍵されているか否かを調べる。
【００５６】
一方、Ｓ１３０５の処理でレジスタＯＮ（ｎ）が「１」でない場合、即ち、レジスタＧＮＯＴＥにストアされているノートに対応する鍵が押鍵されていない場合、或いは、Ｓ１３０６の処理で、ポインタｎの値に対応する鍵の押鍵時のベロシティがガイド用ベロシティの許容値の範囲を満たしていない値である場合は、何もしないで本ルーティンを終了する。
このように押鍵すべき鍵を正しく押鍵していない場合においてもこれに続くガイドデータを読み出さないようにしているので、正しく押鍵されるまでこの押鍵すべき鍵の点灯を継続している。
【００５７】
次に、Ｓ１３０８の処理においてこのポインタｎの値が鍵番号の最大数に達すると、フラグＷＡＩＴ  Ｆに押鍵待ち状態解除を示す「０」をセットして（Ｓ１３０９）、ポインタｎの値に対応する点灯中のガイド用ＬＥＤを消灯する（Ｓ１３１０）。
【００５８】
上述のとおり、図１３の処理は鍵盤処理の一部であり、演奏ガイドした鍵が発音タイミングに達したときに、全鍵に亘って押鍵されたか否かの判定処理をしている。
具体的には、ガイド用データが読み出されて、ガイド用ＬＥＤが点灯になって押鍵タイミングであることを報知しているときに押鍵操作されると、鍵盤１０３の全鍵に亘って順次押鍵／離鍵状態、及び、この押鍵された鍵のベロシティを調べ、ガイド用データのノート及びこのベロシティとを比較する。
そして、正しい押鍵がなされればこの点灯中の鍵ＬＥＤを消灯させるが、ガイドされた鍵が押鍵されなかったり、或いは、例えガイド表示された鍵を押鍵したとしても、ガイド用データが示す基準のベロシティに対して許容値に満たない押鍵速度であれば演奏ミスとして判定され、この演奏ガイド中の鍵ＬＥＤは正しく押鍵されるまで点灯状態を継続する。
【００５９】
次に、図１４のＳ１４０１の処理に進んで、テンポの変更を示すフラグＣＨＡＮＧＥ  Ｆが「１」を示すものであるか否かを判定する（Ｓ１４０１）。
このテンポの変更を示すフラグＣＨＡＮＧＥ  Ｆが「１」でなければ何もしないでそのまま本ルーティンを終了するが、ＣＨＡＮＧＥ  Ｆが「１」を示すものであれば、この処理までの実際の演奏経過時間をカウントするタイマＴ２とガイド用データの「タイマ」の値を累積したタイマＴ１の値の差を算出して得られた値をレジスタＳＡＢＵＮにストアする（Ｓ１４０２）。
【００６０】
そして、このレジスタＳＡＢＵＮにストアされた累積時間差のデータに基づいて、レジスタＴＥＭＰＯにストアされている値を変更して書き換える（Ｓ１４０３）。
次に、このレジスタＴＥＭＰＯの値に基づいて、ガイド用データＲＯＭ１０６を読み出すタイミング周期を決める最小単位時間の値を変更（Ｓ１４０４）する。
このとき、例えば、Ｔ２＞Ｔ１であればユーザーの演奏する速度が予めテンポスイッチで設定されたテンポ値の速度より遅いので、レジスタ「ＴＥＭＰＯ」の値を大きくなるように変更して、ガイド用データの読み出し速度を遅くする。
また、これとは逆にＴ２＜Ｔ１であればレジスタ「ＴＥＭＰＯ」の値を小さくなるように変更して、ガイド用データの読み出しを早めるようにしている。
【００６１】
この「ＴＥＭＰＯ」の値が変更されたらフラグＣＨＡＮＧＥ  Ｆを「０」にセットする（Ｓ１４０５）。
そして、ガイド用データの「タイム」値を累積するタイマＴ１と押鍵時間を累積するタイマＴ２を夫々「０」にセットして（Ｓ１４０６）、本ルーティンを終了する。
【００６２】
上述のとおり、図１４の処理は鍵盤処理の一部でありガイド表示された鍵に対して押鍵された累積時間が所定時間（例えば１小節）押鍵されると、この間のユーザーのテンポと予めテンポスイッチで設定されたテンポの差を求めて、このテンポ差に応じてガイド用データの読み出し速度を調整している。
そして、ユーザーのペースで演奏できるようにガイド用データの読み出しテンポを制御して演奏ガイドを進行させる。
【００６３】
再び、Ｓ１３０２の処理に戻って、フラグＷＡＩＴ  Ｆが「１」でなければ、即ち、押鍵待ちの状態でなければ、図１５のＳ１５０７の処理に移行して鍵番号を示すポインタｎの値を「０」にセットする。
このときの状態は、次回押鍵すべき鍵のＬＥＤが点滅している状態であって、これがまだ押鍵タイミングに達していない状態である。
【００６４】
次に、ガイド用データから次回押鍵すべき鍵に対応するノートをストアするレジスタＮＥＸＴ  ＮＯＴＥの値がポインタｎの値と等しいか否かを判定する（Ｓ１５０８）。
ここで、レジスタＮＥＸＴ  ＮＯＴＥにストアされたノートがポインタｎの値に対応する鍵番号に対応する音高値と等しければ、このポインタｎの値に対応する鍵が押鍵状態であることを示す「１」の値がレジスタＯＮ（ｎ）にセットされているか否かを判定する（Ｓ１５０９）。
【００６５】
このレジスタＯＮ（ｎ）の値が「１」を示すものであれば、このポインタｎの値に対応する鍵の押鍵によるベロシティ値をストアするレジスタＶＥＬＯＣＩＴＹの値が、ガイド用データの中で次回押鍵すべき鍵のベロシティの値をストアするＮＥＸＴ  ＶＥＬＯＣＩＴＹの値に対して許容値±αの範囲内であるか否かを判定する（Ｓ１５１０）。
【００６６】
ここで、レジスタＶＥＬＯＣＩＴＹの値がレジスタＮＥＸＴ  ＶＥＬＯＣＩＴＹの値に対して許容値±αの範囲内であれば、鍵番号を示すポインタｎの値をインクリメントして（Ｓ１５１１）、このポインタｎの値が鍵番号の最大数を超えたか否かを判定する（Ｓ１５１２）。
ここで、ポインタｎの値が鍵番号の最大数を超えていなければ再びＳ１５０８の処理に戻る。
【００６７】
こうして、鍵盤１０３の全鍵に亘って次回押鍵すべき鍵が正しい押鍵タイミングより早く押鍵されたか否かを調べるとともに、この早押しされた鍵がガイド用データの押鍵速度（ベロシティ）の許容範囲内であるか否かを調べる。
そして、Ｓ１５０８の処理でポインタｎの値がレジスタＮＥＸＴ  ＮＯＴＥにストアされているノートと異なればＳ１５２１の処理に進んで、レジスタＯＮ（ｎ）がポインタｎの値に対応する鍵が押鍵状態を示す「１」であるか否かを調べる。
このときポインタ（ｎ）の値が「１」でない、つまりポインタ（ｎ）の値に対応する鍵が押鍵されていなければ、Ｓ１５１１の処理に進む。
しかし、レジスタＯＮ（ｎ）が「１」でレジスタＮＥＸＴ  ＮＯＴＥのノートと異なる鍵番号ｎが押鍵されていたら、何もしないで本ルーティンを終了する。
このようにして、ガイド用データのイベントで押鍵を指示していない鍵が押鍵されているか否かについても検証しており、たとえば、ガイド用データで押鍵を指示していない鍵が押鍵されると、これに続くガイドデータを読み出さないようにしているので、正しく押鍵されるまで押鍵すべき鍵の点滅を継続している。
【００６８】
また、Ｓ１５０９の処理でレジスタＯＮ（ｎ）が「１」でない場合、即ち、ＮＥＸＴ  ＮＯＴＥにストアされているノートに対応する鍵が押鍵されていなかった場合、或いは、対応する鍵が押鍵されていたとしても、そのベロシティがガイド用データの許容範囲を外れる押鍵速度（押鍵強度）で押鍵した場合は何もしないで本ルーティンを終了する。
【００６９】
そして、Ｓ１５１２の処理においてポインタｎの値が鍵番号の最大数を超えれば、鍵盤１０３の全鍵に対する押鍵状態のチェック終了となる。
それから、ポインタｎの値に対応する鍵の点滅中のガイド用ＬＥＤを消灯する（Ｓ１５１３）。
そして、アドレスポインタＡＤをインクリメントしてから（Ｓ１５１４）、このアドレスポインタＡＤの示すガイド用データを読み出し（Ｓ１５１５）、この読み出されたデータが「ＥＮＤ」を示すものであるか否かを判定する（Ｓ１５１６）。
【００７０】
このとき、読み出されたデータが「ＥＮＤ」でなければ、図１６のＳ１６０１の処理に移行するが、読み出されたガイド用データが終了を示す「ＥＮＤ」であった場合は、スタートフラグＳＴＦを演奏ガイドの終了を示す「０」にセットしてから（Ｓ１５１７）、ノートオンで発音中のノートを全てノートオフして消音処理の指示をする（Ｓ１５１８）。
そして、点滅中／点灯中のガイド用ＬＥＤを全て消灯し（Ｓ１５１９）、次に、ガイド用データを読み出す最小単位の時間のタイマＴ３をカウント停止して（Ｓ１５２０）、本ルーティンを終了する。
【００７１】
上述のとおり、図１５の処理は鍵盤処理の一部であり演奏ガイドされた鍵のＬＥＤが点灯状態になっていないとき、即ち、次回押鍵すべき鍵のＬＥＤが点滅表示しているときに、これが点灯状態に変化する前にユーザーが押鍵したときは、更に次のガイドデータを先き読みして演奏ガイドを滞りなく進行させている。
例えば、鍵のＬＥＤが点滅表示して押鍵の待機状態にあるときに、この鍵を早押したとしても、上述の如く演奏ガイドされた鍵のＬＥＤが点灯状態になって押鍵タイミングに達しているときの処理と同様に、鍵盤１０３の全鍵に亘って順次押鍵／離鍵状態、及び、押鍵された鍵のベロシティを調べ、ガイド用データで示されている次のノート及び許容範囲のベロシティとを比較する。
そして、次鍵を演奏ガイドされた鍵に対してのみ正しく押鍵されればこの点滅中の次鍵のＬＥＤを消灯させ、次に続くガイド用データを読み出すが、この次鍵の演奏ガイドされた鍵が押鍵されなかったり、或いは、例え次鍵の演奏ガイドされた鍵を押鍵したとしても、このガイド用データに記録されている基準となるベロシティの許容値に満たないほどの押鍵速度であれば演奏ミスとして判定される。
そして、この次鍵のＬＥＤの点滅は継続され、更に次に続くガイド用データの読み出しを保留している。
【００７２】
次に、図１６のＳ１６０１の処理において、この読み出されたデータが「イベント」を示すものであるか否かを判定する。
ここで読み出されたデータが「イベント」を示すものであれば、この「イベント」の「パート」が「右手」を示すデータであるか否かを判定する（Ｓ１６０２）。
【００７３】
この「イベント」の「パート」が「右手」を示すデータであれば、次に、この「イベント」の「識別コード」が「ノートオン」を示すものであるか否かを判定する（Ｓ１６０３）。
この読み出された「イベント」の「パート」が「右手」でなければ、この読み出されたイベントを発音用イベントに変換して（Ｓ１６１０）、この変換されたデータを音源１０８に送出して楽音信号の生成処理を指示してから（Ｓ１６１１）、図１５のＳ１５１４の処理に戻る。
【００７４】
一方、この「イベント」の「識別コード」が「ノートオン」を示すものであれば、この「イベント」の「ノート」が次回押鍵すべき鍵であったか、正しい押鍵タイミングより早く押鍵した鍵を示すノートである「ＮＥＸＴ  ＮＯＴＥ」を示すものであるか否かを判定する（Ｓ１６０４）。
【００７５】
この「イベント」の「ノート」が「ＮＥＸＴ  ＮＯＴＥ」を示すものであれば、ガイド用データの「タイム」をストアするためのレジスタＴＩＭＥを「０」にセットして（Ｓ１６０５）、Ｓ１６０６の処理に進む。
【００７６】
一方、Ｓ１６０１の処理で読み出されたデータが「イベント」でない場合、Ｓ１６０２の処理で読み出された「イベント」の「パート」が「右手」でない場合、Ｓ１６０３の処理で読み出された「イベント」の「識別コード」が「ノートオン」を示すものでない場合、或いは、Ｓ１６０４の処理で、読み出された「イベント」の「ノート」が「ＮＥＸＴ  ＮＯＴＥ」にストアされたノートと一致しない場合、のいずれかであればＳ１５１４の処理に戻る。
次に、Ｓ１６０６の処理において、レジスタＡＤが示すアドレスポインタをレジスタＮＥＸＴ  ＡＤにストアする（Ｓ１６０６）。
【００７７】
次に、このレジスタＮＥＸＴ  ＡＤのアドレスポインタをインクリメントする（Ｓ１６０７）。
そして、このＮＥＸＴ  ＡＤが示すアドレスポインタが示すガイド用データを読み出し（Ｓ１６０８）、この読み出されたガイド用データが「ＥＮＤ」を示すものであるか否かを判定する（Ｓ１６０９）。
【００７８】
ここで、読み出されたガイド用データが「ＥＮＤ」でなければ、図１７のＳ１７０１の処理に移行する。
一方、ここで読み出されたガイド用データが「ＥＮＤ」を示すものであれば、図１４のＳ１４０１の処理に戻る。
次に、Ｓ１７０１の処理において読み出されたガイド用データが「イベント」を示すものであるか否かを判定する。
この読み出されたガイド用データが「イベント」を示すものであれば、この「イベント」の「パート」が「右手」を示すデータか否かを判定する（Ｓ１７０２）。
【００７９】
この「イベント」の「パート」が「右手」を示すデータであれば、この「イベント」が「ノートオン」を示すものであるか否かを判定する（Ｓ１７０３）。
この「イベント」が「ノートオン」を示すものであれば、この「イベント」の「ノート」をレジスタＮＥＸＴ  ＮＯＴＥにストアして（Ｓ１７０４）、Ｓ１７０５の処理に進む。
【００８０】
しかし、Ｓ１７０１の処理において読み出されたガイド用データが「イベント」でない場合、Ｓ１７０２の処理において読み出されたガイド用データの「イベント」の「パート」が「右手」でない場合、或いは、Ｓ１７０３の処理において読み出されたガイド用データのイベントが「ノートオン」でない場合、の夫々についても図１５のＳ１５１４の処理に戻る。
【００８１】
次に、Ｓ１７０５の処理において「イベント」の「ベロシティ」をレジスタＮＥＸＴ  ＶＥＬＯＣＩＴＹにストアする。
そして、このレジスタＮＥＸＴ  ＶＥＬＯＣＩＴＹにストアされたノートに対応する鍵のガイド用ＬＥＤを点滅させてから（Ｓ１７０６）、図１４のＳ１４０１の処理に戻る。
上述の通り、図１６、図１７の処理は鍵盤処理の一部であり、次回押鍵すべき鍵であっても正しく押鍵されると、更にその次のガイド用データを順次先き読みして更に次の鍵のガイド処理を進行させている。
【００８２】
本実施例では、ガイド表示された鍵と押鍵操作された鍵とを比較して、この押鍵された鍵がガイド表示された鍵の全てであり、且つ、このガイド表示された鍵のみである場合にのみ、次に続く演奏ガイドを継続させ、それ以外の演奏操作が検出された場合は演奏ガイドを停止するようにしたので、例え正しい押鍵がなされていてもガイドされていない他の鍵も同時に押鍵していた場合は、完全に正しく弾くまでガイドを進行させないようにして、ユーザーに正確な押鍵を習得させるようにしている。
【００８３】
更に、ガイド表示された鍵に対してのみ押鍵したとしても、これがガイド用データに記録されているベロシティと、この押鍵されたときのベロシティを比較して許容範囲内のベロシティ（押鍵速度）で弾かれていれば、演奏ガイドを継続するが、この押鍵されたベロシティが許容値を満たしていなければ演奏ガイドを進行させないようにしているので、ユーザーに鍵タッチを加減するように促すことができる。
【００８４】
また、ガイドされた鍵に対して、当該鍵を適正な鍵タッチで押鍵していれば、例え、ユーザーの演奏テンポが予めテンポスイッチで指定したテンポと比較して、許容値を超える誤差であったとしても、このユーザーの演奏テンポに合うようにガイド用データの読み出し速度を自動的に調整する構成にしているので、ユーザーは演奏テンポを気にすることなく、マイペースで正しい鍵操作の習得のみに専念できる。
【００８５】
尚、他の実施形態として、ガイド用データＲＯＭ１０６に楽譜表示データを記憶させておき、ガイド用表示部１０７に演奏ガイドを表示するとともに、楽譜表示データを読み出して、この演奏ガイドしている楽譜を同時に表示してもよい。
また、ガイド用データＲＯＭ１０６に運指表示データを記憶させておき、ガイド用表示部１０７に演奏ガイドを表示するとともに、運指表示データを読み出して、演奏ガイドに対応する運指画像を同時に表示してもよい。
【００８６】
また、演奏ガイド及び演奏評価を音声等で発音指示するようにしてもよい。
本発明は上記実施の形態に限定されることなく、その要旨を逸脱しない範囲において、具体的な構成、機能、作用、効果において、他の種々の形態によっても実施することができる。
【００８７】
また、上記実施の形態で説明した動作手順をプログラム化し、コンピュータに実行させることにより実施できる。その際、コンピュータプログラムはハードディスク等のディスク型記録媒体、半導体メモリやカード型メモリ等の各種メモリ、或いは通信ネットワーク等の各種プログラム記録媒体を通じてコンピュータに供給することができる。
【００８８】
【発明の効果】
以上述べたように本発明によれば、楽器に設けられている全ての演奏操作子に対して演奏操作がなされたか否かを検出して、演奏ガイドされた演奏すべき演奏操作子とこのときに演奏操作がなされた演奏操作子とを比較して、この演奏操作された演奏操作子が演奏ガイドされた演奏操作子の全てであり、且つ、このガイドされた演奏操作子のみが検出された場合は次に続く演奏ガイドを継続させるが、それ以外の演奏操作が検出された場合は演奏ガイドを停止するようにしたので、ユーザーの間違った演奏操作、或いは、演奏方法の誤解を正すことができる。
【図面の簡単な説明】
【図１】本発明の演奏指示装置の構成を示すブロック図である。
【図２】図１に示したガイド用データＲＯＭの記憶領域に記憶されているガイド用データのデータ構成を示す。
【図３】本演奏指示装置の動作全体概略処理手順を示す基本フローチャートである。
【図４】図３に示したＳＷ処理のサブルーティンの詳細を示すフローチャートである。
【図５】図４に示したテンポＳＷ処理のサブルーティンの詳細を示すフローチャートである。
【図６】図４に示したスタート／ストップＳＷ処理のサブルーティンの詳細を示すフローチャート（その１）である。
【図７】図４に示したスタート／ストップＳＷ処理のサブルーティンの詳細を示すフローチャート（その２）である
【図８】図３に示したガイド処理のサブルーティンの詳細を示すフローチャート（その１）である。
【図９】図３に示したガイド処理のサブルーティンの詳細を示すフローチャート（その２）である。
【図１０】図３に示したガイド処理のサブルーティンの詳細を示すフローチャート（その３）である。
【図１１】図３に示したガイド処理のサブルーティンの詳細を示すフローチャート（その４）である。
【図１２】図３に示した鍵盤処理のサブルーティンの詳細を示すフローチャート（その１）である。
【図１３】図３に示した鍵盤処理のサブルーティンの詳細を示すフローチャート（その２）である。
【図１４】図３に示した鍵盤処理のサブルーティンの詳細を示すフローチャート（その３）である。
【図１５】図３に示した鍵盤処理のサブルーティンの詳細を示すフローチャート（その４）である。
【図１６】図３に示した鍵盤処理のサブルーティンの詳細を示すフローチャート（その５）である。
【図１７】図３に示した鍵盤処理のサブルーティンの詳細を示すフローチャート（その６）である。
【符号の説明】
１０１  ＣＰＵ
１０２  スイッチ群
１０３  鍵盤
１０４  プログラムＲＯＭ
１０５  ワークＲＡＭ
１０６  ガイド用データＲＯＭ
１０７  ガイド用表示部
１０８  音源
１０９  発音回路
【図１】
2004219778.tif 000003
【図２】
2004219778.tif 000004
【図３】
2004219778.tif 000005
【図４】
2004219778.tif 000006
【図５】
2004219778.tif 000007
【図６】
2004219778.tif 000008
【図７】
2004219778.tif 000009
【図８】
2004219778.tif 000010
【図９】
2004219778.tif 000011
【図１０】
2004219778.tif 000012
【図１１】
2004219778.tif 000013
【図１２】
2004219778.tif 000014
【図１３】
2004219778.tif 000015
【図１４】
2004219778.tif 000016
【図１５】
2004219778.tif 000017
【図１６】
2004219778.tif 000018
【図１７】
2004219778.tif 000019