(57)【特許請求の範囲】
【請求項１】
鍵盤と、
前記鍵盤のうちの押されている鍵に従ってコードを検出するコード検出部と、
発音タイミングを示す自動伴奏データを記憶する記憶部と、
前記鍵盤のうちの前記発音タイミングで押されている鍵に従って検出されたコードに従った伴奏音を前記発音タイミングで発生させ、前記鍵盤のうちの前記発音タイミング以外のタイミングで押された鍵に従って検出されたコードに従わない伴奏音を前記タイミングで消す制御部
とを備えた電子楽器の自動伴奏装置。
【請求項２】
前記自動伴奏データは、前記発音タイミングで発生させる楽音を更に示し、
前記楽音は、コードパート及びベースパートの少なくとも１つの音である
請求項１に記載の電子楽器の自動伴奏装置。
【請求項３】
前記制御部は、
前記発音タイミングに検出されたコードを構成する音に前記コードパートの楽音を転回させた伴奏音を発生させ、
前記鍵が離された離鍵タイミングに検出されたコードを構成しない音を前記コードパートの伴奏音から前記離鍵タイミングで消す
請求項２に記載の電子楽器の自動伴奏装置。
【請求項４】
前記制御部は、更に、
前記発音タイミングに検出されたコードを構成する音に前記ベースパートの楽音を転回させた伴奏音を発生させ、
前記離鍵タイミングで検出されたコードのルート音と前記ベースパートの伴奏音のうちの特定音のピッチとが同じになるように前記離鍵タイミングに前記特定音のピッチをベンドさせ、前記ベースパートの伴奏音のうちの前記特定音以外の音を前記離鍵タイミングに消す
請求項３に記載の電子楽器の自動伴奏装置。
【請求項５】
前記特定音は、前記ベースパートの伴奏音のうちの最低音である
請求項４に記載の電子楽器の自動伴奏装置。
【請求項６】
足鍵盤を更に備え、
前記コード検出部は、前記足鍵盤のうちの押されている鍵に更に従ってコードを検出し、
前記伴奏音は、コードパート及びベースパートの音から成り、
前記制御部は、
前記足鍵盤の鍵が押されたことによりコードのルート音が変更されない場合は、前記ベースパートの伴奏音を持続させ、
前記足鍵盤の鍵が押された足鍵押鍵タイミングに検出されたコードに従わない伴奏音を前記足鍵押鍵タイミングで前記コードパートの伴奏音から消す
請求項１に記載の電子楽器の自動伴奏装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、鍵盤の操作に応じて検出されたコードに基づいて伴奏音を発生する電子楽器の自動伴奏装置に関し、特に検出されたコードに従った伴奏音の再発生（以下、「リトリガ」という）を制御する技術に関する。
【０００２】
【従来の技術】
近年、自動伴奏装置を備えた電子楽器が開発されている。このような電子楽器の１つとして、１つの鍵盤をコード検出用鍵盤と通常演奏用鍵盤とに分け、コード検出用鍵盤の操作に応じてコード検出を行って自動的に伴奏音を発生する一方、通常演奏用鍵盤の操作に応じて通常の楽音を発生するものが知られている。
【０００３】
この自動伴奏装置において、伴奏音は次のようにして発生される。先ず、コード検出用鍵盤の押された鍵に従ってコード検出が行われる。このコード検出では、例えばコードルート及びコードタイプ、ベースルート等が検出される。次いで、予めメモリに記憶されている自動伴奏データが読み出される。そして、この読み出された自動伴奏データに含まれるステップタイム値が、別途、ステップタイムカウンタで計数されている値に一致した時に発音タイミングが到来したことが判断され、その自動伴奏データが先に検出されたコードに従って展開される。そして、この展開により得られたコード構成音を表す楽音データが音源に送られることにより伴奏音が発生される。
【０００４】
このような伴奏音を発生するための処理は、演奏者がコード検出用鍵盤を押す度に実行される。従って、演奏者は、コード検出用鍵盤を所定の押下パターンで順次押すことにより、所望のコード進行に従った伴奏音を順次発生させることができる。
【０００５】
しかしながら、上述した従来の自動伴奏装置では、伴奏音の発生は、演奏者がコード検出用鍵盤を押した瞬間なされる訳ではなく、自動伴奏データ中のステップタイム値で指定されている発音タイミングが到来するまで待たされる。換言すれば、伴奏音のコードの変更は、自動伴奏データの変更に同期して行われる。また、他の従来の自動伴奏装置では、次の小節の先頭に至るまで発音はなされず、伴奏音のコードの変更は、小節の変更に同期して行われる。このような従来の自動伴奏装置では、鍵を押したタイミングとコードを構成する音（以下、「コード構成音」という）が発生されるタイミング（以下、「発音タイミング」という）とがずれるので演奏しにくいという欠点がある。
【０００６】
このような欠点を解消するために、鍵が押されることによって新たなコードが検出された時に、発音タイミングが到来していなくても、その時点で発生中のコード構成音を消音し、検出された新たなコードに対応するコード構成音で発音をやり直すというリトリガ機能を搭載した自動伴奏装置が開発されている。このリトリガ機能を用いることにより、鍵を押した瞬間にコード構成音が変更されるので演奏者の感覚に合致したスムーズなコード変更が可能になる。
【０００７】
ところで、オルガンのような持続音を発生する楽器でコード演奏を行う場合、押下中の鍵の一部だけを押し直してコード変更を行う奏法が多く用いられている。この奏法を用いる場合、以下に説明するように、演奏者が意図したコード検出がなされないケースが頻繁に起こる。そこで、鍵を押したタイミングでコードを検出（以下、「オン検出」という）のみならず、鍵を離したタイミングでもコード検出（以下、「オフ検出」という）を行う自動伴奏装置が開発されている。
【０００８】
このような場合の動作を、図２０を参照しながら説明する。図２０（Ａ）は、メモリに自動伴奏データとして記憶された、Ｃをキーとする基本コードパターンを示し、図２０（Ｂ）は、基本ベースパターンを示す。以下では、説明の煩雑さを避けるために、ベースの自動伴奏を行う場合について説明する。
【０００９】
図２０（Ｃ）は、演奏者が意図するベースの伴奏パターンを示す。演奏者は、１小節目の先頭で「ミ」、「ラ」及び「ド」の鍵を押してコードＡｍを指定する。これにより、基本ベースパターンの１拍目のタイミングで、ベース音が「ラ」の音高で発生される。この押鍵状態が続けられると、基本ベースパターンの３拍目のタイミングで、次のベース音が「ラ」の音高で発生される。次に、演奏者は、コードＣを指定するために、１小節目の終わりで「ソ」の鍵を押して「ラ」の鍵を離す。これにより、「ド」、「ミ」及び「ソ」の鍵が押されるのでコードＣが検出され、基本ベースパターンの２小節目の１拍目のタイミングで、ベース音が「ド」の音高で発生される。
【００１０】
以上のような演奏者の意図に対し、オフ検出を行わない自動伴奏装置では、図２０（Ｄ）に示すように、演奏者が、１小節目の終わりで「ソ」の鍵を押した時点でオン検出が行われ、コードＡｍ７が検出される。その後、演奏者が「ラ」の鍵を離してもオフ検出が行われないので、コードＡｍ７が検出された状態が継続され、基本ベースパターンの２小節目の１拍目のタイミングで、ベース音が「ラ」の音高で発生される。即ち、演奏者の意図である「ド」の音とは異なった「ラ」の音が発生される。
【００１１】
一方、オフ検出を行う自動伴奏装置では、図２０（Ｅ）に示すように、演奏者が、１小節目の終わりで「ソ」の鍵を押した時点でオン検出が行われ、コードＡｍ７が検出される。その後、演奏者が「ラ」の鍵を離すと、「ミ」、「ソ」及び「ド」の鍵が押された状態でオフ検出が行われるので、コードＣが検出される。その結果、基本ベースパターンの２小節目の１拍目のタイミングで、ベース音が「ド」の音高で発生される。即ち、演奏者の意図に合致する音が発生される。
【００１２】
【発明が解決しようとする課題】
しかしながら、オフ検出を行うように構成すると、リトリガ機能を備えた自動伴奏装置では、鍵を押したタイミングのみならず、鍵を離したタイミングでもリトリガ処理が行われる。この状態を、図２１を参照しながら説明する。図２１（Ａ）は、メモリに自動伴奏データとして記憶された、Ｃをキーとする基本ベースパターンを示す。図２１（Ａ）において、三角印は基本ベースパターンに従ってベース音の発生が開始されるタイミング、即ち、トリガ位置を示す。
【００１３】
図２１（Ｂ）は、演奏者の意図するベースパターンを示す。図２１（Ｂ）において、塗りつぶしの三角印は、鍵が押された時点でベース音の発生が開始されるタイミング、即ち、リトリガ位置を示す。演奏者は、１小節目の先頭で「ミ」、「ラ」及び「ド」の鍵を押してコードＡｍを指定する。これにより、基本ベースパターンの１拍目のタイミングでトリガされ、ベース音が「ラ」の音高で発生される。この押鍵状態が続くと、基本ベースパターンの３拍目のタイミングで再びトリガされ、次のベース音が「ラ」の音高で発生される。次に、演奏者は、４拍目で「ミ」及び「ラ」の鍵を離して「ファ」及び「ラ」の鍵を押すと、「ファ」、「ラ」及び「ド」の鍵が押されているのでコードＦが検出される。その結果、リトリガ機能により４拍目のタイミングでリトリガされ、ベース音が「ファ」の音高で発生される。
【００１４】
以上のような演奏者の意図に対し、オフ検出を行う自動伴奏装置では、図２１（Ｃ）に示すように、演奏者が１小節目の３拍目から半拍遅れたタイミングで「ミ」及び「ラ」の鍵を離すと「ド」の鍵のみが押された状態になるので、オフ検出によってコードＣが検出される。その結果、３拍目から半拍遅れたタイミングでリトリガされ、「ド」の音高でベース音が発生される。次に、演奏者が４拍目で「ファ」及び「ラ」の鍵を押すと、「ファ」、「ラ」及び「ド」の鍵が押された状態になるので、オン検出によってコードＦが検出される。その結果、４拍目のタイミングでリトリガされ、「ファ」の音高のベース音が発生される。
【００１５】
以上説明したように、リトリガ機能を有し、且つ鍵を離したタイミングでもコード検出を行うオフ検出機能を備えた自動伴奏装置では、例えば図２１（Ｃ）の１小節目の３拍目から半拍遅れたタイミングで発生するリトリガのような、演奏者の意図しないリトリガが発生する。その結果、演奏者の意図しないベース音が頻繁に発生し、演奏の妨げになるという問題がある。
【００１６】
本発明は、このような問題を解消するためになされたもので、その目的は、演奏者の意図に合致する伴奏音を発生させることができる電子楽器の自動伴奏装置を提供することにある。
【００１７】
【課題を解決するための手段】
本発明に係る電子楽器の自動伴奏装置は、上記目的を達成するために、鍵盤と、前記鍵盤の鍵が押された時及び離された時の双方でコードを検出するコード検出部と、発音タイミングを含む自動伴奏データを記憶する記憶部と、前記記憶部に記憶されている自動伴奏データの発音タイミングが到来した時に、該自動伴奏データを前記コード検出部で検出されたコードに従って展開して伴奏音を発生させ、前記発音タイミング以外のタイミングで鍵が押された時にのみ、その時点で発生されている伴奏音を消し、前記コード検出部で検出されたコードに従って伴奏音を発生させるリトリガ処理を行う制御部、とを備えている。
【００１８】
この構成によれば、コード検出は鍵盤の鍵が押された時と離された時の双方で行われるが、リトリガは鍵が押された時のみ行われ、鍵が離された時は行われない。従って、演奏者の意図しないリトリガによる伴奏音の発生が抑止されるので、演奏者の意図に合致する伴奏音を発生させることができる。
【００１９】
この電子楽器の自動伴奏装置において、前記伴奏音は、コードパート及びベースパートの少なくとも１つの音、換言すれば、コードパートの音、ベースパートの音、並びにコードパート及びベースパートの双方の音の何れかとすることができる。
【００２０】
この電子楽器の自動伴奏装置における前記制御部は、前記記憶部に記憶されている自動伴奏データの発音タイミングが到来した時に、該自動伴奏データを前記コード検出部で検出されたコードを構成する音に展開してコードパートの音を発生させ、前記発音タイミング以外のタイミングで鍵が離された時にのみ、その時点で発生されているコードパートの音のうち、前記コード検出部で検出されたコードを構成しない音を消し、残りの音をコードパートの音として持続させるように構成できる。
【００２１】
この構成によれば、鍵が離された時にリトリガ処理は行われないが、その時点で発生されているコードパートの音のうち、コード検出部で検出されたコードを構成しない音が消される。従って、リトリガ処理による伴奏音の再発生が行われないのでアタックを有する音が発生することなく、また、コードの構成音以外の音が発生されるような不自然さを避けることができる。
【００２２】
また、この電子楽器の自動伴奏装置における前記制御部は、更に、前記記憶部に記憶されている自動伴奏データの発音タイミングが到来した時に、該自動伴奏データを前記コード検出部で検出されたコードを構成する音に展開してベースパートの音を発生させ、前記発音タイミング以外のタイミングで鍵が離された時にのみ、その時点で発生されているベースパートの音のうち、特定音以外の音を消し、前記特定音のピッチを、前記コード検出部で検出されたコードのルート音と同じになるように一時的にベンドさせるように構成できる。この場合、前記特定音は、ベースパートを構成する音のうちの最低音とすることができる。
【００２３】
この構成によれば、鍵が離された時には、その時点で発生されているベースパートの音のうち、特定音以外の音が消され、特定音のピッチが、コード検出部で検出されたコードのルート音と同じになるように一時的にベンドされる。従って、リトリガ処理によるベースパートの音の再発生が行われないのでアタックを有するベース音が発生することがなく、また音程がスムーズに移行されるので不自然さを避けることができる。
【００２４】
また、この電子楽器の自動伴奏装置は、足鍵盤を更に備え、前記伴奏音は、コードパート及びベースパートの音から成り、前記制御部は、前記足鍵盤の鍵が押されたことにより前記コード検出部で検出されたコードのルート音が変更されない場合は、前記ベースパートのリトリガ処理は行わず、前記コードパートのリトリガ処理のみを行うように構成できる。
【００２５】
この構成によれば、足鍵盤が押された時に、ルート音に変更がない場合はベースパートのリトリガ処理が行われず、コードパートのリトリガ処理のみが行われる。その結果、足鍵盤の操作によるトリガをベースパートに、手鍵盤の操作によるトリガをコードパートに反映させることができるので、例えば分数コード演奏時、足鍵盤によるベースパートの制御と手鍵盤によるコードパートの制御との分離が可能になる等、コード検出による自動伴奏のレスポンスを、演奏者の意図に更に近づけることができる。
【００２６】
更に、この電子楽器の自動伴奏装置は、足鍵盤を更に備え、前記伴奏音は、ベースパートを含み、前記コード検出部は、前記足鍵盤の最後に押された鍵をベースルートとして検出し、前記制御部は、前記コード検出部でベースルートが検出された時に、ベースパートに発音中の音があればルート音で前記リトリガ処理を行い、発音中の音がなければ、最後に発音したベースパートの音を規定する前記自動伴奏データに含まれるゲートタイム及びベロシティ、並びに前記ルート音のノートナンバに従ってベースパートの音を発生させるように構成できる。
【００２７】
【発明の実施の形態】
以下、本発明の実施の形態に係る電子楽器の自動伴奏装置を、図面を参照しながら詳細に説明する。
【００２８】
図１は、本発明の自動伴奏装置が適用された電子楽器の構成を示すブロック図である。この電子楽器は、中央処理装置（以下、「ＣＰＵ」という）１０、プログラムメモリ１１、ワークメモリ１２、自動伴奏データメモリ１３、パネルインタフェース回路１４、鍵盤インタフェース回路１５、シーケンサ１６及び音源１７がバス３０によって相互に接続されている。バス３０は、上記各構成要素間で、例えばアドレス信号、データ信号、制御信号等を送受する。
【００２９】
ＣＰＵ１０は、本発明のコード検出部、制御部に対応する。このＣＰＵ１０は、プログラムメモリ１１に記憶されている制御プログラムに従って、自動伴奏機能を含む電子楽器の各種機能を実現するための処理を行う。このＣＰＵ１０にはＭＩＤＩインタフェース回路１００が接続されている。このＭＩＤＩインタフェース回路１００は、ＣＰＵ１０からのＭＩＤＩデータをＭＩＤＩ規格に従ったＭＩＤＩ信号に変換して外部装置に出力する。また、外部装置からのＭＩＤＩ信号をＭＩＤＩデータに変換してＣＰＵ１０に送る。外部装置としては、他の電子楽器、コンピュータ等を挙げることができる。
【００３０】
また、このＣＰＵ１０には、タイマ１０１が接続されている。このタイマ１０１は、所定周期で割り込み信号を発生し、ＣＰＵ１０に送る。ＣＰＵ１０は、この割り込み信号に応答して、複数鍵でコード検出を行うことに伴って発生する鍵操作チャタリング除去処理を実行する（詳細は後述する）。
【００３１】
プログラムメモリ１１は、例えばＲＯＭ（リードオンリメモリ）から構成されている。このプログラムメモリ１１は、上述した制御プログラム、ＣＰＵ１０が使用する種々の固定データ、音色を指定するための音色パラメータ等を記憶する。音色パラメータは、例えば複数の楽器音の各々について複数の音域毎に設けられている。各音色パラメータは、波形アドレス、周波数データ、エンベロープデータ、フィルタ係数等から構成されている。
【００３２】
ワークメモリ１２は、例えばＲＡＭ（ランダムアクセスメモリ）から構成されている。このワークメモリ１２は、ＣＰＵ１０によって処理される種々のデータを一時的に記憶する。このワークメモリ１２には、例えばテーブル、バッファ、レジスタ、カウンタ、フラグ等が設けられている。これらの詳細については、以下において必要の都度説明する。
【００３３】
自動伴奏データメモリ１３は、本発明の記憶部に対応し、例えばＲＯＭから構成されている。この自動伴奏データメモリ１３は、複数のリズムにそれぞれ対応する複数の自動伴奏データを記憶する。各リズムの自動伴奏データは、図２に示すように、ベーシック（ＢＡＳＩＣ）、イントロ（ＩＮＴＲＯ）、フィルイン（ＦＩＬＩＮ）及びエンディング（ＥＮＤＩＮＧ）といったパターンデータから構成されている。
【００３４】
ベーシックは当該リズムの基本的な伴奏パターンを発生し、イントロはイントロの伴奏パターンを発生し、フィルインはフィルインの伴奏パターンを発生し、エンディングはエンディングの伴奏パターンを発生するためのデータである。各パターンデータは、コードパート、ベースパート及びドラムパートといった３つのパートのパートデータから成り、各パートデータは数小節分の音符データ及び１個のエンドデータから構成されている。
【００３５】
各音符データは例えば４バイトで構成され、各バイトには、キーナンバ、ステップタイム、ゲートタイム及びベロシティが割り当てられている。キーナンバは音高を指定し、ステップタイムは発音タイミング（時刻）を指定し、ゲートタイムは発音の長さを指定し、ベロシティは発音の強さを指定する。また、エンドデータは２バイトから構成され、各バイトにはエンドマーク及びステップタイムが割り当てられている。エンドマークは、１つのパートの自動伴奏データの終わりを表す。
【００３６】
パネルインタフェース回路１４には、操作パネル１４０が接続されている。操作パネル１４０には、図３に示すように、ＬＣＤ１４１、自動伴奏スイッチ１４２、シーケンサ再生スイッチ１４３、シーケンサ録音スイッチ１４４、リズム選択スイッチ１４５、イントロスイッチ１４６、フィルインスイッチ１４７及びエンディングスイッチ１４８が設けられている。なお、図３には、本発明を説明するために必要なものだけが示されており、実際の電子楽器には、これらの他に、モード設定スイッチ、音色選択スイッチ、音量スイッチ、エフェクト選択スイッチといったスイッチ類や、各スイッチの設定状態を表すインジケータ等が設けられている。
【００３７】
ＬＣＤ１４１は、各種メッセージや電子楽器の状態を表示する他に、後述するように、コード検出処理によって検出されたコードを表示する。なお、このＬＣＤ１４１の代わりに、文字、数字、図形等を表示できるＬＥＤディスプレイ、ＣＲＴディスプレイ、プラズマディスプレイ等を用いることができる。
【００３８】
自動伴奏スイッチ１４２は、自動伴奏の開始及び停止を指示するために使用される。この自動伴奏スイッチ１４２は、押される毎に自動伴奏の開始と停止とを交互に繰り返す機能を有する。シーケンサ再生スイッチ１４３は、シーケンサ演奏の開始及び停止を指示するために使用される。このシーケンサ再生スイッチ１４３は、押される毎にシーケンサ演奏の開始と停止とを交互に繰り返す機能を有する。
【００３９】
シーケンサ録音スイッチ１４４は、シーケンサ１６への録音の開始及び停止を指示するために使用される。このシーケンサ録音スイッチ１４４は、押される毎にシーケンサ１６への録音の開始と停止とを交互に繰り返す機能を有する。
【００４０】
リズム選択スイッチ１４５は、各々にリズムが割り当てられた複数のスイッチから構成されている。このリズム選択スイッチ１４５は、自動伴奏させるリズムを選択するために使用される。
【００４１】
イントロスイッチ１４６は、イントロの伴奏を開始させるために使用される。このイントロスイッチ１４６がオンにされている状態で自動伴奏スイッチ１４２により自動伴奏の開始が指示されると、イントロの自動伴奏が開始される。一方、イントロスイッチ１４６がオフにされている状態で自動伴奏スイッチ１４２により自動伴奏の開始が指示されると、ベーシックの自動伴奏が開始される。
【００４２】
フィルインスイッチ１４７は、フィルインの自動伴奏を開始させるために使用される。イントロ又はベーシックの自動伴奏が行われている状態でフィルインスイッチ１４７が押されると、フィルインの自動伴奏を数小節分だけ実行し、元のイントロ又はベーシックの自動伴奏に戻る。
【００４３】
エンディングスイッチ１４８は、エンディングの自動伴奏を開始させるために使用される。イントロ又はベーシックの自動伴奏が行われている状態でエンディングスイッチ１４８が押されると、エンディングの自動伴奏を数小節分だけ実行し、その後、自動伴奏を終了する。
【００４４】
上述したリズム選択スイッチ１４５を構成する各スイッチ、イントロスイッチ１４６、フィルインスイッチ１４７及びエンディングスイッチ１４８は、押される毎にオンとオフとを交互に繰り返す機能を有する。
【００４５】
パネルインタフェース回路１４は、操作パネル１４０とＣＰＵ１０との間のデータの送受を制御する。即ち、パネルインタフェース回路１４は、操作パネル１４０からの信号に基づきパネルデータを生成し、ＣＰＵ１０に送る。パネルデータは、各スイッチを１ビットに対応させたビット列から構成されており、「１」でスイッチのオンを表し、「０」でスイッチのオフを表す。ＣＰＵ１０は、このパネルデータに基づいて操作パネル１４０の操作に応じた種々の処理を実行する。
【００４６】
また、パネルインタフェース回路１４は、ＣＰＵ１０から受け取った表示データをＬＣＤ１４１に送る。これにより、操作パネル１４０に搭載されたＬＣＤ１４１へのデータの表示、各種インジケータ（図示しない）の点灯／消灯の制御等が行われる。
【００４７】
鍵盤インタフェース回路１５には手鍵盤１５０及び足鍵盤１５１が接続されている。手鍵盤１５０及び足鍵盤１５１の各々は、発音／消音を指示するための複数の鍵を備えている。これら手鍵盤１５０及び足鍵盤１５１には、押鍵又は離鍵に連動して開閉し、且つ異なる押圧深さで開閉する第１のキースイッチ及び第２のキースイッチを備えた２接点方式の鍵が採用されている。
【００４８】
手鍵盤１５０は、ユーザが電子楽器をスプリットモードに設定することにより、所定の鍵位置（スプリットポイント）で機能的に２つに分割され、低音側がコード検出用鍵盤、高音側が通常演奏用鍵盤として使用される。なお、スプリットモードに設定されていない場合は、全体が通常演奏用鍵盤として使用される。なお、スプリットポイントを、ユーザが任意に設定できるように構成することもできる。
【００４９】
鍵盤インタフェース回路１５は、手鍵盤１５０及び足鍵盤１５１の各鍵の押鍵又は離鍵状態及び鍵タッチの強さを検出する。即ち、鍵盤インタフェース回路１５は、手鍵盤１５０及び足鍵盤１５１から受け取った第１及び第２のキースイッチのオン／オフ状態を示す信号から押鍵又は離鍵を示す鍵データ及び鍵タッチの強さを示すタッチデータを生成し、ＣＰＵ１０に送る。
【００５０】
鍵データは、各鍵に対応するビット列で構成されており、各ビットは鍵に設けられた２個のキースイッチが何れもオンにされている場合に押鍵中であることを示す「１」、そうでない場合に離鍵中であることを示す「０」にセットされる。上記タッチデータは、各鍵に設けられた第１のキースイッチがオンになってから第２のキースイッチがオンになるまでの時間に基づいて作成される。ＣＰＵ１０は、鍵盤インタフェース回路１５から送られてくる鍵データ及びタッチデータに基づいて、押鍵又は離鍵に応じた発音処理、消音処理及びコード検出処理を行う。
【００５１】
シーケンサ１６は、シーケンサ録音スイッチ１４４によりシーケンサ録音モードに設定されている場合に、通常演奏用鍵盤から出力される鍵データ及びタッチデータに基づいて生成された音符データ、コード検出用鍵盤から出力されるコード及び操作パネル１４０からのパネルデータに基づいて生成された楽音制御データ、例えばリズムや音色を指定するデータを、その時点におけるステップタイム、拍及び小節の各値から成る発音タイミングを表すデータと共に、シーケンスデータとして記録する。このシーケンサ１６に記録されたシーケンスデータは、シーケンサ再生スイッチ１４３で指示されることにより再生される。なお、このシーケンサ１６は、ＭＩＤＩインタフェース回路１００に接続するように構成してもよい。この場合、シーケンスデータは、ＭＩＤＩ形式のデータとして記録されることになる。
【００５２】
音源１７にはＤ／Ａ変換器１７０が接続されている。音源１７は、例えばデジタルシグナルプロセッサ（ＤＳＰ）から構成されている。この音源１７は、複数の発音チャンネルを備えており、ＣＰＵ１０からの指示に応じて楽音信号を生成する。即ち、音源１７は、ＣＰＵ１０から発音チャンネルを指定するデータと音色パラメータを受け取ると、指定された発音チャンネルをアクティブにする。アクティブにされた発音チャンネルは、図示しない楽音波形メモリから音色パラメータに対応する波形データを読み出し、これにエンベロープを付加してデジタル楽音信号を生成する。このデジタル楽音信号は、Ｄ／Ａ変換器１７０に送られる。
【００５３】
Ｄ／Ａ変換器１７０は、受け取ったデジタル楽音信号をアナログ楽音信号に変換する。このＤ／Ａ変換器１７０からの出力は、アンプ１７１に送る。アンプ１７１は、受け取った楽音信号を増幅してスピーカ１７２に送る。スピーカ１７２は、アンプ１７１からの楽音信号を音響信号に変換して出力する。これにより、スピーカ１７２から楽音が発生される。
【００５４】
次に、上記のように構成される本発明の実施の形態に係る自動伴奏装置の動作を説明する。
【００５５】
（実施の形態１）
本発明の実施の形態１に係る自動伴奏装置は、鍵を押したタイミングでコード検出を行うオン検出時にのみリトリガを行い、鍵を離したタイミングでコード検出を行うオフ検出時にはリトリガを行わないように構成されている。
【００５６】
図４は、この実施の形態１に係る自動伴奏装置の概略的な動作を説明するための図である。演奏者が１小節目の先頭で「ミ」、「ラ」及び「ド」の鍵を押してコードＡｍを指定すると、オン検出が実行されてコードＡｍが検出される。これにより、基本ベースパターンの１拍目のタイミングでトリガされ、ベース音が「ラ」の音高で発生される。この押鍵状態が続くと、基本ベースパターンの３拍目のタイミングで再びトリガされ、次のベース音が「ラ」の音高で発生される。
【００５７】
次に、演奏者が１小節目の３拍目から若干遅れたタイミングで「ミ」及び「ラ」の鍵を離すと「ド」の鍵のみが押された状態になる。その結果、３拍目から半拍遅れたタイミングでコードＣが検出される。しかしながら、オフ検出に基づく発音は行われないのでリトリガは発生せず、この検出されたコードＣに基づく「ド」の音高でのベース音の発生はなされない。
【００５８】
次に、演奏者が４拍目で「ファ」及び「ラ」の鍵を押すと、「ファ」、「ラ」及び「ド」の鍵が押された状態になるので、オン検出によってコードＦが検出される。その結果、リトリガが行われ、４拍目のタイミングで、「ファ」の音高のベース音が発生される。
【００５９】
（実施の形態２）
本発明の実施の形態２に係る自動伴奏装置は、リトリガを行う代わりに、発生されているコードパートの音のうち、コード検出処理により検出されたコードを構成しない音を消し、残りの音をコードパートの音として持続させるようにしたものである。
【００６０】
図５は、この実施の形態２に係る自動伴奏装置の概略的な動作を説明するための図である。演奏者が１小節目の先頭で「ミ」、「ラ」及び「ド」の鍵を押してコードＡｍを指定すると、オン検出が実行されてコードＡｍが検出される。これにより、基本コードパターンの１拍目のタイミングでトリガされ、「ミ」、「ラ」及び「ド」の音から成るコード音が発生される。この押鍵状態が続くと、基本コードパターンの３拍目のタイミングで再びトリガされ、次の、「ミ」、「ラ」及び「ド」の音から成るコード音が発生される。
【００６１】
次に、演奏者が１小節目の３拍目から若干遅れたタイミングで「ミ」及び「ラ」の鍵を離すと「ド」の鍵のみが押された状態になり、コードＣが検出される。ここで、コードＣを構成する音は「ド」、「ミ」及び「ソ」であるので、直前のコードＡｍを構成する音である「ミ」、「ラ」及び「ド」のうちコードＣを構成しない「ラ」の音が消される。従って、１小節目の４拍目のタイミングでは、「ド」及び「ミ」の音がコードパートの音として持続される。
【００６２】
次に、演奏者が２小節目の１拍目で「ファ」及び「ラ」の鍵を押すと、「ファ」、「ラ」及び「ド」の鍵が押された状態になるので、オン検出によってコードＦが検出される。その結果、基本コードパターンの２小節目の１拍目のタイミングでトリガが行われ、コードＦを構成する「ファ」、「ラ」及び「ド」の音がコードパートの音として発生される。
【００６３】
（実施の形態３）
本発明の実施の形態３に係る自動伴奏装置は、鍵を離したタイミングでコード検出を行うオフ検出では、リトリガを行う代わりに、発生されているベースパートの音のうち、特定音以外の音を消し、特定音のピッチを、コード検出処理で検出されたコードのルート音（コードルート）と同じになるように一時的にベンドさせるようにしたものである。
【００６４】
図６は、この実施の形態３に係る自動伴奏装置の動作を説明するための図である。演奏者が１小節目の先頭で「ミ」、「ラ」及び「ド」の鍵を押してコードＡｍを指定すると、オン検出が実行されてコードＡｍが検出される。これにより、基本ベースパターンの１拍目のタイミングでトリガされ、ベース音が「ラ」の音高で発生される。この押鍵状態が続くと、基本ベースパターンの３拍目のタイミングで再びトリガされ、次のベース音が「ラ」の音高で発生される。
【００６５】
次に、演奏者が１小節目の４拍目のタイミングで「ミ」及び「ラ」の鍵を離すと「ド」の鍵のみが押された状態になり、コードＣが検出される。ここで、コードＣのルート音は「ド」であるので、直前のコードＡｍのルート音である「ラ」から「ド」に変化するピッチベンドが行われる。従って、１小節目の３拍目から４拍目にかけて「ラ」から「ド」にピッチベンドするベース音が発生される。
【００６６】
次に、演奏者が２小節目の１拍目で「ファ」及び「ラ」の鍵が押されると、「ファ」、「ラ」及び「ド」の鍵が押された状態になるので、オン検出によってコードＦが検出される。その結果、コードＦのルート音である「ファ」の音がベース音として発生される。
【００６７】
次に、上述した実施の形態１〜３に係る機能を実現するための自動伴奏装置の動作をフローチャートを参照しながら説明する。
【００６８】
（１）メイン処理
図７は、本発明の実施の形態１〜３に係る自動伴奏装置が適用された電子楽器のメイン処理を示すフローチャートである。このメイン処理ルーチンは、電源の投入により起動される。電源が投入されると、先ず、初期化処理が行われる（ステップＳ１０）。この初期化処理では、ＣＰＵ１０の内部がリセットされると共に、ワークメモリ１２に定義されているバッファ、レジスタ、カウンタ、フラグ等に初期値が設定される。
【００６９】
この初期化処理が終了すると、次いで、パネル処理が行われる（ステップＳ１１）。このパネル処理では、先ず、操作パネル１４０がスキャンされる。具体的には、ＣＰＵ１０はパネルインタフェース回路１４にスキャン指令を送る。このスキャン指令を受け取ったパネルインタフェース回路１４は、操作パネル１４０上の各スイッチのオン又はオフを表す信号を読み込み、パネルデータとしてＣＰＵ１０に送る。ＣＰＵ１０は、受け取ったパネルデータ中の各スイッチに対応するビットが「０」から「１」に変化したかどうかを調べることにより、各スイッチのオンイベントがあるかどうかを調べる。
【００７０】
そして、スイッチのオンイベントがあることが判断されると、そのスイッチに対応してワークメモリ１２に設けられたフラグが反転される。具体的には、自動伴奏スイッチ１４２、シーケンサ再生スイッチ１４３、シーケンサ録音スイッチ１４４、リズム選択スイッチ１４５、イントロスイッチ１４６、フィルインスイッチ１４７及びエンディングスイッチ１４８のオンイベントがあると、自動伴奏フラグ、シーケンサ再生フラグ、シーケンサ録音フラグ、リズム選択フラグ、イントロフラグ、フィルインフラグ及びエンディングフラグがそれぞれ反転される。これにより、スイッチが押される毎にオンとオフとが交互に繰り返される機能が実現されている。以後は、これらのフラグを参照して各スイッチのイベントに対する処理が実行される。
【００７１】
次いで、鍵盤処理が行われる（ステップＳ１２）。この鍵盤処理では、手鍵盤１５０及び足鍵盤１５１がスキャンされる。このスキャンにより得られた信号は、鍵盤インタフェース回路１５を介して、鍵データ及びタッチデータとしてＣＰＵ１０に送られる。ＣＰＵ１０は、受け取った鍵データに基づいて、発音処理、消音処理及びコード検出処理等を実行する。この際、鍵データが、足鍵盤１５１が押されたことを示している場合は、ワークメモリ１２に設けられたベース検出要求フラグがセットされる。この鍵盤処理の詳細は後述する。
【００７２】
次いで、シーケンサ／自動伴奏処理が行われる（ステップＳ１３）。このシーケンサ／自動伴奏処理では、シーケンサ１６に記録されているシーケンスデータの再生、シーケンサ１６へのシーケンスデータの録音及び自動伴奏データに基づく自動伴奏音の発生などが行われる。このシーケンサ／自動伴奏処理の詳細は後述する。
【００７３】
次いで、その他の処理が行われる（ステップＳ１４）。その後、ステップＳ１１に戻り、以下、同様の処理が繰り返される。上記ステップＳ１１〜Ｓ１４の繰り返し実行の過程で、操作パネル１４０、手鍵盤１５０及び足鍵盤１５１が操作されると、その操作に対応する処理が実行され、電子楽器及び自動伴奏装置としての機能が実現されている。
【００７４】
（２）鍵盤処理
次に、メイン処理ルーチンのステップＳ１２で実行される鍵盤処理の詳細を、図８に示したフローチャートを参照しながら説明する。
【００７５】
鍵盤処理では、先ず、鍵イベントの有無が調べられる（ステップＳ２０）。具体的には、ＣＰＵ１０は鍵盤インタフェース回路１５にスキャン指令を送る。このスキャン指令を受け取った鍵盤インタフェース回路１５は、手鍵盤１５０及び足鍵盤１５１の各鍵に設けられたキースイッチのオン又はオフを表す信号を読み込む。そして、この読み込んだ信号に基づいて鍵データを生成してＣＰＵ１０に送る。ＣＰＵ１０は、受け取った鍵データ中の各ビットが変化したかどうかを調べることにより各鍵のイベントがあるかどうかを調べる。鍵データ中の各ビットが「０」から「１」に変化した場合はオンイベントが発生した旨が、「１」から「０」に変化した場合はオフイベントが発生した旨がそれぞれ認識される。
【００７６】
上記ステップＳ２０で鍵イベントが発生したことが認識されると、次いで、コード検出が必要であるかどうかが調べられる（ステップＳ２１）。具体的には、この電子楽器が自動伴奏モード（自動伴奏フラグが「１」）に設定されており、且つコード検出用鍵盤の鍵イベントが発生したかどうかが調べられる。ここで、コード検出が必要でない、つまり自動伴奏モードに設定されていない、又は自動伴奏モードに設定されているが通常演奏用鍵盤の鍵イベントであることが判断されると、発音／消音処理が実行される（ステップＳ２２）。この場合、鍵イベントがオンイベントである場合は発音処理が実行され、オフイベントである場合は消音処理が実行される。
【００７７】
発音処理では、鍵盤インタフェース回路１５から送られてきた鍵データに基づいて押された鍵のキーナンバが生成される。そして、この生成されたキーナンバーと鍵盤インタフェース回路１５から送られてきたタッチデータとに基づいてプログラムメモリ１１中の１つの音色パラメータが選択されて音源１７に送られる。これにより、上記キーナンバで指定された高さの音が上記タッチデータで指定された音量で発音される。消音処理では、図示しない楽音波形メモリから読み出された波形データに、高速で減衰するエンベロープを付加するためのデータが音源１７に送られる。これにより、離鍵に応答して消音がなされる。
【００７８】
次いで、録音処理が行われる（ステップＳ２３）。この録音処理は、シーケンサ録音スイッチ１４４が押されることによって、電子楽器がシーケンサ録音モード（シーケンサ録音フラグが「１」）に設定されている場合にのみ実行される。この録音処理では、既に説明したようにして生成されたシーケンスデータがシーケンサ１６に送られて記録される。次いで、ＭＩＤＩ送信処理が行われる（ステップＳ２４）。このＭＩＤＩ送信処理では、上記シーケンスデータがＭＩＤＩ形式のデータに変換され、ＭＩＤＩインタフェース回路１００を介して外部装置に送信される。次いで、その他の処理が行われる（ステップＳ２５）。その後、シーケンスはメイン処理ルーチンにリターンする。
【００７９】
上記ステップＳ２１でコード検出が必要であることが判断されると、押鍵マップ作成処理が実行される（ステップＳ２６）。この押鍵マップ作成処理の詳細を、図９のフローチャートを参照しながら説明する。
【００８０】
押鍵マップ作成処理では、先ず、鍵イベントがオンイベントであるかどうかが調べられる（ステップＳ３０）。ここで、オンイベントであることが判断されると、ワークメモリ１２に設けられたオン検出要求カウンタに、押鍵から所定時間が経過したことを判断するためのオンカウント値がセットされる（ステップＳ３１）。次いで、押鍵マップ中の、オンイベントが発生した鍵に対応するビットが「１」にセットされる（ステップＳ３２）。ここで、押鍵マップは、コード検出用鍵盤の鍵のオン及びオフ状態を１オクターブにまとめて記憶するバッファである。この押鍵マップは、コード検出用鍵盤から送られてくる鍵データをオクターブ毎に区切り、区切られた複数のオクターブにそれぞれ対応する複数の鍵データの論理和をとることにより生成される。その後、シーケンスは鍵盤処理ルーチンを介してメイン処理ルーチンにリターンする。
【００８１】
上記ステップＳ３０で、オンイベントでないことが判断されると、オフイベントが発生したことが認識され、押鍵マップ中の、オフイベントが発生した鍵に対応するビットが「０」にクリアされる（ステップＳ３３）。次いで、押鍵マップはゼロであるかどうかが調べられる（ステップＳ３４）。即ち、鍵のオフイベントがあっても他に押されている鍵が存在するかどうかが調べられる。ここで、押鍵マップはゼロでないことが判断されると、ワークメモリ１２に設けられたオフ検出要求カウンタに、離鍵から所定時間が経過したことを判断するためのオフカウント値がセットされる（ステップＳ３５）。その後、シーケンスは鍵盤処理ルーチンを介してメイン処理ルーチンにリターンする。上記ステップＳ３４で、押鍵マップがゼロであることが判断された場合も、シーケンスは鍵盤処理ルーチンを介してメイン処理ルーチンにリターンする。
【００８２】
（３）タイマ処理
次に、メイン処理と並行して実行されるタイマ処理を、図１０に示したフローチャートを参照しながら説明する。このタイマ処理は、所定の時間間隔でタイマ１０１から発生される割り込み信号に応答して起動される。
【００８３】
タイマ処理では、先ずオン検出中であるかどうかが調べられる（ステップＳ４０）。具体的には、オン検出要求カウンタがカウント動作中であるかどうかが調べられる。ここで、オン検出中であることが判断されると、オン検出要求カウンタの内容がデクリメント（−１）される（ステップＳ４１）。次いで、オン検出カウンタの内容がゼロになったかどうかが調べられる（ステップＳ４２）。ここで、ゼロになったことが判断されると、押鍵から所定時間が経過したことが認識され、ワークメモリ１２に設けられたオン検出要求フラグが「１」にセットされる（ステップＳ４３）。一方、ゼロでないことが判断されると、ステップＳ４３の処理はスキップされる。上記ステップＳ４０で、オン検出中でないことが判断されると、ステップＳ４１〜Ｓ４３の処理はスキップされる。
【００８４】
以上の処理により、押鍵から所定時間が経過した後にオン検出要求が出されることになる。上記所定時間は、複数鍵でコード検出を行うことに伴って発生する鍵操作チャタリングが収束する時間になるように設定される。従って、不確定な状態でコード検出が実行されることが防止される。
【００８５】
次いで、オフ検出中であるかどうかが調べられる（ステップＳ４４）。具体的には、オフ検出要求カウンタがカウント動作中であるかどうかが調べられる。ここで、オフ検出中であることが判断されると、オフ検出要求カウンタの内容がデクリメント（−１）される（ステップＳ４５）。次いで、オフ検出カウンタの内容がゼロになったかどうかが調べられる（ステップＳ４６）。ここで、ゼロになったことが判断されると、押鍵から所定時間が経過したことが認識され、ワークメモリ１２に設けられたオフ検出要求フラグが「１」にセットされる（ステップＳ４７）。上記ステップＳ４６でゼロでないことが判断された場合及び上記ステップＳ４０で、オン検出中でないことが判断された場合は、シーケンスは割り込まれた位置にリターンする。
【００８６】
以上の処理により、離鍵から所定時間が経過した後にオフ検出要求が出されることになる。上記所定時間は、複数鍵でコード検出を行うことに伴って発生する鍵操作チャタリングが収束する時間になるように設定される。従って、不確定な状態でコード検出が実行されることが防止される。
【００８７】
（４）シーケンサ／自動伴奏処理
次に、メイン処理ルーチンのステップＳ１３で実行されるシーケンサ／自動伴奏処理の詳細を、図１１及び図１２に示したフローチャートを参照しながら説明する。
【００８８】
このシーケンサ／自動伴奏処理では、先ず、クロックの抽出処理が行われる（ステップＳ５０）。ＣＰＵ１０に内蔵されるテンポクロック用タイマ（図示省略）から１ステップタイムの時間間隔で発生されるクロックは、ワークメモリ１２に設けられたクロックカウンタで計数されている。このクロックの抽出処理では、今回のシーケンサ／自動伴奏処理でクロックカウンタから読み出された値ＮＯＷから、前回のシーケンサ／自動伴奏処理でクロックカウンタから読み出された値ＯＬＤを減算することによりクロック値ＣＬＫが算出される。このクロック値ＣＬＫは、前回のシーケンサ／自動伴奏処理が実行されてから今回のシーケンサ／自動伴奏処理が実行されるまでに経過した時間をステップタイム値で表している。
【００８９】
次いで、クロック値ＣＬＫが、変数Ｉとしてワークメモリ１２に設けられたテンポラリレジスタにセットされる（ステップＳ５１）。次いで、テンポラリレジスタに格納されている変数Ｉがゼロであるかどうかが調べられる（ステップＳ５２）。ここで、変数Ｉがゼロでないことが判断されると、現在発音中の音のゲートタイム値がデクリメントされ、このデクリメントの結果、ゲートタイム値がゼロになれば発音中の音を消すための消音処理が行われる（ステップＳ５３）。次いで、テンポラリレジスタに格納されている変数Ｉがデクリメント（−１）され（ステップＳ５４）、その後、ステップＳ５２に分岐する。
【００９０】
上記ステップＳ５２〜Ｓ５４の処理は、ステップＳ５２で変数Ｉがゼロになったことが判断されるまで繰り返される。以上の繰り返し処理により、前回のシーケンサ／自動伴奏処理が実行されてから今回のシーケンサ／自動伴奏処理が実行されるまでに１ステップタイム以上が経過した場合であっても、発音中の音はゲートタイムで指定された音長が経過した時点で消音される。
【００９１】
上記ステップＳ４２で、変数Ｉがゼロであることが判断されると、次いで、コード検出処理が行われる（ステップＳ５５）。このコード検出処理では、コードルート、コードタイプ及びベースルートが検出される。このコード検出処理の詳細は後述する。
【００９２】
次いで、自動伴奏フラグが「１」にセットされているかどうかを調べることにより、自動伴奏中であるかどうかが調べられる（ステップＳ５６）。ここで、自動伴奏中でないことが判断されると、次いで、シーケンサ再生フラグが「１」にセットされているかどうかを調べることにより、シーケンサ再生中であるかどうかが調べられる（ステップＳ５７）。ここで、シーケンサ再生中でないことが判断されると、自動伴奏中でもシーケンサ再生中でもないことが認識され、シーケンスはメイン処理ルーチンにリターンする。
【００９３】
上記ステップＳ５６で自動伴奏中であることが判断された場合又は上記ステップＳ５７でシーケンサ再生中であることが判断された場合は、次いで、クロック値ＣＬＫが変数Ｉとして再度テンポラリレジスタにセットされる（ステップＳ５８）。次いで、テンポラリレジスタに格納されている変数Ｉがゼロであるかどうかが調べられる（ステップＳ５９）。ここで、変数Ｉがゼロでないことが判断されると、次いで、シーケンサ再生中であるかどうかが調べられる（ステップＳ６０）。ここで、シーケンサ再生中であることが判断されると、シーケンサ再生処理が行われる（ステップＳ６１）。このシーケンサ再生処理では、シーケンサ１６からシーケンスデータが読み出され、発音タイミングが到来していれば、つまり、別途カウントされているステップタイム、拍及び小節の値がシーケンスデータに含まれるステップタイム、拍及び小節の値に一致すれば、そのシーケンスデータに基づく発音処理が行われる。上記ステップＳ６０でシーケンサ再生中でないことが判断されると、ステップＳ６１の処理はスキップされる。
【００９４】
次いで、自動伴奏中であるかどうかが調べられる（ステップＳ６２）。ここで、自動伴奏中であることが判断されると、自動伴奏処理が行われる（ステップＳ６３）。この自動伴奏処理では、コードパート、ベースパート及びドラムパートの各々について、自動伴奏電子楽器メモリ１３から自動伴奏データが読み出される。そして、読み出された自動伴奏データの発音タイミングが到来していれば、つまり、自動伴奏データに含まれる音符データ中のステップタイムが、ワークメモリ１２に設けられたステップタイムカウンタでカウントされているステップタイム値ＳＴＥＰに一致すれば、そのステップタイムを有する音符データに従った発音処理が行われる。上記ステップＳ６０で自動伴奏中でないことが判断されると、ステップＳ６３の処理はスキップされる。
【００９５】
次いで、ステップカウント処理が実行される（ステップＳ６４）。このステップカウント処理では、ステップタイムカウンタでカウントされているステップタイム値ＳＴＥＰを更新する処理が行われる。このステップカウント処理の詳細は後述する。
【００９６】
次いで、シーケンサ録音フラグが「１」にセットされているかどうかを調べることにより、シーケンサ録音中であるかどうかが調べられる（ステップＳ６５）。ここで、シーケンサ録音中であることが判断されると、拍及び小節の書き込み処理が実行される（ステップＳ６６）。ステップＳ６５でシーケンサ録音中でないことが判断されると、このステップＳ６６の処理はスキップされる。
【００９７】
次いで、テンポラリレジスタに格納されている変数Ｉがデクリメント（−１）され（ステップＳ６７）、その後、シーケンスは、ステップＳ５９に分岐する。上記ステップＳ５９〜Ｓ６７の処理は、ステップＳ５９で変数Ｉがゼロになったことが判断されるまで繰り返される。この繰り返し処理により、前回のシーケンサ／自動伴奏処理が実行されてから今回のシーケンサ／自動伴奏処理が実行されるまでに１ステップタイム以上が経過した場合であっても、発音されるべき自動伴奏音及びシーケンサ再生音は全て発音され、また、シーケンサ１６に録音すべきデータは全て録音される。更に、ステップタイムカウンタでカウントされているステップタイム値ＳＴＥＰも最新の状態に更新される。
【００９８】
上記ステップＳ５９で、変数Ｉがゼロであることが判断されると、次いで、リトリガ処理が行われる（ステップＳ６８）。このリトリガ処理は、クロックカウンタでカウントされているクロックの値とは無関係に、換言すれば、自動伴奏データで規定される発音タイミングとは無関係に、上述したコード検出処理（ステップＳ５５）でリトリガ要求が出された時に実行される。リトリガ要求が出されたか否かは、ワークメモリ１２に設けられたコードパートリトリガ要求フラグ及びベースパートリトリガ要求フラグが「１」にセットされたかどうかにより判断される。このリトリガ処理では、コード検出処理で検出されたコードルート、コードタイプ及びベースルートに基づいて生成され、ワークメモリ１２に設けられたリトリガ用バッファに格納された音符データに従って発音がなされる。これにより、自動伴奏データに基づくタイミングで発生される伴奏音とは別に、鍵が押されたタイミングで伴奏音を発生するリトリガ機能が実現されている。その後、シーケンスはメイン処理ルーチンにリターンする。
【００９９】
（４−１）ステップカウント処理
次に、シーケンサ／自動伴奏処理のステップＳ６４で実行されるステップカウント処理の詳細を、図１３に示すフローチャートを参照しながら説明する。
【０１００】
このステップカウント処理では、先ず、ステップタイムカウンタに格納されているステップタイム値ＳＴＥＰがインクリメント（＋１）される（ステップＳ７０）。次いで、ステップタイム値ＳＴＥＰがステップタイムの最大値以上になったかどうかが調べられる（ステップＳ７１）。ここで、ステップタイムの最大値は、１拍が例えば９６ステップから構成されている場合は「９６」である。
【０１０１】
このステップＳ７１で、ステップタイム値ＳＴＥＰがステップタイムの最大値以上になっていないことが判断されると、シーケンスはシーケンサ／自動伴奏処理にリターンする。一方、ステップタイム値ＳＴＥＰがステップタイムの最大値以上になったことが判断されると、ステップタイムカウンタの内容がゼロにクリアされる（ステップＳ７２）。次いで、ワークメモリ１２に設けられた拍カウンタに格納されている拍値ＢＥＡＴがインクリメント（＋１）される（ステップＳ７３）。
【０１０２】
次いで、拍値ＢＥＡＴのインクリメントの結果、拍カウンタに格納されている拍値ＢＥＡＴが拍の最大値以上になったかどうかが調べられる（ステップＳ７４）。ここで、拍の最大値は、その時点で選択されているリズムの拍子、例えば、３拍子であれば「３」、４拍子であれば「４」である。
【０１０３】
ここで、拍値ＢＥＡＴが拍の最大値以上になっていないことが判断されると、シーケンスはシーケンサ／自動伴奏処理にリターンする。一方、拍値ＢＥＡＴが拍の最大値以上になったことが判断されると、拍カウンタの内容がゼロにクリアされる（ステップＳ７５）。次いで、ワークメモリ１２に設けられた小節カウンタに格納されている小節値ＢＡＲがインクリメント（＋１）される（ステップＳ７６）。
【０１０４】
次いで、パターンエンドであるかどうかが調べられる（ステップＳ７６）。これは、その時点のステップタイム値ＳＴＥＰ、拍値ＢＥＡＴ及び小節値ＢＡＲで指定される自動伴奏データにエンドマークが存在するどうかを調べることにより行われる。ここで、パターンエンドであることが判断されると、次いで、自動伴奏データを読み出す位置が、現在使用されている自動伴奏パターンの先頭に戻される（ステップＳ７８）。次いで、イントロ／フィルイン（ＩＮＴＲＯ／ＦＩＬ）の伴奏パターンの終了であるかどうかが調べられる（ステップＳ７９）。ここで、イントロ／フィルインの伴奏パターンの終了であることが判断されると、次に自動伴奏に用いられる伴奏パターンがベーシック（ＢＡＳＩＣ）の伴奏パターンへ変更される（ステップＳ８０）。その後、ステップＳ８３に分岐する。
【０１０５】
上記ステップＳ７９で、イントロ／フィルインの伴奏パターンの終了でないことが判断されると、エンディング（ＥＮＤＩＮＧ）の伴奏パターンの終了であるかどうかが調べられる（ステップＳ８１）。ここで、エンディングの伴奏パターンの終了であることが判断されると、自動伴奏終了処理が実行される（ステップＳ８２）。この処理では、自動伴奏フラグが「０」にクリアされる。これにより、自動伴奏処理（ステップＳ６３）の実行はスキップされるので、以後は自動伴奏音は発生されない。一方、エンディングの伴奏パターンの終了でないことが判断されると、ステップＳ８３に分岐する。上記ステップＳ７７でパターンエンドでないことが判断された場合も、ステップＳ８３に分岐する。
【０１０６】
ステップＳ８３では、パターン変更要求があるかどうかが調べられる。具体的には、フィルインフラグ及びエンディングフラグが「１」にセットされているかどうかが調べられる。ここで、パターン変更要求があることが判断されると、伴奏パターン変更処理が行われる（ステップＳ８４）。
【０１０７】
この伴奏パターン変更処理では、フィルインフラグが「１」の場合は、次にフィルインの伴奏パターンが使用されるように変更される。また、エンディングフラグが「１」の場合は、次にエンディングの伴奏パターンが使用されるように変更される。その後、シーケンスは、シーケンサ／自動伴奏処理にリターンする。上記ステップＳ８３で、パターン変更要求がないことが判断された場合も、シーケンスは、シーケンサ／自動伴奏処理にリターンする。
【０１０８】
以上の処理により、ステップタイムカウンタの内容がインクリメントされ、その結果に基づいて拍カウンタ及び小節カウンタの内容が更新されると共に、１つの伴奏パターンに基づく自動伴奏が終了した時点で他の伴奏パターンに基づく自動伴奏に変更する機能が実現されている。
【０１０９】
（４−２）コード検出処理
次に、シーケンサ／自動伴奏処理のステップＳ５５で実行されるコード検出処理の詳細を、図１４〜図１６に示すフローチャートを参照しながら説明する。
【０１１０】
このコード検出処理では、先ず、オン検出要求フラグが「１」であるかどうかが調べられる（ステップＳ９０）。このステップＳ９０で、オン検出要求フラグが「０」であることが判断されると、次いで、オフ検出要求フラグが「１」であるかどうかが調べられる（ステップＳ９１）。このステップＳ９１で、オフ検出要求フラグが「０」であることが判断されると、次いで、ベース検出要求フラグが「１」であるかどうかが調べられる（ステップＳ９２）。このステップＳ９２で、ベース検出要求フラグが「０」であることが判断されると、オン検出要求フラグ、オフ検出要求フラグ及びベース検出要求フラグが何れも「０」であることが認識されされ、シーケンスはシーケンサ／自動伴奏処理ルーチンにリターンする。
【０１１１】
一方、ステップＳ９０でオン検出要求フラグが「１」であることが判断された場合、ステップＳ９１でオフ検出要求フラグが「１」であることが判断された場合又はステップＳ９２でベース検出要求フラグが「１」であることが判断された場合は、コード検出テーブル参照処理が行われる（ステップＳ９３）。このコード検出テーブル参照処理の詳細を図１７のフローチャートに示す。
【０１１２】
このコード検出テーブル参照処理では、先ず、手鍵盤１５０のコード検出用鍵盤に基づいて、上記ステップＳ２６で作成された押鍵マップを参照することにより、押鍵があるかどうかが調べられる（ステップＳ１３０）。そして、押鍵がないことが判断されると、このシーケンスは、コード検出処理ルーチンにリターンする。
【０１１３】
一方、上記ステップＳ１３１で押鍵がないことが判断されると、次いで、コード検出テーブルを参照する処理が行われる（ステップＳ１３２）。ここで、コード検出テーブルは、１オクターブ内の押鍵パターンとコードとの対応を記憶したテーブルである。このステップＳ１３１では、押鍵マップの内容とコード検出テーブルの内容とを順次比較し、一致するものを検索する。ここで、一致するものが見つかるとコードが確定し、そうでなければコードは確定しないものと認識される。コードが確定した場合、換言するとコードが検出された場合は、そのコードのコードルート、コードタイプ及びベースルートが、ワークメモリ１２に設けられたコードバッファに格納される。
【０１１４】
次いで、コードが確定しているかどうかが調べられる（ステップＳ１３３）。ここで、コードが確定していることが判断されると、３鍵以上が押されているかどうかが調べられる（ステップＳ１３４）。ここで、３鍵以上が押されていることが判断されると、次いで、足鍵盤１５１の押鍵があるかどうかが調べられる（ステップＳ１３５）。
【０１１５】
このステップＳ１３５で、足鍵盤１５１の押鍵があることが判断されると、足鍵変換テーブルによる分数コードの検出が行われる（ステップＳ１３６）。足鍵変換テーブルは、コードの構成音に足鍵盤の音が加わった場合に通常のコード又は分数コードに変換するためのテーブルである。このステップＳ１３６では、ステップＳ１３２の処理で確定したコードと押された足鍵盤１５１の鍵の音とに基づいて通常のコード又は分数コードが決定される。その後、シーケンスはコード検出処理ルーチンにリターンする。上記ステップＳ１３５で足鍵盤１５１の押鍵がないことが判断された場合は、分数コードを検出する必要はないので、シーケンスはコード検出処理ルーチンにリターンする。
【０１１６】
上記ステップＳ１３４で、３鍵以上が押されていないことが判断された場合は、次いで、足鍵盤１５１の押鍵があるかどうかが調べられる（ステップＳ１３７）。そして、足鍵盤１５１が押されていることが判断されると、足鍵盤１５１の鍵をルート音として、再度コード検出が行われる（ステップＳ１３８）。この再コード検出により検出されたコードのコードルート及びコードタイプは、コードバッファに格納される。その後、シーケンスはコード検出処理ルーチンにリターンする。これにより、手鍵盤１５０で１鍵又は２鍵が押されている場合であっても、足鍵盤１５１の鍵を交えたコード検出を行うことで、コード検出の精度が向上する。
【０１１７】
上記ステップＳ１３３でコードが確定していないことが判断された場合も、足鍵盤１５１の押鍵があるかどうかが調べられ（ステップＳ１３７）、足鍵盤１５１の押鍵があることが判断されると、足鍵盤１５１の鍵をルート音として、再度コード検出が行われる（ステップＳ１３８）。これにより、手鍵盤１５０だけではコードが成立しない場合であっても、足鍵盤１５１の鍵を加えることによりコードとして成立する場合があるので、コード検出の精度が向上する。
【０１１８】
コード検出処理ルーチンでは、次いで、コードが確定しているかどうかが調べられる（ステップＳ９４）。これは、コードバッファに新たなコードが格納されたかどうかを調べることにより行われる。ここで、コードが確定していることが判断されると、コード更新処理が行われる（ステップＳ９５）。このコード更新処理では、ワークメモリ１２に設けられたコードレジスタに記憶された現在のコードが、コードバッファの内容で置き換えられる。
【０１１９】
次いで、更新がなされたかどうか、つまり、コードバッファの内容で置き換えられたコードレジスタの内容が、置き換えられる前のコードと同じであるかどうかが調べられる（ステップＳ９６）。そして、更新がなされたことが判断されると、オン検出要求フラグが「１」であるかどうかが調べられる（ステップＳ９７）。ここで、オフ検出要求フラグが「１」であることが判断されると、離鍵がなされたことが認識され、オフ検出ではリトリガ処理は行われないので、検出されたコードが、リトリガを実行しないことを表すデータと共に、シーケンスデータとしてシーケンサ１６に録音される（ステップＳ９９）。その後、シーケンスはステップＳ１００に分岐する。
【０１２０】
一方、上記ステップＳ９７で、オフ検出要求フラグが「１」でないことが判断されると、押鍵がなされたことが認識され、オン検出ではリトリガ処理が行われるので、検出されたコードが、リトリガを実行することを表すデータと共に、シーケンスデータとしてシーケンサ１６に録音される（ステップＳ９８）。その後、シーケンスはステップＳ１００に進む。
【０１２１】
ステップＳ１００では、上述したようにして検出されたコード（コードレジスタの内容）がＬＣＤ１４１に表示される。次いで、自動伴奏中であるかどうかが調べられる（ステップＳ１０１）。このステップＳ１０１で、自動伴奏中であることが判断されると、次いで、オフ検出要求フラグが「１」であるかどうかが調べられる（ステップＳ１０２）。このステップＳ１０２でオフ検出要求フラグが「１」でないことが判断されると、押鍵がなされたものと認識され、ベースルートの変更があったかどうかが調べられる（ステップＳ１０３）。これはコードレジスタの内容を調べることにより行われる。このステップＳ１０３で、ベースルートの変更があったことが判断されると、ベースパートの消音・リトリガ要求処理が行われる（ステップＳ１０４）。
【０１２２】
このベースパートの消音・リトリガ要求処理では、図１８に示すように、先ず、ベースパートの消音が行われる（ステップＳ１４０）。次いで、発音中の音の最低音が検索される（ステップＳ１４１）。より具体的には、自動伴奏の発音を音源１７に割り当てるアサイナから発音中の音の最低音が検索される。そして、最低音が存在するかどうかが調べられる（ステップＳ１４２）。この場合、例えば、休符のタイミングでは最低音は存在しないことになる。このステップＳ１４２で、最低音が存在することが判断されると、発音中の最低音に対応する音符データが、リトリガ用バッファにセットされる（ステップＳ１４３）。音符データには、上述したように、ゲートタイム、ベロシティ及びノートナンバが含まれる。その後、シーケンスはステップＳ１４５に分岐する。
【０１２３】
一方、最低音が存在しないことが判断されると、前回発音したベース音に対応する音符データが、リトリガ用バッファにセットされる（ステップＳ１４４）。そして、シーケンスはステップＳ１４５に進む。ステップＳ１４５では、ベースパートリトリガ要求フラグが「１」にセットされる。その後、シーケンスはコード検出ルーチンにリターンする。これにより、後に実行されるシーケンサ／自動伴奏処理のステップＳ６８において、ベース音が発音される。
【０１２４】
以上の処理により、足鍵盤１５１の最後に押された鍵をベースルートとして検出し、この時、ベースパートに発音中の音があればルート音でリトリガ処理を行い、発音中の音がなければ、最後に発音したベースパートの音を規定する音符データに含まれるゲートタイム及びベロシティ、並びにルート音のノートナンバに従ってベースパートの音を発生させる機能が実現されている。
【０１２５】
上記ステップＳ１０３で、ベースルートの変更がなかったことが判断されると、ステップＳ１０４の処理はスキップされる。次いで、コードパートの音が消されると共に、リトリガ要求処理が行われる（ステップＳ１０５）。コードパートリトリガ要求フラグが「１」にセットされる。これにより、後に実行されるシーケンサ／自動伴奏処理のステップＳ６８において、検出されたコードの構成音が発音される。その後、シーケンスはステップＳ１０８に進む。以上のステップＳ１０３〜Ｓ１０５の処理により、足鍵盤１５１の鍵が押されたことによりコード検出部で検出されたコードのルート音が変更されない場合は、ベースパートのリトリガ処理は行わず、コードパートのリトリガ処理のみを行う機能が実現されている。これにより、足鍵盤１５１の操作によるトリガをベースパートに、手鍵盤１５０の操作によるトリガをコードパートに反映させることができるので、例えば分数コード演奏時、コード検出による自動伴奏のレスポンスを、演奏者の意図に更に近づけることができる。
【０１２６】
上記ステップＳ１０２で、オフ検出要求フラグが「１」であることが判断されると、離鍵がなされたものと認識され、ベースパートのピッチ変更が行われる（ステップＳ１０６）。即ち、発生されているベースパートの音のうち、特定音以外の音が消され、特定音のピッチが、検出されたコードのルート音（コードルート）と同じになるように一時的にベンドされる。このピッチ変更は、例えば図１９に示すようなベースベンド値テーブルを参照して行われる。具体的には、検出されたコードのルート音を新ベースルート音とし、それまで発音されていたベースルート音との音高の差が半音単位で算出される。そして、この算出された差に対応するベンド値（半音単位で記憶されている）がベースベンド値テーブルから読み出され、音源１７に送られる。これにより、周知の技術を用いて、従前の音高から新ベースルートの音高にピッチが変化される。これにより、上述した実施の形態３の機能が実現されている。この場合、リトリガによる発音のように、アタックを有するベース音が発生されることがないので、不自然さを避けることができる。
【０１２７】
次いで、検出されたコードの構成音以外を消音する処理が行われる（ステップＳ１０７）。具体的には、発生されているコードパートの音のうち、検出されたコードを構成しない音が消され、残りの音がコードパートの音として持続される。これにより、上述した実施の形態２の機能が実現されている。この場合、リトリガによる発音のように、アタックを有するコード音が発生することがないので音程の移行がスムーズに行われ、不自然さを避けることができる。その後、シーケンスはステップＳ１０８に分岐する。
【０１２８】
ステップＳ１０８、Ｓ１０９及びＳ１１０では、オン検出フラグ、オフ検出フラグ及びベース検出要求フラグがそれぞれクリアされる。その後、シーケンスは、シーケンサ／自動伴奏処理ルーチンにリターンする。
【０１２９】
上記ステップＳ９６で、更新がなされなかったことが判断されると、次いで、ベース検出要求フラグが「１」であるかどうかが調べられる（ステップＳ１１１）。ここで、ベース検出要求フラグが「１」であることが判断されると、足鍵盤１５１が押されたことが認識され、オン検出ではリトリガ処理が行われるので、検出されたコードが、リトリガを実行することを表すデータと共に、シーケンスデータとしてシーケンサ１６に録音される（ステップＳ１１２）。次いで、上述したようにして検出されたコードがＬＣＤ１４１に表示される（ステップＳ１１３）。
【０１３０】
次いで、自動伴奏中であるかどうかが調べられる（ステップＳ１１４）。ここで、自動伴奏中であることが判断されると、ベースパート消音及びリトリガ要求処理が行われる（ステップＳ１１５）。このステップＳ１１５の処理は、上述したステップＳ１０４の処理と同じである。その後、シーケンスはステップＳ１０８に分岐する。上記ステップＳ１１４で自動伴奏中でないことが判断された場合も、シーケンスはステップＳ１０８に分岐する。以上のステップＳ１１１〜Ｓ１１５の処理により、手鍵盤１５０を押すことにより検出されたコードが従前のコードから変更されなくても、足鍵盤１５１の鍵が押された場合は、ベースパートのリトリガを行う機能が実現されている。
【０１３１】
上記ステップＳ９４で、コードが確定していないことが判断されると、次いで、ベース検出要求フラグが「１」であるかどうかが調べられる（ステップＳ１１６）。ここで、ベース検出要求フラグが「１」であることが判断されると、足鍵盤１５１が押されたかどうかが調べられる（ステップＳ１１７）。このステップＳ１１７で、足鍵盤１５１が押されたことが判断されると、ベースルートによるコード変換処理が実行される（ステップＳ１１８）。このコード変換処理では、分数コードを分数でない通常のコードに変換する処理が行われる。例えばＡｍ７／Ｃという分数コードがＣ６という通常のコードに変換される。
【０１３２】
次いで、コード更新処理が行われる（ステップＳ１１９）。即ち、コードレジスタに記憶された現在のコードが、上記ステップＳ１１８で得られたコードに置き換えられる。次いで、オン検出ではリトリガ処理が行われるので、検出されたコードが、リトリガを実行することを表すデータと共に、シーケンスデータとしてシーケンサ１６に録音される（ステップＳ１２０）。次いで、更新されたコードがＬＣＤ１４１に表示される（ステップＳ１２１）。
【０１３３】
次いで、自動伴奏中であるかどうかが調べられる（ステップＳ１２２）。ここで、自動伴奏中であることが判断されると、ベースパート消音及びリトリガ要求処理が行われる（ステップＳ１２３）。このステップＳ１２３の処理は、上述したステップＳ１０４の処理と同じである。その後、シーケンスはステップＳ１０８に分岐する。上記ステップＳ１２２で自動伴奏中でないことが判断された場合、ステップＳ１１７で足鍵盤１５１が押されたことが判断された場合及び上記ステップＳ１１６でベース検出要求フラグが「１」であるも、シーケンスはステップＳ１０８に分岐する。以上のステップＳ１１６〜Ｓ１２３の処理により、手鍵盤１５０の押鍵によりコードが確定しない場合であっても、足鍵盤１５１の鍵を押すことにより、その鍵に対応する音をベースルートとするコード変換によりコードが得られる場合はベースパートのリトリガを行う機能が実現されている。
【０１３４】
以上説明したように、本発明の実施の形態に係る電子楽器の自動伴奏装置によれば、コード検出は鍵盤の鍵が押された時と離された時の双方で行われるが、リトリガは鍵が押された時のみ行われ、鍵が離された時は行われない。従って、演奏者の意図しないリトリガによる伴奏音の発生が抑止されるので、演奏者の意図に合致する伴奏音を発生させることができる。
【０１３５】
なお、上述した実施の形態は、次のように変形できる。即ち、前回行われたコード検出部によるコードの検出が、鍵盤の鍵が押された時に行われたオン検出であるか離された時に行われたオフ検出であるかをバッファに記憶しておき、ＣＰＵ１０は、コード検出部によるオン検出がなされた時に、バッファがオフ検出がなされたことを記憶していれば、コード検出部で検出されたコードが、前回にコード検出部で検出されたコードから変更されていなくてもリトリガ処理を行うように構成できる。
【０１３６】
【発明の効果】
以上詳述したように、本発明によれば、演奏者の意図に合致する伴奏音を発生させることができる電子楽器の自動伴奏装置を提供できる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係る自動伴奏装置が適用された電子楽器の構成を示すブロック図である。
【図２】本発明の実施の形態に係る自動伴奏装置で用いられる自動伴奏データの構成を示す図である。
【図３】本発明の実施の形態に係る自動伴奏装置で用いられる操作パネルの一例を示す図である。
【図４】本発明の実施の形態１に係る自動伴奏装置の概略動作を説明するための図である。
【図５】本発明の実施の形態２に係る自動伴奏装置の概略動作を説明するための図である。
【図６】本発明の実施の形態３に係る自動伴奏装置の概略動作を説明するための図である。
【図７】本発明の実施の形態１〜３に係る自動伴奏装置におけるメイン処理を示すを示すフローチャートである。
【図８】図７に示したメイン処理で実行される鍵盤処理の詳細を示すフローチャートである。
【図９】図８に示した鍵盤処理で実行される押鍵マップ作成処理の詳細を示すフローチャートである。
【図１０】本発明の実施の形態１〜３に係る自動伴奏装置におけるタイマ処理を示すを示すフローチャートである。
【図１１】図７に示したメイン処理で実行されるシーケンサ／自動伴奏処理（その１）の詳細を示すフローチャートである。
【図１２】図７に示したメイン処理で実行されるシーケンサ／自動伴奏処理（その２）の詳細を示すフローチャートである。
【図１３】図１２に示したシーケンサ／自動伴奏処理で実行されるステップカウント処理の詳細を示すフローチャートである。
【図１４】図１１に示したシーケンサ／自動伴奏処理で実行されるコード検出処理（その１）の詳細を示すフローチャートである。
【図１５】図１１に示したシーケンサ／自動伴奏処理で実行されるコード検出処理（その２）の詳細を示すフローチャートである。
【図１６】図１１に示したシーケンサ／自動伴奏処理で実行されるコード検出処理（その３）の詳細を示すフローチャートである。
【図１７】図１４〜図１６に示したコード検出処理で実行されるコード検出テーブル参照処理の詳細を示すフローチャートである。
【図１８】図１４〜図１６に示したコード検出処理で実行されるベースパート消音・リトリガ処理の詳細を示すフローチャートである。
【図１９】図１４〜図１６に示したコード検出処理で実行されるベースパートピッチ変更処理で使用されるベースベンド値テーブルを示す図である。
【図２０】従来の自動伴奏装置におけるコード検出の動作を説明するための図である。
【図２１】従来の自動伴奏装置におけるリトリガの動作を説明するための図である。
【符号の説明】
１０  ＣＰＵ
１１  プログラムメモリ
１２  ワークメモリ
１３  自動伴奏データメモリ
１４  パネルインタフェース回路
１５  鍵盤インタフェース回路
１６  シーケンサ
１７  音源
１００  ＭＩＤＩインタフェース回路
１０１  タイマ
１４０  操作パネル
１４１  ＬＣＤ
１４２  自動伴奏スイッチ
１４３  シーケンサ再生スイッチ
１４４  シーケンサ録音スイッチ
１４５  リズム選択スイッチ
１４６  イントロスイッチ
１４７  フィルインスイッチ
１４８  エンディングスイッチ
１５０  手鍵盤
１５１  足鍵盤
１７０  Ｄ／Ａ変換器
１７１  アンプ
１７２  スピーカ
【図１】
0003844286.tif 000002
【図２】
0003844286.tif 000003
【図３】
0003844286.tif 000004
【図４】
0003844286.tif 000005
【図５】
0003844286.tif 000006
【図６】
0003844286.tif 000007
【図７】
0003844286.tif 000008
【図８】
0003844286.tif 000009
【図９】
0003844286.tif 000010
【図１０】
0003844286.tif 000011
【図１１】
0003844286.tif 000012
【図１２】
0003844286.tif 000013
【図１３】
0003844286.tif 000014
【図１４】
0003844286.tif 000015
【図１５】
0003844286.tif 000016
【図１６】
0003844286.tif 000017
【図１７】
0003844286.tif 000018
【図１８】
0003844286.tif 000019
【図１９】
0003844286.tif 000020
【図２０】
0003844286.tif 000021
【図２１】
0003844286.tif 000022