(57)【要約】【課題】演奏者が曲の途中で誤って自動演奏を進行させて元に戻す際に、さらに使い勝手に優れたコンサートマジック演奏を行うことができる自動演奏装置を提供せんとするものである。【解決手段】自動演奏部１０ａによって、自動演奏データメモリ１３に記憶された音符データが、押鍵に従って読み出され、自動演奏が行われる構成で、ヘルプスイッチ２０１が押されることで、リバース押鍵待機部１０ｂにより、自動演奏の進行が戻されて、押された小節の頭まで押鍵の検出によらずに上記自動演奏データに従った自動演奏が上記自動演奏部１０ａによって行われ、該小節の頭まで自動演奏が進行した際に、演奏者の押鍵が検出されるのを待機する状態にする。【選択図】        図３
2004258050.tif 000002
【特許請求の範囲】
【請求項１】
複数の音符データで成る自動演奏データを記憶する記憶手段と、
押鍵がなされたことを検出する押鍵検出手段と、
該押鍵検出手段により押鍵がなされたことが検出される毎に、該記憶手段から音符データを読み出し、該読み出された音符データに基づいて発音を行い、以て自動演奏を進行させる自動演奏手段と、
自動演奏の進行中に指示を与える指示手段と、
該指示手段による指示に応じて、自動演奏の進行を戻して、所定の位置までは押鍵の検出によらずに上記自動演奏データに従った自動演奏を上記自動演奏手段に行わせ、該位置まで自動演奏が進行した際に押鍵の検出を待機する状態にするリバース押鍵待機手段と
を備えたことを特徴とする自動演奏装置。
【請求項２】
上記指示手段による指示が与えられた際に、上記リバース押鍵待機手段は、それまで演奏中であった小節から任意の数小節前に自動演奏の進行を戻して、上記自動演奏手段により上記自動演奏データに従った自動演奏を行わせ、上記演奏中であった小節の前でその自動演奏の進行を止め、次の押鍵検出の待機状態に設定することを特徴とする請求項１記載の自動演奏装置。
【請求項３】
複数の音符データで成る自動演奏データを記憶し、押鍵の検出毎に、該記憶された音符データを読み出して、それに基づいて発音を行い、以て自動演奏を進行させる自動演奏方法であって、押鍵検出毎に進行する自動演奏中に、所定の指示がなされた場合に、該指示に応じて自動演奏の進行を戻して、所定の位置までは押鍵の検出によらずに上記自動演奏データに従った自動演奏を行わせ、該位置まで自動演奏が進行した際に押鍵の検出を待機する状態にすることを特徴とする自動演奏方法。
【請求項４】
演奏者による指示が与えられた際に、それまで演奏中であった小節から任意の数小節前に自動演奏の進行を戻して、上記自動演奏データに従った自動演奏を行わせ、上記演奏中であった小節の前でその自動演奏の進行を止め、次の押鍵検出の待機状態に設定することを特徴とする請求項３記載の自動演奏方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば電子楽器に適用される自動演奏装置及び自動演奏方法に関し、特に自動演奏データに基づいて行われる自動演奏の進行を制御する技術に関する。
【０００２】
【従来の技術】
従来の自動演奏装置は、複数の曲のそれぞれに対応する複数の自動演奏データをメモリに記憶している。各自動演奏データは、複数の音符データで構成されている。各音符データは、１音を発生するために使用され、例えば図１６に示すように、キーナンバ、ステップタイム、ゲートタイム及びベロシティをそれぞれ指定するデータで構成されている。「キーナンバ」は例えば鍵盤装置の各鍵に付された番号に対応し、音高（音程）を指定するために使用される。「ステップタイム」は発音開始のタイミング（時刻）を指定するために使用される。「ゲートタイム」は発音の長さ（音長）を指定するために使用される。「ベロシティ」は、音の強さを指定するために使用される。１つの曲に対応する自動演奏データは、このような音符データがステップタイム順に並べられて構成されている。
【０００３】
この自動演奏装置において１つの曲が選択され、自動演奏の開始が指示されると、自動演奏装置の制御部は、選択された曲に対応する自動演奏データをメモリから読み出し、この読み出した自動演奏データに基づいて発音する。これにより、選択された曲が自動的に演奏される。
【０００４】
具体的には、自動演奏の開始が指示されると、シーケンサカウンタ（後述のＳＥＱ＿ＣＮＴ）のカウントアップ動作が開始される。シーケンサカウンタは、１ステップ毎にインクリメントされる。１ステップは、例えば１拍の１／２４、１／４８、１／９６等といった具合に機種によって固有に定義されている。１拍の実時間はテンポに従って定まる。従って、１ステップの実時間、つまりシーケンサカウンタのカウントアップの実時間間隔はテンポに従って決定されることになる。
【０００５】
このシーケンサカウンタが動作している状態で、メモリから１つの音符データが読み出される。そして、音符データ中のステップタイムとシーケンサカウンタの内容とが比較される。そして、これらが一致しない場合は、その音符データは発音タイミングに至っていないものと判断される。そして、以下同様にして所定周期で比較動作が繰り返される。この比較動作の繰り返し実行中に、音符データ中のステップタイムとシーケンサカウンタの内容とが一致すると、その音符データは発音タイミングに至ったものと判断され、その音符データに基づく発音処理が行われる。この際、その音符データ中のゲートタイムデータがゲートタイム（後述のＧａｔｅ［Ｎｏｔｅ］）にセットされる。これにより、音符データ中のキーナンバで指定された音高及びベロシティで指定された強さを有する音の発生が開始される。１つの音符データ基づく発音の開始が完了すると、次の音符データがメモリから読み出され、上述したと同様の処理が繰り返される。
【０００６】
一方、発音が開始された音は、音符データ中のゲートタイムで指定された時間が経過することにより消音される。即ち、上記発音処理においてゲートタイムデータがセットされたゲートタイムを、ゲートタイムカウンタで減算する。そして、ゲートタイムの内容がゼロ以下になった時に発音中の音を消すための消音処理が行われる。以上のようにして発音処理と消音処理とが次々に実行されることにより１つの曲が自動的に演奏される。
【０００７】
ところで、近年、上述した自動演奏装置の技術を応用した、コンサートマジック機能（後述のＣＭ）付き自動演奏装置が開発されている。ここに、「コンサートマジック機能」とは、演奏者によって指示されたタイミング、例えば押鍵されたタイミングで音符データをメモリから読み出し、この音符データに基づいて発音を開始させる機能である。このコンサートマジック機能付き自動演奏装置では、一般に、上述した従来の自動演奏装置で使用される自動演奏データが使用される。但し、自動演奏データを構成する各音符データ中のステップタイムデータは使用されない。その代わりに、発音タイミングは、外部から演奏者によって与えられる。
【０００８】
また、コンサートマジック機能付き自動演奏装置においては、鍵盤装置は単に発音タイミングを与える手段として使用される。即ち、鍵盤装置の何れかの鍵が押されると、次のステップタイムデータを有する音符データに基づく発音処理が行われ、これにより自動演奏が進行する。
【０００９】
要するに、コンサートマジック機能付きの自動演奏装置は、音高及び音長は自動演奏データに基づいて決定され、発音タイミングと音の強さは演奏者の指示によって決定される自動演奏装置ということができる。従来の自動演奏装置では、自動演奏が自動的に進行するので演奏者が介入する余地がない。これに対し、コンサートマジック機能付き自動演奏装置では、演奏者が発音タイミングを指示することによって自動演奏が進行するので、演奏者は、あたかも自分が演奏をしているような満足感を得ることができる。
【００１０】
このような満足感の得られるコンサートマジック機能付きの自動演奏装置でも、演奏者が発音タイミングを指示することによって自動演奏が進行すると、自動演奏の進行を元に戻すことができない。従って、演奏者が誤って自動演奏を進行させると元に戻すことができないので、使い勝手に劣るという問題があった。
【００１１】
そこで、本出願人は、リバーススイッチを押すなどの操作により、所定の指示が与えられる毎に、任意の位置まで小節単位でコンサートマジック演奏を戻すリバース処理が行われる構成につき提案を行った（特許文献１参照）。それにより演奏者が曲の途中で誤って自動演奏を進行させても元に戻すことができるので、使い勝手に優れたコンサートマジック演奏を行うことができるようになる。
【００１２】
【特許文献１】
特開平１１−３１１９８９号公報（第９−１１頁、図１０及び図１１）
【００１３】
【発明が解決しようとする課題】
しかし、上記構成では、小節単位毎に所定の位置まで単に戻されるだけであり、演奏者にしてみればどこまで戻っているのかはっきり分からない場合が多い。従って自分が次に押鍵した場合、曲のどの位置から進行するのか分からなくなってしまい（演奏者にしてみればこれから弾こうとする場所が分からなくなってしまい）、当初予想していた以上の使い勝手の良さが引き出されるものではなかった。
【００１４】
本発明は以上のような実情に鑑み創案されたもので、演奏者が曲の途中で誤って自動演奏を進行させて元に戻す際に、さらに使い勝手に優れたコンサートマジック演奏を行うことができる自動演奏装置及び自動演奏方法を提供せんとするものである。
【００１５】
【課題を解決するための手段】
本発明に係る自動演奏装置は、
複数の音符データで成る自動演奏データを記憶する記憶手段と、
押鍵がなされたことを検出する押鍵検出手段と、
該押鍵検出手段により押鍵がなされたことが検出される毎に、該記憶手段から音符データを読み出し、該読み出された音符データに基づいて発音を行い、以て自動演奏を進行させる自動演奏手段と、
自動演奏の進行中に指示を与える指示手段と、
該指示手段による指示に応じて、自動演奏の進行を戻して、所定の位置までは押鍵の検出によらずに上記自動演奏データに従った自動演奏を上記自動演奏手段に行わせ、該位置まで自動演奏が進行した際に押鍵の検出を待機する状態にするリバース押鍵待機手段と
を備えたことを基本的特徴としている。
【００１６】
上記構成によれば、上記指示手段で指示が与えられた際、上記リバース押鍵待機手段により、自動演奏の進行を戻して、所定の位置までは押鍵の検出によらずに上記自動演奏データに従った自動演奏を上記自動演奏手段に行わせ、該位置まで自動演奏が進行した際に押鍵の検出を待機する状態にすることになるので、どこまで戻ったかを演奏者がカラオケ演奏状態で確認することができるので、曲調が解り、次の押鍵のタイミングもより適切に行うことができるようになる。
【００１７】
上記指示手段による指示が与えられた際に、上記リバース押鍵待機手段は、それまで演奏中であった小節から任意の数小節（例えば１小節）前に自動演奏の進行を戻して、上記自動演奏手段により上記自動演奏データに従った自動演奏を行わせ、上記演奏中であった小節の前でその自動演奏の進行を止め、次の押鍵検出の待機状態に設定するようにする（表示もそこで止まっていることが分かるようにする）と、演奏者が曲の途中で誤って自動演奏を進行させても早期に元に戻すことができるようになる（請求項２）。
【００１８】
また請求項３及び請求項４の構成は、上記請求項１及び請求項２の装置の構成を、方法の構成としてとらえ直し規定されたものである。
【００１９】
すなわち請求項３の自動演奏方法の構成は、請求項１の構成に対応しており、より具体的には、複数の音符データで成る自動演奏データを記憶し、押鍵の検出毎に、該記憶された音符データを読み出して、それに基づいて発音を行い、以て自動演奏を進行させる自動演奏方法であって、押鍵検出毎に進行する自動演奏中に、所定の指示がなされた場合に、該指示に応じて自動演奏の進行を戻して、所定の位置までは押鍵の検出によらずに上記自動演奏データに従った自動演奏を行わせ、該位置まで自動演奏が進行した際に押鍵の検出を待機する状態にすることを特徴としている。
【００２０】
また請求項４の自動演奏方法の構成は、請求項２の構成に対応しており、より具体的には、演奏者による指示が与えられた際に、それまで演奏中であった小節から任意の数小節前に自動演奏の進行を戻して、上記自動演奏データに従った自動演奏を行わせ、上記演奏中であった小節の前でその自動演奏の進行を止め、次の押鍵検出の待機状態に設定することを特徴としている。
【００２１】
【発明の実施の形態】
以下、本発明の実施の形態に係る自動演奏装置を、図面を参照しながら詳細に説明する。なお、この自動演奏装置は独立した装置として構成できるが、以下では電子楽器に組み込まれた自動演奏装置について説明する。
【００２２】
図１は、本発明の実施の形態に係る自動演奏装置が適用された電子楽器の構成を示すブロック図である。この電子楽器は、システムバス２０で相互に接続された中央処理装置（以下、「ＣＰＵ」という。）１０、プログラムメモリ１１、ワークメモリ１２、自動演奏データメモリ１３、鍵盤スキャン回路１４、楽音発生回路１５及びタイマ１６で構成されている。ＣＰＵ１０には操作パネル１０１、外部インタフェース回路１０２が接続されている。また、このＣＰＵ１０には、タイマ１６から割込信号が供給される。鍵盤スキャン回路１４には、鍵盤装置１４１が接続されている。更に、楽音発生回路１５とシステムバス２０との間にはキー＆トーンアサイナ１５１が介在しており、また上記楽音発生回路１５には増幅器１５２が接続され、この増幅器１５２にはスピーカ１５３が接続されている。
【００２３】
ＣＰＵ１０は、プログラムメモリ１１に記憶されている制御プログラムに従ってこの電子楽器の全体を制御する。このＣＰＵ１０で行われる処理については、後にフローチャートを参照しながら詳細に説明する。
【００２４】
操作パネル１０１には、例えば図２に示すように、コンサートマジックスイッチ（以下、「ＣＭスイッチ」という）２００、本願構成の指示部に当たるヘルプスイッチ（ＨＥＬＰスイッチ）２０１、曲ボタン２０２が設けられている。なお、図示は省略してあるが、電子楽器にはこれらのスイッチ以外に例えば自動演奏スイッチ、音量スイッチ、音色選択スイッチ、残響効果選択スイッチ等が設けられている。また、操作パネル１０１には、種々のメッセージを表示するためのディスプレイ装置として使用されるＬＣＤ画面３００が設けられている。
【００２５】
ＣＭスイッチ２００は、コンサートマジック機能を使用するかどうかを指定するために使用される。このＣＭスイッチ２００の設定状態は、後述するＣＭフラグで記憶される。このＣＭフラグは、ＣＭスイッチ２００が押される度に反転する。即ち、電子楽器が通常演奏モードにある時（ＣＭフラグ＝０）にＣＭスイッチ２００が押されると、ＣＭフラグが「１」にセットされてコンサートマジックモード（以下、「ＣＭモード」という）に移る。一方、ＣＭモードにある時（ＣＭフラグ＝１）にＣＭスイッチ２００が押されるとＣＭフラグが「０」にクリアされて通常演奏モードに移る。
【００２６】
ヘルプスイッチ（ＨＥＬＰスイッチ）２０１は、上記ＣＰＵ１０で構成されるリバース押鍵待機部１０ｂに該リバース押鍵待機部の機能を実行させる指示を与えるために使用される。
【００２７】
曲ボタン２０２は、演奏者がコンサートマジック演奏用の複数の曲の中から所望の曲を選択するために使用され、該ボタンを適宜回転させ、上記ＬＣＤ画面３００上に表示される曲の中から選択できることになる。この曲ボタン２０２によって選択された曲の曲番号は、後述する曲番号レジスタに記憶される。
【００２８】
操作パネル１０１は、図示しないパネルインタフェース回路を含む。このパネルインタフェース回路は、ＣＰＵ１０からの指令に応じて操作パネル１０１上の各スイッチをスキャンする。そして、このスキャンにより得られた各スイッチの開閉状態を示す信号に基づいてパネルデータを作成する。このパネルデータの各ビットは、上記各スイッチに対応し、例えば「１」でスイッチオン、「０」でスイッチオフ状態を表す。このパネルデータは、操作パネル１０１上の各スイッチが押されたかどうかを判断するために使用される（詳細は後述する）。
【００２９】
また、パネルインタフェース回路は、ＣＰＵ１０から送られてきた表示データを操作パネル１０１上のＬＣＤ画面３００に送る。これにより、表示データに従ったメッセージがＬＣＤ画面３００に表示される。
【００３０】
外部インタフェース回路１０２は、ＣＰＵ１０と外部装置との間のデータの送受を制御する。この外部インタフェース回路１０２としては、外部に接続される機器の種類に応じて、例えばＭＩＤＩインタフェース、ＲＳ２３２Ｃインタフェース、ＳＣＳＩインタフェース等の汎用インタフェース又は機種固有のインタフェースを用いることができる。外部装置としては、例えば他の電子楽器、パーソナルコンピュータ、シーケンサ等を用いることができる。この実施の形態では、外部インタフェース回路１０２としてＭＩＤＩインタフェース回路が用いられるものとする。
【００３１】
更に、ＣＰＵ１０に接続されたタイマ１６は、ＣＰＵ１０からセットされるデータに従った時間間隔で割込信号を発生する。従って、このタイマ１６に、テンポに比例した時間間隔で割込信号を発生させることができる。この割込信号はＣＰＵ１０に供給され、後述する各割込処理ルーチンを起動するトリガーとして使用される。
【００３２】
プログラムメモリ１１は、例えばリードオンリメモリ（以下、「ＲＯＭ」という）で構成されている。このプログラムメモリ１１には、上述した制御プログラムの他に、ＣＰＵ１０が使用する種々の固定データが記憶されている。このプログラムメモリ１１には、更に音色を指定するための複数の音色パラメータが記憶されている。１つの音色パラメータは、所定の楽器音の所定の音域の音色を指定するために使用される。各音色パラメータは、例えば波形アドレス、周波数データ、エンベロープデータ、フィルタ係数等で構成されている。
【００３３】
ワークメモリ１２は、例えばランダムアクセスメモリ（以下、「ＲＡＭ」という）で構成されている。このワークメモリ１２は、ＣＰＵ１０が各種処理を行う際に、種々のデータを一時記憶するために使用される。具体的には、このワークメモリ１２には、この電子楽器を制御するための各種レジスタ、カウンタ、フラグ等が定義されている。以下に主要なレジスタ、カウンタ、フラグ等を示す。なお、下記以外については、以下において出現する都度説明する。
【００３４】
（１）自動演奏フラグ：この電子楽器が自動演奏モードにあるか通常演奏モードにあるかを記憶する。
（２）コンサートマジックフラグ（以下、「ＣＭフラグ」という）：この電子楽器がＣＭモードにあるか自動演奏モードにあるかを記憶する。
（３）曲番号レジスタ：コンサートマジック演奏用の曲の曲番号を記憶する。
（４）アドレスレジスタ（Ｒ＿ＡＤＤ）：現在実行中の音符データが置かれている自動演奏データメモリ１３上のアドレス（以下、「読出アドレス」という）を保持する。
（５）キーオンカウンタ：押鍵中の鍵の数を計数する。このキーオンカウンタは、押鍵によりインクリメントされ、離鍵によりデクリメントされる。このキーオンカウンタの内容がゼロの場合は、全鍵が離されていることを意味する。
（６）データ読出リクエストフラグ：押鍵があった場合にセットされるフラグであり、自動演奏データメモリ１３から音符データを読み出すべきことを指示するために使用される。
（７）シーケンサカウンタ（ＳＥＱ＿ＣＮＴ）：タイマ割込が発生する度にインクリメントされるカウンタである。
（８）ゲートタイムカウンタ（Ｇａｔｅ＿ＣＮＴ）：１ステップタイム毎にインクリメントされるカウンタである。このゲートタイムカウンタの内容は、後述するコンサートマジック演奏処理において、ゲートタイムを減ずるタイミングが到来したかどうかを判断するために使用される。このゲートタイムカウンタの内容が変化した時に、ゲートタイムを減ずるタイミングであることが認識される。
（９）ステップバッファ（ｓｔｅｐ＿ｂｕｆ）：読み出したノートデータのステップタイム値を保持する。
【００３５】
鍵盤スキャン回路１４には、複数の鍵を有する鍵盤装置１４１が接続されている。この鍵盤装置１４１は、通常演奏モードでは、押鍵によって発音を指示し、離鍵によって消音を指示するために使用される。一方、ＣＭモードでは、コンサートマジック演奏を進めるトリガー（具体的には、次の音符データを読み出すトリガー）として使用される。この鍵盤装置１４１には、例えば、異なる押圧深さで夫々オンにされる第１及び第２のキースイッチを各鍵に備えた２接点方式が採用されている。
【００３６】
上記鍵盤スキャン回路１４は、ＣＰＵ１０からの指令に応じて鍵盤装置１４１上の各キースイッチをスキャンする。そして、このスキャンにより得られた各キースイッチの開閉状態を示す信号に基づいて、鍵盤データを作成する。鍵盤データは、各鍵を１ビットに対応させたビット列で成り、各ビットは、例えば「１」で押鍵中、「０」で離鍵中であることを表す。この際、例えば第１及び第２のキースイッチの双方がオンになっている場合に押鍵中であることを表す「１」のデータが作成され、それ以外の場合は離鍵中であることを表す「０」のデータが作成される。当該構成は、本発明の押鍵検出手段の構成に相当する。
【００３７】
また、押鍵によって第１のキースイッチ（その鍵に備えられている第１のキースイッチ）がオンになってから第２のキースイッチ（同じくその鍵に備えられている第２のキースイッチ）がオンになるまでの時間が計測され、この計測された時間に基づいてベロシティデータが作成される。これら鍵盤データ及びベロシティデータは、システムバス２０を介してＣＰＵ１０に送られる。ＣＰＵ１０は、鍵盤データに基づいて押鍵／離鍵がなされたかどうかを判断する（詳細は後述する）。
【００３８】
自動演奏データメモリ１３は、ＲＯＭで構成されている。この自動演奏データメモリ１３には、コンサートマジック演奏用の複数の曲の夫々に対応する複数の自動演奏データが記憶されている。これらの自動演奏データは、通常の自動演奏、コンサートマジック機能を使用した自動演奏等に共通に使用される。各自動演奏データには曲番号が付されている。コンサートマジック演奏用の自動演奏データとしては、曲番号レジスタに格納されている曲番号と同一の曲番号を有する自動演奏データが選択される。これら各自動演奏データは、従来の技術の欄で説明したと同様に、音符データの集合で構成されている。
【００３９】
ＣＰＵ１０は、上述のように、プログラムメモリ１１から所定のプログラムを読み出し、ワークメモリ１２を使用しながら、図１各部の制御を行うと共に、本実施例構成では、後述する本発明の自動演奏部１０ａ及びリバース押鍵待機部１０ｂを構成する。
【００４０】
楽音発生回路１５は、後述する自動演奏部１０ａからキー＆トーンアサイナ１５１が受け取ったトーン・ボリューム、キーナンバ及びベロシティの各データに基づき、上記キー＆トーンアサイナ１５１によって割り付けられた各チャンネル毎に上記データに基づき所定の音色データの読み出しが行われる波形メモリ（図示しない）を有する音源で構成されている。波形メモリは、各音色パラメータに対応する波形データを記憶している。波形データは、例えば自然楽器音に基づいて生成された楽音信号をパルスコード変調（ＰＣＭ）することによって作成される。この波形メモリは、例えばＲＯＭで構成できる。
【００４１】
キー＆トーンアサイナ１５１は、発音を行う場合に、少なくとも１個のチャンネルを発音用に割り当て、この割り当てられたチャンネルに音色パラメータを供給する。音色パラメータを受け取ったチャンネルは、上記楽音発生回路１５により波形メモリから波形データを順次読み出し、これにエンベロープを付加して楽音信号を生成する。この楽音信号は、増幅器１５２で増幅された後にスピーカ１５３に供給される。これにより、スピーカ１５３で音響信号に変換されて放音される。
【００４２】
以上の構成では、本発明の構成は、図３のような機能ブロック構成として示されることになる。
【００４３】
すなわち、本発明の構成は、複数の音符データで成る自動演奏データを記憶する自動演奏データメモリ１３と、押鍵がなされたことを検出する上記鍵盤スキャン回路１４で構成される押鍵検出部と、該押鍵検出部により押鍵がなされたことが検出される毎に、該自動演奏データメモリ１３から音符データを読み出し、該読み出された音符データに基づいて、上記キー＆トーンアサイナ１５１及び楽音発生回路１５以降の回路構成から発音させ、以て自動演奏を進行させる自動演奏部１０ａと、自動演奏の進行中に指示を与える上記操作パネル１０１上のヘルプスイッチ（ＨＥＬＰ  ＳＷ）２０１で構成される指示部と、該指示部による指示に応じて、自動演奏の進行を戻して、所定の位置までは押鍵の検出によらずに上記自動演奏データに従った自動演奏を上記自動演奏部１０ａに行わせ、該位置まで自動演奏が進行した際に押鍵の検出を待機する状態にするリバース押鍵待機部１０ｂとを備えている。このうち、上記自動演奏部１０ａとリバース押鍵待機部１０ｂとは、上述のように、上記ＣＰＵ１０で構成される。
【００４４】
本実施例構成では、図４に示すように、例えば、演奏者が小節４の部分をコンサートマジックにより演奏（押鍵によるトリガーのみ与える状態）途中で、誤って自動演奏を進行させても、ヘルプスイッチ（ＨＥＬＰ  ＳＷ）２０１を押すことで、その１つ前の小節の表示に切り替わり、小節３から自動演奏が再生され、小節４の頭で鍵盤スキャン回路１４の押鍵検出部による押鍵トリガ待機状態に設定されることになる。
【００４５】
次に、上記の構成において、図５〜図１５に示したフローチャートを参照しながらこの電子楽器の動作を詳細に説明する。なお、上記フローチャートに示された処理は、何れもＣＰＵ１０により行われる。
【００４６】
（１）メイン処理：図５はこの電子楽器のメイン処理を示すフローチャートである。このメイン処理ルーチンは電源の投入により起動される。即ち、電源がＯＮにされると、先ず、ＣＰＵ１０、ＲＡＭ（ワークメモリ１２）及びその他の初期化処理が行われる（ステップＳ１０１〜ステップＳ１０３）。これらの初期化処理では、ＣＰＵ１０の内部のハードウエアが初期状態に設定されると共に、ワークメモリ１２に定義されているレジスタ、カウンタ、フラグ等に初期値が設定される。
【００４７】
この初期化処理が終了すると、次いで、鍵盤処理が行われる（ステップＳ１０４）。この鍵盤処理では、詳細は後述するが、電子楽器が通常演奏モードにある場合は押鍵に応じた発音処理及び離鍵に応じた消音処理が行われる。一方、ＣＭモードにある場合は、押鍵があった旨を、データ読出リクエストフラグで記憶する。
【００４８】
その後パネルスイッチ処理が行われる（ステップＳ１０５）。このパネルスイッチ処理では、詳細は後述するが、操作パネル１０１上の各スイッチに割り当てられている機能を実現するための処理が行われる。
【００４９】
そして自動演奏処理が行われる（ステップＳ１０６）。この自動演奏処理の詳細については後述する。
【００５０】
次いで、「その他のメイン処理」が行われる（ステップＳ１０７）。この処理では、上述した以外の処理、ペダルのＯＮ／ＯＦＦ処理、ＭＩＤＩ処理、ＤＳＰ処理が行われる。
【００５１】
その後ステップＳ１０４に戻り、以下ステップＳ１０４〜Ｓ１０７の処理が繰り返される。この繰り返し実行の過程で、操作パネル１０１の操作、鍵盤装置１４１の操作、外部インタフェース回路１０２でのＭＩＤＩデータの受信等があると、それらに応じた処理が行われることにより電子楽器及び自動演奏装置としての各種機能が実現されている。
【００５２】
（２）割込処理：割込処理は、割込信号に応じて、上記メイン処理ルーチンの各処理に割り込んで行われる。本実施例の割込処理は、２つの割込処理が行われている。この割込処理の詳細は、図６及び図７のフローチャートに示されている。
【００５３】
図６に示す２ｍｓｅｃ毎のタイマ割込処理は、タイマ１６からの割込信号に応じて行われ、先ず、パネルスイッチ状態が取得され（ステップＳ２０１）、ＳＷ＿ＮＥＷレジスタにそのパネルスイッチ状態が保存される（ステップＳ２０２）。そのパネルスイッチ状態に応じて、パネルのＬＥＤ画面３００にその状態が表示される（ステップＳ２０３）。
【００５４】
また別の自動演奏クロック割込処理は図７によって説明される。すなわち、シーケンサカウンタ（ＳＥＱ＿ＣＮＴ）の内容がインクリメントされる（ステップＳ３０１）。従って、このシーケンサカウンタ（ＳＥＱ＿ＣＮＴ）は、テンポに比例した時間間隔でインクリメントされる。次いで、自動演奏中であるか否かがチェックされる（ステップＳ３０２）。このステップＳ３０２で、自動演奏中であると判断される（ステップＳ３０２；Ｙ）と、ゲートタイムカウンタ（Ｇａｔｅ＿ＣＮＴ）の内容がインクリメントされる（ステップＳ３０３）。その後、このクロック割込処理ルーチンからメイン処理ルーチンの割り込まれた位置にリターンする。上記ステップＳ３０２で自動演奏中でないことが判断されたとき（ステップＳ３０２；Ｎ）も、このクロック割込処理ルーチンからリターンする。以上の処理により、ゲートタイムカウンタ（Ｇａｔｅ＿ＣＮＴ）の内容は、１ステップタイム毎にインクリメントされることになる。
【００５５】
（３）鍵盤処理：次に、メイン処理ルーチンのステップＳ１０４で行われる鍵盤処理の詳細を、図８に示したフローチャートを参照しながら説明する。
【００５６】
この鍵盤処理では、先ず、鍵盤スキャン回路１４から鍵盤データ（以下、「新鍵盤データ」という）が取り込まれ、キーオンイベントマップが作成される。このキーオンイベントマップは、新鍵盤データと、前回の鍵盤処理で取り込まれて既にワークメモリ１２に設けられた旧鍵盤データレジスタに記憶されている鍵盤データ（以下、「旧鍵盤データ」という）との排他的論理和をとることにより作成される。
【００５７】
それを基にキーオンイベントがあるかどうかがチェックされる（ステップＳ４０１）。これは、上記のようにして作成されたキーオンイベントマップがゼロであるかどうかを調べることにより行われる。ここで、キーオンイベントがない、つまりキーオンイベントマップがゼロであることが判断される（ステップＳ４０１；Ｎ）と、シーケンスはキーオフイベントがあるか否かがチェックされる（ステップＳ４０５）。キーオフイベントがある場合（ステップＳ４０５；Ｙ）、鍵盤消音処理がなされ（ステップＳ４０６）、メインルーチンに復帰する。またキーオフイベントがない場合（ステップＳ４０５；Ｎ）も、そのままメインルーチンへ復帰する。
【００５８】
一方、キーオンイベントがある、つまりイベントマップ中に「１」であるビットが少なくとも１つ存在することが判断される（ステップＳ４０１；Ｙ）と、ＣＭフラグの状態がチェックされ、ＣＭモードであるかどうか、すなわちコンサートマジック中であるか否かが判断される（ステップＳ４０２）。
【００５９】
ここで、ＣＭモードでないことが判断される（ステップＳ４０２；Ｎ）と、通常演奏モードであることが認識され、通常の鍵盤発音処理が行われる（ステップＳ４０３）。
【００６０】
この通常の発音処理では、鍵イベントマップ中の「１」になっているビットに対応する鍵のキーナンバが算出されると共に、鍵盤スキャン回路１４から当該鍵に対応するベロシティデータが読み込まれる。そして、このキーナンバに対応する音色パラメータがプログラムメモリ１１から読み出され、ベロシティデータと一緒にキー＆トーンアサイナ１５１を介して楽音発生回路１５に送られる。これにより、押鍵に応じた音が押鍵に応じた強さでスピーカ１５３から発生される。
【００６１】
一方、ステップＳ４０２でＣＭモードであることが判断される（ステップＳ４０２；Ｙ）と、後述するコンサートマジック曲進行処理（ステップＳ４０４）に移行する。該ＣＭモードでは、発音中の音はゲートタイムに従って消音される。この消音を行うための処理は、後述するコンサートマジック演奏処理において行われる。従って、ＣＭモードでは離鍵イベントがあっても何らの処理も行われない。その後、シーケンスは上記ステップＳ４０５に進む。
【００６２】
なお、上記では、説明を簡単にするために１つ押鍵又は離鍵があった場合について説明したが、複数の押鍵又は離鍵があった場合は、ステップＳ４０１以下の処理を鍵イベントの数だけ繰り返して実行するように構成すればよい。
【００６３】
（４）パネルスイッチ処理：次に、メイン処理ルーチンのステップＳ１０５で行われるパネル処理の詳細を、図９のフローチャートを参照しながら説明する。このパネル処理では、操作パネル１０１上の各スイッチに割り当てられている機能を実現するための処理が実行される。
【００６４】
このパネル処理では、先ず操作パネル１０１からパネルデータ（以下、「新パネルデータ」という）が新パネルデータレジスタ（ＳＷ＿ＮＥＷ）に取り込まれ、この新パネルデータと前回のパネル処理で取り込まれて既にワークメモリ１２に設けられた旧パネルデータレジスタ（ＳＷ＿ＯＬＤ）に記憶されているパネルデータ（以下、「旧パネルデータ」という）との排他的論理和をとることにより、オンイベントマップが作成される（ステップＳ５０１）。
【００６５】
次いで、このオンイベントマップから、後述するコンサートマジックスイッチのオンイベント処理がなされる（ステップＳ５０２）。
【００６６】
さらに上記オンイベントマップから、後述するヘルプスイッチのオンイベント処理がなされる（ステップＳ５０３）。
【００６７】
その後、その他のスイッチオンイベント処理がなされ（ステップＳ５０４）、最後に新パネルデータレジスタ（ＳＷ＿ＮＥＷ）の内容は、旧パネルデータレジスタ（ＳＷ＿ＯＬＤ）の内容として旧パネルデータレジスタ（ＳＷ＿ＯＬＤ）に格納される。この旧パネルデータレジスタ（ＳＷ＿ＯＬＤ）の内容は、次回のパネルスイッチ処理で参照される。そしてシーケンスはメイン処理ルーチンのステップＳ１０６にリターンする。
【００６８】
（５）コンサートマジックスイッチオンイベント処理：上記図９のステップＳ５０２で示されたコンサートマジックスイッチオンイベント処理につき、図１０を使用して説明する。
【００６９】
上記のようにして作成されたオンイベントマップから、コンサートマジックスイッチオンイベントがあるか否かがチェックされる（ステップＳ６０１）。このオンイベントがなければ（ステップＳ６０１；Ｎ）、シーケンスは上記ステップＳ５０３にリターンする。
【００７０】
反対にコンサートマジックスイッチオンイベントがあれば（ステップＳ６０１；Ｙ）、ＣＭフラグが参照され、現在コンサートマジック中か否かがチェックされる（ステップＳ６０２）。現在コンサートマジック中であれば（ステップＳ６０２；Ｙ）、コンサートマジック処理は終了され（ステップＳ６０５）、シーケンスは上記ステップＳ５０３にリターンする。
【００７１】
逆に現在コンサートマジック中でなければ（ステップＳ６０２；Ｎ）、曲番号レジスタが参照されてその曲番号からコンサートマジック演奏用の曲の音符データが読み出され、曲初期設定がなされる（ステップＳ６０３）。その後コンサートマジック中の状態に設定され（ステップＳ６０４）、シーケンスは上記ステップＳ５０３にリターンする。
【００７２】
（６）自動演奏処理：次に、メイン処理ルーチンのステップＳ１０６で行われる自動演奏処理の詳細を、図１１のフローチャートを参照しながら説明する。この自動演奏処理では、上記パネルスイッチ処理により設定される自動演奏フラグが参照され自動演奏中か否かがチェックされる（ステップＳ７０１）。自動演奏中でなければ（ステップＳ７０１；Ｎ）、シーケンスはメイン処理ルーチンのステップＳ１０７にリターンする。
【００７３】
自動演奏中であれば（ステップＳ７０１；Ｙ）、後述する自動演奏消音処理が実施される（ステップＳ７０２）。
【００７４】
そしてアドレスレジスタ（Ｒ＿ＡＤＤ）の示すアドレスから、音符データが読み込まれ（ステップＳ７０３）、そのデータがデータエンドマークであるか否かがチェックされる（ステップＳ７０４）。データエンドマークであれば（ステップＳ７０４；Ｙ）、コンサートマジック処理が終了せしめられ（ステップＳ７０５）、シーケンスはメイン処理ルーチンのステップＳ１０７にリターンする。
【００７５】
データエンドマークでなければ（ステップＳ７０４；Ｎ）、読み出されたデータがバーマーク乃至ビートマークか否かがチェックされる（ステップＳ７０６）。
【００７６】
読み出されたデータがバーマーク乃至ビートマークであれば（ステップＳ７０６；Ｙ）、シーケンサカウンタ（ＳＥＱ＿ＣＮＴ）の値が本自動演奏装置で１拍を示す９６以上の値であるか否かがチェックされる（ステップＳ７０７）。シーケンサカウンタ（ＳＥＱ＿ＣＮＴ）の値が９６より小さい値である場合（ステップＳ７０７；Ｎ）、シーケンスはメイン処理ルーチンのステップＳ１０７にリターンする。
【００７７】
反対にシーケンサカウンタ（ＳＥＱ＿ＣＮＴ）の値が９６より大きい値であれば（ステップＳ７０７；Ｙ）、次の音符データを読み出すため、シーケンサカウンタ（ＳＥＱ＿ＣＮＴ）の値が０にセットされ（ステップＳ７０８）、アドレスレジスタ（Ｒ＿ＡＤＤ）の値がインクリメントされ、その値が保存される（ステップＳ７０９）。そしてアドレスレジスタ（Ｒ＿ＡＤＤ）の値が曲の終わりを示すストップアドレス値（ＳＴＯＰ＿ＡＤＤ）になったか否かがチェックされる（ステップＳ７１０）。
【００７８】
アドレスレジスタ（Ｒ＿ＡＤＤ）の値がストップアドレス値（ＳＴＯＰ＿ＡＤＤ）になっていなければ（ステップＳ７１０；Ｎ）、シーケンスはメイン処理ルーチンのステップＳ１０７にリターンする。
【００７９】
反対にアドレスレジスタ（Ｒ＿ＡＤＤ）の値がストップアドレス値（ＳＴＯＰ＿ＡＤＤ）になっていれば（ステップＳ７１０；Ｙ）、自動演奏処理が中止（終了）される（ステップＳ７１１）。そしてシーケンスはメイン処理ルーチンのステップＳ１０７にリターンする。
【００８０】
上記ステップＳ７０６で、読み出された音符データがバーマーク乃至ビートマークでなければ（ステップＳ７０６；Ｎ）、シーケンサカウンタ（ＳＥＱ＿ＣＮＴ）の値が音符データのステップタイムの値以上であるか否かがチェックされる（ステップＳ７１２）。
【００８１】
シーケンサカウンタ（ＳＥＱ＿ＣＮＴ）の値がステップタイムの値以上でなければ（ステップＳ７１２；Ｎ）、シーケンスはメイン処理ルーチンのステップＳ１０７にリターンする。
【００８２】
反対にシーケンサカウンタ（ＳＥＱ＿ＣＮＴ）の値がステップタイムの値以上であれば（ステップＳ７１２；Ｙ）、発音などの処理が行われ、同時に読み出されたデータが音符データであればその現在鳴っている音のゲートタイム（Ｇａｔｅ［ｎｏｔｅ］）が保存される（ステップＳ７１３）。
【００８３】
そしてアドレスレジスタ（Ｒ＿ＡＤＤ）の値がインクリメントされ、その値が保存され（ステップＳ７１４）、上記ステップＳ７０３に復帰し、以上の処理を繰り返す。
【００８４】
（７）自動演奏消音処理：上記自動演奏処理ルーチンのステップＳ７０２で行われる自動演奏消音処理の詳細を、図１２のフローチャートを参照しながら説明する。
【００８５】
この自動演奏消音処理では、最初に割込処理が禁止され（ステップＳ８０１）、現在発音されている全てのゲートタイム（Ｇａｔｅ［ｎｏｔｅ］）がゲートタイムカウンタ（Ｇａｔｅ＿ＣＮＴ）の値で減算される（ステップＳ８０２）。
【００８６】
そして該ゲートタイムカウンタ（Ｇａｔｅ＿ＣＮＴ）の値が０にセットされ（ステップＳ８０３）、その後に割込処理が許可されることになる（ステップＳ８０４）。
【００８７】
その後ゲートタイム（Ｇａｔｅ［ｎｏｔｅ］）の値が０以下の音符データが消音される（ステップＳ８０５）。
【００８８】
（８）コンサートマジック曲進行処理：図８の鍵盤処理で行われるステップＳ４０４のコンサートマジック曲進行処理を、図１３のフローチャートを参照しながら説明する。
【００８９】
このコンサートマジック曲進行処理では、上記パネルスイッチ処理により設定される自動演奏処理フラグが参照され自動演奏中か否かがチェックされる（ステップＳ９０１）。自動演奏中であれば（ステップＳ９０１；Ｙ）、シーケンスは鍵盤処理ルーチンのステップＳ４０５にリターンする。
【００９０】
自動演奏中でなければ（ステップＳ９０１；Ｎ）、後述するコンサートマジック消音処理が実施される（ステップＳ９０２）。
【００９１】
そしてノートオンデータ（ｎｏｔｅ＿ｏｎ）の値が０に、またステップ変数（ｓｔｅｐ）の値が０ｘｆｆの値にセットされる（ステップＳ９０３）。
【００９２】
その後アドレスレジスタ（Ｒ＿ＡＤＤ）が示すアドレスから、音符データが読み込まれ（ステップＳ９０４）、そのデータがデータエンドマークであるか否かがチェックされる（ステップＳ９０５）。データエンドマークであれば（ステップＳ９０５；Ｙ）、コンサートマジック処理が終了せしめられ（ステップＳ９０６）、シーケンスは鍵盤処理ルーチンのステップＳ４０５にリターンする。
【００９３】
データエンドマークでなければ（ステップＳ９０５；Ｎ）、読み出されたデータがバーマーク乃至ビートマークか否かがチェックされる（ステップＳ９０７）。
【００９４】
読み出されたデータがバーマーク乃至ビートマークであれば（ステップＳ９０７；Ｙ）、上記ステップ変数（ｓｔｅｐ）の値が０ｘｆｆの値にセットされ（ステップＳ９０８）、ゲートタイムカウンタ（Ｇａｔｅ＿ＣＮＴ）が、１拍の値９６からステップバッファ（ｓｔｅｐ＿ｂｕｆ）のカウント値を引いた値にセットされる（ステップＳ９０９）。そしてステップバッファ（ｓｔｅｐ＿ｂｕｆ）のカウント値が０にセットされ（ステップＳ９１０）、アドレスレジスタ（Ｒ＿ＡＤＤ）の値がインクリメントされ、その値が保存される（ステップＳ９１１）。その後上記ステップＳ９０４に復帰する。
【００９５】
上記ステップＳ９０７で、読み出されたデータがバーマーク乃至ビートマークでなければ（ステップＳ９０７；Ｎ）、読み出されたデータがノートオンデータであるか否かがチェックされる（ステップＳ９１２）。ノートオンデータでなければ（ステップＳ９１２；Ｎ）、アドレスレジスタ（Ｒ＿ＡＤＤ）の値がインクリメントされ、その値が保存される（ステップＳ９２０）。その後上記ステップＳ９０４に復帰する。
【００９６】
一方読み出されたデータがノートオンデータであれば（ステップＳ９１２；Ｙ）、読み出されたデータが和音を構成するノートオンデータであるか否かを判断するため、ノートオンデータ（ｎｏｔｅ＿ｏｎ）の値が０であるか否かがチェックされ（ステップＳ９１３）、まず最初の音であるか否かが判断される。
【００９７】
ノートオンデータ（ｎｏｔｅ＿ｏｎ）の値が０であれば（ステップＳ９１３；Ｙ）、ノートオンデータ（ｎｏｔｅ＿ｏｎ）の値が１に、実際のステップタイムが上記ステップ変数（ｓｔｅｐ）と同一に、またその値がステップバッファ（ｓｔｅｐ＿ｂｕｆ）の値に、さらにゲートタイムカウンタ（Ｇａｔｅ＿ＣＮＴ）の値が０にセットされる（ステップＳ９１４）。
【００９８】
その後自動演奏データとしての音符データに規定されたゲートタイムが各ノートオンデータのゲートタイムの値（Ｇａｔｅ［ｎｏｔｅ］）にセットされ（ステップＳ９１５）、発音処理がなされる（ステップＳ９１６）。その後アドレスレジスタ（Ｒ＿ＡＤＤ）の値がインクリメントされ、その値が保存され（ステップＳ９１７）、上記ステップＳ９０４に復帰する。
【００９９】
上記ステップＳ９１３でノートオンデータ（ｎｏｔｅ＿ｏｎ）の値が０でなければ（ステップＳ９１３；Ｎ）、ステップタイムが一致する和音であるかを判別するため、ステップ変数（ｓｔｅｐ）の値が音符データのステップタイムと一致しているか否かがチェックされる（ステップＳ９１８）。
【０１００】
ステップ変数（ｓｔｅｐ）の値がステップタイムと一致していれば（ステップＳ９１８；Ｙ）、上記ステップＳ９１５に移行する。反対に一致していなければ（ステップＳ９１８；Ｎ）、和音以外の音に相当するので、ゲートタイムカウンタ（Ｇａｔｅ＿ＣＮＴ）の値が、（ステップタイム−ｓｔｅｐ＿ｂｕｆ）の値にセットされ（ステップＳ９１９）、シーケンスは鍵盤処理ルーチンのステップＳ４０５にリターンする。
【０１０１】
（９）コンサートマジック消音処理：図１３のコンサートマジック曲進行処理で行われるステップＳ９０２のコンサートマジック消音処理を、図１４のフローチャートを参照しながら説明する。
【０１０２】
このコンサートマジック消音処理では、現在発音されている全ての音符データのゲートタイム（Ｇａｔｅ［ｎｏｔｅ］）がゲートタイムカウンタ（Ｇａｔｅ＿ＣＮＴ）の値で減算される（ステップＳ１００１）。
【０１０３】
そしてゲートタイム（Ｇａｔｅ［ｎｏｔｅ］）の値が０以下の音符データが消音される（ステップＳ１００２）。
【０１０４】
（１０）ヘルプスイッチオンイベント処理：上記図９のステップＳ５０３で示されたヘルプスイッチオンイベント処理につき、図１５を使用して説明する。
【０１０５】
上記のようにして作成されたオンイベントマップから、ヘルプスイッチオンイベントがあるか否かがチェックされる（ステップＳ１１０１）。このオンイベントがなければ（ステップＳ１１０１；Ｎ）、シーケンスは上記ステップＳ５０４にリターンする。
【０１０６】
反対にヘルプスイッチオンイベントがあれば（ステップＳ１１０１；Ｙ）、ＣＭフラグが参照され、現在コンサートマジック中か否かがチェックされる（ステップＳ１１０２）。現在コンサートマジック中でなければ（ステップＳ１１０２；Ｎ）、シーケンスは上記ステップＳ５０４にリターンする。また現在コンサートマジック中であれば（ステップＳ１１０２；Ｙ）、自動演奏中であるか否かがチェックされる（ステップＳ１１０３）。自動演奏中であれば（ステップＳ１１０３；Ｙ）、シーケンスは上記ステップＳ５０４にリターンする。
【０１０７】
逆に自動演奏中でなければ（ステップＳ１１０３；Ｎ）、上記本発明構成のリバース押鍵待機部１０ｂにより以下の処理が実施される。
【０１０８】
まず、現在発音中の音全てが消音される（ステップＳ１１０４）。その後バーカウンタ（Ｂａｒ＿ＣＮＴ）、ゲートタイムカウンタ（Ｇａｔｅ＿ＣＮＴ）、ステップバッファ（ｓｔｅｐ＿ｂｕｆ）及び現在実行中の音符データのゲートタイム（Ｇａｔｅ［Ｎｏｔｅ］）が全て０にセットされる（ステップＳ１１０５）。
【０１０９】
現在読み込まれているアドレスレジスタ（Ｒ＿ＡＤＤ）の示すアドレスがその曲の先頭アドレス（ＳｏｎｇＴｏｐＡｄｄ）より大きいか否かがチェックされる（ステップＳ１１０６）。その曲の先頭アドレス（ＳｏｎｇＴｏｐＡｄｄ）より大きくなければ（ステップＳ１１０６；Ｎ）、シーケンスは上記ステップＳ５０４にリターンする。
【０１１０】
逆にその曲の先頭アドレス（ＳｏｎｇＴｏｐＡｄｄ）より大きければ（ステップＳ１１０６；Ｙ）、アドレスレジスタ（Ｒ＿ＡＤＤ）が示すアドレスが減算される（ステップＳ１１０７）。
【０１１１】
そして減算された結果が現在弾いていた小節の先頭のバー（図４の例では小節４の先頭のバー）に当たったか否かの判断のため、アドレスレジスタ（Ｒ＿ＡＤＤ）のアドレスが示すデータがバーであるか否かがチェックされる（ステップＳ１１０８）。アドレスレジスタ（Ｒ＿ＡＤＤ）のアドレスが示すデータがバーでなければ（図４の例では手前の演奏音か伴奏音）（ステップＳ１１０８；Ｎ）、上記ステップＳ１１０６に戻り、現在弾いていた小節の先頭のバーがくるまで、以上の処理が繰り返される。
【０１１２】
反対にアドレスレジスタ（Ｒ＿ＡＤＤ）のアドレスが示すデータがバーであれば（ステップＳ１１０８；Ｙ）、バーカウンタ（Ｂａｒ＿ＣＮＴ）がインクリメントされ（ステップＳ１１０９）、さらにバーカウンタ（Ｂａｒ＿ＣＮＴ）が１であるか否かがチェックされる（ステップＳ１１１０）。
【０１１３】
バーカウンタ（Ｂａｒ＿ＣＮＴ）が１であれば（ステップＳ１１１０；Ｙ）、アドレスレジスタ（Ｒ＿ＡＤＤ）の値がストップアドレス値（ＳＴＯＰ＿ＡＤＤ）にセットされ（ステップＳ１１１１）、前記図１１のステップＳ７１０及びステップＳ７１１において自動演奏による演奏がストップされて待機状態になるようにセットしておいて、ステップＳ１１０６に復帰し、以上の処理が繰り返されることで、さらに１小節前のバーの所（図４の例では小節３の先頭のバー）まで戻されることになる。
【０１１４】
その間にバーカウンタ（Ｂａｒ＿ＣＮＴ）はステップＳ１１０９のインクリメントにより１より大きくなっているため、上記ステップＳ１１１０で、バーカウンタ（Ｂａｒ＿ＣＮＴ）が１でないため（ステップＳ１１１０；Ｎ）、自動演奏中の状態になり（ステップＳ１０１２）、シーケンスは上記ステップＳ５０４にリターンする。この自動演奏は、上述のように、図１１のステップＳ７１０及びステップＳ７１１で、ヘルプスイッチ（ＨＥＬＰ  ＳＷ）が押された小節の先頭のバー（図４の例では小節４の先頭のバー）の所で、その演奏がストップされ、待機状態となる。
【０１１５】
尚、ＬＣＤ画面３００には、図４の小節４の頭にポインタを置くなど、そこで止まっていることが分かるように表示されるようにすると良い。
【０１１６】
このように、コンサートマジック曲進行処理中にヘルプスイッチ（ＨＥＬＰ  ＳＷ）が押されることで、演奏者が現在弾いている小節の１つ前の小節に戻り、そこから１小節分カラオケ状態で自動演奏がなされ、次の小節の頭でキーオンイベント待ちの状態になるため、どこまで戻ったかを演奏者が自動演奏音を聞くことで、素早く確認することができるようになり、曲調に慣れ、次の押鍵のタイミングもより適切に行うことができるようになる。
【０１１７】
尚、本発明の自動演奏装置は、上述の実施例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【０１１８】
【発明の効果】
以上詳述したように、本発明によれば、演奏者が曲の途中で誤って自動演奏を進行させても、指示手段で指示が与えられることで、上記リバース押鍵待機手段により、自動演奏の進行を戻して、所定の位置までは押鍵の検出によらずに上記自動演奏データに従った自動演奏を上記自動演奏手段に行わせ、該位置まで自動演奏が進行した際に押鍵の検出を待機する状態にセットされるので、どこまで戻ったかを演奏者がカラオケ演奏状態で確認することができ、次の押鍵のタイミングがより適切に行うことができるようになるため、使い勝手に優れた自動演奏装置及び自動演奏方法を提供できることになる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係る自動演奏装置が適用された電子楽器の構成を示すブロック図である。
【図２】操作パネル１０１の構成を示す平面概要図である。
【図３】本発明の実施例構成における機能ブロックを示すブロック図である。
【図４】実際の自動演奏データのコンサートマジックによる演奏で、本実施例構成が適用された場合の状態を示す説明図である。
【図５】本電子楽器のメイン処理を示すフローチャートである。
【図６】２ｍｓｅｃ毎のタイマ割込処理を示すフローチャートである。
【図７】自動演奏クロック割込処理を示すフローチャートである。
【図８】鍵盤処理を示すフローチャートである。
【図９】パネルスイッチ処理を示すフローチャートである。
【図１０】コンサートマジックスイッチオンイベント処理を示すフローチャートである。
【図１１】自動演奏処理を示すフローチャートである。
【図１２】自動演奏消音処理を示すフローチャートである。
【図１３】コンサートマジック曲進行処理を示すフローチャートである。
【図１４】コンサートマジック消音処理を示すフローチャートである。
【図１５】ヘルプスイッチオンイベント処理を示すフローチャートである。
【図１６】音符データの形式を説明する説明図である。
【符号の説明】
１０      ＣＰＵ
１０ａ    自動演奏部
１０ｂ    リバース押鍵待機部
１１      プログラムメモリ
１２      ワークメモリ
１３      自動演奏データメモリ
１４      鍵盤スキャン回路
１５      楽音発生回路
１６      タイマ
２０      システムバス
１０１      操作パネル
１０２      外部インタフェース回路
１４１      鍵盤装置
１５１      キー＆トーンアサイナ
１５２      増幅器
１５３      スピーカ
２００      ＣＭスイッチ
２０１      ヘルプスイッチ
２０２      曲ボタン
３００      ＬＣＤ画面
【図１】
2004258050.tif 000003
【図２】
2004258050.tif 000004
【図３】
2004258050.tif 000005
【図４】
2004258050.tif 000006
【図５】
2004258050.tif 000007
【図６】
2004258050.tif 000008
【図７】
2004258050.tif 000009
【図８】
2004258050.tif 000010
【図９】
2004258050.tif 000011
【図１０】
2004258050.tif 000012
【図１１】
2004258050.tif 000013
【図１２】
2004258050.tif 000014
【図１３】
2004258050.tif 000015
【図１４】
2004258050.tif 000016
【図１５】
2004258050.tif 000017
【図１６】
2004258050.tif 000018