(1)全体回路
図1は成分音合成方法を実現するコンピュータプログラムを実行する全体回路、成分音合成方法を実行する全体回路、成分音合成装置、楽音のエンベロープ制御装置、楽音制御装置、自動演奏装置または電子楽器の全体回路1を示す。
キーボード11の各キーは、楽音の発音及び消音を指示するもので、キースキャン回路12によってスキャンされ、キーオン、キーオフを示すデータが検出され、コントローラ2(CPU)によってプログラム/データ記憶部4に書き込まれる。そして、それまでプログラム/データ記憶部4に記憶されていた各キーのオン、オフの状態を示すデータと比較され、各キーのオンイベント、オフイベントの判別が、コントローラ2によって行われる。
このキーボード11の各キーには段差タッチスイッチなどの速度センサー、加速度センサー、圧力センサーが設けられ、段差スイッチごとに上記スキャンが行われ、各段差スイッチの先頭のオン/オフごとにオンイベント/オフイベントの検出が行われる。この段差スイッチなどのセンサーによってタッチの速さと強さを示す上記タッチ情報つまりイニシャルタッチデータとアフタタッチデータとが発生される。
このキーボード11は、ローアキーボード、アッパーキーボード、ペダルキーボード等から成っており、それぞれにつき異なる音色の楽音、つまりエンベロープ信号(波形)の異なる楽音が発音される。そして、アッパーキーボードについては、1つのキーオンで2音色の楽音を同時に鳴らすことも可能である。なお、キーボード11は、電子弦楽器、電子吹奏(管)楽器、電子打楽器(パッド等)、コンピュータのキーボード等で代用される。
パネルスイッチ群13の各スイッチは、スイッチスキャン回路14によって、スキャンされる。このスキャンにより、各スイッチのオン、オフを示すデータが検出され、コントローラ2によってプログラム/データ記憶部4に書き込まれる。そして、それまでプログラム/データ記憶部4に記憶されていた各スイッチのオン、オフの状態を示すデータと比較され、各スイッチのオンイベント、オフイベントの判別が、コントローラ2によって行われる。
ミディ回路15は、外部接続された電子楽器との間で演奏情報の送受を行うためのインターフェースである。この演奏情報はMIDI(ミュージカルインスツルメントデジタルインターフェース)規格のもので、この演奏情報に基づいた発音も行われる。
上記キーボード11またはミディ回路15には、自動演奏装置も含まれる。これらキーボード11、パネルスイッチ群13、ミディ回路15及び自動演奏装置から発生された演奏情報(楽音発生情報)は、楽音を発生させるための情報である。
上記演奏情報(楽音発生情報)は、音楽的ファクタ(因子)情報であり、音高(音域)情報(音高決定因子)、発音時間情報、演奏分野情報、発音数情報、共鳴度情報などである。発音時間情報は楽音の発音開始からの経過時間を示す。演奏分野情報は、演奏パート情報、楽音パート情報、楽器パート情報等を示し、例えばメロディ、伴奏、コード、ベース、リズム、MIDI等に対応したり、または上鍵盤、下鍵盤、足鍵盤、ソロ鍵盤、MIDI等に対応したりしている。
上記音高情報はキーナンバデータKNとして取り込まれる。このキーナンバデータKNはオクターブデータ(音域データ)と音名データとからなる。演奏分野情報は、パートナンバデータPNとして取り込まれ、このパートナンバデータPNは各演奏エリアを識別するデータであって、発音操作された楽音がどの演奏エリアからのものかによって設定される。
発音時間情報は、トーンタイムデータTMとして取り込まれ、キーオンイベントからのタイムカウントデータに基づいたり、またはエンベロープフェーズなどが転用されたりする。この発音時間情報は特願平6−219324号明細書及び図面に発音開始からの経過時間情報として詳しく示される。
発音数情報は同時に並行して発音している楽音の数を示し、例えばアサインメントメモリ40のオン/オフデータが「1」の楽音の数に基づき、この数は特願平6−242878号の図9及び図15、特願平6−2476855号の図8及び図18、特願平6−276857号の図9及び図20、特願平6−276858号の図9及び図21のフローチャートに基づいて求められる。
さらに、上記パネルスイッチ群13には各種スイッチが設けられ、この各種スイッチは音色タブレット、エフェクトスイッチ、リズムスイッチ、ペダル、ホイール、レバー、ダイヤル、ハンドル、タッチスイッチ等であって楽器用のものである。このペダルはダンパーペダル、サスティンペダル、ミュートペダル、ソフトペダル等である。
この各種スイッチより、楽音制御情報が発生され、この楽音制御情報は発生された楽音を制御する情報であって音楽的ファクタ(因子)情報であり、音色情報(音色決定因子)、タッチ情報(発音指示操作の速さ/強さ)、発音数情報、共鳴度情報、エフェクト情報、リズム情報、音像(ステレオ)情報、クオンタイズ情報、変調情報、テンポ情報、音量情報、エンベロープ情報等である。これら音楽的ファクタ情報も上記演奏情報(楽音情報)に合体され、上記各種スイッチより入力されるほか、上記自動演奏情報に合体されたり、上記インターフェースで送受される演奏情報に合体されたりする。
パネルスイッチ群13にはサスティーンスイッチ17が設けられている。このサスティーンスイッチ17が一度オンまたはオンされると、上記演奏される楽音のエンベロープのリリースが時間的に長くなって余韻のある楽音に切り換えられる。このサスティーンスイッチ17が再度オンまたはオフされると、上記演奏される楽音のエンベロープのリリースが時間的に短くなって通常の楽音に切り換えられる。以上の状態はサスティーンスイッチ17の操作ごとに交互に繰り返される。
したがって、サスティーンスイッチ17によって、発音操作の終了タイミング以降で、エンベロープが緩やかに減衰するサスティーン状態と、通常の速さで減衰するリリース状態とが切り換えられる。リリース状態のときには、各成分音信号の各エンベロープが「0」に近づけられる。サスティーン状態のときには、各成分音信号の各エンベロープが揺やかに「0」に近づけられる。
上記音色情報は、鍵盤楽器(ピアノ等)、管楽器(フルート等)、弦楽器(バイオリン等)、打楽器(ドラム等)の楽器(発音媒体/発音手段)の種類等に対応しており、トーンナンバデータTNとして取り込まれる。上記エンベロープ情報は、エンベロープレベルEL、エンベロープタイムET、エンベロープフェーズEFなどである。
このような音楽的ファクタ情報は、コントローラ2へ送られ、後述の各種信号、データ、パラメータの切り換えが行われ、楽音の内容が決定される。上記演奏情報(楽音発生情報)及び楽音制御情報はコントローラ2で処理され、各種データが楽音信号発生部5へ送られ、楽音波形信号MWが発生される。コントローラ2はCPU、DSP(デジタルシグナルプロセッサ)、ROM及びRAMなどからなっている。このようなコントローラ2は、図1の回路ごとに分散されて設けられてもよい。
プログラム/データ記憶部4(内部記憶媒体/手段)はROMまたは書き込み可能なRAM、フラッシュメモリまたはEEPROM等の記憶装置からなり、光ディスクまたは磁気ディスク等の情報記憶部7(外部記憶媒体/手段)に記憶されるコンピュータのプログラムが書き写され記憶される(インストール/転送される)。またプログラム/データ記憶部4には外部の電子楽器またはコンピュータから上記ミディ回路15または送受信装置を介して送信されるプログラムも記憶される(インストール/転送される)。このプログラムの記憶媒体は通信媒体も含む。
このインストール(転送/複写)は、情報記憶部7が本楽音生成装置にセットされたとき、または本楽音生成装置の電源が投入されたとき自動的に実行され、または操作者による操作によってインストールされる。上記プログラムは、コントローラ2が各種処理を行うための後述するフローチャートに応じたプログラムである。
なお、本装置に予め別のオペレーティングシステム、システムプログラム(OS)、その他のプログラムが記憶され、上記プログラムはこれらのOS、その他のプログラムとともに実行されてもよい。このプログラムは本装置(コンピュータ本体)にインストールされ実行されたときに、別のプログラムとともにまたは単独で請求項(クレーム)に記載された処理・機能を実行させることができればよい。
また、このプログラムの一部又は全部が本装置以外の1つ以上の別装置に記憶されて実行され、本装置と別装置との間には通信手段を介して、これから処理するデータ/既に処理されたデータ/プログラムが送受され、本装置及び別装置全体として、本発明が実行されてもよい。
このプログラム/データ記憶部4には、上述した音楽的ファクタ情報、上述した各種データ及びその他の各種データも記憶される。この各種データには時分割処理に必要なデータや時分割チャンネルへの割当のためデータ等も含まれる。
楽音信号発生部5では、周波数値が2倍以上例えば8オクターブ、8倍以上異なり、波形が同じ例えばサイン波の多数の成分音信号が常時出力される。この多数のサイン波の成分音信号は周波数が一定で変化しない。これらの多数のサイン波の成分音信号は、所定の割合つまりエンベロープレベルに応じた割合で合成されて、サウンドシステム6で1つの楽音として出力され放音される。
このような多数のサイン波の成分音信号は、複数の合成楽音ごとに合成され、複数の楽音が出力される。このサイン波の各成分音信号の合成割合または合成の組み合わせは、上述の音色、タッチ、音高、音域、発音時間、演奏分野、発音数、共鳴度などの情報によって、切り換えられ変化される。
タイミング発生部3からは、楽音生成装置の全回路の同期を取るためのタイミングコントロール信号が各回路に出力される。このタイミングコントロール信号は、各周期のクロック信号のほか、これらのクロック信号を論理積または論理和した信号、時分割処理のチャンネル分割時間の周期を持つ信号、チャンネルナンバデータCHNo、タイムカウントデータTIなどを含む。
このタイムカウントデータTIは、絶対時間つまり時間の経過を示し、このタイムカウントデータTIのオーバーフローリセットから次のオーバーフローリセットまでの周期は、各楽音のうち最も長い発音時間より長く、場合によって数倍に設定される。
(2)楽音信号発生部5
図2は上記楽音信号発生部5を示す。成分音発生器21…は、多数例えば108個設けられている。この108個は、1オクターブで12個設けるとして、8オクターブ分12×8=96個とし、これに最高音に12個の発信器を付けるとして、96個+12個=108個となる。
この1オクターブ12個+1個=13個の成分音発生器21…からの成分音信号は、一番低い周波数と一番高い周波数とが1オクターブ分の2倍の周波数比関係にある。これらの間の周波数は、2の12乗根ずつの周波数比ずつずれている。なお、この周波数比は一例であって、これらの周波数比に限られるものではない。
この108個の成分音発生器21…からは、それぞれ周波数の異なる同じ波形のサイン波の成分音信号が電源投入の間、常時出力される。この成分音発生器21…から発信される多数のサイン波の成分音信号は周波数が一定で変化しない。
各成分音発生器21…からのサイン波の成分音信号は、108個の各乗算器22…で各エンベロープ信号(エンベロープ波形)がそれぞれ乗算合成され、各成分音信号のそれぞれのレベル/合成割合が「0」から所定値まで個別に変化制御される。このエンベロープ信号が合成された成分音信号は、加算器23で1つの楽音信号に合成される。
上記各エンベロープ信号は、108個の各エンベロープ発生器24…から出力される。このエンベロープ信号は、上記成分音信号のそれぞれのレベル/合成割合を「0」から所定値まで個別に変化させるためのものである。上記成分音信号が上記合成楽音にとって不要の場合には、当該成分音信号のエンベロープのレベル/合成割合は「0」とされる。
(3)エンベロープ発生器24…
図3は上記エンベロープ発生器24…の1つを示す。エンベロープレジスタ41のエンベロープスピードデータESは、加算器46、エンベロープ演算レジスタ48で順次累算され、エンベロープ演算データENが演算され、上記乗算器22へ上記エンベロープ信号として送られる。
上記エンベロープレジスタ41のエンベロープタイムデータETは、セレクタ47、エンベロープタイムレジスタ49及び加算器51で順次「−1」され、「0」になるとフェーズ終了信号がナンドゲート群52で検出され出力される。このフェーズ終了信号はエンベロープのアタック、ディケイ、サスティーン、リリースの各フェーズの終了を示す。
このフェーズ終了信号はフェーズカウンタ50へ入力され、インクリメントすなわち「+1」される。このフェーズカウンタ50では、エンベロープのフェーズEFがカウントされる。上記フェーズカウンタ50は、オンイベント(発音操作の開始タイミング)時及びオフイベント(発音操作の終了タイミング)時に上記コントローラ2によってリセット(クリア)される。このとき上記エンベロープレジスタ41のエンベロープスピードデータES及びエンベロープタイムデータETの合成/書き換えが行われる。
上記フェーズカウンタ50のエンベロープフェーズデータEFは上記エンベロープレジスタ41にアドレスデータとして送られ、フェーズごとのエンベロープスピードデータES及びエンベロープタイムデータETが読み出されたり書き込まれたりする。上記フェーズ終了信号は上記セレクタ47に送られて、上記エンベロープタイムデータETが次のフェーズのエンベロープタイムデータETに切り換えられる。
このエンベロープ信号のレベル/合成割合は、アタック、ディケイ、サスティーン、リリースの各フェーズにおいて、「0」から所定値まで変化する。上記成分音信号が上記合成楽音にとって不要の場合には、上記エンベロープスピードデータESの値は「0」となる。
このような成分音信号が上記合成楽音にとって不要の場合は、当該成分音信号が上記合成楽音の成分とならない場合のほか、当該合成楽音のオフイベント(発音操作の開始タイミング)の前、または当該合成楽音のオフイベント(発音操作の終了タイミング)以降のエンベロープが減衰し切った場合も含まれる。
なお、上記エンベロープスピードデータESの値が「0」となる場合には、エンベロープ発生器24…の出力側に設けられたアンドゲート群が閉成されて、エンベロープ発生器24…の出力が「0」とされても良い。
(4)成分音エンベロープテーブル31
図4はプログラム/データ記憶部4内の成分音エンベロープテーブル31を示す。この成分音エンベロープテーブル31には、各音色(トーンナンバデータTN)、各音高(キーナンバデータKN)の楽音を構成する各成分音のエンベロープデータ及び成分音コードデータが記憶され、対応する成分音のデータがトーンナンバデータTN及びキーナンバデータKNから変換され読み出される。
各成分音のエンベロープデータは、上記108個のエンベロープ発生器24…の全てに送られるエンベロープデータであり、この各エンベロープデータは、エンベロープ発生器24…内のエンベロープレジスタ41…にストアされ、上記フェーズごとのエンベロープスピードデータES及びエンベロープタイムデータETからなっている。
エンベロープスピードデータESはエンベロープのデジタル演算1周期当たりの演算のステップ値を示す。エンベロープタイムデータETはフェーズごとのエンベロープ演算時間(発生時間、発音時間)、つまり上記デジタル演算の各フェーズのごとの演算回数を示す。このエンベロープスピードデータES及びエンベロープタイムデータETによって演算されるエンベロープ信号(エンベロープ波形)のレベル/合成割合(振幅)は、各成分音信号の発生量を示す。
このエンベロープ信号のレベル/合成割合は、アタック、ディケイ、サスティーン、リリースの各フェーズにおいて、「0」から所定値まで変化する。上記成分音信号が上記合成楽音にとって不要の場合には、上記エンベロープスピードデータESの値は「0」となるか、さらにはエンベロープタイムデータETの値も「0」とされる。
上記成分音コードデータは、上記多数の成分音信号のうちどの成分音信号を合成しどの成分音信号を合成しないかを示す合成情報であり、上記成分音発生器21…のいずれの成分音信号を合成楽音に使うか否かを示し、例えば、108個の成分音発生器21…に対応したビット数を有し、使う成分音発生器21については「1」、使わない成分音発生器21については「0」となる。これにより、キーボード11の複数のキーにわたって、成分音信号の一部または全部は共用されることになる。
この成分音エンベロープテーブル31にはサスティーンデータも記憶されている。このサスティーンデータは、サスティーン効果が付与されたときの、エンベロープの末尾のサスティーン部分のエンベロープスピードESとエンベロープタイムETとからなっている。上記サスティーンスイッチ17がオンされたときに読み出されて使用される。
このサスティーンの部分のエンベロープスピードESとエンベロープタイムETは、トーンナンバデータTNごとに1つずつ記憶されているが、キーナンバデータKNごとに1つずつ記憶されてもよいし、全トーンナンバデータTN及び全キーナンバデータKNにわたって1つのみ記憶されても良い。
このサスティーンにおいては、成分音コードデータも合わせて記憶されている。この成分音コードデータは、同じトーンナンバデータTNまたは/及び同じキーナンバデータKNの成分音コードデータと異なる。この異なる成分音コードデータはオフイベント以降サスティーンが始まるときに上記成分音発生器21…に送り込まれる。
これにより、サスティーンにおいて、レベル/合成割合が「0」の成分音信号の一部または全部のレベル/合成割合が「0」以外のサスティーンレベル値まで徐々に変化し、この後サスティーンの緩やかな減衰に沿って緩やかに「0」に近づく。この結果、サスティーンにおいて、サスティーン前に無かった音色成分を包含させることができ、サスティーンを際立たせることができる。
このようなサスティーン特有の音色成分としては、アタック、ディケイより低音の成分があげられる。この低音成分は、アタック、ディケイの周波数に対して整数倍、ほぼ整数倍、または非整数倍となる。
また、上記多数の成分音信号のうちどの成分音信号を合成しどの成分音信号を合成しないかを示す合成情報である成分音コードデータが、緩やかに減衰するサスティーン状態においても記憶されることになる。
(5)処理全体
図5はコントローラ(CPU)2によって実行される処理全体のフローチャートを示す。この処理全体は本成分音合成装置の電源オンによって開始され、電源オフまで繰り返し実行される。まず、プログラム/データ記憶部4の初期化など種々のイニシャライズ処理が行われる(ステップ01)。
このイニシャライズ処理では、全エンベロープ発生器24…のエンベロープレジスタ41…に「0」のエンベロープスピードデータESが書き込まれ、全エンベロープのレベル/合成割合が「0」にされる。そして、上記キーボード11またはミディ回路15での手動演奏または自動演奏に基づき、上記オンイベントに応じた発音処理が行われる(ステップ03)。
この発音処理では、上記成分音エンベロープテーブル31から各成分音のエンベロープデータが読み出され、上記エンベロープ発生器24…へ送られ、楽音が発音開始される。この楽音の内容は、上記キーボード11またはミディ回路15からの上記演奏情報(楽音発生情報)、楽音制御情報の音楽的ファクタ情報及びこのときプログラム/データ記憶部4に既に記憶されている音楽的ファクタ情報によって決定される。
次いで、上記キーボード11またはミディ回路15での手動演奏または自動演奏に基づき、オフイベントに応じた消音(減衰)処理が行われる(ステップ05)。この消音(減衰)処理では、当該消音に係る各成分音の各エンベロープのフェーズが全てリリースとされる。このとき、サスティーンスイッチ17がオンされていれば、リリースはサスティーン状態にされる。
さらに、上記ミディ回路15またはパネルスイッチ群13の各種スイッチの操作があれば、このスイッチに対応する音楽的ファクタ情報が取り込まれ、プログラム/データ記憶部4に記憶され、音楽的ファクタ情報が変更される(ステップ07)。この後、その他の処理が実行され(ステップ09)、上記ステップ03からこのステップ09までの処理が繰り返される。
上記ステップ07で、上記サスティーンスイッチ17がオンされていれば、上記プログラム/データ記憶部4のレジスタ(図示せず)のサスティーンフラグが「1」にプリセットされ、上記サスティーンスイッチ17がオフされていれば、上記プログラム/データ記憶部4のレジスタのサスティーンフラグが「0」にクリアされる。
(6)発音処理
図6は上記ステップ03の発音処理のフローチャートを示す。まずオンイベントがあると(ステップ11)、上記成分音エンベロープテーブル31に基づいてこのオンイベントに係る楽音のトーンナンバデータTN及びキーナンバデータKNに対応するエンベロープスピードデータES及びエンベロープタイムデータET並びに成分音コードデータが読み出される(ステップ12)。
そして、プログラム/データ記憶部4に記憶されている合成成分音コードデータの各ビットとこの読み出された成分音コードデータの各ビットが対比され、両ビットがともに「1」であれば(ステップ14)、このビットに応じた成分音のエンベロープのエンベロープスピードデータES及びエンベロープタイムデータETが合成エンベロープのものに書き換えられる(ステップ15)。
この合成エンベロープでは、既にエンベロープ発生器24で発生されている単独成分音または合成成分音のエンベロープに、この新たな成分音のエンベロープが加算合成される。このステップ15のエンベロープ合成処理は後述する。合成成分音コードデータの各ビットと成分音コードデータの各ビットとは、上記108個の成分音発生器21…及びエンベロープ発生器24…に対応している。
また、合成成分音コードデータのビットが「0」で成分音コードデータのビットが「1」であれば(ステップ16)、上記ステップ12で読み出されたエンベロープスピードデータES及びエンベロープタイムデータETが、上記対応するビットのエンベロープ発生器24のエンベロープレジスタ41にストアされる(ステップ17)。
さらに、合成成分音コードデータのビットが「1」または「0」で成分音コードデータのビットが「0」であれば(ステップ14、16)、何もなされない。以上のエンベロープ合成処理またはエンベロープ発生開始処理が他の成分音についても繰り返され、つまり合成成分音コードデータの他のビットと成分音コードデータの他のビットについても繰り返される(ステップ18)。
次いで、プログラム/データ記憶部4内の合成成分音コードデータの各ビット値に対して、上記ステップ12で読み出された成分音コードデータの各ビット値が論理和OR演算合成されて、これが上記合成成分音コードデータとされ(ステップ19)、上記読み出された成分音コードデータがプログラム/データ記憶部4にストアされ(ステップ20)、その他の処理が行われる(ステップ21)。
これにより、エンベロープ発生器24…のうち合成エンベロープの発信が行なわれているエンベロープ発生器24…に対応した、合成成分音コードデータのビットが「1」とされ、これ以外のビットが「0」とされる。
また、オンイベントのとき、合成成分音a+bの合成エンベロープスピードデータESs及び合成エンベロープタイムデータETsは書き換えられ、この新たなオンイベントを考慮したエンベロープの合成エンベロープスピードデータESs及び合成エンベロープタイムデータETsに置き換えられる。よって、オンイベントのときに、同じ周波数の各成分音のエンベロープ信号が合成され、1つの楽音として出力される。
以上のように、少なくとも2つの発音操作の後の開始タイミングにおいて、発音操作中の成分音信号の合成情報と、発音操作が開始された成分音信号の合成情報とが、ともに「合成する」であれば(ステップ14)、当該成分音信号につき合成エンベロープが求められる(ステップ15)。
また、少なくとも2つの発音操作の後の開始タイミングにおいて、発音操作中の成分音信号の合成情報が「合成せず」、発音操作が開始された成分音信号の合成情報が「合成する」であれば(ステップ16)、発音操作が開始された成分音信号のエンベロープで発音開始される(ステップ17)。
さらに、少なくとも2つの発音操作の後の開始タイミングにおいて、発音操作中の成分音信号の合成情報が「合成せず」または「合成する」で、発音操作が開始された成分音信号の合成情報が「合成せず」であれば(ステップ14、16)、何もなされない。
また、上記合成エンベロープが求められるたびに(ステップ15)、発音操作中の成分音信号の合成情報が更新される(ステップ19)。さらに、発音操作が開始された成分音信号のエンベロープで発音開始されるたびに(ステップ17)、発音操作中の成分音信号の合成情報が更新される(ステップ19)。
(7)消音処理
図7は上記ステップ05の消音処理のフローチャートを示す。まずオフイベントがあると(ステップ31)、サスティーンスイッチ17がオンされていてサスティーンフラグが「1」になっていれば(ステップ32)、上記成分音エンベロープテーブル31に基づいてこのオフイベントに係る楽音のトーンナンバデータTNに対応するサスティーンのエンベロープスピードデータES及びエンベロープタイムデータET並びに成分音コードデータが読み出される(ステップ33)。
また、サスティーンスイッチ17がオフされていてサスティーンフラグが「0」になっていれば(ステップ32)、上記成分音エンベロープテーブル31に基づいてこのオフイベントに係る楽音のトーンナンバデータTN及びキーナンバデータKNに対応するリリースのエンベロープスピードデータES及びエンベロープタイムデータET並びに成分音コードデータが読み出される(ステップ34)。
次いで、この読み出された成分音コードデータの「1」のビットに応じた成分音のエンベロープのリリースフェーズまたはサスティーンのエンベロープスピードデータES及びエンベロープタイムデータETが合成エンベロープのものに書き換えられる(ステップ35、36)。
この合成エンベロープでは、既にエンベロープ発生器24で発生されている単独成分音または合成成分音の合成エンベロープに、このキーオフに係る成分音のリリースフェーズまたはサスティーンのエンベロープが加算合成(実際には減算合成)される。このステップ36のエンベロープ合成処理は後述する。合成成分音コードデータの各ビットと成分音コードデータの各ビットとは、上記108個の成分音発生器21…及びエンベロープ発生器24…に対応している。
そして、以上のエンベロープ合成処理またはエンベロープ終了開始処理が他の成分音についても繰り返され、つまり成分音コードデータの他のビットについても繰り返される(ステップ37)。
次いで、上記ステップ20でプログラム/データ記憶部4に記憶されていた成分音コードデータのうち、上記ステップ33、34で読み出された成分音コードデータと同じものが消去され(ステップ38)、残った成分音コードデータの各ビット値が論理和OR演算合成されて、これが上記合成成分音コードデータとされ(ステップ39)、その他の処理が行われる(ステップ40)。
これにより、エンベロープ発生器24…のうちリリースまたはサスティーン効果の減衰に入ったエンベロープを除外して、なお合成エンベロープの発信が行なわれているエンベロープ発生器24…に対応した、合成成分音コードデータのビットが「1」とされ、これ以外のビットが「0」とされる。
また、オフイベントのときにも、合成成分音a+bの合成エンベロープスピードデータESs及び合成エンベロープタイムデータETsは書き換えられ、この新たなリリースまたはサスティーン効果を考慮したエンベロープの合成エンベロープスピードデータESs及び合成エンベロープタイムデータETsに置き換えられる。よって、オフイベントのときにも、同じ周波数の各成分音のエンベロープ信号が合成され、1つの楽音として出力される。
以上のように、少なくとも2つの発音操作の先の終了タイミングにおいて、発音操作中の成分音信号の合成情報が「合成せず」または「合成する」で、発音操作が終了された成分音信号の合成情報が「合成する」であれば(ステップ35)、当該成分音信号につき合成エンベロープが求められる(ステップ36)。また、上記合成エンベロープが求められるたびに(ステップ36)、発音操作中の成分音信号の合成情報が更新される(ステップ39)。
また、サスティーンスイッチ17がオンされていれば、少なくとも2つの発音操作の先の終了タイミングにおいてサスティーン状態が開始され、発音操作中の成分音信号の合成情報が「合成せず」または「合成する」で、発音操作が終了された成分音信号の合成情報が「合成する」であれば(ステップ35)、当該成分音信号につきサスティーン状態における合成エンベロープが求められる(ステップ36)。また、上記合成エンベロープが求められるたびに(ステップ36)、発音操作中の成分音信号の合成情報が更新される(ステップ39)。
このように、同時に並行して発音操作されている複数のキーボード11のキーのいずれかが消音操作されたとき、上記共用される成分音信号のうち、この消音操作に係らない成分音信号のエンベロープまたは合成エンベロープ波形がリリース状態にならないように維持される。また、この消音操作に係わる成分音信号のエンベロープ波形のみがリリース状態にされる。
これにより、キーボード11の一つのキーの消音操作があっても、複数のキーにわたって共用されている成分音信号すべてがリリース状態にならないようにでき、消音操作に係らない他の指示に係る成分音までリリースされてしまわず、一つの消音操作で他のキーの楽音の成分が変化してしまうことがない。
また、キーボード11の一つのキーの消音操作があっても、複数のキーにわたって共用されている成分音信号すべてがリリース状態にならないようにできるから、複数のキーにわたってサスティーンを付加することもできる。このようなことは、特にドローバー型のオルガン(鍵盤楽器)においても有効である。
(8)エンベロープ合成処理
図8は、上記ステップ15及びステップ36のエンベロープ合成処理のフローチャートを示す。まず、上記フェーズカウンタ50のフェーズカウント値とエンベロープタイムレジスタ49の残存エンベロープタイムデータETがコントローラ2によって読み出され(ステップ51)、この残存エンベロープタイムデータETに残りのフェーズのエンベロープタイムデータETが順次累算され、現在時点から成分音aの各フェーズの末尾までの絶対時間が求められる(ステップ52)。
図9の例では、成分音aが発音開始し(タイミングTa0)、成分音bが発音開始し(タイミングTb0)、続いて成分音aのアタックフェーズが終了し(タイミングTa1)、この後成分音aのディケイが終了し(タイミングTa2)、成分音bのアタックが終了し(タイミングTb1)、成分音aのサスティーンが終了し(タイミングTa3)、成分音bのディケイが終了し(タイミングTb2)、成分音aのリリースが終了し(タイミングTa4)、成分音bのサスティーンが終了し(タイミングTb3)、成分音bのリリースが終了する(タイミングTb4)。
この場合、上記残存エンベロープタイムデータETは(Ta1−Tb0)となり、上記残りのフェーズのエンベロープタイムデータETの累算値は(Ta2−Tb0)、(Ta3−Tb0)、(Ta4−Tb0)となる。各フェーズの各エンベロープタイムデータETはこれら各タイミングTa0、Ta1、Ta2、Ta3、Ta4の間の時間を示している。したがって、この残りのフェーズのエンベロープタイムデータETが累算されれば、成分音bの発音開始から各タイミングTa1、Ta2、Ta3、Ta4までの時間が求められる。
この求められた各絶対時間(Ta2−Tb0)、(Ta3−Tb0)、(Ta4−Tb0)には、この各タイミング直前のフェーズの成分音aのエンベロープスピードデータESと成分音aを示すフラグa(「1」)も対応づけて記憶される(ステップ53)。
次いで、成分音bについても同様にして、残存エンベロープタイムデータETに残りのフェーズのエンベロープタイムデータETが順次累算され、現在時点から成分音bの各フェーズの末尾までの絶対時間が求められる(ステップ54)。この絶対時間は同様に(Tb1−Tb0)、(Tb2−Tb0)、(Tb3−Tb0)、(Tb4−Tb0)となる。
この求められた各絶対時間(Tb1−Tb0)、(Tb2−Tb0)、(Tb3−Tb0)、(Tb4−Tb0)には、この各タイミング直前のフェーズの成分音bのエンベロープスピードデータESと成分音bを示すフラグb(「0」)も対応づけて記憶される(ステップ55)。
なお、上記タイミングTa3、Tb3は、いずれもオフイベントタイミング(オフ操作のタイミング)であり、上記タイミングTa4、Tb4はいずれもオフイベントタイミングによってシフトされる。したがって、上記絶対時間(Ta3−Tb0)、(Ta4−Tb0)、(Tb3−Tb0)、(Tb4−Tb0)はオンイベントタイミング(オン操作のタイミング)では求められない。
しかし、エンベロープの形状がオフ操作によって変化しない場合には求められる。上記絶対時間(Ta3−Tb0)、(Ta4−Tb0)、(Tb3−Tb0)、(Tb4−Tb0)は、上述の消音処理のときに求められる。このため、各成分音のサスティーンの末尾については、絶対時間は取り得る最大値とされ、エンベロープスピードデータESは「0」とされる。
ただし、上記成分音aがリリース(サスティーン効果付与時も含む)に入っていて、成分音bが発音開始する場合には、上記絶対時間(Ta4−Tb0)は求められる。成分音aはすでにオフ操作され、リリース終了のタイミングがはっきりしているからである。
そして、上記ステップ22乃至25で求められた絶対時間(Ta2−Tb0)、(Ta3−Tb0)、(Ta4−Tb0)、(Tb1−Tb0)、(Tb2−Tb0)、(Tb3−Tb0)、(Tb4−Tb0)は大きい順に並べられ、対応づけられたエンベロープスピードデータESも同様に並べ変えられる(ステップ56)。これにより、図9(3)に示すような各タイミングが順番にソートされる。
このように、同時に並行して発音操作されている複数のキーボード11のキーのいずれかが消音操作されたとき、上記共用される成分音信号のうち、この消音操作に係らない成分音信号のエンベロープまたは合成エンベロープ波形がリリース状態にならないように維持される。また、この消音操作に係わる成分音信号のエンベロープ波形のみがリリース状態にされる。
これにより、キーボード11の一つのキーの消音操作があっても、複数のキーにわたって共用されている成分音信号すべてがリリース状態にならないようにでき、消音操作に係らない他の指示に係る成分音までリリースされてしまわず、一つの消音操作で他のキーの楽音の成分が変化してしまうことがない。
また、キーボード11の一つのキーの消音操作があっても、複数のキーにわたって共用されている成分音信号すべてがリリース状態にならないようにできるから、複数のキーにわたってサスティーンを付加することもできる。このようなことは、特にドローバー型のオルガン(鍵盤楽器)においても有効である。
図10(1)はこのようにしてソートされた絶対時間とエンベロープスピードデータESと成分音フラグを示す。このデータ内容は、上記図9(3)の合成エンベロープ信号に対応したものとなっている。
次いで、各絶対時間(Ta2−Tb0)、(Ta3−Tb0)、(Ta4−Tb0)、(Tb1−Tb0)、(Tb2−Tb0)、(Tb3−Tb0)、(Tb4−Tb0)から、それぞれ1つ前の絶対時間が減算される(ステップ57)。
これにより、図9(3)の合成エンベロープ信号の各タイミングの間の新たなフェーズの合成エンベロープタイムデータETsが図10(2)左欄に示すように求められる。なお、先頭の合成エンベロープタイムデータETsは、上記絶対時間の先頭の(Ta2−Tb0)がそのままコピーされる。
さらに、各絶対時間に対応したエンベロープスピードデータESには、より先の絶対時間のエンベロープスピードデータESであって、自己の成分音フラグa、bと異なるフラグを有するデータESが加算合成される(ステップ58)。
これにより、成分音aのエンベロープスピードESと成分音bのエンベロープスピードESとが図9(3)のフェーズごとに加算合成され、図9(3)の合成エンベロープ信号の各タイミングの間の新たなフェーズの合成エンベロープスピードデータESsが図10(2)右欄に示すように求められる。
このようにして求められた合成エンベロープ信号の各フェーズの合成エンベロープタイムデータETs及び合成エンベロープスピードデータESsは、エンベロープ発生器24のエンベロープレジスタ41に書き込まれ、フェーズカウンタ50がクリアされる(ステップ59)。
これにより合成エンベロープの生成が開始される。この場合、合成エンベロープのオンイベントまたはオフイベントの時点以降の部分が、エンベロープ発生器24のエンベロープレジスタ41に記憶され生成される。
こうして、成分音aのエンベロープスピードデータES及びエンベロープタイムデータETは、同じ周波数の新たな成分音bが発生されるたびに書き換えられ、この新たな成分音bを合成したエンベロープの合成エンベロープスピードデータESs及び合成エンベロープタイムデータETsに置き換えられる。
よって、同じ周波数の同じ成分音の発生量が合成され、1つにまとめて発生されることになる。また、同じ周波数の同じ成分音のエンベロープ信号が合成され、1つにまとめて出力されることになる。
そして、成分音aのリリース以降のエンベロープスピードデータESとエンベロープタイムデータETとが成分音aのエンベロープ発生器24のエンベロープレジスタ41に記憶され、成分音bのリリース以降のエンベロープスピードデータESとエンベロープタイムデータETも成分音bのエンベロープ発生器24のエンベロープレジスタ41に記憶される(ステップ60)。このリリース以降のエンベロープスピードデータESとエンベロープタイムデータETは、上記オフイベント以降にエンベロープ合成処理が行われる。
こうして、発音操作の開始タイミングまたは終了タイミングが異なり、しかも同時に並行して発生される少なくとも2つの上記合成楽音のうち、後の開始タイミングまたは先の終了タイミングにおいて、この少なくとも2つの合成楽音の各成分音信号の各エンベロープにつき、合成したエンベロープが成分音信号ごとに求められ、これが1つのエンベロープとして各成分音信号に合成される。
以上の図9の合成されるエンベロープは、2つだけでなく、3つ以上でもよい。この場合でも、先頭を除く後のすべての開始タイミングまたは末尾を除くすべての先の終了タイミングにおいて、図6乃至図8の処理が実行され、合成エンベロープが演算される。
この場合でも、同時に並行して発音操作されている複数のキーボード11のキーのいずれかが消音操作されたとき、上記共用される成分音信号のうち、この消音操作に係らない成分音信号のエンベロープまたは合成エンベロープ波形がリリース状態にならないように維持される。また、この消音操作に係わる成分音信号のエンベロープ波形のみがリリース状態にされる。
(9)サスティーン状態のエンベロープ合成処理
図11はサスティーン状態における、同じ周波数の成分音aと成分音bとのエンベロープ合成の波形の例を示す。タイミングTa11で成分音aが先にオフになると、成分音aのサスティーンのエンベロープスピードデータESとエンベロープタイムデータETで合成エンベロープが合成し直される(ステップ51〜60)。これにより、合成し直された合成エンベロープ信号は成分音bのホールドレベル/合成割合(ESb11)、すなわちレベル「0」ではなく有限値のレベル「Lb」に向かって徐々に緩やかに減衰していく。
こうして、発音操作の先の終了タイミング以降において、合成されたエンベロープレベル/合成割合は、未だ終了タイミングに達していない合成楽音の成分音信号のエンベロープレベル(維持レベル/ホールドレベル、アタックレベル、ディケイレベルなど)に向かって漸近することになる。
さらに、タイミングTb11で成分音bが次いでオフになると、成分音bのサスティーンのエンベロープスピードデータESとエンベロープタイムデータETで合成エンベロープが合成し直される(ステップ51〜60)。これにより、合成し直された合成エンベロープ信号はレベル「0」に向かって徐々に緩やかに減衰していく。
もし、成分音bがオフにならなければ、合成エンベロープ信号は成分音bのホールドレベル(上記エンベロープレベル)に達したのち、このホールドレベルを維持していく。この後に、成分音bがオフになると、合成し直された合成エンベロープ信号はレベル「0」に向かって徐々に緩やかに減衰していく。
成分音aのオフと成分音bのオフとの間で、サスティーンスイッチ17がオンからオフにされると、この間でオフイベントは発生しないので(ステップ31)、成分音aのエンベロープはもはや書き換えられず、この結果成分音aのサスティーンは維持される。
しかし、成分音bのオフでは、サスティーンがオフになっているから(ステップ32→34)、サスティーンのエンベロープデータは読み出されず(ステップ33)、通常のリリースのエンベロープデータが読み出されるので(ステップ34)、サスティーン状態は解除され通常のリリース状態になる(ステップ36)。
また、成分音aのオフと成分音bのオフとの間で、サスティーンスイッチ17がオフからオンにされると、この間でオフイベントは発生しないので(ステップ31)、成分音aのエンベロープはもはや書き換えられず、この結果成分音aにはサスティーンは付与されない。
しかし、成分音bのオフでは、サスティーンがオンになっているから(ステップ32→33)、サスティーンのエンベロープデータが読み出され(ステップ33)、通常のリリースのエンベロープデータは読み出されないので(ステップ34)、通常のリリース状態は解除されサスティーン状態になる(ステップ36)。
上記共用される成分音信号のうち、一部の成分音信号のエンベロープ波形がサスティーン状態にあるとき、同時に並行して発音操作されている複数の上記キーのいずれかが消音操作されたとき、この消音操作に係らない成分音信号のエンベロープ波形または合成エンベロープ波形はサスティーン状態に維持される。また、この消音操作に係わる成分音信号のエンベロープ波形もサスティーン状態またはリリース状態にされる。
このとき、図11のタイミングTa11とTb11との間で、サスティーンスイッチ17がオンからオフに切り換えられると、成分音bはサスティーン状態ではなくリリース状態になる。しかし、成分音aはサスティーン状態が維持される。
これにより、他のキーに係る楽音がサスティーン状態にあるとき、一つのキーの消音操作があっても、このサスティーン状態がリリース状態に切換えられず、サスティーン状態が維持されることができる。このようなことは、特にドローバー型のオルガン(鍵盤楽器)においても有効である。
以上の図11の合成されるエンベロープは、2つだけでなく、3つ以上でもよい。この場合でも、先頭を除く後のすべての開始タイミングまたは末尾を除くすべての先の終了タイミングにおいて、図6乃至図8の処理が実行され、合成エンベロープが演算される。
このような場合でも、他のキーに係る楽音がサスティーン状態にあるとき、一つのキーの消音操作があっても、このサスティーン状態がリリース状態に切換えられず、サスティーン状態が維持されることができる。
上記加算器66…と乗算器62…との接続関係は、多数の成分音信号のうちどの成分音信号を合成しどの成分音信号を合成しないかを示していて、上述と同じ合成情報を表す。発音操作の後の開始タイミングにおいて、発音操作中の成分音信号の合成情報と、発音操作が開始された成分音信号の合成情報とが、ともに「合成する」であれば、当該成分音信号につき合成エンベロープが求められる。
発音操作の後の開始タイミングにおいて、発音操作中の成分音信号の合成情報が「合成せず」、発音操作が開始された成分音信号の合成情報が「合成する」であれば、発音操作が開始された成分音信号のエンベロープで発音開始される。発音操作の後の開始タイミングにおいて、発音操作中の成分音信号の合成情報が「合成せず」または「合成する」で、発音操作が開始された成分音信号の合成情報が「合成せず」であれば、何もされない。
発音操作の先の終了タイミングにおいて、発音操作中の成分音信号の合成情報が「合成せず」または「合成する」で、発音操作が終了された成分音信号の合成情報が「合成する」であれば、当該成分音信号につき合成エンベロープが求められる。
発音操作の先の終了タイミングにおいてサスティーン状態が開始されると、発音操作中の成分音信号の合成情報が「合成せず」または「合成する」で、発音操作が終了された成分音信号の合成情報が「合成する」であれば、当該成分音信号につきサスティーン状態における合成エンベロープが求められる。
(10)楽音信号発生部5(第二実施例)
図12は上記楽音信号発生部5の第二実施例を示す。この楽音信号発生部5ではドローバーを使っている。ドローバーシステムは、複数のドローバーを備え、電気オルガンなどに使われている音色調整用ストップ(音栓)の一種である。この各ドローバーによって、基音と倍音などの周期の異なる複数のサイン波などの周期の異なる複数の波形のそれぞれのレベル/合成割合が変更決定され、これらの波形の合成波形の形状が変更決定される。
上記キーボード11の各キーのオンデータは、乗算器61…、乗算器62…、………で振幅データが乗算され、発音ソース回路63…に振幅データとして送り込まれる。この振幅データはドローバー回路65で設定される。発音ソース回路63…からは、上記振幅データに応じた振幅で、周期の異なる同じ波形のサイン波などが出力される。
これらの振幅が制御された周期の異なる複数のサイン波などは、エンベロープ発生器67でエンベロープが合成され、加算器64で加算合成され、下記ドローバー回路65…で設定された形状の波形の音色で、上記サウンドシステム6に送られる。
このエンベロープ発生器67は、各発音ソース回路63…ごと、つまり共用される成分音信号ごとに設けられ、一つのキーの消音操作があっても、複数のキーにわたって共用されている成分音信号/サイン波すべてがリリース状態にならず、他のキーに係る楽音がサスティーン状態にあるときでもリリース状態にならずサスティーン状態が維持される。
上記ドローバー回路65…の設定を変更すると、周波数の異なる成分音信号(サイン波)の合成の組み合わせまたは合成割合が変更され、合成される楽音波形の形状が変更され、合成楽音波形の音色が変更される。これにより、キーボード11の複数のキーにわたって、成分音信号の一部または全部は共用されることになる。
上記ドローバー回路65…では、引き出し量などの操作量または設定量に応じたデータが発生され、上記乗算器61…、乗算器62…、………、に送り込まれ、上記キーボード11の各キーのオンデータと乗算され、上記振幅データとされる。これにより、各キーの楽音のいずれの波形も、ドローバー回路65…で設定された波形で統一される。
また、各発音ソース回路63…からは、1オクターブ12音またはnオクターブ12音×nに対応した異なる周波数の上記サイン波などが出力される。したがって、各キーの音高に応じた周波数が基音として選択される。
上記乗算器61…、乗算器62…、………からの出力は、単独でまたは加算器66…で加算されて、発音ソース回路63…に振幅データとして送り込まれる。この加算においては、1オクターブまたは数オクターブ異なる同じ音名の振幅データが加算される。これにより、ちょうど1オクターブまたは数オクターブ異なる逓倍または整数倍の成分音/高調波音が合成されることになる。
上記発音ソース回路63…からの振幅が制御されたサイン波は、エンベロープ発生器67でエンベロープ波形が合成され出力される。このエンベロープ波形は、アタック、ディケイ、サスティーン、リリースと変化する。上記キーボード11のキーオフつまり、発音操作の終了タイミング以降で、サスティーン状態とリリース状態と切換えられる。
サスティーン状態は、エンベロープレベルが緩やかに減衰し、リリース状態は、エンベロープレベルが通常の速さで減衰する。このエンベロープ発生器67は、上述のエンベロープ発生器24と同じでも良い。
この図12の回路では、分かりやすくするために簡易な回路構成にしてある。この図12のドローバー回路65は2つであるが、実際には、3つ以上となってもよいし、キーボード11のキーは2オクターブ24個+1個であるが、実際にはもっと多数でもよい。これに応じて、発音ソース回路63…、乗算器61…、62…、加算器66…の数も増えてもよい。
(11)エンベロープ発生器67(第二実施例)
図13は上記図12のエンベロープ発生器67を示す。上記発音ソース回路63…からの振幅が制御されたサイン波は、上記乗算器71でエンベロープ波形が乗算され、上記加算器64に送られる。
先リリースレジスタ72にはリリースのエンベロープのスピードデータがコントローラ2によってストアされ、先サスティーンレジスタ73にはサスティーンのエンベロープのスピードデータがコントローラ2によってストアされる。
リリースのエンベロープスピードデータは「0」より大きく「1」より小さく、「0」に近い値であり、急峻な減衰が形成される。サスティーンのエンベロープスピードデータは「0」より大きく「1」より小さく、「1」に近い値であり、緩やかな減衰が形成される。
先リリースレジスタ72のリリースエンベロープスピードデータは、乗算器74を経て、後リリースレジスタ75にストアされ、アンドゲート77を経て上記乗算器74に帰還される。これにより、リリースエンベロープスピードデータ同士が順次累乗されていき、順次減衰していくエンベロープ波形が形成される。
先サスティーンレジスタ73のサスティーンエンベロープスピードデータは、乗算器78を経て、後サスティーンレジスタ76にストアされ、アンドゲート79を経て上記乗算器78に帰還される。これにより、サスティーンエンベロープスピードデータ同士が順次累乗されていき、順次減衰していくエンベロープ波形が形成される。
後リリースレジスタ75からのリリースのエンベロープデータは、セレクタ(マルチプレクサ)80を経て上記乗算器71へ送られ、上記サイン波に乗算される。後サスティーンレジスタ79からのサスティーンのエンベロープデータは、セレクタ(マルチプレクサ)80を経て上記乗算器71へ送られ、上記サイン波に乗算される。
上記アンドゲート77、79には所定周期のクロック信号φが開成信号として供給され、上記リリースまたはサスティーンのエンベロープスピードデータ同士の累乗が所定周期ごとに行なわれる。
上記キーボード11の各キーのオン/オフ信号は、エッジ検出回路81で立下りエッジが検出され、このワンショットの検出パルスは、上記後リリースレジスタ75、後サスティーンレジスタ76にリセット信号として供給され、ストア値が「1」にリセットされる。エッジ検出回路81は例えばデジタルまたはアナログの微分回路などから構成される。
上記サスティーンスイッチ17のオン/オフを示すサスティーンフラグは、サスティーンオンオフレジスタ82にコントローラ2によってストアされ、上記セレクタ80に供給される。これにより、サスティーンモードでは、後サスティーンレジスタ76からのサスティーンエンベロープデータが乗算器71に送られ、非サスティーンモードでは、後リリースレジスタ75からのリリースエンベロープデータが乗算器71に送られる。
このエンベロープ発生器67は、各発音ソース回路63…ごと、つまり共用される成分音信号キーボード11のキーのごとに設けられているので、キーボード11の一つのキーの消音操作があっても、複数のキーにわたって共用されている成分音信号/サイン波すべてがリリース状態にならないようにでき、消音操作に係らない他のキーに係る成分音までリリースされないし、複数のキーにわたってサスティーンを付加することができる。また、他のキーに係る楽音がサスティーン状態にあるとき、一つのキーの消音操作があっても、このサスティーン状態がリリース状態に切換えられず、サスティーン状態が維持される。
上記先リリースレジスタ72のリリースエンベロープスピードデータと、先サスティーンレジスタ73のサスティーンエンベロープスピードデータとは、音楽的ファクタに応じて切換えられたり、リリースエンベロープスピードデータとリリースエンベロープスピードデータとの相対値の組み合わせが切換えられたりしてもよい。この場合、上記成分音エンベロープテーブル31にこれらのリリースエンベロープスピードデータとリリースエンベロープスピードデータとが音楽的ファクタごとに記憶され読み出される。
この図12及び図13の回路はデジタル回路のほか同様のアナログ回路でも実現可能である。上記成分音信号の波形はサイン波のほか、コサイン波、矩形波、三角波、台形波、段差のある波形、複数周期の複雑な波形など、どのような波形でもよい。この図12及び図13の第二実施例の他の構成、作用、効果は、上記第一実施例と同じであり、これらの説明は本実施例でも記載されているものとするし、この第二実施例の記載内容も上記第一実施例に記載されているものとする。例えば図8のエンベロープ合成処理などは本実施例でも実行され、キーボード11のキーのオンイベントまたはオフイベントがあった時に実行される。
(12)全体回路(第三実施例)
図14は成分音合成方法を実現するコンピュータプログラムを実行する全体回路、成分音合成方法を実行する全体回路、成分音合成装置、楽音のエンベロープ制御装置、楽音制御装置、自動演奏装置または電子楽器の全体回路1の第三実施例を示す。
この第三実施例と上記第二実施例とはチャンネル割り当てを行うキーアサイナはなく、キーボード11の全キーに対応して発音回路/音源回路(発音ソース回路63…、DCO108…、DCA109…)が設けられており、このうち音程が等しい発音回路/音源回路が共用/共通にされている。なお、上記第一実施例にはキーアサイナはある。
ROM92に記憶されたプログラムに基づいて、CPU(コントローラ)91によって、各種処理が実行され、各種処理データはRAM93に記憶される。このプログラムは、後述または前述したフローチャートに対応している。インターフェース回路94によって、CPU91からのスキャン情報がキースキャナ95またはパネルスキャナ96との間で送受され、キースキャナ95またはパネルスキャナ96からの演奏情報または楽音情報が、上記CPU91との間で送受される。
音源回路(トーンジェネレータ)97では波形ROM98に記憶された波形生成のための情報に基づいて楽音波形信号が生成される。また、エンベロープ情報に基づいて、この生成された楽音波形信号に対してアタック、ディケイ、サスティーン、リリースのエンベロープ制御、またはサスティーン効果付与のエンベロープ制御がなされる。
DSP(デジタルシグナルプロセッサ)99では、ディケイRAM100に記憶された情報に基づいて、回転効果、共鳴付加、残響付加などの音楽的効果付与がなされ、サウンドシステム101から放音出力される。
上記CPU91、ROM92、RAM93、インターフェース回路94、キースキャナ95、パネルスキャナ96の間はCPUバス102によって互いにデータ・情報の送受がなされ、音源回路97と波形ROM98との間は音源バス103によって互いにデータ・情報の送受がなされ、デジタルシグナルプロセッサ99とディケイRAM100との間は効果バス104によって互いにデータ・情報の送受がなされる。
(13)パネルスイッチ群105(第三実施例)
図15はパネルスイッチ群105の第三実施例を示す。キーボード11はアッパー、ローア、ペダルの3つ/複数に分かれており、これに応じてパネルスイッチ群105も3つ/複数に分かれている。このパネルスイッチ群105はスイッチと称しているが、このスイッチは操作子も含む広い概念である。この各パネルスイッチ群105には、複数のドローバー106…が設けられていて、ペダル用2本、ローア用9本、アッパー用9本となっている。
ペダルのドローバー106…は8フィート(2倍音)、16フィート(基音)の2つ、ローア及びアッパーのドローバー106…は1フィート(16倍音)、1+1/3フィート(10倍音)、1+3/5フィート(10倍音)、2フィート(8倍音)、2+2/3フィート(7倍音)、4フィート(6倍音)、5+1/3フィート(3倍音)、8フィート(2倍音)、16フィート(基音)の9つとなっている。
このドローバー106…には可変抵抗器などが連結され、ドローバー106…のスライド量に応じた電圧値がアナログーデジタル変換されて、上記CPU91などに取り込まれる。
このドローバー106…のスライド量によって、基音と倍音などの周期の異なる複数のサイン波などの周期の異なる複数の波形のそれぞれのレベル/合成割合が変更決定され、これらの波形の合成波形の形状が変更決定される。サスティーンスイッチ107は上述の図1のサスティーンスイッチ17と同じである。
これらの各フィートの成分音は互いに共用される。例えば、8フィート(2倍音)の成分音及び16フィート(基音)の成分音では、8フィート(2倍音)の成分音が両方で共用される。フィート(2倍音)の成分音及び16フィート(基音)の成分音では、5+1/3フィート(3倍音)の成分音が両方で共用される。
さらに、8フィート(2倍音)の成分音及び5+1/3フィート(3倍音)の成分音では、10+2/3フィート(1.5倍音)または4フィート(6倍音)の成分音が両方で共用される。2フィート(8倍音)の成分音及び1+3/5フィート(10倍音)の成分音では、13+1/3フィート(1.2倍音)、4/5フィート(20倍音)または2/5フィート(40倍音)の成分音が両方で共用される。このことは上記第一実施例及び第二実施例でも同様である。
(14)音源回路(トーンジェネレータ)97(第三実施例)
図16は上記音源回路(トーンジェネレータ)97のうちペダルキーボード11の25鍵C0〜C2に対応した部分を示す。DCO(デジタルコントロールオシレータ)108…はデジタル制御される発信器であり、37個設けられている。
16フィートで音高C0〜C2の25個、8フィートでC1〜C3の25個、このうち音高C1〜C2の12個は共用されるから、25+25−1−12=37個の上記のとおりとなる。このDCO108…は、上記発音ソース回路63…と同様であり、音高C0〜C3に対応した異なる周波数の上記サイン波などが上記成分音信号として出力され、各キーの音高に応じた周波数が基音として出力される。
この各DCO108…からの各成分音信号は、同じく37個のDCA(デジタルコントロール増幅器)109…で、レベル/合成割合が制御され、ミキサー110で1つの楽音信号に合成されて、上記デジタルシグナルプロセッサ99を通じてサウンドシステム101へ送られて放音される。
上記キースキャナ95で検出されたキーボード11のオンキーまたはオフキーの音高と、パネルスキャナ96で検出されたドローバー106…の各操作量に応じて、上記各DCA109…のそれぞれのレベル/合成割合(ゲイン)が決定される。さらにこのレベル/合成割合(ゲイン)の変化のレート(速度)も制御され、生成された楽音波形信号に対してアタック、ディケイ、サスティーン、リリースのエンベロープ制御がなされ、上記サスティーンスイッチ107のオンに応じて、緩やかに減衰変化するサスティーン効果付与のエンベロープ制御がなされる。
(15)処理全体(第三実施例)
図17はCPU(コントローラ)91によって実行される処理全体のフローチャートを示す。この処理全体は本成分音合成装置の電源オンによって開始され、電源オフまで繰り返し実行される。まず、RAM93の初期化など種々の後述するイニシャライズ処理が行われる(ステップ101)。
次いで、キーボード11またはパネルスイッチ群105のオン操作またはオフ操作などのオンイベントまたはオフイベントがあると(ステップ102)、このイベントに応じた処理が実行される(ステップ103)。そして、時変数処理が行われ(ステップ104)、以上のステップ102から104の処理が電源オフまで繰り返される。この時変数処理は、時間の経過に伴って変化する変数に対する処理であり、パーカス音の減衰処理などが実行される。
(16)イニシャライズ処理(ステップ101)(第三実施例)
図18は上記図17のステップ101のイニシャライズ処理のフローチャートを示す。この処理では、まず音源回路97の初期化が実行される。つまり、DCO108の波形及び周波数が所定の波形及び所定の周波数に設定され、DCA109のゲイン/レベル/合成割合が「0」にリセットされ、ミキサー110の合成割合が所定値に設定される(ステップ111)。
次いで、RAM93内のドローバー106…に関する記憶エリアがクリアされる。つまり、全ドローバー106…のシフト量/設定量のデータが「0」にリセットされる(ステップ112)。そして、RAM93内のDCA109…に関する記憶エリアがクリアされる。つまり、全DCA109…のゲイン値/レベル値/合成割合値のデータが「0」にリセットされる(ステップ113)。最後にその他のイニシャライズ処理が実行される(ステップ114)。
(17)イベント処理(ステップ103)(第三実施例)
図19は上記図17のイベント処理(ステップ103)のフローチャートを示す。まず、上記イベントが、キーボード11のいずれかのキーのオンまたはオフであれば(ステップ121)、このイベントがあったキーに応じた発音処理または消音処理などのキーイベント処理が実行される(ステップ122)。
また、上記イベントが、パネルスイッチ群105のドローバー106…の操作であれば(ステップ123)、ドローバー106…のシフト量/設定量に応じたドローバー処理が実行される(ステップ124)。さらに、上記イベントが、サスティーンスイッチ107のオン(オフ)の操作であれば(ステップ125)、サスティーンスイッチ状態を示すデータにつき、オン「1」及びオフ「0」のいずれか一方から他方へ切り換えられ(テップ126)、上記以外であればその他のイベント処理が実行される(ステップ127)。
(18)キーイベント処理(ステップ122)(第三実施例)
図20は上記図19のキーイベント処理(ステップ122)のフローチャートを示す。まず、キーオンイベント時及びキーオフイベント時(ステップ131)において、i=「0」とされ(ステップ132、133)、i番目のドローバー106のシフト量/設定量が読み込まれる(ステップ134、135)。
このi番目のドローバー106の当該キーイベントに係るキーに対応する発音を担当しているDCA109のゲイン値/レベル値/合成割合値が読み込まれ(ステップ136、137)、このDCA109のゲイン値/レベル値//合成割合値にドローバー106のシフト量/設定量/合成割合値が加算または減算される(ステップ138、139)。
この場合、上記キーイベントがキーオンであれば(ステップ131)、加算され、キーオフであれば(ステップ131)、減算される。この加算値または減算値は、エンベロープの新たな目標値となる。
こうして、キーオン時には新たなキーオンに係る成分音信号のみのエンベロープのみが付加され、キーオフ時には新たなキーオフに係る成分音信号のみのエンベロープのみが除外され、他のエンベロープまで除外されない。
次いで、キーオフイベント時(ステップ131)において、サスティーンスイッチ107がオン状態であれば(ステップ140)、エンベロープの減衰演算のレート/速度が小さくされ(ステップ141)、サスティーンスイッチ107がオフ状態であれば(ステップ140)、エンベロープの減衰演算のレート/速度が大きくされる(ステップ142)。
こうして、他のキーに係る楽音がサスティーン状態にあるとき、一つのキーの消音操作があっても、このサスティーン状態がリリース状態に切換えられず、サスティーン状態が維持されることができる。
以上のステップ131〜141の処理は、上記iが順次+1され(ステップ143、144)、全ドローバー106…につき繰り返される(ステップ145、146)。これは、ペダルに限られず、ローア、アッパーでも、全ドローバー106…につき、同様に繰り返される。
(19)ドローバー処理(ステップ124)(第三実施例)
図21は上記図19のドローバー処理(ステップ124)のフローチャートを示す。まず、RAM93内のドローバー106のシフト量/設定量がクリアされ(ステップ151)、i=「0」とされ(ステップ152)、RAM93内のi番目のDCA109のゲイン値/レベル値がクリアされ(ステップ153)、j=「0」とされる(ステップ154)。
次いで、i番目のDCA109が担当しているキーが検出され(ステップ155)、このキーが押鍵中/オン中であれば(ステップ156)、j番目のドローバー106のシフト量/設定量が読み込まれ(ステップ157)、i番目のDCA109のゲイン値/レベル値に加算される(ステップ158)。
以上のステップ155〜158の処理は、上記jが順次+1され(ステップ159)、全ドローバー106…につき繰り返され(ステップ160)、さらに上記iが順次+1され(ステップ161)、全キーつまり全DCA109…につき繰り返される(ステップ162)。
こうして、全ドローバー106…のシフト量/設定量/合成割合値に応じた、成分音信号のレベル/合成割合が決定され、合成楽音信号の波形及び音色が決定される。
他のローア、アッパーも、このペダルと同様の構成であるが、鍵数が多くなり、ドローバー106…も多くなるので、これに応じた構成となる。この図14乃至図21の第三実施例の他の構成、作用、効果は、上記第一実施例または第二実施例と同じであり、これらの説明は本実施例でも記載されているものとするし、この第三実施例の記載内容も上記第一実施例または第二実施例に記載されているものとする。例えば図8のエンベロープ合成処理などは本実施例でも実行され、上記イベント処理(ステップ103)のキーボード11のキーのオンイベントまたはオフイベントがあった時に実行される。
(20)他の実施の形態
本件発明は上記実施例に限定されず、本件発明の趣旨を逸脱しない範囲で種々変更可能である。例えば、上記成分音コードデータは、現在発音中の合成楽音に使用されている成分音信号の「数」を示してもよい。上記実施例では、使う成分音発生器21については「1」、使わない成分音発生器21については「0」であった。
しかし、この実施例では、使わない成分音発生器21については「0」であるが、使う成分音発生器21については「1以上」となり、この使われている成分音発生器21が合成楽音に供給している成分音信号の数に応じた「数」となる。
この場合、上記図6のステップ14では、合成成分音コードデータの各ビットが「1以上」で、読み出された成分音コードデータの各ビットが「1」であることが判別される。上記ステップ19では、プログラム/データ記憶部4内の合成成分音コードデータの各ビット値に対して、上記ステップ12で読み出された成分音コードデータの各ビット値が加算されて、これが上記合成成分音コードデータとされる。
また、図7のステップ35では、読み出された成分音コードデータの「1以上」のビットに応じた成分音のエンベロープのリリースフェーズまたはサスティーンのエンベロープスピードデータES及びエンベロープタイムデータETが合成エンベロープのものに書き換えられる。
上記ステップ38、39では、上記ステップ20でプログラム/データ記憶部4に記憶されていた成分音コードデータのうち、上記ステップ33、34で読み出された成分音コードデータと同じものがデクリメント「−1」され、これが新たな合成成分音コードデータとされる。
上記各成分音信号は一定の周波数であったが、チューニング操作によって周波数が変更されるようにされてもよい。成分音信号を共用するときには、当該成分音信号の周波数は一つの決まった周波数の成分音信号となる。
上記サスティーンスイッチ17は、音域/音高ごと、演奏分野(パート)ごと、タッチごと、音色ごと、発音時間ごと、発音数ごとに複数設けられ、これら音域、パート、タッチ、音色の別ごとにサスティーンが付加されたりされなかったりしてもよい。
図4の成分音エンベロープテーブル31の成分音コードデータ及びエンベロープデータは、キーナンバデータKN(音高/音域)ごと、トーンナンバデータTN(音色)ごとに記憶されるほか、タッチごと、発音時間ごと、演奏分野(パート)ごと、発音数ごとに、異なる値/同じ値で記憶されても良い。
この場合、上述の音楽的ファクタに基づいて、これらのタッチ、発音時間、演奏分野(パート)、発音数、音色、音高/音域に応じた、成分音コードデータ及びエンベロープデータが読み出され、楽音信号発生部5にストアされ、これらの音楽的ファクタごとに異なる成分音の組み合わせが選択され、音楽的ファクタごとに異なるエンベロープ信号が発生される。
成分音発生器21…から発生される成分音はサイン波以外に、コサイン波、矩形波、三角波、のこぎり波、台形波、段差のある波形、その他の複雑な波形でもよいし、音色、音高(音域)、タッチ、演奏分野(パート)、発音時間ごとに異なる波形が記憶され切り替え選択されてもよい。このような複雑な形状の波形は上記各成分音の楽音波形として読み出され出力される。
また、成分音発生器21…から発生される成分音は成分音以外の1つの独立した楽音であってもよい。この場合、同じ成分音発生器21…から発生される楽音の波形は同じ波形形状であり、同じ音高(周波数)である。このような場合でも同様にエンベロープの合成または発生量の合成を行うことができる。
さらに、合成されるのはエンベロープ以外の成分音信号の振幅でもよい。この場合上記ステップ15、34で合成されるのは、振幅決定因子例えばタッチデータTCなどである。そして、各タッチデータTCは、上記オンイベント及びオフイベントごとに相加され、この相加されたタッチデータTCは上記乗算器22…へ送られ、成分音信号に乗算される。
なお、この相加されたタッチデータTCは、当該成分音信号の各エンベロープスピードデータESに乗算されてもよい。この乗算されたエンベロープスピードデータESを使って上記ステップ15、34のエンベロープ合成が行われる。
上記エンベロープデータはエンベロープスピードESとエンベロープタイムETとで演算されるものであったが、予めメモリにアタック、ディケイ、サスティーン、リリースのエンベロープレベルデータが記憶され、これが読み出されて、読み出された複数のエンベロープレベルデータが重複するときは、加算合成されて出力されてもよい。これにより、図8のエンベロープ合成処理は不要となり、読み出されるエンベロープレベルデータが加算されていく。
また、上記エンベロープ発生器24…は、成分音発生器21…と同じ数用意されたが、いずれか一方または両方を、時分割処理によって、数を少なくしてもよい。この場合、エンベロープ演算レジスタ48、エンベロープタイムレジスタ49、フェーズカウンタ50は、複数のチャンネルメモリエリアが形成され、時分割チャンネル数に応じたデータが記憶され、順次シフト循環出力される。
さらに、上記エンベロープデータは、エンベロープスピードデータESとエンベロープレベルデータEL、またはエンベロープレベルデータELとエンベロープタイムデータETとで代用されてもよい。この場合、隣り合う2つのエンベロープレベルデータELの差がエンベロープスピードデータESで除算されて上記エンベロープタイムデータETが求められる。また、隣り合う2つのエンベロープレベルデータELの差がエンベロープタイムデータETで除算されて上記エンベロープスピードデータESが求められる。
上記第一実施例においては、各楽音、各成分音または各キーにチャンネルを割り当てるキーアサイナが設けられていたが、第一実施例においてこのキーアサイナは省略されて、全成分音信号ごとに楽音信号発生部5が構成されてもよい。逆に、上記第二実施例及び第三実施例においては、このキーアサイナはなかったが、第一実施例と同様にこのキーアサイナが設けられても良い。
また、本発明は電子楽器またはコンピュータなどにおいて実施され得る。上記各図の回路の機能はソフトウエア(フローチャート)によって実施されても良いし、上記各図のフローチャートの機能はハードウエア(回路)によって実施されてもよい。各請求項記載の発明は、当該発明をコンピュータに実行させるコンピュータプログラムを記憶した媒体、コンピュータプログラムの通信装置(方法)、楽音発生装置(方法)、楽音制御装置(方法)としても実現可能である。
(21)他の発明の効果
[1]周波数値が異なり波形が同じ多数の成分音信号を出力させ、この多数の成分音信号を合成して1つの合成楽音として出力させ、 上記楽音につき、音高の異なる当該楽音の発音及び消音の指示をする複数の指示手段であって、 この複数の指示手段にわたって、上記多数の成分音信号の一部または全部を共用する複数の指示手段につき、 同時に並行して発音操作されている複数の上記指示手段のいずれかが消音操作されたとき、上記共用される成分音信号のエンベロープのうち、 この消音操作に係わる成分音信号のエンベロープを、この消音操作に係らない他の成分音信号のエンベロープまたは合成エンベロープから抽出区別させ、消音操作に係わる成分音信号のエンベロープのみをリリース状態にさせ、消音操作に係らない他の成分音信号のエンベロープまたは合成エンベロープをリリース状態にならないように維持させることを特徴とする成分音合成方法。
周波数値が2倍以上異なり波形が同じ多数の成分音信号であって、各周波数が一定の多数の成分音信号を出力させ、この多数の成分音信号を合成して1つの合成楽音として出力させ、
この複数の指示手段にわたって、上記多数の成分音信号の一部または全部を共用する複数の指示手段につき、 同時に並行して発音操作されている複数の上記指示手段のいずれかが消音操作されたとき、上記共用される成分音信号のうち、 この消音操作に係らない成分音信号のエンベロープまたは合成エンベロープをリリース状態にならないように維持するとともに、 この消音操作に係わる成分音信号のエンベロープのみをリリース状態にすることを特徴とする成分音合成装置。
[2]周波数値が異なり波形が同じ多数の成分音信号を出力し、この多数の成分音信号を合成して1つの合成楽音として出力する楽音出力手段と、 上記楽音につき、音高の異なる当該楽音の発音及び消音の指示をする複数の指示手段であって、この複数の指示手段にわたって、上記多数の成分音信号の一部または全部を共用する複数の指示手段と、 同時に並行して発音操作されている複数の上記指示手段のいずれかが消音操作されたとき、上記共用される成分音信号のエンベロープのうち、 この消音操作に係わる成分音信号のエンベロープを、この消音操作に係らない他の成分音信号のエンベロープまたは合成エンベロープから抽出区別し、消音操作に係わる成分音信号のエンベロープのみをリリース状態にさせ、消音操作に係らない他の成分音信号のエンベロープまたは合成エンベロープをリリース状態にならないように維持させることを特徴とする成分音合成方法。
周波数値が2倍以上異なり波形が同じ多数の成分音信号であって、各周波数が一定の多数の成分音信号を出力し、この多数の成分音信号を合成して1つの合成楽音として出力する楽音出力手段と、
同時に並行して発音操作されている複数の上記指示手段のいずれかが消音操作されたとき、上記共用される成分音信号のうち、 この消音操作に係らない成分音信号のエンベロープまたは合成エンベロープをリリース状態にならないように維持させるとともに、 この消音操作に係わる成分音信号のエンベロープのみをリリース状態にさせることを特徴とする成分音合成方法。
[2]周波数値が2倍以上異なり波形が同じ多数の成分音信号であって、各周波数が一定の多数の成分音信号を出力し、この多数の成分音信号を合成して1つの合成楽音として出力する楽音出力手段と、 上記楽音につき、音高の異なる当該楽音の発音及び消音の指示をする複数の指示手段であって、この複数の指示手段にわたって、上記多数の成分音信号の一部または全部を共用する複数の指示手段と、 同時に並行して発音操作されている複数の上記指示手段のいずれかが消音操作されたとき、上記共用される成分音信号のうち、 この消音操作に係らない成分音信号のエンベロープまたは合成エンベロープをリリース状態にならないように維持するとともに、 この消音操作に係わる成分音信号のエンベロープのみをリリース状態にするエンベロープ制御手段とを備えたことを特徴とする成分音合成装置。
同時に並行して発音操作されている複数の上記指示手段のいずれかが消音操作されたとき、上記共用される成分音信号のうち、 この消音操作に係らない成分音信号のエンベロープまたは合成エンベロープをリリース状態にならないように維持させるとともに、 この消音操作に係わる成分音信号のエンベロープのみをリリース状態にさせるエンベロープ制御手段とを備えたことを特徴とする成分音合成装置。
[3]上記指示手段の発音操作の終了タイミング以降で、緩やかに減衰するサスティーン状態と、通常の速さで減衰するリリース状態とを切り換える切り換え手段をさらに備え、 上記共用される成分音信号のうち、一部の成分音信号のエンベロープがサスティーン状態にあるとき、 同時に並行して発音操作されている複数の上記指示手段のいずれかが消音操作されたとき、 この消音操作に係らない成分音信号のエンベロープまたは合成エンベロープをサスティーン状態に維持するとともに、 この消音操作に係わる成分音信号のエンベロープもサスティーン状態にするまたはリリース状態にすることを特徴とする請求項2記載の成分音合成装置。
[4]発音操作の開始タイミングまたは終了タイミングが異なり、しかも同時に並行して発生される少なくとも2つの上記合成楽音のうち、後の開始タイミングまたは先の終了タイミングにおいて、この少なくとも2つの合成楽音の各成分音信号の各エンベロープにつき、合成したエンベロープを成分音信号ごとに求め、これを1つのエンベロープとして各成分音信号に合成するエンベロープ合成手段とを備えたことを特徴とする請求項2または3記載の成分音合成装置。
これにより、発音操作の開始タイミングまたは終了タイミングにおいて、異なる合成楽音にわたって共通する成分音信号の各エンベロープを合成するので、別々にエンベロープを付与する無駄がなくなる。
[5]上記先の終了タイミング以降において、上記合成されたエンベロープレベルは、未だ終了タイミングに達していない合成楽音の成分音信号のエンベロープレベルに向かって漸近することを特徴とする請求項2、3または4記載の成分音合成装置。これにより、発音操作の終了に達していない発音操作中の楽音/成分音については、なお継続して発音させ続けることができる。
[6]上記エンベロープは、発音操作の終了タイミング以降で、緩やかに減衰するサスティーン状態と、通常の速さで減衰するリリース状態とが切り換えられ、 リリース状態のときには、上記各成分音信号の各エンベロープを「0」に近づけ、 サスティーン状態のときには、上記各成分音信号の各エンベロープを揺やかに「0」に近づけるとともに、レベルが「0」の成分音信号の一部または全部のレベルを「0」以外の値まで徐々に変化させ、この後緩やかに「0」に近づけることを特徴とする請求項2、3または4記載の成分音合成装置。これにより、リリース状態とサスティーン状態とで合成される成分音の内容を異ならせて/切り換えて音色を異ならせる/切り換えることができる。
[7]上記成分音信号が上記合成楽音にとって不要の場合は、当該成分音信号が上記合成楽音の成分とならない場合、当該合成楽音の発音操作の開始タイミング前、または当該合成楽音の発音操作の終了タイミング以降のエンベロープが減衰し切った場合であることを特徴とする請求項2、3、4、5または6記載の成分音合成装置。
これにより、成分音信号が上記合成楽音の成分とならない状態から成分となる場合、発音操作の開始前から開始後になる場合、発音操作の終了前から終了後になる場合、空きチャンネルをサーチしたり、割当てチャンネルをサーチしたりする処理が不要となり、楽音の発音開始及び発音終了の処理が迅速になり、発音開始及び発音終了の反応が速くなる。
さらに、時分割処理によるキーアサイナでは、既にチャンネルに割り当てられる全ての楽音の全成分音の各周波数と、これからチャンネルを割り当てる楽音の全成分音の各周波数とで、またはこれから発音終了させる楽音の全成分音の各周波数とで、一致するものをサーチ・チェックする必要がなくなり、楽音の発音開始及び発音終了の処理が速くなり、楽音の発音開始及び発音終了の反応が遅くなる。
[8]上記指示手段は異なる複数の音高に対応しており、上記複数の成分音信号は、これらの各音高にほぼ対応した周波数及びこの周波数のほぼ逓倍であることを特徴とする請求項2、3、4、5、6または7記載の成分音合成装置。これにより、オクターブの異なる同じ音名で成分音信号を共用することができ、成分音信号を効率的かつ有効に使用することができる。
[9]上記多数の成分音信号のうちどの成分音信号を合成しどの成分音信号を合成しないかを示す合成情報を記憶し、 上記発音操作の後の開始タイミングにおいて、 発音操作中の成分音信号の合成情報と、発音操作が開始された成分音信号の合成情報とが、ともに「合成する」であれば、当該成分音信号につき合成エンベロープを求め、 発音操作中の成分音信号の合成情報が「合成せず」、発音操作が開始された成分音信号の合成情報が「合成する」であれば、発音操作が開始された成分音信号のエンベロープで発音開始させ、 発音操作中の成分音信号の合成情報が「合成せず」または「合成する」で、発音操作が開始された成分音信号の合成情報が「合成せず」であれば、何もしないことを特徴とする請求項2、3、4、5、6、7または8記載の成分音合成装置。これにより、エンベロープを合成するか合成しないかを、合成情報に基づいて判断することができ、楽音の発音開始の処理が迅速になり、発音開始の反応が速くなる。
[10]上記多数の成分音信号のうちどの成分音信号を合成しどの成分音信号を合成しないかを示す合成情報を記憶し、 上記発音操作の先の終了タイミングにおいて、 発音操作中の成分音信号の合成情報が「合成せず」または「合成する」で、発音操作が終了された成分音信号の合成情報が「合成する」であれば、当該成分音信号につき合成エンベロープを求めることを特徴とする請求項2、3、4、5、6、7、8または9記載の成分音合成装置。これにより、エンベロープを合成するか合成しないかを、合成情報に基づいて判断することができ、楽音の発音終了の処理が迅速になり、発音終了の反応が速くなる。
[11]上記多数の成分音信号のうちどの成分音信号を合成しどの成分音信号を合成しないかを示す合成情報を、緩やかに減衰するサスティーン状態において記憶し、 上記発音操作の先の終了タイミングにおいてサスティーン状態を開始し、 発音操作中の成分音信号の合成情報が「合成せず」または「合成する」で、発音操作が終了された成分音信号の合成情報が「合成する」であれば、当該成分音信号につきサスティーン状態における合成エンベロープを求めることを特徴とする請求項2、3、4、5、6、7、8、9または10記載の成分音合成装置。
これにより、サスティーン状態においても、エンベロープを合成するか合成しないかを、合成情報に基づいて判断することができ、サスティーン状態においても、楽音の発音終了の処理が迅速になり、発音終了の反応が速くなる。
[12]上記合成エンベロープを求めるたびに、発音操作中の成分音信号の合成情報を更新することを特徴とする請求項2、3、4、5、6、7、8、9、10または11記載の成分音合成装置。これにより、発音操作の開始または終了ごとに、この合成情報を最新の状態にすることができ、エンベロープを合成するか合成しないかの判断を、過誤無く迅速に行なうことができる。
[13]上記合成される多数の成分音信号の合成割合または上記共用される成分音信号の全成分音信号に占める割合は変化されることを特徴とする請求項2、3、4、5、6、7、8、9、10、11または12記載の成分音合成装置。これにより、合成される楽音の音色が変化される。
[14]CPUが、 周波数値が2倍以上異なり波形が同じ多数の成分音信号であって、各周波数が一定の多数の成分音信号を常時出力させ、この多数の全成分音信号を合成して1つの楽音として出力させ、 この各成分音信号のそれぞれのレベルを「0」から所定値まで個別に変化させるためのエンベロープを発生して各成分音信号に合成させ、各成分音信号のそれぞれのレベルを「0」から所定値まで個別に変化させることであって、当該成分音信号が上記合成楽音にとって不要の場合には、この成分音信号のエンベロープのレベルは「0」とされ、 発音操作の開始タイミングまたは終了タイミングが異なり、しかも同時に並行して発生される少なくとも2つの上記合成楽音のうち、後の開始タイミングまたは先の終了タイミングにおいて、この少なくとも2つの合成楽音の各成分音信号の各エンベロープにつき、合成したエンベロープを成分音信号ごとに求めさせ、これを1つのエンベロープとして各成分音信号に合成させることを特徴とする成分音合成方法/実行させることを特徴とする請求項2、3、4、5、6、7、8、9、10、11、12または13記載の成分音合成のためのコンピュータプログラム/成分音合成装置。
これにより、多数の成分音信号を常時出力しているにもかかわらず、不要な成分音信号を「0」に押さえることができ、不要な成分音信号が不用意に聞こえてしまうことがなくなる。
[15]各成分音信号のそれぞれのレベルを「0」から所定値まで個別に変化させるためのエンベロープを発生して各成分音信号に合成し、各成分音信号のそれぞれのレベルを「0」から所定値まで個別に変化することであって、当該成分音信号が上記合成楽音にとって不要の場合には、この成分音信号のエンベロープのレベルは「0」とすることを特徴とする請求項2、3、4、5、6、7、8、9、10、11、12、13または14記載の成分音合成のためのコンピュータプログラム/成分音合成装置。
これにより、多数の成分音信号を常時出力しているにもかかわらず、不要な成分音信号を「0」に押さえることができ、不要な成分音信号が不用意に聞こえてしまうことがなくなる。
また、時分割処理によるキーアサイナのように、発音開始時に空きチャンネルをサーチしたり、発音終了時に発音終了させるべき楽音に割り当てられているチャンネルをサーチしたりする処理が不要となり、楽音の発音開始及び発音終了の処理が迅速になり、楽音の発音開始及び発音終了の反応が速くなる。
さらに、時分割処理によるキーアサイナでは、既にチャンネルに割り当てられる全ての楽音の全成分音の各周波数と、これからチャンネルを割り当てるまたはこれから発音終了させる楽音の全成分音の各周波数とで、一致するものをサーチ・チェックしなければならず、楽音の発音開始の処理が遅くなり、楽音の発音開始の反応が遅くなる。特に同時発音数が多いときには顕著となる。