(57)【特許請求の範囲】
【請求項１】
コードタイプ毎に各弦の音高情報が格納された複数のコード転回データを記憶したコード転回テーブル手段と、
スタイル毎に使用する弦情報を記憶した弦指定テーブル手段と、
指定されたコード情報およびスタイルに基づき、弦指定テーブル手段から使用する弦情報を読み出し、コード転回テーブル手段から使用する弦の音高情報を読み出して出力するコード転回手段とを備えた自動伴奏手段を有することを特徴とする電子楽器。
【請求項２】
単一のコード転回テーブルのみを使用してコード転回を行う自動伴奏手段と、請求項１に記載された自動伴奏手段とを、音色に対応して選択動作させることを特徴とする電子楽器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は自動伴奏装置を備えた電子楽器に関し、特に弦楽器やハーモニカなど、鍵盤楽器とは異なるコード構成を有する音色において、より実際の楽器に近い和音で伴奏を行うことが可能な自動伴奏装置を備えた電子楽器に関するものである。
【０００２】
【従来の技術】
従来、電子ピアノやシンセサイザ等の電子楽器において、自動伴奏装置を備えたものが広く知られている。この自動伴奏装置は、例えばロックやワルツといったリズム毎に、例えばＣメジャーを基準として作成された伴奏パターンデータを予め記憶しておく。この伴奏パターンデータの各発音情報は、例えば図１１（ａ）に示すように、音の高さを表す音高データ、発音タイミングデータ、発音持続時間データ、音量データからなっている。そして、自動伴奏装置は、この伴奏パターンデータと、メジャー、マイナー等の和音の種類（コードタイプ）およびＣ、Ｄ、Ｅ等の根音（コードルート）からなるコード情報の列であるコード進行情報に基づき、伴奏用の発音データを生成するように構成されている。また、コード情報は、鍵盤から入力されるコード情報を検出することによってリアルタイムに指定することも行われている。
【０００３】
伴奏パターンデータとコード情報とに基づいて伴奏用の発音データを生成する方法としては、次の２つの方法が知られており、通常パート毎に２つの方法の内の１つが指定されて使用される。１つはノートシフトテーブルを使用したものであり、現在のコード情報のコードタイプに対応した音高変換データを検索し、その音高変換データによって伴奏パターンの発音データの音高を上下にシフトする方法である。もう１つは、自動伴奏中に発音する和音の音域が一定範囲に収まるような方法であり、予め記憶されているコード転回テーブルを使用し、発音中の音高等を参照して和音発生用のコードの転回形を選択する方法である。
自動伴奏パターンデータを作成する場合には、ドラム、ベース、コード１、コード２等複数のパートに分けて作成されるが、和音中心のパートや単音（メロディ）中心のパートがあるので、パート毎に最適なコード転回方法を選択して作成される。
【０００４】
【発明が解決しようとする課題】
従来の自動伴奏装置においては、和音中心に構成されるパートはコード転回テーブルを使用した転回方法が行われていたが、このテーブルは鍵盤楽器の和音の転回形を基に作成されていたので、ギター、スチールギター、マンドリン、三味線等の弦楽器や、ハーモニカなどのその他の和音構成で演奏される楽器のパートの伴奏を行うには適していないという問題点があった。また、鍵盤の和音は通常３〜４音によって構成されているのに対し、ギターのコードの構成音は最大６音によって構成されているので、従来のコード転回テーブルの構成音を組み替えただけではギターの構成音を発生できないという問題点もあった。
【０００５】
更に、ギターの和音は、同じコードでもスタイル（ジャンル）によって高音部の弦を中心に用いるもの、低音部の弦を中心に用いるもの、全部の弦を用いるものなど様々であり、また同じコードタイプでもコードルートによって構成音が異なるが、従来のコード転回テーブルを使用する方式では、スタイルやコードルートを考慮に入れたコード転回を行うことができないという問題点もあった。
本発明の目的は、前記のような従来技術の問題点を解決し、鍵盤楽器以外のパートの和音も適切に転回可能な自動伴奏装置を備えた電子楽器を提供することにある。
【０００６】
【課題を解決するための手段】
本発明は、コードタイプ毎に各弦の音高情報が格納された複数のコード転回データを記憶したコード転回テーブルと、スタイル毎に使用する弦情報を記憶した弦指定テーブルとを使用することによって、スタイルに対応した構成音を選択する構成に特徴がある。
【０００７】
本発明は、コードタイプ毎に各弦の音高情報が格納された複数のコード転回データを記憶したコード転回テーブルを使用してコード転回を行うので、スタイルに合った和音を簡単な構成で発生させることができる。
【０００８】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して詳細に説明する。図１は、本発明を適用した電子ピアノの構成を示すブロック図である。ＣＰＵ１は、ＲＯＭ２に格納されている制御プログラムに基づき、電子ピアノ全体の制御を行う中央処理装置である。ＣＰＵ１にはハードウェアタイマ割り込み回路も設けられている。ＲＯＭ２には制御プログラム、音色パラメータ、自動伴奏用の伴奏パターンデータ等が記憶されている。音色パラメータには波形メモリに記憶されている楽音波形のアドレス情報、エンベロープ制御情報等がある。
【０００９】
ＲＡＭ３はワークエリアおよびバッファとして使用され、使用者が書き込んだ伴奏パターンやコード進行情報も記憶される。また、バッテリ等によりバックアップされていてもよい。パネル回路４は、音色選択などのための各種スイッチおよび液晶やＬＥＤにより文字等を表示する表示装置からなり、パネルインターフェース回路５によりバス１３に接続されている。鍵盤６は、例えばそれぞれ２つのスイッチを備えた複数の鍵から成り、鍵盤インターフェース回路７は、各鍵のスイッチの状態をスキャンし、その状態変化を検出してキーイベント情報やタッチ情報を生成する。
【００１０】
音源回路８は、例えば波形読み出し方式により所望の楽音信号を発生する回路であり、デジタル楽音波形サンプル値が記憶されている波形メモリ９から、発音すべき音高に比例したアドレス間隔で順次波形データを読み出し、補間演算を行って楽音波形信号を発生させる。また、エンベロープ発生回路を有し、設定されたエンベロープパラメータに基づいて発生したエンベロープ信号を楽音波形信号に乗算してエンベロープを付与し、楽音信号を出力する。音源回路８は、複数（例えば３２）の楽音発生チャネルを有しているが、実際には、１つの楽音発生回路を時分割多重動作させることにより、同時に複数の楽音信号を独立して発生可能に構成されている。
【００１１】
Ｄ／Ａ変換器１０はデジタル楽音信号をアナログ信号に変換し、アンプ１１によって増幅された楽音信号はスピーカ１２から発音される。バス１３は電子ピアノ内の各回路を接続している。なお、必要に応じて、ＭＩＤＩインターフェース回路、メモリカードインターフェース回路、フロッピィディスク装置等を備えていてもよい。
【００１２】
図６は、ＣＰＵ１のメイン処理を示すフローチャートである。電源が投入されると、ステップＳ１においては装置内のＲＡＭ３や音源回路８内のデータ設定状態を初期状態に戻す。ステップＳ２においては鍵盤インターフェース回路７からキーオンあるいはキーオフの鍵盤イベントの発生が通知されたか否かが判定され、鍵盤イベントが発生していた場合には、ステップＳ３においてそれぞれ対応する処理を行う。
【００１３】
ステップＳ４においては、パネル４の各種スイッチの状態変化があったか否かが判定され、状態変化が検出された場合にはステップＳ５において対応する処理を行う。ステップＳ６においては、周知のコード検出処理が行われる。このコード検出処理においては、例えば鍵盤を２つの領域に分割し、左側の領域でキーオンされている鍵のパターンからコードを検出する。ステップＳ７においては、ステップＳ６においてコードが検出されたか否かが判定され、結果が肯定の場合にはステップＳ８に移行して、後述するコード更新処理を行う。
【００１４】
ステップＳ９においては自動伴奏中か否かが判定され、結果が否定の場合にはステップＳ２２に移行するが、肯定の場合にはステップＳ１０に移行する。ステップＳ１０においては、ステップ処理済みか否か、即ち自動伴奏用のステップカウンタが後述するタイマ割り込み処理によって更新された場合における自動伴奏パターンデータのチェックが済んでいるか否かが判定され、結果が否定の場合にはステップＳ１１に移行する。
【００１５】
ステップＳ１１においてはステップ処理フラグをリセットし、ステップＳ１２においては次に発音すべき伴奏パターン中の発音データを１つ読み出す。ステップＳ１３においては、まず、現在発音中のチャネルに対応するゲートカウンタを全て１だけ減算する。発音情報は、図１１（ａ）に示すように、全て発音継続時間情報であるゲートタイムデータを有しており、発音開始時にこのデータが発音チャネルに対応するゲートカウンタにセットされている。ステップＳ１４においてはゲートカウンタの値が０であるチャネルが有るか否かが判定され、結果が肯定の場合にはステップＳ１５に移行して、該チャネルの消音処理を行う。
【００１６】
ステップＳ１６においては、ステップＳ１２において読み出した発音データのステップタイムデータ（発音タイミングデータ）とステップカウンタの値とが一致するか否かが判定され、一致する場合にはステップＳ１７に移行する。ステップＳ１７においては発音データがギターパートのデータであるか否かが判定され、結果が肯定の場合にはステップＳ１８に移行するが、否定の場合にはステップＳ１９に移行する。
【００１７】
ステップＳ１８においては、ギター用のコード構成音データを参照して、伴奏パターンの発音データの音高が変更される。またステップＳ１９においては、鍵盤用のコード構成音データを参照して、伴奏パターンの発音データの音高が変更される。
図５は、鍵盤用およびギター用のコード構成音データを格納するエリアを示す説明図である。このエリアには、後述するコード更新処理において、現在のコード情報に基づき、鍵盤パート及びギターパートそれぞれについて４個のコード構成音が設定される。ステップＳ１８あるいはＳ１９においては、発音データと該コード構成音のいずれかが一致しない場合には、コード構成音に一致するように音高が変更される。
【００１８】
ステップＳ２０においては自動伴奏用の発音データについて発音処理が行われ、空きチャネルが割り当てられ、発音パラメータがセットされて発音が開始される。ステップＳ２０においては、消音タイミングを計測するために、該発音データのゲートタイムデータが発音チャネル対応のゲートカウンタにセットされる。ステップＳ２２においては、自動演奏処理、ＭＩＤＩ処理、音響効果付与処理等の処理が実行される。
【００１９】
図７は、本発明に関するタイマ割り込み処理の内容を示すフローチャートである。この処理は、所定の周期で発生するハードウェアタイマ割り込みにより起動される。ステップＳ３０においてはステップカウンタに１が加算される。ステップＳ３１においてはステップカウンタ値が所定値Ｌ以上になったか否かが判定され、結果が肯定の場合にはステップＳ３２に移行して、ステップカウンタをリセットする。ステップＳ３３においてはステップカウンタが更新されたので、図６のステップＳ１１以降のステップ処理が必要であることを示すステップ処理フラグをセットする。
【００２０】
図８は、図６のステップＳ８のコード更新処理の内容を示すフローチャートである。ステップＳ４０においては、ステップＳ６において検出されたコード情報に基づき、自動伴奏用のコードルート、コードタイプデータを更新する。ステップＳ４１においては変数ｋを０にリセットする。以下の処理においては、このｋが０である場合には鍵盤パートのコード構成音決定処理が行われ、またｋが１である場合にはギターパートのコード構成音決定処理が行われる。
【００２１】
ステップＳ４２においては、ｋが２より小さいか否かが判定され、結果が否定の場合には処理を終了するが、肯定の場合にはステップＳ４３に移行する。ステップＳ４３においてはｋが１か否かが判定され、結果が肯定の場合にはステップＳ４５に移行するが、否定の場合にはステップＳ４４に移行する。
ステップＳ４４においては鍵盤パート用のコード構成音を決定するために、図２に示す鍵盤パート用のコード転回テーブルの該当するコードタイプ欄を検索し、各転回型ｉ0〜ｉnにおける最高音をそれぞれ読み出す。図２は、鍵盤パート用のコード転回テーブルの例を示す説明図である。このテーブルには、各コード名（コードタイプ）毎に複数のコード転回型ｉ0〜ｉnのコード構成音ＫＮ（…）が登録されている。
【００２２】
一方、ステップＳ４５においてはギターパートのコード構成音を決定するために、まず予め設定されている音楽のスタイルに基づき、弦指定テーブルから使用する弦の情報を読み出す。図４は弦指定テーブルの例を示す説明図である。このテーブルには、音楽の各スタイル毎に伴奏に使用する弦の番号を予め登録してある。例えばスタイル１においては１〜４の弦を使用し、スタイル２においては３〜６の弦を使用する。
【００２３】
ステップＳ４６においては、図３に示すギター用のコード転回テーブルの該当するコードタイプ欄を検索し、各転回型ｉ0〜ｉn毎に当該スタイルにおける使用弦の最高音をそれぞれ読み出す。図３は、ギターパート用のコード転回テーブルの例を示す説明図である。このテーブルには、各コード名（コードタイプ）毎に複数のコード転回型ｉ0〜ｉnの弦毎のコード構成音ＫＮ（…）が登録されている。
【００２４】
ステップＳ４７以降の処理は、複数のコード転回型の中から所定の規則に基づいて１つの転回型を決定する処理であり、この実施例においては最高音がなるべく変化しないような転回型を選択する方式を採用しているが、他の任意の規則を採用することも可能である。
【００２５】
ステップＳ４７においては、コードの各転回型の最高音［ｉ0〜ｉn］にコードルートの基準コード（例えばＣ）からの相対距離値を加算する。ステップＳ４８においては、予め設定されている基準最高音と前回のコードの最高音が不一致であるか否かが判定され、結果が否定、即ち一致していた場合にはステップＳ４９に移行し、ステップＳ４９〜５２の処理において、今回の転回型の中から最高音が前回と同じものを検索する。そして、もし前回の最高音と同じ最高音の転回型が有った場合にはステップＳ５１からステップＳ０に移行するが、一致するものが無かった場合にはステップＳ５０からステップＳ５３に移行する。ステップＳ５３〜５９においては、各転回型の中で、最高音が基準最高音に最も近いものを選択し、ステップＳ５４からステップＳ６０に移行した時点における変数ｉが選択された転回型の番号を表している。
【００２６】
ステップＳ６０においては、ｋの値に基づき、対応するコード転回テーブルの該当するコードタイプ欄を参照し、ｉ番目のコード転回型のコード構成音データを読み出す。ステップＳ６１においては、読み出した構成音データにコードルートの基準コードからの相対距離値を加算する。ステップＳ６２においては、ｋの値に基づいて図５に示すコード転回用音名バッファの該当するパートのエリアに構成音データを書き込み、ステップＳ６３においてはｋに１を加算してステップＳ４２に移行する。
【００２７】
以上のような処理により、コードが変化する度に、各パートに対応する、図５に示すコード転回用構成音バッファの内容が更新され、このバッファの内容に基づいて、各パートの自動伴奏パターンが変更されて発音されるので、各パート毎に最適なコード構成音による伴奏が可能となる。
【００２８】
本発明では、曲のスタイルによって使用する弦を選択している。図９に示すように、各スタイル毎にコード転回型テーブルを独立して設けるようにすることも考えられるが、多くのコード転回型テーブルを用意する必要がある。
【００２９】
ギター等のコードのローコードにおける構成音は、例えば同じメジャーコードでもコードルートによって異なっている。従って、上記実施例のような、１つのコード転回テーブルのデータをコードルートに従って移調する処理では、ギターのコードを忠実に表現できないが、図１０に示すように、コードルート毎に独立したコード転回テーブルを設けるようにすれば、同じメジャーコードであっても、ルート毎に異なるパターンのコード構成音データを設定することが可能となり、ギター等のコードを忠実に表現することが可能となる。
【００３０】
更に、図１１（ｂ）に示すように、伴奏パターンデータの発音データとして、キーナンバの代わりに弦ナンバ／ポジションデータを記憶するようにして、コード転回時には図５のコード構成音バッファを参照して、対応する弦ナンバの構成音データに変換して発音するようにすることも考えられるが、発音データを記憶させるのに手間がかかる。
【００３１】
以上、実施例を説明したが、次に示すような変形例も考えられる。実施例では鍵盤からコードをリアルタイムで入力する例を開示したが、コード進行情報を予め入力しておき、テンポカウンタによって自動的にコードを更新するようにしてもよい。
【００３３】
【発明の効果】
以上述べたように、本発明においては、コードタイプ毎に各弦の音高情報が格納された複数のコード転回データを記憶したコード転回テーブルを使用してコード転回を行うので、スタイルに合った和音を簡単な構成で発生させることができるという効果がある。
【図面の簡単な説明】
【図１】本発明を適用した電子ピアノの構成を示すブロック図である。
【図２】鍵盤パート用のコード転回テーブルの例を示す説明図である。
【図３】ギターパート用のコード転回テーブルの例を示す説明図である。
【図４】弦指定テーブルの例を示す説明図である。
【図５】コード構成音データを格納するエリアを示す説明図である。
【図６】ＣＰＵ１のメイン処理を示すフローチャートである。
【図７】タイマ割り込み処理の内容を示すフローチャートである。
【図８】コード更新処理の内容を示すフローチャートである。
【図９】他のコード転回テーブルを示す説明図である。
【図１０】他のコード転回テーブルを示す説明図である。
【図１１】伴奏パターンを構成する発音データ例を示す説明図である。
【図１】
0003661963.tif 000002
【図２】
0003661963.tif 000003
【図３】
0003661963.tif 000004
【図４】
0003661963.tif 000005
【図５】
0003661963.tif 000006
【図６】
0003661963.tif 000007
【図７】
0003661963.tif 000008
【図８】
0003661963.tif 000009
【図９】
0003661963.tif 000010
【図１０】
0003661963.tif 000011
【図１１】
0003661963.tif 000012