(57)【特許請求の範囲】
【請求項１】
楽音信号を発生する発音チャンネルを有する音源部と、
楽音信号発生の指示に応答して、前記楽音信号発生を前記発音チャンネルに指示する制御部とを備えた楽音信号発生装置において、
前記制御部は、
前記楽音信号発生の指示に応答して発生させる楽音信号を規定する楽音情報を前記音源部に供給して、前記楽音信号を発生させる発音チャンネルを予約する予約手段を有し、
前記音源部は、
前記予約手段による予約に応答して発音チャンネルの予約の有無を表す予約情報を記憶する予約情報記憶手段と、
前記制御部から供給された前記楽音情報を記憶する楽音情報記憶手段と、
前記制御部による発音チャンネルの予約後、前記記憶した予約情報によって予約が表わされている発音チャンネルにて発生されている楽音信号の音量レベルが所定の音量レベル以下であるときに、前記記憶した予約情報によって予約が表わされている発音チャンネルに前記記憶した楽音情報を供給して、前記楽音情報により規定される楽音信号の発生を開始させる楽音信号発生開始手段と、を有し、
前記制御部から前記音源部に供給される楽音情報は、
前記発音チャンネルの初期設定のために用いられる初期情報と、
前記発音チャンネルにて発生中の前記楽音信号を変化させるために用いられる通常情報とからなり、
前記楽音情報記憶手段は、
前記初期情報及び前記通常情報を記憶する第１記憶手段と、
前記通常情報を記憶する第２記憶手段とからなり、
前記楽音信号発生開始手段は、  
前記記憶した予約情報によって予約が表わされている発音チャンネルにて発生されている楽音信号の音量レベルが前記所定の音量レベル以下であることを検出するダンプレベル到達検出手段と、
前記ダンプレベル到達検出手段が、前記記憶した予約情報によって予約が表わされている発音チャンネルにて発生されている楽音信号の音量レベルが前記所定の音量レベル以下であることを検出したときに、前記第１記憶手段に記憶されている前記初期情報を前記記憶した予約情報によって予約が表わされている発音チャンネルに供給する初期情報供給手段と、
前記ダンプレベル到達検出手段が、前記記憶した予約情報によって予約が表わされている発音チャンネルにて発生されている楽音の音量レベルが前記所定の音量レベル以下であること検出したときに、前記第１記憶手段に記憶されている前記通常情報を前記第２記憶手段に転送して記憶させる転送手段と、
前記第２記憶手段に記憶されている前記通常情報を、前記記憶した予約情報によって予約が表わされている発音チャンネルに供給する通常情報供給手段と、を有することを特徴とする楽音信号発生装置。
【請求項２】
請求項１に記載の楽音信号発生装置において、
前記楽音信号発生開始手段は、
前記ダンプレベル到達検出手段が、前記記憶した予約情報によって予約が表わされている発音チャンネルにて発生されている楽音信号の音量レベルが前記所定の音量レベル以下であること検出したときに、前記記憶した予約情報によって予約が表わされている発音チャンネルに前記楽音信号発生の開始を指示する楽音信号発生開始指示手段を有することを特徴とする楽音信号発生装置。
【請求項３】
請求項２に記載の楽音信号発生装置において、さらに、
前記音源部は、前記楽音信号を発生中の発音チャンネルの動作状態を検出する動作状態検出手段を有し、
前記制御部は、前記動作状態検出手段の検出結果を用いて、前記第２記憶手段に記憶された前記通常情報を更新する更新手段を有する楽音信号発生装置。
【請求項４】
請求項１乃至３のうちのいずれか１つに記載の楽音信号発生装置において、
前記音源部は、楽音信号を発生する複数の発音チャンネルを有し、
前記制御部は、楽音信号発生の指示に応答して前記楽音信号発生を前記複数の発音チャンネルのうちの１つ又は複数の発音チャンネルに割り当てる楽音信号発生装置。

【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽音信号を発生するための発音チャンネルを有する音源回路を備え、新たな楽音信号の発生を前記発音チャンネルに割り当てて発音させる楽音信号発生装置に関する。
【背景技術】
【０００２】
従来から、例えば下記特許文献１に示されているように、楽音信号の発生開始を指示するＣＰＵ及び前記指示により楽音信号の発生を開始する音源回路を備えた楽音信号発生装置は知られている。この音源回路は、楽音信号を発生するための複数の発音チャンネルを有する。上記の楽音信号発生装置においては、全ての発音チャンネルにおいて楽音信号を発生しているときに、ＣＰＵが音源回路に新たな楽音信号の発生開始を指示する場合、何れかの発音チャンネルを選択して、その発音チャンネルにて発生されている楽音信号の音量レベルを減衰させる指示を行う。そして、ＣＰＵは、前記楽音信号の音量レベルを減衰させる指示を行った発音チャンネルから出力される楽音信号の音量レベルを監視し続け、その音量レベルが所定の小さなレベル（以降、ダンプレベルという。）以下になったときに前記新たな楽音の発生開始を指示するようにしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１０７０２９号公報
【発明の概要】
【０００４】
しかし、上記従来の楽音信号発生装置においては、ＣＰＵが楽音信号の音量レベルを監視している間は、ＣＰＵは、他の処理を行うことができないので、楽音信号発生装置の処理速度が低下する原因となっていた。
【０００５】
本発明は上記問題に対処するためになされたもので、その目的は、処理速度を向上させた楽音信号発生装置を提供することにある。
【０００６】
上記目的を達成するために、本発明の特徴は、楽音信号を発生する発音チャンネル（ＣＨ０〜ＣＨ１２７）を有する音源部（１７）と、楽音信号発生の指示に応答して、楽音信号発生を前記発音チャンネルに指示する制御部（１９ａ）とを備えた楽音信号発生装置において、制御部は、楽音信号発生の指示に応答して発生させる楽音信号を規定する楽音情報を音源部に供給して、楽音信号を発生させる発音チャンネルを予約する予約手段（Ｓ２２，Ｓ２８）を有し、音源部は、予約手段による予約に応答して発音チャンネルの予約の有無を表す予約情報を記憶する予約情報記憶手段（ＫＭ０〜ＫＭ１２７、ＫＭＬ０〜ＫＭＬ１２７、ＡＦ０〜ＡＦ１２７）と、制御部から供給された楽音情報を記憶する楽音情報記憶手段（１７ｃ５，１７ｃ６）と、制御部による発音チャンネルの予約後、前記記憶した予約情報によって予約が表わされている発音チャンネルにて発生されている楽音信号の音量レベルが所定の音量レベル以下であるときに、前記記憶した予約情報によって予約が表わされている発音チャンネルに前記記憶した楽音情報を供給して、楽音情報により規定される楽音信号の発生を開始させる楽音信号発生開始手段（１７ｂ３，１７ｂ４，１７ｂ６，１７ｃ２，１７ｃ３，１７ｃ４，ＡＬ０〜ＡＬ１２７，ＤＬ１〜ＤＬ３０）と、を有し、制御部から音源部に供給される楽音情報は、発音チャンネルの初期設定のために用いられる初期情報と、発音チャンネルにて発生中の前記楽音信号を変化させるために用いられる通常情報とからなり、楽音情報記憶手段は、初期情報及び通常情報を記憶する第１記憶手段（１７ｃ５）と、通常情報を記憶する第２記憶手段（１７ｃ６）とからなり、楽音信号発生開始手段は、前記記憶した予約情報によって予約が表わされている発音チャンネルにて発生されている楽音信号の音量レベルが前記所定の音量レベル以下であることを検出するダンプレベル到達検出手段（１７ｂ３，１７ｂ４，ＡＬ０〜ＡＬ１２７，ＤＬ１〜ＤＬ３０）と、ダンプレベル到達検出手段が、前記記憶した予約情報によって予約が表わされている発音チャンネルにて発生されている楽音信号の音量レベルが前記所定の音量レベル以下であることを検出したときに、第１記憶手段に記憶されている初期情報を前記記憶した予約情報によって予約が表わされている発音チャンネルに供給する初期情報供給手段（１７ｃ２）と、ダンプレベル到達検出手段が、前記記憶した予約情報によって予約が表わされている発音チャンネルにて発生されている楽音の音量レベルが前記所定の音量レベル以下であること検出したときに、第１記憶手段に記憶されている前記通常情報を第２記憶手段に転送して記憶させる転送手段（１７ｃ３）と、第２記憶手段に記憶された通常情報を、前記記憶した予約情報によって予約が表わされている発音チャンネルに供給する通常情報供給手段（１７ｃ４）と、を有することにある。この場合、音源部は、楽音信号を発生する複数の発音チャンネルを有し、制御部は、楽音信号発生の指示に応答して楽音信号発生を複数の発音チャンネルのうちの１つ又は複数の発音チャンネルに割り当てるとよい。
【０００７】
この場合、前記楽音信号発生開始手段は、ダンプレベル到達検出手段が、前記記憶した予約情報によって予約が表わされている発音チャンネルにて発生されている楽音信号の音量レベルが前記所定の音量レベル以下であること検出したときに、前記記憶した予約情報によって予約が表わされている発音チャンネルに楽音信号発生の開始を指示する楽音信号発生開始指示手段（１７ｂ６）を有するとよい。
【０００８】
上記のように構成した楽音信号発生装置によれば、制御部は、楽音信号発生の指示に応答して、発音チャンネルを予約するときに、楽音情報を楽音情報記憶手段に書き込んでおけば、その後、音源部が楽音情報記憶手段に記憶された楽音情報を用いて、楽音信号の発生を開始させる。すなわち、制御部は、発音チャンネルの予約後、楽音信号の発生開始まで、発音チャンネルへの楽音情報の供給に関与しなくてよいので、その間に他の処理を実行することができる。したがって、楽音信号発生装置の処理速度を向上させることができる。

【０００９】
また、初期情報は、楽音信号の発生開始時に、発音チャンネルの初期設定にのみ用いられるため、第２記憶手段に転送する必要が無いので、第１記憶手段から予約された発音チャンネルに供給される。したがって、第２記憶手段の記憶容量を小さくできる。
【００１０】
また、本発明の他の特徴は、音源部は、楽音信号を発生中の発音チャンネルの動作状態を検出する動作状態検出手段（１７ｃ１，ＳＦ）を有し、制御部は、動作状態検出手段の検出結果を用いて、第２記憶手段に記憶された前記通常情報を更新する更新手段（Ｓ５４）を有することにある。これによれば、制御部は、楽音信号の発生中に、第２記憶手段に記憶された通常情報を更新することにより発生中の楽音信号を変化させることができる。したがって、発音中の楽音信号を変化させるための通常情報を予約時にまとめて供給しておく場合に比べて、第１及び第２記憶手段の記憶容量を小さくできる。
【００１１】
なお、前記括弧内の符号は、本発明の理解を容易にするために、後述する実施形態との対応関係を示すものであるが、本発明はこれに限定されるものではない。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係る楽音信号発生装置の適用された電子楽器の全体ブロック図である。
【図２】図１の音源回路の具体的構成を示すブロック図である。
【図３】波形データの構成を示すメモリマップである。
【図４】カットオフエンベロープの構成を説明するための説明図である。
【図５】図２の発音予約回路の具体的構成を示すブロック図である。
【図６】図２の楽音パラメータ入出力回路の具体的構成を示すブロック図である。
【図７】ボイスデータの構成を示すメモリマップである。
【図８】パート情報、ノート情報、発音チャンネル情報及びボイスデータの関係を示す模式図である。
【図９】ノート情報の構成を示すメモリマップである。
【図１０】発音チャンネル情報の構成を示すメモリマップである。
【図１１】発音予約プログラムを示すフローチャートである。
【図１２】図１１の発音チャンネル確保ルーチンを示すフローチャートである。
【図１３】図１１のパラメータ書き込み処理の具体的な一例を示すフローチャートである。
【図１４】発音予約回路の動作を示すタイムチャートである。
【図１５】楽音パラメータ入出力回路の動作を示すタイムチャートである。
【図１６】パラメータ更新処理プログラムを示すフローチャートである。
【図１７】図１６の第２メモリのパラメータの更新処理の具体的な一例を示すフローチャートである。
【図１８】音量レベル取得処理プログラムを示すフローチャートである。
【発明を実施するための形態】
【００１３】
ａ．全体構成
まず、本発明の一実施形態について図面を用いて説明する。図１は、本発明の一実施形態に係る楽音信号発生装置が適用される電子楽器の全体ブロック図である。この電子楽器は、鍵盤１１、パネル操作子１２、ペダル操作子１３、操作子インターフェース回路１４、表示器１６、音源回路１７、サウンドシステム１８、コンピュータ部１９、記憶装置２１及び外部インターフェース回路２２を備えている。
【００１４】
鍵盤１１は、演奏者の手によって操作されて、それぞれ発生させる楽音信号の音高を指定するとともに楽音信号の発生及び停止を指示する複数の白鍵及び黒鍵からなる。パネル操作子１２は、電子楽器の操作パネル上に設けられた複数の操作子からなる。これらの操作子も、演奏者の手によって操作されて、発生される楽音信号の音色、音量、効果等の楽音特性を設定する操作子を含み、電子楽器全体の動作を設定するためのものである。これらの操作子には、オンオフ操作子に加えて、回転式操作子、スライド式操作子などの各種操作子が含まれる。また、パネル操作子１２にはオンオフ操作子に対応したスイッチ、回転式操作子に対応したボリューム又はロータリーエンコーダ、スライド式操作子に対応したボリューム又はリニアエンコーダなど、各操作子に対応した作動素子も含まれる。
【００１５】
ペダル操作子１３は、演奏者の足によって操作されて、発生される楽音信号の音色、音量、効果などの楽音特性を設定する。これらの操作子には、オンオフ操作子に加えてスライド式操作子が含まれる。また、ペダル操作子１３には、オンオフ操作に対応したスイッチ、スライド式操作子に対応したボリューム又はリニアエンコーダなどの各操作子に対応した作動素子も含まれる。
【００１６】
鍵盤１１、パネル操作子１２及びペダル操作子１３は、バス２３に接続された操作子インターフェース回路１４に接続されている。そして、鍵盤１１、パネル操作子１２及びペダル操作子１３の操作を表す演奏情報が、操作子インターフェース回路１４及びバス２３を介して後述するコンピュータ部１９に供給される。表示器１６は、液晶ディスプレイ（ＬＣＤ）によって構成され、表示画面上に文字、図形などを表示する。この表示器１６の表示は、バス２３を介してコンピュータ部１９によって制御される。
【００１７】
音源回路１７は、複数の波形データを記憶した波形メモリＷＭを含み、波形メモリＷＭから、ＣＰＵ１９ａによって指定された波形データを読み出してディジタル楽音信号を生成し、サウンドシステム１８に供給する。なお、ディジタル楽音信号にコーラス効果、残響効果などの各種効果を付加するエフェクタ回路は、後述するように音源回路１７に含まれている。サウンドシステム１８は、音源回路１７から供給されたディジタル楽音信号をアナログ楽音信号にＤ／Ａ変換するＤ／Ａ変換器、変換したアナログ楽音信号を増幅するアンプ、及び増幅されたアナログ楽音信号を音響信号に変換して出力するスピーカを備えている。
【００１８】
コンピュータ部１９は、バス２３にそれぞれ接続されたＣＰＵ１９ａ、タイマ１９ｂ、ＲＯＭ１９ｃ及びＲＡＭ１９ｄからなる。ＣＰＵ１９ａは、操作子インターフェース回路１４及び外部インターフェース回路２２から供給される演奏情報に応じて、音源回路１７に発音のために必要な情報を供給する。とくに、ＣＰＵ１９ａは、演奏者による鍵盤１１の押鍵操作によって発生するノートオンイベント及び外部インターフェース回路２２を介して外部機器から供給される演奏情報又は記憶装置２１に記憶されていて再生される演奏情報を構成するノートオンイベントに応じて、発音予約プログラムを実行し、音源回路１７に対し新たな発音の予約を行う。すなわち、ＣＰＵ１９ａは、新たな発音に係る楽音自体に関するパラメータ（以下、楽音パラメータという。）を音源回路１７に供給するだけで、発音の開始指示は行わない。発音の開始タイミングは、音源回路１７によって制御される。
【００１９】
また、記憶装置２１は、ＨＤＤ、ＦＤＤ、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどの大容量の不揮発性記録媒体と、同各記録媒体に対応するドライブユニットを含むものであり、各種データ及びプログラムの記憶及び読出しを可能にしている。これらのデータ及びプログラムは予め記憶装置２１に記憶されていてもよいし、外部インターフェース回路２２を介して外部から取り込んでもよい。そして、記憶装置２１に記憶された各種データ及びプログラムは、ＣＰＵ１９ａによって読み込まれ、電子楽器の制御に利用される。外部インターフェース回路２２は、ＭＩＤＩインターフェース回路及び通信インターフェース回路を含んでおり、他の電子音楽装置、パーソナルコンピュータなどのＭＩＤＩ対応の外部機器に接続可能となっているとともに、インターネットなどの通信ネットワークに接続可能となっている。
【００２０】
ｂ．音源回路の構成
次に、音源回路１７の構成について詳しく説明する。まず音源回路１７の全体構成について説明する。音源回路１７は、図２に示すように、波形データを記憶した波形メモリＷＭを備えている。また、音源回路１７は、波形メモリＷＭから波形データを読み出してディジタル楽音信号を生成する複数（例えば１２８個）の発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ１２７を備えている。また、音源回路１７は、発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ１２７にて生成されたディジタル楽音信号を累算してサウンドシステム１８に出力するチャンネル累算回路１７ａを備えている。また、音源回路１７は、ＣＰＵ１９ａによる発音チャンネルの予約の受け付け及び予約された発音チャンネルに発音の開始指示を行う発音予約回路１７ｂを備えている。さらに、音源回路１７は、ＣＰＵ１９ａから出力された各発音チャンネル用の楽音パラメータを入力し、入力した楽音パラメータを各発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ１２７に所定のタイミングで出力する楽音パラメータ入出力回路１７ｃを備えている。つぎに、これらの波形メモリＷＭ、発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ１２７、チャンネル累算回路１７ａ、発音予約回路１７ｂ及び楽音パラメータ入出力回路１７ｃについて詳しく説明する。
【００２１】
ｂ１．波形メモリ
波形メモリＷＭには、図３に示すように複数種類の楽器の楽音波形を表す波形データが記憶されている。１つの楽器の楽音が複数の成分に分解されて別々の楽音波形として記憶されている場合もある。例えばピアノ音のように、発音開始時の音色が激しく変化する成分と、発音開始から終了まであまり音色が変化しない成分とに分解して別々の楽音波形として記憶している場合もある。そこで、１つの楽音波形を構成要素ごとに分解した楽音波形をエレメント波形といい、それぞれ別々の発音チャンネルによって読み出されたエレメント波形から生成されるそれぞれのディジタル楽音信号をエレメント信号という。生成された各エレメント信号は、チャンネル累算回路１７ａによって合成されて１つの楽器の楽音信号となる。なお、楽器の種類によっては、１つの楽音波形を構成要素ごとに分解することなく、１つの波形として記憶してもよい。この場合、１つの楽音波形を構成要素ごとに分解していないので、厳密に言えば、この楽音波形はエレメント波形では無いが、１つの楽器の楽音信号が１つのエレメント波形のみから生成されるとみなすことができるので、この場合の楽音波形もエレメント波形という。
【００２２】
各エレメント波形は、鍵音高の所定の範囲毎（例えば、１オクターブ毎）に設けられた波形セットから構成され、各発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ１２７において補間処理を行うことにより、押鍵された鍵の音高に対応したディジタル楽音信号を生成する。また、波形セットは、押鍵強さの所定の範囲毎（例えば、４段階に分けた押鍵強さの段階毎）に設けられた波形データから構成され、各発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ１２７において補間処理を行うことにより、押鍵強さに対応した音色及び音量のエレメント信号を生成する。なお、各鍵ごとに波形セットを設けてもよい。また、エレメント波形を、鍵音高に関係なく、１つの波形セットのみから構成してもよい。さらに、各波形セットは、押鍵強さに関係なく、１つの波形データのみから構成される場合もある。
【００２３】
ｂ２．発音チャンネル
各発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ１２７は、それぞれ同様に構成されており、サンプリング周期ごとにエレメント信号の生成をそれぞれ行う。以下の説明では、発音チャンネルにおけるエレメント信号の生成を単に発音という。各発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ１２７は、低周波信号発生回路ＬＦＯ、ピッチ変更回路ＰＥＧ、カットオフ周波数変更回路ＦＥＧ及び音量変更回路ＡＥＧを備えている。さらに、各発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ１２７は、アドレス発生回路ＡＤＲ、サンプル補間回路ＳＰＩ、フィルタ回路ＦＬＴ及び音量制御回路ＡＭＰも備えている。
【００２４】
低周波信号発生回路ＬＦＯは、発音開始後、音高、音色及び音量を周期的に変化させる変調信号を生成して、アドレス発生回路ＡＤＲ、フィルタ回路ＦＬＴ及び音量制御回路ＡＭＰにそれぞれ供給する。低周波信号発生回路ＬＦＯには、楽音パラメータ入出力回路１７ｃを介して、ＣＰＵ１９ａから低周波信号制御パラメータが供給される。低周波信号制御パラメータには、低周波信号発生回路ＬＦＯから出力する変調信号の波形、周波数及び振幅を指定するデータが含まれる。
【００２５】
ピッチ変更回路ＰＥＧは、エレメント信号の音高を制御する音高制御信号をアドレス発生回路ＡＤＲに供給する。ピッチ変更回路ＰＥＧは、発音開始後の時間経過に従ってエレメント信号の音高が変化するように、時間経過に従って変化する音高制御信号を生成してアドレス発生回路ＡＤＲに供給する。この時間経過に従って変化する一連の音高制御信号をピッチエンベロープと呼ぶ。また、カットオフ周波数変更回路ＦＥＧは、エレメント信号の周波数特性を制御するカットオフ周波数制御信号をフィルタ回路ＦＬＴに供給する。カットオフ周波数制御回路ＦＥＧは、発音開始後の時間経過に従ってフィルタのカットオフ周波数が変化するように、時間経過に従って変化するカットオフ周波数制御信号を生成して、フィルタ回路ＦＬＴに供給する。この時間経過に従って変化する一連のカットオフ周波数制御信号をカットオフエンベロープと呼ぶ。また、音量変更回路ＡＥＧは、エレメント信号の音量を制御する音量制御信号を音量制御回路ＡＭＰに供給する。音量変更回路ＡＥＧは、発音開始後の時間経過に従ってエレメント信号の音量が変化するように、時間経過に従って変化する音量制御信号を生成して音量制御回路ＡＭＰに供給する。この時間経過に従って変化する一連の音量制御信号を音量エンベロープと呼ぶ。
【００２６】
例えば、カットオフエンベロープは、図４に示すように、カットオフ周波数制御信号の変化率が異なる第１乃至第５ステージからなる。カットオフ周波数変更回路ＦＥＧには、楽音パラメータ入出力回路１７ｃを介して、ＣＰＵ１９ａからカットオフエンベロープパラメータが供給される。カットオフエンベロープパラメータは、発音開始時のカットオフ周波数を表す初期レベル、各ステージの終了時のカットオフ周波数（アタックレベル、第１ディケイレベル、第２ディケイレベル及びリリースレベル）を表す各ステージの目標レベル及び各ステージの持続時間（アタックタイム、第１ディケイタイム、第２ディケイタイム及びリリースタイム）からなる。
【００２７】
発音開始時には、カットオフ周波数変更回路ＦＥＧに対して、初期レベル、第１ステージの目標レベル及び第１ステージの持続時間（すなわち、アタックレベル及びアタックタイム）のみが供給され、第２ステージ以降の目標レベル及び持続時間（すなわち、ディケイ１レベル、ディケイ２レベル、リリースレベル、ディケイ１タイム、ディケイ２タイム及びリリースタイム）は、１つ前のステージが終了した後に供給される。ただし、第４ステージにおいては、演奏者による鍵盤１１の離鍵操作によってノートオフイベントが発生し、ＣＰＵ１９ａからリリースレベル及びリリースタイムが供給されるまでの間、カットオフ周波数が第２ディケイレベルに維持される。カットオフ周波数変更回路ＦＥＧは、各ステージの目標レベル及び持続時間から、各ステージのカットオフ周波数の変化率を算出し、各サンプリング周期ごとに、カットオフ周波数制御信号を前記算出した変化率で変化させてフィルタ回路ＦＬＴに供給する。
【００２８】
なお、初期レベルと最終ステージの目標レベルは異なっていてもよい。また、ＣＰＵ１９ａから供給される初期レベル及び各ステージの目標レベルは、絶対値で表わされていてもよいし、各ステージに共通の基準となるカットオフ周波数及び基準となるカットオフ周波数に対する相対値で表わされていてもよい。また、上記の例では、カットオフ周波数エンベロープは、５つのステージからなるようにしたが、ステージ数はこれに限られず、さらにステージ数を増やしてもよい。逆に、ステージ数を減らしてもよい。
【００２９】
ピッチ変更回路ＰＥＧ及び音量変更回路ＡＥＧにも、カットオフ周波数変更回路ＦＥＧと同様に、ＣＰＵ１９ａからピッチエンベロープパラメータ及び音量エンベロープパラメータが供給される。ピッチエンベロープパラメータ及び音量エンベロープパラメータもカットオフエンベロープパラメータと同様に、初期レベル、各ステージの目標レベル及び持続時間を含む。すなわち、ピッチエンベロープ及び音量エンベロープも、ピッチエンベロープパラメータ及び音量エンベロープパラメータによって規定される複数のステージからなり、各サンプリング周期ごとに、時間経過に従って変化する音高制御信号及び音量制御信号を生成して、アドレス発生回路ＡＤＲ及び音量制御回路ＡＭＰにそれぞれ供給する。
【００３０】
アドレス発生回路ＡＤＲは、ＣＰＵ１９ａから楽音パラメータ入出力回路１７ｃを介して供給された楽音パラメータに含まれる押鍵された鍵の鍵音高を表す音高値、ピッチ変更回路ＰＥＧから供給された音高制御信号及び低周波信号発生回路ＬＦＯから供給された変調信号を合成してピッチシフト量を算出する。ここで、アドレス発生回路ＡＤＲには、ＣＰＵ１９ａから、楽音パラメータ入出力回路１７ｃを介して、波形データ情報が供給される。波形データ情報は、波形メモリＷＭから読み出す波形データの先頭アドレス及び末尾アドレス、並びにこの波形データの音高を表す元ピッチからなる。この元ピッチと発音する楽音のピッチとの差が、ピッチシフト量である。次に、アドレス発生回路ＡＤＲは、ピッチシフト量に応じて、波形データの読み出しレートを決定する。そして、アドレス発生回路ＡＤＲは、前記決定した読み出しレートで波形メモリＷＭから波形データを読み出す。ただし、ピッチシフト量に応じて決定される読み出しレートは、通常、小数部を含むので、波形データの読み出しアドレスも整数部と小数部からなる。そこで、この波形データの読み出しでは、整数部を用いて波形データの隣合う前後一対のサンプル値を読み出し、サンプル補間部ＳＰＩへ供給する。サンプル補間部ＳＰＩは、供給された一対のサンプル値とアドレスの小数部とを用いて補間演算を行ってディジタル楽音データを生成して、フィルタ回路ＦＬＴに供給する。
【００３１】
フィルタ回路ＦＬＴは、カットオフ周波数変更回路ＦＥＧから供給されたカットオフ周波数制御信号及び低周波信号発生回路ＬＦＯから供給された変調信号を合成して、フィルタのカットオフ周波数を算出する。フィルタ回路ＦＬＴには、ＣＰＵ１９ａから、楽音パラメータ入出力回路１７ｃを介して、フィルタ制御パラメータも供給されている。フィルタ制御パラメータには、フィルタの種類（例えば、ハイパスフィルタ、ローパスフィルタなど）を選択するフィルタ選択情報が含まれる。フィルタ回路ＦＬＴは、フィルタ選択情報に従って選択したフィルタのカットオフ周波数を前記算出したカットオフ周波数に設定し、サンプル補間回路ＳＰＩから供給された波形データをこのフィルタでフィルタリング処理した後、音量制御回路ＡＭＰへ出力する。
【００３２】
音量制御回路ＡＭＰは、音量変更回路ＡＥＧから供給された音量制御信号及び低周波信号発生回路ＬＦＯから供給された変調信号を合成して、発生すべき楽音信号の音量を算出する。そして、音量制御回路ＡＭＰは、フィルタ回路ＦＬＴから供給された波形データを前記算出された音量に応じて減衰又は増幅して、チャンネル累算回路１７ａへ出力する。
【００３３】
なお、本実施形態においては、音源回路１７は、１２８個の発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ１２７を備えているが、発音チャンネルを１つのみ備えるようにしておいて、その発音チャンネルを時分割で利用してもよい。例えば１サンプリング周期を１２８分割すれば、分割された各期間においてなされる処理は、本実施形態における発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ１２７でなされる処理にそれぞれ対応する。
【００３４】
ｂ３．チャンネル累算回路１７ａ
チャンネル累算回路１７ａは、サンプリング周期ごとに、各発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ１２７から出力された楽音信号を累算して、累算した楽音信号をサウンドシステム１８に出力する。なお、チャンネル累算回路１７ａは、各発音チャンネルから出力される楽音信号にそれぞれ共通の効果（例えば、コーラス効果、残響効果など）を付加するエフェクト処理回路を備えている。
【００３５】
ｂ４．発音予約回路１７ｂ
次に、発音予約回路１７ｂについて説明する。発音予約回路１７ｂは、ＣＰＵ１９ａにより指定された発音チャンネルにて発音する楽音に関する情報を生成して記憶するとともに、所定のタイミングで、その発音チャンネルに対し発音開始を指示する。
【００３６】
発音予約回路１７ｂは、図５に示すように、チャンネル指定レジスタＣＳ０，ＣＳ１・・・ＣＳ１２７及び予約受付回路１７ｂ１を備えている。チャンネル指定レジスタＣＳ０，ＣＳ１・・・ＣＨ１２７は、発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ１２７にそれぞれ対応したビットで構成された１２８ビットからなるビットマップであり、ＣＰＵ１９ａが音源回路１７に対し、後述する発音チャンネルの予約のキャンセルも含めて、発音チャンネルを特定して指示を行うときに用いられる。例えば、複数のエレメント波形に分解された楽音波形の生成を行うために、ＣＰＵ１９ａは、発音予約回路１７ｂにエレメント信号の発生に使用する複数の発音チャンネルを指示する。このとき、ＣＰＵ１９ａは、チャンネル指定レジスタＣＳ０，ＣＳ１・・・ＣＳ１２７のうち、使用する発音チャンネルに対応したビットであって、楽音波形を構成するエレメント信号の数と同数のビットを「予約」にセットする。その後、ＣＰＵ１９ａは、予約受付回路１７ｂ１に、指示された発音チャンネルに共通のグループ番号を割り当てさせるために、予約受付回路１７ｂ１に予約トリガ信号を出力する。
【００３７】
なお、チャンネル指定レジスタＣＳ０，ＣＳ１・・・ＣＳ１２７は、ＣＰＵ１９ａのメモリアドレス空間における「チャンネルビット０」〜「チャンネルビット１２７」で表わされるアドレスに割り当てられていて、ＣＰＵ１９ａは、「チャンネルビット０」〜「チャンネルビット１２７」を用いて、チャンネル指定レジスタＣＳ０，ＣＳ１・・・ＣＨ１２７のビット操作（予約する発音チャンネルの指定）を行うことができる。また、予約受付回路１７ｂ１内に設けられた図示しない予約トリガレジスタが、ＣＰＵ１９ａのメモリアドレス空間における「予約トリガ」で表わされるアドレスに割り当てられていて、ＣＰＵ１９ａは、「予約トリガ」を用いて、予約受付回路１７ｂ１に予約トリガ信号を出力することができる。
【００３８】
予約受付回路１７ｂ１は、チャンネル指定レジスタＣＳ０，ＣＳ１・・・ＣＳ１２７で指定された複数の発音チャンネルに対し共通のグループ番号を割り当てる。上記の例のように、１つの楽音波形が複数のエレメント波形に分解されている場合（すなわち複数の発音チャンネルを同時に使用する場合）、これらの複数の発音チャンネルに共通のグループ番号を割り当てておき、同時に発音開始させる発音チャンネルをグループ番号で管理するようにしている。なお、１つの楽音波形が、１つのエレメント波形から構成される場合は、複数の発音チャンネルのグルーピングはしないが、回路構成を共通にして簡単にするため、複数のエレメント信号を合成する場合と同様に、１つの発音チャンネルのみからなるグループを構成して、グループ番号を割り当てる。ただし、グループ数には上限があり、本実施形態では３０個のグループが使用可能である。そこで、各グループ番号が使用可能か否かを示すグループ使用可否フラグを記憶するグループ使用状況レジスタＧＵ１〜ＧＵ３０が設けられている。予約受付回路１７ｂ１は、グループ使用状況レジスタＧＵ１〜ＧＵ３０の中から「使用可」となっている１つのグループ番号を発音チャンネルに割り当てた後、グループ使用状況レジスタＧＵ１〜ＧＵ３０のうちで、そのグループ番号に対応するレジスタを「使用不可」にセットする。なお、「使用不可」にセットされたグループ使用可否フラグは、発音開始時に後述の発音開始指示回路１７ｂ６によって「使用可」にセットされる。ここで、ＣＰＵ１９ａは、予約しようとする発音チャンネルにグループ番号の割り当てが可能であることをグループフルフラグＧＦによって確認した上で、予約トリガ信号を出力するようになっている。したがって、予約トリガ信号を入力した予約受付回路１７ｂ１は必ずグループ番号を発音チャンネルに割り当てることができる。
【００３９】
グループフルフラグＧＦとは、空きグループがあるか否か（すなわち、発音チャンネルに対しグループ番号の割り当てが可能か否か）を示すフラグである。グループフルフラグＧＦは、グループフルフラグセット回路１７ｂ２によって、「空きグループ有り」又は「空きグループ無し」にセットされる。すなわち、グループフルフラグセット回路１７ｂ２は、グループ使用状況レジスタＧＵ１〜ＧＵ３０のうち、「使用可」となっているレジスタが１つでもあればグループフルフラグを「空きグループ有り」にセットする。一方、グループ使用状況レジスタＧＵ１〜ＧＵ３０のすべてのレジスタが「使用不可」となっていれば、グループフルフラグＧＦを「空きグループ無し」にセットする。なお、グループフルフラグＧＦは、ＣＰＵ１９ａのメモリアドレス空間における「グループフル」で表わされるアドレスに割り当てられていて、ＣＰＵ１９ａは、「グループフル」を用いて、グループフルフラグＧＦの値を読み込むことができる。
【００４０】
予約受付回路１７ｂ１は、取得したグループ番号を、キーオンマップに書き込む。キーオンマップは、発音チャンネルＣＨ０〜ＣＨ１２７にそれぞれ対応して設けられたキーオンマップレジスタＫＭ０〜ＫＭ１２７からなる。キーオンマップレジスタＫＭ０〜ＫＭ１２７は、グループ番号「１」〜「３０」のうちのいずれかの番号又は「グループ割り当てなし」を表す。キーオンマップは、ノートオンイベントが発生するごとに更新される。すなわち、ノートオンイベントが発生すると、ＣＰＵ１９ａによって、１つ又は複数の発音チャンネルが選択され、選択された発音チャンネルに係るキーオンマップレジスタに共通のグループ番号が書き込まれる。その後、予約受付回路１７ｂ１は、「予約」にセットされているチャンネル指定レジスタを「指定なし」にセットする。
【００４１】
レベル検出回路１７ｂ３は、各発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ１２７の音量制御回路ＡＭＰから出力されるエレメント信号の音量レベルを検出して、音量レベルレジスタＡＬ０，ＡＬ１・・・ＡＬ１２７に記録する。また、音量レベルレジスタＡＬ０，ＡＬ１・・・ＡＬ１２７内に記録された音量レベルは、ダンプレベル到達検出回路１７ｂ４に供給される。なお、音量レベルレジスタＡＬ０，ＡＬ１・・・ＡＬ１２７は、ＣＰＵ１９ａのメモリアドレス空間における「音量レベル０」〜「音量レベル１２７」で表わされるアドレスに割り当てられていて、ＣＰＵ１９ａは、「音量レベル０」〜「音量レベル１２７」を用いて、音量レベルレジスタＡＬ０，ＡＬ１・・・ＡＬ１２７の値を読み込むことができる。
【００４２】
レベル検出回路１７ｂ３による発音チャンネルＣＨ０〜ＣＨ１２７のエレメント信号の音量レベル検出及び検出結果のダンプレベル到達検出回路１７ｂ４への供給は、１サンプリング周期内に時分割でなされる。レベル検出回路１７ｂ３が一連の発音チャンネルＣＨ０〜ＣＨ１２７の楽音データのレベル検出を開始する直前に、キーオンマップの内容が、キーオンマップラッチ回路１７ｂ５によって、キーオンマップラッチとして、キーオンマップレジスタＫＭ０〜ＫＭ１２７と同様のキーオンマップラッチレジスタＫＭＬ０，ＫＭＬ１・・・ＫＭＬ１２７にコピーされて保持される。ダンプレベル到達検出回路１７ｂ４は、キーオンマップラッチに基づいて、各グループに属する全ての発音チャンネルにて生成されているエレメント信号の音量レベルがダンプレベル以下になっているか否かの判定を行う。
【００４３】
ダンプレベル到達検出回路１７ｂ４は、判定結果をダンプレベル到達検出レジスタＤＬ１，ＤＬ２・・・ＤＬ３０に順次書き込んでいく。ダンプレベル到達検出レジスタＤＬ１，ＤＬ２・・・ＤＬ３０は、各グループに対応して設けられたレジスタであって、それぞれ「ダンプレベル到達」又は「ダンプレベル未到達」を表すデータを記憶する。まず、ダンプレベル到達検出回路１７ｂ４は、レベル検出回路１７ｂ３が一連の発音チャンネルＣＨ０〜ＣＨ１２７についてのエレメント信号の音量レベルの検出を開始する前に、ダンプレベル到達検出レジスタＤＬ１，ＤＬ２・・・ＤＬ３０を「ダンプレベル到達」にセットする。そして、レベル検出回路１７ｂ３から供給される各エレメント信号の音量レベルとダンプレベルとを比較する。
【００４４】
例えば、発音チャンネルＣＨｎ（ｎ＝０，１・・・１２７）のエレメント信号の音量レベルがダンプレベルよりも大きい場合、発音チャンネルＣＨｎに対応するキーオンマップラッチレジスタＫＭＬｎに記憶されているグループ番号ｍ（ｍ＝１，２・・・３０）を取得し、グループ番号ｍに対応するダンプレベル到達検出レジスタＤＬｍを「ダンプレベル未到達」にセットする。このとき、すでにダンプレベル到達検出レジスタＤＬｍが「ダンプレベル未到達」にセットされている場合は、ダンプレベル到達検出レジスタＤＬｍの操作を行うことなく、次の発音チャンネルの判定を行う。一方、発音チャンネルＣＨｎの音量レベルがダンプレベル以下になっていた場合は、ダンプレベル到達検出レジスタＤＬｍの操作を行わない。なお、発音チャンネルＣＨｎ（ｎ＝０，１・・・１２７）のエレメント信号の音量レベルがダンプレベルよりも大きい場合及び発音チャンネルＣＨｎの音量レベルがダンプレベル以下になっていた場合のいずれにおいても、取得したキーオンマップレジスタの値が「グループ割り当てなし」の場合は、ダンプレベル到達検出レジスタＤＬｍの操作を行うことなく、次の発音チャンネルの判定を行う。
【００４５】
上記の判定処理を全ての発音チャンネルについて行った後、ダンプレベル到達検出レジスタＤＬｍが「ダンプレベル未到達」にセットされていれば、グループｍに属する発音チャンネルのうち、いずれか１つ又は複数の発音チャンネルのエレメント信号の音量レベルがダンプレベルよりも大きいことになる。一方、ダンプレベル到達検出レジスタＤＬｍが「ダンプレベル到達」にセットされていれば、グループｍに属する全発音チャンネルのエレメント信号の音量レベルがダンプレベル以下であることになる。
【００４６】
ここで、キーオンマップではなくキーオンマップラッチに基づいて、上記ダンプレベル到達の判定を行う理由について説明しておく。前述のように、ダンプレベル到達検出回路１７ｂ４が発音チャンネルＣＨ０、ＣＨ１・・・ＣＨ１２７のエレメント信号の音量レベルの判定をしている間であっても、キーオンマップレジスタＫＭ０〜ＫＭ１２７は更新されていく。
【００４７】
例えば、発音チャンネルＣＨ０が発音中でダンプレベルに到達していない状態であり、かつキーオンマップレジスタＫＭ０にはグループ番号が記録されていない（すなわち、発音チャンネルＣＨ０の予約がなされていない）ものとする。さらに、発音チャンネルＣＨ５は、発音に使用されていないチャンネル（空きチャンネル）であるとする。そして、レベル検出回路１７ｂ３及びダンプレベル到達検出回路１７ｂ４が発音チャンネルＣＨ０についての判定を行った後、発音チャンネルＣＨ５の判定を行うまでの間に、新たなノートオンイベントが発生して、発音チャンネルＣＨ０及び発音チャンネルＣＨ５が新たな発音に使用する発音チャンネルとして指定され、キーオンマップレジスタＫＭ０及びＫＭ５にグループ番号「３」が記録されたとする。その後、レベル検出回路１７ｂ３及びダンプレベル到達検出回路１７ｂ４が発音チャンネルＣＨ５の判定を行うと、発音チャンネルＣＨ５は空きチャンネルなので、ダンプレベルに到達していると判定される。すると、グループ番号「３」に属する発音チャンネルＣＨ０で発音中の楽音信号がダンプレベルに到達していないにもかかわらず、発音チャンネルＣＨ０及び発音チャンネルＣＨ５に対して後述する発音開始指示回路１７ｂ６によって、発音開始指示がなされる。したがって、発音チャンネルＣＨ０にて発音中の楽音が、突然途切れたような不自然な楽音となる。このような不自然な楽音の発生を防止するため、レベル検出回路１７ｂ３及びダンプレベル到達検出回路１７ｂ４が一連の発音チャンネルＣＨ０〜ＣＨ１２７についての判定をしている間は、各発音チャンネルの属するグループが変化しないようにしておく必要がある。したがって、キーオンマップの内容をキーオンマップラッチにコピーしておき、キーオンマップラッチに基づいてダンプレベル到達の判定を行うようにしている。
【００４８】
発音開始指示回路１７ｂ６は、ダンプレベル到達検出レジスタＤＬｍ（ｍ＝１，２・・・３０）が「ダンプレベル到達」にセットされていると、グループｍに属する全発音チャンネルに対して、発音の開始を指示する。そして、発音開始指示回路１７ｂ６は、グループｍに属する全発音チャンネルに対応するキーオンマップレジスタ及びキーオンマップラッチレジスタを「グループ割り当てなし」にセットする。また、発音開始指示回路１７ｂ６は、グループ使用状況レジスタＧＵｍを「使用可」にセットする。また、発音開始指示回路１７ｂ６は、発音開始指示の直前に、後述の初期パラメータ出力回路１７ｃ２、通常パラメータ転送回路１７ｃ３及び通常パラメータ出力回路１７ｃ４に出力及び転送の指示を行う。
【００４９】
また、発生させるべき新たな楽音（例えばメロディー用の楽音）が、予約済みの発音チャンネルにて発音させる楽音（例えば、伴奏用の楽音）よりも、さらに優先的に発音させる必要がある場合がある。この場合、その発音チャンネルの予約を強制的にキャンセルして、新たな楽音のために、その発音チャンネルを予約できるようになっている。すなわち、発音予約回路１７ｂは、発音チャンネルの予約をキャンセルするための予約キャンセル回路１７ｂ７を有している。発音チャンネルＣＨｎ（ｎ＝０，１・・・１２７）の予約をキャンセルする場合、ＣＰＵ１９ａは、発音チャンネルＣＨｎに対応するチャンネル指定レジスタＣＳｎを「キャンセル」にセットした後、予約キャンセル回路１７ｂ７に対して、キャンセルトリガ信号を出力する。なお、チャンネル指定レジスタＣＳ０〜ＣＳ１２７は、前述した発音チャンネルの予約にも利用されるが、予約終了時に「指定なし」にセットされるので、この発音チャンネルの予約のキャンセルにも利用される。また、予約キャンセル回路１７ｂ７内に設けられた、図示しないキャンセルトリガレジスタが、ＣＰＵ１９ａのメモリアドレス空間における「キャンセルトリガ」で表わされるアドレスに割り当てられていて、ＣＰＵ１９ａは、「キャンセルトリガ」を用いて、予約キャンセル回路１７ｂ７に対してキャンセルトリガ信号を出力することができる。なお、複数の発音チャンネルが予約されている場合でも、その複数の発音チャンネルの予約が同時にキャンセルされるのではなく、発音チャンネルの予約が１つずつキャンセルされる。
【００５０】
キャンセルトリガ信号を入力した予約キャンセル回路１７ｂ７は、チャンネル指定レジスタＣＳｎによって指定された発音チャンネルＣＨｎ（ｎ＝０，１・・・１２７）に対応するキーオンマップレジスタＫＭｎの値を「グループ割り当てなし」にセットする。これにより、発音チャンネルの予約がキャンセルされる。ただし、ＣＰＵ１９ａが予約キャンセル回路１７ｂ７に対してキャンセルトリガ信号を出力した後、予約キャンセル回路１７ｂ７がキーオンマップレジスタＫＭｎを「グループ割り当てなし」にセットしようとするまでの間に、その予約が実行されて発音チャンネルＣＨｎにてエレメント信号の生成が開始されていることもある。すなわち、予約キャンセル回路１７ｂ７がキーオンマップレジスタＫＭｎを「グループ割り当てなし」にセットしようとしたときには、すでに発音開始指示回路１７ｂ６によって、キーオンマップレジスタＫＭｎが「グループ割り当てなし」にセットされていることがある。そこで、発音チャンネルの予約がキャンセルされたか否かを示す予約キャンセルフラグを記憶した予約キャンセルフラグレジスタＣＦ０，ＣＦ１・・・ＣＦ１２７が設けられている。発音チャンネルＣＨｎの予約がキャンセルされたとき、予約キャンセル回路１７ｂ７は、予約キャンセルフラグレジスタＣＦｎを「キャンセル」にセットする。一方、予約が実行されて発音されたときは、予約キャンセル回路１７ｂ７は、予約キャンセルフラグレジスタＣＦｎを「発音」にセットする。ＣＰＵ１９ａは、キャンセルトリガ信号を出力した後、予約キャンセルフラグレジスタＣＦｎ内のフラグを読み込むことで、発音チャンネルの予約がキャンセルされたか否かを判断することができる。
【００５１】
なお、予約キャンセルフラグレジスタＣＦ０，ＣＦ１・・・ＣＦ１２７は、ＣＰＵ１９ａのメモリアドレス空間における「キャンセルビット０」〜「キャンセルビット１２７」で表わされるアドレスに割り当てられていて、ＣＰＵ１９ａは、「キャンセルビット０」〜「キャンセルビット１２７」を用いて、予約キャンセルフラグレジスタＣＦ０，ＣＦ１・・・ＣＦ１２７内のフラグの値を読み込むことができる。
【００５２】
また、発音予約回路１７ｂは、各発音チャンネルが予約可能か否かを示す予約可否フラグを記憶する予約可否フラグレジスタＡＦ０、ＡＦ１・・・ＡＦ１２７を有している。予約可否フラグレジスタＡＦ０，ＡＦ１・・・ＡＦ１２７は、チャンネル指定レジスタＣＳ０，ＣＳ１・・・ＣＳ１２７と同様に、発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ１２７に対応した１２８ビットからなるビットマップである。予約可否フラグレジスタＡＦ０，ＡＦ１・・・ＡＦ１２７においては、予約可否フラグセット回路１７ｂ８によって、各ビットが「予約可」又は「予約不可」にセットされる。予約可否フラグセット回路１７ｂ８は、発音チャンネルＣＨｎ（ｎ＝０，１・・・１２７）に対応するキーオンマップレジスタＫＭｎに「１」〜「３０」のうちのいずれかのグループ番号が書き込まれている場合は、発音チャンネルＣＨｎに対応する予約可否フラグレジスタＡＦｎを「予約不可」にセットする。一方、予約可否フラグセット回路１７ｂ８は、キーオンマップレジスタＫＭｎが「グループ割り当てなし」にセットされてから所定の期間（例えば、サンプリング周期の５周期分）「予約不可」に保持した後、予約可否フラグレジスタＡＦｎを「予約可」にセットする。前記所定の期間においては、音源回路１７は、発音開始の処理中であり、新たな発音チャンネルの予約を受け付けられる状態にないからである。
【００５３】
なお、予約可否フラグレジスタＡＦ０，ＡＦ１・・・ＡＦ１２７は、ＣＰＵ１９ａのメモリアドレス空間における「チャンネルビット０」〜「チャンネルビット１２７」で表わされるアドレスに割り当てられていて、ＣＰＵ１９ａは、「チャンネルビット０」〜「チャンネルビット１２７」を指定して読み込みを行うことにより、予約可否フラグレジスタＡＦ０，ＡＦ１・・・ＡＦ１２７内の値を読み込むことができる。上記のように、チャンネル指定レジスタＣＳ０，ＣＳ１・・・ＣＳ１２７及び予約可否フラグレジスタＡＦ０，ＡＦ１・・・ＡＦ１２７は、同じアドレスに割り当てられているが、ＣＰＵ１９ａによる書き込み動作時においては、チャンネル指定レジスタＣＳ０，ＣＳ１・・・ＣＳ１２７が指定され、読み込み動作時においては、予約可否フラグレジスタＡＦ０，ＡＦ１・・・ＡＦ１２７が指定されるようになっている。
【００５４】
ｂ５．楽音パラメータ入出力回路１７ｃ
次に、楽音パラメータ入出力回路１７ｃについて説明する。楽音パラメータ入出力回路１７ｃは、バス１６を介してＣＰＵ１９ａから供給される楽音パラメータを入力して、各発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ１２７の各回路に出力する。また、楽音パラメータ入出力回路１７ｃは、音源回路１７の各回路（ピッチ変更回路ＰＥＧ、カットオフ周波数変更回路ＦＥＧ、音量変更回路ＡＥＧなど）の状態を表すパラメータを入力して、ＣＰＵ１９ａに出力する。楽音パラメータ入出力回路１７ｃは、図６に示すように、ＥＧステージ検出回路１７ｃ１、初期パラメータ出力回路１７ｃ２、通常パラメータ転送回路１７ｃ３、通常パラメータ出力回路１７ｃ４、第１メモリ１７ｃ５及び第２メモリ１７ｃ６を備えている。
【００５５】
ＥＧステージ検出回路１７ｃ１は、ピッチ変更回路ＰＥＧ、カットオフ周波数変更回路ＦＥＧ及び音量変更回路ＡＥＧにて生成される制御信号のレベルが現在のステージの目標レベルに到達したか否かを検出する。ＥＧステージ検出回路１７ｃ１内には、ピッチ変更回路ＰＥＧ、カットオフ周波数変更回路ＦＥＧ及び音量変更回路ＡＥＧのうちの１つの回路を順次１つずつ指定するための図示しない検出対象指定レジスタＤＤ及び検出結果を記憶するステージ終了フラグレジスタＳＦが設けられている。ＣＰＵ１９ａが、検出対象指定レジスタＤＤに検出対象の回路を指定するデータの書き込みを行うと、ＥＧステージ検出回路１７ｃ１は、指定された回路の現在の制御信号のレベルと現在のステージの目標レベルとを比較して、その比較結果に応じてステージ終了フラグレジスタＳＦを「ステージ終了」又は「ステージ処理中」にセットする。すなわち、現在の制御信号のレベルが目標レベルに到達していれば、「ステージ終了」にセットし、現在の制御信号のレベルが目標レベルに到達していなければ、「ステージ処理中」にセットする。
【００５６】
なお、検出対象指定レジスタＤＤは、ＣＰＵ１９ａのメモリアドレス空間における「検出対象回路」で表わされるアドレスに割り当てられていて、ＣＰＵ１９ａは、「検出対象回路」を用いて、検出対象のエンベロープ回路を指定することができる。また、ステージ終了フラグレジスタＳＦは、ＣＰＵ１９ａのメモリアドレス空間における「ステージ状態」で表わされるアドレスに割り当てられていて、ＣＰＵ１９ａは、「ステージ状態」を用いて、ステージ終了フラグレジスタＳＦの値を読み込むことができる。
【００５７】
第１メモリ１７ｃ５は、各発音チャンネルに供給するパラメータを発音チャンネルの予約時からその発音開始時まで記憶しておくメモリである。第１メモリ１７ｃ５は、発音開始時に発音チャンネルの初期設定のために用いられる初期パラメータを記憶する初期パラメータ領域と、発音開始後に各発音チャンネルにて発生されるエレメント信号を変化させるために用いられる通常パラメータを記憶する通常パラメータ領域とに分割されている。例えば、カットオフ周波数変更回路ＦＥＧによって生成されるカットオフエンベロープの初期レベルが、初期パラメータである。さらに、第１メモリ１７ｃ５の初期パラメータ領域は、発音チャンネルごと、かつピッチエンベロープパラメータ、カットオフエンベロープパラメータ及び音量エンベロープパラメータの初期パラメータごとの領域に分割されている。すなわち、各初期パラメータの記憶領域は、ＣＰＵ１９ａのメモリアドレス空間の所定のアドレスにそれぞれ割り当てられている。例えば、各発音チャンネルのカットオフ周波数変更回路ＦＥＧに供給される初期レベルの記憶領域は、ＣＰＵ１９ａのメモリアドレス空間において、「初期レベルＣＨ０」〜「初期レベルＣＨ１２７」で表わされるアドレスにそれぞれ割り当てられていて、ＣＰＵ１９ａは、「初期レベルＣＨ０」〜「初期レベルＣＨ１２７」を用いて、予約する発音チャンネルに供給するためのカットオフ周波数の初期レベルを第１メモリ１７ｃ５に記憶させることができる。
【００５８】
また、例えば、カットオフ周波数変更回路ＦＥＧによって生成されるカットオフエンベロープのうち、発音開始時又は発音開始後に各発音チャンネルに供給されるアタックレベル、アタックタイム、第１ディケイレベル、第１ディケイタイムなどが通常パラメータである。通常パラメータのうち、第１メモリ１７ｃ５に書き込まれるのは、第１ステージの値であるアタックレベル及びアタックタイムである。第１メモリ１７ｃ５の通常パラメータ領域も、初期パラメータ領域と同様に、発音チャンネルごと、かつピッチエンベロープパラメータ、カットオフエンベロープパラメータ及び音量エンベロープパラメータの通常パラメータごとに分割されている。すなわち、各通常パラメータの記憶領域は、それぞれ、ＣＰＵ１９ａのメモリアドレス空間の所定のアドレスに割り当てられている。例えば、カットオフ周波数変更回路ＦＥＧに供給されるカットオフ周波数エンベロープの第１ステージの目標レベル及び持続時間であるアタックレベル及びアタックタイムの記憶領域は、ＣＰＵ１９ａのメモリアドレス空間において、「アタックレベル・アタックタイムＣＨ０」〜「アタックレベル・アタックタイムＣＨ１２７」で表わされるアドレスにそれぞれ割り当てられていて、ＣＰＵ１９ａは、「アタックレベル・アタックタイムＣＨ０」〜「アタックレベル・アタックタイムＣＨ１２７」を用いて、予約する発音チャンネルに供給するためのカットオフ周波数エンベロープのアタックレベル及びアタックタイムを第１メモリ１７ｃ５に記憶させることができる。
【００５９】
初期パラメータ出力回路１７ｃ２は、発音開始指示回路１７ｂ６による発音開始指示に応答して、第１メモリ１７ｃ５に記憶された各初期パラメータを読み出して、その発音チャンネルのピッチ変更回路ＰＥＧ、カットオフ周波数変更回路ＦＥＧ、音量変更回路ＡＥＧなどに出力する。
【００６０】
また、通常パラメータ転送回路１７ｃ３は、発音開始指示回路１７ｂ６による発音開始指示に応答して、第１メモリ１７ｃ５の通常パラメータ領域に書き込まれた通常パラメータを第２メモリ１７ｃ６に転送する。第２メモリ１７ｃ６は、発音チャンネルで生成中のエレメント信号に関するパラメータを記憶するメモリである。第２メモリ１７ｃ６は、通常パラメータを記憶する通常パラメータ領域のみからなる。第２メモリ１７ｃ６の通常パラメータ領域は、第１メモリ１７ｃ５の通常パラメータ領域と同様の構成である。すなわち、第２メモリ１７ｃ６の通常パラメータ領域も、第１メモリ１７ｃ５の通常パラメータ領域と同様に、各通常パラメータごとに分割されていて、各通常パラメータの記憶領域は、ＣＰＵ１９ａのメモリアドレス空間の所定のアドレスにそれぞれ割り当てられている。
【００６１】
例えば、各発音チャンネルのカットオフ周波数変更回路ＦＥＧに供給されるカットオフ周波数エンベロープの各ステージの目標レベル及び持続時間の記憶領域は、ＣＰＵ１９ａのメモリアドレス空間において「目標レベル・持続時間ＣＨ０」〜「目標レベル・持続時間ＣＨ１２７」で表わされるアドレスにそれぞれ割り当てられている。予約された発音チャンネルＣＨｎ（ｎ＝０，１・・・１２７）にて発音を開始する場合、パラメータ転送回路は、「アタックレベル・アタックタイムＣＨｎ」を用いて、アタックレベル及びアタックタイムを第１メモリ１７ｃ５から読み出し、「目標レベル・持続時間ＣＨｎ」を用いて、前記読み出したアタックレベル及びアタックタイムを第２メモリ１７ｃ６の通常パラメータ領域に書き込む。これにより、アタックレベル及びアタックタイムが第１メモリ１７ｃ５から第２メモリ１７ｃ６に転送される。ピッチ変更回路ＰＥＧ及び音量変更回路ＡＥＧによるエンベロープ生成のために第１メモリ１７ｃ５に書き込まれた通常パラメータも、上記カットオフ周波数変更回路ＦＥＧのパラメータと同様に第２メモリ１７ｃ６に転送される。
【００６２】
また、ＣＰＵ１９ａは、第２メモリ１７ｃ６に通常パラメータを直接書き込むことができる。例えば、ＣＰＵ１９ａは、詳しくは後述するように、パラメータ更新の周期処理プログラムを実行して、カットオフ周波数エンベロープの第２ステージ以降のステージの目標レベル及び持続時間を第２メモリ１７ｃ６に書き込む。この場合、ＣＰＵ１９ａは、「目標レベル・持続時間ＣＨ０」〜「目標レベル・持続時間ＣＨ１２７」で表わされるアドレスのうち目的の発音チャンネルに対応するアドレスを用いて、第２メモリ１７ｃ６の適切な領域に、エンベロープの目標レベル及び持続時間を書き込むことができる。ＣＰＵ１９ａは、ピッチ変更回路ＰＥＧ及び音量変更回路ＡＥＧによる各エンベロープ生成のための第２ステージ以降の目標レベル及び持続時間も、上記カットオフ周波数変更回路ＦＥＧのパラメータと同様に第２メモリ１７ｃ６に書き込むことができる。
【００６３】
また、通常パラメータ出力回路１７ｃ４は、発音開始指示回路１７ｂ６による発音開始指示に応答して、第２メモリ１７ｃ６に書き込まれた通常パラメータを、各通常パラメータの対応する発音チャンネルの各部にそれぞれ出力する。この第２メモリ１７ｃ６に書き込まれた通常パラメータは、１サンプリング周期を１２８分割した時分割で出力される。すなわち、１サンプリング周期を１２８分割した各期間が、それぞれ発音チャンネルＣＨ０〜ＣＨ１２７に対応していて、各発音チャンネルに対して順番に通常パラメータが出力される。
【００６４】
なお、第１メモリ１７ｃ５と第２メモリ１７ｃ６を１つのメモリで構成してもよい。すなわち、大きな記憶容量を有するメモリの記憶領域を分割して、第１メモリ１７ｃ５に相当する領域と第２メモリ１７ｃ６に相当する領域を確保すればよい。逆に、第１メモリ１７ｃ５の初期パラメータ領域と通常パラメータ領域に相当する記憶領域をそれぞれ別のメモリに構成してもよい。
【００６５】
ｃ．コンピュータ部１９の構成
次に、コンピュータ部１９の構成について詳しく説明する。とくに、ＲＯＭ１９ｃ及びＲＡＭ１９ｄに記憶されるプログラム及び各種データについて詳しく説明する。ＲＯＭ１９ｃには、ボイスデータリストが記憶されている。ボイスデータリストは、図７に示すように、各音色ごとに規定されたボイスデータからなる。ボイスデータは、各音色の楽音波形を構成するエレメント波形ごとに設けられたエレメントデータ及び各エレメント信号の生成に共通に使用されるコモンデータからなる。
【００６６】
各エレメントデータの構成は共通である。各エレメントデータは、フィルタ回路ＦＬＴを制御するためのフィルタ制御パラメータ、低周波信号発生回路ＬＦＯを制御するための低周波信号制御パラメータ、各種エンベロープ生成用のエンベロープパラメータ及び波形データの選択に関する波形データ選択情報から構成されている。波形データ選択情報は、ノートナンバ及びベロシティと選択する波形データに関する情報を表す波形データ情報との対応関係を記録したテーブルである。波形データ情報は、波形データの先頭アドレス、末尾アドレス及び元ピッチからなる。
【００６７】
また、コモンデータは、音色名を表す音色名情報及びチャンネル累算回路１７ａにおいて各発音チャンネルから出力される全てのエレメント信号に共通の効果を付与するためのエフェクトパラメータなどから構成される。
【００６８】
また、ＲＯＭ１９ｃには、発音予約プログラム（図１１）、発音チャンネル確保プログラム（図１２）、パラメータ更新の周期処理プログラム（図１６）及び音量レベル取得の周期処理プログラム（図１８）が記憶されている。発音予約プログラムは、ノートオンイベントが発生すると実行され、前記ノートオンイベントに対応した発音を行うために使用する発音チャンネルの予約及び発生させる楽音に関するパラメータの書き込みを行うためのプログラムである。発音チャンネル確保プログラムは、発音予約プログラムのサブルーチンであって、発音に必要な発音チャンネルを確保するためのプログラムである。発音予約プログラムの実行において、ＣＰＵ１９ａは、確保した発音チャンネルが他の発音処理に使用されているか否かに関わらず、前記発生したノートオンイベントに対応した楽音に関する初期パラメータ及び通常パラメータを音源回路１７の第１メモリ１７ｃ５に書き込む。これにより、発音チャンネルの予約が終了する。すなわち、ＣＰＵ１９ａは、発音予約プログラムの実行により予約した発音チャンネルにて発音処理が開始されるのを待たずに発音予約プログラムを終了する。音源回路１７は、予約された発音チャンネルが前記発生したノートオンイベントに対応した楽音の生成のために使用可能な状態になると、発音予約プログラムの実行により第１メモリ１７ｃ５に書き込まれたパラメータを用いて発音処理を開始する。
【００６９】
パラメータ更新の周期処理プログラム及び音量レベル取得の周期処理プログラムは、タイマ１９ｂから供給される割り込み信号をトリガとして実行される。パラメータ更新の周期処理プログラムは、発音中の各発音チャンネルにて発生されるエレメント信号をリアルタイムに変化させるために音源回路１７に供給する楽音パラメータのうちの通常パラメータを所定の周期で更新するプログラムであって、例えば、各エンベロープ生成のためのパラメータを第２メモリ１７ｃ６に書き込むプログラムである。また、音量レベル取得の周期処理プログラムは、音源回路１７の各発音チャンネルのレジスタの値を定期的に読み出して、後述する各発音チャンネル情報を更新するプログラムである。
【００７０】
また、ＲＡＭ１９ｄには、各プログラムの実行により一時的に生成されるデータが記憶される。この一時的に生成されるデータには、メロディパート、伴奏パートなどの演奏パートごとに設けられたパート情報からなるパート情報リストＰＬが含まれる。本実施形態においては、１６個の演奏パートを備えていて、パート情報リストＰＬは１６個のパート情報からなる。各パート情報は、図８に示すように、ボイスデータへの参照情報及びノート情報リストＮＬへの参照情報からなる。
【００７１】
ボイスデータへの参照情報は、各パートに割り当てられた音色のボイスデータへの参照情報である。ノート情報リストＮＬは、演奏パートごとに設けられている。各演奏パートごとのノート情報リストＮＬは、１つの演奏パートに属するノートオンイベントごとに発音中又は予約された発音に関する情報を記憶したノート情報からなる。各ノート情報には、図９に示すように、音高を表すノートナンバ、押鍵タッチ強さを表すべロシティ及び使用する発音チャンネルに関する情報を表す発音チャンネル情報への参照情報（チャンネル番号など）が含まれる。各ノート情報は、１つの楽音波形を構成するエレメント波形の数と同数の発音チャンネルへの参照情報を有する。図７乃至図９に示す例では、パート１に割り当てられた音色は、楽音波形が２つのエレメント波形から構成されている。したがって、パート１の各ノート情報は、それぞれ発音チャンネルへの参照情報を２つずつ有する。ノート情報は、ノートオンイベントが発生するごとにノート情報リストＮＬに１つずつ追加される。また、ノートオフイベントの発生により発音が終了すると、ノート情報はノート情報リストＮＬから削除される。ただし、必ず最も古いノート情報から順番に削除されるとは限らない。そこで、各ノート情報は、１つ前のノート情報のアドレスを示す前方リンク及び１つ後のノート情報のアドレスを示す後方リンクを有している。なお、最も古いノート情報の前方リンク及び最も新しいノート情報の後方リンクには、リンク先のノート情報が無いことを示す値（例えば「０」）が記録される。ノート情報の追加及び削除がなされるごとに、前方リンク及び後方リンクを更新することにより、ノートオンイベントが発生した順にノート情報を辿ることができるようにしている。
【００７２】
発音チャンネル情報リストＣＬは、各発音チャンネルごとに設けられた発音チャンネル情報１乃至発音チャンネル情報１２７からなり、各発音チャンネル情報は、図１０に示すように、発音中か否かを表す空きチャンネルフラグ、各種エンベロープに関するエンベロープ情報、エレメント信号の音量レベル及びその発音チャンネル情報への参照情報を記憶しているノート情報への参照情報からなる。なお、各種エンベロープ情報とは、各エンベロープ回路の現在のステージ、現在のステージの目標レベル及び持続時間である。いずれのノート情報からも参照されていない発音チャンネル情報に対応した発音チャンネル（例えば、図８における発音チャンネルＣＨ４）は、空きチャンネルである。
【００７３】
次に、上記のように構成した楽音信号発生装置の動作について説明する。演奏者が鍵盤１１のいずれかの鍵を押鍵操作してノートオンイベントが発生すると、ＣＰＵ１９ａは、図１１に示すように、ステップＳ１０にて、発音予約プログラムを開始する。次に、ＣＰＵ１９ａは、ステップＳ１２にて、操作子インターフェース回路１４から供給された演奏情報から、押鍵された鍵を表すノート番号ＮＮ、押鍵の強さを表すベロシティＶＥＬを取得するとともに、パート番号ＰＮを特定する。すなわち、鍵盤には、予めいずれかのパートが割り当てられていて、押鍵により、そのパートの楽音を発音するようになっている。また、鍵域ごとに異なるパートを割り当てることもできる。そこで、ＣＰＵ１９ａは、ノートイベントが鍵盤１１の操作により発生したこと、前記取得したノート番号ＮＮなどから押鍵された鍵が属するパートを表すパート番号ＰＮを特定する。次に、ＣＰＵ１９ａは、ステップＳ１４にて、前記特定したパート番号ＰＮに基づいて対応するボイスデータを特定し、特定したボイスデータを構成するエレメントデータの数を取得する。そして、ＣＰＵ１９ａは、ステップＳ１６にて、図１２に示す発音チャンネル確保プログラムを実行して、前記ステップＳ１４にて取得したエレメントデータの数と同じ数の発音チャンネルを確保する
【００７４】
ＣＰＵ１９ａは、図１２に示すように、ステップＳ１６ａにて、発音チャンネル確保プログラムの実行を開始し、ステップＳ１６ｂにて、発音チャンネル情報リストの空きチャンネルフラグを参照して、空きチャンネルを検索する。ステップＳ１６ｂの検索結果、空きチャンネルがある場合、後述のステップＳ１６ｋに進む。一方、空きチャンネルが無い場合、ＣＰＵ１９ａは、ステップＳ１６ｃにて、発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ１２７のうち、トランケートする発音チャンネルＣＨｎ（ｎ＝０，１・・・１２７）を１つ決定する。どの発音チャンネルをトランケートするチャンネルとして決定するかは、予め定められた規則に従う。例えば、発音チャンネル情報リストＣＬを参照して、エレメント信号の音量レベルが最も小さい発音チャンネルをトランケートするチャンネルとして決定する。また、ノート情報の前方リンクを次々と辿って最も古いノート情報を特定し、最も古いノート情報が参照している発音チャンネル情報に記録されているエレメント信号の音量レベルが最も小さい発音チャンネルをトランケートするチャンネルとして決定してもよい。
【００７５】
次に、ＣＰＵ１９ａは、ステップＳ１６ｄにて、前記ステップＳ１６ｃの処理により決定されたトランケートする発音チャンネルＣＨｎに対応する発音チャンネル情報ｎ内のノート情報への参照情報を用いて、発音チャンネル情報ｎを参照しているノート情報（参照元のノート情報）を特定し、この参照元のノート情報から発音チャンネル情報ｎへの参照情報を削除する。そして、ＣＰＵ１９ａは、ステップＳ１６ｅにて、参照元のノート情報内の発音チャンネル情報への参照情報が全て削除されたか否かの判定を行う。ステップＳ１６ｅの判定の結果、参照元のノート情報内の発音チャンネル情報への参照情報が全て削除されている場合、ＣＰＵ１９ａは、ステップＳ１６ｆにて、ノート情報リストＮＬから参照元のノート情報を削除する。一方、ステップＳ１６ｅの処理の結果、参照元のノート情報内に他の発音チャンネル情報への参照情報が残っている場合は、ノート情報リストＮＬから参照元のノート情報を削除することなく、ステップＳ１６ｇに進む。
【００７６】
ＣＰＵ１９ａは、ステップＳ１６ｇにて、予約可否フラグＡＦｎを参照して、ステップＳ１６ｃの処理により決定されたトランケートする発音チャンネルＣＨｎについての他の予約の有無の判定を行う。予約可否フラグが「予約可」であるということは、発音チャンネルＣＨｎには未だ他の予約がされていないことになる。この場合、後述のステップＳ１６ｊに進む。一方、予約可否フラグＡＦｎが「予約不可」であるということは、すでに発音チャンネルＣＨｎに他の予約がされていることになる。すなわち、前記他の予約時に発音中であったエレメント信号がトランケート処理により減衰中であって、前記他の予約に係る楽音の発音がまだ開始されていない。この場合、ＣＰＵ１９ａは、ステップＳ１６ｈにて、前記他の予約をキャンセルする。具体的には、発音チャンネルＣＨｎに対応するチャンネル指定レジスタＣＳｎを「キャンセル」にセットした後、予約キャンセル回路１７ｂ７に対してキャンセルトリガ信号を供給する。
【００７７】
前記他の予約をキャンセルした場合、予約キャンセル回路１７ｂ７は、発音チャンネルＣＨｎに対応するキーオンマップレジスタＫＭｎを「グループ割り当てなし」にセットするとともに、予約キャンセルフラグＣＦｎを「キャンセル」にセットする。そして、ＣＰＵ１９ａは、ステップＳ１６ｉにて、予約キャンセルフラグＣＦｎを参照して、前記他の予約がキャンセルされたか否かの判定を行う。予約キャンセルフラグＣＦｎが、「発音」を示す場合、ＣＰＵ１９ａは、ステップＳ１６ｊにて、前記ステップＳ１６ｈにおけるキャンセル処理が間に合わずに発音開始してしまった前記他の予約に係るエレメント信号のトランケート指示を行う。また、ステップＳ１６ｇの判定において、「他の予約なし」と判定された場合（すなわち、予約可否フラグＡＦｎが「予約不可」である場合）は、対象の発音チャンネルＣＨｎは発音中であるため、ＣＰＵ１９ａは、ステップＳ１６ｊにて、発音チャンネルＣＨｎのトランケート指示を行う。具体的には、第２メモリ１７ｃ６に音量変更回路ＡＥＧのパラメータとして、ダンプレベル以下の目標値及び短い持続時間を書き込む。
【００７８】
そして、ＣＰＵ１９ａは、ステップＳ１６ｋにて、前記ステップＳ１６ｊにおいてトランケート指示を行った発音チャンネルＣＨｎを新たな発音に使用する発音チャンネルとして確保する。また、上述のステップＳ１６ｂによる空きチャンネルの検索の結果、空きチャンネルが有った場合、ＣＰＵ１９ａは、ステップＳ１６ｋにて、空きチャンネルを新たな発音に使用する発音チャンネルとして確保する。また、上述のステップＳ１６ｉによる予約キャンセルの実行結果の判定において、予約がキャンセルされたと判定された場合も、ＣＰＵ１９ａは、ステップＳ１６ｋにて、予約のキャンセルを行った発音チャンネルを新たな発音に使用する発音チャンネルとして確保する。
【００７９】
次に、ＣＰＵ１９ａは、ステップＳ１６ｌにて、発音に必要な数の発音チャンネルを確保したかの判定を行う。図１１のステップＳ１４の処理により取得したエレメントデータの数と同じ数の発音チャンネルを確保した場合は、ステップＳ１６ｍにて、発音チャンネル確保プログラムを終了して、発音予約プログラムに戻る。一方、確保した発音チャンネルの数が、ステップＳ１４の処理により取得したエレメントデータ数未満の場合は、ステップＳ１６ｂ〜ステップＳ１６ｋからなる処理を繰り返し実行して、エレメントデータ数分の発音チャンネルを確保する。
【００８０】
発音チャンネル確保プログラムの実行により、エレメントデータ数分の発音チャンネルを確保すると、ＣＰＵ１９ａは、ステップＳ１８にて、ノート情報リストＮＬに新たなノート情報を１つ追加する（図８、図９参照）。そして、追加したノート情報に、前記ステップＳ１２にて取得したノートナンバ及びベロシティを書き込む。また、確保した発音チャンネルに対応する発音チャンネル情報への参照情報を書き込む。さらに、１つ前に発生したノートオンイベントに対応するノート情報への参照情報である前方リンクを書き込む。次に、ＣＰＵ１９ａは、ステップＳ２０にて、確保した発音チャンネルに対応する発音チャンネル情報を初期化する（図８、図１０参照）。具体的には、空きチャンネルフラグを「使用中」にセットし、ノート情報への参照情報として、前記追加した新たなノート情報への参照情報をセットする。各種エンベロープ値として、初期レベル及び第１ステージの目標値がセットされる。
【００８１】
次に、ＣＰＵ１９ａは、ステップＳ２０にて、確保した発音チャンネルのそれぞれについての各種パラメータを第１メモリ１７ｃ５に書き込む。すなわち、ステップＳ１４において特定したボイスデータから、エフェクトパラメータ、エンベロープパラメータ、波形データの先頭及び末尾アドレス、元ピッチなどを取得して、これらを第１メモリ１７ｃ５の対応する領域にそれぞれ書き込む。例えば、図１３に示すように、カットオフ周波数変更回路ＦＥＧに供給するためのフィルタエンベロープパラメータの書き込みにおいては、ＣＰＵ１９ａは、ステップＳ４０にて、カットオフ周波数変更回路ＦＥＧ用のパラメータ書き込み処理を開始し、ステップＳ４２にて、ボイスデータに記録されているフィルタエンベロープパラメータのうち、初期レベル、アタックレベル及びアタックタイムを取得する。次に、ＣＰＵ１９ａは、ステップＳ４４にて、初期レベルを第１メモリ１７ｃ５の初期パラメータ領域に書き込む。次に、ＣＰＵ１９ａは、ステップＳ４６にて、アタックレベル及びアタックタイムを第１メモリ１７ｃ５の通常パラメータ領域に書き込む。そして、ＣＰＵ１９ａは、ステップＳ４８にて、カットオフ周波数変更回路ＦＥＧ用のパラメータ書き込み処理を終了する。
【００８２】
ふたたび、図１１の説明に戻る。ＣＰＵ１９ａは、ステップＳ２４にて、チャンネル指示レジスタＣＳ０，ＣＳ１・・・ＣＳ１２７のうち、ステップＳ１６にて確保した発音チャンネル（すなわち、予約する発音チャンネル）に対応するレジスタを「予約」にセットする。次に、ＣＰＵ１９ａは、ステップＳ２６にて、グループフルレジスタＧＦが「空きグループあり」になるまで待つ。なお、上述のように、本実施形態においては３０個のグループを使用することができるので、ステップＳ２６の開始時にグループフルレジスタＧＦが「空きグループ無し」の状態になっていることはほとんど無い。たとえ、ステップＳ２６の開始時にグループフルレジスタＧＦが「空きグループ無し」の状態になっていても、音源回路１７において、発音チャンネルに対するトランケート処理が行われ、予約中の楽音の生成が開始されることにより、短時間（例えば数ミリ秒）でグループフルレジスタＧＦが「空きグループあり」になる。したがって、ステップＳ２６の待ち時間が長くなって、ＣＰＵ１９ａが他の処理をタイミング良く実行できなくなるという問題は発生しない。
【００８３】
ＣＰＵ１９ａは、ステップＳ２６の処理にて、「空きグループあり」と判定すると、ステップＳ２８にて、予約受付回路１７ｂ１に対し、予約トリガ信号を出力し、続くステップＳ３０にて、発音予約プログラムを終了する。これにより、１つのノートオンイベントに対する発音チャンネルの予約が完了する。
【００８４】
ここで、発音チャンネルＣＨｎ（ｎ＝０，１・・・１２７）の発音中に、新たなノートオンイベントが発生し、ＣＰＵ１９ａが、このノートオンイベントに対応する楽音生成のために発音チャンネルＣＨｎの予約をした場合の音源回路１７の動作について、図１４を用いて説明する。この例においては、予約する発音チャンネルＣＨｎは、ノートオフイベント発生後の楽音を発音中である。
【００８５】
予約トリガ信号を入力した予約受付回路１７ｂ１は、グループ使用可否フラグＧＵ０，ＧＵ１・・・ＧＵ３０から空きグループ番号ｍを取得するとともに、そのグループ使用可否フラグＧＵｍを「使用中」にセットする。そして、取得した空きグループ番号ｍを、発音チャンネルＣＨｎに対応するキーオンマップレジスタＫＭｎに書き込む。その後、予約受付回路１７ｂ１は、チャンネル指定レジスタＣＳを「指定なし」にセットする。キーオンマップレジスタＫＭｎにグループ番号ｍが書き込まれると、予約可否フラグセット回路１７ｂ８が、発音チャンネルＣＨｎに対応する予約可否フラグＡＦｎを「予約不可」にセットする。また、キーオンマップレジスタＫＭｎにグループ番号ｍが書き込まれたサンプリング周期の次のサンプリング周期の開始時に、キーオンマップラッチ回路１７ｂ５が、キーオンマップＫＭの内容をキーオンマップラッチＫＭＬにコピーする。すなわち、キーオンマップラッチレジスタＫＭＬｎにグループ番号ｍが書き込まれる。
【００８６】
図１４の発音チャンネルＣＨｎの予約時においては、発音チャンネルＣＨｎの音量変更回路ＡＥＧのステージは第５ステージ（リリース中）となっていて、音源回路１７は、発音チャンネルＣＨｎにて生成されているエレメント信号の音量レベルをサンプリング周期ごとに徐々に小さくしている。そして、ＣＰＵ１９ａは、発音チャンネル確保プログラムのステップＳ１６ｊを実行して、生成中のエレメント信号のトランケート指示を行うと、音量変更回路ＡＥＧが、エレメント信号の音量レベルの減少率を大きくするエンベロープを生成して音量制御回路ＡＭＰに供給するので、急速に音量レベルが小さくなっていく。そして、サンプリング周期ごとに、ダンプレベル到達検出回路１７ｂ４により、音量レベルレジスタＡＬ０〜ＡＬ１２７を介してレベル検出回路１７ｂ３からダンプレベル到達検出レジス他１７ｂ４に供給される、各発音チャンネルにて生成されているエレメント信号の音量レベル、及びキーオンマップラッチに基づいて、グループｍに属する全ての発音チャンネルの音量レベルがダンプレベルに到達したか否かの判定がなされる。前記ダンプレベルに到達したか否かの判定結果は、ダンプレベル到達検出レジスタＤＬ１〜ＤＬ３０に書き込まれる。
【００８７】
一方、ＣＰＵ１９ａによる発音予約プログラムのステップＳ２２の処理によって、図１５に示すように、第１メモリ１７ｃ５に初期パラメータ及び通常パラメータが書き込まれ、これらの初期パラメータ及び通常パラメータは、ダンプレベル到達検出レジスタＤＬｍの値が「ダンプレベル到達」になるまで、第１メモリ１７ｃ５に保持されている。そして、ダンプレベル到達レジスタＤＬｍの値が「ダンプレベル到達」になると、その次のサンプリング周期にて、通常パラメータ転送回路１７ｃ３が第１メモリ１７ｃ５の通常パラメータ領域に書き込まれているパラメータを第２メモリ１７ｃ６にコピーし、初期パラメータ出力回路１７ｃ２が、初期パラメータを音源回路１７の各部（ピッチ変更回路ＰＥＧ、カットオフ周波数変更回路ＦＥＧ、音量変更回路ＡＥＧなど）に出力する。第１メモリ１７ｃ５に保持されていた初期パラメータが音源回路１７の各部に出力され、第１メモリ１７ｃ５に保持されていた通常パラメータが第２メモリ１７ｃ６にコピーされた後、同じ発音チャンネルＣＨｎの予約のために第１メモリ１７ｃ５に次の予約に係る初期パラメータ及び通常パラメータが書き込まれるまでは、これらの元の初期パラメータ及び通常パラメータは、それぞれ第１メモリ１７ｃ５の対応する記憶領域に残るが、これらの記憶領域は参照されず、未使用となる。
【００８８】
そして、発音開始指示回路１７ｂ６が、グループ番号「ｍ」に属する全発音チャンネルに対し、発音開始を指示するとともに、これらの発音チャンネルに対応するキーオンマップレジスタ及びキーオンマップラッチレジスタを「グループ割り当てなし」にセットする。さらに、発音開始指示回路１７ｂ６は、グループ使用状況レジスタＧＵｍを「使用可」にセットする。予約可否フラグセット回路１７ｂ８は、キーオンマップレジスタＫＭｎが「グループ割り当てなし」にセットされても、所定時間（例えば、サンプリング周期の５周期分）だけ予約可否フラグを「予約不可」に保持し、その後「予約可」にセットする。
【００８９】
通常パラメータ転送回路１７ｃ３によって第２メモリ１７ｃ６に書き込まれた通常パラメータは、通常パラメータ出力回路１７ｃ４によって、サンプリング周期ごとに、各発音チャンネルの各回路に出力される。
【００９０】
また、第２メモリ１７ｃ６に書き込まれた通常パラメータは、ＣＰＵ１９ａのパラメータ更新の周期処理プログラムの実行によって所定の時間間隔（例えば１０ミリ秒）で更新される。ＣＰＵ１９ａは、一定の時間間隔（例えば１ミリ秒）でタイマ１９ｃから割り込み信号を供給され、この割り込み信号に基づいて前記所定の時間間隔（例えば１０ミリ秒）ごとに、パラメータ更新の周期処理プログラム及び音量レベルチェックの周期処理プログラムを繰り返し実行する。
【００９１】
まず、パラメータ更新の周期処理プログラムについて説明する。パラメータ更新の周期処理プログラムは、発音中の楽音の音高、音色及び音量を変化させるエンベロープを生成するためのパラメータなどを書き込むプログラムである。ＣＰＵ１９ａは、図１６に示すステップＳ５０にて、パラメータ更新の周期処理を開始すると、ステップＳ５２にて、１つの発音チャンネルＣＨｎ（ｎ＝０，１・・・１２７）を選択し、発音チャンネルＣＨｎに対応する予約可否フラグＡＦｎを参照して、発音チャンネルＣＨｎの楽音信号がトランケート処理中か否かの判定を行う。すなわち、予約可否フラグＡＦｎが、「予約不可」であるということは、発音チャンネルＣＨｎにて発生中の楽音信号がトランケート処理中であることになる。この場合、後述のステップＳ５６に進む。一方、予約可否フラグＡＦｎが「予約可」であるということは、発音チャンネルＣＨｎにて発生中の楽音信号にはトランケート処理がなされていないことになる。この場合、ＣＰＵ１９ａは、ステップＳ５４にて、第２メモリ１７ｃ６の通常パラメータを更新する。
【００９２】
上記ステップＳ５４のパラメータの書き込みの一例として、カットオフ周波数変更回路ＦＥＧにカットオフエンベロープを生成させるためのパラメータの更新について、図１７を用いて説明する。ＣＰＵ１９ａは、ステップＳ６０にて、カットオフ周波数変更回路ＦＥＧ用のパラメータ更新処理を開始すると、ステップＳ６２にて、ＥＧステージ検出回路１７ｃ１（図６参照）の検出対象レジスタＤＤに検出対象とする発音チャンネルの番号とエンベロープ回路の種別を表す値（この例では、カットオフ周波数変更回路ＦＥＧを表す値）を書き込む。次にステップＳ６４において、ステージ終了フラグの値を読み出す。そして、ステージ終了フラグの値が「ステージ終了」であれば、ＣＰＵ１９ａは、ステップＳ６６にて、カットオフ周波数エンベロープの現在のステージが最終ステージであるか否かの判定を行う。ステップＳ６６の判定の結果、現在のステージが最終ステージでなければ、ステップＳ６８にて、次のステージのカットオフ周波数の目標レベル及び次のステージの持続時間を第２メモリ１７ｃ６に書き込む。また、対応する発音チャンネル情報のエンベロープ値を更新する。すなわち、前記次のステージの番号及び前記次のステージの目標値を書き込む。一方、ステップＳ６４において読み出したステージ終了フラグの値が「ステージ処理中」である場合には、ＣＰＵ１９ａは、ステップＳ７０に進み、カットオフ周波数変更回路ＦＥＧ用のパラメータ変更処理を終了する。また、ステップＳ６６にて、エンベロープの現在のステージが最終ステージであると判定した場合も、ステップＳ７０に進み、カットオフ周波数変更回路ＦＥＧ用のパラメータ変更処理を終了する。
【００９３】
上記ステップＳ５４のパラメータの書き込みの他の例としては、演奏者によるパネル操作子１２、ペダル操作子１３などの操作により発生する演奏情報及び外部インターフェース回路２２を介したＭＩＤＩ対応の外部機器から送信された演奏情報に応じて、音高、音色、音量などを変化させる場合が挙げられる。これらの場合、ＣＰＵ１９ａは、前記演奏情報に応じて、対応する発音チャンネルの通常パラメータを第２メモリ１７ｃ６に書き込んで更新する。更新された通常パラメータは、更新されなかった他の通常パラメータとともに、通常パラメータ出力回路１７ｃ４によって各発音チャンネルの各回路に出力される。
【００９４】
ふたたび、図１６のパラメータ更新の周期処理の説明に戻る。ＣＰＵ１９ａは、上記のようにして第２メモリ１７ｃ６の通常パラメータを更新すると、ステップＳ５６にて、全ての発音チャンネルの処理が終了したか否かの判定を行う。残りの発音チャンネルがあれば、ステップＳ５２乃至Ｓ５４を繰り返して、全ての発音チャンネルのためのパラメータの更新を行う。全ての発音チャンネルのためのパラメータの更新が終了すると、ＣＰＵ１９ａは、ステップＳ５８にて、パラメータ更新の周期処理プログラムを終了する。
【００９５】
次に、音量レベル取得の周期処理プログラムについて説明する。図１８に示すように、ＣＰＵ１９ａは、ステップＳ８０にて、音量レベル取得の周期処理プログラムを開始すると、ステップＳ８２にて、１つの発音チャンネルＣＨｎ（ｎ＝０，１・・・１２７）を選択して、発音チャンネルＣＨｎで生成されているエレメント信号の音量レベルをレベル検出回路１７ｂ３から音量レベルレジスタＡＬ０〜ＡＬ１２７を介して入力する。次に、ステップＳ８４にて、入力したエレメント信号の音量レベルが、ダンプレベル以下であるか否かの判定を行う。ステップＳ８４の判定の結果、エレメント信号の音量がダンプレベル以下でない場合、後述のステップＳ９２に進む。
【００９６】
一方、ダンプレベル以下である場合は、発音チャンネルＣＨｎに対応する発音チャンネル情報ｎの空きチャンネルフラグを「空き」にセットする。そして、ＣＰＵ１９ａは、ステップＳ８６にて、発音チャンネル情報ｎに記録されているノート情報への参照情報を用いて、発音チャンネル情報ｎへの参照情報を記憶している参照元のノート情報を特定する。そして、参照元のノート情報の発音チャンネル情報ｎへの参照情報を削除する。次に、ＣＰＵ１９ａは、ステップＳ８８にて、参照元のノート情報内のすべての発音チャンネル情報への参照情報が削除されているか否かの判定を行う。参照元のノート情報内に発音チャンネル情報への参照情報が残っている場合は、ステップＳ９２に進む。
【００９７】
一方、すべての発音チャンネル情報への参照情報が削除されている場合は、ＣＰＵ１９ａは、ステップＳ９０にて、そのノート情報を削除する。そして、削除したノート情報の１つ前及び１つ後のノート情報内の前方リンク及び後方リンクを更新する。次に、ＣＰＵ１９ａは、ステップＳ９２にて、全ての発音チャンネルの処理が終了したか否かの判定を行う。残りの発音チャンネルがあれば、ステップＳ８２乃至Ｓ９０を繰り返して、全ての発音チャンネルの音量レベルの取得を行う。すべての発音チャンネルの音量レベルの取得が終了すると、ＣＰＵ１９ａは、ステップＳ９４にて、音量レベル取得の周期処理プログラムを終了する。
【００９８】
なお、上記の例においては、発音中（リリース中）の発音チャンネルに予約を行う場合の音源回路１７の動作を示したが、予約する発音チャンネルＣＨｎが空きチャンネルの場合であっても、動作は同様である。すなわち、この場合、予約したサンプリング周期の次のサンプリング周期において、ダンプレベル到達検出回路１７ｂ４によって発音チャンネルＣＨｎの楽音信号の音量レベルがダンプレベル到達したことが検出されるというだけで、音源回路１７の他の動作は、上記発音中の発音チャンネルに予約を行う場合の音源回路１７の動作と同様である。また、上記の例においては、ノートオンイベント及びノートオフイベントは、鍵盤１１の鍵操作によって発生しているが、自動演奏プログラム及び外部機器から送信される演奏情報によっても発生し、この場合のＣＰＵ１９ａ及び音源回路１７の動作も、ステップＳ１２にて、演奏情報に応じたパート番号ＰＮが割り当てられる点を除いて、上記の例と同様である。
【００９９】
上記のように構成した楽音信号発生装置においては、ＣＰＵ１９ａは、予約した発音チャンネルにて発音処理が開始されるのを待つことなく発音処理プログラムを終了する。すなわち、ＣＰＵ１９ａは、発音チャンネルの予約を行えば良く、発音開始タイミングを制御する必要が無い。すなわち、発音開始タイミングは、音源回路１７によって制御される。そのため、ＣＰＵ１９ａは、発音予約プログラムの終了後、すぐに、他のプログラムを実行可能となる。例えば、ＣＰＵ１９ａは、発音予約プログラムの終了後、すぐに、別のノートオンイベントに対応した発音チャンネルの予約を行うために、再度発音予約プログラムを実行することができる。また、発音予約プログラムの終了後、すぐに、パラメータ更新の周期処理プログラム及び音量レベル取得の周期処理プログラムを実行することもできる。したがって、上記従来の楽音信号発生装置に比べて、処理速度を向上させることができる。
【０１００】
また、上記のように構成した楽音信号発生装置においては、キーオンイベントに応答してＣＰＵ１９ａが発音チャンネルＣＨ０〜ＣＨ１２７を予約すると、予約受付回路１７ｂ１は，キーオンマップレジスタＫＭ０〜ＫＭ１２７を更新する。また、レベル検出回路１７ｂ３が一連の発音チャンネルＣＨ０〜ＣＨ１２７の音量レベルの検出を開始する前に、キーオンマップの内容がキーオンマップラッチにコピーされる。ダンプレベル到達検出回路１７ｂ４は、レベル検出回路１７ｂ３の検出結果及びキーオンマップラッチを用いて、同一グループに属する全ての発音チャンネルにて発生されている楽音信号の音量レベルがダンプレベル以下であることを検出することができる。上記のように、ダンプレベルの検出中にグループ構成が変化しないキーオンマップラッチを用いるようにしたので、演奏が不自然になるのを防止できる。
【０１０１】
また、上記の楽音信号発生装置においては、チャンネル指定レジスタＣＳ０，ＣＳ１・・・ＣＳ１２７で指定された発音チャンネルに共通のグループ番号を対応させて、キーオンマップＫＭ０，ＫＭ１・・・ＫＭ１２７に記憶するようにした。そのため、複数の発音チャンネルにてエレメント信号を同時に発生開始させる場合、ダンプレベル到達検出回路１７ｂ４は、同じグループ番号で管理されている全ての発音チャンネルの音量レベルがダンプレベル以下かどうかを判断すればよい。したがって、多くのノートオンイベントが短時間のうちに集中して発生しても、ＣＰＵ１９ａは、グループ番号に空きがある限り、発音チャンネルの予約をすることができ、予約後は他の処理を実行することができるので、楽音信号発生装置の処理速度を向上させることができる。
【０１０２】
また、上記の楽音信号発生装置においては、予約しようとしている発音チャンネルに既に他の予約がされている場合に、前記他の予約をキャンセルできるようにした。したがって、空きチャンネルが無く、かつ全発音チャンネルについて予約済みであっても、他の予約をキャンセルして、新たな予約をすることができる。すなわち、予約をしようとする発音チャンネルが予約済みであっても、ＣＰＵ１９ａは、その発音チャンネルの予約が実行されて空き状態になるのを待つことなく、後に発生したノートオンイベントに対応する楽音信号の発生のための発音チャンネルを予約することができる。そして、ＣＰＵ１９ａは、前記予約をした発音チャンネルにおける楽音信号発生の開始タイミングを制御する必要が無いので、前記予約の後、すぐに他の処理の実行を開始できる。したがって、楽音信号発生装置の処理速度を向上させることができる。
【０１０３】
また、上記の楽音信号発生装置においては、予約キャンセルフラグＣＦ０〜ＣＦ１２７を設けて、前記他の予約がキャンセルされたか否かの判定を行うようにした。そして、キャンセル指示したにも拘わらず、前記他の予約がキャンセルされなかった場合（すなわち、前記他の予約が実行されて発音開始された場合）、発音処理を開始した直後の発音チャンネルについてトランケート指示を行った上で、この発音チャンネルを新たに予約できる。
【０１０４】
また、上記の楽音信号発生装置においては、楽音パラメータ入出力回路１７ｃ内に、各種パラメータを記憶するための第１メモリ１７ｃ５及び第２メモリ１７ｃ６を設けた。これによれば、ＣＰＵ１９ａは、発音チャンネルの予約時において楽音パラメータを第１メモリ１７ｃ５に書き込んでおけば、書き込まれた楽音パラメータは発音開始時まで第１メモリ１７ｃ５に保持されている。また、第１メモリ１７ｃ５に書き込まれた楽音パラメータのうち初期パラメータは、発音開始時に、初期パラメータ出力回路１７ｃ２によって、各発音チャンネルに直接供給される。一方、通常パラメータは、第２メモリ１７ｃ６に転送された後、発音中の所定のタイミングで（例えば１０ミリ秒ごと）、通常パラメータ出力回路１７ｃ４によって、各発音チャンネルに供給される。すなわち、ＣＰＵ１９ａは、発音チャンネルの予約後、発音開始までの間、発音チャンネルへのパラメータの供給に関与しなくてよいので、その間に他の処理を実行することができる。したがって、楽音信号発生装置の処理速度を向上させることができる。
【０１０５】
また、上記のように、初期パラメータは、第２メモリ１７ｃ６に転送されないので、第２メモリ１７ｃ６の記憶容量を小さくできる。また、ＣＰＵ１９ａは、エレメント信号の発生開始後に、第２メモリ１７ｃ６に記憶された通常パラメータ（例えば、各種エンベロープ用のパラメータ）を更新できるので、エレメント信号の音色、音量などを時間経過に従って変化させることができる。また、楽音信号を時間経過に従って変化させるためのパラメータを、発音チャンネルの予約時にまとめて供給しておく場合に比べて、第１メモリ１７ｃ５及び第２メモリ１７ｃ６の記憶容量を小さくできる。
【０１０６】
さらに、本発明の実施にあたっては、上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
【０１０７】
ｇ．変形例
上記実施形態においては、音源回路１７は、波形メモリＷＭから波形データを読み出して楽音信号を発生させる波形メモリ音源とした。しかし、本発明は、上記波形メモリ音源を備えた楽音信号発生装置に限られず、楽音信号を発生させる発音チャンネルを有する音源であれば、どのような方式の音源を備えた楽音信号発生装置であっても適用でき、上記実施形態と同様の効果が得られる。
【０１０８】
また、上記実施形態においては、レベル検出回路１７ｂ３は、各発音チャンネルの音量制御回路ＡＭＰから出力されるエレメント信号の音量レベルを検出し、検出された音量レベルを用いて、ダンプレベル到達検出回路１７ｂ４による各グループに属する発音チャンネルのエレメント信号のダンプレベル到達を検出するようにした。また、前記検出された音量レベルを用いて、トランケートする発音チャンネルを決定するようにした（図１２のステップＳ１６ｃ）。さらに、前記検出された音量レベルを用いて、空きチャンネルを検索するようにした（図１８のステップＳ８２）。しかし、上記ダンプレベル到達の検出、トランケートする発音チャンネルの決定及び空きチャンネルの検索の各処理に対応して、各発音チャンネルの音量制御回路ＡＭＰから出力されるエレメント信号の音量レベルを検出するレベル検出回路をそれぞれ設けてもよいし、２つの前記レベル検出回路を設けて、一方の前記レベル検出回路を前記各処理のうちいずれか１つの処理用とし、他方の前記レベル検出回路を残りの処理用としてもよい。上記ダンプレベル到達の検出専用のレベル検出手段を設けた場合は、このダンプレベル到達の検出専用のレベル検出手段は、上記実施形態のように、電子楽器が有する全ての発音チャンネルにて発生されている楽音信号の音量レベルを検出してもよいし、予約されている発音チャンネルにて発生されている楽音信号の音量レベルのみを検出するようにしてもよい。また、上記処理において、各発音チャンネルの音量制御回路ＡＭＰから出力されるエレメント信号の音量レベルではなく、音量変更回路ＡＥＧが音量制御回路ＡＭＰに供給する音量制御信号を用いてもよい。すなわち、レベル検出回路１７ｂ３は、制御回路ＡＭＰから出力されるエレメント信号の音量レベルを検出するのではなく、音量変更回路ＡＥＧが音量制御回路ＡＭＰに供給する音量制御信号を検出するようにしてもよい。そして、前記検出された音量制御信号を用いて、上記ダンプレベル到達の検出、トランケートする発音チャンネルの決定及び空きチャンネルの検索を行うようにしてもよい。
【０１０９】
また、音量制御回路ＡＭＰから出力されるエレメント信号の音量レベルを検出するレベル検出回路１７ｂ３に加えて、音量変更回路ＡＥＧが音量制御回路ＡＭＰに供給する音量制御信号を検出する音量制御信号検出回路を設けておき、上記ダンプレベル到達の検出、トランケートする発音チャンネルの決定及び空きチャンネルの検索の各処理に応じて、レベル検出回路１７ｂ３及び音量制御信号検出回路によってそれぞれ検出される音量レベル及び音量制御信号を組み合わせて用いてもよいし、適宜使い分けるようにしてもよい。
【符号の説明】
【０１１０】
１７ｂ…発音予約回路、１７ｂ２…グループフルフラグセット回路、１７ｂ３…レベル検出回路、１７ｂ４…ダンプレベル到達検出回路、１７ｂ６…発音開始指示回路、１７ｂ７…予約キャンセル回路、１７ｃ…楽音パラメータ入出力回路、１７ｃ２…初期パラメータ出力回路、１７ｃ３…通常パラメータ転送回路、１７ｃ４…通常パラメータ出力回路、１７ｃ５…第１メモリ、１７ｃ６…第２メモリ、１９ａ…ＣＰＵ、２５…発音チャンネル予約回路、ＣＬ…発音チャンネル情報リスト、ＮＬ…ノート情報リスト
【図１】
0005569048.tif 000002
【図２】
0005569048.tif 000003
【図３】
0005569048.tif 000004
【図４】
0005569048.tif 000005
【図５】
0005569048.tif 000006
【図６】
0005569048.tif 000007
【図７】
0005569048.tif 000008
【図８】
0005569048.tif 000009
【図９】
0005569048.tif 000010
【図１０】
0005569048.tif 000011
【図１１】
0005569048.tif 000012
【図１２】
0005569048.tif 000013
【図１３】
0005569048.tif 000014
【図１４】
0005569048.tif 000015
【図１５】
0005569048.tif 000016
【図１６】
0005569048.tif 000017
【図１７】
0005569048.tif 000018
【図１８】
0005569048.tif 000019