(57)【特許請求の範囲】
【請求項１】
コード伴奏のための音符データ及び他の伴奏のための音符データを特定のコードに対応する基準自動伴奏データとして記憶するとともに、前記特定のコード以外の他のコードが指定されたときに、この基準自動伴奏データの音高を変換するための第１の変換テーブル及び第２の変換テーブルを記憶する記憶手段と、
前記基準自動伴奏データの音符データの音符長が所定の音符長を超えているか否かを判定する判定手段と、
前記判定手段により音符データの音符長が所定の音符長を超えていると判定されたときは、当該音符データの音高を前記第１の変換テーブルにより変換し、当該音符データの音符長が所定の音符長を超えていないと判定されたときは、当該音符データの音高を前記第２の変換テーブルにより変換するデータ変換手段と、
を備えたことを特徴とする自動伴奏装置。
【請求項２】
前記データ変換手段は、前記基準自動伴奏データの音符データの音符長が前記所定の音符長を超えている場合において、当該音符データの音高が所定の音高以下であるときは当該音符データの音高を前記第２の変換テーブルにより変換することを特徴とする請求項１に記載の自動伴奏装置。
【請求項３】
前記データ変換手段は、前記基準自動伴奏データの音符データの音高、前記指定されたコードのルート値、及び、前記第１の変換テーブル又は前記第２の変換テーブルの値を加算した値を、発音される自動伴奏音の音高とすることを特徴とする請求項１又は２に記載の自動伴奏装置
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
この発明は、メロディラインの演奏の際に、自動的に伴奏音を発生させる自動伴奏装置に関する。
【０００２】
【従来の技術】
自動伴奏装置においては、基準となる特定のコード例えばＣメジャーのコードに対応する基準自動伴奏データを他のコードに対応する自動伴奏データに変換する変換データをメモリに記憶し、特定のコード以外の他のコードが指定されたときは、この変換データにより基準自動伴奏データの音符データをその指定されたコードに対応する自動伴奏データの音符データに変換して音源手段に出力している。したがって、特定のコードに対応する基準自動伴奏データのみを記憶しておくだけで、他のコードに対応する自動伴奏データについては、この変換データによってその都度作成できるため、メモリの記憶容量を大幅に削減することができる。
【０００３】
【発明が解決しようとする課題】
しかしながら、基準自動伴奏データの音符データの中には、コード伴奏のための音符データの他に、ベース伴奏やメロディラインを引き立たせるオブリガート伴奏等の他の伴奏のための音符データを含んでいる場合もあるので、コード伴奏のための音符データと他の伴奏の音符データを同じように変換すると、変換後の自動伴奏の音楽性が崩れてしまうという問題があった。
この発明の課題は、基準自動伴奏データの中にコード伴奏のための音符データの他にコード伴奏以外の音符データがある場合でも、変換後の自動伴奏の音楽性が崩れないようにすることである。
【０００４】
【課題を解決するための手段】
この発明は、コード伴奏のための音符データ及び他の伴奏のための音符データを特定のコードに対応する基準自動伴奏データとして記憶するとともに、前記特定のコード以外の他のコードが指定されたときに、この基準自動伴奏データの音高を変換するための第１の変換テーブル及び第２の変換テーブルを記憶する記憶手段と、
前記基準自動伴奏データの音符データの音符長が所定の音符長を超えているか否かを判定する判定手段と、
前記判定手段により音符データの音符長が所定の音符長を超えていると判定されたときは、当該音符データの音高を前記第１の変換テーブルにより変換し、当該音符データの音符長が所定の音符長を超えていないと判定されたときは、当該音符データの音高を前記第２の変換テーブルにより変換するデータ変換手段と、
を備えた構成になっている。
したがって、この発明によれば、いずれの伴奏のための音符データかを音符長に応じて振り分けることにより、特定のコードに対応する基準自動伴奏データを他のコードに対応した自動伴奏データに変換する場合に、コード伴奏のための音符データと他の伴奏のための音符データとを別個の変換テーブルにより変換するので、変換後の自動伴奏の音楽性が崩れない。
【０００５】
【発明の実施の形態】
以下、図１〜図１０を参照してこの発明の実施形態を説明する。
図１にこの実施形態における自動伴奏装置のシステム構成を示す。マイコン１は、システムバスを介して接続されている以下の各部を制御するとともに、後述するように、音符データを変換するためのデータ変換手段を構成する。鍵盤２は、押鍵操作に応じて音高データ、音符長データ、ベロシティデータをマイコン１に入力する。コード（和音）を指定する場合には、複数の鍵を一度に押鍵して複数の音高データを同時にマイコン１に入力する。スイッチ群３は、音色スイッチや自動伴奏スイッチ等の各種スイッチ（図示せず）を備えている。音源４は、マイコン１から与えられる音高データ、音符長データ等のイベントデータに応じて楽音信号を発生してサウンドシステム（図示せず）に出力する。
【０００６】
伴奏データメモリ５は、各種の基準自動伴奏データ（オリジナル自動伴奏データ）を記憶している。基準自動伴奏データとしては、図２に示すように、リズムパート、ベース／コードパートＡ、ベース／コードパートＢ、ベース／コードパートＣがある。各ベース／コードパートは、ｎ個の音符データからなるイベントデータで構成されている。これら４つのパートのイベントデータは、それぞれアドレスレジスタＡＤ１〜ＡＤ４のアドレスを基に読み出される。この基準自動伴奏データは、特定のコードタイプ（この場合は、メジャー）及び特定のコードルート（この場合は、Ｃ）からなる特定のコードに対応しており、他のコードに対応する自動伴奏データはこの基準自動伴奏データを変換して作成する。
【０００７】
基準自動伴奏データの音符データ１〜ｎは、それぞれ音高及び音符長のデータで構成されている。この場合において、最初のイベントデータ（この場合、音符１のデータ）の前には発音処理の時間的な余裕をもたせるべくＮＯＰのデータがセットされている。
【０００８】
コード判別メモリ６は、メジャーコード、マイナーコード、７ｔｈコード、ｓｕｓ４コード等のコードタイプ及びＣ、Ｃ＃、Ｄ、…Ｂのコードルートからなる種々のコード（Ｃ、Ｃｍ、Ｃ７等）のデータを記憶しているメモリであり、押鍵操作により入力された音符データがコードであるか否かを判別するために参照されるメモリである。このコード判別についてはさらに後述する。タイマ７は、基準クロックを計数して、一定時間ごとにマイコン１にタイマインタラプトをかける。
【０００９】
次に、この実施形態の動作について、マイコン１によって実行されるプログラムのフローチャートを参照して説明する。
図３に示すメインフローにおいて、所定のイニシャライズ処理（ステップＳ０）をした後、スイッチ処理（ステップＳ１）、鍵盤処理（ステップＳ２）、自動伴奏処理（ステップＳ３）を順に実行するループに入る。イニシャライズ処理では、タイマインタラプトを禁止するとともに、後述するスイッチフラグＳＦを「０」にリセットする。
【００１０】
ステップＳ１のスイッチ処理においては、図４に示すように、自動伴奏スイッチがオンされたか否かを判別し（ステップＳ１１）、オンされない場合には図３のメインフローに戻り、オンされた場合にはスイッチフラグＳＦを反転する（ステップＳ１２）。自動伴奏スイッチは、オンされるごとに自動伴奏状態（ＳＦ＝１）又はマニュアル伴奏状態（ＳＦ＝０）の一方の状態から他方の状態に反転させるトグルスイッチを構成している。
【００１１】
次に、このＳＦが「１」であるか否かを判別する（ステップＳ１３）。ＳＦ＝１である場合には、伴奏データメモリ５の各ベース／コードパートに対応したアドレスレジスタＡＤ１〜４に初期値である各パートの最初のアドレスをセットし、タイマインタラプトにより値がデクリメントされるタイマレジスタＴ１〜Ｔ４に初期値である待ち時間Ｔ０をセットする（ステップＳ１４）。そして、タイマインタラプト禁止を解除する（ステップＳ１５）。この後、図３のメインフローに戻る。一方、ステップＳ１３においてＳＦ＝０の場合にはタイマインタラプトを禁止して（ステップＳ１６）、図３のメインフローに戻る。
【００１２】
メインフローのステップＳ２の鍵盤処理においては、図５に示すように、鍵盤２の変化を判別し（ステップＳ２１）、変化がない場合には図３のメインフローに戻るが、オフからオンに鍵変化があった場合には、コード判別メモリ６を参照する（ステップＳ２２）。そして、入力された音高データがコードであるかメロディであるかを判別する（ステップＳ２３）。音高データがメロディの場合には、その音高データに基づく発音処理をして（ステップＳ２４）、図３のメインフローに戻る。
【００１３】
一方、入力された音高データがコード判別メモリ６のいずれかのコードに該当する場合には、そのコードのコードタイプをレジスタＣＴに、コードルートをレジスタＣＲにそれぞれセットする（ステップＳ２５）。そして、図３のメインフローに戻る。
また、鍵変化がオンからオフである場合には、消音処理をして（ステップＳ２６）、図３のメインフローに戻る。
【００１４】
メインフローのステップＳ３の自動伴奏処理においては、図６に示すように、自動伴奏スイッチの状態を示すスイッチフラグＳＦが「１」であるか否かを判別する（ステップＳ３１）。ＳＦ＝１でない場合には、図３のメインフローに戻る。ＳＦ＝１である場合には、リズムパート処理（ステップＳ３２）、ベース／コードパートＡ処理（ステップＳ３３）、ベース／コードパートＢ処理（ステップＳ３４）、ベース／コードパートＣ処理（ステップＳ３５）を行う。これらの処理の後、図３のメインフローに戻る。リズムパート処理は、ベース／コードパート処理と並行して実行される処理であるが、その説明は省略する。各ベース／コードパート処理については、いずれも複数のチャンネルにおける同じルーチンのポリフォニック処理であるので、ここではベース／コードパートＡ処理についてのみ詳細に説明する。
【００１５】
図７のベース／コードパートＡ処理において、タイマレジスタＴ２が「０」であるか否かを判別する（ステップＳ４１）。図４のスイッチ処理のステップＳ１４で待ち時間Ｔ０がセットされたタイマレジスタＴ２は、タイマ８から一定時間ごとに入るインタラプトに応じて、図８に示すインタラプト処理のステップＳ６２においてデクリメントされる。なお、リズムパート、ベース／コードパートＢ及びベース／コードパートＣにおいても、図８のステップＳ６１、ステップＳ６３及びステップＳ６４において、タイマレジスタＴ１、Ｔ３及びＴ４がそれぞれデクリメントされる。
【００１６】
図７のステップＳ４１においてＴ２＝０でない場合には、アドレスレジスタＡＤ２にセットされたアドレスが最初のアドレスであり、そのアドレスのデータが待ち時間のデータＮＯＰであるので音符１のイベント処理は行わず、図３のメインフローに戻る。一方、所定回数のタイマインタラプトによってＴ２＝０になった場合には、ＡＤ２をインクリメントして（ステップＳ４２）、ＡＤ２のアドレスの音高のデータをレジスタＣＣにセットする（ステップＳ４３）。さらに、ＡＤ２をインクリメントして（ステップＳ４４）、ＡＤ２のアドレスの音符長のデータをレジスタＴ２にセットする（ステップＳ４５）。
【００１７】
次に、タイマレジスタＴ２にセットした音符長が所定の音符長２４を超えているか否かを判別する（ステップＳ４６）。この場合、４分音符の音符長が４８であるので、所定の音符長２４はその半分の値、すなわち８分音符の音符長である。Ｔ２にセットした音符長が所定の音符長２４を超えている場合には、レジスタＣＣにセットした音高が所定の音高Ｃ３を超えているか否かを判別する（ステップＳ４７）。音高が所定の音高Ｃ３を超えている場合には、変換テーブル１によるデータ変換を行う（ステップＳ４８）。
【００１８】
変換テーブル１は、図９（１）に示すように、Ｃメジャーを特定のコードとし、この特定のコードに対応する基準自動伴奏データのコード伴奏のための音符データを他のコードの自動伴奏データのコード伴奏のための音符データに変換するための第１の変換データをもつテーブルである。
【００１９】
一方、図７のステップＳ４６においてＴ２にセットされた音符長が所定の音符長２４以下である場合、又はステップＳ４７においてＣＣにセットされた音高が所定の音高Ｃ３以下である場合には、変換テーブル２によるデータ変換を行う（ステップＳ４９）。
【００２０】
変換テーブル２は、図９（２）に示すように、Ｃメジャーを特定のコードとし、この特定のコードに対応する基準自動伴奏データのベース伴奏やオブリガート伴奏等のコード伴奏以外の伴奏の音符データを他のコードに対応する自動伴奏データの音符データに変換するための第２の変換データをもつテーブルである。
【００２１】
変換テーブル１及び変換テーブル２における変換データは、図９（１）（２）に示すように、Ｃメジャーのコードの音符の音高を基準値０としたときの偏差値で構成されている。図７のステップＳ４８におけるデータ変換においては、図２に示す伴奏データメモリ５のベース／コードパートＡの基準自動伴奏データと、レジスタＣＲのコードルートと、変換テーブル１における変換データとを加算した値を新たな自動伴奏データの音符の音高とする。また、図７のステップＳ４９におけるデータ変換においては、図２に示す伴奏データメモリ５のベース／コードパートＡの基準自動伴奏データと、レジスタＣＲのコードルートと、変換テーブル２における変換データとを加算した値を新たな自動伴奏データの音符の音高とする。そして、この新たな音高の自動伴奏データを音源４に送出する（ステップＳ５０）。
【００２２】
この後、図２に示すベース／コードパートＡのイベントデータが終了するまで、順に音符２、…、音符ｎについて、図７のステップＳ４１〜ステップＳ５０の処理を実行する。
【００２３】
例えば、図１０（１）に示すような、オリジナル自動伴奏データすなわちＣメジャーのコードに対応する基準自動伴奏データを、他のコードであるＣｍコード（コードルート＝０）及びＣ７コード（コードルート＝０）に対応する自動伴奏データに変換する例について説明する。
【００２４】
１小節目における１拍目の音符データ（Ｃ２）の音符長は４８であり、所定の音符長２４を超えているので、図７のステップＳ４６においてＹＥＳと判別される。さらに、この音符データの音高は所定の音高Ｃ３以下であるので、ステップＳ４７においてＮＯと判別される。したがって、この音符データはベース伴奏の音符データとして変換テーブル２によりＣｍコード及びＣ７コードに対応する自動伴奏データの音符データに変換される。変換テーブル２によれば、Ｃの音高におけるＣｍコード及びＣ７コードの変換データはともに０である。また、Ｃｍコード及びＣ７コードのコードルートはともに０であるので、図１０（２）及び（３）に示すように、Ｃメジャーのコードの基準自動伴奏データの音符データがそのままＣｍコード及びＣ７コードのベース伴奏のための音符データとなる。
【００２５】
次に、１小節目における２拍目の音符データ（Ｇ３、Ｃ４、Ｅ４）の音符長はともに４８で所定の音符長２４を超えているので、図７のステップＳ４６においてＹＥＳと判別される。さらに、この音符データの音高はすべて所定の音高Ｃ３を超えているので、ステップＳ４７においてＹＥＳと判別される。したがって、この音符データはコード伴奏のための音符データとして変換テーブル１よりＣｍコード及びＣ７コードに対応する自動伴奏データの音符データに変換される。変換テーブル１によれば、Ｇ、Ｃ、ＥのＣｍコードのコードタイプの変換データは０、０、−１であり、Ｃｍコードのコードルートは０であるので、Ｅ４の音高が１半音だけ低くなり、図１０（２）に示すように、（Ｇ３、Ｃ４、Ｅ４♭）のコード伴奏の音符データに変換される。一方、Ｇ、Ｃ、ＥのＣ７コードのコードタイプの変換データは０、−２、０であり、Ｃ７コードのコードルートは０であるので、Ｃ４の音高が２半音だけ低くなり、図１０（３）に示すように、（Ｇ３、Ｂ３♭、Ｅ４）のコード伴奏の音符データに変換される。
【００２６】
次に、１小節目における３拍目の音符データ（Ｇ２）の音符長は４８で所定の音符長２４を超えているので、図７のステップＳ４６においてＹＥＳと判別される。さらに、この音符データの音高は所定の音高Ｃ３以下であるので、ステップＳ４７においてＮＯと判別される。したがって、この音符データはベース伴奏の音符データとして変換テーブル２によりＣｍコード及びＣ７コードに対応する自動伴奏データの音符データに変換される。変換テーブル２によれば、Ｇの音高におけるＣｍコード及びＣ７コードの変換データはともに０である。また、Ｃｍコード及びＣ７コードのコードルートはともに０であるので、図１０（２）及び（３）に示すように、Ｃメジャーのコードに対応する基準自動伴奏データの音符データがそのままＣｍコード及びＣ７コードのベース伴奏の音符データとなる。
【００２７】
次に、１小節目における４拍目の音符データ（Ｇ３、Ｂ３、Ｅ４）の音符長はともに４８で所定の音符長２４を超えているので、図７のステップＳ４６においてＹＥＳと判別される。さらに、この音符データの音高は所定の音高Ｃ３を超えているので、ステップＳ４７においてＹＥＳと判別される。したがって、この音符データはコード伴奏のための音符データとして変換テーブル１よりＣｍコード及びＣ７コードに対応する自動伴奏データの音符データに変換される。変換テーブル１によれば、Ｇ、Ｂ、ＥのＣｍコードのコードタイプの変換データは０、１、−１であり、Ｃｍコードのコードルートは０であるので、Ｂ３の音高が１半音だけ高くＥ４の音高が１半音だけ低くなり、図１０（２）に示すように、（Ｇ３、Ｃ４、Ｅ４♭）のコード伴奏のための音符データに変換される。一方、Ｇ、Ｂ、ＥのＣ７コードのコードタイプの変換データは０、−１、０であり、Ｃ７コードのコードルートは０であるので、Ｂ３の音高が１半音だけ低くなり、図１０（３）に示すように、（Ｇ３、Ｂ３♭、Ｅ４）のコード伴奏の音符データに変換される。
【００２８】
次に、２小節目における３拍目以降の音符データ（Ｇ２）、（Ｂ３、Ｄ４）、（Ｄ４、Ｆ４）、（Ｃ４、Ｅ４）の音符データの音符長はともに２４で所定の音符長２４と同じであるので、図７のステップＳ４６においてＮＯと判別される。したがって、これらの音符データは変換テーブル２によりオブリガート伴奏の音符データとしてＣｍコード及びＣ７コードに対応する自動伴奏データの音符データに変換される。変換テーブル２によれば、Ｇ、Ｂ、Ｄ、Ｆ、Ｃ、ＥのＣｍコードのコードタイプの変換データは０、−１、０、０、０、−１であり、Ｃｍコードのコードルートは０であるので、Ｂ３及びＥ４の音高がそれぞれ１半音だけ低くなり、図１０（２）に示すように、（Ｇ２）、（Ｂ３♭、Ｄ４）、（Ｄ４、Ｆ４）、（Ｃ４、Ｅ４♭）のオブリガート伴奏の音符データに変換される。
【００２９】
一方、変換テーブル２によれば、Ｇ、Ｂ、Ｄ、Ｆ、Ｃ、ＥのＣ７コードのコードタイプの変換データは０、−１、０、０、０、０であり、Ｃ７コードのコードルートは０であるので、Ｂ３の音高が１半音だけ低くなり、図１０（３）に示すように、（Ｇ２）、（Ｂ３♭、Ｄ４）、（Ｄ４、Ｆ４）、（Ｃ４、Ｅ４）のオブリガート伴奏の音符データに変換される。
【００３０】
このように上記実施形態によれば、伴奏データメモリ５は、コード伴奏のための音符データ及びベース伴奏やオブリガート伴奏等の他の伴奏のための音符データを特定のコードに対応する基準自動伴奏データとして記憶しているとともに、この基準自動伴奏データを変換する変換テーブル１及び変換テーブル２を記憶している。マイコン１は、特定のコードが指定されたときは基準自動伴奏データを音源４に出力する。そして、他のコードが指定されたときはコード伴奏のための音符データを変換テーブル１によりその指定されたコードのコード伴奏の音符データに変換し、他の伴奏のための音符データを変換テーブル２によりその指定されたコードの他の伴奏のための音符データに変換する。したがって、基準自動伴奏データの中にコード伴奏のための音符データの他にコード伴奏以外の音符データがある場合でも、変換後の自動伴奏の音楽性が崩れない。
【００３１】
なお、上記実施形態においては、基準自動伴奏データの音符の音符長が所定の音符長を超えている条件、及びその音符の音高が所定の音高を超えている条件の２つの条件を満足する場合に変換テーブル１により変換を行い、いずれか一方の条件でも満足しない場合には変換テーブル２により変換を行うようにしたが、いずれか一方の条件でも満足する場合には変換テーブル１により変換を行い、いずれの条件も満足しない場合に変換テーブル２により変換を行うようにしてもよい。
【００３２】
【発明の効果】
この発明によれば、特定のコードに対応する基準自動伴奏データを他のコードデータの自動伴奏データに変換する場合に、コード伴奏のための音符データと他の伴奏のための音符データとを別個の変換データにより変換するので、変換後の自動伴奏の音楽性が崩れないという効果が得られる。
【図面の簡単な説明】
【図１】この発明の実施形態における自動伴奏装置のシステム構成を示すブロック図。
【図２】図１における伴奏データメモリに記憶されているデータ構成を示す図。
【図３】実施形態の動作を示すマイコンのメインフローチャート。
【図４】図３におけるスイッチ処理を示すフローチャート。
【図５】図３における鍵盤処理のフローチャート。
【図６】図３における自動伴奏処理のフローチャート。
【図７】図６の自動伴奏処理におけるベース／コードパートＡのフローチャート。
【図８】タイマインタラプト処理のフローチャート。
【図９】図１の伴奏データメモリの変換テーブル１及び２を示す図。
【図１０】この発明における音符データ変換の例を示す図。
【符号の説明】
１  マイコン
２  鍵盤
３  スイッチ群
４  音源
５  伴奏データメモリ
６  コード判別メモリ
７  タイマ
【図１】
0003671267.tif 000002
【図２】
0003671267.tif 000003
【図３】
0003671267.tif 000004
【図４】
0003671267.tif 000005
【図５】
0003671267.tif 000006
【図６】
0003671267.tif 000007
【図７】
0003671267.tif 000008
【図８】
0003671267.tif 000009
【図９】
0003671267.tif 000010
【図１０】
0003671267.tif 000011