(57)【特許請求の範囲】
【請求項１】
第１および第２の音域に分割された音高指定領域にてなされる演奏操作により指定される複数音高の内、最も低い音高の最低音と、当該最低音の次に低い第２低音と、当該第２低音の次に低い第３低音とを抽出する音高抽出手段と、
この音高抽出手段が抽出した最低音の音名を第１の音名とし、前記第２低音の音名と前記第３低音の音名とを当該第１の音名を基点として上昇方向に並べたときに、前記第１の音名に近い一方の音名を第２の音名とし、他方を第３の音名とした場合の、前記第２の音名と前記第３の音名との音高差を表わす第１の音高差と、前記第１の音名と前記第２の音名との音高差を表わす第２の音高差とを発生する音高差発生手段と、
前記最低音が前記第１の音域内に含まれる場合には、前記第１の音高差と前記第２の音高差と前記最低音とに応じて分数コードのコード種類および根音を生成し、一方、前記最低音が前記第２の音域内に含まれる場合には、前記第１の音高差と前記第２の音高差と前記最低音とに応じて非分数コードのコード種類および根音を生成するコード判別手段と、
このコード判別手段が生成するコード種類および根音に応じた伴奏音の発生を指示する伴奏音発生指示手段と
を具備することを特徴とする自動伴奏装置。
【請求項２】
演奏操作に応じて音高指定される複数音高の内、最も低い音高の最低音と、当該最低音の次に低い第２低音と、当該第２低音の次に低い第３低音とを抽出する音高抽出手段と、
この音高抽出手段が抽出した最低音の音名を第１の音名とし、前記第２低音の音名と前記第３低音の音名とを当該第１の音名を基点として上昇方向に並べたときに、前記第１の音名に近い一方の音名を第２の音名とし、他方を第３の音名とした場合の、前記第２の音名と前記第３の音名との音高差を表わす第１の音高差と、前記第１の音名と前記第２の音名との音高差を表わす第２の音高差とを発生する音高差発生手段と、
前記第２の音高差が所定度数以下である場合には、前記第１の音高差と前記第２の音高差と前記最低音とに応じて非分数コードのコード種類および根音を生成し、一方、前記第２の音高差が所定度数以上である場合には、前記第１の音高差と前記第２の音高差と前記最低音とに応じて分数コードのコード種類および根音を生成するコード判別手段と、
このコード判別手段が生成するコード種類および根音に応じた伴奏音の発生を指示する伴奏音発生指示手段と
を具備することを特徴とする自動伴奏装置。
【請求項３】
前記コード判別手段は、予め前記第１の音高差および前記第２の音高差に対応して複数の分数コード種類が登録された第１の判別テーブルと、
予め前記第１の音高差および前記第２の音高差に対応して複数の非分数コード種類およびルート変化値が登録された第２の判別テーブルと、
を備えることを特徴とする請求項１または請求項２のいずれかに記載の自動伴奏装置。
【請求項４】
前記コード判別手段は、前記第２の音高差が完全４度以下である場合に非分数コードと見做し、当該第２の音高差が完全５度以上である場合に分数コードと見做すことを特徴とする請求項２記載の自動伴奏装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、分数コードと非分数コードとを意識することなく容易にコード演奏し得る自動伴奏装置に関する。
【０００２】
【従来の技術】
周知のように、近年の電子楽器にあっては、コード演奏やベース演奏を補助するため、演奏されたコード（和音）のルート（根音）およびコードタイプ（和音種類）を検出し、この検出結果に基づきコード音およびベース音を所定のタイミングで自動的に発音する自動伴奏装置を備えている。この種の装置の内には、分数コードを検出し、検出した分数コードに基づいて自動伴奏するものも知られている。なお、分数コードとは、通常のコード音とベース音とからなる和音であり、オンベースコードで表記されるものである。
【０００３】
【発明が解決しようとする課題】
さて、演奏されたコードから分数コードを検出する態様としては、所謂、分離検出方式が知られている。この分離検出方式とは、押鍵操作された鍵を表わす押鍵パターン中の最低音と第２低音との音高差が一定以上離間している時、その最低音をベース音とし、残りの押鍵パターンからタイプを検出する方式である。
ところで、分離検出方式に基づいて分数コード検出する従来の自動伴奏装置では、押鍵パターン中の最低音が常にベース音と見做されるから、転回形コードを演奏した時、例えばドミナント・セブンスの転回形で７度音が最低音となった場合にはメジャ・オン・フラット・セブンスという分数コードに見做される等、常に分数コードとして判断されてしまう。このため、演奏者は転回形コードを演奏するには、これに替える代理コードや転回形でない基本コードを演奏しなければならなくなり、結果的に演奏し難くなるという問題がある。
【０００４】
本発明は、上述した事情に鑑みてなされたもので、分数コードと非分数コードとを意識することなく容易にコード演奏することができる自動伴奏装置を提供することを目的としている。
【０００５】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載の発明では、第１および第２の音域に分割された音高指定領域にてなされる演奏操作により指定される複数音高の内、最も低い音高の最低音と、当該最低音の次に低い第２低音と、当該第２低音の次に低い第３低音とを抽出する音高抽出手段と、この音高抽出手段が抽出した最低音の音名を第１の音名とし、前記第２低音の音名と前記第３低音の音名とを当該第１の音名を基点として上昇方向に並べたときに、前記第１の音名に近い一方の音名を第２の音名とし、他方を第３の音名とした場合の、前記第２の音名と前記第３の音名との音高差を表わす第１の音高差と、前記第１の音名と前記第２の音名との音高差を表わす第２の音高差とを発生する音高差発生手段と、前記最低音が前記第１の音域内に含まれる場合には、前記第１の音高差と前記第２の音高差と前記最低音とに応じて分数コードのコード種類および根音を生成し、一方、前記最低音が前記第２の音域内に含まれる場合には、前記第１の音高差と前記第２の音高差と前記最低音とに応じて非分数コードのコード種類および根音を生成するコード判別手段と、このコード判別手段が生成するコード種類および根音に応じた伴奏音の発生を指示する伴奏音発生指示手段とを具備することを特徴としている。
【０００６】
また、請求項２に記載の発明では、演奏操作に応じて音高指定される複数音高の内、最も低い音高の最低音と、当該最低音の次に低い第２低音と、当該第２低音の次に低い第３低音とを抽出する音高抽出手段と、この音高抽出手段が抽出した最低音の音名を第１の音名とし、前記第２低音の音名と前記第３低音の音名とを当該第１の音名を基点として上昇方向に並べたときに、前記第１の音名に近い一方の音名を第２の音名とし、他方を第３の音名とした場合の、前記第２の音名と前記第３の音名との音高差を表わす第１の音高差と、前記第１の音名と前記第２の音名との音高差を表わす第２の音高差とを発生する音高差発生手段と、前記第２の音高差が所定度数以下である場合には、前記第１の音高差と前記第２の音高差と前記最低音とに応じて非分数コードのコード種類および根音を生成し、一方、前記第２の音高差が所定度数以上である場合には、前記第１の音高差と前記第２の音高差と前記最低音とに応じて分数コードのコード種類および根音を生成するコード判別手段と、このコード判別手段が生成するコード種類および根音に応じた伴奏音の発生を指示する伴奏音発生指示手段とを具備することを特徴とする。
【０００７】
上記請求項１または請求項２のいずれかに従属する請求項３に記載の発明によれば、前記コード判別手段は、予め前記第１および第２の音高差に対応して複数の分数コード種類が登録された第１の判別テーブルと、予め前記第１および第２の音高差に対応して複数の非分数コード種類およびルート変化値が登録された第２の判別テーブルとを備えることを特徴とする。
さらに、請求項２に従属する請求項３の発明では、前記コード判別手段は、前記第２の音高差が完全４度以下である場合に非分数コードと見做し、当該第２の音高差が完全５度以上である場合に分数コードと見做すことを特徴とする。
【０００８】
【作用】
本発明では、音高抽出手段が第１および第２の音域に分割された音高指定領域にてなされる演奏操作により指定される複数音高の内、最も低い音高の最低音と、当該最低音の次に低い第２最低音と、当該第２低音の次に低い第３低音とを抽出し、音高差発生手段がこの最低音、第２低音および第３低音をそれぞれ音名に変換し、その内の最も低い音名の第１の音名と、この第１の音名の次に低い第２の音名と、この第２の音名の次に低い第３の音名とを求める一方、前記第２の音名と前記第３の音名との音高差を表わす第１の音高差と、前記第１の音名と前記第２の音名との音高差を表わす第２の音高差とを発生する。そして、コード判別手段は、最低音が前記第１の音域内に含まれる場合、第１および第２の音高差に応じて分数コードのコード種類および根音を生成し、一方、最低音が前記第２の音域内に含まれる場合には、第１および第２の音高差に応じて非分数コードのコード種類および根音を生成し、伴奏音発生指示手段がこのコード判別手段により生成されるコード種類および根音に応じた伴奏音の発生を指示する。
この結果、分数コードと非分数コードとを意識せずに容易にコード演奏することが可能になる。
【０００９】
【実施例】
以下、図面を参照して本発明の実施例について説明する。
Ａ．第１実施例の構成
図１は、本発明の第１実施例による自動伴奏装置を具備した電子楽器の外観を示す外観図である。この図に示す電子楽器は、楽器本体１と鍵盤２とが一体化されたものであって、鍵盤２ではその鍵域が分数コード判別鍵域２Ａと非分数コード判別鍵域２Ｂとに２分割されている。本実施例では、分数コード判別鍵域２Ａとして音名Ｃ1〜Ｂ2が割り当てられ、非分数コード判別鍵域２Ｂとして音名Ｃ3より高い音域が割り当てられており、こうした鍵域分割が意図するところについては後述する。楽器本体２は、コンソール上にパネルスイッチ３が配設されると共に、コンソール両側にはスピーカＳＰが設けられている。
【００１０】
次に、図２を参照して本実施例の構成について説明する。なお、この図において、図１に示す部分と共通する要素には同一の番号を付している。図２において、鍵盤２は、各鍵毎の押離鍵操作および押離鍵速度を検出してキーオン信号、キーナンバ、キーオフ信号、あるいは押離タッチを表すベロシティ等の演奏情報を出力する。コンソール上に配設されるパネルスイッチ３の内には、例えば、音色を指定する音色スイッチや、伴奏パターンを選択するパターン選択スイッチなどの他、図３に示すモードスイッチ３ａおよび自動伴奏の開始／停止を指示するスタート／ストップスイッチ３ｂ等がある。モードスイッチ３ａは、電子楽器の動作モードを選択するスイッチであり、駆動電源をオフ状態に設定する「ＯＦＦモード」、通常の演奏操作に応じて楽音を発生する「通常モード」およびこの通常モード時に自動伴奏する「伴奏モード」のいずれかを選択する。スタート／ストップスイッチ３ｂは、押下操作に応じてスタート指示／ストップ指示が交互に変化するスイッチである。
【００１１】
４は楽器各部を制御するＣＰＵであり、その動作については後述する。５はＣＰＵ４にロードされる各種制御プログラムや、これらプログラムで用いられる各種データなどが記憶されるＲＯＭである。６はＣＰＵ４のワークエリアとして使用されるＲＡＭであり、各種レジスタ／フラグデータが一時記憶される。７は自動伴奏時の演奏テンポを指定するテンポクロックを発生し、これをＣＰＵ４に供給するテンポクロック発生回路である。ここで言う自動伴奏とは、演奏者が演奏の進行に従ってコード（和音）を順次指定した時に、指定されたコードに基づいた伴奏パターンを構成するコード音およびベース音を上記テンポクロックに同期して自動的に伴奏する動作を指す。
【００１２】
８はコード判別テーブルメモリであり、複数押鍵された鍵に基づき、そのコードタイプ（あるいはコード変化値）を判別するための判別テーブルが記憶されており、その詳細については後述する。９は伴奏パターンメモリであり、上述したテンポクロックに対応してコード音およびベース音の発音タイミングを制御する所定小節分の伴奏パターンデータをリズム種類別に記憶している。この伴奏パターンデータは、図示されていないリズム選択スイッチの操作に応じて選択され、選択されたパターンがこの伴奏パターンメモリ９から順次読み出されるようになっている。
【００１３】
１０は周知の波形メモリ読み出し方式で構成される音源であり、通常のメロディ演奏に応じた楽音を発生するノーマル音源の他、伴奏音源を備えている。伴奏音源は、テンポクロックに同期して伴奏パターンメモリ９から順次読み出される伴奏パターンデータを、後述するコード判別処理によって生成されるコードタイプＣＴおよびルートＲＴに応じて音高変換してなる伴奏音を生成する。１１は音源１０から出力される楽音信号をＤ／Ａ変換した後に増幅してスピーカＳＰより楽音として発音させるサウンドシステムである。
【００１４】
Ｂ．コード判別テーブルメモリ８の構成
コード判別テーブルメモリ８は、複数押鍵された鍵を表わす押鍵パターンに基づいてコード判別する情報が記憶されており、この押鍵パターン中で最低音が前述した分数コード判別鍵域２Ａに存在する場合には、図４に示す分数コード判別テーブルＣＴ１を用いて分数コードのコードタイプが判別される。一方、押鍵パターン中で最低音が前述した非分数コード判別鍵域２Ｂに存在する場合には、図５に示す非分数コード判別テーブルＣＴ２に基づきルート変化値ＲＨとコードタイプＣＴとが判別される。これらテーブルＣＴ１，ＣＴ２は、それぞれ後述する動作によって得られる音高差ＣＧ１，ＣＧ２に応じてテーブル読み出しされる。音高差ＣＧ１，ＣＧ２は、次式（１），（２）によって与えられる値である。
ＣＧ１＝｜(ＫＣ２−ＫＣ１)％１２−(ＫＣ３−ＫＣ１)％１２｜    …（１）
ＣＧ２＝min｛(ＫＣ２−ＫＣ１)％１２，(ＫＣ３−ＫＣ１)％１２｝ …（２）
【００１５】
上記（１），（２）式において、ＫＣ１，ＫＣ２およびＫＣ３は、それぞれ少なくとも３音以上押鍵された時の押鍵パターンにおける最低音、次に低い第２低音、この第２低音の次に低い第３低音を指すものであり、その値はＭＩＤＩノートナンバで与えられる。また、上記（１），（２）式における「％１２」とはモジュロ１２（１２の剰余値）を表わす演算子、min｛Ａ，Ｂ｝はＡ，Ｂのうち小さい方の値を解とする演算子である。
したがって、上記（１），（２）式は、押鍵パターン中の最低音ＫＣ１、第２低音ＫＣ２および第３低音ＫＣ３を、それぞれ１オクターブ１２音（Ｃ，Ｃ#，Ｄ，・・・，Ａ#，Ｂ）中の音名に変換し、その内の最も低い音名の第１の音名（ＫＣ１の音名を固定）と、この第１の音名の次に低い第２の音名（ＫＣ２もしくはＫＣ３の音名）と、この第２の音名の次に低い第３の音名（ＫＣ３もしくはＫＣ２の音名）に基づき、第２の音名と第３の音名との音高差を表わす音高差ＣＧ１と、第１の音名と第２の音名との音高差を表わす音高差ＣＧ２とを算出する。
【００１６】
Ｃ．第１実施例の動作
次に、上記構成による第１実施例の動作について図６〜図９を参照して説明する。ここでは、概略動作としてメインルーチンの動作について説明した後、同メインルーチンにおいてコールされる各種処理ルーチンの動作について順次説明する。
（１）メインルーチンの動作
まず、本実施例による電子楽器に電源が投入されると、ＣＰＵ４はＲＯＭ５から所定の制御プログラムをロードし、図６に示すメインルーチンを実行してステップＳＡ２に処理を進める。ステップＳＡ２では、ＲＡＭ６に設けられる各種レジスタやフラグ類をリセットすると共に、音源１０に対して発音チャンネルレジスタをゼロクリアするよう指示する。発音チャンネルレジスタとは、音源１０内部に設けられるレジスタであって、ＣＰＵ４の指示の下に各発音チャンネル毎に割り当てられる楽音パラメータを一時記憶する。
【００１７】
各種レジスタ類を初期化するイニシャライズが完了すると、ＣＰＵ４は次のステップＳＡ４に処理を進め、コンソール上に配設される各種パネルスイッチ３の操作に応じたスイッチ処理、例えば、前述したモードスイッチ３ａや、自動伴奏の開始／停止を指示するスタート／ストップスイッチ３ｂの操作に応じた設定を行い、続いて、ステップＳＡ６に進むと、通常モードの場合には、演奏操作に応じた楽音発生がなされ、自動伴奏モードでは後述する動作に基づき、複数押鍵された鍵に対応する押鍵パターンに基づいてコード判別し、判別したコードのルートおよびタイプに従って伴奏音の発音を指示する鍵盤処理を行う。そして、この後、ステップＳＡ８に処理を進め、例えば、コンソール上に配設される各種パネルスイッチ３の操作を検出するためのスイッチ走査や、このスイッチ走査により検出されたスイッチ設定状況に応じて液晶パネル表示する等、その他の処理を行う。次いで、ＣＰＵ４はステップＳＡ４に処理を戻し、以後ステップＳＡ４〜ＳＡ８を繰り返して押離鍵操作やスイッチ操作の内容に従って音源１０に楽音発生を指示する。
【００１８】
（２）スイッチ処理ルーチンの動作
いま、例えば、演奏者がパネルスイッチ３を操作すると、ＣＰＵ４は上述したステップＳＡ４を介して図７に示すスイッチ処理ルーチンを実行してステップＳＢ２に処理を進める。ステップＳＢ２に進むと、モードスイッチ３ａが操作されたか否かを判断する。ここで、「通常モード」に設定操作された場合には、後述するステップＳＢ８に進み、一方、「自動伴奏モード」に設定操作された場合には、次のステップＳＢ４へ処理を進める。ステップＳＢ４では、スタート／ストップスイッチ３ｂが操作されたかどうかを判断する。
ここで、当該スイッチ３ｂが操作されていない時には、後述するステップＳＢ８に進み、一方、操作された時には、次のステップＳＢ６に進み、自動伴奏の開始／停止を表わす自動伴奏フラグを反転する。このフラグは「１」の時に自動伴奏開始を表わし、「０」の時に停止を表わす。そして、この後、ＣＰＵ４は、その他のスイッチ操作に応じた設定を行った後、本ルーチンを終了して上述したメインルーチンへ復帰する。
【００１９】
（３）鍵盤処理ルーチンの動作
上記スイッチ処理ルーチンを完了してメインルーチンに復帰したＣＰＵ４は、前述したステップＳＡ６を介して図８に示す鍵盤処理ルーチンを実行してステップＳＣ２に処理を進める。ステップＳＣ２では、自動伴奏フラグが「１」、つまり、自動伴奏開始状態であるか否かを判断する。ここで、前述したモードスイッチ３ａが「通常モード」に設定されている時には、判断結果が「ＮＯ」となってステップＳＣ４に進み、押離鍵操作に応じて生成される演奏情報に従って所定音色の楽音発生を指示する通常演奏処理を行ってメインルーチンへ復帰する。
【００２０】
これに対し、モードスイッチ３ａが「自動伴奏モード」に設定され、かつ、スタート／ストップスイッチ３ｂの操作に応じて自動伴奏フラグが「１」に設定されていると、判断結果が「ＹＥＳ」となり、ステップＳＣ６に処理を進め、押離鍵操作に応じて生成される演奏情報に基づき鍵状態を識別する。ここで、キーオン／キーオフイベントが無い場合には鍵変化無しとして本ルーチンを終了する。一方、押鍵操作によりキーオンイベントが発生し、鍵状態がオフからオンに変化すると、ＣＰＵ４はステップＳＣ８に処理を進める。ステップＳＣ８では、所定時間内の複数押鍵であるか否か、すなわち、コード演奏であるか否かを判断する。
【００２１】
コード演奏であれば、ここでの判断結果は「ＹＥＳ」となり、ステップＳＣ１０に処理を進める。ステップＳＣ１０では、複数押鍵された鍵を表わす押鍵パターンに基づいてコード判別し、判別したコードタイプＣＴ／ルートＲＴに基づき自動伴奏を指示するコード判別処理（後述する）を行う。
これに対し、コード演奏でない時には上記ステップＳＣ８の判断結果は「ＮＯ」となり、ステップＳＣ４に進み、押鍵された鍵に対応した楽音発音を指示する通常演奏処理を行う。
【００２２】
次に、上述したステップＳＣ６において、離鍵操作により鍵状態がオンからオフになると、ＣＰＵ４はステップＳＣ１２に処理を進める。ステップＳＣ１２では、その離鍵された鍵がコード指定音であるか否かを判断する。ここで、コード指定音でなければ、通常の離鍵と見做して判断結果が「ＮＯ」となり、上述したステップＳＣ４に進んで離鍵された鍵に対応する楽音の消音を指示する。
一方、コード指定音である時には、判断結果が「ＹＥＳ」となり、この場合、テンポクロックに同期して自動伴奏が進行するので、何もせずにこのルーチンを完了する。
【００２３】
（４）コード判別処理ルーチンの動作
次に、本発明の要旨に係わるコード判別処理ルーチンについて説明する。前述したように、鍵盤処理ルーチン（図８参照）において、所定時間内の複数押鍵、つまり、コード演奏がなされると、ＣＰＵ４はステップＳＣ１０を介して図９に示すコード判別処理ルーチンを実行してステップＳＤ２に処理を進める。ステップＳＤ２では、この複数押鍵された鍵のうちから、前述した最低音ＫＣ１、第２低音ＫＣ２および第３低音ＫＣ３を選択する。
【００２４】
そして、次のステップＳＤ４では、選択した最低音ＫＣ１、第２低音ＫＣ２および第３低音ＫＣ３を、前述した（１）式および（２）式に代入し、音高差ＣＧ１，ＣＧ２を算出する。次いで、ステップＳＤ６に進むと、最低音ＫＣ１が分数コード鍵域２Ａ、つまり、この実施例ではＣ1音〜Ｂ2音の鍵域に最低音ＫＣ１が存在するか否かを判断する。
以下、分数コード鍵域２Ａに最低音ＫＣ１が存在する場合の動作と、非分数コード鍵域２Ｂに最低音ＫＣ１が存在する場合の動作とに分けて説明する。
【００２５】
＜分数コード鍵域２Ａに最低音ＫＣ１が存在する場合の動作＞
この場合、ステップＳＤ６の判断結果が「ＹＥＳ」となり、ステップＳＤ８に進む。ステップＳＤ８では、上記ステップＳＤ４において算出した音高差ＣＧ１，ＣＧ２に基づいて図４に示す分数コード判別テーブルＣＴ１をテーブル読み出しする。
ここで、例えば、コード演奏に応じて複数押鍵された鍵の内、最低音ＫＣ１、第２低音ＫＣ２および第３低音ＫＣ３がそれぞれ「Ｅ2音（４０）」、「Ｇ3音（５５）」および「Ｃ4音（６０）」だとすると（なお、音名に付随する値はＭＩＤＩキーコード値）、上述したステップＳＤ４の演算により、音高差ＣＧ１は「５」、音高差ＣＧ２は「３」となる。そして、これら値に基づき分数コード判別テーブルＣＴ１（図４参照）をテーブル読み出しすると、コードタイプ「Ａb／Ｃ」が読み出される。なお、このテーブルＣＴで定義されるコードタイプはルートが「Ｃ」の場合のものである。
【００２６】
こうして分数コード判別テーブルＣＴ１からコードタイプＣＴが読み出されると、ＣＰＵ４は次のステップＳＤ１０に進み、次式（３）に基づきルートＲＴを求めてレジスタＲＴにストアすると共に、分数コード判別テーブルＣＴ１から読み出したコードタイプＣＴをレジスタＣＴにストアする。
ＲＴ＝ＫＣ１％１２  …（３）
したがって、上述した一例の場合、最低音ＫＣ１は「Ｅ2音（４０）」であるから、これのモジュロ１２を求めると、ルートＲＴは「４」、音名ではＥ音となる。
【００２７】
そして、次のステップＳＤ１２に進むと、ＣＰＵ４はレジスタＣＴに格納されるコードタイプＣＴとレジスタＲＴに格納されるルートＲＴとを読み出し、音源１０に送出して伴奏音を発音するよう指示する。
結局、この一例の場合、ルートが「Ｅ音」で、コードタイプが「Ａb／Ｃ」なのだから、「Ｃ／Ｅ」なる分数コードが音源１０に与えられる。これにより、音源１０では伴奏パターンメモリ９から順次読み出される伴奏パターンデータを、コードタイプＣＴおよびルートＲＴに応じて音高変換して伴奏音を生成する。
【００２８】
＜非分数コード鍵域２Ｂに最低音ＫＣ１が存在する場合の動作＞
この場合、前述したステップＳＤ６の判断結果が「ＮＯ」となり、ステップＳＤ１４に進む。ステップＳＤ１４では、ステップＳＤ４において算出した音高差ＣＧ１，ＣＧ２に基づいて図５に示す非分数コード判別テーブルＣＴ２をテーブル読み出しする。
ここで、例えば、コード演奏に応じて複数押鍵された鍵の内、最低音ＫＣ１、第２低音ＫＣ２および第３低音ＫＣ３がそれぞれ「Ｅ3音（５２）」、「Ｇ3音（５５）」および「Ｃ4音（６０）」だとすると、ステップＳＤ４の演算により、音高差ＣＧ１は「５」、音高差ＣＧ２は「３」となる。そして、これら値に基づき非分数コード判別テーブルＣＴ２（図５参照）をテーブル読み出しすると、コードタイプＣＴが「major」で、ルート変化値ＲＨが「−４」として読み出される。なお、テーブルＣＴ２において定義されるコードタイプも、ルートが「Ｃ」の場合のものである。
【００２９】
こうして非分数コード判別テーブルＣＴ２からコードタイプＣＴおよびルート変化値ＲＨが読み出されると、ＣＰＵ４は次のステップＳＤ１６に進み、次式（４）に基づきルートＲＴを求めてレジスタＲＴにストアすると共に、非分数コード判別テーブルＣＴ２から読み出したコードタイプＣＴをレジスタＣＴにストアする。
ＲＴ＝ＫＣ１％１２＋ＲＨ  …（４）
したがって、上述した一例の場合、最低音ＫＣ１は「Ｅ3音（５２）」であるから、これのモジュロ１２にルート変化値ＲＨ「−４」を加算すると、ルートＲＴは「０」、音名ではＣ音となる。そして、ステップＳＤ１２に進み、ＣＰＵ４はレジスタＣＴに格納されるコードタイプＣＴとレジスタＲＴに格納されるルートＲＴとを読み出し、音源１０に送出して伴奏音を発音するよう指示する。したがって、この一例の場合には、コードＣが音源１０に与えられる。
【００３０】
このように、上述した第１実施例によれば、鍵盤２を分数コード鍵域２Ａと非分数コード鍵域２Ｂとに鍵域分割しておき、コード演奏に応じて複数押鍵された鍵の内、最低音ＫＣ１が分数コード鍵域２Ａにある場合は、分数コードと見做して分数コード判別テーブルＣＴ１を参照してコードタイプを求め、これを最低音ＫＣ１をルートとした分数コードにするので、分数コードと非分数コードとを意識することなく容易にコード演奏することが可能になる。
【００３１】
Ｄ．第２実施例
次に、本発明の第２実施例について説明する。第２実施例では、その構成が第１実施例と同一であり、動作においてもコード判別処理のみが相違する。すなわち、第１実施例では、コード演奏に応じて複数押鍵された鍵の内、最低音ＫＣ１が分数コード鍵域２Ａにある場合に分数コード判別し、最低音ＫＣ１が非分数コード鍵域２Ｂにある場合には非分数コード判別するようにしているが、第２実施例によるコード判別処理ルーチンでは、コード演奏に応じて複数押鍵された鍵の内、最低音ＫＣ１と第２低音ＫＣ２との音高差を求め、求めた音高差に応じて分数コードか、非分数コードかを判別するようにしている。
以下では、こうした第２実施例のコード判別処理ルーチンの動作について、最低音ＫＣ１と第２低音ＫＣ２との音高差が「増４度の時」、「完全４度以下の時」および「完全５度以上の時」に場合分けして説明する。
【００３２】
▲１▼音高差が増４度の時
前述した第１実施例と同様に、鍵盤処理ルーチン（図８参照）において所定時間内の複数押鍵、つまり、コード演奏がなされると、ＣＰＵ４はステップＳＣ１０を介して図１０に示すコード判別処理ルーチンを実行してステップＳＥ２に処理を進める。ステップＳＥ２では、この複数押鍵された鍵の内、最低音ＫＣ１とその次に低い第２低音ＫＣ２との音高差が「増４度」であるか否かを判断する。この場合、「増４度」のケースであるから、判断結果は「ＹＥＳ」となり、ステップＳＥ４に進む。
【００３３】
最低音ＫＣ１と第２低音ＫＣ２との音高差が「増４度」であると、そのコードタイプは一意的に「セブンス（7th）」となるので、ステップＳＥ４では、ルートＲＴを次式（５）に基づいて算出してレジスタＲＴにストアすると共に、レジスタＣＴに「セブンス（7th）」に対応するデータをセットする。
ＲＴ＝ＫＣ１％１２−４ ・・・（５）
なお、上記（５）式における「ＫＣ１％１２」は、最低音ＫＣ１のＭＩＤＩキーコード値のモジュロ１２を表わしている。
【００３４】
ここで、一例を挙げて説明する。例えば、コード演奏による複数押鍵の内、最低音ＫＣ１が「Ｂ2音（４７）」、第２低音ＫＣ２が「Ｆ3音（５３）」であったとする。そうすると、この場合、両音の音高差は「増４度」であり、ステップＳＥ４において（５）式よりルートＲＴが「７」、つまり、「Ｇ音」になり、そのコードタイプＣＴは「セブンス（7th)」となる。こうしてルートとコードタイプとが定まると、ＣＰＵ４はステップＳＥ６に処理を進め、レジスタＣＴに格納されるコードタイプＣＴとレジスタＲＴに格納されるルートＲＴとを読み出し、音源１０に送出して伴奏音を発音するよう指示する。これにより、音源１０では伴奏パターンメモリ９から順次読み出される伴奏パターンデータを、コードタイプＣＴおよびルートＲＴに応じて音高変換して伴奏音を生成する。
【００３５】
▲２▼音高差が完全４度以下の時
上述したステップＳＥ２において、音高差が「増４度」以外の場合には判断結果は「ＮＯ」となり、ステップＳＥ８に進む。ステップＳＥ８では、複数押鍵された鍵のうちから、最低音ＫＣ１、第２低音ＫＣ２および第３低音ＫＣ３を選択する。次いで、ステップＳＥ１０に進むと、ＣＰＵ４は選択した最低音ＫＣ１、第２低音ＫＣ２および第３低音ＫＣ３を、前述した（１）式および（２）式に代入し、音高差ＣＧ１，ＣＧ２を算出する。そして、次のステップＳＥ１２に進むと、最低音ＫＣ１と第２低音ＫＣ２との音高差が「完全４度以下」であるか、「完全５度以上」であるかを判断する。
【００３６】
ここで、音高差が「完全４度以下」の時には、非分数コードとなり、ステップＳＥ１４に進む。ステップＳＥ１４では、ステップＳＥ１０において算出した音高差ＣＧ１，ＣＧ２に基づいて図５に示す非分数コード判別テーブルＣＴ２をテーブル読み出しする。
ここで、例えば、複数押鍵された鍵の内、最低音ＫＣ１、第２低音ＫＣ２および第３低音ＫＣ３がそれぞれ「Ｅ2音（４０）」、「Ｇ2音（４３）」および「Ｃ3音（４８）」だとすると、ステップＳＥ１０の演算により、音高差ＣＧ１は「５」、音高差ＣＧ２は「３」となる。そして、これら値に基づき非分数コード判別テーブルＣＴ２（図５参照）をテーブル読み出しすると、コードタイプＣＴが「major」で、ルート変化値ＲＨが「−４」として読み出される。
【００３７】
こうして非分数コード判別テーブルＣＴ２からコードタイプＣＴおよびルート変化値ＲＨが読み出されると、ＣＰＵ４は次のステップＳＥ１６に進み、前述した（４）式に基づきルートＲＴを求めてレジスタＲＴにストアすると共に、非分数コード判別テーブルＣＴ２から読み出したコードタイプＣＴをレジスタＣＴにストアする。
したがって、この一例の場合、最低音ＫＣ１は「Ｅ2音（４０）」であるから、これのモジュロ１２にルート変化値ＲＨ「−４」を加算すると、ルートＲＴは「０」、音名ではＣ音となる。そして、この後、ステップＳＥ６に進み、求めたコードタイプＣＴとルートＲＴとを音源１０に送出して伴奏音を発音するよう指示する。
【００３８】
▲３▼音高差が完全５度以上の時
この場合、分数コードとなり、ステップＳＥ１２を介してステップＳＥ１８に進む。ステップＳＥ１８では、上記ステップＳＥ１０において算出した音高差ＣＧ１，ＣＧ２に基づいて図４に示す分数コード判別テーブルＣＴ１をテーブル読み出しする。
ここで、例えば、コード演奏に応じて複数押鍵された鍵の内、最低音ＫＣ１、第２低音ＫＣ２および第３低音ＫＣ３がそれぞれ「Ｅ2音（４０）」、「Ｃ3音（４８）」および「Ｇ3音（５５）」だとすると、音高差ＣＧ１は「５」、音高差ＣＧ２は「３」となる。そして、これら値に基づき分数コード判別テーブルＣＴ１（図４参照）をテーブル読み出しすると、コードタイプ「Ａb／Ｃ」が読み出される。
【００３９】
こうして分数コード判別テーブルＣＴ１からコードタイプが読み出されると、ＣＰＵ４は次のステップＳＥ２０に進み、前述した（３）式に基づきルートＲＴを求めてレジスタＲＴにストアすると共に、分数コード判別テーブルＣＴ１から読み出したコードタイプをレジスタＣＴにストアする。
したがって、上述した一例の場合、最低音ＫＣ１は「Ｅ2音（４０）」であるから、これのモジュロ１２を求めると、ルートＲＴは「４」、音名ではＥ音となる。
【００４０】
そして、次のステップＳＥ６に進むと、ＣＰＵ４はレジスタＣＴに格納されるコードタイプＣＴとレジスタＲＴに格納されるルートＲＴとを読み出し、音源１０に送出して伴奏音を発音するよう指示する。
結局、この一例の場合、ルートが「Ｅ音」で、コードタイプが「Ａb／Ｃ」なのだから、「Ｃ／Ｅ」なる分数コードが音源１０に与えられる。これにより、音源１０では伴奏パターンメモリ９から順次読み出される伴奏パターンデータを、コードタイプＣＴおよびルートＲＴに応じて音高変換して伴奏音を生成する。
【００４１】
以上のように、第２実施例によれば、コード演奏に応じて複数押鍵された鍵の内、最低音ＫＣ１と第２低音ＫＣ２との音高差に応じて分数コードであるか、非分数コードであるかを区別し、分数コードである場合には分数コード判別テーブルＣＴ１を、非分数コードである場合には非分数コード判別テーブルＣＴ２を参照してコード判別するので、演奏に際して分数コードと非分数コードとを意識することなく容易にコード演奏することが可能になる。
なお、上述した第１および第２実施例では、音高差ＣＧ１、ＣＧ２が共に５半音差までテーブルＣＴ１、ＣＴ２を用いているが、これに限定されず、６半音差以上のテーブルを定義しても良い。
【００４２】
【発明の効果】
本発明によれば、音高抽出手段が第１および第２の音域に分割された音高指定領域にてなされる演奏操作により指定される複数音高の内、最も低い音高の最低音と、当該最低音の次に低い第２最低音と、当該第２低音の次に低い第３低音とを抽出し、音高差発生手段がこの最低音、第２低音および第３低音のそれぞれ音名を所定の順序に並べ、その内の最も低い音名の第１の音名と、この第１の音名の次に低い第２の音名と、この第２の音名の次に低い第３の音名とを求める一方、前記第２の音名と前記第３の音名との音高差を表わす第１の音高差と、前記第１の音名と前記第２の音名との音高差を表わす第２の音高差とを発生する。そして、コード判別手段は、最低音が前記第１の音域内に含まれる場合、前記第１および第２の音高差と前記最低音に応じて分数コードのコード種類および根音を生成し、一方、最低音が前記第２の音域内に含まれる場合には、前記第１および第２の音高差と前記最低音に応じて非分数コードのコード種類および根音を生成し、伴奏音発生指示手段がこのコード判別手段により生成されるコード種類および根音に応じた伴奏音の発生を指示するので、分数コードと非分数コードとを意識せずに容易にコード演奏することができる。
【図面の簡単な説明】
【図１】本発明の第１実施例による電子楽器の外観を示す外観図である。
【図２】第１実施例の構成を示すブロック図である。
【図３】同実施例におけるパネルスイッチ３を説明するための図である。
【図４】同実施例における分数コード判別テーブルＣＴ１の内容を示す図である。
【図５】同実施例における非分数コード判別テーブルＣＴ２の内容を示す図である。
【図６】同実施例におけるメインルーチンの動作を説明するためのフローチャートである。
【図７】同実施例におけるスイッチ処理ルーチンの動作を説明するためのフローチャートである。
【図８】同実施例における鍵盤処理ルーチンの動作を説明するためのフローチャートである。
【図９】同実施例におけるコード判別処理ルーチンの動作を説明するためのフローチャートである。
【図１０】第２実施例によるコード判別処理ルーチンの動作を説明するためのフローチャートである。
【符号の説明】
２  鍵盤
２Ａ  分数コード判別鍵域（第１の音域）
２Ｂ  非分数コード判別鍵域（第２の音域）
４  ＣＰＵ（音高抽出手段、音高差発生手段、コード判別手段）
５  ＲＯＭ
６  ＲＡＭ
８  コード判別テーブルメモリ（コード判別手段）
【図１】
0003543158.tif 000002
【図２】
0003543158.tif 000003
【図３】
0003543158.tif 000004
【図４】
0003543158.tif 000005
【図５】
0003543158.tif 000006
【図６】
0003543158.tif 000007
【図７】
0003543158.tif 000008
【図８】
0003543158.tif 000009
【図９】
0003543158.tif 000010
【図１０】
0003543158.tif 000011