(57)【特許請求の範囲】
【請求項１】
周波数の異なる複数の部分楽音波形を生成する手段と、
この各部分楽音波形にそれぞれ合成される複数の異なる部分エンベロープ波形を生成する手段と、
この各部分エンベロープ波形それぞれに合成されて、各部分エンベロープ波形を細かく変化させる複数の異なるエンベロープ微細波形を生成する手段と、
上記各部分エンベロープ波形それぞれと上記各エンベロープ微細波形それぞれとを加算合成する手段と、
この合成された各部分エンベロープ波形それぞれを上記各部分楽音波形それぞれに乗算合成する手段と、
この合成された各部分楽音波形を１つの楽音に合成する手段と、
上記各部分エンベロープ波形に合成される場合における各エンベロープ微細波形の相対的割合を音楽的因子に基づいて変化させる手段とを備えたことを特徴とする楽音生成装置。
【請求項２】
周波数の異なる複数の部分楽音波形を生成させ、
この各部分楽音波形にそれぞれ合成される複数の異なる部分エンベロープ波形を生成させ、
この各部分エンベロープ波形それぞれに合成されて、各部分エンベロープ波形を細かく変化させる複数の異なるエンベロープ微細波形を生成させ、
上記各部分エンベロープ波形それぞれと上記各エンベロープ微細波形それぞれとを加算合成させ、
この合成された各部分エンベロープ波形それぞれを上記各部分楽音波形それぞれに乗算合成させ、
この合成された各部分楽音波形を１つの楽音に合成させ、
上記各部分エンベロープ波形に合成される場合における各エンベロープ微細波形の相対的割合を音楽的因子に基づいて変化させることを特徴とする楽音生成方法。
【請求項３】
上記エンベロープ微細波形は、音楽的因子よって変化し、当該エンベロープ微細波形の周波数、振幅または周波数成分は、上記楽音波形の音色、音高、音域、タッチ、発音時間によって変化し、
上記各部分楽音波形または各部分エンベロープ波形は、発音時間の経過に応じて切り換えられ、
上記各部分楽音波形、上記各部分エンベロープ波形または上記各部分エンベロープ微細波形は、発生開始タイミングが同じであり、１つの楽音に合成され、
上記各エンベロープ微細波形は、乱数発生手段によって発生され、またはエンベロープ微細波形が記憶された記憶手段から読み出されることを特徴とする請求項１記載の楽音生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本願発明は、楽音生成装置または楽音生成方法に関し、特にエンベロープ波形にエンベロープ微細波形を合成する装置及び方法に関する。
【０００２】
【従来技術】
種々の波形の楽音波形がメモリに記憶され、この楽音波形が音高に応じた速度で読み出される。また、エンベロープ波形が演算によって生成され、上記楽音波形にこのエンベロープ波形が乗算合成され楽音として出力される。
【０００３】
【発明が解決しようとする課題】
ところが、自然界の音は微妙に変化しており、楽音波形やエンベロープ波形を切り換えただけでは対応しきれない微妙な変化を内在している。本願発明の目的は、このような自然界ある音の微妙な変化を実現するものである。
【０００４】
【課題を解決するための手段】
本願発明では、エンベロープ微細波形を生成してエンベロープ波形に合成し、エンベロープ波形を細かく変化させるようにした。これにより、エンベロープ波形を微妙に変化させることができ、自然界に存在する音に近づけることができる。また、エンベロープ波形にエンベロープ微細波形を合成するから、楽音波形の周波数特性を変化させることなく、合成楽音の音色を変えることもできる。
【０００５】
【発明の実施の形態】
１．全体回路
図１は楽音制御装置または電子楽器の全体回路を示す。キーボード１１の各キーは、楽音の発音及び消音を指示するもので、キースキャン回路１２によってスキャンされ、キーオン、キーオフを示すデータが検出され、コントローラ２によってプログラム／データ記憶部４に書き込まれる。そして、それまでプログラム／データ記憶部４に記憶されていた各キーのオン、オフの状態を示すデータと比較され、各キーのオンイベント、オフイベントの判別が、コントローラ２によって行われる。
【０００６】
このキーボード１１の各キーには段差タッチスイッチが設けられ、各段差スイッチごとに上記スキャンが行われ、各段差スイッチの先頭のオン／オフごとにオンイベント／オフイベントの検出が行われる。この段差スイッチによってタッチの速さと強さを示す上記タッチ情報つまりイニシャルタッチデータとアフタタッチデータとが発生される。
【０００７】
このキーボード１１は、ローアキーボード、アッパーキーボード、ペダルキーボード等から成っており、それぞれにつき異なる音色の楽音、つまりエンベロープ波形の異なる楽音が発音される。そして、アッパーキーボードについては、１つのキーオンで２音色の楽音を同時に鳴らすことも可能である。なお、キーボード１１は、電子弦楽器、電子吹奏（管）楽器、電子打楽器（パッド等）、コンピュータのキーボード等で代用される。
【０００８】
パネルスイッチ群１３の各スイッチは、パネルスキャン回路１４によって、スキャンされる。このスキャンにより、各スイッチのオン、オフを示すデータが検出され、コントローラ２によってプログラム／データ記憶部４に書き込まれる。そして、それまでプログラム／データ記憶部４に記憶されていた各スイッチのオン、オフの状態を示すデータと比較され、各スイッチのオンイベント、オフイベントの判別が、コントローラ２によって行われる。
【０００９】
ミディインターフェース１５は、外部接続された電子楽器との間で楽音データの送受を行うためのインタフェースである。この楽音データはＭＩＤＩ（ミュージカルインスツルメントデジタルインタフェース）規格のもので、この楽音データに基づいた発音も行われる。
【００１０】
上記キーボード１１またはミディインターフェース１５には、自動演奏装置も含まれる。これらキーボード１１、パネルスイッチ群１３及びミディインターフェース１５から発生された演奏情報（楽音発生情報）は、楽音を発生させるための情報である。
【００１１】
上記演奏情報（楽音発生情報）は、音楽的ファクタ（因子）情報であり、音高（音域）情報（音高決定因子）、発音時間情報、演奏分野情報、発音数情報、共鳴度情報などである。発音時間情報は楽音の発音開始からの経過時間を示す。演奏分野情報は、演奏パート情報、楽音パート情報、楽器パート情報等を示し、例えばメロディ、伴奏、コード、ベース、リズム、ＭＩＤＩ等に対応したり、または上鍵盤、下鍵盤、足鍵盤、ソロ鍵盤、ＭＩＤＩ等に対応している。
【００１２】
上記音高情報はキーナンバデータＫＮとして取り込まれる。このキーナンバデータＫＮはオクターブデータ（音域データ）と音名データとからなる。演奏分野情報は、パートナンバデータＰＮとして取り込まれ、このパートナンバデータＰＮは各演奏エリアを識別するデータであって、発音操作された楽音がどの演奏エリアからのものかによって設定される。
【００１３】
発音時間情報は、トーンタイムデータＴＭとして取り込まれ、後述のフローチャートによって求められたり、キーオンイベントからのタイムカウントデータに基づいたり、またはエンベロープフェーズで代用される。この発音時間情報は特願平６−２１９３２４号明細書及び図面に発音開始からの経過時間情報として詳しく示される。
【００１４】
発音数情報は同時に発音している楽音の数を示し、例えばアサインメントメモリ４０のオン／オフデータが「１」の楽音の数に基づき、この数は特願平６−２４２８７８号の図９及び図１５、特願平６−２４７６８５５号の図８及び図１８、特願平６−２７６８５７号の図９及び図２０、特願平６−２７６８５８号の図９及び図２１のフローチャートに基づいて求められる。
【００１５】
共鳴度情報は、同時に発音している１つの楽音と他の楽音との共鳴度を示す。この１つの楽音の音高周波数と他の楽音の音高周波数とが１：２、２：３、３：４、４：５、５：６など小さい整数数倍比であれば共鳴度情報の値は大きく、９：８、１５：８、１５：１６、４５：３２、６４：４５など大きい整数数倍比であれば共鳴度情報の値は小さくなる。この共鳴度情報は特願平１−３１４８１８号の第７図の共鳴相関テーブル５３または共鳴比率テーブル５４から読み出される。
【００１６】
さらに、上記パネルスイッチ群１３には各種スイッチが設けられ、この各種スイッチは音色タブレット、エフェクトスイッチ、リズムスイッチ、ペダル、ホイール、レバー、ダイヤル、ハンドル、タッチスイッチ等であって楽器用のものである。このペダルはダンパーペダル、サスティンペダル、ミュートペダル、ソフトペダル等である。
【００１７】
この各種スイッチより、楽音制御情報が発生され、この楽音制御情報は発生された楽音を制御する情報であって音楽的ファクタ（因子）情報であり、音色情報（音色決定因子）、タッチ情報（発音指示操作の速さ／強さ）、発音数情報、共鳴度情報、エフェクト情報、リズム情報、音像（ステレオ）情報、クオンタイズ情報、変調情報、テンポ情報、音量情報、エンベロープ情報等である。これら音楽的ファクタ情報も上記演奏情報（楽音情報）に合体され、上記各種スイッチより入力されるほか、上記自動演奏情報に合体されたり、上記インターフェースで送受される演奏情報に合体されたりする。
【００１８】
上記音色情報は、鍵盤楽器（ピアノ等）、管楽器（フルート等）、弦楽器（バイオリン等）、打楽器（ドラム等）の楽器（発音媒体／発音手段）の種類等に対応しており、トーンナンバデータＴＮとして取り込まれる。上記エンベロープ情報は、エンベロープレベルＥＬ、エンベロープタイムＥＴ、エンベロープフェーズＥＦなどである。
【００１９】
このような音楽的ファクタ情報は、コントローラ２へ送られ、後述の各種信号、データ、パラメータの切り換えが行われ、楽音の内容が決定される。上記演奏情報（楽音発生情報）及び楽音制御情報はコントローラ２で処理され、各種データが楽音信号発生部５へ送られ、楽音波形信号ＭＷが発生される。コントローラ２はＣＰＵ、ＲＯＭ及びＲＡＭなどからなっている。
【００２０】
プログラム／データ記憶部４（内部記憶媒体／手段）はＲＯＭまたは書き込み可能なＲＡＭ、フラッシュメモリまたはＥＥＰＲＯＭ等の記憶装置からなり、光ディスクまたは磁気ディスク等の情報記憶部７（外部記憶媒体／手段）に記憶されるコンピュータのプログラムが書き写され記憶される（インストール／転送される）。またプログラム／データ記憶部４には外部の電子楽器またはコンピュータから上記ＭＩＤＩ装置または送受信装置を介して送信されるプログラムも記憶される（インストール／転送される）。このプログラムの記憶媒体は通信媒体も含む。
【００２１】
このインストール（転送／複写）は、情報記憶部７が本楽音生成装置にセットされたとき、または本楽音生成装置の電源が投入されたとき自動的に実行され、または操作者による操作によってインストールされる。上記プログラムは、コントローラ２が各種処理を行うための後述するフローチャートに応じたプログラムである。
【００２２】
なお、本装置に予め別のオペレーティングシステム、システムプログラム（ＯＳ）、その他のプログラムが記憶され、上記プログラムはこれらのＯＳ、その他のプログラムとともに実行されてもよい。このプログラムは本装置（コンピュータ本体）にインストールされ実行されたときに、別のプログラムとともにまたは単独で請求項（クレーム）に記載された処理・機能を実行させることができればよい。
【００２３】
また、このプログラムの一部又は全部が本装置以外の１つ以上の別装置に記憶されて実行され、本装置と別装置との間には通信手段を介して、これから処理するデータ／既に処理されたデータ／プログラムが送受され、本装置及び別装置全体として、本発明が実行されてもよい。
【００２４】
このプログラム／データ記憶部４には、上述した音楽的ファクタ情報、上述した各種データ及びその他の各種データも記憶される。この各種データには時分割処理に必要なデータや時分割チャンネルへの割当のためデータ等も含まれる。
【００２５】
楽音信号発生部５では、所定長の楽音波形信号ＭＷが繰り返し発生されサウンドシステム６から発音出力される。上記音高情報に応じて、この繰り返し発生される楽音波形信号ＭＷの発生速度は変化される。また上記音高色情報などの音楽的ファクタ情報に応じて、この繰り返し発生される楽音波形信号ＭＷの波形形状は切り換えられる。この楽音信号発生部５は時分割処理によって複数の楽音信号が同時に生成されポリフォニックに発音される。
【００２６】
タイミング発生部３からは、楽音生成装置の全回路の同期を取るためのタイミングコントロール信号が各回路に出力される。このタイミングコントロール信号は、各周期のクロック信号のほか、これらのクロック信号を論理積または論理和した信号、時分割処理のチャンネル分割時間の周期を持つ信号、チャンネルナンバデータＣＨＮｏ、タイムカウントデータＴＩなどを含む。このタイムカウントデータＴＩは、絶対時間つまり時間の経過を示し、このタイムカウントデータＴＩのオーバフローリセットから次のオーバフローリセットまでの周期は、各楽音のうち最も長い発音時間より長く、場合によって数倍に設定される。
【００２７】
２．部分音テーブル２０
図２はプログラム／データ記憶部４内の部分音テーブル２０を示す。この部分音テーブル２０には、各音色（トーンナンバデータＴＮ）の楽音を構成する各部分音のデータが記憶され、対応する部分音のデータがトーンナンバデータＴＮから変換され読み出される。この部分音のデータは、複数の周波数ナンバ比データＦＮＲ、複数のエンベロープデータ及びエンベロープ微細データＥＢからなっている。
【００２８】
周波数ナンバ比データＦＮＲは、音高に応じた基本周波数に対する各部分音の周波数の比を示す。指定された音高周波数に対して、この周波数ナンバ比データＦＮＲが乗算され、各部分音の周波数が求められる。基本周波数の周波数ナンバ比データＦＮＲは「１」であるから省略されてもよい。この周波数の異なる楽音波形が部分楽音波形となる。
【００２９】
エンベロープデータは、上記各部分音ごとのエンベロープを示す。この各エンベロープデータは、各エンベロープフェーズごとのエンベロープスピードデータＥＳ及びエンベロープレベルデータＥＬからなっている。エンベロープスピードデータＥＳはエンベロープのデジタル演算１周期当たりの演算のステップ値を示す。エンベロープレベルデータＥＬは各フェーズの末尾でエンベロープ演算値が到達する目標値を示す。このエンベロープスピードデータＥＳ及びエンベロープレベルデータＥＬによって演算されるエンベロープ波形データＥＮ（部分エンベロープ波形ＥＮ１、ＥＮ２、ＥＮ３、…）の振幅は、各部分音（各楽音）の発生量を示す。これら各エンベロープスピードデータＥＳ及び各エンベロープレベルデータＥＬ、つまり各エンベロープデータによって、各部分エンベロープ波形が形成される。
【００３０】
この部分音の数は１つの音色につき複数であるが、場合によって１つもある。この部分音は１つの楽音につき合成されて出力される。この合成割合は上記エンベロープデータに応じて変化する。もしこのエンベロープデータによるエンベロープ演算レベルが「０」であれば、当該部分音の割合は「０」となる。この「０」は全エンベロープ波形の中の一部のみで表れることもある。この各部分音のそれぞれに１つずつチャンネルが割り当てられ、個別にエンベロープ制御され、合成されて出力される。
【００３１】
エンベロープ微細指定データＢＳによってエンベロープ微細波形データＥＢの種類が指定され、このエンベロープ微細波形データＥＢはエンベロープ波形データＥＮ（部分エンベロープ波形ＥＮ１、ＥＮ２、ＥＮ３、…）に合成されてエンベロープ波形データＥＮ（部分エンベロープ波形ＥＮ１、ＥＮ２、ＥＮ３、…）が細かく変化される。この複数種類のエンベロープ微細波形データＥＢはメモリに記憶され選択されたものが順次読み出され、フィルタ制御されて上記エンベロープ波形データＥＮ（部分エンベロープ波形ＥＮ１、ＥＮ２、ＥＮ３、…）に合成されて出力される。
【００３２】
３．アサインメントメモリ４０
図３は、楽音信号発生部５のアサインメントメモリ４０を示す。アサインメントメモリ４０には、複数（１６、３２または６４等）のチャンネルメモリエリアが形成されており、上記楽音信号発生部５に形成された複数の楽音生成チャンネルに割り当てられた部分音に関するデータが記憶される。
【００３３】
これら各チャンネルメモリエリアには、チャンネルが割当られた部分音の周波数ナンバデータＦＮ、キーナンバデータＫＮ、上記エンベロープスピードデータＥＳ並びにエンベロープレベルデータＥＬ、エンベロープ微細指定データＢＳ、エンベロープフェーズデータＥＦが記憶される。なお、トーンナンバデータＴＮ、タッチデータＴＣ、トーンタイムデータＴＭ、パートナンバデータＰＮ、上記共鳴度情報、オン／オフデータ等も記憶される。
【００３４】
オン／オフデータは割り当られ発音する楽音（部分音）がキーオン中または発音中（“１”）かキーオフ中または消音中（“０”）かを示す。周波数ナンバデータＦＮは割り当られ発音する部分音の周波数値を示し、上記キーナンバデータＫＮから変換され、さらに上記周波数ナンバ比データＦＮＲが乗算される。上記プログラム／データ記憶部４には、この変換のためのテーブル（デコーダ）が設けられている。
【００３５】
上記エンベロープスピードデータＥＳ、エンベロープレベルデータＥＬ、エンベロープフェーズデータＥＦ及びエンベロープ微細指定データＢＳは上述したとおりである。フェーズカウンタ５０からのカウント値が取り込まれ、エンベロープフェーズデータＥＦとしてアサインメントメモリ４０に記憶される。
【００３６】
キーナンバデータＫＮは割り当られ発音する楽音の音高（周波数）を示し、上記音高情報に応じて決定される。このキーナンバデータＫＮは、１つの楽音を構成する各部分音すべてについて記憶され、オンイベントがあって当該部分音がチャンネル割り当てされ合成されるたびに、キーナンバデータＫＮがアサインメントメモリ４０の該当チャンネルメモリエリアに付加記憶され、オフイベントのたびに対応するキーナンバデータＫＮは消去される。キーナンバデータＫＮの上位データは音域またはオクターブを示し、下位データは音名を示す。
【００３７】
トーンナンバデータＴＮは、割り当てられ発音する楽音の音色を示し、上記音色情報に応じて決定される。このトーンナンバデータＴＮが異なれば音色も異なり、この楽音の楽音波形も異なる。タッチデータＴＣは、発音操作の速さまたは強さを示し、上記タッチ情報に応じて決定される。パートナンバデータＰＮは、上述したように各演奏エリアを示し、発音操作された楽音がどの演奏エリアからのものかによって設定される。トーンタイムデータＴＭは、キーオンイベントからの経過時間を示す。
【００３８】
これら各チャンネルメモリエリアの各データは、オンタイミング及び／又はオフタイミングに書き込まれ、各チャンネルタイミングごとに書き換えられたり、読み出されたりして、上記楽音信号発生部５で処理される。このアサインメントメモリ４０は、楽音信号発生部５の中ではなく、プログラム／データ記憶部４またはコントローラ２の中に設けてもよい。
【００３９】
上記時分割処理によって形成されるチャンネル、すなわち複数の楽音（部分音）を並行して発生するための複数の楽音発生システムへの各楽音の割り当て方法またはトランケート方法は、例えば特願平１−４２２９８号、特願平１−３０５８１８号、特願平１−３１２１７５号、特願平２−２０８９１７８号、特願平２−４０９５７７号、特願平２−４０９５７８号に示された方法が使われる。
【００４０】
４．楽音信号発生部５
図４は上記楽音信号発生部５を示す。上記アサインメントメモリ４０の各チャンネルの周波数ナンバデータＦＮ、トーンナンバデータＴＮ、パートナンバデータＰＮ、タッチデータＴＣ等は、波形読み出し部４１へ送られ、波形メモリ４２からトーンナンバデータＴＮ、パートナンバデータＰＮ、タッチデータＴＣに応じた楽音波形データＭＷが時分割に選択される。
【００４１】
各周波数ナンバデータＦＮは時分割に順次累算されこの累算値の上位データが読み出しアドレスとして波形メモリ４２へ送られ、選択された楽音波形データＭＷが周波数ナンバデータＦＮに応じた速度（音高）で時分割に読み出される。読み出された各楽音波形データＭＷは乗算器４３で各エンベロープデータＥＮが時分割に乗算合成され、累算器４４で全チャンネルの楽音波形データが累算合成され、上記サウンドシステム６で発音される。
【００４２】
上記アサインメントメモリ４０の各チャンネルのエンベロープスピードデータＥＳは、加算器４６、セレクタ４７、エンベロープ演算メモリ４８で時分割に順次累算され、エンベロープ演算データＥＮが演算され、加算器５４を経て、上記乗算器４３へ上記エンベロープ波形データＥＮとして送られる。エンベロープ演算メモリ４８は時分割チャンネル数に応じたエリアを有し、各チャンネルのエンベロープ演算データＥＮが記憶され、各チャンネルごとにエンベロープが演算される。
【００４３】
このエンベロープ演算メモリ４８は、上記チャンネルナンバデータＣＨＮｏによってアドレス指定され、この指定されたアドレスのみが書き込み／読み出しされたりリセットされたりする。このエンベロープ演算メモリ４８の各チャンネルエリアはオンイベント信号によって個別にリセット（クリア）される。
【００４４】
コンパレータ４９には、この演算（累算）されるエンベロープ演算データＥＮと、アサインメントメモリ４０からの各チャンネルのエンベロープレベルデータＥＬとが供給され、エンベロープ演算データＥＮがエンベロープレベルデータＥＬに一致または越えると、フェーズ終了信号が検出され出力される。このフェーズ終了信号はエンベロープの各フェーズの終了を示す。このフェーズ終了信号は上記セレクタ４７に送られて、上記エンベロープ演算データＥＮがエンベロープレベルデータＥＬに切り換えられる。エンベロープレベルデータＥＬは各フェーズのエンベロープ演算の目標値だからである。
【００４５】
上記フェーズ終了信号はフェーズカウンタ５０へ入力され、インクリメントすなわち＋１される。このフェーズカウンタ５０では、各チャンネルのエンベロープのフェーズがカウントされる。このフェーズカウンタ５０は、上記時分割チャンネル数に応じたカウンタが設けられ、上記チャンネルナンバデータＣＨＮｏによって指定されるカウンタのみがイネーブルとされ、この指定されたカウンタのみがインクリメントされたりリセットされたりする。このフェーズカウンタ５０はプリセッタブルであり、コントローラ２によって下記エンベロープフェーズデータがセットされる。
【００４６】
このフェーズカウンタ５０のエンベロープフェーズデータＥＦは上記アサインメントメモリ４０にアドレスデータとして送られ、各チャンネルの中の各フェーズごとのエンベロープスピードデータＥＳ及びエンベロープレベルデータＥＬが読み出されたり書き込まれたりする。このエンベロープフェーズデータＥＦは上記コントローラ２へも送られ、このコントローラ２によってアサインメントメモリ４０にエンベロープフェーズデータＥＦが書き込まれる。
【００４７】
アサインメントメモリ４０は、上記チャンネルナンバデータＣＨＮｏによってアドレス指定され、この指定されたアドレスのみが書き込み／読み出しされたクリアされたりする。このアサインメントメモリ４０の各チャンネルエリアはオンイベント信号によって個別にリセット（クリア）される。
【００４８】
上記波形読み出し部４１の周波数ナンバデータＦＮの累算値の中の１つのビットデータまたは最上位ビットデータは、微細読み出し部５１へ送られて時分割にカウントされる。このカウント値は読み出しアドレスデータとしてエンベロープ微細波形メモリ５２へ送られ、エンベロープ微細波形データＥＢが時分割に順次読み出される。したがって、このエンベロープ微細波形データＥＢの読み出し速度（周波数）は楽音波形の読み出し速度に連動つまり音高または音域という音楽的因子に連動している。
【００４９】
むろん、音高に連動しない独立した読み出しも可能である。例えば、微細読み出し部５１は上記キーオンによって一定速度でカウントが開始される。これにより、音高に関係なくエンベロープ微細波形データＥＢが読み出される。またアサインメントメモリ４０からの各チャンネルのトーンナンバデータＴＮ、パートナンバデータＰＮ、タッチデータＴＣ、トーンタイムデータＴＭ等が、この微細読み出し部５１へ送られ累算されて、エンベロープ微細波形メモリ５２へ読み出しアドレスデータとして送られてもよい。これにより、音色、タッチ、発音時間などの音楽的因子によってエンベロープ微細波形データＥＢの読み出し速度（周波数）が変化する。
【００５０】
読み出されたエンベロープ微細波形データＥＢはフィルタ５３でフィルタ制御されて周波数成分が変更され、上記加算器５４へ送られてエンベロープ波形データＥＮに加算合成される。これにより、エンベロープ波形データＥＮが微妙に変化し、細かい変化を有する楽音を生成できる。
【００５１】
上記エンベロープ微細波形メモリ５２には複数のエンベロープ微細波形データＥＢが記憶され、アサインメントメモリ４０からの上記エンベロープ微細指定データＢＳによって読み出されるエンベロープ微細波形データＥＢが選択される。
【００５２】
なお、アサインメントメモリ４０からの各チャンネルの各キーナンバデータＫＮ、トーンナンバデータＴＮ、パートナンバデータＰＮ、タッチデータＴＣ、トーンタイムデータＴＭ、周波数ナンバデータＦＮ等によって、このエンベロープ微細波形データＥＢが選択されてもよい。これにより、エンベロープ微細波形データＥＢは音高、音域、音色、タッチ、発音時間などの音楽的因子によって変化する。
【００５３】
上記フィルタ５３には、上記アサインメントメモリ４０からの各チャンネルのキーナンバデータＫＮ、トーンナンバデータＴＮ、パートナンバデータＰＮ、タッチデータＴＣ、トーンタイムデータＴＭ等がフィルタ制御データとして時分割に供給される。このフィルタ制御はカットオフ周波数の変更または減衰量の変更である。これにより、音高、音域、音色、タッチ、発音時間などの音楽的因子によって、エンベロープ微細波形データＥＢの周波数成分または振幅が変化する。
【００５４】
なお、フィルタ５３と加算器５４との間に乗算器が設けられ、上記アサインメントメモリ４０からの各チャンネルの各キーナンバデータＫＮ、トーンナンバデータＴＮ、パートナンバデータＰＮ、タッチデータＴＣ、トーンタイムデータＴＭ、周波数ナンバデータＦＮ等がこの乗算器に供給されてもよい。これにより、音高、音域、音色、タッチ、発音時間などの音楽的因子によってエンベロープ微細波形データＥＢの振幅が変化する。
【００５５】
５．合成例
図５は各部分音１、２、３についての部分楽音波形データＭＷ１、ＭＷ２、ＭＷ３、部分エンベロープ波形データＥＮ１、ＥＮ２、ＥＮ３及び部分エンベロープ微細波形データＥＢ１、ＥＢ２、ＥＢ３を示す。部分楽音波形データＭＷ１、ＭＷ２、ＭＷ３は、１つの楽音を構成する３つの部分音の楽音波形であり、それぞれは周波数の異なる正弦波となっている。
【００５６】
部分エンベロープ波形データＥＮ１、ＥＮ２、ＥＮ３は、各部分楽音波形データＭＷ１、ＭＷ２、ＭＷ３に合成される。部分エンベロープ波形データＥＮ１はゆっくりと立ち上がりゆっくりと減衰する。部分エンベロープ波形データＥＮ１は普通に立ち上がり普通に減衰する。部分エンベロープ波形データＥＮ１は急激に立ち上がり急激に減衰する。したがって、周波数の高い部分音成分ほど、キーオンから即座に増大しすぐに減少する。
【００５７】
また、各部分エンベロープ波形データＥＮ１、ＥＮ２、ＥＮ３はピークの山がずれていてレベル「０」の区間もずれているから、結果的に各部分楽音波形データＭＷ１、ＭＷ２、ＭＷ３、各部分エンベロープ波形データＥＮ１、ＥＮ２、ＥＮ３は発音時間の経過に応じて切り換えられる。
【００５８】
これら部分エンベロープ波形データＥＮ１〜３は正または負の値のみであり、正負の片方の特性のみを有している。図５の例では正であるがこれを反転した負であってもよい。これに対して、部分楽音波形データＭＷ１〜３及びエンベロープ微細波形データＥＢ１〜３は、正負の両方の特性を有する。エンベロープ微細波形データＥＢをエンベロープ波形データＥＮ（部分エンベロープ波形データＥＮ１〜３）に合成すると、エンベロープ波形データＥＮの特性は正負片方のみであるので、この合成処理で特別に正負切り替えの処理を行わなくても済む。
【００５９】
しかし、エンベロープ微細波形データＥＢを楽音波形データＭＷに合成すると、楽音波形データＭＷの特性は正負両方有するから、この合成処理で特別に正負切替の処理を行わなくてはならなくなる。
【００６０】
また、エンベロープ波形データＥＮ（部分エンベロープ波形ＥＮ１、ＥＮ２、ＥＮ３、…）にエンベロープ微細波形データＥＢを合成するから、楽音波形データＭＷの周波数特性を変化させることなく、合成楽音の音色を変えることもできるし、フィルタを使わなくても楽音の音色を変えることもできる。したがって、図４のフィルタ５３は省略可能である。
【００６１】
これら部分楽音波形データＭＷ１、ＭＷ２、ＭＷ３、部分エンベロープ波形データＥＮ１、ＥＮ２、ＥＮ３及び部分エンベロープ微細波形データＥＢ１、ＥＢ２、ＥＢ３はキーオンイベントによって読み出し開始されて発生開始タイミングは同じである。
【００６２】
６．処理全体
図６はコントローラ（ＣＰＵ）２によって実行される処理全体のフローチャートを示す。この処理全体は本楽音生成装置の電源オンによって開始され、電源オフまで繰り返し実行される。
【００６３】
まず、プログラム／データ記憶部４の初期化など種々のイニシャライズ処理が行われ（ステップ０１）、上記キーボード１１またはミディインターフェース１５での手動演奏または自動演奏に基づき、発音処理が行われる（ステップ０３）。
【００６４】
この発音処理では、空きチャンネルがサーチされ、サーチされた空きチャンネルにオンイベントに係る楽音が割り当てられる。この楽音の内容は、上記キーボード１１またはミディインターフェース１５からの上記演奏情報（楽音発生情報）、楽音制御情報の音楽的ファクタ情報及びこのときプログラム／データ記憶部４に既に記憶されている音楽的ファクタ情報によって決定される。
【００６５】
この場合、サーチされた空きチャンネルのアサインメントメモリ４０のエリアに「１」のオン／オフデータ、周波数ナンバデータＦＮ、エンベロープスピードデータＥＳ、エンベロープレベルデータＥＬ、「０」のエンベロープフェーズデータＥＦ、エンベロープ微細指定データＢＳなどが書き込まれる。さらに、キーナンバデータＫＮ、トーンナンバデータＴＮ、タッチデータＴＣ、パートナンバデータＰＮ、「０」のトーンタイムデータＴＭも書き込まれる。
【００６６】
次いで、上記キーボード１１またはミディインターフェース１５での手動演奏または自動演奏に基づき、消音（減衰）処理が行われる（ステップ０５）。この消音（減衰）処理では、オフイベント（キーオフイベント、消音イベント）に係る楽音が割り当てられているチャンネルがサーチされ当該楽音が減衰され消音される。この場合、キーオフイベントに係る楽音のエンベロープフェーズがリリースとなり、エンベロープレベルが次第に「０」になる。
【００６７】
さらに、上記ミディインターフェース１５またはパネルスイッチ群１３の各種スイッチの操作があれば、このスイッチに対応する音楽的ファクタ情報が取り込まれ、プログラム／データ記憶部４に記憶され、音楽的ファクタ情報が変更される（ステップ０６）。この後、その他の処理が実行され（ステップ０７）、上記ステップ０２からこのステップ０７までの処理が繰り返される。
【００６８】
７．トーンタイムデータＴＭ及び同時発音数の処理
図７はコントローラ２によって一定周期ごとに実行されるインタラプト処理のフローチャートを示す。この処理で上記トーンタイムデータＴＭのインクリメント及び同時発音数のカウントが行われる。
【００６９】
この処理では、上記アサインメントメモリ４０の各チャンネルエリアにつき（ステップ４１、４６、４７）、オン／オフデータが「１」で楽音が発音中のものについて（ステップ４３）、そのトーンタイムデータＴＭが「＋１」される（ステップ４４）。
【００７０】
また、同じくアサインメントメモリ４０の各チャンネルエリアにつき（ステップ４１、４６、４７）、いったん同時発音数データがクリアされた後（ステップ４２）、オン／オフデータが「１」で楽音が発音中のものがカウント（ステップ４３）、同時発音数が順次「＋１」される（ステップ４５）。このカウントされた同時発音数はプログラム／データ記憶部４に記憶される。
【００７１】
そして、その他の周期的な処理が行われる（ステップ４８）。こうして、各チャンネルの楽音の発音経過時間がカウントされ記憶され上記発音時間情報として利用され、またそのときどきの全チャンネルの発音中の楽音の数がカウントされ記憶され上記同時発音数情報として利用される。
【００７２】
本発明は上記実施例に限定されず、本発明の趣旨を逸脱しない範囲で種々変更可能である。例えば、エンベロープ微細波形データＥＢは、メモリに記憶されて読み出されるほか、乱数発生器によって発生されてもよいし、デジタルシグナルプロセッサの演算処理によって発生されてもよい。この場合、時分割チャンネル数と同じ乱数発生器またはデジタルシグナルプロセッサが用意され、キーオンイベントによってエンベロープ微細波形データＥＢの発生が開始される。
【００７３】
上記エンベロープ微細波形データＥＢは、エンベロープ波形ＥＮと異なり、正負両方の特性をもつ。このエンベロープ微細波形データＥＢは、エンベロープ波形データＥＮより振幅が小さく、エンベロープ微細波形データＥＢの最大振幅はエンベロープ波形データＥＮのピークより小さい、またはエンベロープ微細波形データＥＢの最大振幅はエンベロープ波形データＥＮのサスティーンレベルより小さい、またはエンベロープ微細波形データＥＢの積分値はエンベロープ波形データＥＮの積分値より小さい。
【００７４】
エンベロープ波形はアタックの後すぐに減衰する減衰型エンベロープでもよいし、アタックの後すぐに減衰しない持続型エンベロープでもよい。エンベロープ波形は楽音の音量・振幅を時間的に変化させるための波形（パラメータ）である。
【００７５】
また、波形メモリ４２に記憶される楽音波形データＭＷはサイン波以外の複雑な波形でもよいし、音色、音高（音域）、タッチ、パート、発音時間ごとに異なる波形が記憶され切り替え選択されてもよい。このような複雑な形状の波形は上記各部分音の楽音波形として読み出され出力される。
【００７６】
さらに、各チャンネルに割り当てられる各楽音は部分音以外の１つの独立した楽音であってもよい。この場合、同じチャンネルに割り当てられる楽音の波形は同じ波形形状であり、同じ音高（周波数）である。このような場合でも同様にエンベロープの合成または発生量の合成を行うことができる。
【００７７】
また、上記チャンネルは時分割処理によって形成されたが、このチャンネルと同じ数の楽音信号発生部５が設けられ、各楽音信号発生部５からの楽音波形データＭＷが加算器で加算合成されてもよい。
【００７８】
さらに、上記エンベロープデータは、エンベロープスピードデータＥＳとエンベロープタイムデータＥＴ、またはエンベロープレベルデータＥＬとエンベロープタイムデータＥＴとで代用されてもよい。この場合、エンベロープスピードデータＥＳの累算回数がエンベロープタイムデータＥＴに達したら次のエンベロープフェーズに移行する。また、隣り合う２つのエンベロープレベルデータＥＬの差がエンベロープタイムデータＥＴで除算されて上記エンベロープスピードデータＥＳが求められる。
【００７９】
また、上記乗算器４３にはラウドネスデータが供給されて合成楽音のレベルがラウドネスデータに応じて調整されてもよい。このラウドネスデータは上記アサインメントメモリ４０に記憶され時分割に読み出されて供給されたり、上記アサインメントメモリ４０からの各チャンネルの各キーナンバデータＫＮ、トーンナンバデータＴＮ、パートナンバデータＰＮ、タッチデータＴＣ、トーンタイムデータＴＭ等に基づいて決定される。これにより音高、音域、音色、タッチ、発音時間などの音楽的因子によって合成楽音の振幅が変化する。
【００８０】
さらに、上記エンベロープ微細波形メモリ５２からの出力には乗算器が設けられ、上記各ラウドネスデータが上記アサインメントメモリ４０から時分割に読み出され各部分エンベロープ微細波形データＥＢに乗算されてもよい。この場合アサインメントメモリ４０の各ラウドネスデータの値が音楽的因子によって変化し、１つの楽音に合成される各部分音の各ラウドネスデータの大きさが音楽的因子に基づいて相対的に変化する。これにより、１つの楽音に合成される各部分エンベロープ微細波形データＥＢの相対的割合が音高、音域、音色、タッチ、発音時間などの音楽的因子に応じて変化する。
【００８１】
本発明は、電子楽器、音源装置、カラオケ装置、電子ゲーム装置、自動演奏装置、楽音再生装置などにおける楽音生成装置に適用され、楽音を生成することのできる装置に適用可能である。
本件特許出願の出願当初の特許請求の範囲は以下の通りであった。なお、一部誤記訂正はした。
［１］楽音波形を生成する手段と、  この楽音波形に合成されるエンベロープ波形を生成する手段と、  このエンベロープ波形に合成されてエンベロープ波形を細かく変化させるエンベロープ微細波形を生成する手段と、  上記エンベロープ波形と上記エンベロープ微細波形とを合成する手段と、  この合成されたエンベロープ波形を上記楽音波形に合成する手段とを備えたことを特徴とする楽音生成装置。
［２］楽音波形を生成させ、  この楽音波形に合成されるエンベロープ波形を生成させ、  このエンベロープ波形に合成されてエンベロープ波形を細かく変化させるエンベロープ微細波形を生成させ、  上記エンベロープ波形と上記エンベロープ微細波形とを合成させ、  この合成されたエンベロープ波形を上記楽音波形に合成させることを特徴とする楽音生成方法。
［３］上記エンベロープ波形は正負の片方の特性のみを有し、  上記エンベロープ微細波形及び楽音波形は正負の両方の特性を有し、  上記エンベロープ微細波形の周波数、振幅または周波数成分は、上記楽音波形の音色、音高、音域、タッチ、発音時間によって変化し、  上記楽音波形または上記エンベロープ波形は複数の部分楽音波形または部分エンベロープ波形から構成され、各部分楽音波形または各部分エンベロープ波形に対して異なる部分エンベロープ微細波形がそれぞれ合成され、  この各部分楽音波形または各部分エンベロープ波形は、発音時間の経過に応じて切り換えられ、  上記各部分エンベロープ波形に合成される各部分エンベロープ微細波形の相対的割合は音楽的因子に基づいて変化し、  上記各部分楽音波形、上記各部分エンベロープ波形または上記各部分エンベロープ微細波形は、発生開始タイミングが同じであり、１つの楽音に合成され、  上記エンベロープ微細波形は、乱数発生手段によって発生され、またはエンベロープ微細波形が記憶された記憶手段から読み出されることを特徴とする請求項１記載の楽音生成装置。
【００８２】
【発明の効果】
以上詳述したように、本願発明では、エンベロープ微細波形を生成してエンベロープ波形に合成し、エンベロープ波形を細かく変化させるようにした。したがって、エンベロープ波形を微妙に変化させることができ、自然界に存在する音に近づけることができる等の効果を奏する。また、エンベロープ波形にエンベロープ微細波形を合成するから、楽音波形の周波数特性を変化させることなく、合成楽音の音色を変えることもできる等の効果も奏する。
【図面の簡単な説明】
【図１】楽音制御装置の全体回路を示す。
【図２】部分音テーブル２０を示す。
【図３】アサインメントメモリ４０を示す。
【図４】楽音信号発生部５を示す。
【図５】処理全体のフローチャートを示す。
【図６】部分楽音波形データＭＷ１〜３と部分エンベロープ波形データＥＮ１〜３と部分エンベロープ微細波形データＥＢとの合成例を示す。
【図７】インタラプト処理のフローチャートを示す。
【符号の説明】
２…コントローラ（ＣＰＵ）、３…タイミング発生部、４…プログラム／データ記憶部、５…楽音信号発生部、６…サウンドシステム、７…情報記憶部、１１…キーボード、１３…パネルスイッチ群、１５…ミディインターフェース、２０…部分音テーブル、４０…アサインメントメモリ、４１…波形読み出し部、４２…波形メモリ、４７…セレクタ、４８…エンベロープ演算メモリ、４９…コンパレータ、５０…フェーズカウンタ、４６、５４…加算器、５１…微細読み出し部、５２…円微細波形メモリ、５３…フィルタ。
【図１】
0003595676.tif 000002
【図２】
0003595676.tif 000003
【図３】
0003595676.tif 000004
【図４】
0003595676.tif 000005
【図５】
0003595676.tif 000006
【図６】
0003595676.tif 000007
【図７】
0003595676.tif 000008