(57)【特許請求の範囲】
【請求項１】
１つのリズムの基本的な伴奏パターンとして使用されるベーシックパターンに含まれる複数のベーシックバリエーションパターンのそれぞれのパート構成を入力装置の操作に基づいて設定するパート設定手段と、
該パート設定手段によってパート構成が設定された前記複数のベーシックバリエーションパターンの中から１つのベーシックバリエーションパターンを入力装置の操作に基づいて選択するベーシック選択手段と、
前記１つのリズムの補助的な伴奏パターンとして使用される補助パターンに含まれる複数の補助バリエーションパターンの中から１つの補助バリエーションパターンを入力装置の操作に基づいて選択する補助選択手段と、
前記１つの補助バリエーションパターンのパート構成を、該ベーシック選択手段で選択されたベーシックバリエーションパターンのパート構成に対応するように自動的に決定するパート決定手段と、
前記ベーシック選択手段で選択されたベーシックバリエーションパターンを前記パート設定手段で設定されたパート構成で自動伴奏を行い、前記１つの補助バリエーションパターンを前記パート決定手段で決定されたパート構成で自動伴奏を行う自動伴奏手段、
とを備えた自動伴奏装置。
【請求項２】
前記補助パターンは、イントロ演奏を行うためのイントロパターン、エンディング演奏を行うためのエンディングパターン及びフィルイン演奏を行うためのフィルインパターンから構成され、
前記パート決定手段は、
前記イントロパターンのパート構成を、該イントロパターンによる演奏が終了した後に演奏されるべきベーシックバリエーションパターンのパート構成と同じになるように決定し、
前記フィルインパターンのパート構成を、該フィルインパターンによる演奏が終了した後に演奏されるべきベーシックバリエーションパターンのパート構成と同じになるように決定し、
前記エンディングパターンのパート構成を、該エンディングパターンによる演奏に入る前に演奏されていたベーシックバリエーションパターンのパート構成と同じになるように決定する、請求項１に記載の自動伴奏装置。
【請求項３】
１つのリズムの基本的な伴奏パターンとして使用されるベーシックパターンに含まれる複数のベーシックバリエーションパターンのそれぞれのパート構成を入力装置の操作に基づいて設定し、
該パート構成が設定された前記複数のベーシックバリエーションパターンの中から１つのベーシックバリエーションパターンを入力装置の操作に基づいて選択し、
前記１つのリズムの補助的な伴奏パターンとして使用される補助パターンに含まれる複数の補助バリエーションパターンの中から１つの補助バリエーションパターンを入力装置の操作に基づいて選択し、
前記１つの補助バリエーションパターンのパート構成を、該選択されたベーシックバリエーションパターンのパート構成に対応するように自動的に決定し、
前記選択されたベーシックバリエーションパターンを前記設定されたパート構成で自動伴奏を行い、前記１つの補助バリエーションパターンを前記決定されたパート構成で自動伴奏を行う、自動伴奏方法。
【請求項４】
前記補助パターンは、イントロ演奏を行うためのイントロパターン、エンディング演奏を行うためのエンディングパターン及びフィルイン演奏を行うためのフィルインパターンから構成され、
前記補助パターンのパート構成を決定するステップでは、
前記イントロパターンのパート構成を、該イントロパターンによる演奏が終了した後に演奏されるべきベーシックバリエーションパターンのパート構成と同じになるように決定し、
前記フィルインパターンのパート構成を、該フィルインパターンによる演奏が終了した後に演奏されるべきベーシックバリエーションパターンのパート構成と同じになるように決定し、
前記エンディングパターンのパート構成を、該エンディングパターンによる演奏に入る前に演奏されていたベーシックバリエーションパターンのパート構成と同じになるように決定する、請求項３に記載の自動伴奏方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、自動伴奏装置及び自動伴奏方法に関し、特に曲想に合致する自動伴奏を行うための設定操作を簡単にする技術に関する。
【０００２】
【従来の技術】
近年の電子キーボード、電子オルガン、電子ピアノ等といった電子楽器は、複数のリズムの中から選択された１つのリズムで自動伴奏を行うことのできる自動伴奏装置を備えている。この自動伴奏装置を用いれば、ユーザは、自動的に発生される伴奏音に合わせて例えばメロディ等を弾くことができる。
【０００３】
各リズムの伴奏パターンには、ベーシックパターンと補助パターンとが含まれる。ベーシックパターンは、リズムの基本パターンであり、２〜６個程度のバリエーションを有する。ベーシックパターンの各バリエーションをベーシックバリエーションパターンという。また、補助パターンは自動伴奏に変化を持たせるに使用される。この補助パターンには、フィルインパターン、イントロパターン及びエンディングパターンが含まれる。一般に、イントロパターン及びエンディングパターンは各リズムについてそれぞれ１種類が用意されている。これに対し、フィルインパターンは上記ベーシックパターンのバリエーション数と同数のバリエーションを有し、それぞれをフィルインバリエーションパターンという。
【０００４】
更に、ベーシックバリエーション、フィルインバリエーション、イントロ及びエンディングの各パターンは、例えばドラム、ベース、ＡＣＣ１、ＡＣＣ２及びＡＣＣ３といった複数のパートから構成されている。ここで、ドラムパートはドラム音を発生するパートである。ベースパートはベース音を発生するパートである。ＡＣＣ１、ＡＣＣ２及びＡＣＣ３は、それぞれコード音やメロディ音を発生するパートである。各ベーシックバリエーションパターン及び各フィルインバリエーションパターンのパート構成は、編集機能を用いて任意に決定できる。編集機能は、複数のパートの中の任意のパートを、操作パネルを用いてミュートすることにより実現されている。
【０００５】
このような自動伴奏装置に自動伴奏を行わせる場合、ユーザは、先ず複数のリズムの中から所望の１つのリズムを選択する。これにより１つの伴奏パターンが選択される。次いで、選択された伴奏パターンに対応するベーシックパターンに含まれる複数のベーシックバリエーションパターンの中から、曲想に合致する１つのベーシックバリエーションパターンを選択する。同様に、選択された伴奏パターンに対応するフィルインパターンに含まれる複数のフィルインバリエーションパターンの中から、曲想に合致する１つのフィルインバリエーションパターンを選択する。イントロ及びエンディングの各パターンはリズムが選択されることにより自動的に決定される。更に、必要に応じて、選択されたベーシックバリエーションパターン及びフィルインバリエーションパターンのそれぞれのパート構成を曲想に合致するように変更する。
【０００６】
以上の設定操作がなされた後に、イントロスイッチが押されると、上記選択されたリズムに対応するイントロパターンでイントロ演奏が開始される。そして、このイントロ演奏が終了すると、先に選択されたベーシックバリエーションパターンでベーシック演奏が繰り返し実行される。このベーシック演奏が繰り返されている途中でフィルインスイッチが押されると、先に選択されたフィルインバリエーションパターンでフィルイン演奏が、例えば１小節だけ行われ、その後再度ベーシック演奏に戻る。そして、ベーシック演奏が行われている時に、エンディングスイッチが押されると、そのリズムに対応するエンディングパターンでエンディング演奏が行われ、その後自動伴奏は停止する。
【０００７】
【発明が解決しようとする課題】
上記のように構成される従来の自動伴奏装置は、以下のような問題を有する。即ち、ベーシックバリエーションパターンのパート構成を曲想に合致するように変更しても、イントロパターン及びエンディングパターンの各パート構成は変更できないので、ベーシック演奏と、イントロ演奏及び／又はエンディング演奏との連続性が不自然になる場合がある。例えば、ＡＣＣ１及びＡＣＣ２パートをミュートしてベーシック演奏を行う場合、イントロパターン及び／又はエンディングパターンのＡＣＣ１及びＡＣＣ２パートはミュートできないので、ベーシック演奏は静かに進行するにも拘わらずイントロ演奏及びエンディング演奏が盛り上がった感じになり、全体として不自然な演奏になってしまう。
【０００８】
また、演奏の途中で、使用されているベーシックバリエーションパターンを、より曲想に合致する他のベーシックバリエーションパターンに変更する場合がある。この場合、フィルインバリエーションパターンも変更後のベーシックバリエーションパターンに好適なものに変更するのが好ましい。そのためには、ベーシックバリエーションパターンと同様の方法で、フィルインバリエーションパターンのパート構成を予め変更しておく必要がある。従って、演奏に先立って行うべき設定操作が複雑になり、その煩に耐えないという問題がある。
【０００９】
本発明は、上記の問題を解消するためになされたもので、その目的は、曲の全体を通してユーザの曲想に合致する自動伴奏を行うことがき、しかも演奏に先立って行われる設定操作を簡単にできる自動伴奏装置及び自動伴奏方法を提供することにある。
【００１０】
【課題を解決するための手段】
本発明の第１の態様に係る自動伴奏装置は、上記目的を達成するために、１つのリズムの基本的な伴奏パターンとして使用されるベーシックパターンに含まれる複数のベーシックバリエーションパターンのそれぞれのパート構成を設定するパート設定手段と、該パート設定手段によってパート構成が設定された前記複数のベーシックバリエーションパターンの中から１つのベーシックバリエーションパターンを選択するベーシック選択手段と、前記１つのリズムの補助的な伴奏パターンとして使用される補助パターンのパート構成を、該ベーシック選択手段で選択されたベーシックバリエーションパターンのパート構成に対応するように自動的に決定するパート決定手段と、前記ベーシック選択手段で選択されたベーシックバリエーションパターン及び前記パート決定手段で決定されたパート構成を有する補助パターンに従った自動伴奏を行う自動伴奏手段、とを備えている。
【００１１】
この場合、前記補助パターンを、イントロ演奏を行うためのイントロパターン、エンディング演奏を行うためのエンディングパターン及びフィルイン演奏を行うためのフィルインパターンから構成し、前記パート決定手段は、前記イントロパターンのパート構成を、該イントロパターンによる演奏が終了した後に演奏されるべきベーシックバリエーションパターンのパート構成と同じになるように決定し、前記フィルインパターンのパート構成を、該フィルインパターンによる演奏が終了した後に演奏されるべきベーシックバリエーションパターンのパート構成と同じになるように決定し、前記エンディングパターンのパート構成を、該エンディングパターンによる演奏に入る前に演奏されていたベーシックバリエーションパターンのパート構成と同じになるように決定するように構成できる。
【００１２】
また、本発明の第２の態様に係る自動伴奏方法は、上記と同様の目的で、１つのリズムの基本的な伴奏パターンとして使用されるベーシックパターンに含まれる複数のベーシックバリエーションパターンのそれぞれのパート構成を設定し、該パート構成が設定された前記複数のベーシックバリエーションパターンの中から１つのベーシックバリエーションパターンを選択し、前記１つのリズムの補助的な伴奏パターンとして使用される補助パターンのパート構成を、該選択されたベーシックバリエーションパターンのパート構成に対応するように自動的に決定し、前記選択されたベーシックバリエーションパターン及び前記決定されたパート構成を有する補助パターンに従って自動伴奏を行うように構成されている。
【００１３】
この場合、前記補助パターンを、イントロ演奏を行うためのイントロパターン、エンディング演奏を行うためのエンディングパターン及びフィルイン演奏を行うためのフィルインパターンから構成し、前記補助パターンのパート構成を決定するステップでは、前記イントロパターンのパート構成を、該イントロパターンによる演奏が終了した後に演奏されるべきベーシックバリエーションパターンのパート構成と同じになるように決定し、前記フィルインパターンのパート構成を、該フィルインパターンによる演奏が終了した後に演奏されるべきベーシックバリエーションパターンのパート構成と同じになるように決定し、前記エンディングパターンのパート構成を、該エンディングパターンによる演奏に入る前に演奏されていたベーシックバリエーションパターンのパート構成と同じになるように決定するように構成できる。
【００１４】
【発明の実施の形態】
以下、本発明に係る自動伴奏装置及び自動伴奏方法の実施の形態を、図面を参照しながら説明する。なお、以下では、電子楽器に組み込まれた自動伴奏装置について説明するが、この自動伴奏装置は独立した装置としても構成できる。
【００１５】
この実施の形態に係る自動伴奏装置は、１００種類のリズムによる自動伴奏を可能にするために、１００種類の伴奏パターンを有するものとする。また、ベーシックパターンは４つのベーシックバリエーションパターンから構成され、各ベーシックバリエーションパターンをベーシック１、ベーシック２、ベーシック３及びベーシック４のパターンと呼ぶ。同様に、フィルインパターンは４つのフィルインバリエーションパターンから構成され、各フィルインバリエーションパターンをフィルイン１、フィルイン２、フィルイン３及びフィルイン４のパターンと呼ぶ。更に、ベーシック１〜４、フィルイン１〜４、イントロ及びエンディングの各パターンは、ドラム、ベース、ＡＣＣ１、ＡＣＣ２及びＡＣＣ３といった５つのパートから構成されているものとする。
【００１６】
図１は、本発明の実施の形態に係る自動伴奏装置が適用された電子楽器の構成を示すブロック図である。この電子楽器は、システムバス２０で相互に接続された中央処理装置（以下、「ＣＰＵ」という）１０、プログラムメモリ１１、ワークメモリ１２、自動演奏データメモリ１３、鍵盤スキャン回路１４、音源１５及びタイマ１６から構成されている。ＣＰＵ１０には操作パネル１０１及び外部インタフェース回路１０２が接続されている。また、このＣＰＵ１０には、タイマ１６から割込信号が供給される。鍵盤スキャン回路１４には、鍵盤装置１４１が接続されている。更に、音源１５には増幅器１５１が接続され、この増幅器１５１にはスピーカ１５２が接続されている。
【００１７】
ＣＰＵ１０は、プログラムメモリ１１に記憶されている制御プログラムに従ってこの電子楽器の全体を制御する。このＣＰＵ１０によって行われる処理は、後にフローチャートを参照しながら詳細に説明する。
【００１８】
プログラムメモリ１１は、例えばリードオンリメモリ（以下、「ＲＯＭ」という）で構成されている。このプログラムメモリ１１には、上述した制御プログラムの他に、ＣＰＵ１０が使用する種々の固定データが記憶されている。このプログラムメモリ１１には、更に音色を指定するための複数の音色パラメータが記憶されている。１つの音色パラメータは、ある楽器のある音域の音色を指定するために使用される。各音色パラメータは、例えば波形アドレス、周波数データ、エンベロープデータ、フィルタ係数等から構成されている。
【００１９】
ワークメモリ１２は、例えばランダムアクセスメモリ（以下、「ＲＡＭ」という）で構成されている。このワークメモリ１２は、ＣＰＵ１０の処理に使用されるデータを一時的に記憶する。このワークメモリ１２の具体的な内容は後述する。自動演奏データメモリ１３は、例えばＲＯＭで構成されており、自動伴奏音を発生するために使用される自動演奏データを記憶する。この自動演奏データの詳細については後述する。
【００２０】
操作パネル１０１は、例えば図２に示すように、スタート／ストップスイッチ２００、イントロ／エンディングスイッチ２０１、フィルインスイッチ２０２、ベーシック選択スイッチ２１０、フィルイン選択スイッチ２２０、リズム選択スイッチ２３０、パート選択スイッチ２４０、編集スイッチ（ＥＤＩＴ）２５０及び編集選択スイッチ（ＳＥＬ）２５１を備えている。これらの各スイッチは、例えば押釦スイッチで構成できる。なお、図示は省略してあるが、操作パネル１０１は、これらのスイッチ以外に例えば音量スイッチ、音色選択スイッチ、残響効果選択スイッチ等を備えている。
【００２１】
また、操作パネル１０１は、種々のメッセージを表示するためのディスプレイ装置３００及びスイッチのオン／オフ状態を表示するインジケータ３０１、３５０等が設けられている。ディスプレイ装置３００としては、例えばＬＣＤ、ＣＲＴ表示装置、プラズマディスプレイ装置等を用いることができる。また、インジケータとしては、例えばＬＥＤ、ランプ等を用いることができる。
【００２２】
スタート／ストップスイッチ２００は、自動伴奏の開始及び停止を指示するために使用される。スタート／ストップスイッチ２００はインジケータ３０１を備えている。自動伴奏停止中にスタート／ストップスイッチ２００が押されるとインジケータ３０１が点灯されると共に自動伴奏（ベーシック演奏）が開始される。一方、自動伴奏中にスタート／ストップスイッチ２００が押されるとインジケータ３０１が消灯されると共に自動伴奏が停止される。
【００２３】
イントロ／エンディングスイッチ２０１は、イントロ演奏又はエンディング演奏の何れかを開始させるために使用される。自動伴奏停止中にイントロ／エンディングスイッチ２０１が押されるとイントロ演奏が開始され、イントロ演奏が所定小節分だけ行われた後にベーシック演奏に移る。一方、ベーシック演奏中にイントロ／エンディングスイッチ２０１が押されると、その時点で行われているベーシック演奏が停止され、引き続いてエンディング演奏が所定小節分だけ行われ、その後自動伴奏は停止する。
【００２４】
フィルインスイッチ２０２は、ベーシック演奏中にフィルイン演奏を挿入するために使用される。即ち、ベーシック演奏中にこのフィルインスイッチ２０２が押されると、現在実行中のベーシック演奏が一時中断され、フィルイン演奏が所定小節分だけ行われ、その後、元のベーシック演奏に戻る。
【００２５】
ベーシック選択スイッチ２１０は、ベーシック１〜４の各パターンに対応する４個のスイッチＢＳＣ１〜ＢＳＣ４から構成されている。各スイッチＢＳＣ１〜ＢＳＣ４はインジケータを備えている。ユーザはスイッチＢＳＣ１〜ＢＳＣ４の中の何れかを押すことにより自動伴奏に使用されるベーシックバリエーションパターンを選択できる。また、押されたスイッチに対応するインジケータが点灯されるので、ユーザは、現在選択されているベーシックバリエーションパターンを知ることができる。
【００２６】
フィルイン選択スイッチ２２０は、フィルイン１〜４の各パターンに対応する４個のスイッチＦＩＬ１〜ＦＩＬ４から構成されている。各スイッチＦＩＬ１〜ＦＩＬ４はインジケータを備えている。ユーザはスイッチＦＩＬ１〜ＦＩＬ４の中の何れかを押すことにより自動伴奏に使用されるフィルインバリエーションパターンを選択できる。また、押されたスイッチに対応するインジケータが点灯されるので、ユーザは、現在選択されているフィルインバリエーションパターンを知ることができる。
【００２７】
リズム選択スイッチ２３０は、１００種類のリズムのそれぞれに対応する１００個のスイッチから構成されている。各スイッチはインジケータを備えている。ユーザは１００個のスイッチの中の何れかを押すことにより自動伴奏に使用されるリズムを選択できる。また、押されたスイッチに対応するインジケータが点灯されるので、ユーザは、現在選択されているリズムを知ることができる。
【００２８】
パート選択スイッチ２４０は、５つのパートのそれぞれに対応する５個のスイッチＰ１〜Ｐ５から構成されている。各スイッチＰ１〜Ｐ５は、ディスプレイ装置３００に表示されるパート名に対応し、各パートをミュートするかどうか設定するために使用される。ドラムパートを例に挙げて説明すると、ディスプレイ装置３００のドラムパートの位置（「ＤＲＵＭ」が表示されている位置）に「○」印が表示されている状態でスイッチＰ１が押されると表示は「ＭＵＴＥ」に変更される。これにより、ドラムパートがミュートされる。この状態で再度スイッチＰ１が押されると表示は「○」印に戻り、ミュートが解除される。
【００２９】
編集スイッチ２５０は、この電子楽器を編集モードに移行させるために使用される。この編集スイッチ２５０はインジケータ３５０を備えている。編集モードでは、ベーシック１〜４の各パターンのパート構成を設定できる。即ち、編集スイッチ２５０が押されるとインジケータ３５０が点灯されると共に、ディスプレイ装置３００には、図２に例示するようなベーシック１パターンの現在のパート構成が表示される。ユーザは、この状態でパート選択スイッチ２４０を操作することにより、ベーシック１パターンのパート構成を変更できる。
【００３０】
編集選択スイッチ２５１は、編集モードにおいて、編集対象となるベーシックバリエーションパターンを選択するために使用される。この編集選択スイッチ２５１が押される度に、編集対象がベーシック１→ベーシック２→ベーシック３→ベーシック４→ベーシック１→・・・とサイクリックに変化する。
【００３１】
この操作パネル１０１は、図示しないパネルインタフェース回路を含んでいる。このパネルインタフェース回路は、ＣＰＵ１０からの指示に応じて操作パネル１０１上の各スイッチをスキャンする。そして、このスキャンにより得られた各スイッチの開閉状態を示す信号に基づいてパネルデータを作成する。このパネルデータは、各スイッチを１ビットに対応させたビット列で成り、各ビットは、例えば「１」でスイッチオン、「０」でスイッチオフであることを表す。このパネルデータは、操作パネル１０１上の各スイッチが押されたかどうかを判断するために使用される（詳細は後述する）。
【００３２】
また、パネルインタフェース回路は、ＣＰＵ１０から送られてきた表示データをディスプレイ装置３００に送る。これにより、表示データに従ったメッセージがディスプレイ装置３００に表示される。また、パネルインタフェース回路は、ＣＰＵ１０から送られてきた点灯制御データをインジケータ３０１、３４０等に送る。これにより、インジケータが点灯又は消灯される。
【００３３】
図１に示されたブロック図の説明に戻る。外部インタフェース回路１０２は、ＣＰＵ１０と外部装置との間のデータの送受を制御する。この外部インタフェース回路１０２としては、外部に接続される機器の種類に応じて、例えばＭＩＤＩ、ＲＳ２３２Ｃ、ＳＣＳＩ等といった汎用インタフェース又は機種固有のインタフェースを用いることができる。外部装置としては、例えば他の電子楽器、パーソナルコンピュータ、シーケンサ等を用いることができる。この実施の形態では、外部インタフェース回路１０２としてＭＩＤＩインタフェース回路が用いられるものとする。
【００３４】
更に、ＣＰＵ１０に接続されたタイマ１６は、ＣＰＵ１０からセットされるデータに従った時間間隔で割込信号を発生する。このタイマ１６には、テンポに比例したデータがセットされる。従って、このタイマ１６は、テンポに比例した時間間隔で割込信号を発生する。この割込信号はＣＰＵ１０に供給され、後述する割込処理ルーチンを起動するトリガーとして使用される。
【００３５】
鍵盤装置１４１は、押鍵によって発音を指示し、離鍵によって消音を指示するために使用される。この鍵盤装置１４１には、例えば、異なる押圧深さでそれぞれオンにされる第１及び第２のキースイッチを各鍵に備えた２接点方式が採用されている。第１及び第２のキースイッチの開閉状態を示す信号は鍵盤スキャン回路１４に供給される。
【００３６】
鍵盤スキャン回路１４は、ＣＰＵ１０からの指令に応じて鍵盤装置１４１キースイッチをスキャンする。そして、このスキャンにより得られた各キースイッチの開閉状態を示す信号に基づいて、鍵盤データを作成する。鍵盤データは、各鍵を１ビットに対応させたビット列で成り、各ビットは、例えば「１」で押鍵中、「０」で離鍵中であることを表す。この鍵盤スキャン回路１４は、第１及び第２のキースイッチの双方がオンにされた場合に押鍵中であると判断し、それ以外の場合は離鍵中であると判断する。
【００３７】
また、鍵盤スキャン回路１４は、押鍵によって第１のキースイッチがオンになってから第２のキースイッチがオンになるまでの時間を計測し、この計測された時間に基づいてベロシティデータを作成する。これら鍵盤データ及びベロシティデータは、システムバス２０を介してＣＰＵ１０に送られる。
【００３８】
音源１５は波形メモリ（図示しない）を有する。この波形メモリは、各音色パラメータに対応する波形データを記憶している。波形データは、例えば自然楽器音に基づいて生成された楽音信号をパルスコード変調（ＰＣＭ）することによって作成される。この波形メモリは、例えばＲＯＭで構成できる。
【００３９】
また、この音源１５には、複数のチャンネルが形成されている。発音時には、少なくとも１個のチャンネルが発音用に割り当てられ、この割り当てられたチャンネルに音色パラメータが供給される。音色パラメータを受け取ったチャンネルは、波形メモリから波形データを順次読み出し、これにエンベロープを付加して楽音信号を生成する。この楽音信号は、増幅器１５１で増幅された後にスピーカ１５２に供給される。これにより、スピーカ１５２で音響信号に変換されて放音される。
【００４０】
次に、上述したワークメモリ１２に割り当てられているレジスタ、カウンタ、フラグ等のうち、本実施の形態で使用するものについて図３を参照しながら説明する。なお、下記以外については必要の都度説明する。
【００４１】
（ａ）自動演奏フラグＡＵＴＯ：自動伴奏中であるかどうかを記憶するフラグであり、操作パネル１０１上のスタート／ストップスイッチ２００が押される度に反転される。この自動演奏フラグＡＵＴＯは、「１」で自動伴奏中、「０」で自動伴奏停止中であることを示す。
（ｂ）編集フラグＥＤＩＴ：編集モードであるかどうかを記憶するフラグであり、操作パネル１０１上の編集スイッチ２５０が押される度に反転される。「１」で編集モード、「０」で通常モードであることを示す。
（ｃ）編集パートレジスタ：現在編集中のパートが記憶される。
（ｄ）リズム番号レジスタ：選択中のリズムの番号が記憶される。
（ｅ）ベーシック番号レジスタ：選択中のベーシックバリエーションパターンの番号が記憶される。
（ｆ）ベーシック１パート構成レジスタ：ベーシック１パターンのパート構成が記憶される。
（ｇ）ベーシック２パート構成レジスタ：ベーシック２パターンのパート構成が記憶される。
（ｈ）ベーシック３パート構成レジスタ：ベーシック３パターンのパート構成が記憶される。
（ｉ）ベーシック４パート構成レジスタ：ベーシック４パターンのパート構成が記憶される。
（ｊ）フィルイン番号レジスタ：現在選択されているフィルインバリエーションパターンの番号が記憶される。
（ｋ）カレントパート構成レジスタ：現在自動伴奏に使用されている伴奏パターンのパート構成が記憶される。
（ｌ）クロックカウンタ：タイマ割込が発生する度にインクリメントされるカウンタである。
（ｍ）チェックタイミングカウンタ：１ステップタイムに相当する時間が経過することにより＋１される。このチェックタイミングカウンタの内容は、後述する自動演奏処理において、読出タイミングが到来したかどうかを判断するために使用される。
（ｎ）ステップタイムカウンタＣＯＵＮＴ：１ステップタイム毎にカウントアップされるカウンタである。
（ｏ）ドラムパートアドレスレジスタ：現在実行中のドラムパートの音符データが記憶されている自動演奏データメモリ１３のアドレスを保持する。
（ｐ）ベースパートアドレスレジスタ：現在実行中のベースパートの音符データが記憶されている自動演奏データメモリ１３上のアドレスを保持する。
（ｑ）ＡＣＣ１パートアドレスレジスタ：現在実行中のＡＣＣ１パートの音符データが記憶されている自動演奏データメモリ１３上のアドレスを保持する。
（ｒ）ＡＣＣ２パートアドレスレジスタ：現在実行中のＡＣＣ２パートの音符データが記憶されている自動演奏データメモリ１３上のアドレスを保持する。
（ｓ）ＡＣＣ３パートアドレスレジスタ：現在実行中のＡＣＣ３パートの音符データが記憶されている自動演奏データメモリ１３上のアドレスを保持する。
（ｔ）カレントパートポインタ：自動演奏処理において現在処理中のパートのアドレスレジスタを指定する。
【００４２】
次に、自動演奏データメモリ１３に記憶される自動演奏データの詳細について説明する。この自動伴奏装置が有する１００種類のリズムには、「１〜１００」のリズム番号が付されている。
【００４３】
自動演奏データは、例えば図４に示すように、リズム毎に区分されて自動演奏データメモリ１３に記憶されている。各リズムの自動演奏データは、ベーシック１〜４のパターンに対応する「ベーシック１〜４パターンデータ」、フィルイン１〜４のパターンに対応する「フィルイン１〜４パターンデータ」、イントロパターンに対応する「イントロパターンデータ」及びエンディングパターンに対応する「エンディングパターンデータ」といった１０種類のパターンデータから構成されている。
【００４４】
各パターンデータは、ドラム、ベース、ＡＣＣ１、ＡＣＣ２及びＡＣＣ３といった５つのパートのそれぞれに対応するドラムパートデータ、ベースパートデータ、ＡＣＣ１パートデータ、ＡＣＣ２パートデータ及びＡＣＣ３パートデータといった５つのパートデータから構成されている。更に、各パートデータは、図４に示すように、複数の音符データで構成されており、音符データにはノートデータと制御データとが含まれる。
【００４５】
音符データの第１バイト目（キーナンバ）の最上位ビット（ＭＳＢ）は、この音符データがノートデータであるか制御データであるかを指定する識別フラグとして使用される。この識別フラグが「０」の場合にノートデータであることを表し、「１」の場合に制御データであることを表す。
【００４６】
ノートデータは、１音を発生するために使用され、識別フラグ、キーナンバ、ステップタイム、ゲートタイム及びベロシティを指定するためのデータから構成されている。「キーナンバ」（第１バイト目の下位７ビット）は例えば鍵盤装置の各鍵に付された番号に対応し、音高（音程）を指定するために使用される。「ステップタイム」は発音開始のタイミング（時刻）を指定するために使用される。「ゲートタイム」は発音の長さ（音長）を指定するために使用される。「ベロシティ」は、音の強さを指定するために使用される。各パートデータは、このような音符データがステップタイム順に並べられて構成されている。
【００４７】
制御データは、例えば音色変更、効果変更、テンポ変更等といった自動伴奏の制御のために使用される。制御内容は、第１バイト目の下位７ビットで指定される。また、上記制御データにはエンドデータが含まれる。このエンドデータは、エンドマークとステップタイムとの２バイトから構成されている。このエンドデータは自動演奏データの終わりを指示するために使用される。
【００４８】
次に、上記のように構成される自動伴奏装置の動作を、図５〜図１２に示すフローチャートを参照しながら詳細に説明する。なお、上記各フローチャートに示された処理は、何れもＣＰＵ１０により行われる。
【００４９】
（１）メイン処理：
図５は本発明に係る自動伴奏装置が適用された電子楽器のメイン処理を示すフローチャートである。このメイン処理ルーチンは電源の投入により起動される。即ち、電源が投入されると、先ず、初期化処理が行われる（ステップＳ１０）。この初期化処理では、ＣＰＵ１０の内部のハードウェアが初期状態に設定されると共に、ワークメモリ１２に定義されているレジスタ、カウンタ、フラグ等に初期値が設定される。
【００５０】
この初期化処理が終了すると、次いで、パネル処理が行われる（ステップＳ１１）。このパネル処理では、詳細は後述するが、操作パネル１０１上の各スイッチに割り当てられている機能を実現するための処理が行われる。
【００５１】
次いで、鍵盤処理が行われる（ステップＳ１２）。この鍵盤処理では、鍵盤装置１４１の操作に応じた発音及び消音処理が行われる。即ち、ＣＰＵ１０は、先ず鍵盤スキャン回路１４から鍵盤データ及びベロシティデータを読み出す。そして、鍵盤データに基づいて押鍵／離鍵がなされたかどうかを調べる。ここで、押鍵がなされたことが判断された場合は、その鍵に対応する音をベロシティデータに応じた強さで発生するための発音処理が実行される。
【００５２】
この発音処理では、押された鍵とその時点で設定されている音色とに基づいて選択された１つの音色パラメータがプログラムメモリ１１から読み出され、上記ベロシティデータと共に音源１５に送られる。そして、音源１５で楽音信号が生成され、増幅器１５１を経由してスピーカ１５２に供給される。これにより、押鍵に応じた音がベロシティデータに応じた強さで発生される。
【００５３】
一方、離鍵がなされたことが判断された場合は、その鍵に対応する音を消すための消音処理が実行される。この消音処理では、高速で減衰するエンベロープを付加するためのデータが音源１５に送られる。これにより音源１５で生成されている楽音信号が急速に減衰する。これにより、発音中の音が離鍵に応じて消される。
【００５４】
次いで、ＭＩＤＩ処理が行われる（ステップＳ１３）。このＭＩＤＩ処理では、外部インタフェース回路１０２で受信されたデータに基づいて発音処理／消音処理が行われ、また操作パネル１０１の設定状態が変更される。これにより、外部装置からこの電子楽器を制御できるようになっている。逆に、操作パネル１０１及び鍵盤装置１４１が操作されることによって発生されたデータが、外部インタフェース回路１０２を介して外部装置に送信される。これにより、この電子楽器の操作パネル１０１及び鍵盤装置１４１から外部装置を制御できるようになっている。
【００５５】
次いで、自動演奏処理が行われる（ステップＳ１４）。この自動演奏処理の詳細については後述する。次いで、「その他の処理」が行われる（ステップＳ１５）。この処理では、上述した以外の処理、例えばスイッチを押し続けた場合の特殊な動作を実現するための処理のように、メイン処理ルーチンで定期的なチェックが必要な処理が行われる。
【００５６】
その後シーケンスはステップＳ１１に戻り、以下ステップＳ１１〜Ｓ１５の処理が繰り返される。この繰り返し実行の過程で、操作パネル１０１の操作、鍵盤装置１４１の操作、外部インタフェース回路１０２でのＭＩＤＩデータの受信等があると、それらに応じた処理が行われることにより電子楽器及び自動伴奏装置としての各種機能が実現される。
【００５７】
（２）タイマ割込処理：
タイマ割込処理は、タイマ１６からの割込信号に応じて、上記メイン処理ルーチンの各処理に割り込んで行われる。このタイマ割込処理の詳細は、図６のフローチャートに示されている。
【００５８】
タイマ割込処理は、タイマ１６からの割込信号に応じて、上記メイン処理ルーチンの各処理に割り込んで行われる。このタイマ割込処理の詳細は、図６のフローチャートに示されている。このタイマ割込処理では、先ず、クロックカウンタの内容が＋１される（ステップＳ２０）。割込信号はテンポに比例した時間間隔で発生されるので、このクロックカウンタの内容もテンポに比例した時間間隔で＋１されることになる。次いで、クロックカウンタの内容が所定値になったかどうかが調べられる（ステップＳ２１）。ここで所定値とは、その時点で設定されているテンポにおける１ステップタイムに相当する値をいう。
【００５９】
このステップＳ２１で、所定値であることが判断されると、チェックタイミングカウンタの内容が＋１される（ステップＳ２２）。その後、シーケンスは、このタイマ割込処理ルーチンからメイン処理ルーチンの割り込まれた位置にリターンする。上記ステップＳ２１で所定値でないことが判断されたときは、チェックタイミングカウンタの内容を変更することなく、このタイマ割込処理ルーチンからリターンする。以上の処理により、チェックタイミングカウンタの内容が、１ステップタイム毎に＋１される機能が実現されている。
【００６０】
（３）パネル処理：
次に、メイン処理ルーチンのステップＳ１１で行われるパネル処理の詳細を、図７〜図９に示したフローチャートを参照しながら説明する。このパネル処理では、操作パネル１０１上の各スイッチに割り当てられている機能を実現するための処理が実行される。
【００６１】
このパネル処理では、先ずパネルイベントの有無が調べられる（ステップＳ３０）。具体的には、先ず操作パネル１０１からパネルデータが読み出される。そして、この読み出されたパネルデータが前回のパネル処理で読み出されたパネルデータから変化したかどうかが調べられる。ここで、変化していなければパネルイベントがないことが判断され、シーケンスは、このパネル処理ルーチンからメイン処理ルーチンにリターンする。
【００６２】
一方、上記ステップＳ３０でパネルイベントがある、即ちパネルデータが変化したことが判断されると、次いで、スタート／ストップスイッチ２００のオンイベントの有無が調べられる（ステップＳ３１）。これは、前回のパネル処理実行時に「０」であったパネルデータ中のスタート／ストップスイッチ２００に対応するビットが、今回のパネル処理実行時に「１」に変化しているかどうかを調べることにより行われる。以下に説明する他のスイッチのオンイベントの有無も同様の方法で調べられる。
【００６３】
このステップＳ３１で、スタート／ストップスイッチ２００のオンイベントがあることが判断されると、次いで、自動演奏フラグＡＵＴＯが「１」であるかどうかが調べられる（ステップＳ３２）。ここで、自動演奏フラグＡＵＴＯが「１」であれば、自動伴奏中にスタート／ストップスイッチ２００が押されたことが判断され、自動演奏フラグＡＵＴＯが「０」にクリアされる（ステップＳ３３）。その結果、後述する自動演奏処理ルーチンでは発音処理が行われなくなる。これにより、自動伴奏中にスタート／ストップスイッチ２００が押された場合に自動伴奏を停止させる機能が実現されている。その後、シーケンスは、ステップＳ３７へ分岐する。
【００６４】
一方、上記ステップＳ３２で、自動演奏フラグＡＵＴＯが「０」であれば、自動伴奏停止中にスタート／ストップスイッチ２００が押されたことが判断され、自動演奏フラグＡＵＴＯが「１」にセットされる（ステップＳ３４）。これにより、自動伴奏停止中にスタート／ストップスイッチ２００が押された場合に自動伴奏を開始させる機能が実現されている。また、ステップＳ３２〜Ｓ３４の処理により、スタート／ストップスイッチ２００が押される度に、自動伴奏の開始と停止とが交互に繰り返される機能が実現されている。
【００６５】
次いで、アドレスレジスタの初期設定が行われる（ステップＳ３５）。この処理では、先ず、その時点で選択されているリズム（リズム番号レジスタの内容で指定されるリズム）であって、且つその時点で選択されているベーシックバリエーションパターン（ベーシック番号レジスタの内容で指定されるベーシックバリエーションパターン）のパターンデータが選択される。そして、選択されたパターンデータに含まれるドラム、ベース、ＡＣＣ１、ＡＣＣ２及びＡＣＣ３の各パートデータが格納されている自動演奏データメモリ１３上の先頭アドレスが、それぞれドラムパートアドレスレジスタ、ベースパートアドレスレジスタ、ＡＣＣ１パートアドレスレジスタ、ＡＣＣ２パートアドレスレジスタ及びＡＣＣ３パートアドレスレジスタに格納される。これにより、ベーシックバリエーションパターンの各パートの音符データを読み出す位置が決定される。以後は、後述する自動演奏処理ルーチンにおいて、上記各アドレスレジスタの内容が順次更新されながら自動伴奏が進行する。
【００６６】
次いで、ステップタイムカウンタＣＯＵＮＴの内容がゼロにクリアされる（ステップＳ３６）。以後、このステップタイムカウンタＣＯＵＮＴの内容は、後述する自動演奏処理ルーチンの中で、読出タイミング（詳細後述）が到来する度に＋１される。上記ステップＳ３１で、スタート／ストップスイッチ２００のオンイベントがないことが判断されると、これらステップＳ３２〜Ｓ３６の処理はスキップされる。
【００６７】
次いで、編集スイッチ２５０のオンイベントがあるかどうかが調べられる（ステップＳ３７）。ここで、編集スイッチ２５０のオンイベントがあることが判断されると、編集フラグＥＤＩＴが「１」であるかどうかが調べられる（ステップＳ３８）。そして、編集フラグＥＤＩＴが「１」であれば、編集モード中に編集スイッチ２５０が押されたことが判断され、編集フラグＥＤＩＴが「０」にクリアされる（ステップＳ３９）。その結果、この電子楽器は通常モードに移行する。その後、シーケンスは、ステップＳ４２へ分岐する。
【００６８】
一方、上記ステップＳ３７で、編集フラグＥＤＩＴが「０」であれば、通常モード中に編集スイッチ２５０が押されたことが判断され、編集フラグＥＤＩＴが「１」にセットされる（ステップＳ４０）。これにより、電子楽器は編集モードに移行するので、パート選択スイッチ２４０及び編集選択スイッチ２５１を操作することにより所望のベーシックバリエーションパターンのパート構成を変更できるようになる。
【００６９】
次いで、ベーシック１のパート構成が表示される（ステップＳ４１）。即ち、ベーシック１パート構成レジスタに記憶されている内容に基づいて、例えば図２のディスプレイ装置３００に例示するような形式で、各パートがミュートされているかどうかが表示される。これにより、ユーザは、ディスプレイ装置３００を見ながらパート選択スイッチ２４０を操作することによりベーシック１のパート構成を変更できる。また、上記ステップＳ３８〜Ｓ４０の処理により編集スイッチ２５０が押される度に、編集モードと通常モードとが交互に繰り返される機能が実現されている。上記ステップＳ３７で編集スイッチ２５０のオンイベントがないことが判断されると、ステップＳ３８〜Ｓ４１の処理はスキップされ、シーケンスはステップＳ４２に進む。
【００７０】
ステップＳ４２では、編集フラグＥＤＩＴが「１」であるかどうかが調べられる。ここで、「１」であれば、現在編集モードであることが判断され、次いで編集選択スイッチ２５１のオンイベントの有無が調べられる（ステップＳ４３）。ここで、オンイベントがあることが判断されると、ディスプレイ装置３００の表示が、次のベーシックバリエーションパターンのパート構成に変更される（ステップＳ４４）。これにより、編集モード中に編集選択スイッチ２５１が押される毎に、編集対象がベーシック１→ベーシック２→ベーシック３→ベーシック４→ベーシック１→・・・とサイクリックに変化する機能が実現されている。
【００７１】
上記ステップＳ４３で編集選択スイッチ２５１のオンイベントがないことが判断されると、ステップＳ４４の処理はスキップされる。次いで、パート選択スイッチ２４０のオンイベントの有無、即ちスイッチＰ１〜Ｐ５の何れかが押されたかどうかが調べられる（ステップＳ４５）。ここで、オンイベントがあることが判断されると、パート構成が変更される（ステップＳ４６）。即ち、その時点におけるディスプレイ装置３００の表示内容に対応するベーシック１〜４の何れかのパート構成レジスタの内容が、押されたスイッチＰ１〜Ｐ５に応じて変更される。上記ステップＳ４５でパート選択スイッチ２５１のオンイベントがないことが判断されると、このステップＳ４６の処理はスキップされる。これにより、編集モード中に編集選択スイッチ２５１によって選択されたベーシックバリエーションパターンのパート構成を変更する機能が実現されている。
【００７２】
上記ステップＳ４２で編集フラグＥＤＩＴが「０」であることが判断されると、ステップＳ４３〜Ｓ４６の処理はスキップされる。従って、通常モードにおいて編集選択スイッチ２５１及びパート選択スイッチ２４０が操作されても無視されることになる。
【００７３】
次いで、ベーシック選択スイッチ２１０のオンイベントの有無、つまりスイッチＢＳＣ１〜ＢＳＣ４の何れかが押されたかどうかどうかが調べられる（ステップＳ４７）。ここで、オンイベントがあることが判断されると、押されたスイッチに対応するベーシックバリエーションパターンの番号がベーシック番号レジスタにセットされる（ステップＳ４８）。ベーシック演奏は、このベーシック番号レジスタの内容で指定されるベーシックバリエーションパターンで行われることになる。
【００７４】
次いで、ベーシック番号レジスタの内容で指定されるベーシックバリエーションパターンのパート構成を記憶するパート構成レジスタの内容がカレントパート構成レジスタにセットされる（ステップＳ４９）。後述する自動演奏処理ルーチンでは、このカレントパート構成レジスタの内容に基づいて各パートの音を発生するかどうかが決定される。従って、ベーシックバリエーションパターンのパート構成がイントロ、エンディング及びフィルインの各パターンにも適用されることになるので、これらの各パターンのパート構成を予め設定する必要がない。上記ステップＳ４７でベーシック選択スイッチ２１０のイベントがないことが判断されると、ステップＳ４８及びＳ４９の処理はスキップされる。
【００７５】
次いで、フィルイン選択スイッチ２２０のオンイベントの有無、即ちスイッチＦＩＬ１〜ＦＩＬ４の何れかが押されたかどうかどうかが調べられる（ステップＳ５０）。ここで、オンイベントがあることが判断されると、押されたスイッチに対応するフィルインバリエーションパターンの番号がフィルイン番号レジスタにセットされる（ステップＳ５１）。フィルイン演奏では、このフィルイン番号レジスタに格納された番号を有するフィルインバリエーションパターンが使用される。上記ステップＳ５０でフィルイン選択スイッチ２２０のイベントがないことが判断されると、このステップＳ５１の処理はスキップされる。
【００７６】
次いで、リズム選択スイッチ２３０のオンイベントの有無、即ち何れかのスイッチが押されたかどうかどうかが調べられる（ステップＳ５２）。ここで、オンイベントがあることが判断されると、押されたスイッチに対応するリズムの番号がリズム番号レジスタにセットされる（ステップＳ５３）。このリズム番号レジスタの内容に対応するパターンデータが、自動伴奏で使用される。上記ステップＳ５２でリズム選択スイッチ２３０のイベントがないことが判断されると、このステップＳ５３の処理はスキップされる。
【００７７】
次いで、イントロ／エンディングスイッチ２０１のオンイベントの有無が調べられる（ステップＳ５４）。ここで、オンイベントがあることが判断されると、自動演奏フラグＡＵＴＯが「１」であるかどうかが調べられる（ステップＳ５５）。そして、自動演奏フラグＡＵＴＯが「０」であれば、自動伴奏停止中であることが判断され、イントロ処理が行われる（ステップＳ５６）。
【００７８】
このイントロ処理では、アドレスレジスタの初期設定処理及びステップタイムカウンタＣＯＵＮＴのクリア処理が行われる。アドレスレジスタの初期処理設定処理では、ベーシックバリエーションのパターンデータの代わりにイントロのパターンデータが選択されることを除けば、上述したステップＳ３５の処理と同じである。また、ステップタイムカウンタＣＯＵＮＴのクリア処理は上述したステップＳ３６の処理と同じである。これにより、イントロパターンの各パートの音符データを読み出すためのアドレスが決定され、以後は、後述する自動演奏処理ルーチンにおいて、この決定されたアドレスが更新されながらイントロ演奏が進行する。
【００７９】
一方、上記ステップＳ５５で自動演奏フラグＡＵＴＯが「１」であれば、自動伴奏中であることが判断され、エンディング処理が行われる（ステップＳ５７）。このエンディング処理では、アドレスレジスタの初期設定処理及びステップタイムカウンタＣＯＵＮＴのクリア処理が行われる。アドレスレジスタの初期設定処理では、ベーシックバリエーションのパターンデータの代わりにエンディングのパターンデータが選択されることを除けば、上述したステップＳ３５の処理と同じである。これにより、エンディングパターンの各パートの音符データを読み出すためのアドレスが決定され、以後は、後述する自動演奏処理ルーチンにおいて、この決定されたアドレスが更新されながらエンディング演奏が進行する。
【００８０】
上記ステップＳ５４で、イントロ／エンディングスイッチ２０１のオンイベントがないことが判断されると、次いで、フィルインスイッチ２０２のオンイベントの有無が調べられる（ステップＳ５８）。ここで、フィルインスイッチ２０２のオンイベントがあることが判断されると、フィルイン処理が行われる（ステップＳ５９）。このフィルイン処理では、アドレスレジスタの初期設定処理及びステップタイムカウンタＣＯＵＮＴのクリア処理が行われる。アドレスレジスタの初期設定処理では、ベーシックバリエーションのパターンデータの代わりにフィルインバリエーションのパターンデータが選択されることを除けば、上述したステップＳ３５の処理と同じである。これにより、フィルインバリエーションパターンの各パートの音符データを読み出すためのアドレスが決定され、以後は、後述する自動演奏処理ルーチンにおいて、この決定されたアドレスが更新されながらフィルイン演奏が進行する。その後、シーケンスはメイン処理ルーチンにリターンする。上記ステップＳ５８でフィルインスイッチ２０２のオンイベントがないことが判断された場合も、シーケンスはメイン処理ルーチンにリターンする。
【００８１】
（４）自動演奏処理
次に、自動演奏処理の詳細について、図１０及び図１１に示したフローチャートを参照しながら説明する。この自動演奏処理ルーチンは、メイン処理ルーチンから一定周期でコールされる。
【００８２】
自動演奏処理では、先ず、自動演奏フラグＡＵＴＯが「１」であるか否かが調べられる（ステップＳ６０）。ここで自動演奏フラグＡＵＴＯが「１」でない、つまり自動伴奏停止中であることが判断されると、この自動演奏処理ルーチンからメイン処理ルーチンにリターンする。これにより、自動伴奏を停止する機能が実現されている。
【００８３】
一方、自動演奏フラグＡＵＴＯが「１」であり、現在自動伴奏中であることが判断されると、読出タイミングが到来したかどうかが調べられる（ステップＳ６１）。ここで、読出タイミングとは、前回に自動演奏処理を行ってから１ステップタイムが経過したタイミングをいう。この読出タイミングが到来したかどうかは、例えばチェックタイミングカウンタの内容が「１」になっているかどうかを調べることにより行われる。このステップＳ６１で、読出タイミングでないことが判断されると、この自動演奏処理ルーチンからメイン処理ルーチンにリターンする。
【００８４】
一方、上記ステップＳ６１で、読出タイミングであることが判断されると、次いで、チェックタイミングカウンタの内容がクリアされる（ステップＳ６２）。これにより、現時点から１ステップタイムが経過した時に再びチェックタイミングカウンタが「１」にセットされるので、１ステップタイム毎に読出タイミングが到来することになる。
【００８５】
次いで、ドラムパートが指定されているかどうかが調べられる（ステップＳ６３）。これは、カレントパート構成レジスタのドラムパートに対応するビットが「１」にセットされているかどうかを調べることにより行われる。他のパートの指定の有無も同様にして調べられる。ここで、ドラムパートが指定されていることが判断されると、カレントパートポインタによりドラムパートアドレスレジスタが指定（ステップＳ６４）。次いで、自動演奏メイン処理が行われる（ステップＳ６５）。この自動演奏メイン処理では、詳細は後述するが、音符データに基づく発音処理が行われる。上記ステップＳ６３でドラムパートが指定されていないことが判断された場合は、ステップＳ６４及びＳ６５の処理はスキップされる。以上の処理により、カレントパート構成レジスタによりドラムパートが指定されている場合にのみ、ドラムパートの音を発生する機能が実現されている。
【００８６】
以下同様の処理が各パートについて繰り返される。即ち、ベースパートが指定されているかどうかが調べられ（ステップＳ６６）、ベースパートが指定されている場合はカレントパートポインタによりベースパートアドレスレジスタが指定され（ステップＳ６７）、次いで自動演奏メイン処理が行われる（ステップＳ６８）。一方、ベースパートが指定されていない場合は、ステップＳ６７及びＳ６８の処理はスキップされる。次いで、ＡＣＣ１パートが指定されているかどうかが調べられ（ステップＳ６９）、ＡＣＣ１パートが指定されている場合はカレントパートポインタによりＡＣＣ１パートアドレスレジスタが指定され（ステップＳ７０）、次いで自動演奏メイン処理が行われる（ステップＳ７１）。一方、ＡＣＣ１パートが指定されていない場合は、ステップＳ７０及びＳ７１の処理はスキップされる。
【００８７】
次いで、ＡＣＣ２パートが指定されているかどうかが調べられ（ステップＳ７２）、ＡＣＣ２パートが指定されている場合はカレントパートポインタによりＡＣＣ２パートアドレスレジスタが指定され（ステップＳ７３）、次いで自動演奏メイン処理が行われる（ステップＳ７４）。一方、ＡＣＣ２パートが指定されていない場合は、ステップＳ７３及びＳ７４の処理はスキップされる。次いで、ＡＣＣ３パートが指定されているかどうかが調べられ（ステップＳ７５）、ＡＣＣ３パートが指定されている場合はカレントパートポインタによりＡＣＣ３パートアドレスレジスタが指定され（ステップＳ７６）、次いで、自動演奏メイン処理が行われる（ステップＳ７７）。一方、ＡＣＣ３パートが指定されていない場合は、ステップＳ７６及びＳ７７の処理はスキップされる。以上の処理により、カレントパート構成レジスタにより指定されているパートのみ、発音する機能が実現されている。
【００８８】
次いで、ステップタイムカウンタＣＯＵＮＴの内容が＋１される（ステップＳ７８）。これにより、１ステップタイム毎にステップタイムカウンタの内容が＋１される機能が実現されている。
【００８９】
（５）自動演奏メイン処理
次に、上述した自動演奏処理ルーチンの中で行われる自動演奏メイン処理の詳細について、図１２に示したフローチャートを参照しながら説明する。
【００９０】
この自動演奏メイン処理では、先ず、カレントパートポインタで指定されるアドレスレジスタの内容で指定される自動演奏データメモリ１３の位置から１つの音符データが読み出される（ステップＳ８０）。そして、読み出された音符データに含まれるステップタイムと、ステップタイムカウンタＣＯＵＮＴの内容とが一致するかどうかが調べられる（ステップＳ８１）。ここで、一致しないことが判断されると、当該音符データは未だ発音タイミングに至っていないものと判断され、この自動演奏メイン処理ルーチンから自動演奏処理ルーチンにリターンする。
【００９１】
一方、一致することが判断されると、読み出された音符データは、エンドデータであるどうかが調べられる（ステップＳ８２）。これは、音符データの第１バイト目のデータを調べることにより行われる。ここで、エンドマークでないことが判断されると、次いで発音処理が行われる（ステップＳ８３）。
【００９２】
この発音処理では、音源１５中の１つの発音チャンネルに発音が割り当てられる。そして、音符データ中のキーナンバ、ベロシティ、及びその時点で選択されている音色等に基づいてプログラムメモリ１１の中の１つの音色パラメータが選択される。この選択された音色パラメータは音源１５に送られる。これにより、発音が割り当てられた発音チャンネルにおいて、上記音色パラメータに基づいた楽音信号が生成され、これが増幅器１５１及びスピーカ１５２に順次送られて発音が行われる。
【００９３】
なお、消音は、図示しない消音処理ルーチンにおいて、１ステップタイム毎にゲートタイムがゼロになった音源１５中の発音チャンネルを検索し、この発音チャンネルに所定のデータを送ることにより実現されている。
【００９４】
次いで、カレントパートポインタで指定されるアドレスレジスタの内容が更新される（ステップＳ８４）。即ち、その時点で指定されているドラムパートアドレスレジスタ、ベースパートアドレスレジスタ、ＡＣＣ１パートアドレスレジスタ、ＡＣＣ２パートアドレスレジスタ又はＡＣＣ３パートアドレスレジスタの内容が＋４される。その後、シーケンスはステップＳ８０に戻り、再度同様の処理が繰り返される。以上の繰り返しにより、ステップタイムカウンタＣＯＵＮＴの内容と同一のステップタイムを有する音符データは、全て発音に供される。これにより、複数音の同時発音が実現されている。
【００９５】
一方、上記ステップＳ８２で、エンドマークであることが判断されると、現在エンディングパターンの処理中であるかどうかが調べられる（ステップＳ８５）。ここで、エンディングパターンの処理中でないことが判断されると、ベーシック処理が行われる（ステップＳ８６）。このベーシック処理は、上述したステップＳ３５及びＳ３６の処理と同じである。その後シーケンスはステップＳ８０に戻る。従って、ベーシックバリエーション、イントロ及びフィルインバリエーションのパターンデータ中にエンドデータが検出された場合は、引き続いてベーシック演奏が行われることになる。一方、ステップＳ８５でエンディングパターンの処理中であることが判断されると、自動演奏フラグＡＵＴＯが「０」にクリアされる（ステップＳ８７）。その後、シーケンスはこの自動演奏処理ルーチンからメインルーチンにリターンする。これにより、エンディング演奏が行われた後に自動伴奏が停止する機能が実現されている。
【００９６】
【発明の効果】
以上詳述したように、本発明によれば、曲の全体を通してユーザの曲想に合致する自動伴奏を行うことがき、しかも演奏に先立って行われる設定操作を簡単にできる自動伴奏装置及び自動伴奏方法を提供できる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係る自動伴奏装置が適用された電子楽器の構成を示すブロック図である。
【図２】図１に示した操作パネル１０１の具体的な例を示す図である。
【図３】図１に示したワークメモリ１２の割り当ての一例を示す図である。
【図４】図１に示した自動演奏データメモリ１３に格納される自動演奏データのフォーマットを説明するための図である。
【図５】本発明の実施の形態に係る自動伴奏装置が適用された電子楽器のメイン処理を示すフローチャートである。
【図６】本発明の実施の形態に係る自動伴奏装置が適用された電子楽器のタイマ割込処理を示すフローチャートである。
【図７】図５におけるパネル処理（その１）を詳細に示すフローチャートである。
【図８】図５におけるパネル処理（その２）を詳細に示すフローチャートである。
【図９】図５におけるパネル処理（その３）を詳細に示すフローチャートである。
【図１０】図５における自動演奏処理（その１）を詳細に示すフローチャートである。
【図１１】図５における自動演奏処理（その２）を詳細示すフローチャートである。
【図１２】図１０及び図１１における自動演奏メイン処理を詳細に示すフローチャートである。
【符号の説明】
１０    ＣＰＵ
１１    プログラムメモリ
１２    ワークメモリ
１３    自動演奏データメモリ
１４    鍵盤スキャン回路
１５    音源
１６    タイマ
２０    システムバス
１０１    操作パネル
１０２    外部インタフェース回路
１４１    鍵盤装置
１５１    増幅器
１４２    スピーカ
２００    スタート／ストップスイッチ
２０１    イントロ／エンディングスイッチ
２０２    フィルインスイッチ
２１０    ベーシック選択スイッチ
２２０    フィルイン選択スイッチ
２３０    リズム選択スイッチ
２４０    パート選択スイッチ
２５０    編集スイッチ（ＥＤＩＴ）
２５１    編集選択スイッチ（ＳＥＬ）
３００    ディスプレイ装置
３０１、３５０    インジケータ
【図１】
0003640235.tif 000002
【図２】
0003640235.tif 000003
【図３】
0003640235.tif 000004
【図４】
0003640235.tif 000005
【図５】
0003640235.tif 000006
【図６】
0003640235.tif 000007
【図７】
0003640235.tif 000008
【図８】
0003640235.tif 000009
【図９】
0003640235.tif 000010
【図１０】
0003640235.tif 000011
【図１１】
0003640235.tif 000012
【図１２】
0003640235.tif 000013