(57)【特許請求の範囲】
【請求項１】
第１〜第５の設定操作子を有し、第１の設定操作子が操作された場合には、ガイドされたコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第１の教習レベルに設定し、第２の設定操作子が操作された場合には、ガイドされたコード構成音中の３度音、５度音および７度音を含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第２の教習レベルに設定し、第３の設定操作子が操作された場合には、ガイドされたコード構成音中のルート、３度音および５度音を含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第３の教習レベルに設定し、第４の設定操作子が操作された場合には、ガイドされたコード構成音中のルートおよび３度音を含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第４の教習レベルに設定し、第５の設定操作子が操作された場合には、ガイドされたコード構成音中のルートを含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第５の教習レベルに設定する設定手段と、
曲進行に対応したコードネームから構成されるコードパターンを記憶する記憶手段と、
前記記憶手段に記憶されるコードパターンから曲進行に応じて読み出されるコードネームをコード構成音に変換し、当該コード構成音を弾くべきコードとしてガイドするガイド手段と、
前記ガイド手段のガイドに応じて為されるユーザの押鍵操作が、前記設定手段により設定された教習レベル下での適正なコード演奏であるか否かを判定する判定手段と、
前記判定手段が適正なコード演奏と判定した場合には、次に弾くべきコードのガイドを前記ガイド手段に指示し、一方、不適なコード演奏と判定した場合には、前記判定手段が適正なコード演奏と判定するまでガイドの停止を前記ガイド手段に指示するガイド制御手段と、
を具備することを特徴とするコード教習装置。
【請求項２】
第１の設定操作子が操作された場合に、ガイドされたコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第１の教習レベルに設定し、第２の設定操作子が操作された場合に、ガイドされたコード構成音中の３度音、５度音および７度音を含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第２の教習レベルに設定し、第３の設定操作子が操作された場合に、ガイドされたコード構成音中のルート、３度音および５度音を含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第３の教習レベルに設定し、第４の設定操作子が操作された場合に、ガイドされたコード構成音中のルートおよび３度音を含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第４の教習レベルに設定し、
第５の設定操作子が操作された場合に、ガイドされたコード構成音中のルートを含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第５の教習レベルに設定する設定処理と、
曲進行に対応したコードネームから構成されるコードパターンを記憶しておき、このコードパターンから曲進行に応じて読み出されるコードネームをコード構成音に変換し、当該コード構成音を弾くべきコードとしてガイドするガイド処理と、
前記ガイド処理によるガイドに応じて為されるユーザの押鍵操作が、前記設定処理により設定された教習レベル下での適正なコード演奏であるか否かを判定する判定処理と、
前記判定処理により適正なコード演奏と判定された場合には、次に弾くべきコードのガイドを前記ガイド処理に指示し、一方、不適なコード演奏と判定した場合には、前記判定処理が適正なコード演奏と判定するまでガイドの停止を前記ガイド処理に指示するガイド制御処理と、
をコンピュータに実行させることを特徴とするコード教習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コード演奏を教習するコード教習装置およびコード教習プログラムに関する。
【背景技術】
【０００２】
従来より、発音すべき音高とその発音タイミングとを表す曲データに基づき、鍵盤の各鍵に設けられたＬＥＤ（発光素子）の内、発音すべき音高の鍵に配設されるＬＥＤを発音タイミングに対応して点灯させて演奏者に弾くべき鍵をガイドする装置が実用化されている。また、こうした装置を自動伴奏のコード演奏教習用に適用したものとして、例えば特許文献１には、和音情報に基づき演奏者に弾くべきコード（和音）をガイドする装置が開示されている。
【０００３】
【特許文献１】特公平８−３６９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、自動伴奏におけるコード演奏、すなわちコードの弾き方には、様々な方式が案出されている。例えば鍵盤中の所定鍵より低音側の伴奏鍵域の各鍵をコード指定スイッチと見做して簡便なコード演奏を実現するシングルフィンガード方式の他、伴奏鍵域で押鍵された鍵の音をコード構成音と見做してコード指定するフィンガード方式などが知られている。
【０００５】
上記特許文献１に開示の装置において、フィンガード方式でコード演奏をガイドすると、一度に３音や４音のコード構成音を弾くように指示されることになる。そのようなガイド形態では、鍵操作に不慣れな初心者ユーザであると、ガイドされた鍵を押すことだけに傾注してしまう為、コードの弾き方を段階的に習得することが出来ないという問題が生じる。
そこで本発明は、このような事情に鑑みてなされたもので、コードの弾き方を段階的に習得することができるコード教習装置およびコード教習プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、請求項１に記載の発明では、第１〜第５の設定操作子を有し、第１の設定操作子が操作された場合には、ガイドされたコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第１の教習レベルに設定し、第２の設定操作子が操作された場合には、ガイドされたコード構成音中の３度音、５度音および７度音を含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第２の教習レベルに設定し、第３の設定操作子が操作された場合には、ガイドされたコード構成音中のルート、３度音および５度音を含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第３の教習レベルに設定し、第４の設定操作子が操作された場合には、ガイドされたコード構成音中のルートおよび３度音を含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第４の教習レベルに設定し、第５の設定操作子が操作された場合には、ガイドされたコード構成音中のルートを含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第５の教習レベルに設定する設定手段と、曲進行に対応したコードネームから構成されるコードパターンを記憶する記憶手段と、前記記憶手段に記憶されるコードパターンから曲進行に応じて読み出されるコードネームをコード構成音に変換し、当該コード構成音を弾くべきコードとしてガイドするガイド手段と、前記ガイド手段のガイドに応じて為されるユーザの押鍵操作が、前記設定手段により設定された教習レベル下での適正なコード演奏であるか否かを判定する判定手段と、前記判定手段が適正なコード演奏と判定した場合には、次に弾くべきコードのガイドを前記ガイド手段に指示し、一方、不適なコード演奏と判定した場合には、前記判定手段が適正なコード演奏と判定するまでガイドの停止を前記ガイド手段に指示するガイド制御手段とを具備することを特徴とする。
【０００７】
上記請求項１に従属する請求項２記載の発明では、第１の設定操作子が操作された場合に、ガイドされたコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第１の教習レベルに設定し、第２の設定操作子が操作された場合に、ガイドされたコード構成音中の３度音、５度音および７度音を含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第２の教習レベルに設定し、第３の設定操作子が操作された場合に、ガイドされたコード構成音中のルート、３度音および５度音を含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第３の教習レベルに設定し、第４の設定操作子が操作された場合に、ガイドされたコード構成音中のルートおよび３度音を含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第４の教習レベルに設定し、第５の設定操作子が操作された場合に、ガイドされたコード構成音中のルートを含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する第５の教習レベルに設定する設定処理と、曲進行に対応したコードネームから構成されるコードパターンを記憶しておき、このコードパターンから曲進行に応じて読み出されるコードネームをコード構成音に変換し、当該コード構成音を弾くべきコードとしてガイドするガイド処理と、前記ガイド処理によるガイドに応じて為されるユーザの押鍵操作が、前記設定処理により設定された教習レベル下での適正なコード演奏であるか否かを判定する判定処理と、前記判定処理により適正なコード演奏と判定された場合には、次に弾くべきコードのガイドを前記ガイド処理に指示し、一方、不適なコード演奏と判定した場合には、前記判定処理が適正なコード演奏と判定するまでガイドの停止を前記ガイド処理に指示するガイド制御処理とをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１６】
請求項１、２に記載の発明によれば、第１〜第５の設定操作子の操作に応じて難易度の異なる教習レベルを設定し、コードパターンから曲進行に応じて読み出されるコードネームをコード構成音に変換し、当該コード構成音を弾くべきコードとしてガイドすると、このガイドに応じて為されるユーザの押鍵操作が、設定された教習レベル下での適正なコード演奏であるか否かを判定し、適正なコード演奏ならば、次に弾くべきコードのガイドが行われ、一方、不適なコード演奏であると、適正なコード演奏と判定されるまでガイドを停止する。したがって、ユーザの設定する教習レベルに応じて、コードの弾き方を段階的に習得することができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して本発明の実施の形態について説明する。
Ａ．第１実施形態
（１）構成
図１は、本発明の第１実施形態によるコード教習装置１００の構成を示すブロック図である。この図において、鍵盤１０は押離鍵操作（演奏操作）に応じたキーオン／キーオフイベント、鍵番号およびベロシティ等の演奏情報を発生する。ＬＥＤ部１１は、鍵盤１０の各鍵毎に配設されるＬＥＤ（発光素子）と、これらＬＥＤを点灯駆動するドライバ（不図示）とから構成され、ＣＰＵ１３から供給される制御信号に従って指定される鍵のＬＥＤを点灯して弾くべき鍵をユーザにガイドする。
【００２１】
スイッチ部１２は、装置パネルに配設される各種操作スイッチを有し、ユーザ操作されるスイッチ種に対応したスイッチイベントを発生する。スイッチ部１２に配設される主要なスイッチとしては、例えば装置電源をオンオフする電源スイッチの他、コードの弾き方を教習するレベルを設定する各種設定スイッチや、コード教習の開始・停止を指示するスタート／ストップスイッチＳＳ等がある。
【００２２】
なお、コードの弾き方を教習するレベルを設定する各種設定スイッチは、ＡＬＬスイッチ、ＡＮＹスイッチ、３ｒｄ〜７ｔｈスイッチ、ｒｏｏｔ〜５ｔｈスイッチ、ｒｏｏｔ〜３ｒｄスイッチおよびｒｏｏｔスイッチから構成される。これら各スイッチ操作に対応して設定される教習レベルの内容については追って述べる。また、スタート／ストップスイッチＳＳの操作に対応した処理動作の詳細についても後述する。
【００２３】
ＣＰＵ１３は、スタート／ストップスイッチＳＳのオン操作によりコード教習の開始が指示された場合、ＲＡＭ１５に格納されるコードパターン（後述する）に従ってユーザに弾くべきコードをガイドすると共に、このガイドに従ったユーザの押離鍵操作に応じて鍵盤１０から出力される演奏情報に対応した各種楽音パラメータ（ノートオン／ノートオフ等）を発生して音源１７に供給する。また、ＣＰＵ１３は、上述したＡＬＬスイッチ、ＡＮＹスイッチ、３ｒｄ〜７ｔｈスイッチ、ｒｏｏｔ〜５ｔｈスイッチ、ｒｏｏｔ〜３ｒｄスイッチおよびｒｏｏｔスイッチのいずれかの操作で設定される教習レベルに応じて、ユーザが弾くコードの正否を判定し、正しいコードが弾かれた場合にコード教習を進行させる。
【００２４】
ＲＯＭ１４には、ＣＰＵ１３にロードされる各種の制御プログラムが記憶される。各種の制御プログラムとは、後述するメインルーチン、スイッチ処理、ガイド処理および鍵盤処理を含む。ＲＡＭ１５は、ワークエリアおよびデータエリアを備える。ＲＡＭ１５のワークエリアには、ＣＰＵ１３の処理に使用される各種レジスタ・フラグデータが一時記憶される。ＲＡＭ１５のデータエリアには、コードパターンおよびコード判別テーブルが設けられる。図２は、ＲＡＭ１５のデータエリアに格納されるコードパターンの構成を示す図である。この図に示すように、コードパターンは、小節および拍毎のコードネームを曲進行に対応した時系列の読み出しアドレスＡＤ順に格納したものである。
【００２５】
ＲＡＭ１５のデータエリアに格納されるコード判別テーブルは、曲進行に応じてコードパターンから読み出されるコードネームをコード構成音に変換するテーブルである。例えばコードパターンから読み出されるコードネームが「Ｃメジャ−」の場合には、図３（ａ）に図示するメジャーコード判定テーブルを参照してルート「Ｃ」、３度音「Ｅ」および５度音「Ｇ」からなるコード構成音を読み出す。また、例えばコードパターンから読み出されるコードネームが「Ｇ７」の場合には、図３（ｂ）に図示する７ｔｈコード判定テーブルを参照してルート「Ｇ」、３度音「Ｂ」、５度音「Ｄ」および７度音「Ｆ」からなるコード構成音を読み出す。
【００２６】
図１において、表示部１６は、ＬＣＤパネル等から構成される表示部であり、ＣＰＵ１３から供給される表示制御信号に応じて装置全体の動作モードや各種設定状態を表示する。音源１７は、周知の波形メモリ読み出し方式によって構成され、時分割動作する複数の発音チャンネルを備える。この音源１７は、各種音色の波形データを記憶しており、これらの内、ＣＰＵ１３から供給される楽音パラメータに応じた波形データを読み出して楽音波形を発生する。サウンドシステム１８は、音源１９から出力される楽音波形をアナログ形式の楽音信号に変換した後、その楽音信号から不要ノイズを除去する等のフィルタリングを施してからレベル増幅してスピーカより発音させる。
【００２７】
（２）動作
次に、図４〜図１５を参照して第１実施形態の動作について説明する。ここでは、最初にメインルーチンの動作を説明した後、メインルーチンを構成するスイッチ処理、ガイド処理および鍵盤処理の各動作を説明する。
【００２８】
（ａ）メインルーチンの動作
上記構成によるコード教習装置１００に電源が投入されると、ＣＰＵ１３は図４に図示するメインルーチンを実行してステップＳＡ１に処理を進め、ＲＡＭ１５のワークエリアに格納される各種レジスタやフラグデータをゼロリセットしたり、初期値セットするイニシャライズを行う。続いて、ステップＳＡ２では、ＡＬＬスイッチ、ＡＮＹスイッチ、３ｒｄ〜７ｔｈスイッチ、ｒｏｏｔ〜５ｔｈスイッチ、ｒｏｏｔ〜３ｒｄスイッチおよびｒｏｏｔスイッチのいずれかのオン操作で教習レベルを設定したり、スタート／ストップスイッチＳＳの操作に応じてコード教習の開始あるいは停止を指示するスイッチ処理を実行する。
【００２９】
次いで、ステップＳＡ３では、歩進される拍カウンタおよび小節カウンタの各値が、コードパターンから現在読み出されているコードネームの拍および小節に一致し、ガイドされたコード構成音の押鍵タイミングになった場合に一旦タイマを停止させるガイド処理を実行する。次に、ステップＳＡ４では、押鍵操作された鍵の楽音を発音させると共に、その押鍵操作が、設定された教習レベル下での適正なコード演奏であるかどうかを判断し、適正なコード演奏が行われる毎に、次に弾くべきコード構成音の押鍵を順次ガイドする鍵盤処理を実行する。また、鍵盤処理では、設定された教習レベル下での適正なコード演奏が行われるまで次のコード構成音の押鍵ガイドを停止させる。そして、ステップＳＡ５では、例えば現在設定されている教習レベルを表示部１６に表示してユーザに報知する等の、その他の処理を実行してから上述のステップＳＡ１に処理を戻す。以後、装置電源がオフされるまで上述したステップＳＡ１〜ＳＡ５を繰り返す。
【００３０】
（ｂ）スイッチ処理の動作
次に、図５を参照してスイッチ処理の動作を説明する。上述したメインルーチンのステップＳＡ２（図４参照）を介して本処理が実行されると、ＣＰＵ１３は図５に図示するステップＳＢ１に処理を進める。ステップＳＢ１〜ＳＢ１２では、ＡＬＬスイッチ、ＡＮＹスイッチ、３ｒｄ〜７ｔｈスイッチ、ｒｏｏｔ〜５ｔｈスイッチ、ｒｏｏｔ〜３ｒｄスイッチおよびｒｏｏｔスイッチのいずれかのオン操作で教習レベルを設定する。以下、上記各スイッチ別の動作を説明する。
【００３１】
＜ＡＬＬスイッチがオン操作された場合＞
ユーザがＡＬＬスイッチをオン操作すると、ステップＳＢ１の判断結果が「ＹＥＳ」になり、ステップＳＢ２に進み、フラグＴＹＰＥＦに「０」をセットした後、図６に図示するステップＳＢ１３に処理を進める。なお、フラグＴＹＰＥＦは、教習レベルを表すものであり、フラグＴＹＰＥＦが「０」の場合には、ガイドされたコード構成音の全てを間違いなく押鍵した時に適正なコード演奏と判定する教習レベルを表す。
【００３２】
＜ＡＮＹスイッチがオン操作された場合＞
ユーザがＡＮＹスイッチをオン操作すると、ステップＳＢ３の判断結果が「ＹＥＳ」になり、ステップＳＢ４に進み、フラグＴＹＰＥＦに「１」をセットした後、図６に図示するステップＳＢ１３に処理を進める。なお、フラグＴＹＰＥＦが「１」の場合には、鍵盤１０のいずれかの鍵を押鍵しただけで適正なコード演奏と判定する教習レベルを表す。
【００３３】
＜３ｒｄ〜７ｔｈスイッチがオン操作された場合＞
ユーザが３ｒｄ〜７ｔｈスイッチをオン操作すると、ステップＳＢ５の判断結果が「ＹＥＳ」になり、ステップＳＢ６に進み、フラグＴＹＰＥＦに「２」をセットした後、図６に図示するステップＳＢ１３に処理を進める。なお、フラグＴＹＰＥＦが「２」の場合には、ガイドされたコード構成音の内、３度音から７度音を含む押鍵が行われた時に適正なコード演奏と判定する教習レベルを表す。
【００３４】
＜ｒｏｏｔ〜５ｔｈスイッチがオン操作された場合＞
ユーザがｒｏｏｔ〜５ｔｈスイッチをオン操作すると、ステップＳＢ７の判断結果が「ＹＥＳ」になり、ステップＳＢ８に進み、フラグＴＹＰＥＦに「３」をセットした後、図６に図示するステップＳＢ１３に処理を進める。なお、フラグＴＹＰＥＦが「３」の場合には、ガイドされたコード構成音の内、ルートから５度音を含む押鍵が行われた時に適正なコード演奏と判定する教習レベルを表す。
【００３５】
＜ｒｏｏｔ〜３ｒｄスイッチがオン操作された場合＞
ユーザがｒｏｏｔ〜３ｒｄスイッチをオン操作すると、ステップＳＢ９の判断結果が「ＹＥＳ」になり、ステップＳＢ１０に進み、フラグＴＹＰＥＦに「４」をセットした後、図６に図示するステップＳＢ１３に処理を進める。なお、フラグＴＹＰＥＦが「４」の場合には、ガイドされたコード構成音の内、ルートおよび３度音を含む押鍵が行われた時に適正なコード演奏と判定する教習レベルを表す。
【００３６】
＜ｒｏｏｔスイッチがオン操作された場合＞
ユーザがｒｏｏｔスイッチをオン操作すると、ステップＳＢ１１の判断結果が「ＹＥＳ」になり、ステップＳＢ１２に進み、フラグＴＹＰＥＦに「５」をセットした後、図６に図示するステップＳＢ１３に処理を進める。なお、フラグＴＹＰＥＦが「５」の場合には、ガイドされたコード構成音の内、ルートを最低音高とした押鍵が行われた時に適正なコード演奏と判定する教習レベルを表す。
【００３７】
以上のようにして、ＡＬＬスイッチ、ＡＮＹスイッチ、３ｒｄ〜７ｔｈスイッチ、ｒｏｏｔ〜５ｔｈスイッチ、ｒｏｏｔ〜３ｒｄスイッチおよびｒｏｏｔスイッチのいずれかのオン操作で教習レベルを設定し終えると、ＣＰＵ１３は図６に図示するステップＳＢ１３に処理を進め、スタート／ストップスイッチＳＳのオン操作の有無を判断する。オン操作されなければ、判断結果は「ＮＯ」になり、何も行わずに本処理を終えるが、オン操作されると、判断結果が「ＹＥＳ」となり、ステップＳＢ１４に進む。
【００３８】
ステップＳＢ１４では、スタートフラグＳＴＦを反転する。スタートフラグＳＴＦとは、「１」の場合に教習開始を指示したスタート状態を表し、「０」の場合に教習停止を指示したストップ状態を表すフラグである。すなわち、スタート／ストップスイッチＳＳはオン操作される毎に「教習開始」、「教習停止」を交互に指示する所謂トグルスイッチである為、オン操作される毎にスタートフラグＳＴＦを反転させている。
【００３９】
そして、ステップＳＢ１５では、反転されたスタートフラグＳＴＦが「１」、つまりスタート状態であるか否かを判断する。スタート状態であると、判断結果は「ＹＥＳ」になり、後述のステップＳＢ１６〜ＳＢ２２を実行する。一方、ストップ状態ならば、判断結果が「ＮＯ」になり、後述のステップＳＢ２３〜ＳＢ２４を実行する。以下、スタート状態の動作と、ストップ状態の動作とに分けて説明を進める。
【００４０】
＜スタート状態の動作＞
スタート状態に設定されると、上記ステップＳＢ１５の判断結果が「ＹＥＳ」になり、ステップＳＢ１６に進み、ＲＡＭ１５のデータエリアに格納されるコードパターンの読み出しアドレス初期値をレジスタＡＤにストアする。以下、レジスタＡＤの内容を読み出しアドレスＡＤと称す。続いて、ステップＳＢ１７では、コードパターン中から読み出しアドレスＡＤで指定される小節および拍のコードネームを読み出す。次に、ステップＳＢ１８では、ＲＡＭ１５のデータエリアに格納されるコード判別テーブルからコードネームに対応するコード構成音を抽出する。例えばコードパターンから読み出したコードネームが「Ｃメジャ−」であったとすると、図３（ａ）に図示したメジャーコード判定テーブルから対応するコード構成音（ルート「Ｃ」、３度音「Ｅ」および５度音「Ｇ」）を抽出する。
【００４１】
そして、ステップＳＢ１９では、抽出したコード構成音にそれぞれ対応する各鍵に配設されるＬＥＤを点灯するようＬＥＤ部１１に指示する。これにより、最初に弾くべきコードがガイドされる。続いて、ステップＳＢ２０〜ＳＢ２１では、曲進行を管理する拍カウンタおよび小節カウンタに各々初期値「１」をセットする。次いで、ステップＳＢ２２では、拍タイミングを計時するタイマをスタートさせて本処理を終える。なお、図示していないが、上記ステップＳＢ２２にてタイマスタートさせると、ＣＰＵ１３では、一定周期毎にタイマクロックをカウントして計時するタイマインタラプト処理を実行するようになっている。
【００４２】
＜ストップ状態の動作＞
一方、ストップ状態に設定された場合には、上記ステップＳＢ１５の判断結果が「ＮＯ」になり、ステップＳＢ２３に進み、鍵盤１０の各鍵に配設される全てのＬＥＤを消灯するようＬＥＤ部１１に指示する。そして、ステップＳＢ２４に進み、タイマを停止（タイマインタラプト処理中止）して本処理を終える。
【００４３】
このように、スイッチ処理では、ＡＬＬスイッチ、ＡＮＹスイッチ、３ｒｄ〜７ｔｈスイッチ、ｒｏｏｔ〜５ｔｈスイッチ、ｒｏｏｔ〜３ｒｄスイッチおよびｒｏｏｔスイッチのいずれかをオン操作すると、オン操作されたスイッチ種に対応するフラグ値がフラグＴＹＰＥＦにセットされ、これにより教習レベルが設定される。
【００４４】
また、スタート／ストップスイッチＳＳのオン操作に応じてスタート状態に設定されると、ＲＡＭ１５のデータエリアに格納されるコードパターン中の先頭（第１小節第１拍目）のコードネームから抽出したコード構成音に対応する各鍵のＬＥＤを点灯させて最初に弾くべきコードをガイドすると共に、拍タイミングを計時するタイマをスタートさせる。一方、ストップ状態に設定された場合には、各鍵に配設される全てのＬＥＤを消灯させると共に、タイマを停止させる。
【００４５】
（ｃ）ガイド処理の動作
次に、図７を参照してガイド処理の動作を説明する。前述したメインルーチンのステップＳＡ３（図４参照）を介して本処理が実行されると、ＣＰＵ１３は図７に図示するステップＳＣ１に進み、スタートフラグＳＴＦが「１」、つまりスタート状態であるか否かを判断する。ストップ状態であると、判断結果は「ＮＯ」になり、何も行わずに本処理を終えるが、スタート状態ならば、判断結果が「ＹＥＳ」になり、ステップＳＣ２に進む。ステップＳＣ２では、タイマが１拍分を計時したか否か、つまり拍タイミングに達したかどうかを判断する。拍タイミングに達していなければ、判断結果は「ＮＯ」になり、本処理を終える。
【００４６】
一方、拍タイミングに達した場合には、上記ステップＳＣ２の判断結果が「ＹＥＳ」になり、ステップＳＣ３に進み、タイマカウントをクリアする。続いて、ステップＳＣ４では、１拍分の時間経過に伴って拍カウンタをインクリメントして歩進させる。そして、ステップＳＣ５では、歩進された拍カウンタの値が１小節分に相当するか否か、つまり１小節経過したかどうかを判断する。１小節経過していなければ、判断結果は「ＮＯ」になり、後述のステップＳＣ８に進む。これに対し、１小節経過した場合には、上記ステップＳＣ５の判断結果が「ＹＥＳ」になり、ステップＳＣ６に進み、拍カウンタを初期値「１」にリセットする。次いで、ステップＳＣ７では、小節カウンタをインクリメントして歩進させた後、ステップＳＣ８に進む。
【００４７】
ステップＳＣ８では、拍カウンタおよび小節カウンタの各値が、コードパターンから現在読み出されているコードネームの拍および小節に一致しているか否か、つまりガイドされたコード構成音の押鍵タイミングであるかどうかを判断する。押鍵タイミングでなければ、判断結果は「ＮＯ」になり、本処理を終える。一方、押鍵タイミング下ならば、上記ステップＳＣ８の判断結果が「ＹＥＳ」になり、ステップＳＣ９に進み、タイマを停止（タイマインタラプト処理の中止）して本処理を終える。
【００４８】
このように、ガイド処理では、拍タイミング毎に拍カウンタを歩進させる一方、歩進した拍カウンタが１小節経過する毎に小節カウンタを歩進させ、こうして歩進される拍カウンタおよび小節カウンタの各値が、コードパターンから現在読み出されているコードネームの拍および小節に一致し、ガイドされたコード構成音の押鍵タイミングになった場合に一旦タイマを停止させる。
【００４９】
（ｄ）鍵盤処理の動作
次に、図８〜図９を参照して鍵盤処理の動作を説明する。前述したメインルーチンのステップＳＡ４（図４参照）を介して本処理が実行されると、ＣＰＵ１３は図８に図示するステップＳＤ１に進み、鍵盤１０を鍵走査する。続いて、ステップＳＤ２では、上記ステップＳＤ１の鍵走査の結果に基づき押鍵操作の有無を判断する。押鍵操作が無ければ、判断結果は「ＮＯ」になり、ステップＳＤ３に進む。ステップＳＤ３では、離鍵された鍵の音高に対応する楽音の消音を音源１７に指示する等の、その他の処理を実行して本処理を終える。
【００５０】
一方、鍵走査の結果に基づき押鍵操作を検出すると、上記ステップＳＤ２の判断結果が「ＹＥＳ」になり、ステップＳＤ４に進み、押鍵された鍵の音高を検出する。そして、ステップＳＤ５では、押鍵された鍵の音高に対応する楽音の発音を音源１７に指示する。次いで、ステップＳＤ６では、スタートフラグＳＴＦが「１」、つまりスタート状態であるか否かを判断する。ストップ状態ならば、判断結果は「ＮＯ」になり、本処理を終えるが、スタート状態であると、判断結果が「ＹＥＳ」になり、ステップＳＤ７に進む。ステップＳＤ７では、フラグＴＹＰＥＦが「１」であるか否かを判断する。
【００５１】
フラグＴＹＰＥＦが「１」の場合、すなわちＡＮＹスイッチのオン操作によって鍵盤１０のいずれかの鍵を押鍵しただけで適正なコード演奏と判定する教習レベルに設定されている場合には、ガイドされたコード構成音と押鍵された鍵の音（以下、押鍵音と称す）とを比較判定する必要が無い為、判断結果は「ＹＥＳ」になり、図９に図示するステップＳＤ１０に進む。これに対し、フラグＴＹＰＥＦが「１」以外の場合には、上記ステップＳＤ７の判断結果が「ＮＯ」になり、ステップＳＤ８を介して比較処理を実行する。
【００５２】
後述するように、比較処理では、前述したＡＬＬスイッチ、３ｒｄ〜７ｔｈスイッチ、ｒｏｏｔ〜５ｔｈスイッチ、ｒｏｏｔ〜３ｒｄスイッチおよびｒｏｏｔスイッチのいずれかのオン操作で設定される教習レベルに基づき、ガイドされたコード構成音と押鍵音との比較判定を行う。次いで、ステップＳＤ９では、ステップＳＤ８の比較処理により得られる判定結果に基づき一致したかどうか、つまり設定された教習レベル下での適正なコード演奏であるか否かを判断する。適正なコード演奏でない場合には、判断結果は「ＮＯ」になり、本処理を終える。この場合、後述のステップＳＤ１０以降が実行されない為、設定された教習レベル下で適正なコード演奏が行われるまで次のコード構成音の押鍵ガイドを停止させる。
【００５３】
一方、設定された教習レベル下での適正なコード演奏ならば、上記ステップＳＤ９の判断結果が「ＹＥＳ」になり、図９に図示するステップＳＤ１０に処理を進め、ＲＡＭ１５のデータエリアに格納されるコードパターンの読み出しアドレスＡＤを歩進させる。続いて、ステップＳＤ１１では、歩進された読み出しアドレスＡＤに対応した次のデータ（コードネーム）の有無、つまり曲終端に達したかどうかを判断する。曲終端に達していなければ、判断結果は「ＹＥＳ」になり、ステップＳＤ１２に進み、歩進された読み出しアドレスＡＤに対応した小節および拍のコードネームを読み出す。
【００５４】
そして、ステップＳＤ１３では、読み出したコードネームに対応するコード構成音を、ＲＡＭ１５のデータエリアに格納されるコード判別テーブルから抽出する。続いて、ステップＳＤ１４では、抽出したコード構成音にそれぞれ対応する各鍵に配設されるＬＥＤを点灯するようＬＥＤ部１１に指示する。これにより次に弾くべきコードがガイドされる。この後、ステップＳＤ１５に進み、拍タイミングを計時するタイマをスタートさせて本処理を終える。
【００５５】
これに対し、歩進された読み出しアドレスＡＤに対応した次のデータ（コードネーム）が無く、曲終端に達した場合には、上記ステップＳＤ１１の判断結果が「ＮＯ」になり、ステップＳＤ１６に進む。ステップＳＤ１６では、スタートフラグＳＴＦをゼロリセットしてストップ状態に設定し、続くステップＳＤ１７では、鍵盤１０の各鍵に配設される全てのＬＥＤを消灯するようＬＥＤ部１１に指示する。そして、ステップＳＤ１８に進み、タイマを停止（タイマインタラプト処理中止）して本処理を終える。
【００５６】
このように、鍵盤処理では、押鍵操作された鍵の楽音を発音させると共に、その押鍵操作が、設定された教習レベル下での適正なコード演奏であるかどうかを判断し、適正なコード演奏が行われる毎に、次に弾くべきコード構成音の押鍵を順次ガイドして行くが、設定された教習レベル下での適正なコード演奏を行わないと、適正なコード演奏が行われるまで次のコード構成音の押鍵ガイドを停止させるようになっている。
【００５７】
（ｄ）比較処理の動作
次に、図１０〜図１５を参照して比較処理の動作を説明する。上述した鍵盤処理のステップＳＤ８（図８参照）を介して本処理が実行されると、ＣＰＵ１３は図１０に図示するステップＳＥ１に進む。ステップＳＥ１以降では、フラグＴＹＰＥＦが「０」、「２」、「３」、「４」および「５」の各値に対応する比較処理を実行する。以下、フラグＴＹＰＥＦの値別に分けて動作説明を進める。
【００５８】
＜フラグＴＹＰＥＦが「０」の場合＞
ＡＬＬスイッチのオン操作によりフラグＴＹＰＥＦが「０」にセットされていれば、ステップＳＥ１の判断結果が「ＹＥＳ」になり、ステップＳＥ２に進む。ステップＳＥ２を介して図１１に図示するＴＹＰＥ０比較処理が実行されると、ＣＰＵ１３はステップＳＦ１に進み、コード判別テーブルから抽出したコード構成音の数と押鍵音の数とが一致しているか否か、つまりガイドされたコード構成音数分の押鍵が為されたかどうかを判断する。ガイドされたコード構成音数分の押鍵が為されていなければ、判断結果は「ＮＯ」になり、ステップＳＦ５に進み、不一致と判定して本処理を終える。
【００５９】
一方、ガイドされたコード構成音数分の押鍵が為されていれば、上記ステップＳＦ１の判断結果は「ＹＥＳ」になり、ステップＳＦ２に進む。ステップＳＦ２〜ＳＦ３では、ガイドされたコード構成音の各音高と押鍵音の各音高とを比較し、全て一致するかどうかを判断する。ガイドされたコード構成音の各音高と押鍵音の各音高とが全て一致するならば、ステップＳＦ３の判断結果が「ＹＥＳ」になり、ステップＳＦ４に進み、一致と判定して本処理を終える。
【００６０】
これに対し、ガイドされたコード構成音の各音高と押鍵音の各音高とが全て一致しなければ、上記ステップＳＦ３の判断結果は「ＮＯ」になり、ステップＳＦ５に進み、不一致と判定して本処理を終える。この結果、ＡＬＬスイッチをオン操作すれば、ガイドされたコード構成音を全て間違いなく押鍵した時に適正なコード演奏と判定する教習レベルに設定される。
【００６１】
＜フラグＴＹＰＥＦが「２」の場合＞
３ｒｄ〜７ｔｈスイッチのオン操作によりフラグＴＹＰＥＦが「２」にセットされていれば、図１０に図示するステップＳＥ３の判断結果が「ＹＥＳ」になり、ステップＳＥ４に進む。ステップＳＥ４を介して図１２に図示するＴＹＰＥ２比較処理が実行されると、ＣＰＵ１３はステップＳＧ１に進み、コード判別テーブルから抽出したコード構成音の内、７度音より高い音高の押鍵音の有無を判断する。７度音より高い音高の押鍵音が有ると、判断結果は「ＮＯ」になり、ステップＳＧ３に進み、不一致と判定して本処理を終える。
【００６２】
一方、７度音より高い音高の押鍵音が無ければ、上記ステップＳＧ１の判断結果は「ＹＥＳ」になり、ステップＳＧ２に進む。ステップＳＧ２では、押鍵音の音高が、コード判別テーブルから抽出したコード構成音の３度音、５度音および７度音を含むかどうかを判断する。押鍵音が３度音、５度音および７度音を含むならば、判断結果は「ＹＥＳ」になり、ステップＳＧ４に進み、一致と判定して本処理を終える。
【００６３】
これに対し、押鍵音が３度音〜７度音を含んでいなければ、上記ステップＳＧ２の判断結果は「ＮＯ」になり、ステップＳＧ３に進み、不一致と判定して本処理を終える。この結果、３ｒｄ〜７ｔｈスイッチをオン操作すれば、ガイドされたコード構成音の内、３度音から７度音を含む押鍵が行われた時に適正なコード演奏と判定する教習レベルに設定される。
【００６４】
＜フラグＴＹＰＥＦが「３」の場合＞
ｒｏｏｔ〜５ｔｈスイッチのオン操作によりフラグＴＹＰＥＦが「３」にセットされていれば、図１０に図示するステップＳＥ５の判断結果が「ＹＥＳ」になり、ステップＳＥ６に進む。ステップＳＥ６を介して図１３に図示するＴＹＰＥ３比較処理が実行されると、ＣＰＵ１３はステップＳＨ１に進み、コード判別テーブルから抽出したコード構成音の内、ルート（根音）より低い音高の押鍵音の有無を判断する。ルートより低い音高の押鍵音が有ると、判断結果は「ＮＯ」になり、ステップＳＨ３に進み、不一致と判定して本処理を終える。
【００６５】
一方、ルートより低い音高の押鍵音が無ければ、上記ステップＳＨ１の判断結果は「ＹＥＳ」になり、ステップＳＨ２に進む。ステップＳＨ２では、押鍵音の音高が、コード判別テーブルから抽出したコード構成音のルート、３度音および５度音を含むかどうかを判断する。押鍵音がルート、３度音および５度音を含むならば、判断結果は「ＹＥＳ」になり、ステップＳＨ４に進み、一致と判定して本処理を終える。
【００６６】
これに対し、押鍵音がルート〜５度音を含んでいなければ、上記ステップＳＨ２の判断結果は「ＮＯ」になり、ステップＳＨ３に進み、不一致と判定して本処理を終える。この結果、ｒｏｏｔ〜５ｔｈスイッチをオン操作すれば、ガイドされたコード構成音の内、ルート、３度音および５度音を含む押鍵が行われた時に適正なコード演奏と判定する教習レベルに設定される。
【００６７】
＜フラグＴＹＰＥＦが「４」の場合＞
ｒｏｏｔ〜３ｒｄスイッチのオン操作によりフラグＴＹＰＥＦが「４」にセットされていれば、図１０に図示するステップＳＥ７の判断結果が「ＹＥＳ」になり、ステップＳＥ８に進む。ステップＳＥ８を介して図１４に図示するＴＹＰＥ４比較処理が実行されると、ＣＰＵ１３はステップＳＪ１に進み、コード判別テーブルから抽出したコード構成音の内、ルートより低く３度音より高い音高の押鍵音の有無を判断する。ルートより低く３度音より高い音高の押鍵音が有ると、判断結果は「ＮＯ」になり、ステップＳＪ３に進み、不一致と判定して本処理を終える。
【００６８】
一方、ルートより低く３度音より高い音高の押鍵音が無ければ、上記ステップＳＪ１の判断結果は「ＹＥＳ」になり、ステップＳＪ２に進む。ステップＳＪ２では、押鍵音の音高が、コード判別テーブルから抽出したコード構成音のルートおよび３度音を含むかどうかを判断する。押鍵音がルートおよび３度音を含むならば、判断結果は「ＹＥＳ」になり、ステップＳＪ４に進み、一致と判定して本処理を終える。
【００６９】
これに対し、押鍵音がルートおよび３度音を含まなければ、上記ステップＳＪ２の判断結果は「ＮＯ」になり、ステップＳＪ３に進み、不一致と判定して本処理を終える。この結果、ｒｏｏｔ〜３ｒｄスイッチをオン操作すれば、ガイドされたコード構成音の内、ルートおよび３度音を含む押鍵が行われた時に適正なコード演奏と判定する教習レベルに設定される。
【００７０】
＜フラグＴＹＰＥＦが「５」の場合＞
ｒｏｏｔスイッチのオン操作によりフラグＴＹＰＥＦが「５」にセットされていれば、図１０に図示するステップＳＥ９の判断結果が「ＹＥＳ」になり、ステップＳＥ１０に進む。ステップＳＥ１０を介して図１５に図示するＴＹＰＥ５比較処理が実行されると、ＣＰＵ１３はステップＳＫ１に進み、コード判別テーブルから抽出したコード構成音の内、ルートを含む押鍵音の有無を判断する。押鍵音にルートが含まれなければ、判断結果は「ＮＯ」になり、ステップＳＫ３に進み、不一致と判定して本処理を終える。
【００７１】
一方、押鍵音にルートが含まれると、上記ステップＳＫ１の判断結果は「ＹＥＳ」になり、ステップＳＫ２に進む。ステップＳＫ２では、押鍵音中の最低音高がルートに一致するかどうかを判断する。押鍵音中の最低音高がルートに一致するならば、判断結果は「ＹＥＳ」になり、ステップＳＫ４に進み、一致と判定して本処理を終える。
【００７２】
これに対し、押鍵音中の最低音高がルートに一致しなければ、上記ステップＳＫ２の判断結果は「ＮＯ」になり、ステップＳＫ３に進み、不一致と判定して本処理を終える。この結果、ｒｏｏｔスイッチをオン操作すれば、ガイドされたコード構成音の内、ルートを最低音高とした押鍵が行われた時に適正なコード演奏と判定する教習レベルに設定される。
【００７３】
以上のように、第１実施形態では、ＡＬＬスイッチをオン操作すると、ガイドされたコード構成音を全て押鍵した時に適正なコード演奏と判定する教習レベルに設定され、ＡＮＹスイッチをオン操作すると、鍵盤１０のいずれかの鍵を押鍵しただけで適正なコード演奏と判定する教習レベルに設定され、３ｒｄ〜７ｔｈスイッチをオン操作すると、ガイドされたコード構成音の内の３度音から７度音を含む押鍵が行われた時に適正なコード演奏と判定する教習レベルに設定され、ｒｏｏｔ〜５ｔｈスイッチをオン操作すると、ガイドされたコード構成音の内のルートから５度音を含む押鍵が行われた時に適正なコード演奏と判定する教習レベルに設定され、ｒｏｏｔ〜３ｒｄスイッチをオン操作すると、ガイドされたコード構成音の内のルートおよび３度音を含む押鍵が行われた時に適正なコード演奏と判定する教習レベルに設定され、ｒｏｏｔスイッチをオン操作すると、ガイドされたコード構成音の内のルートを最低音高とした押鍵が行われた時に適正なコード演奏と判定する教習レベルに設定される。
【００７４】
上述した教習レベルのいずれかを選択した後、コードパターン中から拍毎に読み出されるコードネームをコード構成音に変換し、当該コード構成音に各々対応する各鍵のＬＥＤを点灯してコード演奏をガイドし始めると、このガイドに対応したユーザの押鍵操作が、設定された教習レベル下での適正なコード演奏であるかどうかを判断し、適正ならば次に弾くべきコード演奏のガイドし、不適ならば適正なコード演奏が行われるまでガイドを停止させるようにしたので、コードの弾き方を段階的に習得することが可能になる。
【００７５】
Ｂ．第２実施形態
次に、図１６〜図１７を参照して第２実施形態による比較処理の動作について説明する。前述した第１実施形態と同様、鍵盤処理のステップＳＤ８（図８参照）を介して第２実施形態による比較処理が実行されると、ＣＰＵ１３は図１６に図示するステップＳＬ１に進む。ステップＳＬ１以降では、フラグＴＹＰＥＦが「０」、「２」、「３」、「４」および「５」の各値に対応する処理を実行する。以下、フラグＴＹＰＥＦ値別の動作を述べる。
【００７６】
＜フラグＴＹＰＥＦが「０」の場合＞
ＡＬＬスイッチのオン操作によりフラグＴＹＰＥＦが「０」にセットされていれば、ステップＳＬ１の判断結果が「ＹＥＳ」になり、ステップＳＬ２に進む。ステップＳＬ２では、全ての押鍵音の音高とコード判別テーブルから抽出したコード構成音の音高とを比較する。そして、図１７に図示するステップＳＬ１１に進み、コード構成音の音高を含む押鍵音の有無を判断する。押鍵音にコード構成音の音高が含まれていなければ、判断結果は「ＮＯ」になり、ステップＳＬ１３に進み、不一致と判定して本処理を終える。
【００７７】
一方、押鍵音にコード構成音の音高が含まれていると、上記ステップＳＬ１１の判断結果は「ＹＥＳ」になり、ステップＳＬ１２に進む。ステップＳＬ１２では、一致押鍵数（ガイドされたコード構成音の音高に一致する押鍵音の数）を２倍した数が全押鍵数以上であるか、つまりガイドされたコード構成音の半数以上が押鍵されたかどうかを判断する。ガイドされたコード構成音の半数以上を押鍵していると、上記ステップＳＬ１２の判断結果は「ＹＥＳ」になり、ステップＳＬ１４に進み、一致と判定して本処理を終える。
【００７８】
これに対し、ガイドされたコード構成音の半数以上を押鍵していなければ、上記ステップＳＬ１２の判断結果は「ＮＯ」になり、ステップＳＬ１３に進み、不一致と判定して本処理を終える。したがって、第２実施形態においては、ＡＬＬスイッチをオン操作した場合、ガイドされたコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する教習レベルに設定される。
【００７９】
＜フラグＴＹＰＥＦが「２」の場合＞
３ｒｄ〜７ｔｈスイッチのオン操作によりフラグＴＹＰＥＦが「２」にセットされていれば、図１６に図示するステップＳＬ３の判断結果が「ＹＥＳ」になり、ステップＳＬ４に進む。ステップＳＬ４では、コード判別テーブルから抽出したコード構成音中の３度音、５度音および７度音と、いずれかの押鍵音の音高とを比較する。そして、図１７に図示するステップＳＬ１１に進み、コード構成音中の３度音、５度音および７度音の音高に一致する押鍵音の有無を判断する。押鍵音にコード構成音中の３度音、５度音および７度音の音高が含まれていなければ、判断結果は「ＮＯ」になり、ステップＳＬ１３に進み、不一致と判定して本処理を終える。
【００８０】
一方、押鍵音にコード構成音中の３度音、５度音および７度音の音高が含まれていると、上記ステップＳＬ１１の判断結果は「ＹＥＳ」になり、ステップＳＬ１２に進み、ガイドされたコード構成音の半数以上が押鍵されたかどうかを判断する。ガイドされたコード構成音の半数以上を押鍵していると、上記ステップＳＬ１２の判断結果は「ＹＥＳ」になり、ステップＳＬ１４に進み、一致と判定して本処理を終える。
【００８１】
これに対し、ガイドされたコード構成音の半数以上を押鍵していなければ、上記ステップＳＬ１２の判断結果は「ＮＯ」になり、ステップＳＬ１３に進み、不一致と判定して本処理を終える。したがって、第２実施形態においては、３ｒｄ〜７ｔｈスイッチをオン操作した場合、ガイドされたコード構成音中の３度音、５度音および７度音を含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する教習レベルに設定される。
【００８２】
＜フラグＴＹＰＥＦが「３」の場合＞
ｒｏｏｔ〜５ｔｈスイッチのオン操作によりフラグＴＹＰＥＦが「３」にセットされていれば、図１６に図示するステップＳＬ５の判断結果が「ＹＥＳ」になり、ステップＳＬ６に進む。ステップＳＬ６では、コード判別テーブルから抽出したコード構成音中のルート、３度音および５度音と、いずれかの押鍵音の音高とを比較する。そして、図１７に図示するステップＳＬ１１に進み、コード構成音中のルート、３度音および５度音の音高に一致する押鍵音の有無を判断する。押鍵音にコード構成音中のルート、３度音および５度音の音高が含まれていなければ、判断結果は「ＮＯ」になり、ステップＳＬ１３に進み、不一致と判定して本処理を終える。
【００８３】
一方、押鍵音にコード構成音中のルート、３度音および５度音の音高が含まれていると、上記ステップＳＬ１１の判断結果は「ＹＥＳ」になり、ステップＳＬ１２に進み、ガイドされたコード構成音の半数以上が押鍵されたかどうかを判断する。ガイドされたコード構成音の半数以上を押鍵していると、上記ステップＳＬ１２の判断結果は「ＹＥＳ」になり、ステップＳＬ１４に進み、一致と判定して本処理を終える。
【００８４】
これに対し、ガイドされたコード構成音の半数以上を押鍵していなければ、上記ステップＳＬ１２の判断結果は「ＮＯ」になり、ステップＳＬ１３に進み、不一致と判定して本処理を終える。したがって、第２実施形態においては、ｒｏｏｔ〜５ｔｈスイッチをオン操作した場合、ガイドされたコード構成音中のルート、３度音および５度音を含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する教習レベルに設定される。
【００８５】
＜フラグＴＹＰＥＦが「４」の場合＞
ｒｏｏｔ〜３ｒｄスイッチのオン操作によりフラグＴＹＰＥＦが「４」にセットされていれば、図１６に図示するステップＳＬ７の判断結果が「ＹＥＳ」になり、ステップＳＬ８に進む。ステップＳＬ８では、コード判別テーブルから抽出したコード構成音中のルートおよび３度音と、いずれかの押鍵音の音高とを比較する。そして、図１７に図示するステップＳＬ１１に進み、コード構成音中のルートおよび３度音の音高に一致する押鍵音の有無を判断する。押鍵音にコード構成音中のルートおよび３度音の音高が含まれていなければ、判断結果は「ＮＯ」になり、ステップＳＬ１３に進み、不一致と判定して本処理を終える。
【００８６】
一方、押鍵音にコード構成音中のルートおよび３度音の音高が含まれていると、上記ステップＳＬ１１の判断結果は「ＹＥＳ」になり、ステップＳＬ１２に進み、ガイドされたコード構成音の半数以上が押鍵されたかどうかを判断する。ガイドされたコード構成音の半数以上を押鍵していると、上記ステップＳＬ１２の判断結果は「ＹＥＳ」になり、ステップＳＬ１４に進み、一致と判定して本処理を終える。
【００８７】
これに対し、ガイドされたコード構成音の半数以上を押鍵していなければ、上記ステップＳＬ１２の判断結果は「ＮＯ」になり、ステップＳＬ１３に進み、不一致と判定して本処理を終える。したがって、第２実施形態においては、ｒｏｏｔ〜３ｒｄスイッチをオン操作した場合、ガイドされたコード構成音中のルートおよび３度音を含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する教習レベルに設定される。
【００８８】
＜フラグＴＹＰＥＦが「５」の場合＞
ｒｏｏｔスイッチのオン操作によりフラグＴＹＰＥＦが「５」にセットされていれば、図１７に図示するステップＳＬ９の判断結果が「ＹＥＳ」になり、ステップＳＬ１０に進む。ステップＳＬ１０では、コード判別テーブルから抽出したコード構成音中のルートと、いずれかの押鍵音の音高とを比較する。そして、ステップＳＬ１１では、コード構成音中のルートの音高に一致する押鍵音の有無を判断する。押鍵音にコード構成音中のルートの音高が含まれていなければ、判断結果は「ＮＯ」になり、ステップＳＬ１３に進み、不一致と判定して本処理を終える。
【００８９】
一方、押鍵音にコード構成音中のルートの音高が含まれていると、上記ステップＳＬ１１の判断結果は「ＹＥＳ」になり、ステップＳＬ１２に進み、ガイドされたコード構成音の半数以上が押鍵されたかどうかを判断する。ガイドされたコード構成音の半数以上を押鍵していると、上記ステップＳＬ１２の判断結果は「ＹＥＳ」になり、ステップＳＬ１４に進み、一致と判定して本処理を終える。
【００９０】
これに対し、ガイドされたコード構成音の半数以上を押鍵していなければ、上記ステップＳＬ１２の判断結果は「ＮＯ」になり、ステップＳＬ１３に進み、不一致と判定して本処理を終える。したがって、第２実施形態においては、ｒｏｏｔスイッチをオン操作した場合、ガイドされたコード構成音中のルートを含み、かつコード構成音の半数以上を押鍵した時に適正なコード演奏と判定する教習レベルに設定される。
【００９１】
このように、第２実施形態においても、ユーザのスイッチ操作に応じて、適正なコード演奏と判定する教習レベルを選択的に設定できるので、コードの弾き方を段階的に習得することが可能になる。
【００９２】
Ｃ．第３実施形態
次に、図１８〜図２０を参照して第３実施形態について説明する。前述した第１実施形態では、ＡＬＬスイッチ、ＡＮＹスイッチ、３ｒｄ〜７ｔｈスイッチ、ｒｏｏｔ〜５ｔｈスイッチ、ｒｏｏｔ〜３ｒｄスイッチおよびｒｏｏｔスイッチの操作に応じて、適正なコード演奏と判定する教習レベルを設定する態様について述べた。これに対して第３実施形態では、ガイドされるコード構成音の内、ユーザが指定する度数の音をコード演奏の対象にしたり、あるいはコード演奏の対象から除外してユーザ好みの教習形態を設定可能にする。以下では、こうした第３実施形態を具現するスイッチ処理および比較処理の各動作を説明する。
【００９３】
（１）スイッチ処理の動作
図１８〜図１９を参照して第３実施形態によるスイッチ処理の動作を説明する。前述した第１実施形態と同様、メインルーチンのステップＳＡ２（図４参照）を介して本処理が実行されると、ＣＰＵ１３は図１８に図示するステップＳＭ１に処理を進め、コード構成音中の度数の音を指定する度数入力スイッチのオン操作の有無を判断する。度数入力スイッチがオン操作されなければ、判断結果は「ＮＯ」になり、図１９に図示するステップＳＭ７に進む。一方、ユーザが所望の度数の音を指定して度数入力スイッチをオン操作すると、判断結果が「ＹＥＳ」になり、ステップＳＭ２に進み、入力された度数をレジスタＤＳにストアする。以後、レジスタＤＳの内容を度数ＤＳと記す。
【００９４】
次いで、ステップＳＭ３では、ＯＮ／ＯＦＦスイッチのオン操作の有無を判断する。ＯＮ／ＯＦＦスイッチとは、ユーザが指定した度数の音をコード演奏の対象にしたり、対象から除外するためのスイッチである。このスイッチがオン操作されなければ、ステップＳＭ３の判断結果は「ＮＯ」になり、図１９に図示するステップＳＭ７に進む。一方、オン操作された場合には、判断結果が「ＹＥＳ」になり、ステップＳＭ４に進み、フラグＷＡ（ＤＳ）が「１」であるか否かを判断する。フラグＷＡ（ＤＳ）とは、ユーザが指定した度数ＤＳの音をコード演奏の対象にするか否かを判別するフラグであり、「１」の場合にコード演奏の対象にする旨を表し、「０」の場合にコード演奏の対象から除外する旨を表す。
【００９５】
したがって、ＯＮ／ＯＦＦスイッチがオン操作された時に、フラグＷＡ（ＤＳ）が「１」であると、上記ステップＳＭ４の判断結果は「ＹＥＳ」になり、ステップＳＭ５に進み、フラグＷＡ（ＤＳ）を「０」にセットした後、図１９のステップＳＭ７に処理を進める。つまり、ＯＮ／ＯＦＦスイッチがＯＦＦスイッチとして機能する場合には、ユーザが指定した度数ＤＳの音をコード演奏の対象から除外する。
【００９６】
これに対し、ＯＮ／ＯＦＦスイッチがオン操作された時に、フラグＷＡ（ＤＳ）が「０」であると、上記ステップＳＭ４の判断結果は「ＮＯ」になり、ステップＳＭ６に進み、フラグＷＡ（ＤＳ）を「１」にセットした後、図１９のステップＳＭ７に処理を進める。つまり、ＯＮ／ＯＦＦスイッチがＯＮスイッチとして機能する場合には、ユーザが指定した度数ＤＳの音をコード演奏の対象に設定する。
【００９７】
そして、図１９に図示するステップＳＭ７〜ＳＭ１８の処理は、前述した第１実施形態のステップＳＢ１３〜ＳＢ２４（図６参照）と同様、スタート／ストップスイッチＳＳのオン操作に応じて、スタートフラグＳＴＦを反転させ、反転されたスタートフラグＳＴＦが「１」、つまりスタート状態に設定された場合には、読み出しアドレス初期値ＡＤに応じてＲＡＭ１５のデータエリアに格納されるコードパターンから読み出されるコードネームをコード判別テーブルを参照してコード構成音に変換し、そのコード構成音にそれぞれ対応する各鍵に配設されるＬＥＤを点灯させて最初に弾くべきコード構成音の押鍵をガイドする。この後、拍カウンタおよび小節カウンタに各々初期値「１」をセットすると共に、拍タイミングを計時するタイマをスタートさせて本処理を終える。一方、ストップ状態に設定された場合には、鍵盤１０の各鍵に配設される全てのＬＥＤを消灯させた後、タイマを停止して本処理を終える。
【００９８】
（２）比較処理の動作
次に、図２０を参照して第３実施形態による比較処理の動作について説明する。前述した第１実施形態と同様、鍵盤処理のステップＳＤ８（図８参照）を介して第３実施形態による比較処理が実行されると、ＣＰＵ１３は図２０に図示するステップＳＮ１に進み、フラグＷＡ（１）が「１」、すなわちガイドされるコード構成音中の１度音（ルート）がコード演奏の対象に設定されているか否かを判断する。ルートがコード演奏の対象から除外されているならば、判断結果は「ＮＯ」になり、後述のステップＳＮ３に処理を進める。
【００９９】
一方、ルートがコード演奏の対象に設定されていると、判断結果が「ＹＥＳ」になり、ステップＳＮ２に進む。ステップＳＮ２では、押鍵音にコード構成音中のルートの音高が含まれているか否かを判断する。押鍵音にコード構成音中のルートの音高が含まれていなければ、判断結果は「ＮＯ」になり、ステップＳＮ１０に進み、不一致と判断して本処理を終える。これに対し、押鍵音にコード構成音中のルートの音高が含まれていると、上記ステップＳＮ２の判断結果は「ＹＥＳ」になり、ステップＳＮ３に進む。
【０１００】
ステップＳＮ３では、フラグＷＡ（３）が「１」、すなわちガイドされるコード構成音中の３度音がコード演奏の対象に設定されているか否かを判断する。３度音がコード演奏の対象から除外されていると、判断結果は「ＮＯ」になり、後述のステップＳＮ５に処理を進める。３度音がコード演奏の対象に設定されていると、上記ステップＳＮ３の判断結果は「ＹＥＳ」になり、ステップＳＮ４に進む。ステップＳＮ４では、押鍵音にコード構成音中の３度音の音高が含まれているか否かを判断する。３度音の音高が含まれていなければ、判断結果は「ＮＯ」になり、ステップＳＮ１０に進み、不一致と判断して本処理を終える。これに対し、押鍵音にコード構成音中の３度音の音高が含まれていると、上記ステップＳＮ４の判断結果は「ＹＥＳ」になり、ステップＳＮ５に進む。
【０１０１】
ステップＳＮ５では、フラグＷＡ（５）が「１」、すなわちガイドされるコード構成音中の５度音がコード演奏の対象に設定されているか否かを判断する。５度音がコード演奏の対象から除外されていると、判断結果は「ＮＯ」になり、後述のステップＳＮ７に処理を進める。５度音がコード演奏の対象に設定されていると、上記ステップＳＮ５の判断結果は「ＹＥＳ」になり、ステップＳＮ６に進む。ステップＳＮ６では、押鍵音にコード構成音中の５度音の音高が含まれているか否かを判断する。５度音の音高が含まれていなければ、判断結果は「ＮＯ」になり、ステップＳＮ１０に進み、不一致と判断して本処理を終える。これに対し、押鍵音にコード構成音中の５度音の音高が含まれていると、上記ステップＳＮ４の判断結果は「ＹＥＳ」になり、ステップＳＮ７に進む。
【０１０２】
ステップＳＮ７では、フラグＷＡ（７）が「１」、すなわちガイドされるコード構成音中の７度音がコード演奏の対象に設定されているか否かを判断する。７度音がコード演奏の対象から除外されていると、判断結果は「ＮＯ」になり、後述のステップＳＮ９に処理を進める。７度音がコード演奏の対象に設定されていると、上記ステップＳＮ７の判断結果は「ＹＥＳ」になり、ステップＳＮ８に進む。ステップＳＮ８では、押鍵音にコード構成音中の７度音の音高が含まれているか否かを判断する。７度音の音高が含まれていなければ、判断結果は「ＮＯ」になり、ステップＳＮ１０に進み、不一致と判断して本処理を終える。これに対し、押鍵音にコード構成音中の７度音の音高が含まれていると、上記ステップＳＮ４の判断結果は「ＹＥＳ」になり、ステップＳＮ９に進み、一致と判断して本処理を終える。
【０１０３】
以上のように、第３実施形態では、ガイドされるコード構成音の内、ユーザが指定する度数の音をコード演奏の対象にしたり、あるいはコード演奏の対象から除外するので、コードの弾き方を段階的に習得することが出来、しかもユーザ好みの教習形態を設定することも可能になっている。
【０１０４】
なお、上述した第３実施形態では、ユーザが指定する度数の音を一意的にコード演奏の対象にしたり対象から除外するようにしたが、これに替えて、ユーザ指定のコードネームに対応するコード構成音の内、ユーザが指定する度数の音をコード演奏の対象にしたり、あるいはコード演奏の対象から除外する態様としても構わない。このようにすれば、例えば弾き間違い易いコードネームについて重点的に教習することが可能になる。
【図面の簡単な説明】
【０１０５】
【図１】本発明による第１実施形態の構成を示すブロック図である。
【図２】ＲＡＭ１５に格納されるコードパターンの構成を示す図である。
【図３】ＲＡＭ１５に格納されるコード判別テーブルの構成を示す図である。
【図４】メインルーチンの動作を示すフローチャートである。
【図５】スイッチ処理の動作を示すフローチャートである。
【図６】スイッチ処理の動作を示すフローチャートである。
【図７】ガイド処理の動作を示すフローチャートである。
【図８】鍵盤処理の動作を示すフローチャートである。
【図９】鍵盤処理の動作を示すフローチャートである。
【図１０】比較処理の動作を示すフローチャートである。
【図１１】ＴＹＰＥ０比較処理の動作を示すフローチャートである。
【図１２】ＴＹＰＥ２比較処理の動作を示すフローチャートである。
【図１３】ＴＹＰＥ３比較処理の動作を示すフローチャートである。
【図１４】ＴＹＰＥ４比較処理の動作を示すフローチャートである。
【図１５】ＴＹＰＥ５比較処理の動作を示すフローチャートである。
【図１６】第２実施形態による比較処理の動作を示すフローチャートである。
【図１７】第２実施形態による比較処理の動作を示すフローチャートである。
【図１８】第３実施形態によるスイッチ処理の動作を示すフローチャートである。
【図１９】第３実施形態によるスイッチ処理の動作を示すフローチャートである。
【図２０】第３実施形態による比較処理の動作を示すフローチャートである。
【符号の説明】
【０１０６】
１０  鍵盤
１１  ＬＥＤ部
１２  スイッチ部
１３  ＣＰＵ
１４  ＲＯＭ
１５  ＲＡＭ
１６  表示部
１７  音源
１８  サウンドシステム
１００  コード教習装置
【図１】
0004517299.tif 000002
【図２】
0004517299.tif 000003
【図３】
0004517299.tif 000004
【図４】
0004517299.tif 000005
【図５】
0004517299.tif 000006
【図６】
0004517299.tif 000007
【図７】
0004517299.tif 000008
【図８】
0004517299.tif 000009
【図９】
0004517299.tif 000010
【図１０】
0004517299.tif 000011
【図１１】
0004517299.tif 000012
【図１２】
0004517299.tif 000013
【図１３】
0004517299.tif 000014
【図１４】
0004517299.tif 000015
【図１５】
0004517299.tif 000016
【図１６】
0004517299.tif 000017
【図１７】
0004517299.tif 000018
【図１８】
0004517299.tif 000019
【図１９】
0004517299.tif 000020
【図２０】
0004517299.tif 000021