(57)【特許請求の範囲】
【請求項１】
複数の演奏操作子と、
入力された楽音発生指示情報に応じて楽音を発生する楽音発生手段と、
演奏操作子の操作軌跡情報を記憶する操作軌跡情報記憶手段と、
該記憶された操作軌跡情報を読出す操作軌跡情報読出し手段と、
該操作軌跡情報の読出し開始を指示する読出し開始指示操作子と、
前記操作軌跡情報読出し手段により操作軌跡情報が読み出されたときに、該読み出された操作軌跡情報に基づいて前記楽音発生手段により発生された楽音を制御する楽音制御手段と、
前記読出し開始指示操作子の操作によって読み出し開始の指示がなされた後、前記読出し開始指示操作子すべての操作終了が検出されるまで、前記楽音制御手段による楽音制御を行う第１のモードと、該第１のモード時とは異なる所定の停止操作または操作軌跡情報の読み出し完了が検出されるまで、前記楽音制御手段による楽音制御を行う第２のモードとを選択的に設定する設定手段と
を有することを特徴とする自動演奏装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶された演奏操作子の操作軌跡情報を読出し、その読み出された操作軌跡情報に基づいて楽音制御する機能を備えた自動演奏装置に関する。
【０００２】
【従来の技術】
記憶された演奏操作子の操作軌跡情報を読出し、その読み出された操作軌跡情報に基づいて楽音制御する機能を備えた自動演奏装置は、従来より知られている。
【０００３】
かかる自動演奏装置として、たとえば特開平３−２１３８９８号公報には、動作モード（動作状態）が記録モードである場合に、パラメータ（演奏）操作子の操作に応じた楽音パラメータを順次記憶手段に書き込み、動作モードが再生モードである場合に、楽音操作子が操作される毎に前記記憶手段の記憶情報を読出し、楽音パラメータとして設定するようにしたものが開示されている。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記従来の自動演奏装置では、記憶手段に記憶されている記憶情報は楽音操作子を操作しなければ読み出されず、発生した楽音の楽音特性を楽音操作子に同期して変更する楽音制御を行うときには有効であるものの、ユーザが、発生した楽音の楽音特性を楽音操作子に非同期で変更したいという要求には応えることはできなかった。
【０００５】
本発明は、上記点に鑑みてなされたもので、記憶された演奏操作子の操作軌跡情報を読出し、その読み出された操作軌跡情報に基づいて楽音制御する機能を備えた自動演奏装置において、演奏の幅をより拡げることが可能な自動演奏装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記目的を達成するため本発明は、複数の演奏操作子と、入力された楽音発生指示情報に応じて楽音を発生する楽音発生手段と、演奏操作子の操作軌跡情報を記憶する操作軌跡情報記憶手段と、該記憶された操作軌跡情報を読出す操作軌跡情報読出し手段と、該操作軌跡情報の読出し開始を指示する読出し開始指示操作子と、前記操作軌跡情報読出し手段により操作軌跡情報が読み出されたときに、該読み出された操作軌跡情報に基づいて前記楽音発生手段により発生された楽音を制御する楽音制御手段と、前記読出し開始指示操作子の操作によって読み出し開始の指示がなされた後、前記読出し開始指示操作子すべての操作終了が検出されるまで、前記楽音制御手段による楽音制御を行う第１のモードと、該第１のモード時とは異なる所定の停止操作または操作軌跡情報の読み出し完了が検出されるまで、前記楽音制御手段による楽音制御を行う第２のモードとを選択的に設定する設定手段とを有することを特徴とする。
【０００８】
ここで、楽音発生指示情報とは、具体的には、演奏者が、たとえば鍵盤を用いて入力した押鍵イベントや、ＭＩＤＩ信号のキーオンイベントメッセージ等であり、リアルタイムに入力されるものであってもよいし、予め自動演奏データとして設定されたものであってもよい。
【０００９】
また、演奏操作子とは、発生した楽音の楽音特性を変更する各種パラメータの値を可変制御する、たとえばホイール、ジョイスティック、スライド等をいい、その操作軌跡とは、この演奏操作子の操作状態（量）の推移をいう。そして、操作軌跡情報記憶手段には、ユーザが演奏操作子を用いてリアルタイム入力またはステップ入力により生成した操作軌跡情報を記憶するようにしてもよいし、ユーザ以外の第三者（たとえばミュージシャン）が作成した操作軌跡情報を記憶するようにしてもよい。
【００１０】
読出し開始指示手段は、所定のイベントが入力されたときに、操作軌跡情報の読出し開始を指示することが通常の動作であるが、これに限らず、イベントの入力がない場合でも、読出し開始の指示を行うようにしてもよい。なお、所定のイベントとは、たとえば、何らかのスイッチのオンイベント、鍵盤の任意の鍵の押鍵イベント、演奏補助操作子の操作イベント等、起動要因となるイベントであればどのようなイベントであってもよい。
【００１１】
さらに、楽音発生手段および楽音制御手段は、最も一般的には、たとえば音源回路であるが、音源回路を備えず（音源回路を備えていても、もちろんよい）、外部の音源回路に、たとえばＭＩＤＩ信号を送信するタイプの自動演奏装置である場合には、その外部の音源回路が目的の楽音の発生や楽音制御を行えるようなＭＩＤＩ信号メッセージを出力するもの（たとえばＣＰＵ）であればよい。
【００１４】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１５】
図１は、本発明の実施の一形態に係る自動演奏装置の概略構成を示すブロック図である。
【００１６】
同図に示すように、本実施の形態の自動演奏装置は、音高情報を入力するための鍵盤１と、各種情報を入力するための複数のスイッチを備えたパネルスイッチ２と、鍵盤１の各鍵の押鍵状態を検出する押鍵検出回路３と、パネルスイッチ２の各スイッチの押下状態を検出するスイッチ検出回路４と、装置全体の制御を司るＣＰＵ５と、該ＣＰＵ５が実行する制御プログラムやテーブルデータ等を記憶するＲＯＭ６と、演奏データ、各種入力情報および演算結果等を一時的に記憶するＲＡＭ７と、タイマ割り込み処理における割り込み時間や各種時間を計時するタイマ８と、各種情報等を表示する、たとえば大型液晶ディスプレイ（ＬＣＤ）若しくはＣＲＴ（Cathode Ray Tube）ディスプレイおよび発光ダイオード（ＬＥＤ）等を備えた表示装置９と、記憶媒体であるフロッピディスク（ＦＤ）をドライブするフロッピディスクドライブ（ＦＤＤ）１０と、前記制御プログラムを含む各種アプリケーションプログラムや各種データ等を記憶するハードディスクをドライブするハードディスクドライブ（ＨＤＤ）１１と、前記制御プログラムを含む各種アプリケーションプログラムや各種データ等を記憶するコンパクトディスク−リード・オンリ・メモリ（ＣＤ−ＲＯＭ）をドライブするＣＤ−ＲＯＭドライブ１２と、外部からのＭＩＤＩ（Musical Instrument Digital Interface）信号を入力したり、ＭＩＤＩ信号として外部に出力したりするＭＩＤＩインターフェース（Ｉ／Ｆ）１３と、通信ネットワーク１０１を介して、たとえばサーバコンピュータ１０２とデータの送受信を行う通信インターフェース（Ｉ／Ｆ）１４と、鍵盤１から入力された演奏データや予め設定された演奏データ等を楽音信号に変換する音源回路１５と、該音源回路１５からの楽音信号に各種効果を付与するための効果回路１６と、該効果回路１６からの楽音信号を音響に変換する、たとえばスピーカ等のサウンドシステム１７とにより構成されている。
【００１７】
上記構成要素３〜１６は、バス１８を介して相互に接続され、ＣＰＵ５にはタイマ８が接続され、ＭＩＤＩＩ／Ｆ１３には他のＭＩＤＩ機器１００が接続され、通信Ｉ／Ｆ１４には通信ネットワーク１０１が接続され、音源回路１５には効果回路１６が接続され、効果回路１６にはサウンドシステム１７が接続されている。
【００１８】
ＨＤＤ１１のハードディスクには、前述のように、ＣＰＵ５が実行する制御プログラムも記憶でき、ＲＯＭ６に制御プログラムが記憶されていない場合には、このハードディスクに制御プログラムを記憶させておき、それをＲＡＭ７に読み込むことにより、ＲＯＭ６に制御プログラムを記憶している場合と同様の動作をＣＰＵ５にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００１９】
ＣＤ−ＲＯＭドライブ１２のＣＤ−ＲＯＭから読み出された制御プログラムや各種データは、ＨＤＤ１１内のハードディスクにストアされる。これにより、制御プログラムの新規インストールやバージョンアップ等が容易に行える。なお、このＣＤ−ＲＯＭドライブ１２以外にも、外部記憶装置として、光磁気ディスク（ＭＯ）装置等、様々な形態のメディアを利用するための装置を設けるようにしてもよい。
【００２０】
通信Ｉ／Ｆ１４は、上述のように、たとえばＬＡＮ（Local Area Network）やインターネット、電話回線等の通信ネットワーク１０１に接続されており、該通信ネットワーク１０１を介して、サーバコンピュータ１０２に接続される。ＨＤＤ１１内のハードディスクに上記各プログラムや各種パラメータが記憶されていない場合には、通信Ｉ／Ｆ１４は、サーバコンピュータ１０２からプログラムやパラメータをダウンロードするために用いられる。クライアントとなるコンピュータ（本実施の形態では、自動演奏装置）は、通信Ｉ／Ｆ１４および通信ネットワーク１０１を介してサーバコンピュータ１０２へとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータ１０２は、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワーク１０１を介してコンピュータへと配信し、コンピュータが通信Ｉ／Ｆ１４を介して、これらプログラムやパラメータを受信してＨＤＤ１１内のハードディスクに蓄積することにより、ダウンロードが完了する。
【００２１】
この他、外部コンピュータ等との間で直接データのやりとりを行うためのインターフェースを備えてもよい。
【００２２】
図２は、本実施の形態の自動演奏装置のパネル面に配設されたパネルスイッチ２を示す図であり、本発明で必要なスイッチのみが図示されている。
【００２３】
同図において、パネルスイッチ２は、２個のシーンスイッチ（SCENESW1,2）２１，２２と、シーンスライダ（SCSLIDER）２３と、８個のノブ（KNOB1〜8）２４_１〜８と、パラメータメニュースイッチ（PARAMETER MENU）２５と、トーンモードスイッチ（MODE）２６と、フリーＥＧ（Envelope Generator）スイッチ（FREE EG）２７と、ループシーケンサスイッチ（LOOP_SEQ）２８と、自動演奏スタート／ストップスイッチ（START/STOP）２９とにより構成されている。
【００２４】
シーンスイッチ２１および２２は、各スイッチにそれぞれ割り当てられた音色を選択するためのものであり、いずれかのスイッチを押下することにより、当該割り当てられた音色が選択される。本実施の形態では、ユーザが、たとえば鍵盤１の押鍵音の音色を１つ指定したときに、２種類の異なった音色が自動的に設定されるように構成され、シーンスイッチ２１および２２は、このうちいずれかの音色を選択するために用いられる。なお、シーンスイッチ２１および２２が操作されたときの音色選択制御の方法については、図１０を用いて後述する。また、シーンスイッチ２１および２２の各近傍には、それぞれＬＥＤ３０および３１が配設され、現在有効なスイッチが分かるようになっている。
【００２５】
シーンスライダ２３は、本実施の形態では、たとえばスライド操作子により構成され、シーンスイッチ２１および２２にそれぞれ割り当てられた２音色を、たとえば直線補間して新たな音色を生成するために使用される。このシーンスライダ２３が操作されたときの音色制御の方法については、図１１を用いて後述する。
【００２６】
なお、補間操作子は、上記スライド操作子に限らず、たとえば、ホイールやペダル、リボンコントローラ、鍵盤１の変位センサやタッチセンサ等、どのようなものを使用してもよい。
【００２７】
各ノブ２４_１〜８は、音色パラメータを構成する各種パラメータ等を設定したり変更したりするものである。本実施の形態では、各ノブ２４_１〜８は、それぞれ可変抵抗により構成され、ノブ２４_１〜８を回転することによって抵抗値が変更され、当該割り当てられたパラメータ値が可変されるように構成されている。
【００２８】
なお、シーンスライダ２３、ノブ２４_１〜８等に、可変抵抗器などのアナログ操作素子を用いる場合には、そのアナログ抵抗値や出力電圧値をＡ／Ｄコンバータでデジタル化して用いることは云うまでもない。Ａ／Ｄコンバータは、図示しないが、前記スイッチ検出回路４内に設けるようにしてもよいし、前記ＣＰＵ５がＡ／Ｄコンバータを内蔵しているときにはそれを用いるようにしてもよい。
【００２９】
パラメータメニュースイッチ２５は、ノブ２４_１〜８で設定制御すべきパラメータが８種類以上ある場合に、各ノブ２４_１〜８に割り当てられるパラメータの種類を切り換えるためのものである。このパラメータメニュースイッチ２５を押下すると、ノブ２４_１〜８で設定可能なパラメータの種類が、たとえば表示装置９上にメニュー形式で表示されるので、この中からユーザは任意にパラメータの種類を選択して、目的のパラメータ値を設定または変更することができる。
【００３０】
トーンモードスイッチ２６は、１押鍵に対して１音色の楽音を生成して発音するシングル（SINGLE）トーンモードと、１押鍵に対して２音色の楽音を生成して発音するデュアル（DUAL）トーンモードと、鍵盤１の鍵域を、たとえば低音域および高音域の２つの鍵域に分割し、低音域側の押鍵に対する楽音と高音域側の押鍵に対する楽音とを異なった音色で生成して発音するスプリット（SPLIT）トーンモードとを切り換えるものである。本実施の形態では、シングルトーンモードが選択されたときには、シーンスライダ２３により補間された音色の楽音が生成され、デュアルトーンモードが選択されたときには、この補間された音色および第２シーンスイッチ２２に割り当てられた音色の２種類の音色の楽音が生成され、スプリットトーンモードが選択されたときには、低音域側での押鍵に対しては上記補間された音色の楽音が生成される一方、高音域側での押鍵に対しては第２シーンスイッチ２２に割り当てられた音色の楽音が生成される。なお、スプリットトーンモードにおいては、低音域と高音域との間に重複する鍵域を設けることもでき、この重複鍵域での押鍵に対しては、上記デュアルトーンモードと同様に、補間音色および第２シーンスイッチ２２に割り当てられた音色の２種類の音色の楽音が生成されて発音される。
【００３１】
フリーＥＧスイッチ２７は、操作子（本実施の形態では、ノブ２４_１〜８のうち最大４個までのノブ）の操作状態（量）をリアルタイムで所定のステップ数（本実施の形態では、たとえば２００ステップ）分記憶するとともに、自動演奏時にその記憶された操作状態を再現（再生）するフリーＥＧ機能を選択するものである。前述のように、ノブ２４_１〜８には、それぞれパラメータが割り当てられているので、フリーＥＧ機能とは、記憶されたノブ２４_１〜８の操作状態に応じて、対応するパラメータを変更し楽音を生成する機能をいう。
【００３２】
ループシーケンサスイッチ２８は、設定されたシーケンスデータ（キーイベントデータまたはキーイベントデータ＋デュレーションデータの列）を各種ループタイプに応じた態様でループ読出しして楽音を生成するループシーケンサ機能を選択するものである。
【００３３】
自動演奏スタート／ストップスイッチ２９は、文字通り自動演奏のスタートまたはストップを指示するものである。
【００３４】
なお、前述したように、図２には、本発明を説明するに当たって必要なスイッチ２１〜２９のみが示されており、実際のパネル面には、この他に、図示しないが、たとえば音色選択／指定操作子や演奏操作子等の各種スイッチが配設されている。
【００３５】
図３は、前記ＲＯＭ６のメモリマップの一例およびＲＯＭ６に記憶された各種データのデータフォーマットの一例を示す図である。
【００３６】
同図に示すように、ＲＯＭ６には、ＣＰＵ５が実行する制御プログラム（ＣＰＵプログラム）と、予め設定されたｍ個のトーンパラメータデータTONEPARp1〜pmと、予め設定されたｑ個のループシーケンサ用データLPSEQDATAp1〜pqと、その他のデータとが格納されている。
【００３７】
各トーンパラメータデータTONEPARpは、該各トーンパラメータで共有に使用される共有パラメータデータCOMPARと、前記第１シーンスイッチ２１に割り当てられる音色の音色パラメータであるトーンパラメータデータSCENE1と、前記第２シーンスイッチ２２に割り当てられる音色の音色パラメータであるトーンパラメータデータSCENE2と、フリーＥＧ用データFREE_EGとにより構成されている。
【００３８】
共有パラメータデータCOMPARは、図７に示すように、たとえば表示用に当該音色の音色名を示す音色名データTONENAMEと、当該音色の音量値を示す音量データVOLUMEと、前記３種類のトーンモードのうちいずれのモードを選択するかを決定するトーンモード選択データMODEと、ループシーケンサの複数の制御モードのうちいずれのモードを選択するかを決定する制御モード選択データCONT_MODEと、ループシーケンサ機能により楽音を生成するとき（以下、「ループシーケンサプレイモード時」という）に前記ループシーケンサ用データLPSEQDATAp1〜pqのうちいずれのデータを使用するかを指定するループシーケンサ用データ指定データLOOP_SEQ_INDEXと、ループシーケンサプレイモード時の音色を、たとえば第１シーンスイッチ２１に割り当てられた音色、第２シーンスイッチ２２に割り当てられた音色、この２種類の音色をシーンスライダ２３の操作状態に応じて補間した音色または前記デュアルトーンモードで設定される２種類の音色（すなわち、このときには２種類の音色により重奏される）のうちいずれの音色を使用するかを決定する音色指定データLPSEQSCENE_Noと、複数のループ読出し態様のうちいずれの態様を使用するかを指定するループ読出し態様データLOOP_TYPEと、ループシーケンサプレイモード時に固有のテンポ値を指定するテンポデータTEMPOと、ループシーケンサプレイモード時にホールドされるイベントデータを、そのイベント番号（ステップ番号）で指定するステップホールドデータSTEP_HOLDと、１ステップの音長（これがループ読出しの基本単位；ベースユニットとなる）を指定するベースユニットデータBASE_UNITと、その他、本発明を説明する上では必要ないものの、楽音を生成するために必要なデータとにより構成されている。
【００３９】
前記ループシーケンサの制御モードは、本実施の形態では、ノーマルモード（normal）、ノートシフトモード（note_shift）、パターンセレクトモード（patern_select）およびノートシフト＆パターンセレクト共用モード（note_shift&patern_select）の４種類により構成されている。ノーマルモードとは、鍵盤１の押鍵に対して通常の楽音、すなわちその押鍵に対応する音高で、かつ鍵盤１に割り当てられた音色の楽音を発生するモードをいう。ノートシフトモードとは、鍵盤１を、たとえば２つの鍵域に分割し、一方の鍵域における押鍵では、ノーマルモードと同様に通常の楽音を発生させ、他方の鍵域（以下、この鍵域を「ノートシフト鍵域」という）における押鍵では、所定の基準鍵に対する該押鍵鍵の音程数に応じて楽音の音高をシフトさせるモードをいう。パターンセレクトモードとは、上記ノートシフトモードに対して、他方の鍵域（以下、この鍵域を「パターンセレクト鍵域」という）における押鍵で、ループシーケンサの読出しパターンを変更させる点が異なるモードをいう。ノートシフト＆パターンセレクト共用モードとは、同様に、鍵盤１を２つの鍵域に分割した場合に、一方の鍵域をノートシフト鍵域として機能させ、他方の鍵域をパターンセレクト鍵域として機能させるモードをいう。
【００４０】
前記ループ読出し態様は、本実施の形態では、フォワード（forward）、バックワード（backward）、オルタネート（alternate）、ハーフ（half）、ハーフオルタネート（half alternate）、ループ読出しオフの６種類の態様により構成されている。以下、各読出し態様を、図２４を参照して説明する。
【００４１】
フォワードとは、図２４（ａ）に示すように、書き込まれた順序で順にデータを読出していき、最後のデータを読み終えたときには、最初のデータに戻って読出しを繰り返す読出し態様をいう。
【００４２】
バックワードとは、図２４（ｂ）に示すように、書き込まれた順序と逆の順序でデータを読出していき、最後のデータ、すなわち最初に書き込まれたデータを読み終えたときには、最後に書き込まれたデータに戻って読出しを繰り返す読出し態様をいう。
【００４３】
オルタネートとは、図２４（ｃ）に示すように、最初フォワードの読出し態様でデータを読出し、最後のデータを読み終えたときには、バックワードの読出し態様でデータを読出し、最後のデータを読み終えたときには、再度フォワードの読出し態様でデータを読み出す読出し態様をいう。
【００４４】
ハーフとは、図２４（ｄ）に示すように、最初フォワードの読出し態様でデータを読出し、最後のデータを読み終えたときには、書き込まれたデータの真ん中（本実施の形態では、１０１ステップ目）のデータから読出しを継続する読出し態様をいう。
【００４５】
ハーフオルタネートとは、図２４（ｅ）に示すように、最初フォワードの読出し態様でデータを読出し、最後のデータを読み終えたときには、バックワードの読出し態様で、書き込まれたデータの真ん中のデータまで読出し、その位置からフォワードの読出し態様で読み出す読出し態様をいう。
【００４６】
ループ読出しオフとは、ループ読出しは行わず、１度だけデータの読出しをフォワードで行う読出し態様をいう。なお、このループ読出しオフのとき、フォワードの読出し態様に固定する必要はなく、バックワードの読出し態様に固定してもよいし、フォワードおよびバックワードのいずれかの読出し態様を選択できるようにしてもよい。
【００４７】
そして、各読出し態様に、それぞれ１〜６の整数値を付与し、この整数値をループ読出し態様データLOOP_TYPEとして記憶する。すなわち、LOOP_TYPE＝１のとき、フォワード、LOOP_TYPE＝２のとき、バックワード、LOOP_TYPE＝３のとき、オルタネート、LOOP_TYPE＝４のとき、ハーフ、LOOP_TYPE＝５のとき、ハーフオルタネート、LOOP_TYPE＝６のとき、ループ読出しオフである。
【００４８】
前記トーンパラメータデータSCENEiは、図８（ａ）に示すように、電圧制御発振器（Voltage Controlled Oscillator；ＶＣＯ）用パラメータデータVCOPARと、電圧制御フィルタ（Voltage Controlled Filter；ＶＣＦ）用パラメータデータVCFPARと、電圧制御増幅器（Voltage Controlled Amplifier；ＶＣＡ）用パラメータデータVCAPARと、効果パラメータデータEFCTPARとにより構成されている。
【００４９】
図８（ｂ）は、電圧制御発振器用パラメータデータVCOPAR、電圧制御フィルタ用パラメータデータVCAPAR、電圧制御増幅器用パラメータデータVCAPARおよび効果パラメータデータEFCTPARを構成する各種パラメータとその機能を説明する図である。
【００５０】
なお、各パラメータデータVCOPAR，VCFPAR，VCAPAR，EFCTPARをそれぞれ構成する各種パラメータは、本発明を説明する上で必須のものでなく、また、当業者にとって周知のものばかりであるため、図示のみで、その説明を省略する。
【００５１】
図３に戻り、フリーＥＧ用データFREE_EGは、フリーＥＧ機能を実行するために必要なパラメータ群であるフリーＥＧ用パラメータデータFREE_EG_PARと、４個の異なったノブ２４の操作状態を、それぞれリアルタイムに記憶する４トラック分の記憶領域（以下、「トラック」という）TRACK1〜4とにより構成されている。
【００５２】
各トラックTRACK1〜4は、それぞれ、操作されたノブ２４の操作状態（以下、この操作状態に応じて検出されたデータを「フリーＥＧデータ」という）を、設定されたタイミングで所定ステップ（本実施の形態では、前述したように、たとえば２００ステップ）分記憶するためのフリーＥＧデータ格納領域FREE_EG_DATAと、該フリーＥＧデータ格納領域FREE_EG_DATAに格納された操作量に対応するノブ２４と該ノブ２４に割り当てられたパラメータとの対応関係を指示する割当てデータを格納するための割り当てデータ格納領域DESIGNATIONとにより構成されている。
【００５３】
なお、トラック数は上記４トラックに限る必要はないことは云うまでもない。
【００５４】
フリーＥＧ用パラメータデータFREE_EG_PARは、フリーＥＧデータ格納領域FREE_EG_DATAに書き込まれたフリーＥＧデータを読出す基本単位時間を指定するベースユニットデータBASE_UNITと、フリーＥＧデータを読出す全体時間を指定する絶対時間データLENGTHと、ベースユニットデータBASE_UNITの値および設定されているテンポ値に応じてフリーＥＧデータを読出すテンポ同期モード（TEMPO_SYNC MODE）と絶対時間データLENGTHに応じてフリーＥＧデータを読出す絶対時間モード（ABSOLUTE MODE）のいずれのモードを選択するかを指定するモード指定データTEMPO_SYNC／ABSOLUTEと、前記図７で説明したループ読出し態様データと同様のデータLOOP_TYPEと、本実施の形態では、フリーＥＧデータを読み出すときに、その読出しタイミングを鍵盤１の押鍵音の音高に応じて（たとえば比例して）変更できるように構成されているが、この変更量の割合を示すキースケーリングデータRATE_KSとにより構成されている。
【００５５】
なお、前記テンポ同期モードにおいて、テンポ値をフリーＥＧデータ読み出し時に固有のテンポ値に設定したい場合には、フリーＥＧ用テンポデータFREE_EG_TEMPOを記憶するようにする。
【００５６】
各ループシーケンサ用データLPSEQDATApは、前記図７で説明した制御モード選択データCONT_MODE〜ベースユニットデータBASE_UNITのうちループシーケンサ用データ指定データLOOP_SEQ_INDEXのみを除外したデータと、ループシーケンサプレイモード時に再生されるイベントデータLPSEQ_EVENT_DATAと、このイベントデータLPSEQ_EVENT_DATAの個数（ステップ数）を示すステップ数データLSEQ_STEP_Noとにより構成されている。
【００５７】
図４は、前記ＲＡＭ７のメモリマップの一例およびＲＡＭ７に設けられたトーンバッファのデータフォーマットの一例を示す図である。
【００５８】
同図に示すように、ＲＡＭ７には、ＣＰＵ５が各種演算処理等で使用するワーキングエリアであるＣＰＵワーキングエリアと、前記図３で説明したトーンパラメータデータTONEPARpに対してユーザが設定した点のみが異なるトーンパラメータデータをｎ個格納する領域TONEPARu1〜unと、前記図３で説明したループシーケンサ用データLPSEQDATApに対してユーザが設定した点のみが異なるループシーケンサ用データをｌ個格納する領域LPSEQDATAu1〜ulと、図１０および１１を用いて後述する音色指定・補間・編集処理等により、指定されたトーンパラメータデータTONEPARやループシーケンサ用データLPSEQDATA等を格納して補間・編集処理を行うためのバッファであるｋ個のトーンバッファTONEBUF1〜kとが設けられている。
【００５９】
各トーンバッファTONEBUFは、トーンパラメータデータTONEPAR（このデータTONEPARは、前述したように、共有パラメータデータCOMPARとトーンパラメータデータSCENE1,2とにより構成されている）を格納するトーンパラメータバッファTONEPARABUF（COMPARBUF＋SCENEBUF1＋SCENEBUF2）と、前記シーンスライダ２３の操作に応じて補間されたトーンパラメータデータSCENE1および２間の補間値SCENEintpを格納する補間値バッファSCENEBUFintpと、前記複数のフリーＥＧ用データFREE_EGのうちいずれかのデータを選択して格納するフリーＥＧバッファFREE_EGBUFと、前記複数のループシーケンサ用データLPSEQDATAのうちいずれかのデータを選択して格納するバッファLOOP_SEQBUFとにより構成されている。
【００６０】
図５は、前記図１の音源回路１５内に設けられたパラメータレジスタの構成の一例を示す図であり、同図に示すように、パラメータレジスタは、ｊ個のトーンパラメータデータをそれぞれ格納するｊ個のレジスタTGPARREGch1〜jにより構成されている。
【００６１】
各レジスタTGPARREGchは、前記共有パラメータデータCOMPARのうち音源回路１５が必要とするデータを格納する領域COMPARchと、前記トーンパラメータデータSCENE1,2またはSCENEintpのうち音源回路１５が必要とするデータを格納する領域SCENEchとにより構成されている。
【００６２】
ユーザが自動演奏曲を指定すると、その曲に必要であり、かつ音源回路１５に必要なトーンパラメータデータがトーンバッファTONEBUFから選択されて、レジスタTGPARREGch1〜jのうちいずれかのレジスタに格納される。
【００６３】
図６は、前記フロッピディスクやＣＤ−ＲＯＭ、サーバコンピュータの各種記憶媒体に記憶されたトーンパラメータデータTONEPARｄおよびループシーケンサ用データLPSEQDATAｄの一例を示す図である。
【００６４】
このようして記憶されたトーンパラメータデータTONEPARdおよびループシーケンサ用データLPSEQDATAdを読出して、ＲＡＭ７の所定領域に記憶し、前記ユーザ設定データと同様にして使用することもできる。
【００６５】
以上のように構成された自動演奏装置が実行する制御処理を、以下、図９〜２４を参照して説明する。
【００６６】
図９は、本実施の形態の自動演奏装置、特にＣＰＵ５が実行するメインルーチンの手順を示すフローチャートである。
【００６７】
同図において、まず、デフォルト音色であるトーンパラメータデータTONEPARp1を前記ＲＯＭ６から読出して前記トーンパラメータバッファTONEPARBUF1に転送し、また、トーンパラメータデータSCENE1を補間値バッファSCENEBUFintp1に転送することによって、第１シーンスイッチ２１に割り当てられた音色をデフォルトで選択し、さらに、本制御処理で使用する各種フラグのリセットやＲＡＭ７の初期化等のシステム初期化処理を実行する（ステップＳ１）。
【００６８】
このように、トーンパラメータデータSCENE1を補間値バッファSCENEBUFintp1に転送することによって、第１シーンスイッチ２１に割り当てられた音色がデフォルトで選択されるのは、本実施の形態では、図２１〜２３を用いて後述する発音処理に示すように、前記３種類のトーンモードのいずれのモードにおいても、前記音源回路１５のレジスタTGPARREGch1〜jには、基本的に補間値バッファSCENEBUFintpの内容が転送されるからである。
【００６９】
なお、本実施の形態では、トーンバッファTONEBUF1は、鍵盤１に指定された音色に対応する音色パラメータを格納するバッファとし、ユーザは、鍵盤１に指定される音色のみ、すなわちトーンバッファTONEBUF1に格納する音色パラメータのみを自由に変更できるように構成されている。しかし、これは説明上の都合であって、実際には、自動演奏データが複数のチャンネルで構成されており、鍵盤１以外に割り当てられたチャンネルのデータがある場合や、他のＭＩＤＩ機器１００からのＭＩＤＩイベントデータがある場合に、そのデータに応じて発音される楽音の音色を任意に設定することができるように構成されていることは云うまでもない。
【００７０】
次に、各種イベントを検出するイベント検出処理を実行する（ステップＳ２）。ここで、検出されるイベントとしては、たとえば、鍵盤１を押鍵したときに発生する押鍵イベント、パネルスイッチ２を押下したときに発生するスイッチイベント、自動演奏データを読出したときに発生するキーオン／オフイベント等のイベント、他のＭＩＤＩ機器１００から出力されたＭＩＤＩイベント等がある。
【００７１】
そして、音色指定・補間・編集処理サブルーチン（図１０および１１を用いて後述する）を実行し（ステップＳ３）、前記ループシーケンサスイッチ２８を押下したときに実行されるループシーケンサ（LOOP_SEQUENCER）処理サブルーチン（図１２〜１４を用いて後述する）を実行し（ステップＳ４）、前記フリーＥＧスイッチ２７を押下したときに実行されるフリーＥＧ（FREE_EG）処理サブルーチン（図１５〜１９を用いて後述する）を実行し（ステップＳ５）、パラメータがリアルタイムで変更されたときにその変更後のパラメータで楽音を生成するために、前記音源回路１５のレジスタTGPARREGchに格納するパラメータを常に新しいデータで更新するパラメータ時変制御処理サブルーチン（図２０を用いて後述する）を実行し（ステップＳ６）、キーオンイベントに対応する楽音を発生させる発音処理サブルーチン（図２１〜２３を用いて後述する）を実行した（ステップＳ７）後に、上記ステップＳ２に戻って、上述の処理を繰り返す。
【００７２】
図１０および１１は、上記ステップＳ３の音色指定・補間・編集処理サブルーチンの詳細な手順を示すフローチャートである。
【００７３】
図１０において、まず、音色選択イベントが発生したか否かを判別する（ステップＳ１１）。ここで、音色の選択は、前記図示しない音色選択／指示操作子によって行われる。
【００７４】
ステップＳ１１で、音色選択イベントが発生したときには、その選択された音色ｑに対応する音色パラメータデータをトーンバッファTONEBUF1に転送して展開する（ステップＳ１２）。具体的には、トーンパラメータデータTONEPARqをトーンパラメータバッファTONEPARBUF1に転送するとともに、トーンパラメータデータSCENE1qを補間値バッファSCENEBUFintp1に転送する。すなわち、補間値SCENEintpとしては、最初、第１シーンスイッチ２１に割り当てられたトーンパラメータデータSCENE1qが設定される。ここで、ｑは、ユーザが選択可能なすべての音色を示し、ユーザが選択した音色のパラメータがＲＯＭ６に記憶されている場合には、ｑはp1〜pmのいずれかを示し、この音色のパラメータがＲＡＭ７に記憶されている場合には、ｑはu1〜unのいずれかを示し、この音色パラメータがディスク等の記憶媒体等に記憶されている場合には、ｑはd1〜dkのいずれかを示す。
【００７５】
続くステップＳ１３では、第１シーンスイッチ２１に割り当てられた音色が補間値SCENEintpとしても設定されていることを“１”で示すセットフラグsetflg_1をセット（“１”）するとともに、第２シーンスイッチ２２に割り当てられた音色が補間値SCENEintpとしても設定されていることを“１”で示すセットフラグsetflg_2をリセット（“０”）する。
【００７６】
一方、ステップＳ１１で、音色選択イベントが発生しないときには、ステップＳ１２および１３をスキップしてステップＳ１４に進む。
【００７７】
ステップＳ１４では、フリーＥＧデータの録音中、すなわちフリーＥＧデータを検出しフリーＥＧデータ格納領域FREE_EG_DATAに書き込み中であることを“１”で示すフリーＥＧデータレコーディング中フラグFEG_rec_flgが“０”か否かを判別し、FEG_rec_flg＝０のとき、すなわちフリーＥＧデータの録音中でないときには、前記８個のノブ２４_１〜８のうちのいずれのノブかを示すインデックスｉ（このインデックスｉは、たとえば、前記ＣＰＵワークエリアの所定の位置に確保されたソフトカウンタで構成される）を“１”に設定する（ステップＳ１５）。
【００７８】
続くステップＳ１６では、インデックスｉで示すノブ２４_ｉの操作イベントが発生したか否かを判別し、操作イベントが発生したときには、トーンバッファTONEBUF1上のノブ２４_ｉに割り当てられたパラメータデータを当該操作量に応じて修正する（ステップＳ１７）一方、操作イベントが発生しないときには、ステップＳ１７をスキップしてステップＳ１８に進む。
【００７９】
ステップＳ１８では、すべてのノブ２４_１〜８について、ステップＳ１６およびＳ１７の処理を完了したか否かを、インデックスｉが“８”であるか否かにより判別し、ｉ≠８、すなわち未処理のノブ２４_ｉが残っているときには、インデックスｉを“１”だけインクリメントした（ステップＳ１９）後に、前記ステップＳ１６に戻って前述の処理を繰り返す一方、ｉ＝８、すなわちすべてのノブ２４_ｉに対して処理を完了したときにはステップＳ２０に進む。
【００８０】
ステップＳ２０では、インデックスｉを“１”に設定する。ここで、インデックスｉは、前記ステップＳ１５〜１９で使用したインデックスと同一名称が付与されているが、その作用は異なるものである。本ステップのインデックスｉは、１または２のいずれかの整数値を採り、第１または２シーンスイッチ２１または２２のいずれのスイッチに対応するかを示すものである。なお、インデックスｉは、以下に説明する各種制御処理中で頻繁に出現するが、いずれも、名称は同一であってもその作用は異なっている。
【００８１】
続くステップＳ２１では、第ｉシーンスイッチSCENSW2iの押圧イベントが発生したか否かを判別し、押圧イベントが発生したときには、トーンバッファTONEBUF1の第ｉシーンバッファSCENEBUFiに格納されているトーンパラメータデータを補間値バッファSCENEBUFintpに転送し（ステップＳ２２）、インデックスｉで示されるセットフラグsetflg_iをセットする一方、他方のセットフラグsetflg_ｊ（ｊ≠ｉ）をリセットする（ステップＳ２３）。
【００８２】
このように、第ｉシーンスイッチSCENSW2iを押下すると、それに対応する第ｉシーンバッファSCENEBUFiの内容が補間値バッファSCENEBUFintpに転送されて、第ｉシーンスイッチSCENSW2iに割り当てられた音色が選択される。すなわち、第ｉシーンスイッチSCENSW2iが押下されると、その押下前にシーンスライダ２３の操作に応じて補間された音色が選択されていたとしても、その音色は無効になり、第ｉシーンスイッチSCENSW2iに割り当てられた音色が有効になる。
【００８３】
一方、ステップＳ２１で、押鍵イベントが発生しないときには、ステップＳ２２およびＳ２３をスキップしてステップＳ２４に進む。
【００８４】
ステップＳ２４では、インデックスｉが“２”であるか否かを判別し、ｉ≠２、すなわちステップＳ２１〜Ｓ２３の処理を行うべきシーンスイッチが残っているときにはステップＳ２５に進み、インデックスｉを“１”だけインクリメントした後に前記ステップＳ２１に戻る一方、ｉ＝２、すなわちすべてのシーンスイッチに対してステップＳ２１〜Ｓ２３の処理を完了したときには図１１のステップＳ２６に進む。
【００８５】
ステップＳ２６では、セットフラグsetflg_1が“１”であるか否かを判別し、setflg_1＝１のときには、前記シーンスライダ２３の位置を検出し、０〜１２７のいずれかの整数値に変換して記憶するために、ＲＡＭ７のＣＰＵワーキングエリアに設けられた領域SCSLDOPの値（以下、この領域に格納された値を「シーンスライダ操作位置SCSLDOP」という）が“０”であるか否かを判別する（ステップＳ２７）。
【００８６】
ステップＳ２７で、SCSLDOP＝０、すなわちシーンスライダ２３が図２において最下位の位置まで下げられているときには、セットフラグsetflg_1をリセットする（ステップＳ２８）一方、SCSLDOP≠０のときには、ステップＳ２８をスキップしてステップＳ２９に進む。
【００８７】
一方、ステップＳ２６で、setflg_1＝０のときには、ステップＳ２７およびＳ２８をスキップしてステップＳ２９に進む。
【００８８】
ステップＳ２９では、セットフラグsetflg_2が“１”であるか否かを判別し、setflg_1＝１のときには、シーンスライダ操作位置SCSLDOPが“１２７”であるか否かを判別する（ステップＳ３０）。
【００８９】
ステップＳ３０で、SCSLDOP＝１２７、すなわちシーンスライダ２３が図２において最上位の位置まで上げられているときには、セットフラグsetflg_2をリセットする（ステップＳ３１）一方、SCSLDOP≠１２７のときには、ステップＳ３１をスキップしてステップＳ３２に進む。
【００９０】
一方、ステップＳ２９で、setflg_2＝０のときには、ステップＳ３０およびＳ３１をスキップしてステップＳ３２に進む。
【００９１】
ステップＳ３２では、シーンスライダ２３の操作イベントが発生したか否かを判別し、その操作イベントが発生したときには、setflg_1,2がともに“０”であるか否かを判別する（ステップＳ３３）。
【００９２】
ステップＳ３３で、setflg_1＝０＆setflg_2＝０、すなわち第１シーンスイッチ２１が有効な状態で、シーンスライダ２３が最下位の位置まで下げられた後の操作イベントのとき、または第２シーンスイッチ２２が有効な状態で、シーンスライダ２３が最上位の位置まで上げられた後の操作イベントのときには、シーンスライダ操作位置SCSLDOPに応じて、まず、次式（１）により、第１シーンバッファSCENEBUF1および第２シーンバッファSCENEBUF2にそれぞれ格納されている数値型パラメータデータの補間演算を、該各パラメータデータ毎に全数値型パラメータデータに亘って実行し（ステップＳ３４およびＳ３５）、次いで、次式（２）により、非数値型パラメータデータの設定を実行した（ステップＳ３６およびＳ３７）後に、本音色指定・補間・編集処理を終了する。
【００９３】
nd(SCENEBUFintp) ← f[SCSLDOP,nd(SCENEBUF1),nd(SCENEBUF2)] ‥‥（１）
ただし、“nd”は、数値型データであることを示し、“ｆ”は、数値型データnd（SCENEBUFi）の補間演算アルゴリズムに応じて決定される関数を示している。前述したように、本実施の形態では、補間演算アルゴリズムとして直線補間を用いているため、上式（１）の右辺は、具体的には、次式（１）′のように書き表すことができる。
【００９４】
f[SCSLDOP,nd(SCENEBUF1),nd(SCENEBUF2)] ＝ [(SCSLDOPmax-SCSLDOP)×nd(SCENEBUF1)+SCSLDOP×nd(SCENEBUF2)]/SCSLDOPmax  ‥‥（１）′
なお、補間演算アルゴリズムは直線補間に限らず、指数、対数、その他各種の曲線により補間を行うようにしてもよい。このとき、パラメータ毎に補間演算アルゴリズムを指定できるようにしてよい。また、パラメータによって補間する／しないを選択設定できるようにしてもよい。
【００９５】
sd(SCENEBUFintp) ← f[SCSLDOP,sd(SCENEBUF1),sd(SCENEBUF2)] ‥‥（２）
ただし、“sd”は、非数値型データであることを示し、“ｆ”は、選択型データsd（SCENEBUFi）の補間アルゴリズムに応じて決定される関数を示している。
【００９６】
補間されるデータが選択型データである場合には、補間アルゴリズムとしては、上記各種曲線補間を単純に採用することはできないため、上式（２）は、たとえば次式（２）′のように書き表すことができる。
【００９７】
【数１】
0003541615.tif 000002
なお、選択型データsd（SCENEBUFi）が３通り以上の設定範囲を有する場合には、この設定範囲に応じて適宜閾値を設定し、シーンスライダ操作位置SCSLDOPに応じて順次切り換えていくようにすればよい。また、演奏中または発音中に切り換えるとノイズが発生するような障害を起こすようなパラメータは補間対象から除外し、所定の設定値に固定するようにしてもよい。さらに、パラメータ毎に取り扱い方法を変更するようにしてもよい。
【００９８】
また、セットフラグsetflg_iに応じてまたは同期して、前記図２のＬＥＤ３０および３１を点灯制御するようにしてもよい。たとえば、第ｉシーンスイッチSCENSW2iに割り当てられた音色が選択されているときには、ＬＥＤ３０および３１のうち対応するＬＥＤのみ点灯し、シーンスライダ２３により補間された音色が選択されているときには、両ＬＥＤ３０および３１は消灯、または、ともに点灯、またはともに点滅する。補間音色が選択されているときには、補間結果がシーンスイッチ２１，２２にそれぞれ割り当てられた音色のいずれに近いかに応じて、対応するＬＥＤ３０，３１を点灯または点滅にしてもよい。さらに、シーンスライダ２３が操作端に達したときには、その端に対応するＬＥＤ３０，３１を点灯するようにしてもよい。
【００９９】
なお、本実施の形態では、シーンスライダ２３として、スライド操作子を採用したが、これに限らず、前述のようにどのような操作子を用いてもよい。さらに、操作子に限らず、楽音合成装置で多用されるエンベロープジェネレータで時間変化する補間信号を生成して利用したり、操作子の操作量を記録したものを読出して利用したりしてもよい。
【０１００】
図１２および１３は、前記図９のステップＳ４のループシーケンサ処理サブルーチンの詳細な手順を示すフローチャートである。
【０１０１】
図１２において、まず、ループシーケンサの動作モードがプレイモード（L-SEQ_PLAY MODE）であるか否かを判別する（ステップＳ４１）。
【０１０２】
ここで、動作モードには、このプレイモードと、プログラムモード（L-SEQ_PROGRAM MODE）の２種類のモードがあり、プレイモードは、前記トーンバッファTONEBUF1のループシーケンサバッファLOOP_SEQBUFに格納されたループシーケンサ用データLPSEQDATAに基づいて楽音を生成する処理を行うモードであり、プログラムモードは、このループシーケンサ用データLPSEQDATAを作成するモードである。
【０１０３】
前記ステップＳ４１で、動作モードがプレイモードでないときには、ループシーケンサ用データLPSEQDATAを選択してループシーケンサバッファLOOP_SEQBUFに転送する処理であるループシーケンサ用データ（LPSEQDATA）選択処理を実行する（ステップＳ４２）一方、動作モードがプレイモードでないときには、ステップＳ４２をスキップしてステップＳ４３に進む。
【０１０４】
ここで、ループシーケンサ用データ選択処理とは、具体的には、トーンバッファTONEBUF1の共有データバッファCOMPARBUFに格納されたループシーケンサ用データ指定データLOOP_SEQ_INDEXが示すループシーケンサ用データLPSEQDATAをループシーケンサバッファLOOP_SEQBUFに転送する処理をいう。なお、これに限らず、ループシーケンサ用データLPSEQDATAを直接選択できるようにしてもよい。
【０１０５】
ステップＳ４３では、動作モードがプログラムモードであるか否かを判別し、プログラムモードのときには、ループシーケンサ用データLPSEQDATAを作成したり編集したりするループシーケンサ用データ（LPSEQDATA）作成編集処理を行う（ステップＳ４４）。ここで、ループシーケンサ用データ作成編集処理としては、具体的には、たとえばノブ２４_ｉを用いて前記イベントデータLPSEQ_EVENT_DATAの各データ（音高、タッチ、音長等）を１つずつ作成し、またはこのようにして作成されたデータを変更したりする処理や、その他、前記テンポ値データTEMPOや制御モード選択データCONT_MODE等のループシーケンサに関連する基本データを設定したり変更したりする処理がある。
【０１０６】
続くステップＳ４５では、ループシーケンサのスタートイベントが発生したか否かを判別する。このスタートイベントは、押鍵、ペダル（図示せず）等の補助操作子の操作、パネルスイッチ２中にループシーケンサのスタート／ストップスイッチ（図示せず）を設け、この押圧イベントの検出、外部からのスタート信号の検出等によって、発生するようにすればよい。
【０１０７】
ステップＳ４５で、ループシーケンサのスタートイベントが発生したときには、動作モードをプレイモードに移行させた（ステップＳ４６）後に、本ループシーケンサ処理を終了する一方、ループシーケンサのスタートイベントが発生しないときには、何もせずに本ループシーケンサ処理を終了する。
【０１０８】
一方、ステップＳ４３で、動作モードがプログラムモードでないときには、プレイモードであるか否かを判別し（ステップＳ４７）、プレイモードでないときには、直ちに本ループシーケンサ処理を終了する一方、プレイモードのときには、たとえば本ループシーケンサ処理の停止等の演奏管理処理を行う（ステップＳ４８）。
【０１０９】
続く図１３のステップＳ４９では、演奏を終了すべきか否かを判別し、演奏を終了すべきときには、所定の演奏終了処理を行う（ステップＳ５０）一方、演奏を終了すべきでないとき、すなわち演奏を継続するときにはステップＳ５１に進む。
【０１１０】
ステップＳ５１では、制御モードCONT_MODE、すなわち前記ループシーケンサバッファLOOP_SEQBUFの制御モード選択データCONT_MODEにより示されるモードがノーマル（normal）モードか否かを判別し、CONT_MODE＝normalのときには、ループシーケンサバッファLOOP_SEQBUFに格納されているデータに基づいて演奏イベントを発生するループシーケンス（LOOP_SEQ）演奏処理サブルーチン（図１４を用いて後述する）を実行した（ステップＳ５２）後に、本ループシーケンサ処理を終了する。
【０１１１】
一方、ステップＳ５１で、CONT_MODE≠normalのときには、前記ノートシフト鍵域におけるキーオンイベントが発生したか否かを判別し（ステップＳ５３）、ノートシフト鍵域におけるキーオンイベントが発生したときには、このキーオンイベントに対応するキーコード（keycode）に応じた値（本実施の形態では、前述したように、該キーコードと所定の基準鍵との音程数）をノートシフト値shift_value1として記憶する（ステップＳ５４）。
【０１１２】
一方、ステップＳ５３で、ノートシフト鍵域におけるキーオンイベントが発生しないときには、前記パターンセレクト鍵域におけるキーオンイベントが発生したか否かを判別し（ステップＳ５５）、パターンセレクト鍵域におけるキーオンイベントが発生したときには、前記ステップＳ５４と同様に、このキーオンイベントに対応するキーコード（keycode）に応じた値をノートシフト値shift_value2として記憶する（ステップＳ５６）一方、パターンセレクト鍵域におけるキーオンイベントが発生しないときには、何もせずにステップＳ５７に進む。
【０１１３】
ステップＳ５７では、制御モードCONT_MODEがノートシフトモードであるか否かを判別し、ノートシフトモードのときには、指定されたループシーケンサ用データLPSEQDATA、すなわちループシーケンサバッファLOOP_SEQBUFに記憶されたデータに基づいて、かつ音高を前記ノートシフト値shift_value1に応じて一律変更したループシーケンス演奏イベントを発生させる（ステップＳ５８）。
【０１１４】
一方、ステップＳ５７で、制御モードCONT_MODEがノートシフトモードでないときには、パターンセレクトモードであるか否かを判別し（ステップＳ５９）、パターンセレクトモードのときには、前記ノートシフト値shift_value2に応じてパターン変更してループシーケンス演奏イベントを発生させる（ステップＳ６０）一方、制御モードCONT_MODEがパターンセレクトモードでないときには、ノートシフト＆パターンセレクト共用モードであるか否かを判別する（ステップＳ６１）。
【０１１５】
ステップＳ６１で、制御モードCONT_MODEがノートシフト＆パターンセレクト共用モードのときには、ノートシフト値shift_value1に応じて音高を一律変更するとともに、ノートシフト値shift_value2に応じてパターンを変更してループシーケンス演奏イベントを発生させる（ステップＳ６２）一方、制御モードCONT_MODEがノートシフト＆パターンセレクト共用モードでないときには、何もせずに本ループシーケンサ処理を終了する。
【０１１６】
図１４は、前記ステップＳ５２のループシーケンス演奏処理サブルーチンの詳細な手順を示すフローチャートである。本ループシーケンス演奏処理では、ループ読出し態様LOOP_TYPEがフォーワードのとき、すなわち前記ループシーケンサバッファLOOP_SEQBUFのループ読出し態様データLOOP_TYPEがフォーワードを示すデータのときの制御処理のみを説明し、他の読出し態様の制御処理を省略しているが、これは、他の読出し態様の制御処理は、本処理を基本にして少しの変更で簡単に実現することができるからである。したがって、実際には、前記６種類のループ読出し態様LOOP_TYPEに応じて、それぞれ固有のループシーケンス演奏処理を行うように構成されている。
【０１１７】
同図において、まず、イベントカウンタLPSEQ_event_counterの値に応じて、ループシーケンサバッファLOOP_SEQBUFに格納されたシーケンスデータLPSEQ_DATA（LPSEQ_event_counter）を読出す（ステップＳ７１）。イベントカウンタLPSEQ_event_counterは、ループシーケンサバッファLOOP_SEQBUFに格納されたシーケンスデータLPSEQ_DATAのうちいずれか１つのシーケンスデータLPSEQ_DATA（LPSEQ_event_counter）を指示するソフトカウンタである。ここで、ソフトカウンタとは、前記ＣＰＵワーキングエリアに確保された領域を用いて計数を行うカウンタをいい、以下、ソフトカウンタというときには、この種のカウンタを示している。
【０１１８】
次に、読み出されたシーケンスデータLPSEQ_DATA（LPSEQ_event_counter）がイベントデータであるか否かを判別し（ステップＳ７２）、イベントデータではなく、デュレーションデータのときには、そのデュレーション値を、デュレーションタイマDURATION_timerに設定する（ステップＳ７３）一方、イベントデータのときには、ステップＳ７３をスキップしてステップＳ７４に進む。ここで、デュレーションタイマDURATION_timerとは、イベントデータ間の時間間隔を示すデュレーションデータ値を、たとえば所定の時間毎にダウンカウントして、イベントデータの発生タイミングを生成するソフトタイマである。ここで、ソフトタイマとは、上記ソフトカウンタと同様に、ＣＰＵワーキングエリアに確保された領域を用いて計時を行うタイマをいい、以下、ソフトタイマというときには、この種のタイマを示している。
【０１１９】
なお、シーケンスデータLPSEQ_DATAとして、イベントデータのみが格納される場合には、上記ステップＳ７２およびＳ７３の処理は必要ないが、たとえば、図６で説明したように、ディスク等の記憶媒体からループシーケンサ用データLPSEQDATAｄをロードした場合には、そのシーケンスデータLPSEQ_DATAは、イベントデータに加えてデュレーションデータも含むことがあるため、この場合を担保する意味で、ステップＳ７２およびＳ７３の処理を行っている。
【０１２０】
ステップＳ７４では、（演奏）イベントの発生タイミングか否かを判別する。ここで、イベントの発生タイミングか否かの判別は、シーケンスデータLPSEQ_DATAにデュレーションデータが含まれている場合には、デュレーションタイマDURATION_timerが“０”であるか否か、シーケンスデータLPSEQ_DATAにデュレーションデータが含まれていない場合には、前記ループシーケンサバッファLOOP_SEQBUFのベースユニットデータBASE_UNITとして設定された設定時間が経過したか否かを判別することによって行われる。
【０１２１】
なお、ベースユニットデータBASE_UNITとしては、絶対時間データを採るようにしてもよいし、相対値データ（たとえば、所定の基準クロックに対する相対値）を採るようにしてもよい。
【０１２２】
ステップＳ７４で、イベントの発生タイミングでないときには、直ちに本ループシーケンス演奏処理を終了する一方、イベントの発生タイミングのときには、読み出されたシーケンスデータLPSEQ_DATA（LPSEQ_event_counter）に基づいて演奏イベントを発生させる（ステップＳ７５）。
【０１２３】
次いで、イベントカウンタLPSEQ_event_counterの値が、前記ループシーケンサバッファLOOP_SEQBUFのステップ数データLSEQ_STEP_Noに一致するか否かを判別し（ステップＳ７６）、LPSEQ_event_counter＝LSEQ_STEP_Noのときには、イベントカウンタLPSEQ_event_counterを初期化して、イベントカウンタLPSEQ_event_counterが最初に読出したイベントデータの位置を指示するようにした（ステップＳ７７）後に、本ループシーケンス演奏処理を終了する。
【０１２４】
一方、ステップＳ７６で、LPSEQ_event_counter≠LSEQ_STEP_Noのときには、イベントカウンタLPSEQ_event_counterが、前記ループシーケンサバッファLOOP_SEQBUFのステップホールドデータSTEP_HOLDの値に一致するか否かを判別し（ステップＳ７８）、LPSEQ_event_counter≠STEP_HOLDのときには、イベントカウンタLPSEQ_event_counterを“１”だけインクリメントした（ステップＳ７９）後に、本ループシーケンス演奏処理を終了する一方、LPSEQ_event_counter＝STEP_HOLDのときには、何もせずに本ループシーケンス演奏処理を終了する。このようにして、ステップＳ７８の処理により、ステップホールドデータSTEP_HOLDとして、イベントデータLPSEQ_EVENT_DATAのうちいずれかのイベントのステップ番号が記憶されているときには、第１ステップのイベントからステップホールドデータSTEP_HOLDが示すステップのイベントまで順次演奏イベントが発生すると、その後、ステップホールドデータSTEP_HOLDが示す演奏イベントが繰り返し発生する。
【０１２５】
なお、ループ読出し態様データLOOP_TYPEとして、他の読出し態様が設定されているときには、上記フォワードのループシーケンス演奏処理を次のように修正する。
【０１２６】
すなわち、バックワードが設定されているときには、シーケンスデータLPSEQ_DATAを後端から読出し、先頭に到達したときには、再び後端から繰り返して読出すように、イベントカウンタLPSEQ_event_counterを制御する。
【０１２７】
オルタネートが設定されているときには、最初上記フォワードのループシーケンス処理に従ってシーケンスデータLPSEQ_DATAを読出し、その後端に到達したときには、上記バックワードのループシーケンス処理に従ってシーケンスデータLPSEQ_DATAを読出し、先頭に到達したときには、再びフォワードのループシーケンス演奏処理というように読出し制御を行う。
【０１２８】
他の読み出し態様の読出し制御についても、同様にして簡単な修正で実現することができるので、その説明を省略する。
【０１２９】
図１５〜１９は、前記図９のステップＳ５のフリーＥＧ処理サブルーチンの詳細な手順を示すフローチャートである。
【０１３０】
図１５において、まず、フリーＥＧ処理における動作モードのチェックを行う（ステップＳ８１）。ここで、動作モードには、大きく分けて、フリーＥＧレコーディングモードおよびフリーＥＧプレイモードの２種類のモードがある。フリーＥＧレコーディングモードには、前記フリーＥＧバッファFREE_EGBUFの各トラックTRACK1〜4を１つずつ指定して、当該トラックに割り当てられたノブ２４_ｉの操作状態を記録するフリーＥＧ１トラックレコーディングモード（FEG_1track_REC）およびこの各トラックTRACK1〜4にそれぞれ割り当てられたノブ２４_ｉの操作状態を、全トラック一度に記録するフリーＥＧオールトラックレコーディングモード（FEG_alltrk_REC）の２種類のモードがある。そして、フリーＥＧプレイモードには、一度フリーＥＧプレイの指示を行うと、たとえば所定の停止操作を行ったり、前記フリーＥＧデータ格納領域FREE_EG_DATAのループ読出し態様データLOOP_TYPEがループ読出しオフに設定されているときに全トラックTRACK1〜4の読出しを完了した等の特別な操作や動作を行わない限りフリーＥＧプレイ（ループ読出し）を継続するフリーモード（FREE_MODE）および鍵盤１の所定の鍵を押下しているときのみフリーＥＧプレイを続けるモードの２種類のモードがある。なお、上記各モードの選択は、前記パネルスイッチ２の図示しない動作モードスイッチによって行うようにしてもよいし、前記トーンモードスイッチ２６を併用して行うようにしてもよい。
【０１３１】
ここで、フリーＥＧレコーディングモードのレコーディング時に操作されるノブ２４_ｉとその操作値によって制御されるパラメータとの対応関係は、たとえば、通常のパラメータ設定時に、前記パラメータメニュースイッチ２５の操作で決定されたノブ２４_ｉとパラメータとの対応関係をそのまま使用するようにしてもよいし、また、レコーディング時に限定して、各ノブ２４_ｉに個別に制御対象パラメータを割り当てるようにしてもよい。このとき、割り当てられる制御対象パラメータは、１つでもよいし、複数個でもよい。複数個のパラメータを１つのノブ２４_ｉまたは１つのトラックTRACKiのフリーＥＧデータとして割り当てるようにした場合には、パラメータ毎に感度調整等を行えるようにすれば、さらに自由度の高い制御が可能になる。
【０１３２】
また、フリーＥＧプレイモードのプレイ時においても、各トラックTRACKi毎に制御対象パラメータを変更できるようにしてもよい。
【０１３３】
さらに、トラックTRACK1〜4のうち複数個のトラックの出力を任意に組み合わせて演算し、その演算結果により、パラメータを制御するようにしてもよい。
【０１３４】
また、さらに、レコーディング時に、ノブ２４_１〜８のうち、操作された複数のノブの操作値を組み合わせて演算し、その演算結果を１つのトラックTRACKiに記録するようにしてもよい。
【０１３５】
次に、動作モードがフリーＥＧレコーディングモードであるか否かを判別し（ステップＳ８２）、フリーＥＧレコーディングモードでないときには、フリーＥＧプレイモードであるため、図１８のステップＳ１２２以降のフリーＥＧプレイモード処理に移行する一方、フリーＥＧレコーディングモードのときには、前記フリーＥＧデータレコーディング中フラグFEG_rec_flg（図１０のステップＳ１４参照）が“０”か否かを判別する（ステップＳ８３）。
【０１３６】
ステップＳ８３で、FEG_rec_flg＝１、すなわちフリーＥＧデータレコーディング中のときには、図１７のステップＳ１０９以降のフリーＥＧデータレコーディング中処理に移行する一方、FEG_rec_flg＝０、すなわちフリーＥＧデータレコーディング以前の前処理のときにはステップＳ８４に進む。
【０１３７】
ステップＳ８４では、フリーＥＧ１トラックレコーディングモードを指定する指定イベントが発生したか否かを判別する。この指定イベントは、たとえば、前記パネルスイッチ２の図示しない動作モード指定スイッチを操作することによって発生する。もちろん、指定イベントは、これに限らず、前記パラメータメニュースイッチ２５と同様のメニュースイッチを設けるとともに、その切換えメニュー中に動作モードの指定をノブ２４_ｉに割り当て可能なメニューを設け、そのノブ２４_ｉを操作することによって発生するようにしてもよい。
【０１３８】
ステップＳ８４で、フリーＥＧ１トラックレコーディングモードを指定する指定イベントが発生したときには、動作モードをフリーＥＧ１トラックレコーディングモードに移行させ（ステップＳ８５）、各トラックTRACK1〜4のトラック状態をチェックしてそのチェック結果を表示する（ステップＳ８６）。
【０１３９】
続くステップＳ８７では、空きトラックがあるか否かを判別し、空きトラックがあるときには、そのトラック番号を、前記ＣＰＵワーキングエリアの所定位置に確保された領域rec_track（以下、この領域に格納された内容を「レコーディングトラックrec_track」という）に格納し（ステップＳ８８）、レコーディングトラックrec_trackが示すTRACK（rec_track）を初期化した（ステップＳ８９）後に、本フリーＥＧ処理を終了する。
【０１４０】
一方、ステップＳ８７で、空きトラックがないときには、トラックTRACK1〜4のいずれかのトラックに重ね書き（オーバーライト）を行う旨のアラーム表示を行った（ステップＳ９０）後に、本フリーＥＧ処理を終了する。
【０１４１】
一方、ステップＳ８４で、フリーＥＧ１トラックレコーディングモード指定イベントが発生しないときには、動作モードがフリーＥＧ１トラックレコーディングモードであり、かつトラック指定イベントが発生したか否かを判別する（ステップＳ９１）。
【０１４２】
ステップＳ９１で、トラック指定イベントが発生したときには、前記ステップＳ８６と同様にして、その指定イベントが示すトラックTRACKx（ｘは、１〜４のいずれかの整数値）のトラック状態をチェックするとともに表示し（ステップＳ９２）、トラックTRACKxは空き状態か否かを判別する（ステップＳ９３）。
【０１４３】
ステップＳ９３で、トラックTRACKxが空き状態のときには、前記ステップＳ８８およびＳ８９と同様に、レコーディングトラックrec_trackにこのトラック番号ｘを格納し（ステップＳ９４）、トラックTRACKxを初期化した（ステップＳ９５）後に、本フリーＥＧ処理を終了する一方、トラックTRACKxに既にデータが書き込まれているときには、レコーディングトラックrec_trackにトラック番号１を格納し（ステップＳ９６）、トラックTRACK1を初期化した（ステップＳ９７）後に、前記ステップＳ９０に進み、アラーム表示を行う。
【０１４４】
一方、ステップＳ９１で、動作モードがフリーＥＧ１トラックレコーディングモードでないか、またはトラック指定イベントが発生しないときには、図１６のステップＳ９８に進む。
【０１４５】
ステップＳ９８では、フリーＥＧオールトラックレコーディングモードを指定する指定イベントが発生したか否かを判別し、この指定イベントが発生したときには、動作モードをフリーＥＧ１トラックレコーディングモードに移行させ（ステップＳ９９）、全トラックTRACK1〜4のトラック状態をチェックしてそのチェック結果を表示する（ステップＳ１００）。
【０１４６】
続くステップＳ１０１では、全トラックTRACK1〜4が空き状態であるか否かを判別し、いずれかのトラックに既にデータが書き込まれているときには、前記ステップＳ９０と同様にして、アラーム表示を行い（ステップＳ１０２）、全トラックTRACK1〜4の初期化を行った後にステップＳ１０４に進む一方、全トラックTRACK1〜4が空き状態であるときには、ステップＳ１０２およびＳ１０３をスキップしてステップＳ１０４に進む。
【０１４７】
ステップＳ１０４では、レコーディングトラックrec_trackに“０”を格納した後に、本フリーＥＧ処理を終了する。
【０１４８】
一方、ステップＳ９８で、フリーＥＧオールトラックレコーディングモード指定イベントが発生しないときには、フリーＥＧレコーディングスタート（FEG_REC START）イベントが発生したか否かを判別する（ステップＳ１０５）。
【０１４９】
ステップＳ１０５で、フリーＥＧレコーディングスタートイベントが発生したときには、前記フリーＥＧデータレコーディング中フラグFEG_rec_flgをセットするとともに、各トラックTRACK1〜4におけるフリーＥＧデータ、すなわちノブ２４_ｉの操作状態（操作イベント）の書き込み位置をステップ数で示すソフトカウンタであるイベントカウンタevcountを“０”に初期化し（ステップＳ１０６）、現在フリーＥＧデータレコーディング中であることを示す表示（“FEG_RECORDING”）等のフリーＥＧデータレコーディング中に行うべき関連処理を行った（ステップＳ１０７）後に、本フリーＥＧ処理を終了する。
【０１５０】
一方、ステップＳ１０５で、フリーＥＧレコーディングスタートイベントが発生しないときには、発生したイベントに応じたその他イベント処理（たとえば、記録対象ノブ２４_１〜８の選択や時間分解能設定等）を行った（ステップＳ１０８）後に、本フリーＥＧ処理を終了する。
【０１５１】
図１７のステップＳ１０９では、各トラックTRACK1〜4にノブ２４_ｉの操作状態を書き込むタイミングか否かを判別する。この書き込みタイミングは、前記ループシーケンサバッファLOOP_SEQBUFのベースユニットデータBASE_UNITを基準にして、すなわちベースユニットデータBASE_UNITに対応する時間毎に発生する。
【０１５２】
ステップＳ１０９で、書き込みタイミングでないときには、直ちに本フリーＥＧ処理を終了する一方、書き込みタイミングのときには、動作モードがフリーＥＧ１トラックレコーディングモードであるか否かを判別する（ステップＳ１１０）。
【０１５３】
ステップＳ１１０で、動作モードがフリーＥＧ１トラックレコーディングモードのときには、イベントカウンタevcountが示すトラックTRACK（evcount）に、その割り当てられたノブ２４_ｉの操作状態を記録するフリーＥＧ１トラックレコーディング処理（ステップＳ１１１〜Ｓ１１４）を行った後に、本フリーＥＧ処理を終了する一方、動作モードがフリーＥＧ１トラックレコーディングモードでないとき、すなわちフリーＥＧオールトラックレコーディングモードのときには、全トラックTRACK1〜4に、それぞれ割り当てられたノブ２４_ｉの操作状態を記録するフリーＥＧオールトラックレコーディング処理（ステップＳ１１５〜１２１）を行った後に、本フリーＥＧ処理を終了する。
【０１５４】
具体的には、フリーＥＧ１トラックレコーディング処理は、次に示す通りである。
【０１５５】
まず、ノブＫＮＯＢｙ（ｙは、割り当てられたノブの番号を示す）の操作値を、前記フリーＥＧバッファFREE_EGBUFのレコーディングトラックrec_trackにより示されるトラックTRACK（rec_track）内のフリーＥＧデータ格納領域FREE_EG_DATA中、イベントカウンタevcountにより示されるステップ位置の領域KNOBDATA（rec_track，evcount）に書き込む（ステップＳ１１１）。
【０１５６】
次に、イベントカウンタevcountの値がフリーＥＧデータ格納領域FREE_EG_DATAに記憶可能な最大ステップ数FEG_STEPより小さいか否かを判別し（ステップＳ１１２）、evcount＜FEG_STEPのときには、イベントカウンタevcountを“１”だけインクリメントする（ステップＳ１１３）一方、evcount＝FEG_STEPのときには、所定のフリーＥＧレコーディング終了処理を行うとともに、前記フリーＥＧデータレコーディング中フラグFEG_rec_flgをリセットする（ステップＳ１１４）。
【０１５７】
また、フリーＥＧオールトラックレコーディング処理は、次に示す通りである。
【０１５８】
まず、インデックスｉを“１”に初期化する（ステップＳ１１５）。
【０１５９】
次に、ノブＫＮＯＢｙｉ（ｙｉは、トラックTRACKiに割り当てられたノブの番号を示す）の操作値を、前記ステップＳ１１１と同様に、インデックスｉにより示されるトラックTRACKi内の、イベントカウンタevcountにより示されるステップ位置の領域KNOBDATA（ｉ，evcount）に書き込む（ステップＳ１１６）。
【０１６０】
そして、インデックスｉが“４”か否か、すなわち全トラックTRACK1〜4に対して書き込みを終了したか否かを判別し、まだ書き込みトラックが残っているとき（ｉ≠４）には、インデックスｉを“１”だけインクリメントした（ステップＳ１１８）後に前記ステップＳ１１６に戻る一方、全トラックTRACK1〜4に対して書き込みを終了したとき（ｉ＝４）にはステップＳ１１９に進む。
【０１６１】
ステップＳ１１９〜Ｓ１２１は、それぞれ前記ステップＳ１１２〜Ｓ１１４の処理と同様であるため、その説明を省略する。
【０１６２】
なお、本実施の形態では、イベントカウンタevcountを全トラックTRACK1〜4で共通にしたが、これに限らず、各トラックTRACKi毎にイベントカウンタevcountiを設け、各トラックTRACKi個別に記録ステップ数を設定できるようにしてもよい。
【０１６３】
また、本実施の形態では、ベースユニットデータBASE_UNITの値に対応する時間毎に、ノブ２４_１〜８の操作値を記録するように構成したが、これに限らず、ノブ２４_１〜８の操作状態に変化がない区間が連続する場合には、変化が起こるまで前変化イベントから新変化イベントの間はベースユニットデータBASE_UNITを基準にした時間間隔数を記録するようにしてもよい。ノブ２４_１〜８の操作状態が、たとえば図２５に示す状態のときには、白抜き矢印の個数（３個）を記録する。このようにすることより、フリーＥＧデータの容量を圧縮することができる。
【０１６４】
図１８のステップＳ１２２では、動作モードがフリーＥＧプレイモードであるか否かを判別し、フリーＥＧプレイモードでないときには、直ちに本フリーＥＧ処理を終了する一方、フリーＥＧプレイモードのときにはステップＳ１２３に進む。
【０１６５】
ステップＳ１２３では、フリーＥＧプレイモードにおいてそのプレイ中であることを“１”で示すフリーＥＧプレイ中フラグFEG_play_flgが“０”か否かを判別し、FEG_play_flg＝０のときには、ステップＳ１２４に進み、フリーＥＧプレイに移行する前段の処理を行う一方、FEG_play_flg＝１のときには、図１９のステップＳ１３２に進み、フリーＥＧプレイ中の処理を行う。
【０１６６】
ステップＳ１２４では、フリーＥＧプレイスタート（ＦＥＧ_ＰＬＡＹ ＳＴＡＲＴ）イベントが発生したか否かを判別し、フリーＥＧプレイスタートイベントが発生しないときには、直ちに本フリーＥＧ処理を終了する一方、フリーＥＧプレイスタートイベントが発生したときにはステップＳ１２５に進む。
【０１６７】
ここで、フリーＥＧプレイスタートイベントは、たとえば、前記パネルスイッチ２の何らかのスイッチ操作、鍵盤１の任意の押鍵イベントの検出、音色の選択、図示しないフットペダル等の演奏補助操作子の操作イベントの検出、ＭＩＤＩ信号の所定のメッセージの検出等により発生する。この他、フリーＥＧプレイモードが選択され、所定のトラックに再生すべきデータが格納されているときには、特別な操作をしなくてもそのままフリーＥＧプレイスタートイベントを発生させて、フリーＥＧプレイを行うようにしてもよい。
【０１６８】
ステップＳ１２５では、前記フリーＥＧバッファFREE_EGBUFのモード指定データTEMPO_SYNC／ABSOLUTEとして、テンポ同期モード（TEMPO_SYNC）が設定されているか否かを判別し、テンポ同期モードが設定されているときには、フリーＥＧバッファFREE_EGBUFのベースユニットデータBASE_UNITと共有データバッファCOMPARBUFのテンポデータTEMPOに応じて（たとえば、ベースユニットデータBASE_UNITに基準テンポ値とテンポデータ値TEMPOとの比の値を乗算して）フリーＥＧデータ格納領域FREE_EG_DATA内のデータを１ステップ分読み出す時間間隔を決定し、その結果（換算値）をタイムステップtimestepとする。
【０１６９】
一方、ステップＳ１２５で、モード指定データTEMPO_SYNC／ABSOLUTEとして、絶対時間モード（ABSOLUTE）が設定されているときには、前記フリーＥＧバッファFREE_EGBUFの絶対時間データLENGTHに基づいて１ステップ分読み出す時間間隔を、次式（３）により演算して決定し、その結果をタイムステップtimestepとする。
【０１７０】
timestep＝LENGTH／ｎ  ‥‥（３）
ただし、ｎは、フリーＥＧデータ格納領域FREE_EG_DATAに格納されているデータ数を示す。
【０１７１】
続くステップＳ１２８では、フリーＥＧデータ格納領域FREE_EG_DATAのキースケーリングデータRATE_KSが“０”でなく、かつ動作モードが前記フリーモード（FREE_MODE）でないか否かを判別し、この判別結果が肯定（“ＹＥＳ”）のとき、すなわちRATE_KS≠０＆／FREE_MODE（“／”は、論理否定を意味する）のときには、次式（４）により、タイムステップtimestepを変更する（ステップＳ１２９）一方、ステップＳ１２８の判別結果が否定（“ＮＯ”）、すなわちRATE_KS＝０またはフリーモードFREE_MODEのときには、ステップＳ１２９をスキップしてステップＳ１３０に進む。
【０１７２】
timestep＝timestep×f(kc,RATE_KS)  ‥‥（４）
ただし、ｆは独立変数が２変数（kc,RATE_KS）の関数であり、キーコードkcおよびキースケーリングデータRATE_KSが決定されると、正の値が１つ決定されるものであればどのようなものであってもよい。この関数値fは、キーコードkcおよびキースケーリングデータRATE_KSを用いて演算により求めるようにしてもよいし、テーブルデータを用意しておき、このテーブルデータを、キーコードkcおよびキースケーリングデータRATE_KSに基づいて検索して求めるようにしてもよい。
【０１７３】
ステップＳ１３０では、タイムステップtimestepの値を、前記フリーＥＧデータ格納領域FREE_EG_DATA内のデータを１ステップ分読み出すタイミングを決定するソフトタイマである読出しタイマTIMERにセットして、この読出しタイマTIMERをスタートさせ、次いで、ステップＳ１３１では、前記フリーＥＧプレイ中フラグFEG_play_flgをセットした後に、本フリーＥＧ処理を終了する。
【０１７４】
図１９のステップＳ１３２では、動作モードがフリーモードか否かを判別し、フリーモードでないときにはステップＳ１３３に進み、前記フリーＥＧプレイを継続するために割り当てられた鍵がすべて離鍵（キーオフイベント）されたか否かを判別し、いずれかの鍵が押鍵されているときにはステップＳ１３４に進む。
【０１７５】
ステップＳ１３４では、前記読出しタイマTIMERをチェックすることにより、前記フリーＥＧデータ格納領域FREE_EG_DATA内のデータの読出しタイミングであるか否かを判別し、その結果、読出しタイミングでないときには、直ちに本フリーＥＧ処理を終了する一方、読出しタイミングのときには、ループ再生が指示されているか否かを判別する（ステップＳ１３５）。この判別は、前記フリーＥＧバッファFREE_EGBUFのループ読出し態様データLOOP_TYPEに基づいて行う。具体的には、ループ読出し態様データLOOP_TYPEの値が“５”以下か否かを判別する。
【０１７６】
ステップＳ１３５で、ループ再生が指示されているとき、すなわちLOOP_TYPE≦５のときには、ループ読出し態様データLOOP_TYPEとして、フォワード（forward）が設定されているか否かを判別し、フォワードが設定されているとき、すなわちLOOP_TYPE＝１のときには、前述したフォワードの読出し態様に従って、各トラックTRACK1〜4毎に対応するフリーＥＧデータ格納領域FREE_EG_DATA内のデータKNOBDATAi（ｉは、現在指定されている読出しステップ位置を示す）を読出し（ステップＳ１３７）、このデータKNOBDATAiを、前記フリーＥＧバッファFREE_EGBUFの領域KNOBDATAiに格納した（ステップＳ１３８）後に、本フリーＥＧ処理を終了する。
【０１７７】
一方、ステップＳ１３６で、ループ読出し態様データLOOP_TYPEとして、フォワードが設定されていないとき、すなわちLOOP_TYPE≠１のときには、ループ読出し態様データLOOP_TYPEとして、バックワード（backward）が設定されているか否かを判別する（ステップＳ１３９）。
【０１７８】
ステップＳ１３９で、ループ読出し態様データLOOP_TYPEとして、バックワードが設定されているとき、すなわちLOOP_TYPE＝２のときには、前述したバックワードの読出し態様に従って、各トラックTRACK1〜4毎に対応するフリーＥＧデータ格納領域FREE_EG_DATA内のデータKNOBDATAiを読出し（ステップＳ１４０）、前記ステップＳ１３８に進む一方、ループ読出し態様データLOOP_TYPEとして、バックワードが設定されていないとき、すなわちLOOP_TYPE≠２のときにはステップＳ１４１に進む。
【０１７９】
ステップＳ１４１では、ループ読出し態様データLOOP_TYPEとして、オルタネート（alternate）が設定されているか否かを判別し、オルタネートが設定されているとき、すなわちLOOP_TYPE＝３のときには、前述したオルタネートの読出し態様に従って、各トラックTRACK1〜4毎に対応するフリーＥＧデータ格納領域FREE_EG_DATA内のデータKNOBDATAiを読出し（ステップＳ１４２）、前記ステップＳ１３８に進む一方、ループ読出し態様データLOOP_TYPEとして、オルタネートが設定されていないとき、すなわちLOOP_TYPE≠３のときにはステップＳ１４３に進む。
【０１８０】
ステップＳ１４３では、ループ読出し態様データLOOP_TYPEとして、ハーフ（half）が設定されているか否かを判別し、ハーフが設定されているとき、すなわちLOOP_TYPE＝４のときには、前述したハーフの読出し態様に従って、各トラックTRACK1〜4毎に対応するフリーＥＧデータ格納領域FREE_EG_DATA内のデータKNOBDATAiを読出し（ステップＳ１４４）前記ステップＳ１３８に進む一方、ループ読出し態様データLOOP_TYPEとして、ハーフが設定されていないとき、すなわちLOOP_TYPE≠４のときには、ループ読出し態様データLOOP_TYPEとしては、ハーフオルタネートが設定されているため、前述したハーフオルタネートの読出し態様に従って、各トラックTRACK1〜4毎に対応するフリーＥＧデータ格納領域FREE_EG_DATA内のデータKNOBDATAiを読出し（ステップＳ１４５）前記ステップＳ１３８に進む。
【０１８１】
一方、ステップＳ１３５で、ループ再生が指示されていないとき、すなわちLOOP_TYPE＝６のときには、前述したループ読出しオフの読出し態様に従って、各トラックTRACK1〜4毎に対応するフリーＥＧデータ格納領域FREE_EG_DATA内のデータKNOBDATAiを読出し（ステップＳ１４６）前記ステップＳ１３８に進む。
【０１８２】
一方、ステップＳ１３２で、動作モードがフリーモードのときには、フリーモードを終了するための前記指示イベントが発生したか否かを判別し（ステップＳ１４７）、この指示イベントが発生したときには、所定のフリーＥＧプレイ終了処理を行うとともに、前記フリーＥＧプレイ中フラグFEG_play_flgをリセットした（ステップＳ１４８）後に、本フリーＥＧ処理を終了する一方、この指示イベントが発生しないときには、前記ステップＳ１３４に進み、指定されたループ読出し態様に応じてループ読出しを行う。
【０１８３】
上記ステップＳ１４７で、フリーモード終了指示イベントは、前記ステップＳ１２４で説明したフリーＥＧプレイスタートイベントと同様に、何らかの操作や指示信号の検出等によって発生するものとする。
【０１８４】
一方、ステップＳ１３３で、フリーＥＧプレイを継続するために割り当てられた鍵がすべて離鍵されたときには、前記ステップＳ１４８に進み、フリーＥＧプレイ中フラグFEG_play_flgのリセットを含む所定のフリーＥＧプレイ終了処理を行った後に、本フリーＥＧ処理を終了する。
【０１８５】
前述したように、フリーＥＧプレイモード中のフリーモードでないモードは、所定の鍵、すなわち本実施の形態では、フリーＥＧプレイを継続するために割り当てられた鍵を押鍵している間フリーＥＧプレイを続けるモードであるため、上記ステップＳ１３３ではこの離鍵を判別している。そして、すべての鍵が離鍵されると、上記ステップＳ１４８のフリーＥＧ終了処理によりフリーＥＧプレイを停止して、フリーＥＧデータの出力を終了する。ここで、フリーＥＧ終了処理とは、たとえば発音中の楽音の音量を所定値に漸時収束させる等の処理をいい、フリーモードでないモードにおけるフリーＥＧプレイ中に、フリーＥＧプレイを行う要因となる鍵が離鍵されると、通常の振幅ＥＧのように発音中の楽音は徐々に消音される。
【０１８６】
一方、フリーＥＧプレイモード中のフリーモードは、前述したように、特別な操作を行わない限りフリーＥＧプレイを継続するモードであるため、このモードで出力されるフリーＥＧデータのデータ列は、フリーラン動作のＬＦＯ（Low Frequancy Oscillator）から出力されるデータ列のように、周期性を有することになる。
【０１８７】
なお、本実施の形態では、フリーモードまたはフリーモードでないモードの選択を、全トラックTRACK1〜4に対して一律に行うようにしたが、これに限らず、トラックTRACK1〜4毎に選択設定できるようにしてもよい。
【０１８８】
また、前記ステップＳ１０９〜Ｓ１２１で各トラックTRACK1〜4に書き込まれたフリーＥＧデータ、または前記ＲＯＭ６のフリーＥＧ用データのFREE_EGの各トラックTRACK1〜4に格納されているフリーＥＧデータを、たとえば前記ＲＡＭ７のトーンバッファTONEBUF1〜kまたはトーンパラメータデータTONEPARu1〜un内の各トラックTRACK1〜4にコピーできるようにしてもよい。たとえば、全トラックTRACK1〜4のフリーＥＧデータをすべて他のトラックTRACK1〜4にコピーするとき（このときは、ある音色における全トラックTRACK1〜4のフリーＥＧデータを他の音色のトラックTRACK1〜4にコピーすることが多い）、コピー元の音色とコピー先の音色とをそれぞれユーザが指定すると、この指示に応じて、ＣＰＵ５は、コピー元の音色データ内の全トラックTRACK1〜4に記憶されている全フリーＥＧデータを読み出して、コピー先の音色データ内のトラックTRACK1〜4に格納する。コピー元の音色データは、ＲＯＭ６またはＲＡＭ７に格納されているものに限らず、前記図６で説明したように、フロッピディスクやＣＤ−ＲＯＭ、サーバコンピュータの各種記憶媒体に記憶されたものであってもよい。さらに、全トラックTRACK1〜4を一単位としてコピーするのではなく、その中の１トラック以上のトラックを選択してコピーするようにしてもよい。
【０１８９】
なお、コピー元のトラックにデータが格納されていないときに、コピーの指示がなされた場合には、コピーを行わずにアラーム等でユーザに知らせるようにしてもよい。
【０１９０】
また、コピー元のトラックTRACK1〜4中一部のトラックが空トラックである場合には、そのトラックは、コピー処理を行わず、データが格納されているトラックのみコピー処理を行うようにする。これにより、無駄なコピー作業（データの転送処理）を省略することができる。このとき、コピー先のトラックを空トラック分詰めてコピーするようにしてもよい。これにより、トラックを整理することができるとともに、空きトラックが生成されないため、記憶容量を削除させることができる。たとえば、コピー元のトラックTRACK1〜4のうち、トラックTRACK3が空きトラックであり、他のトラックTRACKn1〜4にコピーする場合には、TRACK1→TRACKn1，TRACK2→TRACKn2，TRACK3→無視，TRACK4→TRACKn3のようにコピーされる。
【０１９１】
図２０は、前記図９のステップＳ６のパラメータ時変処理サブルーチンの詳細な手順を示すフローチャートである。
【０１９２】
同図において、まず、インデックスｉを“１”に初期化する（ステップＳ１５１）。
【０１９３】
次に、前記音源回路１５のレジスタTGPARREGch1〜j（図５参照）のチャンネル中、インデックスｉが示すチャンネルｉは発音中か否かを判別し（ステップＳ１５２）、発音中のときには、該チャンネルｉはフリーＥＧ制御すべきチャンネルか否かを判別する（ステップＳ１５３）。
【０１９４】
ステップＳ１５３で、チャンネルｉがフリーＥＧ制御すべきチャンネルのときには、前記トーンバッファTONEBUF1〜k中、チャンネルｉに対応するトーンバッファ（本実施の形態では、トーンバッファTONEBUF1）のフリーＥＧバッファFREE_EGBUFに格納された各トラックTRACK1〜4の各割り当てデータDESIGNATIONに従って、当該割り当てられているシーンバッファSCENEBUFのパラメータを対応フリーＥＧバッファFREE_EGBUFのデータKNOBDATAの値に応じて変更し、チャンネルｉのレジスタTGPARREGchiに転送する（ステップＳ１５４）。
【０１９５】
一方、ステップＳ１５３で、チャンネルｉがフリーＥＧ制御すべきチャンネルでないときには、割り当てられているシーンバッファSCENEBUFのパラメータを、チャンネルｉのレジスタTGPARREGchiに転送する（ステップＳ１５５）。
【０１９６】
続くステップＳ１５６では、前記音源回路１５の全チャンネル、すなわちチャンネルｊまで、上記ステップＳ１５２〜１５５の処理を終了したか否かを判別し、まだ処理すべきチャンネルが残っているときには、インデックスｉを“１”だけインクリメントして、前記ステップＳ１５２に戻る一方、全チャンネルについて処理を完了したときには、本パラメータ時変制御処理を終了する。
【０１９７】
図２１〜２３は、前記図９のステップＳ７の発音処理サブルーチンの詳細な手順を示すフローチャートである。
【０１９８】
図２１において、まず、何らかのキーオン（ｋｅｙｏｎ）イベントが発生したか否かを判別し（ステップＳ１６１）、キーオンイベントが発生しないときには、図２３のステップＳ１８４に進む一方、キーオンイベントが発生したときには、そのキーオンイベントが前記図１２〜１４で説明したループシーケンサ処理で発生したものであるか否かを判別する（ステップＳ１６２）。
【０１９９】
ステップＳ１６２で、発生したキーオンイベントがループシーケンサ処理で発生したものであるときには、ステップＳ１６６に進み、前記トーンモードスイッチ２６により選択された各種トーンモードに応じた発音処理を行う一方、発生したキーオンイベントがループシーケンサ処理で発生したものでないときには、前記制御モードCONT_MODEが前記ノーマル（normal）モードか否かを判別し、CONT_MODE＝normalのとき、すなわち通常の押鍵音を発生するモードのときには、前記ステップＳ１６６に進み、CONT_MODE≠normalのときにはステップＳ１６４に進む。
【０２００】
ステップＳ１６４では、制御モードCONT_MODEが前記ノートシフト＆パターンセレクト共用モード（note_shift&patern_select）か否かを判別し、CONT_MODE＝note_shift&patern_selectのときには、押鍵に対して発音はされないため、何もせずに本発音処理を終了する一方、制御モードCONT_MODEがノートシフト＆パターンセレクト共用モードでないとき、すなわち前記ノートシフトモードまたはパターンセレクトモードのときには、押鍵が通常の押鍵音を発音する鍵域内のものであるか否かを判別する（ステップＳ１６５）。
【０２０１】
ステップＳ１６５で、押鍵が通常の押鍵音を発音する鍵域内のものであるときには、前記ステップＳ１６６に進む一方、押鍵が通常の押鍵音を発音する鍵域内のものでないとき、すなわちノートシフト鍵域またはパターンセレクト鍵域内のものであるときには、何もせずに本発音処理を終了する。
【０２０２】
ステップＳ１６６では、前記トーンモードとしてシングルトーンモードが選択されているか否かを判別し、シングルトーンモードが選択されているときには、音源回路１５の空きチャンネルｘ（ｘは、１〜ｊのいずれかの整数値）に対して所定の発音割当処理を行い（ステップＳ１６７）、チャンネルｘに対応するレジスタTGPARREGchｘに、当該キーオンイベントの押鍵情報（たとえば、キーコードＫＣやキータッチＴＯＵＣＨ等）、前記共有データバッファCOMPARBUFの内容および補間値バッファSCENEBUFintpの内容を転送し（ステップＳ１６８）、音源回路１５のチャンネルｘに対してキーオン指示（発音指示）を行った（ステップＳ１６９）後に、本発音処理を終了する。
【０２０３】
一方、ステップＳ１６６で、トーンモードとしてシングルトーンモードが選択されていないときには、デュアルトーンモードが選択されているか否かを判別し（図２２のステップＳ１７０）、デュアルトーンモードが選択されているときには、音源回路１５の空きチャンネルｘ，ｙ（ｘは、１〜ｊのいずれかの整数値であり、ｙは、ｘを除いた１〜ｊのいずれかの整数値である）に対して所定の発音割当処理を行い（ステップＳ１７１）、前記ステップＳ１６８と同様に、チャンネルｘに対応するレジスタTGPARREGchｘに、当該キーオンイベントの押鍵情報、共有データバッファCOMPARBUFの内容および補間値バッファSCENEBUFintpの内容を転送し（ステップＳ１７２）、チャンネルｙに対応するレジスタTGPARREGchｙに、当該キーオンイベントの押鍵情報、共有データバッファCOMPARBUFの内容および前記第２シーンバッファバッファSCENEBUF2の内容を転送し（ステップＳ１７３）、音源回路１５のチャンネルｘおよびｙに対して、それぞれキーオン指示を行った（ステップＳ１７４）後に、本発音処理を終了する。
【０２０４】
一方、ステップＳ１７０で、トーンモードとしてデュアルトーンモードが選択されていないときには、スプリットトーンモードが選択されているか否かを判別し（ステップＳ１７５）、スプリットトーンモードが選択されているときには、当該キーオンイベントが前記シーンスライダ２３の操作状態に応じて補間した音色で発音する鍵域内の押鍵に対するものであるか否かという条件（Ch.x_Split発音条件）が成立しているか否かを判別する（ステップＳ１７６）。
【０２０５】
ステップＳ１７６で、この発音条件が成立しているときには、ステップＳ１７７〜Ｓ１７９で、前記ステップＳ１６７〜Ｓ１６９と同様の処理を行って、当該キーオンイベントに対する発音指示を行う一方、この発音条件が成立していないときには、ステップＳ１７７〜Ｓ１７９をスキップしてステップＳ１８０に進む。
【０２０６】
ステップＳ１８０では、当該キーオンイベントが前記第２シーンスイッチ２２に設定された音色で発音する鍵域内の押鍵に対するものであるか否かという条件（Ch.y_Split発音条件）が成立しているか否かを判別し、この発音条件が成立していないときには、何もせずに本発音処理を終了する一方、この発音条件が成立しているときには、音源回路１５の空きチャンネルｙ（ｙは、ｘを除いた１〜ｊのいずれかの整数値）に対して所定の発音割当処理を行い（ステップＳ１８１）、チャンネルｙに対応するレジスタTGPARREGchｙに、当該キーオンイベントの押鍵情報、共有データバッファCOMPARBUFの内容および第２シーンバッファSCENEBUF2の内容を転送し（ステップＳ１８２）、音源回路１５のチャンネルｙに対してキーオン指示を行った（ステップＳ１８３）後に、本発音処理を終了する。
【０２０７】
なお、前述したように、スプリットトーンモードにおいて、補間音色で発音する鍵域と第２シーンスイッチ２２に設定された音色で発音する鍵域との間に重なった鍵域がある場合には、前記キーオンイベントは、Ch.x_Split発音条件およびCh.y_Split発音条件をともに満足するため、１つの押鍵（キーオンイベント）に対して２種類の異なった音色（補間音色と第２シーンスイッチ２２に設定された音色）の楽音が発音される。
【０２０８】
一方、ステップＳ１７５で、トーンモードとしてスプリットトーンモードが選択されていないときには、直ちに本発音処理を終了する。
【０２０９】
図２３のステップＳ１８４では、キーオフイベントが発生したか否かを判別し、キーオフイベントが発生したときには、当該キーオフイベントに対応するキーオフ処理を実行した（ステップＳ１８５）後に、本発音処理を終了する一方、キーオフイベントが発生しないときには、前記図１のＭＩＤＩＩ／Ｆ１３を介して外部からＭＩＤＩ信号のプログラムチェンジイベント（MIDI_Program_Change）を受信したか否かを判別する（ステップＳ１８６）。
【０２１０】
ステップＳ１８６で、プログラムチェンジイベントを受信したときには、前記図１０のステップＳ１２と同様に、このプログラムチェンジイベントで指定された音色ｑのパラメータを所定のバッファに転送して展開し（ステップＳ１８７）、前記ステップＳ１３と同様に、セットフラグsetflg_1をセットするとともに、セットフラグsetflg_2をリセットした（ステップＳ１８８）後に、本発音処理を終了する。
【０２１１】
一方、ステップＳ１８６で、プログラムチェンジイベントを受信しないときには、その他のイベント処理を実行した後に、本発音処理を終了する。
【０２１２】
なお、ステップＳ１９０に示すように、ステップＳ１８６からステップＳ１８７に移行する前に、ＭＩＤＩ信号のチャンネルを確認し、新音色に移行するか否かをユーザに確認するようにしてもよい。
【０２１３】
なお、上記発音処理では、ループシーケンサ処理で発生したイベントもユーザ演奏により発生したイベントも、同一のトーンモードで発音するようにしたがこれに限らず、各々独立のトーンモードを設定して発音態様を決定できるようにしてもよい。また、各イベントには、ＭＩＤＩチャンネルを設定できるようにし、そのＭＩＤＩチャンネル毎にトーンモードを設定するようにしてもよい。さらに、両者の組合せにしてもよい。
【０２１４】
このように、本実施の形態では、ループシーケンサの制御モードとしてノーマルモード、ノートシフトモード、パターンセレクトモードおよびノートシフト＆パターンセレクト共用モードの４種類のモードを設け、押鍵に対して発生する楽音情報（キーイベント）を、その本来の目的、すなわち発生すべき楽音を指示する目的（ノーマルモード）のみならず、ループシーケンサの読出しパターンを変更したり、そのパターンを構成する楽音の楽音特性（音高）を変更したりするような制御指示目的（ノートシフト＆パターンセレクト共用モード）のみ、または、本来の目的および制御指示目的双方の目的（ノートシフトモードまたはパターンセレクトモード）に使用するようにしたので、簡単な操作で、多様な演奏パターンを生成するとともに、その演奏パターンを構成する楽音の楽音特性を変更することができる。
【０２１５】
なお、本実施の形態では、本発明を自動演奏装置の形態で構成したが、これに限らず、パーソナルコンピュータとアプリケーションプログラムの形態で構成することもできる。このアプリケーションプログラムは、磁気ディスク、光ディスク、半導体メモリ等の記憶媒体に記憶させ、パーソナルコンピュータに供給するようにしてもよいし、ネットワークを介して供給するようにしてもよい。
【０２１６】
また、本実施の形態では、図１に示すように、本発明を音源装置（音源回路１２、効果回路１３およびサウンドシステム１４）および自動演奏装置（ＣＰＵ５）を内蔵した自動演奏装置で実現したが、これに限らず、それぞれ別体の装置で構成し、ＭＩＤＩインタフェースや各種ネットワーク等の通信手段を用いて各装置を接続して本発明を実現するようにしてもよい。
【０２１７】
さらに、本発明の適用装置としては、電子楽器、ゲームやカラオケ等のアミューズメント機器、テレビジョン等の各種家電機器、パーソナルコンピュータに代表されるコンピュータ装置およびシステム等が考えられる。
【０２１８】
【発明の効果】
以上説明したように、本発明に依れば、第１のモードが選択設定された場合には、読出し開始指示操作子の操作によって読み出し開始の指示がなされた後、読み出し開始指示操作子すべての操作終了が検出されるまで、楽音制御手段による楽音制御がなされる一方、第２のモードが選択設定された場合には、所定の停止操作または操作軌跡情報の読み出し完了が検出されるまで、前記楽音制御手段による楽音制御がなされるので、演奏の幅をより拡げることが可能となる効果を奏する。
【図面の簡単な説明】
【図１】本発明の実施の一形態に係る自動演奏装置の概略構成を示すブロック図である。
【図２】図１の自動演奏装置のパネル面に配設されたパネルスイッチ２を示す図である。
【図３】図１のＲＯＭのメモリマップの一例およびＲＯＭに記憶された各種データのデータフォーマットの一例を示す図である。
【図４】図１のＲＡＭのメモリマップの一例およびＲＡＭに設けられたトーンバッファのデータフォーマットの一例を示す図である。
【図５】図１の音源回路内に設けられたパラメータレジスタの構成の一例を示す図である。
【図６】図１のフロッピディスクやＣＤ−ＲＯＭ、サーバコンピュータの各種記憶媒体に記憶されたトーンパラメータデータTONEPARｄおよびループシーケンサ用データLPSEQDATAｄの一例を示す図である。
【図７】図３の共有パラメータデータCOMPARのデータ構造の一例を示す図である。
【図８】図３のトーンパラメータデータSCENEiのデータ構造およびトーンパラメータデータSCENEiに含まれる各種パラメータの機能を示す図である。
【図９】図１の自動演奏装置、特にＣＰＵが実行するメインルーチンの手順を示すフローチャートである。
【図１０】図９の音色指定・補間・編集処理サブルーチンの詳細な手順を示すフローチャートである。
【図１１】図９の音色指定・補間・編集処理サブルーチンの詳細な手順を示すフローチャートである。
【図１２】図９のループシーケンサ処理サブルーチンの詳細な手順を示すフローチャートである。
【図１３】図９のループシーケンサ処理サブルーチンの詳細な手順を示すフローチャートである。
【図１４】図１３のループシーケンス演奏処理サブルーチンの詳細な手順を示すフローチャートである。
【図１５】図９のフリーＥＧ処理サブルーチンの詳細な手順を示すフローチャートである。
【図１６】図９のフリーＥＧ処理サブルーチンの詳細な手順を示すフローチャートである。
【図１７】図９のフリーＥＧ処理サブルーチンの詳細な手順を示すフローチャートである。
【図１８】図９のフリーＥＧ処理サブルーチンの詳細な手順を示すフローチャートである。
【図１９】図９のフリーＥＧ処理サブルーチンの詳細な手順を示すフローチャートである。
【図２０】図９のパラメータ時変処理サブルーチンの詳細な手順を示すフローチャートである。
【図２１】図９の発音処理サブルーチンの詳細な手順を示すフローチャートである。
【図２２】図９の発音処理サブルーチンの詳細な手順を示すフローチャートである。
【図２３】図９の発音処理サブルーチンの詳細な手順を示すフローチャートである。
【図２４】ループ読出し態様の一例を示す図である。
【図２５】フリーＥＧデータレコーディング時におけるノブの操作状態の書込み方法の他の一例を説明するための図である。
【符号の説明】
１  鍵盤
２  パネルスイッチ
５  ＣＰＵ
６  ＲＯＭ
７  ＲＡＭ
１０  ＦＤＤ（フロッピディスクドライブ）
１１  ＨＤＤ（ハードディスクドライブ）
１２  ＣＤ−ＲＯＭ（コンパクトディスク−リード・オンリ・メモリドライブ）
【図１】
0003541615.tif 000003
【図２】
0003541615.tif 000004
【図３】
0003541615.tif 000005
【図４】
0003541615.tif 000006
【図５】
0003541615.tif 000007
【図６】
0003541615.tif 000008
【図７】
0003541615.tif 000009
【図８】
0003541615.tif 000010
【図９】
0003541615.tif 000011
【図１０】
0003541615.tif 000012
【図１１】
0003541615.tif 000013
【図１２】
0003541615.tif 000014
【図１３】
0003541615.tif 000015
【図１４】
0003541615.tif 000016
【図１５】
0003541615.tif 000017
【図１６】
0003541615.tif 000018
【図１７】
0003541615.tif 000019
【図１８】
0003541615.tif 000020
【図１９】
0003541615.tif 000021
【図２０】
0003541615.tif 000022
【図２１】
0003541615.tif 000023
【図２２】
0003541615.tif 000024
【図２３】
0003541615.tif 000025
【図２４】
0003541615.tif 000026
【図２５】
0003541615.tif 000027