(57)【特許請求の範囲】
【請求項１】
ＣＰＵが、
１つの楽音が複数の周波数成分からなる複数の楽音であって、発音開始タイミングが異なり、しかも同時に発生される複数の楽音のうち、同じ周波数の成分音を判別手段に対して判別させ、
上記異なる発音開始タイミングうち、後のタイミングにおいて、この判別された同じ周波数の各成分音ごとの各エンベロープ波形につき、合成したエンベロープ波形を演算させ、これを１つのエンベロープ波形として出力手段に対して出力させ、
このエンベロープ波形が１つに合成された成分音を、割り当て手段に対して１つのチャンネルにまとめて割り当てさせることであって、このチャンネルは時分割処理により複数形成されるものであり、さらに上記割り当て手段に対して、このようにして成分音が割り当てられている上記複数のチャンネルから当該割り当てられている成分音のレベルが低い１つのチャンネルを選び出し、このチャンネルに割り当てられている成分音のエンベロープ波形を急速に減衰させ、この急速な減衰が達成されたとき、当該チャンネルに新たな成分音を割り当てさせることを特徴とする楽音のチャンネル割り当て方法。
【請求項２】
１つの楽音が複数の周波数成分からなる複数の楽音であって、発音開始タイミングが異なり、しかも同時に発生される複数の楽音のうち、同じ周波数の成分音を判別する手段と、
上記異なる発音開始タイミングうち、後のタイミングにおいて、この判別された同じ周波数の各成分音ごとの各エンベロープ波形につき、合成したエンベロープ波形を演算し、これを１つのエンベロープ波形として出力する手段と、
このエンベロープ波形が１つに合成された成分音を、１つのチャンネルにまとめて割り当て、このチャンネルは時分割処理により複数形成されるものであり、さらに、このようにして成分音が割り当てられている上記複数のチャンネルから当該割り当てられている成分音のレベルが低い１つのチャンネルを選び出し、このチャンネルに割り当てられている成分音のエンベロープ波形を急速に減衰させ、この急速な減衰が達成されたとき、当該チャンネルに新たな成分音を割り当てる手段とを備えたことを特徴とする楽音のチャンネル割り当て装置。
【請求項３】
上記各チャンネルに割り当てられている各成分音のレベルに基づいて、上記選び出されるチャンネルが決定され、
この各成分音のレベルは、当該成分音の周波数値が大きくなるほど、上記楽音の音色の変化に応じて、タッチが大きくなるほど、発音時間が長くなるほどまたは共鳴度が大きくなるほど、大きくなるように修正されることを特徴とする請求項２記載の楽音のチャンネル割り当て装置。
【請求項４】
上記各チャンネルに割り当てられている各成分音のレベルに基づいて、上記選び出されるチャンネルが決定され、
この各成分音のレベルは、当該成分音の周波数値が大きくなるほど、、上記楽音の音色の変化に応じて、タッチが大きくなるほど、、発音時間が長くなるほど、または共鳴度が大きくなるほど、小さくなるように修正されることを特徴とする請求項２記載の楽音のチャンネル割り当て装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽音のチャンネル割り当て装置または楽音のチャンネル割り当て方法に関し、特に同じ周波数の楽音の合成の制御に関する。
【０００２】
【従来技術】
従来、電子楽器のチャンネル割り当て装置では、同時に発音できる楽音数より多くない数の楽音生成チャンネルが時分割処理により構成され、新たな楽音の発生の指示があると、この楽音が上記複数のチャンネルの空きチャンネルに割り当てられ、これにより楽音が発生される。
【０００３】
この各チャンネルに割り当てられる楽音は、キーボードの各キーの操作に応じており、音高（周波数）が異なっている。この楽音の波形は同じであったり異なっていたりする。この楽音の波形が異なれば音色も異なる。
【０００４】
【発明が解決しようとする課題】
ところが、各チャンネルに割り当てられる複数の楽音の中には場合によって同じ音高（周波数）のものがあり、このような同じ周波数の楽音に別々のチャンネルを割り当てるのは無駄であった。また、それぞれ個別に生成されるエンベロープの楽音の中にも場合によって同じ音高（周波数）のものがあり、このような同じ周波数の楽音に別々のエンベロープを付加するのは無駄であった。
【０００５】
【課題を解決するための手段】
上記目的を達成するため、本発明では、同時に発生される複数の楽音のうち、同じ周波数の楽音を判別し、この判別された同じ周波数の楽音の発生量を合成して、１つのチャンネルにまとめて割り当て、各チャンネルに割り当てられている各楽音につき、チャンネル明け渡しの優先順位を決定し、この決定された優先順位に基づいてチャンネルを選び出し、このチャンネルに割り当てられている楽音を急速に減衰し、この急速な減衰が達成されたとき、当該チャンネルに新たな楽音を割り当てるようにした。
【０００６】
これにより、使用するチャンネルの数を減らしてチャンネルの有効利用を図ることができ、空きチャンネルがないとき新たな楽音にチャンネルを明け渡して（トランケート）して、新たな楽音に確実にチャンネルを割り当てることができるし、上記急速な減衰によって新たな楽音へのチャンネル割り当てを迅速に行うことができる。
【０００７】
【発明の実施の形態】
１．全体回路
図１は楽音制御装置または電子楽器の全体回路を示す。キーボード１１の各キーは、楽音の発音及び消音を指示するもので、キースキャン回路１２によってスキャンされ、キーオン、キーオフを示すデータが検出され、コントローラ２によってプログラム／データ記憶部４に書き込まれる。そして、それまでプログラム／データ記憶部４に記憶されていた各キーのオン、オフの状態を示すデータと比較され、各キーのオンイベント、オフイベントの判別が、コントローラ２によって行われる。
【０００８】
このキーボード１１の各キーには段差タッチスイッチが設けられ、各段差スイッチごとに上記スキャンが行われ、各段差スイッチの先頭のオン／オフごとにオンイベント／オフイベントの検出が行われる。この段差スイッチによってタッチの速さと強さを示す上記タッチ情報つまりイニシャルタッチデータとアフタタッチデータとが発生される。
【０００９】
このキーボード１１は、ローアキーボード、アッパーキーボード、ペダルキーボード等から成っており、それぞれにつき異なる音色の楽音、つまりエンベロープ波形の異なる楽音が発音される。そして、アッパーキーボードについては、１つのキーオンで２音色の楽音を同時に鳴らすことも可能である。なお、キーボード１１は、電子弦楽器、電子吹奏（管）楽器、電子打楽器（パッド等）、コンピュータのキーボード等で代用される。
【００１０】
パネルスイッチ群１３の各スイッチは、パネルスキャン回路１４によって、スキャンされる。このスキャンにより、各スイッチのオン、オフを示すデータが検出され、コントローラ２によってプログラム／データ記憶部４に書き込まれる。そして、それまでプログラム／データ記憶部４に記憶されていた各スイッチのオン、オフの状態を示すデータと比較され、各スイッチのオンイベント、オフイベントの判別が、コントローラ２によって行われる。
【００１１】
ミディインターフェース１５は、外部接続された電子楽器との間で楽音データの送受を行うためのインタフェースである。この楽音データはＭＩＤＩ（ミュージカルインスツルメントデジタルインタフェース）規格のもので、この楽音データに基づいた発音も行われる。
【００１２】
上記キーボード１１またはミディインターフェース１５には、自動演奏装置も含まれる。これらキーボード１１、パネルスイッチ群１３及びミディインターフェース１５から発生された演奏情報（楽音発生情報）は、楽音を発生させるための情報である。
【００１３】
上記演奏情報（楽音発生情報）は、音楽的ファクタ（因子）情報であり、音高（音域）情報（音高決定因子）、発音時間情報、演奏分野情報、発音数情報、共鳴度情報などである。発音時間情報は楽音の発音開始からの経過時間を示す。演奏分野情報は、演奏パート情報、楽音パート情報、楽器パート情報等を示し、例えばメロディ、伴奏、コード、ベース、リズム、ＭＩＤＩ等に対応したり、または上鍵盤、下鍵盤、足鍵盤、ソロ鍵盤、ＭＩＤＩ等に対応している。
【００１４】
上記音高情報はキーナンバデータＫＮとして取り込まれる。このキーナンバデータＫＮはオクターブデータ（音域データ）と音名データとからなる。演奏分野情報は、パートナンバデータＰＮとして取り込まれ、このパートナンバデータＰＮは各演奏エリアを識別するデータであって、発音操作された楽音がどの演奏エリアからのものかによって設定される。
【００１５】
発音時間情報は、トーンタイムデータＴＭとして取り込まれ、後述のフローチャートによって求められたり、キーオンイベントからのタイムカウントデータに基づいたり、またはエンベロープフェーズで代用される。この発音時間情報は特願平６−２１９３２４号明細書及び図面に発音開始からの経過時間情報として詳しく示される。
【００１６】
発音数情報は同時に発音している楽音の数を示し、例えばアサインメントメモリ４０のオン／オフデータが「１」の楽音の数に基づき、この数は特願平６−２４２８７８号の図９及び図１５、特願平６−２４７６８５５号の図８及び図１８、特願平６−２７６８５７号の図９及び図２０、特願平６−２７６８５８号の図９及び図２１のフローチャートに基づいて求められる。
【００１７】
共鳴度情報は、同時に発音している１つの楽音と他の楽音との共鳴度を示す。この１つの楽音の音高周波数と他の楽音の音高周波数とが１：２、２：３、３：４、４：５、５：６など小さい整数数倍比であれば共鳴度情報の値は大きく、９：８、１５：８、１５：１６、４５：３２、６４：４５など大きい整数数倍比であれば共鳴度情報の値は小さくなる。この共鳴度情報は特願平１−３１４８１８号の第７図の共鳴相関テーブル５３または共鳴比率テーブル５４から読み出される。
【００１８】
さらに、上記パネルスイッチ群１３には各種スイッチが設けられ、この各種スイッチは音色タブレット、エフェクトスイッチ、リズムスイッチ、ペダル、ホイール、レバー、ダイヤル、ハンドル、タッチスイッチ等であって楽器用のものである。このペダルはダンパーペダル、サスティンペダル、ミュートペダル、ソフトペダル等である。
【００１９】
この各種スイッチより、楽音制御情報が発生され、この楽音制御情報は発生された楽音を制御する情報であって音楽的ファクタ（因子）情報であり、音色情報（音色決定因子）、タッチ情報（発音指示操作の速さ／強さ）、発音数情報、共鳴度情報、エフェクト情報、リズム情報、音像（ステレオ）情報、クオンタイズ情報、変調情報、テンポ情報、音量情報、エンベロープ情報等である。これら音楽的ファクタ情報も上記演奏情報（楽音情報）に合体され、上記各種スイッチより入力されるほか、上記自動演奏情報に合体されたり、上記インターフェースで送受される演奏情報に合体される。
【００２０】
上記音色情報は、鍵盤楽器（ピアノ等）、管楽器（フルート等）、弦楽器（バイオリン等）、打楽器（ドラム等）の楽器（発音媒体／発音手段）の種類等に対応しており、トーンナンバデータＴＮとして取り込まれる。上記エンベロープ情報は、エンベロープレベルＥＬ、エンベロープタイムＥＴ、エンベロープフェーズＥＦなどである。
【００２１】
このような音楽的ファクタ情報は、コントローラ２へ送られ、後述の各種信号、データ、パラメータの切り換えが行われ、楽音の内容が決定される。上記演奏情報（楽音発生情報）及び楽音制御情報はコントローラ２で処理され、各種データが楽音信号発生部５へ送られ、楽音波形信号ＭＷが発生される。コントローラ２はＣＰＵ、ＲＯＭ及びＲＡＭなどからなっている。
【００２２】
プログラム／データ記憶部４（内部記憶媒体／手段）はＲＯＭまたは書き込み可能なＲＡＭ、フラッシュメモリまたはＥＥＰＲＯＭ等の記憶装置からなり、光ディスクまたは磁気ディスク等の情報記憶部７（外部記憶媒体／手段）に記憶されるコンピュータのプログラムが書き写され記憶される（インストール／転送される）。またプログラム／データ記憶部４には外部の電子楽器またはコンピュータから上記ＭＩＤＩ装置または送受信装置を介して送信されるプログラムも記憶される（インストール／転送される）。このプログラムの記憶媒体は通信媒体も含む。
【００２３】
このインストール（転送／複写）は、情報記憶部７が本楽音生成装置にセットされたとき、または本楽音生成装置の電源が投入されたとき自動的に実行され、または操作者による操作によってインストールされる。上記プログラムは、コントローラ２が各種処理を行うための後述するフローチャートに応じたプログラムである。
【００２４】
なお、本装置に予め別のオペレーティングシステム、システムプログラム（ＯＳ）、その他のプログラムが記憶され、上記プログラムはこれらのＯＳ、その他のプログラムとともに実行されてもよい。このプログラムは本装置（コンピュータ本体）にインストールされ実行されたときに、別のプログラムとともにまたは単独で請求項（クレーム）に記載された処理・機能を実行させることができればよい。
【００２５】
また、このプログラムの一部又は全部が本装置以外の１つ以上の別装置に記憶されて実行され、本装置と別装置との間には通信手段を介して、これから処理するデータ／既に処理されたデータ／プログラムが送受され、本装置及び別装置全体として、本発明が実行されてもよい。
【００２６】
このプログラム／データ記憶部４には、上述した音楽的ファクタ情報、上述した各種データ及びその他の各種データも記憶される。この各種データには時分割処理に必要なデータや時分割チャンネルへの割当のためデータ等も含まれる。
【００２７】
楽音信号発生部５では、所定長の楽音波形信号ＭＷが繰り返し発生されサウンドシステム６から発音出力される。上記音高情報に応じて、この繰り返し発生される楽音波形信号ＭＷの発生速度は変化される。また上記音高色情報などの音楽的ファクタ情報に応じて、この繰り返し発生される楽音波形信号ＭＷの波形形状は切り換えられる。この楽音信号発生部５は時分割処理によって複数の楽音信号が同時に生成されポリフォニックに発音される。
【００２８】
タイミング発生部３からは、楽音生成装置の全回路の同期を取るためのタイミングコントロール信号が各回路に出力される。このタイミングコントロール信号は、各周期のクロック信号のほか、これらのクロック信号を論理積または論理和した信号、時分割処理のチャンネル分割時間の周期を持つ信号、チャンネルナンバデータＣＨＮｏ、タイムカウントデータＴＩなどを含む。このタイムカウントデータＴＩは、絶対時間つまり時間の経過を示し、このタイムカウントデータＴＩのオーバフローリセットから次のオーバフローリセットまでの周期は、各楽音のうち最も長い発音時間より長く、場合によって数倍に設定される。
【００２９】
２．成分音テーブル２０
図２はプログラム／データ記憶部４内の成分音テーブル２０を示す。この成分音テーブル２０には、各音色（トーンナンバデータＴＮ）の楽音を構成する各成分音のデータが記憶され、対応する成分音のデータがトーンナンバデータＴＮから変換され読み出される。この成分音のデータは、複数の周波数ナンバ比データＦＮＲと複数のエンベロープデータからなっている。
【００３０】
周波数ナンバ比データＦＮＲは、音高に応じた基本周波数に対する各成分音の周波数の比を示す。指定された音高周波数に対して、この周波数ナンバ比データＦＮＲが乗算され、各成分音の周波数が求められる。基本周波数の周波数ナンバ比データＦＮＲは「１」であるから省略されてもよい。
【００３１】
エンベロープデータは、上記各成分音ごとのエンベロープを示す。この各エンベロープデータは、各エンベロープフェーズごとのエンベロープスピードデータＥＳ及びエンベロープタイムデータＥＴからなっている。エンベロープスピードデータＥＳはエンベロープのデジタル演算１周期当たりの演算のステップ値を示す。エンベロープタイムデータＥＴは各フェーズごとのエンベロープ演算時間（発生時間、発音時間）、つまり上記デジタル演算の各フェーズのごとの演算回数を示す。このエンベロープスピードデータＥＳ及びエンベロープタイムデータＥＴによって演算されるエンベロープ波形の振幅は、各成分音（各楽音）の発生量を示す。
【００３２】
この成分音の数は１つの音色につき複数であるが、場合によって１つもある。この成分音は１つの楽音につき合成されて出力される。この合成割合は上記エンベロープデータに応じて変化する。もしこのエンベロープデータによるエンベロープ演算レベルが「０」であれば、当該成分音の割合は「０」となる。この各成分音のそれぞれに１つずつチャンネルが割り当てられ、個別にエンベロープ制御され、合成されて出力される。
【００３３】
３．アサインメントメモリ４０
図３は、楽音信号発生部５のアサインメントメモリ４０を示す。アサインメントメモリ４０には、複数（１６、３２または６４等）のチャンネルメモリエリアが形成されており、上記楽音信号発生部５に形成された複数の楽音生成チャンネルに割り当てられた成分音に関するデータが記憶される。
【００３４】
これら各チャンネルメモリエリアには、チャンネルが割当られた成分音の周波数ナンバデータＦＮ、キーナンバデータＫＮ及びハイリリースフラグＨＲＦ、上記エンベロープスピードデータＥＳ並びにエンベロープタイムデータＥＴ、エンベロープフェーズデータＥＦが記憶される。なお、場合によって、トーンナンバデータＴＮ、タッチデータＴＣ、トーンタイムデータＴＭ、パートナンバデータＰＮ、上記共鳴度情報、オン／オフデータ等も記憶される。
【００３５】
オン／オフデータは割り当られ発音する楽音（成分音）がキーオン中または発音中（“１”）かキーオフ中または消音中（“０”）かを示す。周波数ナンバデータＦＮは割り当られ発音する成分音の周波数値を示し、上記キーナンバデータＫＮから変換され、さらに上記周波数ナンバ比データＦＮＲが乗算される。上記プログラム／データ記憶部４には、この変換のためのテーブル（デコーダ）が設けられている。
【００３６】
ハイリリースフラグＨＲＦは、当該チャンネルの楽音が新たな楽音にチャンネルを明け渡すことが決定されており、現在割り当て中の楽音が急速に減衰されていることを示す。このハイリリースフラグＨＲＦはチャンネル明け渡しが決定されてセットされ、当該楽音がレベル「０」または所定未満になるとクリアされる。
【００３７】
上記エンベロープスピードデータＥＳ及びエンベロープタイムデータＥＴは上述したとおりである。このエンベロープスピードデータＥＳ及びエンベロープタイムデータＥＴは、同じ周波数の新たな成分音が当該チャンネルに割り当てられるたびに書き換えられ、この新たな成分音を合成したエンベロープのエンベロープスピードデータＥＳ及びエンベロープタイムデータＥＴに置き換えられる。
【００３８】
エンベロープフェーズデータＥＦは図８の（１）（２）（３）の合成前のエンベロープまたは合成後のエンベロープの各部を示す。フェーズカウンタ５０からのカウント値が取り込まれ、当該エンベロープフェーズデータＥＦとしてアサインメントメモリ４０に記憶される。
【００３９】
キーナンバデータＫＮは割り当られ発音する楽音の音高（周波数）を示し、上記音高情報に応じて決定される。このキーナンバデータＫＮは、１つの楽音を構成する各成分音すべてについて記憶され、オンイベントがあって当該成分音がチャンネル割り当てされ合成されるたびに、キーナンバデータＫＮがアサインメントメモリ４０の該当チャンネルメモリエリアに付加記憶され、オフイベントのたびに対応するキーナンバデータＫＮは消去される。キーナンバデータＫＮの上位データは音域またはオクターブを示し、下位データは音名を示す。
【００４０】
この各キーナンバデータＫＮに対応して当該成分音のエンベロープのリリースのエンベロープスピードデータＥＳ及びエンベロープタイムデータＥＴが記憶される。このリリースのエンベロープスピードデータＥＳ及びエンベロープタイムデータＥＴが１つの成分音で複数あれば、この複数全て記憶される。
【００４１】
トーンナンバデータＴＮは、割り当てられ発音する楽音の音色を示し、上記音色情報に応じて決定される。このトーンナンバデータＴＮが異なれば音色も異なり、この楽音の楽音波形も異なる。タッチデータＴＣは、発音操作の速さまたは強さを示し、上記段差スイッチの操作に基づいて求められ、または上記タッチ情報に応じて決定される。パートナンバデータＰＮは、上述したように各演奏エリアを示し、発音操作された楽音がどの演奏エリアからのものかによって設定される。トーンタイムデータＴＭは、キーオンイベントからの経過時間を示す。
【００４２】
これら各チャンネルメモリエリアの各データは、オンタイミング及び／又はオフタイミングに書き込まれ、各チャンネルタイミングごとに書き換えられたり、読み出されたりして、上記楽音信号発生部５で処理される。このアサインメントメモリ４０は、楽音信号発生部５の中ではなく、プログラム／データ記憶部４またはコントローラ２の中に設けてもよい。
【００４３】
上記時分割処理によって形成されるチャンネル、すなわち複数の楽音（成分音）を並行して発生するための複数の楽音発生システムへの各楽音の割り当て方法またはトランケート方法は、例えば特願平１−４２２９８号、特願平１−３０５８１８号、特願平１−３１２１７５号、特願平２−２０８９１７８号、特願平２−４０９５７７号、特願平２−４０９５７８号に示された方法が使われる。
【００４４】
４．楽音信号発生部５
図４は上記楽音信号発生部５を示す。上記アサインメントメモリ４０の各チャンネルの周波数ナンバデータＦＮ等は波形読み出し部４１へ送られ、楽音波形データＭＷが周波数ナンバデータＦＮに応じた速度（音高）で読み出される。読み出された楽音波形データＭＷは乗算器４３でエンベロープデータＥＮが乗算合成され、累算器４４で全チャンネルの楽音波形データが累算合成され、上記サウンドシステム６で発音される。
【００４５】
この楽音波形データＭＷはサイン波１種類だけである。したがって、１つの楽音につき周波数の異なる複数のサイン波が高調波合成されて出力される。よって各サイン波の振幅や周波数が変化すれば、合成される楽音の波形も変化し音色も変化する。このサイン波はメモリに記憶されるのではなく、三角関数演算によって上記トーンタイムデータＴＭまたは上記タイムカウントデータＴＩから変換されてもよい。
【００４６】
なお、この楽音波形データＭＷはサイン波以外の複雑な波形でもよいし、音色、パート、音高（音域）、タッチ、発音時間ごとに異なる波形が記憶され選択されてもよい。この場合、トーンナンバデータＴＮ、パートナンバデータＰＮ、タッチデータＴＣ等は、波形読み出し部４１へ送られ、波形メモリ４２からトーンナンバデータＴＮ、パートナンバデータＰＮ、タッチデータＴＣに応じた楽音波形データＭＷが選択され、この選択された楽音波形データＭＷが周波数ナンバデータＦＮに応じた速度（音高）で読み出される。
【００４７】
上記アサインメントメモリ４０の各チャンネルのエンベロープスピードデータＥＳは、加算器４６、エンベロープ演算メモリ４８で時分割に順次累算され、エンベロープ演算データＥＮが演算され、上記乗算器４３へ上記エンベロープデータＥＮとして送られる。エンベロープ演算メモリ４８は時分割チャンネル数に応じたエリアを有し、各チャンネルのエンベロープ演算データＥＮが記憶され、各チャンネルごとにエンベロープが演算される。
【００４８】
このエンベロープ演算メモリ４８は、上記チャンネルナンバデータＣＨＮｏによってアドレス指定され、この指定されたアドレスのみが書き込み／読み出しされたりリセットされたりする。このエンベロープ演算メモリ４８の各チャンネルエリアはオフイベント信号または／及びオンイベント信号によって個別にリセット（クリア）される。
【００４９】
上記アサインメントメモリ４０の各チャンネルのエンベロープタイムデータＥＴは、セレクタ４７、エンベロープタイムメモリ４９及び加算器５１で順次「−１」され、「０」になるとフェーズ終了信号がナンドゲート群５２で検出され出力される。このフェーズ終了信号はエンベロープの各フェーズの終了を示す。
【００５０】
このフェーズ終了信号はフェーズカウンタ５０へ入力され、インクリメントすなわち＋１される。このフェーズカウンタ５０では、各チャンネルのエンベロープのフェーズがカウントされる。このフェーズカウンタ５０は、上記時分割チャンネル数に応じたカウンタが設けられ、上記チャンネルナンバデータＣＨＮｏによって指定されるカウンタのみがイネーブルとされ、この指定されたカウンタのみがインクリメントされたりリセットされたりする。
【００５１】
上記フェーズカウンタ５０は、オンイベント及びオフイベント時にコントローラ２によって、上記チャンネルナンバデータＣＨＮｏによって指定されるカウンタのみがリセット（クリア）される。このとき上述したようにエンベロープスピードデータＥＳ及びエンベロープタイムデータＥＴの合成／書き換えが行われる。
【００５２】
このフェーズカウンタ５０のエンベロープフェーズデータＥＦは上記アサインメントメモリ４０にアドレスデータとして送られ、各チャンネルの中の各フェーズごとのエンベロープスピードデータＥＳ及びエンベロープタイムデータＥＴが読み出されたり書き込まれたりする。アサインメントメモリ４０は、上記チャンネルナンバデータＣＨＮｏによってアドレス指定され、この指定されたアドレスのみが書き込み／読み出しされたクリアされたりする。このアサインメントメモリ４０の各チャンネルエリアはオフイベント信号または／及びオンイベント信号によって個別にリセット（クリア）される。
【００５３】
上記フェーズ終了信号は上記セレクタ４７に送られて、上記エンベロープタイムデータＥＴが次のフェーズのエンベロープタイムデータＥＴに切り換えられる。上記エンベロープタイムメモリ４９は、上記チャンネルナンバデータＣＨＮｏによってアドレス指定され、この指定されたアドレスのみが書き込み／読み出しされたりリセットされたりする。このエンベロープタイムメモリ４９の各チャンネルエリアはオフイベント信号（オンイベント信号）によって個別にリセット（クリア）される。
【００５４】
上記エンベロープ演算メモリ４８からの各チャンネルのエンベロープ演算データＥＮは乗算器１３１でチャンネル割り当てのための重み付けが行われ、修正エンベロープメモリ１３２に書き込まれる。修正エンベロープメモリ１３２は時分割チャンネル数に応じたエリアを有し、各チャンネルの修正エンベロープデータＭＥＮが記憶される。
【００５５】
また、この重み付けされ修正された各修正エンベロープデータＭＥＮは、第１最小レベル検出回路１４１、第２最小レベル検出回路１４２及び第３最小レベル検出回路１４３で対比され、各チャンネルのうち１番目、２番目及び３番目に楽音のレベルが小さいチャンネルナンバが検出される。検出された第１最小チャンネルナンバ１ＭＣＨ、第２最小チャンネルナンバ２ＭＣＨ及び第３最小チャンネルナンバ３ＭＣＨは最小チャンネルナンバメモリ１３４にストアされる。この各最小チャンネルナンバ１ＭＣＨ、２ＭＣＨ及び３ＭＣＨは、チャンネル明け渡し（トランケート）の優先順位を示す。
【００５６】
この第１最小レベル検出回路１４１、第２最小レベル検出回路１４２及び第３最小レベル検出回路１４３では、上記修正エンベロープデータＭＥＮが「０」のチャンネルも検出され、この検出データが空きチャンネルフラグＥＣＦとして、上記各チャンネルナンバ１ＭＣＨ、２ＭＣＨ及び３ＭＣＨとともに、上記最小チャンネルナンバメモリ１３４にストアされる。
【００５７】
この最小チャンネルナンバメモリ１３４は３つのラッチからなり、上記３つの最小レベル検出回路１４１、１４２及び１４３からの３つの最小チャンネルナンバ１ＭＣＨ、２ＭＣＨ並びに３ＭＣＨ及び３つの空きチャンネルフラグＥＣＦはこの３つのラッチにそれぞれストアされる。この最小チャンネルナンバメモリ１３４及び修正エンベロープメモリ１３２は、１つの時分割チャンネル時間の前半で書き込みされ、後半で読み出しされる。
【００５８】
上記アサインメントメモリ４０から読み出される各チャンネルの周波数ナンバデータＦＮは重み付けメモリ１３３へ送られて、重み付けデータＷＴが読み出され上記乗算器１３１へ送られ、チャンネル明け渡し（トランケート）の優先順位が重み付けされる。この重み付けメモリ１３３は、図１２（１）に示すように各周波数ナンバデータＦＮに対して各重み付けデータＷＴが記憶されている。楽音周波数が低いほどこの重み付けデータＷＴは大きくなっており、低音の方がチャンネル割り当ての優先度が高くなっている。
【００５９】
なお、この重み付けデータＷＴは図１２（２）に示す特性でもよい。この特性（２）は楽音周波数が１０００Ｈｚから４０００Ｈｚ当たりの中音付近の重み付けが大きくなり、低音と高音で重み付けが小さくなっている。この特性（２）は人間の等ラウドネス曲線または最低可聴曲線に沿ったものであり、人間の聴覚に合致したチャンネル割り当ての優先特性を実現できる。これは同じ周波数の各成分音を合成してチャンネル割り当てを行っている本実施例でしかできない。
【００６０】
上記最低可聴曲線は人間が聴くことのできる最低の音の強さ（デシベル、レベル）（最低可聴値）の周波数（音高）に応じた特性を表し、上記等ラウドネス曲線は人間が同じ強さに聴こえる音の強さ（デシベル、レベル）の周波数（音高）に応じた特性を表す。なお、図１２（２）の特性では上記等ラウドネス曲線または最低可聴曲線が逆特性にされたので、中音域の数値が大きく高音域と低音域の数値が小さくなっている。
【００６１】
また、この重み付けデータＷＴは逆に低音の方がチャンネル明け渡し（トランケート）の頻度（可能性）が高くなってもよい。また、この重み付けメモリ１３３及び乗算器１３１は省略され、チャンネル割り当ての優先度が音楽的性質によって重み付けされなくてもよい。これにより、各チャンネルの合成成分音のレベルが小さいほどチャンネルトランケートの可能性（頻度）が高くなる。
【００６２】
さらに、この重み付けメモリ１３３には、他の音楽的ファクタ情報が代わりに入力されてもよい。例えば上述のキーナンバデータＫＮ、トーンナンバデータＴＮ、パートナンバデータＰＮ、タッチデータＴＣ、トーンタイムデータＴＭ、共鳴度情報などである。これにより、音域（音高）、音色、演奏分野、タッチ、発音時間、共鳴度などの音楽的性質にも応じてチャンネル割り当ての優先度が変化修正（決定制御）される。
【００６３】
これにより、例えばトーン（音色）ナンバ、タッチデータ、共鳴度が大きいほど、音高（音域）、パートナンバ（ＭＩＤＩチャンネルナンバ）または発音時間が小さいほど、チャンネル割り当ての優先度が高くなり、トランケートの可能性（頻度）が低くなる。なお、これらの各データが複数加算されて上記重み付けメモリ１３３へ送られてもよい。
【００６４】
５．各最小レベル検出回路１４１、１４２及び１４３
図１３は上記第１最小レベル検出回路１４１、第２最小レベル検出回路１４２及び第３最小レベル検出回路１４３を示す。上記修正エンベロープメモリ１３２からの修正エンベロープデータＭＥＮは、第１最小レベル検出回路１４１のコンパレータ１５１に与えられる。このコンパレータ１５１には、それまでに検出して第１レベルラッチ１７１に記憶してある最小の修正エンベロープデータＭＥＮも与えられる。この最小の修正エンベロープデータＭＥＮより上記新たな修正エンベロープデータＭＥＮが小さければ、コンパレータ１５１より検出信号が出力され、この信号がアンドゲート１５２を介してラッチ信号として、上記第１レベルラッチ１７１に与えられ、上記新たな修正エンベロープデータＭＥＮがストアされる。
【００６５】
また、このラッチ信号は、第１チャンネルナンバラッチ１８１にも与えられ、上記新たな修正エンベロープデータＭＥＮに係るチャンネルナンバがストアされる。このチャンネルナンバは、上記タイミング発生部３からの上記チャンネルナンバデータＣＨＮｏである。このようにして、全チャンネル分の分割タイムが経過すると、修正エンベロープデータＭＥＮが最も小さいチャンネルのナンバが第１チャンネルナンバラッチ１８１にストアされ、この最も小さい修正エンベロープデータＭＥＮの値が第１レベルラッチ１７１にストアされる。
【００６６】
さらに、上記各チャンネルの修正エンベロープデータＭＥＮの各ビットはナンドゲート群１９１に入力されて、全ビットが「０」で修正エンベロープデータＭＥＮのレベルが「０」ときこのナンドゲート群１９１より上記空きチャンネルフラグＥＣＦの信号が出力され、第１フラグラッチ１９２にストアされる。上記ラッチ信号は、この第１フラグラッチ１９２に与えられ、当該タイミングでこのストアが行われる。
【００６７】
上記アンドゲート１５２には、図１４に示すクロック信号ＣＫ０が与えられており、１つのチャンネルの分割タイムの前半でコンパレータ１５１で比較され、後半で上記第１チャンネルナンバラッチ１８１、第１レベルラッチ１７１及び第１フラグラッチ１９２へストアされる。
【００６８】
図１４に示すように、全チャンネル分の分割タイムが経過すると、次の全チャンネル分の分割タイムの先頭でシェアリング信号ＳＹ１がラッチ信号として、第２レベルラッチ１７２、第２チャンネルナンバラッチ１８２及び第２フラグラッチ１９３に与えられ、最も小さい修正エンベロープデータＭＥＮが第１レベルラッチ１７１から第２レベルラッチ１７２に転送され、第１チャンネルナンバラッチ１８１のチャンネルナンバが第２チャンネルナンバラッチ８２に転送され、第１フラグラッチ１９２の空きチャンネルフラグＥＣＦが第２フラグラッチ１９３に転送されて、最小チャンネルメモリ１３４に書き込まれる。
【００６９】
このシェアリング信号ＳＹ１は、上記第１レベルラッチ１７１にも与えられて、同ラッチ１７１のラッチデータが最大値「１１…１」にリセットされる。上述のラッチ１８１、１８２、１７１、１７２、１９２及び１９３はＲ−Ｓタイプである。
【００７０】
上記第１最小レベル検出回路１４１の第２チャンネルナンバラッチ１８２からのチャンネルナンバデータは第２最小レベル検出回路１４２の一致判別回路１５３に与えられる。この一致判別回路１５３には、上記第１最小レベル検出回路１４１の第１チャンネルナンバラッチ１８１に与えられているものと同じチャンネルナンバも与えられている。両データが一致したとき、一致判別回路１５３の出力信号はローレベルとなり、アンドゲート１５６が閉成される。このアンドゲート１５６を介して、第２最小レベル検出回路１４２のコンパレータ１５４からの比較結果信号が第１チャンネルナンバラッチ１８３及び第１レベルラッチ１７３に与えられている。
【００７１】
従って、第１最小レベル検出回路１４１で検出された第１最小修正エンベロープデータ１ＭＥＮ及び第１最小チャンネルナンバデータ１ＭＣＨが、第２最小レベル検出回路１４１に与えられる時には、このデータのストアが禁止される。この結果、第２最小レベル検出回路１４１では、２番目に小さい修正エンベロープデータＭＥＮ及びチャンネルナンバと空きチャンネルフラグＥＣＦが検出される。上記一致判別回路１５３は、イクスクルシブオアゲート群とオアゲートとよりなり、２つのチャンネルナンバデータの各ビットが各イクスクルシブオアゲートに与えられて、各ビットデータの相違が判別され、１つのビットでも一致しないときには、ハイレベル信号がオアゲートを介して出力される。
【００７２】
この第２最小レベル検出回路１４２のコンパレータ１５４、アンドゲート１５５、第１チャンネルナンバラッチ１８３、第２チャンネルナンバラッチ１８４、第１レベルラッチ１７３、第２レベルラッチ１７４、ナンドゲート群１９４、第１フラグラッチ１９５及び第２フラグラッチ１９６の構成及び動作は、上記第１最小レベル検出回路１４１のコンパレータ１５１、アンドゲート１５２、第１チャンネルナンバラッチ１８１、第２チャンネルナンバラッチ１８２、第１レベルラッチ１７１、第２レベルラッチ１７２、ナンドゲート群１９１、第１フラグラッチ１９２及び第２フラグラッチ１９３と同じである。
【００７３】
そして、第３最小レベル検出回路１４３のコンパレータ１５９、アンドゲート１６０、第１チャンネルナンバラッチ１８５、第２チャンネルナンバラッチ１８６、第１レベルラッチ１７５、第２レベルラッチ１７６、アンドゲート１６１、一致判別回路１５７、ナンドゲート群１９７、第１フラグラッチ１９８及び第２フラグラッチ１９９の構成及び動作は、上記第２最小レベル検出回路１４２のコンパレータ１５４、アンドゲート１５５、第１チャンネルナンバラッチ１８３、第２チャンネルナンバラッチ１８５、第１レベルラッチ１７３、第２レベルラッチ１７５、アンドゲート１５６、一致判別回路１５３、ナンドゲート群１９４、第１フラグラッチ１９５及び第２フラグラッチ１９６と同じである。
【００７４】
上記第２最小レベル検出回路１４２の一致判別回路１５３からの信号と第３最小レベル検出回路１４３の一致判別回路１５７からの信号とは、アンドゲート１５８に与えられ、このアンドゲート１５８の出力信号が、アンドゲート１６１に開成信号として与えられる。このアンドゲート１６１を介して、第３最小レベル検出回路１４３のコンパレータ１５９からの比較結果信号が第１チャンネルナンバラッチ１８５及び第１レベルラッチ１７５に与えられている。
【００７５】
従って、第１最小レベル検出回路１４１で検出された第１最小修正エンベロープデータ１ＭＥＮ並びに第１最小チャンネルナンバ１ＭＣＨ及び第２最小レベル検出回路１４２で検出された第２最小修正エンベロープデータ２ＭＥＮ並びに第２最小チャンネルナンバ２ＭＣＨが、第３最小レベル検出回路１４３に与えられる時には、これらデータのセットが禁止される。この結果、第３最小レベル検出回路１４３では、３番目に小さい第３修正エンベロープデータ３ＭＥＮ及び第３最小チャンネルナンバ３ＭＣＨと空きチャンネルフラグＥＣＦが検出されることになる。
【００７６】
同様にして、第４最小レベル検出回路、第５最小レベル検出回路……が設けられ、４番目に小さい第４修正エンベロープデータ４ＭＥＮ及び第４最小チャンネルナンバ４ＭＣＨと空きチャンネルフラグＥＣＦ、５番目に小さい第５最小修正エンベロープデータ５ＭＥＮ及び第５最小チャンネルナンバ５ＭＣＨと空きチャンネルフラグＥＣＦ、…、…が検出されてもよい。
【００７７】
これら空きチャンネルフラグＥＣＦは、検出された各チャンネルの楽音の減衰が達成完了されて、レベルが「０」であることを示す。したがって、このチャンネルの楽音の急速減衰（ハイリリース）は不要であり、直ちに新たな楽音が割り当てられる。
【００７８】
また、チャンネルに割り当てられている楽音が消音してエンベロープレベルが「０」であれば、当該チャンネルが第１最小チャンネルナンバ１ＭＣＨとなる。割り当て楽音のエンベロープレベルが「０」のチャンネルが複数であれば、先に「０」になったチャンネルが第１最小チャンネルナンバ１ＭＣＨとなり、次に「０」になったチャンネルが第２最小チャンネルナンバ２ＭＣＨとなる。
【００７９】
この検出された最小チャンネルナンバメモリ１３４に記憶された各最小チャンネルナンバ１ＭＣＨ、２ＭＣＨ及び３ＭＣＨと各空きチャンネルフラグＥＣＦは、上記コントローラ（ＣＰＵ）２に送られ、新たなチャンネル割り当てに利用される。上記各第２レベルラッチ１７２、１７４及び１７６より出力される、検出された修正エンベロープデータＭＥＮも、最小チャンネル七メモリ１３４に、各最小チャンネルナンバ１ＭＣＨ、２ＭＣＨ、３ＭＣＨとともに記憶されてもよい。
【００８０】
なお、空きチャンネルフラグＥＣＦは、エンベロープ演算データＥＮに基づいて検出されてもよい。この場合、各最小レベル検出回路１４１、１４２及び１４３のナンドゲート群１９１、１９４及び１９７には、修正エンベロープメモリ１３２からの修正エンベロープデータＭＥＮではなく、エンベロープ演算メモリ４８からのエンベロープ演算データＥＮが送り込まれる。
【００８１】
また、上記空きチャンネルフラグＥＣＦは、修正エンベロープデータＭＥＮが「０」ではなく、所定値未満で検出されてもよい。この場合、修正エンベロープデータＭＥＮの一部の上位ビット群のみがナンドゲート群１９１、１９４及び１９７に入力される。
【００８２】
６．処理全体
図５はコントローラ（ＣＰＵ）２によって実行される処理全体のフローチャートを示す。この処理全体は本楽音生成装置の電源オンによって開始され、電源オフまで繰り返し実行される。
【００８３】
まず、プログラム／データ記憶部４の初期化など種々のイニシャライズ処理が行われ（ステップ０１）、上記キーボード１１またはミディインターフェース１５での手動演奏または自動演奏に基づき、発音処理が行われる（ステップ０３）。
【００８４】
この発音処理では、空きチャンネルがサーチされ、サーチされた空きチャンネルにオンイベントに係る楽音が割り当てられる。この楽音の内容は、上記キーボード１１またはミディインターフェース１５からの上記演奏情報（楽音発生情報）、楽音制御情報の音楽的ファクタ情報及びこのときプログラム／データ記憶部４に既に記憶されている音楽的ファクタ情報によって決定される。
【００８５】
この場合、サーチされた空きチャンネルのアサインメントメモリ４０のエリアに「１」のオン／オフデータ、周波数ナンバデータＦＮ、エンベロープスピードデータＥＳ、エンベロープタイムデータＥＬ、「０」のエンベロープフェーズデータＥＦなどが書き込まれる。場合によって、トーンナンバデータＴＮ、タッチデータＴＣ、パートナンバデータＰＮ、「０」のトーンタイムデータＴＭも書き込まれる。
【００８６】
次いで、上記キーボード１１またはミディインターフェース１５での手動演奏または自動演奏に基づき、消音（減衰）処理が行われる（ステップ０５）。この消音（減衰）処理では、オフイベント（キーオフイベント、消音イベント）に係る楽音が割り当てられているチャンネルがサーチされ当該楽音が減衰され消音される。この場合、キーオフイベントに係る楽音のエンベロープフェーズがリリースとなり、エンベロープレベルが次第に「０」になる。
【００８７】
さらに、上記ミディインターフェース１５またはパネルスイッチ群１３の各種スイッチの操作があれば、このスイッチに対応する音楽的ファクタ情報が取り込まれ、プログラム／データ記憶部４に記憶され、音楽的ファクタ情報が変更される（ステップ０６）。この後、その他の処理が実行され（ステップ０７）、上記ステップ０２からこのステップ０７までの処理が繰り返される。
【００８８】
７．発音処理（ステップ０３）
図６は上記ステップ０３の発音処理のフローチャートを示す。まずアサインメントメモリ４０の各チャンネルエリアにハイリリースフラグＨＲＦがセットされていれば（ステップ５１）、このチャンネルにつき、最小チャンネルメモリ１３４の中の当該チャンネルナンバに上記空きチャンネルフラグＥＣＦが立てられているとき（ステップ５２）、プログラム／データ記憶部４（ＲＡＭ）に一時記憶されていた当該チャンネルのエンベロープスピードデータＥＳ、エンベロープタイムデータＥＴ、周波数ナンバデータＦＮなどの楽音データがアサインメントメモリ４０の当該チャンネルエリアに書き込まれ（ステップ５３）、このチャンネルエリアのハイリリースフラグＨＲＦがクリアされる（ステップ５４）。
【００８９】
これにより、急速減衰（ハイリリース）された楽音がレベル「０」になったとき、この楽音のチャンネルが明け渡され、新たな楽音に当該チャンネルが割り当てられる。このステップ５３で書き込まれる楽音データは後述するステップ５７のハイリリース処理で準備される。  そして、オンイベントがあると（ステップ１１）、上記成分音テーブル２０に基づいてこのオンイベントに係る楽音のトーンナンバデータＴＮに対応する周波数ナンバ比データＦＮＲ及びエンベロープスピードデータＥＳ並びにエンベロープタイムデータＥＴが読み出される（ステップ１２）。
【００９０】
次いで、このオンイベントに係る楽音のキーナンバデータＫＮに対応した周波数ナンバデータＦＮに、この読み出された各周波数ナンバ比データＦＮＲが乗算され、各成分音の周波数ナンバデータＦＮが求められる（ステップ１３）。そして、アサインメントメモリ４０内の既に割り当てられている各成分音の周波数ナンバデータＦＮと、この求められた各周波数ナンバデータＦＮとが一致していれば（ステップ１４）、このチャンネルの各フェーズのエンベロープスピードデータＥＳ及びエンベロープタイムデータＥＴが合成エンベロープのものに書き換えられ、キーナンバデータＫＮが付加記憶される（ステップ１５）。この合成エンベロープでは、既にこのチャンネルに割り当てられている単独成分音または合成成分音のエンベロープに、この新たな成分音のエンベロープが加算合成される。このステップ１５のエンベロープ合成処理は後述する。
【００９１】
また、既に割り当てられている各成分音の周波数ナンバデータＦＮと、求められた各周波数ナンバデータＦＮとが一致していなければ（ステップ１４）、空きチャンネルがサーチされる（ステップ１６）。この空きチャンネルのナンバは、上記最小チャンネルメモリ１３４に記憶されている第１最小チャンネルナンバ１ＭＣＨである。この第１最小チャンネルナンバ１ＭＣＨに空きチャンネルフラグＥＣＦが付加されていれば（ステップ５６）、この第１最小チャンネルナンバ１ＭＣＨのアサインメントメモリ４０のエリアに上記成分音の周波数ナンバデータＦＮ、キーナンバデータＫＮ及びエンベロープスピードデータＥＳ並びにエンベロープタイムデータＥＴが書き込まれ、フェーズカウンタ５０の対応チャンネルのカウンタがクリアされる（ステップ１７）。
【００９２】
そして、この割り当てたチャンネルの第１最小チャンネルナンバ１ＭＣＨを上記修正エンベロープメモリ１３２から消去する（ステップ５８）。以上のエンベロープ合成処理またはチャンネル割り当て処理が他の成分音についても繰り返され（ステップ１８）、その他の処理が行われる（ステップ１９）。
【００９３】
また、この第１最小チャンネルナンバ１ＭＣＨに空きチャンネルフラグＥＣＦが付加されておらず（ステップ５６）、最も減衰している成分音がまだレベル「０」に達していなければ、当該チャンネルの成分音が急速減衰されるハイリリース処理が実行される（ステップ５７）。このハイリリース処理の後、当該チャンネルに新たな成分音が割り当てられる（ステップ５１〜５４）。
【００９４】
なお、上記ステップ１６の空きチャンネルのサーチでは、第１最小チャンネルナンバ１ＭＣＨが既に消去されていれば（ステップ５８）、第２最小チャンネルナンバ２ＭＣＨに応じたチャンネルに新たな成分音が割り当てられ（ステップ１７）、修正エンベロープメモリ１３２の第２最小チャンネルナンバ２ＭＣＨが消去される（ステップ５８）。
【００９５】
また、第１最小チャンネルナンバ１ＭＣＨ及び第２最小チャンネルナンバ２ＭＣＨが既に消去されていれば（ステップ５８）、第３最小チャンネルナンバ３ＭＣＨに応じたチャンネルに新たな成分音が割り当てられ（ステップ１７）、修正エンベロープメモリ１３２の第３最小チャンネルナンバ３ＭＣＨが消去される（ステップ５８）。以下同様にして、第４最小チャンネルナンバ４ＭＣＨ、第５最小チャンネルナンバ５ＭＣＨ、……についても同様に処理され得る。
【００９６】
さらに、上記ステップ５６では、当該最小チャンネルナンバＭＣＨに空きチャンネルフラグＥＣＦが付加されていても、アサインメント４０の対応するチャンネルエリアにハイリリースフラグＨＲＦが記憶されていれば、上記ステップ１７のチャンネル割り当て処理は行われない。当該チャンネルの成分音は急速減衰中であり、次に割り当てられる成分音が予約されているからである。この場合処理は改めてステップ１６へ戻る。
【００９７】
また、上記ステップ５８の最小チャンネルナンバＭＣＨの消去は、上記ステップ５７のハイリリース処理の後にも実行されてもよい。この場合、その後の再度同じチャンネルナンバが最小レベル検出回路１４１、１４２及び１４３でリストアップされ、ハイリリースの後、上記ステップ５１〜５４のチャンネル割り当て処理が実行される。
【００９８】
８．チャンネルトランケートの例
図１５は時分割チャンネルの割り当て及び明け渡し（トランケート）の例を示す。全チャンネル数が「１５」で、このうち１３個のチャンネルに、図１５（１）に示す周波数の成分音が割り当てられており、２つのチャンネルが空いている。各周波数の成分音は図１５（１）に示すレベルとなっており刻々と変化する。
【００９９】
ここで図１５（２）に示す成分音を持つ楽音のキーオンイベントがあると、この楽音の成分音の周波数とレベルは同図（２）のようになり、４つの成分音へのチャンネル割り当てが必要となる。
【０１００】
この４つの成分音と同じ周波数の成分音にはチャンネル割り当てがなされていないと（ステップ１４、１８）、上記空いている２つのチャンネルに成分音が割り当てられ（ステップ１６、１７、５８）、さらにレベルの低い２つの最小チャンネルナンバに残りの２つの成分音が割り当てられる（ステップ１８、１４、１６、１７、５８）。
【０１０１】
こうして、図１５（３）に示すように、レベルの低い２つの成分音が消去され、新たな成分音にチャンネルが明け渡し（トランケート）される。なお、新たなキーオンに係る楽音の成分音はアタック状態であって、まだレベルが低く、これから大きくなるものであり、図１５（３）とは異なり、明け渡され消去される成分音のレベルが、割り当てられ発音される成分音のレベルより大きいこともある。
【０１０２】
９．エンベロープ合成処理（ステップ１５）
図７は、上記ステップ１５のエンベロープ合成処理のフローチャートを示す。まず、上記フェーズカウンタ５０の当該チャンネルのフェーズカウント値とエンベロープタイムメモリ４９の当該チャンネルの残存エンベロープタイムデータＥＴがコントローラ２によって読み出され（ステップ２１）、この残存エンベロープタイムデータＥＴに残りのフェーズのエンベロープタイムデータＥＴが順次累算され、現在時点から成分音ａの各フェーズの末尾までの絶対時間が求められる（ステップ２２）。
【０１０３】
図８の例では、成分音ａが発音開始し（タイミングＴａ０）、成分音ｂが発音開始し（タイミングＴｂ０）、続いて成分音ａのアタックフェーズが終了し（タイミングＴａ１）、この後成分音ａのディケイが終了し（タイミングＴａ２）、成分音ｂのアタックが終了し（タイミングＴｂ１）、成分音ａのサスティーンが終了し（タイミングＴａ３）、成分音ｂのディケイが終了し（タイミングＴｂ２）、成分音ａのリリースが終了し（タイミングＴａ４）、成分音ｂのサスティーンが終了し（タイミングＴｂ３）、成分音ｂのリリースが終了する（タイミングＴｂ４）。
【０１０４】
この場合、上記残存エンベロープタイムデータＥＴは（Ｔａ１−Ｔｂ０）となり、上記残りのフェーズのエンベロープタイムデータＥＴの累算値は（Ｔａ２−Ｔｂ０）、（Ｔａ３−Ｔｂ０）、（Ｔａ４−Ｔｂ０）となる。各フェーズの各エンベロープタイムデータＥＴはこれら各タイミングＴａ０、Ｔａ１、Ｔａ２、Ｔａ３、Ｔａ４の間の時間を示している。したがって、この残りのフェーズのエンベロープタイムデータＥＴが累算されれば、成分音ｂの発音開始から各タイミングＴａ１、Ｔａ２、Ｔａ３、Ｔａ４までの時間が求められる。
【０１０５】
この求められた各絶対時間（Ｔａ２−Ｔｂ０）、（Ｔａ３−Ｔｂ０）、（Ｔａ４−Ｔｂ０）には、この各タイミング直前のフェーズの成分音ａのエンベロープスピードデータＥＳと成分音ａを示すフラグａ（「１」）も対応づけて記憶される（ステップ２３）。
【０１０６】
次いで、成分音ｂについても同様にして、残存エンベロープタイムデータＥＴに残りのフェーズのエンベロープタイムデータＥＴが順次累算され、現在時点から成分音ｂの各フェーズの末尾までの絶対時間が求められる（ステップ２４）。この絶対時間は同様に（Ｔｂ１−Ｔｂ０）、（Ｔｂ２−Ｔｂ０）、（Ｔｂ３−Ｔｂ０）、（Ｔｂ４−Ｔｂ０）となる。この求められた各絶対時間（Ｔｂ１−Ｔｂ０）、（Ｔｂ２−Ｔｂ０）、（Ｔｂ３−Ｔｂ０）、（Ｔｂ４−Ｔｂ０）には、この各タイミング直前のフェーズの成分音ｂのエンベロープスピードデータＥＳと成分音ｂを示すフラグｂ（「０」）も対応づけて記憶される（ステップ２５）。
【０１０７】
なお、上記タイミングＴａ３、Ｔｂ３は、いずれもオフ操作のタイミングであり、上記タイミングＴａ４、Ｔｂ４はいずれもオフ操作のタイミングによってシフトされる。したがって、上記絶対時間（Ｔａ３−Ｔｂ０）、（Ｔａ４−Ｔｂ０）、（Ｔｂ３−Ｔｂ０）、（Ｔｂ４−Ｔｂ０）はここでは求められない。しかし、エンベロープの形状がオフ操作によって変化しない場合には求められる。上記絶対時間（Ｔａ３−Ｔｂ０）、（Ｔａ４−Ｔｂ０）、（Ｔｂ３−Ｔｂ０）、（Ｔｂ４−Ｔｂ０）は、後述するように消音処理のときに求められる。このため、各成分音のサスティーンの末尾については、絶対時間は取り得る最大値とされ、エンベロープスピードデータＥＳは「０」とされる。
【０１０８】
ただし、上記成分音ａがリリースに入っていて、成分音ｂが発音開始する場合には、上記絶対時間（Ｔａ４−Ｔｂ０）は求められる。成分音ａはすでにオフ操作され、リリース終了のタイミングがはっきりしているからである。
【０１０９】
そして、上記ステップ２２乃至２５で求められた絶対時間（Ｔａ２−Ｔｂ０）、（Ｔａ３−Ｔｂ０）、（Ｔａ４−Ｔｂ０）、（Ｔｂ１−Ｔｂ０）、（Ｔｂ２−Ｔｂ０）、（Ｔｂ３−Ｔｂ０）、（Ｔｂ４−Ｔｂ０）は大きい順に並べられ、対応づけられたエンベロープスピードデータＥＳも同様に並べ変えられる（ステップ２６）。これにより、図８（３）に示すような各タイミングが順番にソートされる。
【０１１０】
図９（１）はこのようにしてソートされた絶対時間とエンベロープスピードデータＥＳと成分音フラグを示す。このデータ内容は、上記図８（３）の合成エンベロープ波形に対応したものとなっている。
【０１１１】
次いで、各絶対時間（Ｔａ２−Ｔｂ０）、（Ｔａ３−Ｔｂ０）、（Ｔａ４−Ｔｂ０）、（Ｔｂ１−Ｔｂ０）、（Ｔｂ２−Ｔｂ０）、（Ｔｂ３−Ｔｂ０）、（Ｔｂ４−Ｔｂ０）から、それぞれ１つ前の絶対時間が減算される（ステップ２７）。これにより、図８（３）の合成エンベロープ波形の各タイミングの間の新たなフェーズの合成エンベロープタイムデータＥＴｓが図９（２）左欄に示すように求められる。なお、先頭の合成エンベロープタイムデータＥＴｓは、上記絶対時間の先頭の（Ｔａ２−Ｔｂ０）がそのままコピーされる。
【０１１２】
さらに、各絶対時間に対応したエンベロープスピードデータＥＳには、より先の絶対時間のエンベロープスピードデータＥＳであって、自己の成分音フラグａ、ｂと異なるフラグを有するデータＥＳが加算合成される（ステップ２８）。これにより、成分音ａのエンベロープスピードＥＳと成分音ｂのエンベロープスピードＥＳとが図８（３）の各フェーズごとに加算合成され、図８（３）の合成エンベロープ波形の各タイミングの間の新たなフェーズの合成エンベロープスピードデータＥＳｓが図９（２）右欄に示すように求められる。
【０１１３】
このようにして求められた合成エンベロープ波形の各フェーズの合成エンベロープタイムデータＥＴｓ及び合成エンベロープスピードデータＥＳｓは、上記アサインメントメモリ４０の対応するチャンネルエリアに書き込まれ、フェーズカウンタ５０の対応チャンネルのカウンタがクリアされる（ステップ２９）。これにより合成エンベロープの生成が開始される。この場合、合成エンベロープのオンイベント（または後述するオフイベント）の時点以降の部分が、アサインメントメモリ４０に記憶され生成される。
【０１１４】
こうして、成分音ａのエンベロープスピードデータＥＳ及びエンベロープタイムデータＥＴは、同じ周波数の新たな成分音ｂが当該チャンネルに割り当てられるたびに書き換えられ、この新たな成分音ｂを合成したエンベロープの合成エンベロープスピードデータＥＳｓ及び合成エンベロープタイムデータＥＴｓに置き換えられる。
【０１１５】
よって、同じ周波数の各楽音の発生量が合成され、１つのチャンネルにまとめて割り当てられることになる。また、同じ周波数の各楽音のエンベロープ波形が合成され、１つの楽音として出力されることになる。
【０１１６】
そして、成分音ａのリリース以降のエンベロープスピードデータＥＳとエンベロープタイムデータＥＴとが成分音ａのキーナンバデータＫＮに対応してアサインメントメモリ４０に記憶され、成分音ｂのリリース以降のエンベロープスピードデータＥＳとエンベロープタイムデータＥＴも成分音ｂのキーナンバデータＫＮに対応してアサインメントメモリ４０に記憶される（ステップ３０）。このリリース以降のエンベロープスピードデータＥＳとエンベロープタイムデータＥＴは、オフイベント以降にエンベロープ合成処理が行われる。
【０１１７】
１０．消音処理（ステップ０５）
図１０は上記ステップ０５の消音処理のフローチャートを示す。まずオフイベントがあると（ステップ３１）、このオフイベントに係るキーナンバデータＫＮと同じキーナンバデータＫＮが記憶されているアサインメントメモリ４０のチャンネルがサーチされる（ステップ３２）。
【０１１８】
そして、該当するチャンネルが発見されると（ステップ３３）、上述したステップ１５のエンベロープ合成処理と同様の処理が実行され（ステップ３４）、このキーナンバデータＫＮと対応するエンベロープスピードデータＥＳとエンベロープタイムデータＥＴが当該チャンネルエリアから消去される（ステップ３５）。以上のオフイベントによるエンベロープ合成処理が他の成分音についても繰り返され（ステップ３６）、その他の処理が行われる（ステップ３７）。
【０１１９】
このステップ３４のエンベロープ合成処理では、上記キーナンバデータＫＮに対応して記憶されたリリース以降のエンベロープスピードデータＥＳとエンベロープタイムデータＥＴとが読み出され、同様のエンベロープ合成処理が実行される。ただし、この場合このリリースのエンベロープスピードデータＥＳはマイナス値であるから実質的に減算される。これはディケイも同様である。なお、このステップ３４のエンベロープ合成処理では、上記ステップ３０のリリースのエンベロープスピードデータＥＳ及びエンベロープタイムデータＥＴのセット処理は行われない。
【０１２０】
こうして、オフイベントのときにも、合成成分音ａ＋ｂの合成エンベロープスピードデータＥＳｓ及び合成エンベロープタイムデータＥＴｓは書き換えられ、この新たなリリースを考慮したエンベロープの合成エンベロープスピードデータＥＳｓ及び合成エンベロープタイムデータＥＴｓに置き換えられる。
【０１２１】
よって、オフイベントのときにも、同じ周波数の各楽音の発生量が合成され、１つのチャンネルにまとめて割り当てられることになる。また、同じ周波数の各楽音のエンベロープ波形が合成され、１つの楽音として出力されることになる。
【０１２２】
１１．ハイリリース処理（ステップ５７）
図１６は上記ステップ５７のハイリリース処理のフローチャートを示す。当該チャンネルのエンベロープ演算データＥＮをＥＮ演算メモリ４８から取り込み（ステップ６１）、このエンベロープが「０」になるまでの最短時間ＥＴｒつまりハイリリースのエンベロープタイムＥＴｒが以下の演算で求められる（ステップ６２）。
【０１２３】
ＥＴｒ＝（ＥＴ／ＥＳｍｉｎ）
ここでＥＴは上記現在のエンベロープ演算データＥＮであり、ＥＳｍｉｎは取り得る最小のエンベロープスピードデータであって、最大傾斜の減衰を実現する。
【０１２４】
次いで、この最小エンベロープスピードデータＥＳｍｉｎとハイリリースエンベロープタイムＥＴｒとが、アサインメントメモリ４０の当該チャンネルエリアに書き込まれるとともに（ステップ６３）、さらにハイリリースフラグＨＲＦも書き込まれ（ステップ６４）、他のエンベロープスピードデータＥＳ及びエンベロープタイムデータＥＴ、エンベロープフェーズデータＥＦが消去される（ステップ６５）。これにより、図１７の「ＥＳｍｉｎ」に示すように、チャンネルを明け渡す先の楽音（成分音）のエンベロープスピードがＥＳｎからＥＳｍｉｎに切り替えられ、当該楽音（成分音）が急速に減衰される。このとき、後の楽音（成分音）はキーオンがあっても発音開始されない。
【０１２５】
そして、上記ハイリリースエンベロープタイムＥＴｒの遅れを取り戻すため、最大エンベロープスピードデータＥＳｍａｘとこれによって追いつくハイアタックのエンベロープタイムデータＥＴａが以下の演算で求められる（ステップ７１）。
【０１２６】
ＥＴａ＝（ＥＳ１×ＥＴｒ）／（ＥＳｍａｘ−ＥＳ１）
ここでＥＴｒは上記ハイリリースのエンベロープタイムであり、ＥＳ１はこの新たな楽音（成分音）のアタックのエンベロープスピードであり、ＥＳｍａｘは取り得る最大のエンベロープスピードデータであって、最大傾斜のアタックを実現する。
【０１２７】
次いで、この最大エンベロープスピードデータＥＳｍａｘとハイアタックエンベロープタイムＥＴａとが、プログラム／データ記憶部４（ＲＡＭ）に一時的に書き込まれる（ステップ７２）。これにより、図１７の「ＥＳｍａｘ」で示すハイアタックのエンベロープ部分のデータが作成される。
【０１２８】
そして、エンベロープスピードデータＥＳ１とエンベロープタイム（ＥＴ１−ＥＴｒ−ＥＴａ）とが、プログラム／データ記憶部４（ＲＡＭ）に一時的に書き込まれる（ステップ７３）。これにより、図１７の新たな成分音の残りのアタックエンベロープ部分のデータが作成される。
【０１２９】
次いで、これ以降のエンベロープスピードデータＥＳ及びエンベロープタイムデータＥＴが同様に書き込まれ（ステップ７４）、上記ステップ１３で求められた周波数ナンバデータＦＮも同様に書き込まれ（ステップ７５）、さらに当該チャンネルナンバＣＨＮｏも同様に書き込まれる（ステップ７６）。このチャンネルナンバＣＨＮｏは上記ステップ５３の書き込みで、チャンネルの対応のチェックに利用される。
【０１３０】
こうして新たな成分音の修正されたエンベロープスピードデータ及びエンベロープタイムデータが作成され一時記憶される。この一時記憶されたエンベロープデータは、上記ステップ５３でアサインメントメモリ４０に書き込まれる。
【０１３１】
なお、上記ステップ７２及び７３で求められる２つのエンベロープスピードデータ及び２つのエンベロープタイムデータは、以下の１つのエンベロープスピードデータ及び１つのエンベロープタイムデータで代用できる。
【０１３２】
ＥＳ＝ＥＳ１×ＥＴ１／（ＥＴ１−ＥＴｒ）
ＥＴ＝ＥＴ１−ＥＴｒ
ここで、ＥＴ１はこの新たな楽音（成分音）のアタックのエンベロープタイムであり、ＥＳ１はこの新たな楽音（成分音）のアタックのエンベロープスピードであり、ＥＴｒは上記ハイリリースのエンベロープタイムである。これにより、新たな成分音のアタックは図１７の点線に示す状態となる。
【０１３３】
１２．トーンタイムデータＴＭ及び同時発音数の処理
図１１はコントローラ２によって一定周期ごとに実行されるインタラプト処理のフローチャートを示す。この処理で上記トーンタイムデータＴＭのインクリメント及び同時発音数のカウントが行われる。
【０１３４】
この処理では、上記アサインメントメモリ４０の各チャンネルエリアにつき（ステップ４１、４６、４７）、オン／オフデータが「１」で楽音が発音中のものについて（ステップ４３）、そのトーンタイムデータＴＭが「＋１」される（ステップ４４）。
【０１３５】
また、同じくアサインメントメモリ４０の各チャンネルエリアにつき（ステップ４１、４６、４７）、いったん同時発音数データがクリアされた後（ステップ４２）、オン／オフデータが「１」で楽音が発音中のものがカウント（ステップ４３）、同時発音数が順次「＋１」される（ステップ４５）。このカウントされた同時発音数はプログラム／データ記憶部４に記憶される。
【０１３６】
そして、その他の周期的な処理が行われる（ステップ４８）。こうして、各チャンネルの楽音の発音経過時間がカウントされ記憶され上記発音時間情報として利用され、またそのときどきの全チャンネルの発音中の楽音の数がカウントされ記憶され上記同時発音数情報として利用される。
【０１３７】
本発明は上記実施例に限定されず、本発明の趣旨を逸脱しない範囲で種々変更可能である。例えば、波形メモリ４２に記憶される楽音波形データＭＷはサイン波以外の複雑な波形でもよいし、音色、音高（音域）、タッチ、パート、発音時間ごとに異なる波形が記憶され切り替え選択されてもよい。このような複雑な形状の波形は上記各成分音の楽音波形として読み出され出力される。
【０１３８】
また、各チャンネルに割り当てられる楽音は成分音以外の１つの独立した楽音であってもよい。この場合、同じチャンネルに割り当てられる楽音の波形は同じ波形形状であり、同じ音高（周波数）である。このような場合でも同様にエンベロープの合成または発生量の合成を行うことができる。
【０１３９】
さらに、合成されるのはエンベロープ以外の楽音波形データＭＷの振幅でもよい。この場合上記ステップ１５、３４で合成されるのは、振幅決定因子例えばタッチデータＴＣなどである。そして、アサインメントメモリ４０の各チャンネルのタッチデータＴＣは、上記オンイベント及びオフイベントごとに相加され、この相加されたタッチデータＴＣはアサインメントメモリ４０から上記乗算器４３へ送られ、楽音波形データＭＷに乗算される。なお、この相加されたタッチデータＴＣは、当該チャンネルの各エンベロープスピードデータＥＳに乗算されてもよい。この乗算されたエンベロープスピードデータＥＳを使って上記ステップ１５、３４のエンベロープ合成が行われる。
【０１４０】
また、上記チャンネルは時分割処理によって形成されたが、このチャンネルと同じ数の楽音信号発生部５が設けられ、各楽音信号発生部５〜の楽音波形データＭＷが加算器で加算合成されてもよい。
【０１４１】
さらに、上記エンベロープデータは、エンベロープスピードデータＥＳとエンベロープレベルデータＥＬ、またはエンベロープレベルデータＥＬとエンベロープタイムデータＥＴとで代用されてもよい。この場合、隣り合う２つのエンベロープレベルデータＥＬの差がエンベロープスピードデータＥＳで除算されて上記エンベロープタイムデータＥＴが求められる。また、隣り合う２つのエンベロープレベルデータＥＬの差がエンベロープタイムデータＥＴで除算されて上記エンベロープスピードデータＥＳが求められる。
【０１４２】
また、上記チャンネルトランケートでは、アタック状態またはエンベロープスピードデータがプラスである成分音の重み付けデータＷＴは格段に大きくされてもよい。この場合、上記アサインメントメモリ４０から読み出されたエンベロープフェーズデータＥＦが重み付けメモリ１３３で変換され、エンベロープフェーズデータＥＦが所定値未満ならば、大きい値に変換されて上記乗算器１３１へ送られ、エンベロープフェーズデータＥＦが所定値を越えれば、小さい値に変換されて上記乗算器１３１へ送られる。これにより、エンベロープフェーズの音楽的性質によってチャンネル割り当ての優先度が変化修正（決定制御）される。
【０１４３】
さらに、上記チャンネルトランケートでは、あるレベル以上の成分音を有するチャンネルは明け渡されなくてもよい。この場合、上記ステップ１６で各最小チャンネルナンバＭＣＨに応じたチャンネルの修正エンベロープデータＭＥＮが修正エンベロープメモリ１３２より読み出され、所定レベル未満ならばステップ１７及び５８のチャンネルトランケートが実行される。これにより、楽音レベルの音楽的性質によってチャンネル割り当ての優先度が変化修正（決定制御）される。
【０１４４】
また、上記チャンネルトランケートは、１つのチャンネルに合成して割り当てられている成分音の数が多いほど、明け渡し（トランケート）の可能性が低くなってもよい。この場合、上記ステップ１３の後またはステップ１６などで、アサインメントメモリ４０の各チャンネルエリアに記憶されているキーナンバデータＫＮの数によって決定される重み付けデータＷＴが各修正エンベロープデータＭＥＮに乗算される。
【０１４５】
この重み付けデータは、例えば１チャンネル当たりの上記キーナンバデータＫＮの数が「１」ならば「０．７」、「２」ならば「０．８」、「３」ならば「０．９」、「４」以上ならば「１．０」である。この重み付けデータＷＴによって修正された修正エンベロープデータＭＥＮに基づいて上記第１最小レベル検出回路１４１、第２最小レベル検出回路１４２、第３最小レベル検出回路１４３、…、…、でレベルの低い成分音に係るチャンネルナンバがサーチされる。これにより、各時分割チャンネルに割り当てられている成分音の数という音楽的性質によってチャンネル割り当ての優先度が変化修正（決定制御）される。
【０１４６】
さらに、上記新たに割り当てられる楽音の周波数と上記急速に減衰されチャンネルを明け渡す楽音の周波数とは異なっていたが、同じでもよい。この場合、上記ステップ１４及び１５の処理は省略される。これにより、同じ周波数の成分音同志はエンベロープ合成されず、先の成分音が急速減衰されたのち、新たな同じ周波数の成分音にチャンネルが明け渡されアタックが開始される。
【０１４７】
また、本発明は電子楽器またはコンピュータなどにおいて実施され得る。上記各図の回路の機能はソフトウエア（フローチャート）によって実施されても良いし、上記各図のフローチャートの機能はハードウエア（回路）によって実施されてもよい。各請求項記載の発明は、当該発明をコンピュータに実行させるコンピュータプログラムを記憶した媒体、コンピュータプログラムの通信装置（方法）、楽音発生装置（方法）、楽音制御装置（方法）としても実現可能である。
【０１４８】
本発明の実施態様は以下の通りである。  ［１］同時に発生される複数の楽音がそれぞれ割り当てられる複数のチャンネルにつき、  この同時に発生される複数の楽音のうち、同じ周波数の楽音を判別し、  この判別された同じ周波数の楽音の発生量を合成して、１つのチャンネルにまとめて割り当てることを特徴とする楽音のチャンネル割り当て装置。
【０１４９】
［２］同時に発生される複数の楽音がそれぞれ割り当てられる複数のチャンネルにつき、  この同時に発生される複数の楽音のうち、同じ周波数の楽音を判別させ、  この判別された同じ周波数の楽音の発生量を合成して、１つのチャンネルにまとめて割り当てさせることを特徴とする楽音のチャンネル割り当て方法。
【０１５０】
［３］同時に発生される複数の楽音のうち、同じ周波数の楽音を判別し、  この判別された同じ周波数の各楽音のエンベロープ波形を合成して１つの楽音として出力することを特徴とする楽音のエンベロープ制御装置。
【０１５１】
［４］同時に発生される複数の楽音のうち、同じ周波数の楽音を判別させ、  この判別された同じ周波数の各楽音のエンベロープ波形を合成して１つの楽音として出力させることを特徴とする楽音のエンベロープ制御方法。
【０１５２】
［５］上記同時に発生される複数の楽音は、１つの楽音を構成する成分音であり、  この同時に発生される複数の楽音は、同じ波形または異なる波形の楽音であり、  新たな楽音が発生されるときまたは発生されている楽音が消滅されるとき、この楽音またはこの楽音の成分音の同じ周波数の各エンベロープ発生量につき、合成したエンベロープ発生量の各エンベロープレベル、エンベロープタイム及びエンベロープスピードのいずれか２つを演算して、この演算したエンベロープレベル、エンベロープタイム及びエンベロープスピードのいずれか２つに基づいて、上記周波数の楽音またはこの楽音の成分音の合成エンベロープを１つのチャンネルで生成することを特徴とする請求項１、２、３または４記載の楽音のチャンネル割り当て装置、楽音のチャンネル割り当て方法、楽音のエンベロープ制御装置または楽音のエンベロープ制御方法。
【０１５３】
［６］同時に発生される複数の楽音がそれぞれ割り当てられる複数のチャンネルにつき、  この同時に発生される複数の楽音のうち、同じ周波数の楽音を判別する手段と、  この判別された同じ周波数の楽音の発生量を合成して、１つのチャンネルにまとめて割り当てる手段と、  このようにして各チャンネルに割り当てられている各楽音につき、チャンネル明け渡しの優先順位を決定する手段と、この決定された優先順位に基づいてチャンネルを選び出し、このチャンネルに新たな楽音を割り当てる手段とを備えたことを特徴とする楽音のチャンネル割り当て装置。
【０１５４】
［７］同時に発生される複数の楽音がそれぞれ割り当てられる複数のチャンネルにつき、  この同時に発生される複数の楽音のうち、同じ周波数の楽音を判別させ、  この判別された同じ周波数の楽音の発生量を合成して、１つのチャンネルにまとめて割り当てさせ、  このようにして各チャンネルに割り当てられている各楽音につき、チャンネル明け渡しの優先順位を決定させ、  この決定された優先順位に基づいてチャンネルを選び出させ、このチャンネルに新たな楽音を割り当てさせることを特徴とする楽音のチャンネル割り当て方法。
【０１５５】
［８］上記同時に発生される複数の楽音は、１つの楽音を構成する成分音であり、  複数の楽音のそれぞれの成分音につき同じ周波数の成分音を判別し、各成分音を同じ周波数ごとに合成して各チャンネルに割り当て、  この同時に発生される複数の楽音は、同じ波形または異なる波形の楽音であり、  上記チャンネル明け渡しの優先順位は、各チャンネルに割り当てられている楽音のレベル、当該楽音の音楽的性質、人間の等ラウドネス特性または人間の最低可聴特性に基づいて決定されることを特徴とする請求項６記載の楽音のチャンネル割り当て装置または請求項７記載の楽音のチャンネル割り当て方法。
【０１５６】
出願当初の特許請求の範囲は以下のとおりであった。
［９］同時に発生される複数の楽音がそれぞれ割り当てられる複数のチャンネルにつき、  この同時に発生される複数の楽音のうち、同じ周波数の楽音を判別する手段と、  この判別された同じ周波数の楽音の発生量を合成して、１つのチャンネルにまとめて割り当てる手段と、  このようにして楽音が割り当てられている上記複数のチャンネルから１つのチャンネルを選び出し、このチャンネルに割り当てられている楽音を急速に減衰する手段と、  この急速な減衰が達成されたとき、当該チャンネルに新たな楽音を割り当てる手段とを備えたことを特徴とする楽音のチャンネル割り当て装置。
［１０］同時に発生される複数の楽音がそれぞれ割り当てられる複数のチャンネルにつき、  この同時に発生される複数の楽音のうち、同じ周波数の楽音を判別させ、  この判別された同じ周波数の楽音の発生量を合成して、１つのチャンネルにまとめて割り当てさせ、  このようにして楽音が割り当てられている上記複数のチャンネルから１つのチャンネルを選び出しさせ、このチャンネルに割り当てられている楽音を急速に減衰させ、  この急速な減衰が達成されたとき、当該チャンネルに新たな楽音を割り当てさせることを特徴とする楽音のチャンネル割り当て方法。
［１１］上記同時に発生される複数の楽音は、１つの楽音を構成する成分音であり、  複数の楽音のそれぞれの成分音につき同じ周波数の成分音を判別し、各成分音を同じ周波数ごとに合成して各チャンネルに割り当て、  この同時に発生される複数の楽音は、同じ波形または異なる波形の楽音であり、  上記選び出されるチャンネルは、決定されたチャンネル明け渡しの優先順位に基づいて選び出され、  このチャンネル明け渡しの優先順位は、各チャンネルに割り当てられている楽音のレベル、当該楽音の音楽的性質、人間の等ラウドネス特性または人間の最低可聴特性に基づいて決定され、  上記急速な減衰は、当該楽音のエンベロープの変化のスピードを大きくし、  上記急速な減衰が達成されたときは、当該楽音のレベルが「０」または所定値未満になったときであり、  上記新たに割り当てられる楽音の周波数と上記急速に減衰されチャンネルを明け渡す楽音の周波数とは異なるまたは同じであることを特徴とする請求項９記載の楽音のチャンネル割り当て装置または請求項１０記載の楽音のチャンネル割り当て方法。
【発明の効果】
以上詳述したように、本発明では、同時に発生される複数の楽音のうち、同じ周波数の楽音を判別し、この判別された同じ周波数の楽音の発生量を合成して、１つのチャンネルにまとめて割り当て、各チャンネルに割り当てられている各楽音につき、チャンネル明け渡しの優先順位を決定し、この決定された優先順位に基づいてチャンネルを選び出し、このチャンネルに割り当てられている楽音を急速に減衰し、この急速な減衰が達成されたとき、当該チャンネルに新たな楽音を割り当てるようにした。
【０１５７】
したがって、使用するチャンネルの数を減らしてチャンネルの有効利用を図ることができ、空きチャンネルがないとき新たな楽音にチャンネルを明け渡して（トランケート）して、新たな楽音に確実にチャンネルを割り当てることができるし、上記急速な減衰によって新たな楽音へのチャンネル割り当てを迅速に行うことができる等の効果を奏する。
【図面の簡単な説明】
【図１】楽音制御装置の全体回路を示す。
【図２】成分音テーブル２０を示す。
【図３】アサインメントメモリ４０を示す。
【図４】楽音信号発生部５を示す。
【図５】処理全体のフローチャートを示す。
【図６】発音処理（ステップ０３）のフローチャートを示す。
【図７】エンベロープ合成処理（ステップ１５）のフローチャートを示す。
【図８】同じ周波数の成分音ａと成分音ｂとのエンベロープ合成の波形の例を示す。
【図９】同じ周波数の成分音ａと成分音ｂとのエンベロープ合成のデータの例を示す。
【図１０】消音処理（ステップ０５）のフローチャートを示す。
【図１１】インタラプト処理のフローチャートを示す。
【図１２】重み付けメモリ１３３に記憶された重み付けデータＷＴの内容を示す。
【図１３】第１最小レベル検出回路１４１、第２最小レベル検出回路１４２及び第３最小レベル検出回路１４３の回路図を示す。
【図１４】図１３の回路の各部の信号のタイムチャートを示す。
【図１５】成分音の割り当てられている各時分割チャンネルのトランケートの例を示す。
【図１６】ハイリリース処理（ステップ５７）のフローチャートを示す。
【図１７】ハイリリースの時のエンベロープの変化を示す。
【符号の説明】
２…コントローラ（ＣＰＵ）、３…タイミング発生部、４…プログラム／データ記憶部、５…楽音信号発生部、６…サウンドシステム、７…情報記憶部、１１…キーボード、１３…パネルスイッチ群、１５…ミディインターフェース、２０…成分音テーブル、４０…アサインメントメモリ、４１…波形読み出し部、４２…波形メモリ、４７…セレクタ、４８…エンベロープ演算メモリ、４９…エンベロープタイムメモリ、５０…フェーズカウンタ、４６，５１…加算器、５２…ナンドゲート群、１３１…乗算器、１３２…修正エンベロープメモリ、１３３…重み付けメモリ、１３４…最小チャンネルメモリ、１４１…第１最小レベル検出回路、１４２…第２最小レベル検出回路、１４３…第３最小レベル検出回路。
【図１】
0003673387.tif 000002
【図２】
0003673387.tif 000003
【図３】
0003673387.tif 000004
【図４】
0003673387.tif 000005
【図５】
0003673387.tif 000006
【図６】
0003673387.tif 000007
【図７】
0003673387.tif 000008
【図８】
0003673387.tif 000009
【図９】
0003673387.tif 000010
【図１０】
0003673387.tif 000011
【図１１】
0003673387.tif 000012
【図１２】
0003673387.tif 000013
【図１３】
0003673387.tif 000014
【図１４】
0003673387.tif 000015
【図１５】
0003673387.tif 000016
【図１６】
0003673387.tif 000017
【図１７】
0003673387.tif 000018