JP3634130B2 - 楽音生成装置及び楽音生成方法 - Google Patents
楽音生成装置及び楽音生成方法 Download PDFInfo
- Publication number
- JP3634130B2 JP3634130B2 JP32155197A JP32155197A JP3634130B2 JP 3634130 B2 JP3634130 B2 JP 3634130B2 JP 32155197 A JP32155197 A JP 32155197A JP 32155197 A JP32155197 A JP 32155197A JP 3634130 B2 JP3634130 B2 JP 3634130B2
- Authority
- JP
- Japan
- Prior art keywords
- impulse response
- response signal
- data
- isj
- musical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
本発明は、楽音生成装置に関し、特にインパルス応答信号を使って楽音信号を生成させる装置などに関する。
【0002】
【従来技術】
従来、楽音生成装置の分野では、インパルス応答波形信号に関する制御を行うような装置はほとんどなかった。ただ、インパルス応答波形信号そのものをサンプリング記憶し、これを繰り返して読み出し、この繰り返し周期を指定音高に応じたものとするものはあった。この場合、指定された音高が高ければ読み出しの繰り返し周期は短くなり、指定された音高が低ければ読み出しの繰り返し周期は長くなる。また、このインパルス応答波形信号そのものの読み出し速度は一定であり、音高が高くても低くてもインパルス応答波形信号そのものの読み出し速度は変化しなかった。
【0003】
【発明が解決しようとする課題】
しかしながら、このような装置では、単にインパルス応答波形信号を読み出して楽音に応用するだけであり、楽音の音色などの内容をいろいろ変化させることはできなかった。通常楽音の音色などを変化させるにはフィルタなどを使って楽音の周波数成分(特性)を変化させる。
【0004】
ところが、楽音の周波数特性(スペクトルエンベロープ、周波数スペクトル成分、フォルマント形状)は上記インパルス応答波形信号そのものの読み出し速度(発生速度)を変化させるだけで達成できる。インパルス応答波形信号の発生速度を変化させれば、周波数特性が周波数軸上で伸びたり縮んだりして周波数特性が変化し、この結果音色も変化する。この場合、インパルス応答波形信号そのものの読み出し速度が上記読み出しの繰り返し周期と連動していては、独自に音色の決定を行うことはできず、音高に応じた音色の決定となり、音高に従属した音色となってしまう。
【0005】
本発明は上述した課題を解決するためになされ、本発明の第1の目的は音高に従属しない独立の音色の決定を行うことにあり、第2の目的はインパルス応答波形信号を使って斬新な楽音信号を生成することにある。
【0006】
【課題を解決するための手段】
上記目的を達成するために、本発明では、発生すべき楽音信号の周波数特性に対応した所定長のインパルス応答信号を繰り返し発生し、この繰り返し発生されるインパルス応答信号の繰り返しの周期を、音高決定因子に応じて変化させ、上記音高決定因子とは異なる音色決定因子に応じて、上記発生されるインパルス応答信号そのものの発生速度を、上記繰り返し周期とは独立に変化させた。
【0007】
これにより、インパルス応答信号から生成される楽音信号の音色が音高とは独立に変化され、音色は音高に従属せず、自由に音色を変化させることができる。また、インパルス応答信号の繰り返し発生によって所望の楽音信号が発生され斬新な楽音を生成できる。
【0008】
また本発明では、繰り返し周期と発生速度との決定された複数のインパルス応答信号を合成することにより、合成される前のインパルス応答信号とは異なる別のインパルス応答信号を生成する。これにより、少ないインパルス応答信号でより多くのインパルス応答信号を生成することができる。
【0009】
さらに本発明では、発生された音楽的因子に応じて、繰り返し発生されるインパルス応答信号の波形形状を切り換えた。これにより、インパルス応答信号の波形形状そのものの変化を音高変化に連動させたり、音色変化に連動させたりすることができる。
【0010】
また本発明では、インパルス応答信号の繰り返し周期または読み出し速度が変化すれば、このインパルス応答信号に基づいて出力される楽音信号のパワー、エネルギーまたは音量も変化する。本発明では、インパルス応答信号の繰り返し周期または読み出し速度に基づいて、発生されるインパルス応答信号の大きさが変化する。これにより、出力される楽音信号のパワー、エネルギーまたは音量が一定にされ、インパルス応答信号の繰り返し周期または読み出し速度に応じて変化してしまうことがない。
【0011】
さらに本発明では、発生すべき楽音信号の周波数特性に対応した所定長のインパルス応答信号を繰り返し発生し、この繰り返し発生されるインパルス応答信号のうちいくつかを正負反転させた。これにより上記楽音信号の周波数特性が変化し、例えば、楽音の周波数特性のうち特定次倍音だけ消去/減衰させて、残りの倍音成分だけの楽音または残りの倍音成分が相対的に強い楽音を生成することができる。
【0012】
また本発明では、インパルス応答信号そのものの発生速度を音高変化に対して一定として、固定フォルマント型と移動フォルマント型との楽音を選択生成した。すなわち音高決定因子に基づいて、上記インパルス応答信号の繰り返し周期を変化させるとともに、上記インパルス応答信号そのものの発生速度を変化させるか否かを選択した。これにより、周波数特性のフォルマントが周波数軸上で移動しない固定フォルマント型の楽音とフォルマントが周波数軸上でシフトする移動フォルマント型の楽音とを1つのインパルス応答信号から生成することができる。
【0013】
さらに本発明では、インパルス応答信号そのものの発生速度を音高変化に対して異なる変化特性として、フォルマントが音高変化に応じない変化を実現した。すなわち、音高決定因子に基づいて、上記インパルス応答信号の繰り返し周期を変化させるとともに、上記インパルス応答信号そのものの発生速度を、当該繰り返し周期の変化とは異なる特性で変化させた。これにより、フォルマントの移動変化を音高の変化に応じて変化させることができ、しかもこのフォルマント移動変化を生成楽音の音高の変化とは異なるように変化させることができ、音高変化と異なった音色変化を実現できる。
【0014】
また本発明では、音楽的因子に基づいて、インパルス応答信号の端を発生させない量を変化した。さらに、繰り返し発生されるインパルス応答信号それぞれの端が重なる量を検出し、この検出量に応じて、このインパルス応答信号の端を発生させない量を決定した。これにより、各インパルス応答信号の端で信号同志が重ならないまたは重なる信号数が少なくなり、その分インパルス応答信号についての情報の演算量及び処理量が少なくて済む。
【0015】
【発明の実施の形態】
1.本願発明の原理
図12及び図13は本願発明の原理を示す。図12ではインパルス応答信号ISj(t)の繰り返し周期がT1またはT2のとき、このインパルス応答信号ISj(t)の出力によって合成かつ生成される楽音の周波数特性(スペクトルエンベロープ(包絡)、周波数スペクトル成分、フォルマント形状)(以下同じ)を示す。この繰り返し周期Tは生成される楽音の音高を決定する。したがって、この繰り返し周期Tは音高情報によって決定され、周期係数fとして取り込まれる。インパルス応答信号ISj(t)においてこの周期係数fは音高情報である。
【0016】
このインパルス応答信号ISj(t)の繰り返し周期Tが短くなり、音高が高くなると、図12(B1)(B2)に示すように周波数特性はあまり又は全く変化せず、各周波数成分の密度が低くなり、フォルマントの幅は変わらない。したがって、繰り返し周期Tが変化すると、音高は変化するが、音色(周波数成分、フォルマント特性)そのものは変化しない。
【0017】
このインパルス応答信号ISj(t)は図1のインパルス信号発生部50の中のインパルス信号記憶部51(図2)の中に各音楽的ファクタ毎に記憶されている。この記憶されているインパルス応答信号ISj(t)は、図13(A1)または(A1)の2つのインパルス応答信号ISj(t)のうちの片方であり、同図は繰り返し読み出しの状態を示す。
【0018】
図13ではインパルス応答信号ISj(t)の繰り返し周期が同じで、インパルス応答信号ISj(t)の読み出し速度が異なるとき、このインパルス応答信号ISj(t)の出力によって合成かつ生成される楽音の周波数特性(スペクトルエンベロープ(包絡)、周波数スペクトル成分、フォルマント形状)を示す。このインパルス応答信号ISj(t)自身の読み出し速度は生成される楽音の音色(周波数成分、フォルマント特性)を決定する。したがって、この読み出し速度は音高に関係のない音楽的ファクタ情報、例えば音色情報によって決定され、包絡係数rとして取り込まれる。インパルス応答信号ISj(t)においてこの包絡係数rは音色情報である。
【0019】
このインパルス応答信号ISj(t)の読み出し速度が速くなり、インパルス応答信号ISj(t)の時間長が短くなると、図13(B1)(B2)に示すように各周波数成分の密度はあまり又は全く変化せず、周波数特性(スペクトルエンベロープ、周波数スペクトル成分、フォルマント形状)が変化し、フォルマントの幅が広がる。したがって、信号の読み出し速度が変化すると、音色(周波数成分、フォルマント特性)は変化するが、音高そのものは変化しない。
【0020】
このインパルス応答信号ISj(t)は、生成したい楽音信号の所定長さに対して、線形予測法、ケプストラム法などの演算手法を施して生成され記憶される。例えば、ケプストラム法では、この所定長さの楽音信号がフーリエ変換器で高速フーリエ変換され、周波数パワースペクトルに変化される。
【0021】
この変換されたパワースペクトルは、対数変換器で対数変換され、さらに逆フーリエ変換器で高速フーリエ逆変換され、時間域(ケフレンジ)のケプストラムに変換される。このケプストラムは乗算器及び窓関数発生器からの因果性の窓がかけられ複素ケプストラムに変換される。この複素ケプストラムは再び上記フーリエ変換器で高速フーリエ変換され周波数域に戻され、スペクトルエンベロープが求められる。
【0022】
このスペクトルエンベロープの例は図12(B1)(B2)及び図13(B1)(B2)に示される。このスペクトルエンベロープは指数変換器で指数変換され、上記逆フーリエ変換器で高速フーリエ逆変換され時間域に戻される。これにより、最小位相のインパルス応答信号のサンプリングデータが生成され、これが上記インパルス応答信号ISj(t)としてインパルス信号記憶部51に記憶される。
【0023】
インパルス応答信号ISj(t)の繰り返し周期が変化すれば、このインパルス応答信号ISj(t)に基づいて出力される楽音信号のパワー、エネルギーまたは音量も変化する。このインパルス応答信号ISj(t)の繰り返し周期に基づいて、発生されるインパルス応答信号ISj(t)の大きさが変化する。これにより、出力される楽音信号のパワー、エネルギーまたは音量が、一定にされ、インパルス応答信号ISj(t)の繰り返し周期に応じて変化してしまうことがない。
【0024】
2.全体回路
図1は楽音生成装置の全体回路を示す。演奏情報発生部10からは演奏情報(楽音発生情報)が発生される。この演奏情報(楽音発生情報)は、楽音を発生させるための情報である。この演奏情報発生部10は、マニュアル操作によって演奏される発音指示装置、自動演奏装置、種々のスイッチまたはインターフェイスである。
【0025】
上記演奏情報(楽音発生情報)は、音楽的ファクタ(因子)情報であり、音高(音域)情報(音高決定因子)、発音時間情報、演奏分野情報、発音数情報、共鳴度情報などである。発音時間情報は楽音の発音開始からの経過時間を示す。演奏分野情報は、演奏パート情報、楽音パート情報、楽器パート情報等を示し、例えばメロディ、伴奏、コード、ベース、リズム等、または上鍵盤、下鍵盤、足鍵盤等に対応している。
【0026】
上記音高情報はキーナンバデータKNとして取り込まれる。このキーナンバデータKNはオクターブデータ(音域データ)と音名データとからなる。演奏分野情報は、パートナンバデータPNとして取り込まれ、このパートナンバデータPNは各演奏エリアを識別するデータであって、発音操作された楽音がどの演奏エリアからのものかによって設定される。
【0027】
発音時間情報は、トーンタイムデータTMとして取り込まれ、キーオンイベントからのタイムカウントデータに基づいたり、またはエンベロープフェーズで代用される。この発音時間情報は特願平6−219324号明細書及び図面に発音開始からの経過時間情報として詳しく示される。
【0028】
発音数情報は同時に発音している楽音の数を示し、例えばアサインメントメモリ42のオン/オフデータが「1」の楽音の数に基づき、この数は特願平6−242878号の図9及び図15、特願平6−2476855号の図8及び図18、特願平6−276857号の図9及び図20、特願平6−276858号の図9及び図21のフローチャートに基づいて求められる。
【0029】
共鳴度情報は、発音している1つの楽音と他の楽音との共鳴度を示す。この1つの楽音の音高周波数と他の楽音の音高周波数とが1:2、2:3、3:4、4:5、5:6など小さい整数数倍比であれば共鳴度情報の値は大きく、9:8、15:8、15:16、45:32、64:45など大きい整数数倍比であれば共鳴度情報の値は小さくなる。この共鳴度情報は特願平1−314818号の第7図の共鳴相関テーブル53または共鳴比率テーブル54から読み出される。
【0030】
発音指示装置は、キーボード楽器、弦楽器、吹奏楽器、打楽器、コンピュータのキーボード等である。自動演奏装置は、記憶された演奏情報を自動的に再生するものである。インターフェイスは、MIDI(ミュージカルインスツルメントデジタルインターフェイス)等、接続された装置からの演奏情報を受け取ったり、送り出したりする装置である。
【0031】
さらに、この演奏情報発生部10には各種スイッチが設けられ、この各種スイッチは音色タブレット、エフェクトスイッチ、リズムスイッチ、ペダル、ホイール、レバー、ダイヤル、ハンドル、タッチスイッチ等であって楽器用のものである。この各種スイッチより、楽音制御情報が発生され、この楽音制御情報は発生された楽音を制御する情報であって音楽的ファクタ(因子)情報であり、音色情報(音色決定因子)、タッチ情報(発音指示操作の速さ/強さ)、発音数情報、共鳴度情報、エフェクト情報、リズム情報、音像(ステレオ)情報、クオンタイズ情報、変調情報、テンポ情報、音量情報、エンベロープ情報等である。
【0032】
これら音楽的ファクタ情報も上記演奏情報(楽音情報)に合体され、上記各種スイッチより入力されるほか、上記自動演奏情報に合体されたり、上記インターフェイスで送受される演奏情報に合体される。なお、上記タッチスイッチは上記発音指示装置の1つ1つに対応して設けられており、タッチの速さと強さを示すイニシャルタッチデータとアフタタッチデータとが発生される。
【0033】
上記音色情報は、鍵盤楽器(ピアノ等)、管楽器(フルート等)、弦楽器(バイオリン等)、打楽器(ドラム等)の楽器(発音媒体/発音手段)の種類等に対応しており、トーンナンバデータとして取り込まれる。上記エンベロープ情報は、エンベロープレベル、エンベロープスピード、エンベロープフェーズなどである。
【0034】
このような音楽的ファクタ情報は、コントローラ20へ送られ、後述の各種信号、データ、パラメータの切り換えが行われ、楽音の内容が決定される。上記演奏情報(楽音発生情報)及び楽音制御情報はコントローラ20で処理され、各種データがインパルス信号発生部50へ送られ、インパルス応答信号ISj(t)が発生される。コントローラ20はCPU、ROM及びRAMなどからなっている。
【0035】
プログラム/データ記憶部30(内部記憶媒体/手段)はROMまたは書き込み可能なRAM、フラッシュメモリまたはEEPROM等の記憶装置からなり、光ディスクまたは磁気ディスク等の情報記憶部41(外部記憶媒体/手段)に記憶されるコンピュータのプログラムが書き写され記憶される(インストール/転送される)。またプログラム/データ記憶部30には外部の電子楽器またはコンピュータから上記MIDI装置または送受信装置を介して送信されるプログラムも記憶される(インストール/転送される)。このプログラムの記憶媒体は通信媒体も含む。
【0036】
このインストール(転送/複写)は、情報記憶部41が本楽音生成装置にセットされたとき、または本楽音生成装置の電源が投入されたとき自動的に実行され、または操作者による操作によってインストールされる。上記プログラムは、コントローラ20が各種処理を行うための後述するフローチャートに応じたプログラムである。
【0037】
なお、本装置に予め別のオペレーティングシステム、システムプログラム(OS)、その他のプログラムが記憶され、上記プログラムはこれらのOS、その他のプログラムとともに実行されてもよい。このプログラムは本装置(コンピュータ本体)にインストールされ実行されたときに、別のプログラムとともにまたは単独で請求項(クレーム)に記載された処理・機能を実行させることができればよい。
【0038】
また、このプログラムの一部又は全部が本装置以外の1つ以上の別装置に記憶されて実行され、本装置と別装置との間には通信手段を介して、これから処理するデータ/既に処理されたデータ/プログラムが送受され、本装置及び別装置全体として、本発明が実行されてもよい。
【0039】
このプログラム/データ記憶部30には、上述した音楽的ファクタ情報、上述した各種データ及びその他の各種データも記憶される。この各種データには時分割処理に必要なデータや時分割チャンネルへの割当のためデータ等も含まれる。
【0040】
インパルス信号発生部50では、所定長のインパルス応答信号ISj(t)が繰り返し発生され音響出力部60から発音出力される。この繰り返し発生されるインパルス応答信号ISj(t)の繰り返しの周期は、上記音高情報に応じて変化され、またこの音高情報とは異なる上記音色情報または音高に関係ない音楽的ファクタ情報に応じて、この発生されるインパルス応答信号ISj(t)そのものの読み出し速度(発生速度)が変化され、これら繰り返し周期と読み出し速度とは互いに独立に変化される。
【0041】
このインパルス応答信号ISj(t)は発生すべき楽音信号のスペクトルエンベロープに対応していて所定の有限の長さLを持つ。このインパルス信号発生部50は時分割処理によって複数の楽音信号が同時に生成されポリフォニックに発音される。
【0042】
タイミング発生部30からは、楽音生成装置の全回路の同期を取るためのタイミングコントロール信号が各回路に出力される。このタイミングコントロール信号は、各周期のクロック信号のほか、これらのクロック信号を論理積または論理和した信号、時分割処理のチャンネル分割時間の周期を持つ信号、チャンネルナンバデータCHNo、jなどを含む。
【0043】
3.アサインメントメモリ42
図2は、プログラム/データ記憶部40のアサインメントメモリ42を示す。アサインメントメモリ42には、複数(16、32または64等)のチャンネルメモリエリアが形成されており、上記インパルス信号発生部50に形成された複数の楽音生成チャンネルに割り当てられた楽音に関するデータが記憶される。
【0044】
これら各チャンネルメモリエリアには、チャンネルが割当られた楽音の周期係数f(またはキーナンバデータKN)、包絡係数r(トーンナンバデータTN)、波形先頭アドレスSa、波形末尾アドレスEa及び周期末尾値Fmaxのほか、オン/オフデータ、タッチデータTC、トーンタイムデータTM、パートナンバデータPN、パワーデータPW、端部切取データΔLad、窓幅データWad、窓選択データWS、エンベロープフェーズデータEF、エンベロープスピードデータES、エンベロープレベルデータEL等が記憶される。
【0045】
オン/オフデータは割り当られ発音する楽音がキーオン中または発音中(“1”)かキーオフ中または消音中(“0”)かを示す。周期係数f(キーナンバデータKN)は割り当られ発音する楽音の音高を示し、上記音高情報に応じて決定される。周期係数fの上位データは音域またはオクターブを示す。この周波数ナンバデータFNは上記コントローラ20によって対応するチャンネルタイミングに上記インパルス信号発生部50へ送られる。
【0046】
包絡係数r(トーンナンバデータTN)は、割り当てられ発音する楽音の音色を示し、上記音色情報に応じて決定される。この包絡係数rは、上記コントローラ20によって対応するチャンネルタイミングに上記インパルス信号発生部50へ送られる。タッチデータTCは、発音操作の速さまたは強さを示し、上記タッチ情報に応じて決定される。
【0047】
パワーデータPWは、インパルス応答信号ISj(t)の波形のエネルギーのパワーを示し、インパルス信号記憶部51に記憶された各インパルス応答信号ISj(t)の繰り返し周期T、各インパルス応答信号ISj(t)そのものの読み出し(発生)速度または波形形状に基づいて決定される。
【0048】
例えば、ある音高のあるインパルス応答信号ISj(t)のパワーデータPWが「1」に基準として設定されれば、1オクターブ上の音高の同じインパルス応答信号ISj(t)では「1/2」、2オクターブ上の音高の同じインパルス応答信号ISj(t)では「1/4」、・・・、1オクターブ下の音高の同じインパルス応答信号ISj(t)では「2」、2オクターブ下の音高の同じインパルス応答信号ISj(t)では「4」、・・・となる。
【0049】
また、ある読み出し速度のインパルス応答信号ISj(t)のパワーデータPWが「1」に基準として設定されれば、2倍の読み出し速度の同じインパルス応答信号ISj(t)では「2」、3倍の読み出し速度の同じインパルス応答信号ISj(t)では「3」、・・・、1/2倍の読み出し速度の同じインパルス応答信号ISj(t)では「1/2」、1/3倍の読み出し速度の同じインパルス応答信号ISj(t)では「1/3」、・・・となる。
【0050】
さらに、異なるインパルス応答信号ISj(t)の間でも、パワーデータPWが設定される。インパルス応答信号ISj(t)が激しく変化する波形であり、波形のエネルギーパワーが大きければ、パワーデータPWは小さくされ、インパルス応答信号ISj(t)がゆっくりと変化する波形であり、エネルギーパワーが小さければ、パワーデータPWは大きくされる。
【0051】
むろん、インパルス信号記憶部51に記憶されている各インパルス応答信号ISj(t)の大きさ(振幅)が同じエネルギーパワーとなるように調整されていれば、このような異なるインパルス応答信号ISj(t)の間のパワーデータPWの設定は不要である。
【0052】
このパワーデータPWは、異なるインパルス応答信号ISj(t)の間では、インパルス応答信号ISj(t)の波形の積分値、または波形の各極大値及び各極小値の絶対値の合計をもとに決定される。
【0053】
また、このパワーデータPWは、上述したように、同じインパルス応答信号ISj(t)の間では、繰り返し周期Tつまり音高周波数に反比例して決定され、さらに設定音色つまり読み出し速度に反比例して決定される。しかし、楽音の発生(発音)回路のインパルス特性、スピーカの電気エネルギーから音量エネルギーへの変換特性によっては以下の通りとなる。A、B、C、Dは定数である。Tは上記繰り返し周期である。音高周波数であれば逆数にされてこの「T」のなかに代入される。Sは読み出し速度である。
【0054】
PW=A×(T/S)(n−INV) (n=1、2、3、・・・)
PW=B×(log−c)(T/S)
PW=D×(n−RAD)(T/S) (n=1、2、3、・・・)
(n−INV)は前にある数値を「n乗」することを示し、この場合(T/S)が「n乗」される。(log−c)は底が「c」の対数式を示す。(n−RAD)は後に続く数値の「n乗根」を求めることを示し、この場合(T/S)の「n乗根」が算出される。
【0055】
このようなパワーデータPWは、プログラム/データ記憶部40内のテーブルによって、上記音高情報(キーナンバデータKN)及び音色情報(トーンナンバデータTN)から変換される。同じく上記周期係数fも、プログラム/データ記憶部40内のテーブルによって、上記音高情報(キーナンバデータKN)から変換され、上記包絡係数rも、プログラム/データ記憶部40内のテーブルによって、上記音色情報(トーンナンバデータTN)から変換される。
【0056】
端部切取データΔLadは、図26(A2)に示されるように、インパルス応答信号ISj(t)の両端が切り取られ削除され読み出されない(発生されない)アドレス量を示す。これにより、各インパルス応答信号ISj(t)が重なる場合、各インパルス応答信号ISj(t)の端で信号同志が重ならないようにされ、または重なる信号数が少なくなり、その分インパルス応答信号ISj(t)についての情報の演算量及び処理量が少なくて済む。
【0057】
上記端部切取データΔLadは、以下のようにして検出されかつ求められる。ここで、Tはインパルス応答信号ISj(t)の繰り返し周期を示し、fは音高を決める周期係数を示し、Fmaxは周期末尾値を示し、Saは波形先頭アドレスであって読み出しインパルス応答信号ISj(t)の先頭アドレスを示し、Eaは波形末尾アドレスであって読み出しインパルス応答信号ISj(t)の末尾アドレスを示し、rは音色を決める包絡係数を示し、Ladは読み出されるインパルス応答信号ISj(t)そのものの長さLのアドレス長を示し、Ltは読み出されるインパルス応答信号ISj(t)そのものの長さLの時間長を示し、ΔLtはインパルス応答信号ISj(t)の両端の切り取られた時間長を示し、mはインパルス応答信号ISj(t)を交代で発生する手段の数を示し、下位読み出しアドレスデータR1及びR2の数に対応していて本実施例では図10に示されるように「2つ」である。
【0058】
T=Fmax/f
Lad=(Ea−Sa)
Lt=Lad/r=(Ea−Sa)/r
ΔLt=(m×Lt−T)/2m
ΔLad=Lad×ΔLt/Lt=(Ea−Sa)×ΔLt/Lt
ここではインパルス応答信号ISj(t)それぞれの端が重なる量と、上記インパルス応答信号ISj(t)の端の切り取り量とは一致しており、これにより各インパルス応答信号ISj(t)は各端でつながる。
【0059】
ΔLadまたはΔLtを求められた値より大きくすれば、各インパルス応答信号ISj(t)の間に隙間ができ、インパルス応答信号ISj(t)それぞれの端が重なる量よりインパルス応答信号ISj(t)の端の切り取り量の方が大きくなる。また、ΔLadまたはΔLtを求められた値より小さくすれば、各インパルス応答信号ISj(t)の間は重なり、インパルス応答信号ISj(t)それぞれの端が重なる量よりインパルス応答信号ISj(t)の端の切り取り量の方が小さくなる。このような変更も可能である。
【0060】
mはインパルス応答信号ISj(t)の発生手段の数を示し、m=1であれば次のインパルス応答信号ISj(t)の端との重なりが端部切取データΔLadとなり、m=2であれば1つおきのインパルス応答信号ISj(t)の端との重なりが端部切取データΔLadとなり、m=3であれば2つおきのインパルス応答信号ISj(t)の端との重なりが端部切取データΔLadとなり、m=4であれば3つおきのインパルス応答信号ISj(t)の端との重なりが端部切取データΔLadとなり、・・・となる。
【0061】
この端部切取データΔLadは、このように周期係数fと包絡係数rとインパルス応答信号ISj(t)のアドレス長Lad=(Ea−Sa)などから検出されかつ求められる。周期係数fは上記音高情報またはその他の音楽的ファクタ情報から決定されるので、端部切取データΔLadは音高などに応じて変化することになる。また包絡係数rは上記音色情報またはその他の音楽的ファクタ情報から決定されるので、端部切取データΔLadは音色などに応じて変化することになる。
【0062】
窓幅データWadは、上記両端が切り取られたインパルス応答信号ISj(t)に合成される窓関数値WFのアドレス量を示す。この窓関数値WFは、窓関数メモリ71に記憶され、両端が切り取られたインパルス応答信号ISj(t)の残った両端または全体に演算合成される。
【0063】
窓選択データWSによって、窓関数メモリ71に記憶された複数種類の窓関数値WFが選択される。この窓関数の種類は、図26(B1)(B2)(B3)(B4)に示される。この窓関数値WFは、0倍から1倍まで変化し、または1/2倍から1倍まで変化し、減少倍から等倍まで変化する重みデータである。
【0064】
エンベロープフェーズデータEFはエンベロープのアタック、ディケイ、サスティーンまたはリリースを示し、エンベロープスピードデータESはエンベロープのデジタル演算1周期当たりの演算のステップ値を示し、エンベロープレベルデータELは、各フェーズの末尾でエンベロープ演算値が到達する目標値を示す。
【0065】
このアサインメントメモリ42の各チャンネルの楽音データによって生成される各インパルス応答信号ISj(t)はs個ずつ1つの楽音として合成されて出力されたり、各チャンネル毎に1つの楽音として出力されたりする。このような1つの楽音として合成されるs個のインパルス応答信号ISj(t)については、連続するチャンネルs個ごとに上記楽音データが同じタイミングで割り当てられ、発生タイミングが同じとなり、位相も同じである。
【0066】
この合成されるs個のインパルス応答信号ISj(t)の組み合わせは、上記音楽的ファクタ情報、例えば音色情報、タッチ情報、音高情報、発音時間情報、発音数情報、共鳴度情報によって選択決定される。そのためのデコーダ又はテーブルがプログラム/データ記憶部40に設けられる。
【0067】
重み付けデータWTは、この1つの楽音としてs個ずつ合成される各インパルス応答信号ISj(t)の混合割合を決定し、各チャンネル毎に記憶される。この重み付けデータWTは、「0」から「1」の間の値をとり、このs個の重み付けデータWTの合計値は「1」となるが、これ以外の値でもよい。この重み付けデータWTは、上述した音楽的ファクタ情報例えば音高情報、音色情報、タッチ情報、発音時間情報、発音数情報、共鳴度情報によって選択決定される。そのためのデコーダ又はテーブルがプログラム/データ記憶部40に設けられる。
【0068】
このs個ごとのチャンネルナンバは、合成数s=2のとき、0〜1、2〜3、4〜5、6〜7、・・・、合成数s=3のとき、0〜2、3〜5、6〜8、9〜11、・・・、合成数s=4のとき、0〜3、4〜7、8〜11、12〜15、・・・、合成数s=5のとき、0〜4、5〜9、10〜14、15〜19、・・・となる。この合成数sは、操作者によって入力され、または本装置の初期設定で自動的に設定され、または上記音楽的ファクタ(音色情報)によって決定され、プログラム/データ記憶部40のレジスタに記憶される。
【0069】
このs個ごとのインパルス応答信号ISj(t)の波形先頭アドレスSa、上位読み出しアドレスデータまたは包絡係数rはそれぞれ異なっており、互いに波形形状又は音色が異なっていて、周波数特性(スペクトルエンベロープ、周波数スペクトル成分、フォルマント形状)も異なっている。むろん同じでもよい。
【0070】
このs個ごとのインパルス応答信号ISj(t)の周期係数fはそれぞれ同じまたは整数倍比であり、このs個のインパルス応答信号ISj(t)の位相は揃っており、音高が同じまたは整数倍となる。むろん非整数倍比でもよい。
【0071】
このs個ごとのインパルス応答信号ISj(t)のトーンタイムデータTM、タッチデータTC、パワーデータPW、パートナンバデータPN、波形末尾アドレスEa、周期末尾値Fmax、間引きフラグ、間引き次数n、端部切取データΔLad、窓選択データWS、エンベロープスピードES、エンベロープレベルEL、エンベロープフェーズEFは同じであり、このs個のチャンネルごとに代表されてまとめてストアされてもよい。むろんこれらのs個のデータは互いに異なっていてもよい。
【0072】
このs個の合成されるインパルス応答信号ISj(t)について、エンベロープスピードES、エンベロープレベルEL、エンベロープフェーズEFが共用されれば、エンベロープジェネレータ56で形成される時分割チャンネルの数はこれに応じて少なくなり、合成された累算インパルス応答信号AISj(t)に1つのエンベロープデータENが乗算合成される。
【0073】
このs個の合成されるインパルス応答信号ISj(t)それぞれについて、エンベロープスピードES、エンベロープレベルEL、エンベロープフェーズEFが異なり、各インパルス応答信号ISj(t)ごとにこれらのデータES、EL、EFが個別に記憶されれば、合成される各インパルス応答信号ISj(t)の合成割合または混合比つまり重み付け割合が、発音時間の経過に応じて変化することになる。この場合、各エンベロープレベルデータELが合成の重み付けデータWTの役割を果たしている。
【0074】
これら各チャンネルメモリエリアの各データは、発音開始タイミングに書き込まれ、各チャンネルタイミングごとに書き換えられたり、読み出されたりして、上記インパルス信号発生部50へ送られる。このアサインメントメモリ42は、プログラム/データ記憶部40の中ではなくインパルス信号発生部50またはコントローラ20の中に設けてもよい。
【0075】
上記時分割処理によって形成されるチャンネル、すなわち複数の楽音を並行して発生するための複数の楽音発生システムへの各楽音の割り当て方法またはトランケート方法は、例えば特願平1−42298号、特願平1−305818号、特願平1−312175号、特願平2−2089178号、特願平2−409577号、特願平2−409578号に示された方法が使われる。
【0076】
4.インパルス信号発生部50
図3は上記インパルス信号発生部50を示す。インパルス信号記憶部51には、図4に示すように、種々のインパルス応答信号ISj(t)が記憶されている。これらのインパルス応答信号ISj(t)の波形形状は異なっており、楽音信号に合成出力されたときの音色も異なっている。これらのインパルス応答信号ISj(t)は、上記各音楽的ファクタ情報に対応しており、上記音色、タッチ、音高(音域)または発音時間、演奏分野、エンベロープフェーズ、発音数情報、共鳴度情報などごとに多重に記憶されている。
【0077】
例えば、インパルス応答信号ISj(t)は各音色ごとに異なって記憶され、このうち1種類の音色のインパルス応答信号ISj(t)は各タッチごとに異なって記憶され、このうち1種類のタッチのインパルス応答信号ISj(t)は各発音時間ごとに異なって記憶され、・・・音高ごとに異なって記憶され、・・・演奏分野ごとに異なって記憶され、・・・エンベロープフェーズ毎に異なって記憶される。
【0078】
上記音楽的ファクタ情報はコントローラ20でこのような種々のインパルス応答信号ISj(t)を指定する上位読み出しアドレスデータに変換され、この上記読み出しアドレスデータはインパルス信号選択部52にストアされてインパルス信号記憶部51に供給されインパルス応答信号ISj(t)が選択される。また、上記音楽的ファクタ情報が各楽音ごとまたは発音中に変化すれば、この上位読み出しアドレスデータは切り換えられ、読み出されるインパルス応答信号ISj(t)も切り換えられる。
【0079】
この音楽的ファクタ情報が音高に関連するものであれば、インパルス応答信号の波形形状そのものの変化を音高変化に連動させたり、合成出力される楽音信号の音色も音高変化に連動させることができる。また、この音楽的ファクタ情報が音高以外の情報に関連するものであれば、インパルス応答信号の波形形状そのものの変化を音色、タッチ、発音時間、演奏分野の変化に連動させたり、合成出力される楽音信号の音色も音色、タッチ、発音時間、演奏分野の変化に連動させることができる。
【0080】
このインパルス信号選択部52は上記時分割チャンネル数に対応したメモリエリアを有し、各チャンネルに割り当てられた楽音の音楽的ファクタに応じた上位読み出しアドレスデータがそれぞれのメモリエリアにストアされ、上記タイミング発生部からのチャンネルナンバデータjによって読み出されインパルス信号記憶部51に供給される。
【0081】
上記インパルス信号記憶部51の各インパルス応答信号ISj(t)はインパルス信号読み出し部53からの下位読み出しアドレスデータR1、R2によって読み出される。この下位読み出しアドレスデータR1、R2は上記音高情報以外の上記音楽的ファクタ情報に応じた速度でインクリメントされる。したがって、インパルス応答信号ISj(t)の読み出し速度は音高情報によっては決定されない。また、このインパルス応答信号ISj(t)は繰り返し読み出され、この繰り返しの周期は、上記音高情報に応じて変化され、これら繰り返し周期と読み出し速度とは互いに独立に決定される。
【0082】
上記インパルス信号記憶部51から読み出された各インパルス応答信号ISj(t)はインパルス累算部54で各チャンネルごとに個別に累算かつ合成され、乗算器55でエンベロープジェネレータ56からのエンベロープ信号が各チャンネルごとに乗算かつ合成され、楽音累算部57で全チャンネルの楽音信号について累算かつ合成され、上記音響出力部60から発音出力される。
【0083】
エンベロープジェネレータ56には上記音楽的ファクタ情報(エンベロープ情報)つまりエンベロープスピードデータES、エンベロープレベルデータEL、エンベロープフェーズデータEFがコントローラ20によって送られて各チャンネルごとに記憶され、この音楽的ファクタ情報(エンベロープ情報)に基づいて、各チャンネルのエンベロープの各フェーズのスピード及びレベルが設定され、各エンベロープの形状が決定される。このエンベロープ信号は各チャンネルごとに時分割に発生され上記乗算器55へ送られる。
【0084】
上記各チャンネルのパワーデータPWは、コントローラ20によって、波形パワー制御RAM58の対応するチャンネルエリアにストアされる。この各パワーデータPWは乗算器55に送られ、インパルス累算部54からの楽音信号(インパルス応答信号ISj(t))、またはエンベロープジェネレータ56からのエンベロープデータに乗算される。この波形パワー制御RAM58は上記時分割チャンネルに応じたメモリエリアを有し、各パワーデータPWが時分割に切り換えられて読み出される。この切り換えはタイミング発生部30からのチャンネルカウントデータに基づく。
【0085】
これにより、インパルス応答信号ISj(t)の繰り返し周期Tが音高に応じて変化し、波形のパワーつまり音量が音高に応じて変化しても、これを調整して解消することができる。また、インパルス応答信号ISj(t)の波形形状が異なっているため、波形のパワーつまり音量が音高に応じて変化しても、これを調整して解消することができる。
【0086】
図5は、このインパルス応答信号ISj(t)の音高つまり繰り返し周期Tと波形パワーとの関係を示す。図5(1)のような短い周期でインパルス応答信号ISj(t)を読み出すと、単位時間当たりの波形エネルギーは大きくなり、音量も大きくなる。これに対して、図5(1)のような長い周期でインパルス応答信号ISj(t)を読み出すと、単位時間当たりの波形エネルギーは小さくなり、音量も小さくなる。
【0087】
同様に、図示しないが、インパルス応答信号ISj(t)をゆっくりと読み出すと、単位時間当たりの波形エネルギーは大きくなり、音量も大きくなる。これに対して、インパルス応答信号ISj(t)を速く読み出すと、単位時間当たりの波形エネルギーは小さくなり、音量も小さくなる。
【0088】
これに対して、上記パワーデータPWを乗算することによって、出力されるインパルス応答信号ISj(t)(楽音信号)のレベルを制御し、繰り返し周期Tつまり音高の変化または読み出し速度つまり音色の変化による余分な音量(パワー)変化を押さえることができる。
【0089】
なお、このパワーデータPWは、上述のアサインメントメモリ42に記憶されているエンベロープレベルデータELに乗算されて、上記エンベロープジェネレータ56へ送られてもよい。また、上記アサインメント41に記憶されているタッチデータTCがこのパワーデータPWに乗算されて、上記波形パワー制御RAM58にストアされてもよい。さらに、このパワーデータPWは、上記周期係数fの逆数と上記包絡係数rとを演算したものであってもよい。
【0090】
5.インパルス信号読み出し部53
図6は上記インパルス信号発生部50の中のインパルス信号読み出し部53を示す。上記コントローラ(CPU)20からの周期係数f、包絡係数r、波形先頭アドレスSa及び波形末尾アドレスEaは各時分割チャンネルごとにパラメータRAM501にストアされる。場合によって周期末尾値Fmaxも各時分割チャンネルごとにパラメータRAM501にストアされる。このパラメータRAM501には時分割チャンネル数に応じたメモリエリアが形成され、各チャンネルに割り当てられた楽音に応じた上記係数f、r、アドレスSa、Eaが対応するメモリエリアにストアされる。なお、上記アサインメント42から各データf、r、Sa、Eaが常時時分割に送られてくる場合には、パラメータRAM501のメモリエリアは1つでもよい。
【0091】
上記周期係数f及び周期末尾値Fmaxは、上記インパルス応答信号ISj(t)の繰り返し周期Tの長さを決定し、生成される楽音の音高を決定し、周期係数fが順次繰り返し累算され、周期末尾値Fmaxに達するごとに、インパルス応答信号ISj(t)が繰り返し読み出される。この周期係数fの累算値は周期カウント値Fとなる。この周期係数f及び周期末尾値Fmaxは、上記音高情報(キーナンバデータ)によって決定され、キーナンバデータから変換される。この繰り返し周期Tの長さが発生される楽音信号の音高を決定する。
【0092】
この周期係数f及び周期末尾値Fmaxのいずれかは固定されてもよい。この図3の実施例では周期末尾値Fmaxは周期カウント値Fが取り得る最大値(「1111…11」又は「111…1100…0」)に設定され、この周期末尾値Fmaxはストアされない。
【0093】
上記包絡係数rは、上記インパルス応答信号ISj(t)の読み出し(発生)速度を決定し、このインパルス応答信号ISj(t)の周波数特性(スペクトルエンベロープ、周波数スペクトル成分、フォルマント形状)を決定し、生成される楽音の音色を決定し、上記波形先頭アドレスSaから波形末尾アドレスEaまで包絡係数rが繰り返し累算され、上記インパルス信号記憶部51に下位読み出しアドレスデータR1、R2として供給される。この下位読み出しアドレスデータR1、R2が波形末尾アドレスEaまで達すると、上記周期カウント値Fが次に上記周期末尾値Fmax達するまで、インパルス応答信号ISj(t)の読み出しが待機される。
【0094】
この包絡係数rは、上記音高に関係ない音楽的ファクタ情報によって決定され、例えば上記音色情報(トーンナンバデータ)、タッチ情報(タッチデータ)、発音時間情報(トーンタイムデータ)、演奏分野情報(パートナンバデータ)、発音数情報、共鳴度情報などから変換される。
【0095】
上記パラメータRAM501からの上記包絡係数rまたは周期計数fはBレジスタを経て、FLX503を経てまたは経ないで、セレクタ504を介して、加算器505でそれまでの下位読み出しアドレスデータR1、R2または周期カウント値Fに累算され、累算レジスタ506を経て、セレクタ507を介して演算RAM508にストアされる。この演算RAM508には時分割チャンネル数に応じたメモリエリアが形成され、各チャンネルに割り当てられた楽音に応じた上記データR1、R2、Fが対応するメモリエリアにストアされる。上記FLX503は浮動小数点によるデータを固定小数点によるデータに変換する。
【0096】
このデータR1、R2、Fは演算RAM508からAレジスタ509を経て、セレクタ510を介して上記加算器505に送られる。また、このデータR1、R2はR1レジスタ511、R2レジスタ512を経てセレクタ518で交互に選択されて上記インパルス信号記憶部51に送られる。上記累算レジスタ506からの周期カウント値Fのうち下位の小数データFr又はデータ「0」は、上記セレクタ510を介して上記加算器505に供給される。上記セレクタ518はクロック信号φR1によって切り換えられる。このクロック信号φR1の1周期は図9に示すように1チャンネル分の分割時間に等しい。
【0097】
この下位読み出しアドレスデータR1の初期値は「0」、下位読み出しアドレスデータR2の初期値は波形末尾アドレスEa、周期カウント値Fの初期値は「0」であり、これらの初期値はコントローラ20によって上記セレクタ507を介して上記演算RAM508にストアされる。
【0098】
上記パラメータRAM501からの上記波形末尾アドレス値Ea(周期末尾値Fmax)はEaレジスタ及びアンドゲート群514を介してコンパレータ516に供給される。このコンパレータ516には上記加算器505からの下位読み出しアドレスデータR1、R2または周期カウント値Fも供給され、下位読み出しアドレスデータR1、R2が波形末尾アドレス値Eaに達したとき、または周期カウント値Fが最大値「111…11」又は最大近似値「111…1100…0」(周期末尾値Fmax)に達したとき、検出信号がフリップフロップ517にセットされ、コントローラ(CPU)20へ送られる。
【0099】
上記加算器505からのキャリーアウト信号Coutは上記コンパレータ516の上位ビット群として供給され、また上記アンドゲート群514のゲート信号はインバータ515で反転され、上記コンパレータ516の上位ビット群として供給され、ビット数が整合される。
【0100】
上記波形先頭アドレスSa及び波形末尾アドレスEaも、上記音楽的ファクタ情報によって決定され、例えば上記音高情報(キーナンバデータ)、音色情報(トーンナンバデータ)、タッチ情報(タッチデータ)、発音時間情報(トーンタイムデータ)、演奏分野情報(パートナンバデータ)、発音数情報、共鳴度情報などから変換され、パラメータRAM501の対応チャンネルメモリエリアにストアされる。この波形先頭アドレスSa及び波形末尾アドレスEaは、上記種々のインパルス応答信号ISj(t)の1つを選択する。この場合、上記インパルス信号選択部52は省略可能である。
【0101】
6.処理全体
図7はコントローラ(CPU)20によって実行される処理全体のフローチャートを示す。この処理全体は本楽音生成装置の電源オンによって開始され、電源オフまで繰り返し実行される。
【0102】
まず、プログラム/データ記憶部40の初期化など種々のイニシャライズ処理が行われ(ステップ01)、上記演奏情報発生部10の発音指示装置または自動演奏装置での手動演奏または自動演奏に基づく発音処理が行われる(ステップ02)。
【0103】
この発音処理では、サーチされた空きチャンネルにキーオンイベントに係る楽音が割り当てられる。この楽音の内容は、上記演奏情報発生部10からの上記演奏情報(楽音発生情報)、楽音制御情報の音楽的ファクタ情報及びこのときプログラム/データ記憶部40に既に記憶されている音楽的ファクタ情報によって決定される。
【0104】
次いで、上記演奏情報発生部10の発音指示装置または自動演奏装置での手動演奏または自動演奏に基づく消音(減衰)処理が行われる(ステップ03)。この消音(減衰)処理では、キーオフイベントに係る楽音が割り当てられているチャンネルがサーチされ当該楽音が減衰され消音される。この場合、キーオフイベントに係る楽音のエンベロープフェーズがリリースとなり、エンベロープレベルが次第に「0」になる。
【0105】
さらに、上記演奏情報発生部10の各種スイッチの操作があれば、このスイッチに対応する音楽的ファクタ情報が取り込まれ、プログラム/データ記憶部40に記憶され、音楽的ファクタ情報が変更される(ステップ04)。この後、その他の処理が実行され(ステップ05)、上記ステップ02からこのステップ05までの処理が繰り返される。
【0106】
7.インパルス応答信号ISj(t)発生処理
図8はコントローラ(CPU)20によって実行される上記ステップ02の発音処理のフローチャートを示し、この処理ではインパルス応答信号ISj(t)が発生される。この図5のフローチャートは全時分割チャンネルについて行われる。
【0107】
まず、上記演奏情報発生部10の発音指示装置または自動演奏装置からコントローラ20に手動演奏または自動演奏に基づくキーオンイベント(発音イベント)が送られれば(ステップ11)、空きチャンネルがサーチされ、サーチされた空きチャンネルのアサインメントメモリ42のエリアに「1」のオン/オフデータ、音高に応じた周期係数f、音色に応じた包絡係数r、タッチデータTC、パートナンバデータPN、「0」のトーンタイムデータTM、音高に応じたパワーデータPW、エンベロープスピードES、エンベロープレベルEL、「1」のエンベロープフェーズEF、その他の後述するフラグ及びデータSa、Ea、Fmax、n、ΔLad、WSが書き込まれる。この周期係数fと包絡係数rとは次述する。
【0108】
さらに、「0」の上記下位読み出しアドレスデータR1、波形末尾アドレスEaに設定された下位読み出しアドレスデータR2、「0」の周期カウント値Fが上記演算RAM508の対応チャンネルメモリエリアにストアされ、重ね合わせチャンネルカウンタ(プログラム/データ記憶部40)の対応チャンネルエリアが「0」にリセットされる(ステップ12)。
【0109】
次に、周期係数f及び周期末尾値Fmaxはキーナンバデータ(音高情報)KNから変換され、パラメータRAM501の対応チャンネルメモリエリアにストアされ、包絡係数rは、トーンナンバデータ(音色情報)TN、タッチデータ(タッチ情報)TC、トーンタイムデータ(発音時間情報)TMまたはパートナンバデータ(演奏分野情報)PNから変換され、パラメータRAM501の対応チャンネルメモリエリアにストアされ(ステップ13)、その他の処理が実行される(ステップ14)。
【0110】
また、波形先頭アドレスSa及び波形末尾アドレスEaは、キーナンバデータ(音高情報)、トーンナンバ(音色情報)、タッチデータ(タッチ情報)、トーンタイムデータ(発音時間情報)またはパートナンバデータ(演奏分野情報)から変換され、パラメータRAM501の対応チャンネルメモリエリアにストアされる(ステップ13)。この波形先頭アドレスSa及び波形末尾アドレスEaは、上記種々のインパルス応答信号ISj(t)の1つを選択する。この場合、上記インパルス信号選択部52は省略可能である。
【0111】
さらに、キーオン開始(発音開始)またはキーオン中(発音中)の楽音があれば(ステップ15)、上記周期カウント値Fに周期係数fが加算(累算)され(ステップ16)、この加算値(累算値)が周期末尾値Fmax(「1111…11」又は「111…1100…0」)以上であれば(ステップ17)、周期カウント値Fから周期末尾値Fmaxが減算され、周期カウント値Fの端数が補正される(ステップ18)。
【0112】
重ね合わせチャンネルを切り換えて(ステップ18、21、22)、切り換えられた当該チャンネルの波形先頭アドレスSaに周期カウント値Fのうち下位の小数データFrが加算され(ステップ23)、下位読み出しアドレスデータR1またはR2の初期値が補正される。
【0113】
この重ね合わせチャンネルでは、2つのインパルス応答信号ISj(t)が時分割に交互に読み出され、1つの楽音として出力され、上述したように複数の楽音がさらなる時分割チャンネルを通じてポリフォニックに出力される。この重ね合わせチャンネルの値(ch=0、1)によって、2つのインパルス応答信号ISj(t)の読み出しが区別される。
【0114】
1つのインパルス応答信号ISj(t)の読み出しの時間的長さLが、このインパルス応答信号ISj(t)の繰り返し周期の時間的長さTより長いと、先のインパルス応答信号ISj(t)と次のインパルス応答信号ISj(t)とが重なってしまう。したがって、上記の2つのインパルス応答信号ISj(t)がチャンネル分割によって個別に読み出されれば、この2つのインパルス応答信号ISj(t)が並行して読み出され重ね合わされる。むろん、このチャンネル数は2を越えてもよい。
【0115】
次いで、下位読み出しアドレスデータR1に包絡係数rが波形末尾アドレスEaになるまで加算され(ステップ24、25、26)、下位読み出しアドレスデータR2に包絡係数rが波形末尾アドレスEaになるまで加算される(ステップ27、28、29)。この2つの下位読み出しアドレスデータR1及びR2により、上述したように2つのインパルス応答信号ISj(t)がインパルス応答信号ISj(t)信号記憶部51から並行して読み出されインパルス累算部54で重ね合わされる。以上のステップ15からステップ29までの処理が全時分割チャンネルにわたって繰り返され(ステップ30)、その他の処理が実行される(ステップ31)。
【0116】
8.インパルス信号読み出し部53のタイムチャート
図9は、上記インパルス信号読み出し部53の各部の動作のタイムチャートを示す。上述したように、パラメータRAM501及び演算RAM508への書き込み/読み出し、各セレクタ504、507、510の切り換え、各レジスタ502、5096、509、511、512、513へのストア、フリップフロップ517へのストア、アンドゲート群514の開成/閉成が切り換え制御される。これらの切り換え制御信号は、上述したタイミング発生部からの種々のタイミング制御信号が使われる。
【0117】
上記周期末尾値FmaxがパラメータRAM501にストアされるときは、当該周期末尾値Fmaxの書き込み/読み出しも行われる。このタイムチャートの波形のうちハイレベル/ローレベルが点線で示されるものは、書き込みデータがあるとき/ないとき、コンパレータ516が検出/非検出によって、ハイレベルになったりローレベルになったりする。
【0118】
9.読み出し状態
図10はインパルス応答信号ISj(t)のインパルス信号記憶部51からの読み出し状態を示す。発音開始(キーオン)によって、1番目のインパルス応答信号ISj(t)は下位読み出しアドレスデータR1によって読み出し開始される(ステップ24)。この下位読み出しアドレスデータR1は包絡係数rの速度でインクリメント開始される。
【0119】
同時に、周期カウント値Fが周期係数fの速度でインクリメント開始される(ステップ15、16)。周期カウント値Fが周期末尾値Fmaxに達すると(ステップ17)、上記1番目のインパルス応答信号ISj(t)がまだ読み出しの途中であっても、2番目のインパルス応答信号ISj(t)が下位読み出しアドレスデータR2によって読み出し開始される(ステップ27)。この下位読み出しアドレスデータR2も包絡係数rの速度でインクリメント開始される。
【0120】
そして、発音開始から2番目の周期Tが経過すると(ステップ17)、上記2番目のインパルス応答信号ISj(t)がまだ読み出しの途中であっても、3番目のインパルス応答信号ISj(t)が下位読み出しアドレスデータR1によって読み出し開始される(ステップ24)。
【0121】
さらに、発音開始から3番目の周期Tが経過すると(ステップ17)、上記3番目のインパルス応答信号ISj(t)がまだ読み出しの途中であっても、4番目のインパルス応答信号ISj(t)が下位読み出しアドレスデータR2によって読み出し開始される(ステップ27)。
【0122】
このように、2つの下位読み出しアドレスデータR1及びR2によって、2つの同じインパルス応答信号ISj(t)が交互に読み出される。したがって、インパルス応答信号ISj(t)そのものの長さLが繰り返し発生の周期Tより長くても、各周期Tの終わりで先のインパルス応答信号ISj(t)の発生を継続させるとともに、次のインパルス応答信号ISj(t)を重ねて発生させることができる。これらのインパルス応答信号ISj(t)は1つの楽音信号として合成かつ出力される。
【0123】
なお、1つの楽音信号として時分割に読み出されるインパルス応答信号ISj(t)の数は「2」を越えていてもよい。これに応じて、下位読み出しアドレスデータの数もR1、R2、R3、R4、・・・と増加し、ステップ24〜26、27〜29の数も増える。
【0124】
また、1つの楽音信号として時分割に読み出されるインパルス応答信号ISj(t)の数は「1」でもよい。この場合、インパルス応答信号ISj(t)そのものの長さLが繰り返し周期Tより短くなる。したがって、インパルス応答信号ISj(t)そのものの長さLが繰り返し周期Tより短いか否かが判断される。短ければ、ステップ27〜29の処理は省略され、インパルス応答信号ISj(t)の時分割読み出しシステムは1つになる。インパルス応答信号ISj(t)そのものの長さLは、波形末尾アドレスEaと波形先頭アドレスSaとの差を包絡係数rで除算して求められる。同じく繰り返し周期Tは、周期末尾値Fmaxを周期計数fで除算して求められる。
【0125】
10.トーンタイムデータTMの処理
図11はコントローラ20によって一定周期ごとに実行されるインタラプト処理のフローチャートを示す。この処理で上記トーンタイムデータTMのインクリメントが行われる。
【0126】
この処理では、上記アサインメントメモリ42の各チャンネルエリアにつき(ステップ41、44、45)、オン/オフデータが「1」で楽音が発音中のものについて(ステップ42)、そのトーンタイムデータTMが「+1」され(ステップ43)、その他の周期的な処理が行われる(ステップ46)。こうして、各チャンネルの楽音の発音経過時間がカウントされ記憶され、上述したように利用される。
【0127】
11.交互反転回路66
図14はインパルス信号発生部50の第2実施例を示す。この実施例では、上記インパルス信号記憶部51と上記インパルス累算部54との間に図14に示すような交互反転回路66が挿入される。本実施例では上記ステップ12または13で1つの楽音につき2つのチャンネルが割り当てられる。一方の第1チャンネルの周期係数fは、指定された音高に応じており、他方の第2チャンネルの周期係数は指定された音高に応じたものではなく、指定された音高の周期係数fのn倍(2倍)の周期係数nf(2f)に設定される。
【0128】
この2つのチャンネルの割り当てタイミングは同じであり、この2つのチャンネルのインパルス応答信号ISj(t)の発生タイミングも同じであり、位相も揃っていて同じである。パワーデータPWは設定値からさらに(n−1)/n、(1/2)の値とされるかまたはエンベロープレベルデータELが設定値からさらに(n−1)/n、(1/2)の値とされる。他は上記実施例と同じである。
【0129】
第1チャンネルで読み出される第1インパルス応答信号ISj(t)が図16(A1)のようであり、この第1周波数特性(スペクトルエンベロープ、周波数スペクトル成分、フォルマント形状)が図16(B1)であれば、第2チャンネルで読み出されるn倍(2倍)の周波数の第2インパルス応答信号ISj(t)は図16(A2)のようになり、この第2周波数特性(スペクトルエンベロープ、周波数スペクトル成分、フォルマント形状)は、図16(B2)のようになる。ここでは「n=2」である。この図16(B2)のn=2倍の周波数の第2周波数特性の各周波数成分の間隔は、図16(B1)の第1周波数特性の各周波数成分の間隔のn=2倍となり、ちょうど第2周波数特性(図16(B2))は第1周波数特性(図16(B1))の偶数次倍音のみに該当する。
【0130】
ここで、第1インパルス応答信号ISj(t)(A1)の波形から第2インパルス応答信号ISj(t)(図16A2)の1/n(1/2)を差し引して差分合成を行えば、偶数次倍音のみが差し引かれ、合成インパルス応答信号ISj(t)(図16A3)が生成され、その合成周波数特性(図16B3)は奇数次倍音のみとなる。この図16(A3)の波形はインパルス応答信号ISj(t)がn(2)個のうち(n−1)(1)個が(1つおきに、交互に)正負反転されて出力され、指定された音高に応じた楽音となっている。
【0131】
また、間引次数n=3、4、5、6、7、・・・とすることも可能であり、これにより図16(A4)に示すように、n個のうち(n−1)個が正負反転されて出力され、反転されていないインパルス応答信号ISj(t)のレベルが(n−1)/nとされ、反転されたインパルス応答信号ISj(t)のレベルが1/nとされる。
【0132】
この楽音信号の周波数特性はn番目、2n番目、3n番目、4n番目、5n番目、6n番目、7n番目、・・・の周波数成分だけが消去/減衰され、特定の倍音成分だけがない楽音を生成することができる。例えばn=2であれば、2倍音、4倍音、6倍音、8倍音、・・・だけを消去/減衰させることができ、この楽音は閉管楽器の音に適する。さらに例えばn=3であれば、3倍音、6倍音、9倍音、12倍音、・・・だけを消去/減衰させることができる。また例えばn=7であれば、7倍音、14倍音、21倍音、28倍音、・・・だけを消去/減衰させることができ、この楽音はピアノの音に適する。
【0133】
上記インパルス信号記憶部51から続けて読み出された2つのインパルス応答信号ISj(t)は、一方はセレクタ63、セレクタ59及びオアゲート群61を介してそのままインパルス累算部54、乗算器55及び楽音累算部57へ送られ、他方はセレクタ63、セレクタ59を介してインバータ群65で正負反転され乗算器62で1/(n−1)倍、(1/2倍)とされてインパルス累算部54、乗算器55及び楽音累算部57へ送られ累算(加算)合成(差分合成)される。
【0134】
上記セレクタ59は上記チャンネルカウントデータCHNoの下位ビットによって切り換えられ、上記第1チャンネルの第1インパルス応答信号ISj(t)はそのまま出力され、上記第2チャンネルの第2インパルス応答信号ISj(t)は正負反転され1/(n−1)倍、(1/2倍)とされて出力され、図16(B3)のような楽音信号が発生出力される。この楽音信号の周波数特性(スペクトルエンベロープ、周波数スペクトル成分、フォルマント形状)はnの整数倍音のみが消去/減衰された倍音からなり、間引次数n=2であれば奇数次倍音のみからなる。チャンネルカウントデータCHNoは上記タイミング発生部30から送られる。
【0135】
上記1/(n−1)、(1/2)のデータはコントローラ20によって演算され、レジスタ82にストアされ上記乗算器62に供給される。この1/(n−1)の値を決定する間引次数データnはアサインメントメモリ42に各チャンネルごとに記憶され、周波数特性の中の間引く倍音次数が選択切り換えされる。この間引次数データn上記音色情報(トーンナンバデータTN)の一部を構成し、演奏情報発生部10からの音色情報によって決定される。
【0136】
上記セレクタ63には、間引フラグがセレクト信号として送られ、上記奇数次倍音制御を行わない通常のインパルス応答信号ISj(t)がこのセレクタ63を介してオアゲート群61へ送られ、図10に示すように累算(加算)合成される。この間引フラグはアサインメントメモリ42に各チャンネルごとに記憶され、特定倍音の消去/減衰されたまたは奇数次倍音の楽音を生成するか、この消去/減衰のないまたは偶数次倍音も含む楽音が生成されるかが選択切り換えされる。この間引フラグは上記音色情報(トーンナンバデータTN)の一部を構成し、演奏情報発生部10からの音色情報によって決定される。
【0137】
上記各チャンネルの間引きフラグは、コントローラ20によって間引RAM64に書き込まれ上記セレクタ63に交代で時分割に供給される。この間引RAM64には上記チャンネルナンバデータCHNoがアクセスアドレスデータとして供給される。
【0138】
このように、このような奇数次倍音の楽音を生成するのに使われた上記インパルス応答信号ISj(t)は、図10のように通常に読み出されれば、特定倍音の消去/減衰のないまたは偶数次倍音も含む楽音が生成される。したがって1つのインパルス応答信号ISj(t)から特定倍音の消去/減衰のないまたは偶数次倍音を含む楽音と特定倍音の消去/減衰されたまたは含まない楽音とを選択生成できる。
【0139】
12.交互反転回路66
図15はインパルス信号発生部50の第3実施例を示す。この実施例では、上記インパルス信号記憶部51と上記インパルス累算部54との間に図15に示すような交互反転回路66が挿入される。本実施例では上記アサインメント42の割り当てチャンネルのメモリエリアにストアされる周期係数fは、指定された音高に応じたものではなく、指定された音高の周期係数fのn倍(2倍)の周期係数nf(2f)に設定される。パワーデータPWは設定値からさらに(n−1)/n、(1/2)の値とされるかまたはエンベロープレベルデータELが設定値からさらに(n−1)/n、(1/2)の値とされる。他は上記実施例と同じである。
【0140】
周期係数がn倍(2倍)の「nf(2f)」に設定されるから、単位時間あたりに読み出されるインパルス応答信号ISj(t)はn倍(2倍)となる。図15(A3)に示されるようにこれがn(2)個のうち(n−1)(1)個が(1つおきに、交互に)正負反転されて出力され、指定された音高に応じた楽音となる。この場合、インパルス応答信号ISj(t)のレベルは(n−1)/n、(1/2)にされなくてはならないので、上述したようにパワーデータPWは設定値からさらに(n−1)/n、(1/2)の値とされるかまたはエンベロープレベルデータELが設定値からさらに(n−1)/n、(1/2)の値とされる。
【0141】
上記インパルス信号記憶部51から上記2つの下位読み出しアドレスデータR1及びR2により交互に読み出されたインパルス応答信号ISj(t)は、一方はセレクタ63、セレクタ59及びオアゲート群61を介してそのままインパルス累算部54へ送られ、他方はセレクタ63、セレクタ59を介してインバータ群65で正負反転されインパルス累算部54へ送られ累算(加算)合成される。
【0142】
セレクタ59はプログラマブル1/n分周カウンタ81からの1/n分周データによって切り換えられ、上記下位読み出しアドレスデータR1、R2によって読み出されたインパルス応答信号ISj(t)のうちn個のうち1個はそのまま出力され、他の(n−1)個のインパルス応答信号ISj(t)は正負反転されて出力され、図16(A3)のような楽音信号が発生出力される。この楽音信号の周波数特性(スペクトルエンベロープ、周波数スペクトル成分、フォルマント形状)は、図16(B3)に示すようにnの整数倍音のみが消去/減衰された倍音からなり、n=2であれば奇数次倍音のみからなる。上記セレクタ63、間引RAM64及び間引フラグは上述した第2実施例と同じである。
【0143】
上記プログラマブル1/n分周カウンタ81にはコントローラ20によって上記間引き次数データ「n」がセットされ、クロック信号2φR1によってインクリメントされ、このクロック信号2φR1が1/n分周される。このクロック信号2φR1がn個入力されると上記1/n分周データがハイレベルになり、続いてクロック信号2φR1が入力されるとローレベルになり、この後クロック信号2φR1がn個入力されると上記1/n分周データが再びハイレベルになる。
【0144】
このクロック信号2φR1は上記クロック信号φR1の2倍の周波数のクロック信号である。このプログラマブル1/n分周カウンタ81は上記反転されないn個のうち1個のインパルス応答信号ISj(t)と、反転される(n−1)個のインパルス応答信号ISj(t)の各発生を検出している。上記プログラマブル1/n分周カウンタ81は、全チャンネルタイム経過ごとのリセットトリガ信号または1チャンネルタイム経過ごとのリセットトリガ信号によってリセットされる。
【0145】
このように生成されるnの整数倍音のみが消去/減衰された奇数次倍音の楽音は、図17に示す吹奏(管)楽器の楽音信号として最適である。この管は一方が閉じられ他方が開いており、奇数次倍音が偶数次倍音に比べてかなり共振し易くなっており、周波数特性の各周波数成分はほとんどが基本波に対して奇数倍(1倍、3倍、5倍、7倍・・・)である。
【0146】
13.奇数次倍音構成のバリエーション
図16はnの整数倍音のみが消去/減衰された奇数次倍音構成のバリエーションを示す。上記第1インパルス応答信号ISj(t)(図16A1)のレベルが(n−1)/n、(1/2)レベルの第2インパルス応答信号ISj(t)(図16A2)のレベルに対して相対的に大きくなると、図18(A1)に示すような差分合成波形となり、周波数特性は図18(B1)に示すようにnの整数倍音である偶数次倍音が若干含まれる特性となる。
【0147】
また、上記第1インパルス応答信号ISj(t)(図16A1)のレベルが1/n(1/2)レベルの第2インパルス応答信号ISj(t)(図16A2)のレベルに対して相対的に小さくなると、図18(A2)に示すような差分合成波形となり、周波数特性は図18(B1)に示すようにnの整数倍音である偶数次倍音がマイナス値となる特性となる。このような自然界にはあり得ない周波数成分の一部がマイナスとなる楽音波形を得ることができる。
【0148】
この場合、上記セレクタ59の2つの出力端に乗算器またはシフタが設けられ、一方に対して他方のレベルが相対的に大きくされたり小さくされたりする。これらの乗算器またはシフタによって、上述したインパルス応答信号ISj(t)のレベルを(n−1)/n、(1/2)にしたり、また上記エンベロープレベルデータを(n−1)/n、(1/2)にすることを代わりにおこなうことができる。
【0149】
14.包絡周期テーブル群43
図19はプログラム/データ記憶部40内の包絡周期テーブル群43を示す。この包絡周期テーブル群43は音高情報(キーナンバデータKN、周波数ナンバデータFN)に基づいて対応する上記包絡係数r及び上記周期係数fが読み出される。この包絡係数rは上述したようにインバータ信号記憶部51のインパルス応答信号ISj(t)そのものの読み出し速度Sを決定し、周期係数fは同じくインパルス応答信号ISj(t)の繰り返し周期Tを決定する。
【0150】
周期係数fは音高情報に対して正比例している。この音高情報は各音高の周波数値に応じた値を示す。この正比例は厳密な正比例でもよいし、「S字調律」などによって正比例関係から微妙にずれていてもよい。
【0151】
包絡係数rは音高情報に対して正比例したりまたは正比例しておらず、周期係数fと同じまたは異なる変化特性を持つ。特性r1は音高情報に対して変化せず一定である。特性r2は音高情報に対して正比例している。特性r3も音高情報に対して正比例しているが、周期係数fの変化より緩やかである。特性r4は音高情報に対して反比例など逆変化特性を持つ。特性r5は音高情報に対して階段状に変化し急激に変化する部分と緩やかに変化する部分とを有する。特性r6は音高情報に対して累乗的に変化する。特性r7は音高情報に対して指数的に変化する。
【0152】
これらの音高情報に対する周期係数fの特性及び包絡係数rの各特性r1〜7はそれぞれ1つずつのテーブルを構成し、各テーブルは上記包絡周期テーブル群43を構成する。なお一定値の特性r1のテーブルは省略され、この場合音高情報が演算されて包絡係数rが求められてもよい。
【0153】
このようにしてこのテーブルから読み出された周期係数fは上記ステップ13で上記アサインメントメモリ42の対応チャンネルメモリエリアに書き込まれる。また、同じく読み出された包絡係数rは、上述のようにして音色情報(トーンナンバデータTN)などから求められた別の包絡係数rと平均値が求められまたは演算合成され、同じく上記ステップ13で上記アサインメントメモリ42の対応チャンネルメモリエリアに書き込まれる。
【0154】
15.rf選択テーブル44
図20はプログラム/データ記憶部40内のrf選択テーブル44を示す。このrf選択テーブル44によって、上記音楽的ファクタ情報に応じた上記特性r1〜7のテーブルの1つが選択される。この音楽的ファクタ情報は、音高情報、音域(オクターブ)情報、音名情報、音色情報(音色決定因子)、タッチ情報(発音指示操作の速さ/強さ)、発音時間情報、発音数情報、共鳴度情報、エフェクト情報、リズム情報、音像(ステレオ)情報、クオンタイズ情報、変調情報、テンポ情報、音量情報、エンベロープ情報等であり、上記演奏情報発生部10などから発生され、対応するテーブルが選択される。
【0155】
特に、音色情報(トーンナンバデータTN)は2つのグループに分けられる。音高に関係しない音の音色情報では、上記一定値の特性r1のテーブルが選択され、音高変化によってフォルマントが移動しない固定フォルマントの楽音信号が生成される。この音高に関係しない音の音色情報は、例えば音声、音声に近い楽器音、楽器の容器部分の音、音高変化の性質を持たない打楽器音または音声に近い打楽器音である。この楽器の容器部分は、例えばピアノ(鍵盤楽器)の響板若しくは駒など、弦楽器の胴若しくは駒など、管楽器の管自体若しくはリードなど、打楽器の胴、膜、鉦若しくは棒などである。
【0156】
また、音高に関係する音の音色情報では、上記特性r1以外の変化する特性のテーブルが選択され、音高変化によってフォルマントが移動する移動フォルマントの楽音信号が生成される。この音高に関係する音の音色情報は、例えば、鍵盤楽器の打弦の音、弦楽器の擦弦の音、吹奏(管)楽器の共鳴長(管長)、管径若しくは口の形状の音または音高変化の性質を持つ打楽器音などである。
【0157】
17.固定フォルマントと移動フォルマント
図21は固定フォルマントの例を示し、図22は移動フォルマントの例を示す。図21の固定フォルマントでは、包絡係数rは一定でインパルス応答信号ISj(t)そのものの読み出し速度Sは変化せず、周期係数fは音高に応じて変化し、インパルス応答信号ISj(t)の繰り返し周期Tが変化する。
【0158】
そうすると、生成される楽音信号の周波数特性(スペクトルエンベロープ、周波数スペクトル成分)のフォルマント形状は変化せず固定フォルマントとなり、各周波数成分の間隔が変化し音高に応じたものとなる。このような制御は上述の人の音声、動物の鳴き声、音声・鳴き声に近い楽器音または音声・鳴き声に近い音高変化のない打楽器音などで実行される。
【0159】
図22の移動フォルマントでは、包絡係数rも変化してインパルス応答信号ISj(t)そのものの読み出し速度Sも変化し、周期係数fは音高に応じて変化し、インパルス応答信号ISj(t)の繰り返し周期Tが変化する。
【0160】
そうすると、生成される楽音信号の周波数特性(スペクトルエンベロープ、周波数スペクトル成分)は周波数軸上をシフトしてそのフォルマント形状も変化し移動フォルマントとなり、各周波数成分の間隔も変化し音高にも応じたものとなる。このような制御は上述の鍵盤楽器、弦楽器、吹奏(管)楽器または音高変化のある打楽器音などで実行される。
【0161】
18.端部切取テーブル群45
図23はプログラム/データ記憶部40内の端部切取テーブル群45を示す。この端部切取テーブル群45は上記音楽的ファクタ情報、例えば音高情報(キーナンバデータKN、周波数ナンバデータFN、音域情報、音名情報)、音色情報、タッチ情報、発音数情報、共鳴度情報、発音時間情報、パワーデータPWなどに基づいて対応する上記端部切取データΔLadが読み出される。この端部切取データΔLadは上述したようにインパルス応答信号ISj(t)の両端の切り取り量を示す。
【0162】
端部切取データΔLadは音楽的ファクタ情報に対して正比例したりまたは正比例していない。特性L1は音楽的ファクタ情報に対して変化せず一定である。特性L2は音楽的ファクタ情報に対して正比例している。特性L3も音楽的ファクタ情報に対して正比例しているが、特性L2の変化より緩やかである。特性L4は音楽的ファクタ情報に対して反比例など逆変化特性を持つ。特性L5は音楽的ファクタ情報に対して階段状に変化し急激に変化する部分と緩やかに変化する部分とを有する。特性L6は音楽的ファクタ情報に対して累乗的に変化する。特性L7は音楽的ファクタ情報に対して指数的に変化する。
【0163】
階段状の特性L5は、音楽的ファクタ情報がエンベロープフェーズEFのときに使用される。例えば、端部切取データΔLadが低い方から順に第1アタック、第2アタック、ディケイ、サスティーン、リリースとなる。
【0164】
図24はプログラム/データ記憶部40内の別の端部切取テーブル46を示す。この端部切取テーブル46は上記音色情報に基づいて対応する上記端部切取データΔLadが読み出される。この端部切取テーブル46では、ピアノ、バイオリン、ドラム、フルート、その他の楽器、音声1、音声2、・・・の順番で端部切取データΔLadの値が大きくなっている。
【0165】
このように端部切取データΔLadは、変化の激しい楽器音ほど小さくなり、1つの楽音の中でも変化の激しいアタック部分ほどまたは発音時間が少ないほど小さくなる。なお、複数の音色の楽音が同時に発音される場合には、耳によく聞こえる重要な音色ほど端部切取データΔLadは小さくされる。したがって、この端部切取テーブル46の端部切取データΔLadはこのような重要度に基づいて決定されてもよい。
【0166】
これらの音楽的ファクタ情報に対する端部切取データΔLadの特性L1〜7はそれぞれ1つずつのテーブルを構成し、各テーブルは上記端部切取テーブル群45を構成する。なお一定値の特性L1のテーブルは省略され、この場合音楽的ファクタ情報の値が演算されて端部切取データΔLadが求められてもよい。
【0167】
これら端部切取テーブル群45及び端部切取テーブル46の端部切取データΔLadは、上述のアサインメントメモリ42のところで述べた演算式群によって求められ記憶されている。従って、この端部切取データΔLadを読み出すための上記音楽的ファクタ情報は上記周期係数f及び包絡係数rまたはアドレス長Lad=(Ea−Sa)で代用できる。
【0168】
なお、上記演算式で求めた端部切取データΔLadとこの端部切取テーブル群45または端部切取テーブル46から読み出された端部切取データΔLadとが平均値合成されたり演算合成したり一方のみが選択されてもよい。このようにしてこのテーブルから読み出された端部切取データΔLadは上記アサインメントメモリ42の対応チャンネルメモリエリアに書き込まれる。
【0169】
19.端部切り取り回路67
図25はインパルス信号発生部50の第4実施例を示す。この実施例では、上記インパルス信号記憶部51と上記セレクタ63との間に図25に示すような端部切り取り回路67が挿入される。
【0170】
上記インパルス信号読み出し部53のパラメータRAM501には、各チャンネルの上記波形先頭アドレスデータSa及び波形末尾アドレスデータEaが書き込まれるが、このとき下記のような修正が実行され、上記図8の発音処理のフローチャートが実行される。
【0171】
Sa←Sa+ΔLad
Ea←Ea−ΔLad
これにより、インパルス信号記憶部51から読み出されるインパルス応答信号ISj(t)の両端から端部切取データΔLadの長さが切り取られる。この修正された波形先頭アドレスデータSaから波形末尾アドレスデータEaまで上記下位読み出しアドレスデータR1及びR2がインクリメントされる。
【0172】
この下位読み出しアドレスデータR1またはR2は時分割にインパルス信号読み出し部53から出力される。この読み出しアドレスデータR1(R2)は、加算器68で上記修正値(Sa+ΔLad)が減算され、セレクタ69を介して窓関数メモリ71に供給されて窓関数値WFが読み出される。この窓関数値WFはセレクタ76を介して乗算器72に送られてインパルス応答信号ISj(t)に乗算合成され、各インパルス応答信号ISj(t)の切り取られた前端が滑らかになる。
【0173】
上記加算器68で上記読み出しアドレスデータR1(R2)から上記修正値(Sa+ΔLad)が減算されるので、窓関数メモリ71の先頭アドレスから読み出しが開始される。上記加算器68からのアドレスデータR1(R2)−(Sa+ΔLad)が上記窓幅データWadを越えるとコンパレータ77から検出信号が上記セレクタ76へ送られ、データ”1”が上記乗算器72へ送られる。
【0174】
また上記読み出しアドレスデータR1(R2)はコンパレータ73にも送られる。このコンパレータ73には加算器74から、上記修正値(Ea−ΔLad)からさらに窓幅データWadが減算された値が送られる。読み出しアドレスデータR1(R2)が値(Ea−ΔLad−Wad)を越えると検出信号がコンパレータ73から上記セレクタ69へ送られる。
【0175】
そうすると上記加算器68からのアドレスデータR1(R2)−(Sa+ΔLad)がインバータ群70で反転されて上記窓関数メモリ71へ送られる。これによりインパルス応答信号ISj(t)の読み出しの末尾から窓幅データWad手前で、上記窓関数値WFが逆方向に読み出され、各インパルス応答信号ISj(t)の切り取られた後端が滑らかなる。こうして各インパルス応答信号ISj(t)の切り取られた前と後の各端が滑らかにつながる。
【0176】
この窓関数メモリ71には複数種類の窓関数値WFが記憶されており、窓選択データWSによっていずれかが選択される。この窓関数の種類は、図26(B1)(B2)(B3)(B4)に示される。この窓関数値WFは、0倍から1倍まで変化し、または1/2倍から1倍まで変化し、減少倍から等倍まで変化する重みデータである。
【0177】
端部RAM75の各チャンネルエリアには、上記コントローラによって上記アサインメントメモリ42の各チャンネルエリアの窓選択データWS、波形先頭アドレスデータSa、波形末尾アドレスデータEa、端部切取データΔLad及び窓幅データWadが書き込まれコピーされる。
【0178】
波形先頭アドレスデータSa及び端部切取データΔLadはインバータ群78、79で正負反転されて上記加算器68へ送られる。端部切取データΔLad及び窓幅データWadはインバータ群79、80で正負反転されて上記加算器74へおくられ、波形末尾アドレスデータEaはそのまま加算器74へ送られる。窓幅データWadはそのまま上記コンパレータ77へ送られる。窓選択データWSはそのまま窓関数メモリ71へ送られる。上記端部RAM75には上記タイミング発生器30からのチャンネルナンバデータCHNoが読み出し/書き込みアドレスデータとして供給されている。
【0179】
20.端部切り取り状態
図26はインパルス応答信号ISj(t)の端部切り取り状態を示す。インパルス信号記憶部51に記憶されたインパルス応答信号ISj(t)(A1)は両端の読み出しが端部切取データΔLadだけ実行されない。そうすると、図26(A2)のようなインパルス応答信号ISj(t)が実際に読み出される。
【0180】
この読み出されるインパルス応答信号ISj(t)の両端は不連続となる。図26(B1)(B2)(B3)(B4)に示す窓関数値WFが選択され、この両端に演算合成される。これにより、各インパルス応答信号ISj(t)が各端で滑らかにつながる。
【0181】
図26(B1)の窓関数値WFは「0」から「1」まで変化し、図26(B2)の窓関数値WFは「1/2」から「1」まで変化し、図26(B3)の窓関数値WFは「0」から「1」まで直線的に変化し、図26(B4)の窓関数値WFは「0」からいきなり「1」まで変化する。
【0182】
切り取られたインパルス応答信号ISj(t)の前端が「0」から極大値または極小値に向かって上昇する状態であれば、図26(B1)の窓関数値WFが選択される。また、切り取られたインパルス応答信号ISj(t)の前端が極大値または極小値から「0」に向かって下降する状態であれば、図26(B2)の窓関数値WFが選択される。この「上昇」「下降」は後端では逆になる。
【0183】
この「上昇」「下降」の検出は以下のようにして実行される。インパルス応答信号ISj(t)の端のアドレス(Sa+ΔLad)または(Ea−ΔLad)のレベル値が隣のアドレス(Sa+ΔLad+1)または(Ea−ΔLad−1)のレベル値より小さければ「上昇」であり、大きければ「下降」である。この検出は上記コントローラ20によって実行され窓選択データWSが決定される。
【0184】
これにより、インパルス応答信号ISj(t)の端が図26(C1)のように「上昇」のときは、図26(D1)に示すようにこの端が「0」に補正され不連続がなくなる。インパルス応答信号ISj(t)の端が図26(C2)のように「下降」のときは、図26(D2)に示すようにこの端の傾きがほぼ「0」に補正され隣の信号の端と滑らかにつながる。
【0185】
この窓関数値WFの中央部の「1」の値の部分が長い。この「1」の値の部分が短くなると、生成される楽音信号の周波数特性(スペクトルエンベロープ、周波数スペクトル成分、フォルマント形状)が変化してしまう。したがって、「1」の値の部分は長いほうがよい。
【0186】
図26(B4)の窓関数値WFは重み付けのない方形窓関数であり、切り取られたインパルス応答信号ISj(t)の端は重み付け補正されない。したがって、ノイズが発生する可能性がある。ただし、この端がレベル「0」または傾斜が「0」の極大値または極小値であれば、ノイズは発生しない。この場合、図25の端部切り取り回路67は省略される。これら図26(B1)(B2)(B3)(B4)に限られない。例えば、「2」から「1」または「1.5」から「1」へ変化したりする「1」の値を越える窓関数、このほか三角窓関数、台形窓関数、ハミング窓関数、ハニング窓関数などでもよい。
【0187】
図27はインパルス応答信号ISj(t)のつながり状態を示す。インパルス応答信号ISj(t)の両端を切り取らないで繰り返して読み出すと、音高が低く繰り返し周期Tが長いときは、図27(A2)に示すように各インパルス応答信号ISj(t)の端は重ならない。しかし、音高が高く繰り返し周期Tが短いときは、各インパルス応答信号ISj(t)の端が重なり、この重なり部分の演算量及び処理量が多くなる。
【0188】
同じくインパルス応答信号ISj(t)の両端を切り取らないで繰り返して読み出すと、音高が低く繰り返し周期Tが長いときは、図27(B2)に示すように各インパルス応答信号ISj(t)の端は重ならない。また、インパルス応答信号ISj(t)の両端を切り取って繰り返して読み出すと、音高が高く繰り返し周期Tが短いときは、各インパルス応答信号ISj(t)の端が重なりを防止することができ、この重なり部分の演算量及び処理量が少なくて済む。
【0189】
このようにインパルス応答信号ISj(t)の長さを短くすると生成される楽音信号の周波数特性(スペクトルエンベロープ、周波数スペクトル成分、フォルマント形状)は滑らかになる。これにより、楽音の音色の変化を滑らかにすることができる。
【0190】
21.インパルス合成回路83
図28はインパルス合成回路83を示す。このインパルス合成回路83は上記インパルス累算部54と上記乗算器55との間に設けられる。上記インパルス累算部54から送られてくる各チャンネルのインパルス応答信号ISj(t)は乗算器89で各チャンネルごとに重み付けデータWTが乗算され、加算器84で累算メモリ85からの累算インパルス応答信号AISj(t)に累算されて累算メモリ85に書き込まれ、インパルス応答信号ISj(t)が順次累算される。上記累算メモリ85には上記クロック信号φR1が書き込み信号として供給され、各チャンネルタイミングごとにインパルス応答信号ISj(t)が累算される。
【0191】
累算されたインパルス応答信号AISj(t)は出力メモリ86に書き込まれ上記乗算器55へ送られて上記エンベロープデータEN及び上記パワーデータPWと乗算される。このインパルス応答信号ISj(t)の累算は、全チャンネルごとに行われるのではなく、合成されるインパルス応答信号ISj(t)毎に行われる。
【0192】
各チャンネルの重み付けデータWTが重み付けRAM90にコントローラ20によって書き込まれる。この重み付けRAM90には上記チャンネルナンバデータCHNoがアクセスアドレスデータとして供給される。この各チャンネルの重み付けデータWTは上記乗算器89に送られる。
【0193】
合成チャンネル数データsがラッチ87にコントローラ20によって書き込まれる。この合成チャンネル数データsは1つの楽音として合成されるインパルス応答信号ISj(t)の数つまり1つの楽音への割り当てチャンネル数を示す。この合成チャンネル数データsの値は上記音楽的ファクタ情報によって決定される。
【0194】
この合成チャンネル数データsはプログラマブル1/s分周カウンタ88に送られ、上記クロック信号φR1が1/s分周され、この1/s分周データは上記出力メモリ86へ書き込み信号として送られ、また上記累算メモリ85へ少しディレイされてクリア信号として送られ、sチャンネル分ずつインパルス応答信号ISj(t)が累算されて出力される。このプログラマブル1/s分周カウンタ88は、全チャンネルタイム経過ごとのリセットトリガ信号によってリセットされる。
【0195】
このような1つの楽音として合成されるs個のインパルス応答信号ISj(t)については、上記ステップ12または13でs個のチャンネルに上記楽音データが同じタイミングで割り当てられる。したがって、このs個のインパルス応答信号ISj(t)は、発生タイミングが同じであり、位相も同じである。上述のように周期係数fも揃っているので各インパルス応答信号ISj(t)の位相も揃っている。
【0196】
上記乗算器89で各インパルス応答信号ISj(t)には重み付けデータWTが乗算されるので、1つの楽音として合成される各インパルス応答信号ISj(t)は重み付けデータWTによって合成割合(混合比)が変更される。この重み付けデータWTを変更することで、インパルス応答信号ISj(t)の合成の組み合わせが同じでも、合成されて生成される楽音信号の周波数特性は変化する。
【0197】
22.複数のインパルス応答信号の合成状態
図29は複数のインパルス応答信号ISj(t)の合成状態を示す。図29の(A1)のようなインパルス応答信号ISj(t)の周波数特性(スペクトルエンベロープ、周波数スペクトル成分、フォルマント形状)は(B1)のように高調波成分が多く、(A2)のようなインパルス応答信号ISj(t)の周波数特性(スペクトルエンベロープ、周波数スペクトル成分、フォルマント形状)は(B2)のように高調波成分が少ない。
【0198】
これら両インパルス応答信号ISj(t)(A1)と(A2)とが累算(加算)合成されると、合成された累算インパルス応答信号AISj(t)は(A3)のようになり、合成形状は両信号の中間の波形となり、全く異なる形状のインパルス応答信号ISj(t)が生成され、その周波数特性(スペクトルエンベロープ、周波数スペクトル成分、フォルマント形状)は(B3)のように高調波成分が平均化された中間状態となる。
【0199】
このような合成によって、合成する前のインパルス応答信号ISj(t)の各周波数特性を平均した周波数特性を持つ合成インパルス応答信号ISj(t)が生成される。従来の通常の楽音波形の加算合成では累積的な合成となる。このインパルス応答信号の加算合成では中間の平均化の合成となる。
【0200】
上記重み付けデータWTによって、この平均の重み付けつまり平均の状態が変更される。このような合成インパルス応答信号ISj(t)の形状は、合成する前のインパルス応答信号ISj(t)の形状とは異なっているし、合成インパルス応答信号ISj(t)の周波数特性(スペクトルエンベロープ、周波数スペクトル成分、フォルマント形状)は、合成する前のインパルス応答信号ISj(t)の周波数特性(スペクトルエンベロープ、周波数スペクトル成分、フォルマント形状)とも異なっている。
【0201】
このような合成によって、代表的なインパルス応答信号ISj(t)を記憶するだけで、中間の周波数特性を持つインパルス応答信号ISj(t)を合成することができる。例えば複数の音名ごと、音域ごと、音色群ごと(鍵盤系、打弦系、擦弦系、木管系、金管系、打楽器系、音声系など)、タッチ群ごと、発音時間群ごと、発音数ごと、共鳴度群ごと、演奏分野ごと(メモリ、コード、ベース、伴奏、リズム)、エンベロープごと(持続型、減衰型)に、代表的なインパルス応答信号ISj(t)が記憶される。この代表的な複数のインパルス応答信号ISj(t)を重み付け合成するだけで、他の音楽的ファクタにおけるインパルス応答信号ISj(t)が得られる。
【0202】
例えば、低音域のインパルス応答信号ISj(t)と高音域のインパルス応答信号ISj(t)とが重み付け合成されれば、中音域のインパルス応答信号ISj(t)が得られる。ここで、合成の重み付けが変えられれば、さらに細かい音域のインパルス応答信号ISj(t)が得られる。
【0203】
また例えば、金管系のインパルス応答信号ISj(t)と木管系のインパルス応答信号ISj(t)とが重み付け合成されれば、中間のインパルス応答信号ISj(t)が得られる。ここで、合成の重み付けが変えられれば、さらに細かい管域のインパルス応答信号ISj(t)が得られる。
【0204】
このような合成によって、少ないインパルス応答信号ISj(t)を記憶するだけで、任意の周波数特性を持つインパルス応答信号ISj(t)を合成することができる。例えば特定の周波数領域だけに凸部または凹部分を持つ周波数特性、複数の凸部又は凹部を有する周波数特性、複数段差を有する周波数特性などが可能である。
【0205】
また、同じインパルス応答信号ISj(t)でも周期係数fを変えて合成しても、複数のこぶまたは段差を有する周波数特性を得ることができる。例えば、図29の(B2)の周波数特性につき周期係数fを順次変えて合成すると、連山のような凹凸を有する周波数特性が得られる。
【0206】
なお、上記重み付けデータWTは、上記発音時間情報(トーンタイムデータTM)から求められてもよいし、この情報(TM)から変換されてもよい。この場合、上記ステップ41〜45で得られたトーンタイムデータTMが演算処理され変換され、逐次上記重み付けRAM90に各チャンネルごとに書き込まれる。
【0207】
また、この重み付けデータWTは上記パワーデータPW、エンベロープレベルデータEL、タッチデータTCなどに演算(乗算など)合成されて上記アサインメントメモリ42にストアされてもよい。
【0208】
さらに、このインパルス合成回路83は省略されて、このインパルス合成回路83の機能が上記楽音累算部57で実行されてもよい。また、上記インパルス信号発生部50が上記s個設けられ、各インパルス信号発生部50からのs個のインパルス応答信号ISj(t)がs個の乗算器で上記重み付けデータWTがそれぞれ乗算合成され、さらに加算器で加算合成されて出力されてもよい。
【0209】
この場合、s個の重み付けデータWTがRAMから上記s個の加算器にパラレルに出力され、このRAMには上記コントローラ20によってアサインメントメモリ42の重み付けデータWTがs個ずつコピーされ、このRAMには上記チャンネルナンバデータCHNoの上位データがアクセスアドレスとして供給される。
【0210】
本発明は上記実施例に限定されず、本発明の趣旨を逸脱しない範囲で種々変更可能である。例えば、周期末尾値Fmaxの設定は省略されて、周期カウント値Fが取りうる最大値に固定され得る。この場合周期係数fだけによって、楽音信号の音高が決定される。
【0211】
上記1つのインパルス応答信号ISj(t)の前半と後半は同じ形状であったが、互いに異なる形状でもよい。また、インパルス応答信号ISj(t)の前半のみが記憶され、この前半が折り返し逆に読み出されて、後半の信号が生成されてもよい。上記インパルス応答信号ISj(t)は、外部からの音をサンプリング記憶して、上記ケプストラム法、線形予測法等によって変換したものでもよいし、使用者が人工的に作成したものでもよい。
【0212】
また、本発明は電子楽器またはコンピュータなどにおいて実施され得る。上記各図の回路の機能はソフトウエア(フローチャート)によって実施されても良いし、上記各図のフローチャートの機能はハードウエア(回路)によって実施されてもよい。
【0213】
上記インパルス応答信号ISj(t)は前半の波形と後半の波形が対称であることが多い。この場合、インパルス信号記憶部51には、この前半の半波形または後半の半波形のみ記憶され、この半波形が読み出された後、同半波形が逆に読み出されて、インパルス応答信号ISj(t)全体が生成されてもよい。これによりインパルス信号記憶部51の記憶量が減少する。
【0214】
さらに、インパルス応答信号ISj(t)は、外部から送られてきたり、演算によって求めて発生させてもよい。この場合、インパルス応答信号ISj(t)を表す演算式に基づいて、包絡係数rの累算値から波形の各瞬時値が計算され出力される。また、この計算は上記繰り返し周期T経過ごとに繰り返し実行される。
【0215】
上記パワーデータPWによる音量パワーの制御は、インパルス応答信号ISj(t)の読み出し(発生)速度Sと繰り返し周期Tとが独立に制御される場合だけでなく、一方が他方に連動または従属する場合も実行される。この場合、周期係数fと包絡係数rとは同じ音楽的ファクタ、例えば音高、音色、タッチ、発音時間に応じて決定されたり、一方のデータが求められ、この一方のデータにある演算が行われて他方が求められたりする。
【0216】
上記インパルス応答信号ISj(t)の両端の読み出しをカットせず、インパルス応答信号ISj(t)全体を読み出してもよい。この場合、窓関数値WFの端に「0」の値の部分が所定アドレス分記憶され読み出される。これによっても各インパルス応答信号ISj(t)の各端の重なりを防止することができる。
【0217】
(1) 発生すべき楽音信号の周波数特性に対応した所定長のインパルス応答信号を繰り返し発生させ、 この繰り返し発生されるインパルス応答信号の繰り返しの周期を、音高決定因子に応じて変化させ、 上記音高決定因子とは異なる音色決定因子に応じて、上記発生されるインパルス応答信号そのものの発生速度を、上記繰り返し周期とは独立に変化させることを少なくともコンピュータに実行させる楽音生成のためのコンピュータプログラムを記憶した媒体/コンピュータプログラムの通信方法/楽音生成装置(方法)。
【0218】
(2) 発生すべき楽音信号の周波数特性に対応した所定長のインパルス応答信号を発生し、 この発生されるインパルス応答信号を所定の周期で繰り返し発生させるように制御し、 上記インパルス応答信号そのものの長さが上記繰り返し発生の周期より長くても、当該周期の終わりで当該インパルス応答信号の発生を継続させるとともに、次のインパルス応答信号を重ねて発生させることをコンピュータに実行させる楽音生成のためのコンピュータプログラムを記憶した媒体/コンピュータプログラムの通信方法/楽音生成装置(方法)。
【0219】
(3) 音高決定因子は上記楽音信号の音高を決定する因子であり、 音色決定因子は上記楽音信号の音色を決定する因子であり、 上記インパルス応答信号は記憶手段に記憶され、上記音色決定因子に応じてこのインパルス応答信号の読み出し速度が決定され、上記音高決定因子に応じてこのインパルス応答信号の繰り返し読み出しの繰り返し周期が決定される請求項1または2記載の楽音生成のためのコンピュータプログラムを記憶した媒体/コンピュータプログラムの通信方法/楽音生成装置(方法)。
【0220】
(4) 発生すべき楽音信号の周波数特性に対応した所定長のインパルス応答信号を繰り返し発生し、 この繰り返し発生されるインパルス応答信号の繰り返しの周期を、音高決定因子に応じて変化させ、 上記音高決定因子とは異なる音色決定因子に応じて、上記発生されるインパルス応答信号そのものの発生速度を、上記繰り返し周期とは独立に変化させ、 発生された音楽的因子に応じて、上記繰り返し発生されるインパルス応答信号の波形形状を切り換えることをコンピュータに実行させる楽音生成のためのコンピュータプログラムを記憶した媒体/コンピュータプログラムの通信方法/楽音生成装置(方法)。
【0221】
(5) 発生すべき楽音信号の周波数特性に対応した所定長のインパルス応答信号を発生し、 この発生されるインパルス応答信号を所定の周期で繰り返し発生させるように制御し、 上記インパルス応答信号そのものの長さが上記繰り返し発生の周期より長くても、当該周期の終わりで当該インパルス応答信号の発生を継続させるとともに、複数の発生手段(読み出し手段)によって、次のインパルス応答信号を重ねて発生させ、 発生された音楽的因子に応じて、上記繰り返し発生されるインパルス応答信号の波形形状を切り換えることをコンピュータに実行させる楽音生成のためのコンピュータプログラムを記憶した媒体/コンピュータプログラムの通信方法/楽音生成装置(方法)。
【0222】
(6) 音高決定因子は上記楽音信号の音高を決定する因子であり、 音色決定因子は上記楽音信号の音色を決定する因子であり、 上記インパルス応答信号は記憶手段に記憶され、上記音色決定因子に応じてこのインパルス応答信号の読み出し速度が決定され、上記音高決定因子に応じてこのインパルス応答信号の繰り返し読み出しの繰り返し周期が決定され、 上記音楽的因子は上記楽音信号の音高を決定する因子、または上記音高決定因子とは異なる音色決定因子である請求項4または5記載の楽音生成のためのコンピュータプログラムを記憶した媒体/コンピュータプログラムの通信方法/楽音生成装置(方法)。
【0223】
(7) 発生すべき楽音信号の周波数特性に対応した所定長のインパルス応答信号を繰り返し発生し、 この繰り返し発生されるインパルス応答信号の繰り返しの周期を変化させ、
この発生されるインパルス応答信号そのものの発生速度を変化させ、 上記変化されるインパルス応答信号の繰り返し周期に基づいて、または上記変化されるインパルス応答信号そのものの発生速度に基づいて、発生されるインパルス応答信号の大きさを変化させることをコンピュータに実行させる楽音生成のためのコンピュータプログラムを記憶した媒体/コンピュータプログラムの通信方法/楽音生成装置(方法)。
【0224】
(8) 上記インパルス応答信号の大きさは、当該インパルス応答信号の波形のパワーまたは発音操作の速さまたは強さに応じても変化され、 上記インパルス応答信号の繰り返しの周期は、音高決定因子に応じて変化され、 上記インパルス応答信号そのものの発生速度は、音色決定因子に応じて変化され、しかも上記繰り返し周期とは独立に変化され、 この音高決定因子は上記楽音信号の音高を決定する因子であり、 この音色決定因子は上記楽音信号の音色を決定する因子であり、 上記インパルス応答信号は記憶手段に記憶され、上記音色決定因子に応じてこのインパルス応答信号の読み出し速度が決定され、上記音高決定因子に応じてこのインパルス応答信号の繰り返し読み出しの繰り返し周期が決定される請求項7記載の楽音生成のためのコンピュータプログラムを記憶した媒体/コンピュータプログラムの通信方法/楽音生成装置(方法)。
【0225】
(9) 発生すべき楽音信号の周波数特性に対応した所定長のインパルス応答信号を繰り返し発生し、 この繰り返し発生されるインパルス応答信号のうちいくつかを正負反転させ、これにより上記楽音信号の周波数特性を変化させることをコンピュータに実行させる楽音生成のためのコンピュータプログラムを記憶した媒体/コンピュータプログラムの通信方法/楽音生成装置(方法)。
【0226】
(10) 上記インパルス応答信号は同じ波形でn個繰り返し発生され、一方の繰り返し周期は他方の繰り返し周期の1/n倍であり、一方のレベルは他方のレベルより低くまたは一方のレベルは他方のレベルの1/nであり、これら両インパルス応答信号が差分合成されて出力され、これによりn個のインパルス応答信号のうち(n−1)個のインパルス応答信号が正負反転されて発生され、 または上記インパルス応答信号そのものの長さが上記繰り返し発生の周期より長くても、当該周期の終わりで当該インパルス応答信号の発生を継続させるとともに、複数の発生手段によって、次のインパルス応答信号を重ねて発生させ、この各インパルス応答信号の発生を検出し、この検出結果に基づいて繰り返し発生されるインパルス応答信号をn個のうち(n−1)個を正負反転させ、反転されていないインパルス応答信号のレベルを(n−1)/nとし、反転されたインパルス応答信号のレベルを1/nとし、 上記インパルス応答信号は記憶手段に記憶され、音色決定因子に応じてこのインパルス応答信号の読み出し速度が決定され、音高決定因子に応じてこのインパルス応答信号の繰り返し読み出しの繰り返し周期が決定される請求項6記載の楽音生成のためのコンピュータプログラムを記憶した媒体/コンピュータプログラムの通信方法/楽音生成装置(方法)。
【0227】
(11) 発生すべき楽音信号の周波数特性に対応した所定長のインパルス応答信号を繰り返し発生し、 この繰り返し発生されるインパルス応答信号の繰り返しの周期を決定し、 この発生されるインパルス応答信号そのものの発生速度を決定し、 音高決定因子に基づいて、上記インパルス応答信号の繰り返し周期を変化させるとともに、上記インパルス応答信号そのものの発生速度を変化させるか否かを選択するコンピュータに実行させる楽音生成のためのコンピュータプログラムを記憶した媒体/コンピュータプログラムの通信方法/楽音生成装置(方法)。
【0228】
(12) 発生すべき楽音信号の周波数特性に対応した所定長のインパルス応答信号を繰り返し発生し、 この繰り返し発生されるインパルス応答信号の繰り返しの周期を決定し、 この発生されるインパルス応答信号そのものの発生速度を決定し、 音高決定因子に基づいて、上記インパルス応答信号の繰り返し周期を変化させるとともに、上記インパルス応答信号そのものの発生速度を、当該繰り返し周期の変化とは異なる特性で変化させるコンピュータに実行させる楽音生成のためのコンピュータプログラムを記憶した媒体/コンピュータプログラムの通信方法/楽音生成装置(方法)。
【0229】
(13) 上記インパルス応答信号そのものの発生速度を変化させるか否かの選択は、固定フォルマントの楽音信号を選択するときは選択されず、移動フォルマントの楽音信号を選択するときは選択され、 上記発生されるインパルス応答信号そのものの発生速度は、音色決定因子に応じて変化され、 上記発生されるインパルス応答信号の繰り返し周期は、音高決定因子に応じて変化され、 上記インパルス応答信号は記憶手段に記憶され、音色決定因子に応じてこのインパルス応答信号の読み出し速度が決定され、音高決定因子に応じてこのインパルス応答信号の繰り返し読み出しの繰り返し周期が決定され、 上記音高決定因子は上記楽音信号の音高を決定する因子であり、 上記音色決定因子は上記楽音信号の音色を決定する因子である請求項11記載の楽音生成のためのコンピュータプログラムを記憶した媒体/コンピュータプログラムの通信方法/楽音生成装置(方法)。
【0230】
(14) 上記インパルス応答信号の繰り返し周期は音高決定因子にほぼ比例して変化し、上記インパルス応答信号そのものの発生速度は音高決定因子に対して比例しないで変化し、 上記発生されるインパルス応答信号そのものの発生速度は、音色決定因子に応じて変化され、 上記発生されるインパルス応答信号の繰り返し周期は、音高決定因子に応じて変化され、 上記インパルス応答信号は記憶手段に記憶され、音色決定因子に応じてこのインパルス応答信号の読み出し速度が決定され、音高決定因子に応じてこのインパルス応答信号の繰り返し読み出しの繰り返し周期が決定され、 上記音高決定因子は上記楽音信号の音高を決定する因子であり、 上記音色決定因子は上記楽音信号の音色を決定する因子である請求項12記載の楽音生成のためのコンピュータプログラムを記憶した媒体/コンピュータプログラムの通信方法/楽音生成装置(方法)。
【0231】
(15) 発生すべき楽音信号の周波数特性に対応した所定長のインパルス応答信号を繰り返し発生し、 この繰り返し発生されるインパルス応答信号の繰り返しの周期を決定し、 この発生されるインパルス応答信号そのものの発生速度を決定し、 上記インパルス応答信号の端を発生させないようにし、 音楽的因子に基づいて、上記インパルス応答信号の端を発生させない量を変化することをコンピュータに実行させる楽音生成のためのコンピュータプログラムを記憶した媒体/コンピュータプログラムの通信方法/楽音生成装置(方法)。
【0232】
(16) 発生すべき楽音信号の周波数特性に対応した所定長のインパルス応答信号を繰り返し発生し、 この繰り返し発生されるインパルス応答信号の繰り返しの周期を決定し、 この発生されるインパルス応答信号そのものの発生速度を決定し、 上記インパルス応答信号の端を発生させないようにし、 上記繰り返し発生されるインパルス応答信号それぞれの端が重なる量を検出し、 この検出量に応じて、上記インパルス応答信号の端を発生させない量を決定する楽音生成のためのコンピュータプログラムを記憶した媒体/コンピュータプログラムの通信方法/楽音生成装置(方法)。
【0233】
(17) 上記インパルス応答信号それぞれの端が重なる量と、上記インパルス応答信号の端を発生させない量とは一致しており、これにより各インパルス応答信号が端でつながり、 または上記インパルス応答信号それぞれの端が重なる量より、上記インパルス応答信号の端を発生させない量の方が大きく、 上記インパルス応答信号には、窓関数が演算合成され、または端に減少倍から等倍まで変化する重みデータが合成され、これによりインパルス応答信号の端が発生されず、しかも各インパルス応答信号が端で滑らかにつながり、 上記インパルス応答信号の端を発生させない量は、音高決定因子によって変化され、 上記インパルス応答信号は複数の発生手段によって交代で発生され、この複数の発生手段で発生される各インパルス応答信号は重なっており、1つの発生手段から発生されるインパルス応答信号の端は重なっておらず、 上記発生されるインパルス応答信号そのものの発生速度は、音色決定因子に応じて変化され、 上記発生されるインパルス応答信号の繰り返し周期は、音高決定因子に応じて変化され、 上記インパルス応答信号は記憶手段に記憶され、音色決定因子に応じてこのインパルス応答信号の読み出し速度が決定され、音高決定因子に応じてこのインパルス応答信号の繰り返し読み出しの繰り返し周期が決定され、 上記音高決定因子は上記楽音信号の音高を決定する因子であり、 上記音色決定因子は上記楽音信号の音色を決定する因子であること特徴とする請求項15または16記載の楽音生成のためのコンピュータプログラムを記憶した媒体/コンピュータプログラムの通信方法/楽音生成装置(方法)。
出願当初の特許請求の範囲は以下のとおりであった。
[1]発生すべき楽音信号の周波数特性に対応した所定長のインパルス応答信号を複数繰り返し発生し、 この繰り返し発生される各インパルス応答信号の繰り返しの周期を決定し、 この発生される各インパルス応答信号そのものの発生速度を決定し、 これら繰り返し周期と発生速度との決定された複数のインパルス応答信号を合成することにより、これら合成される前のインパルス応答信号とは異なる別のインパルス応答信号を生成することを特徴とする楽音生成装置。
[2]発生すべき楽音信号の周波数特性に対応した所定長のインパルス応答信号を複数繰り返し発生させ、 この繰り返し発生される各インパルス応答信号の繰り返しの周期を決定させ、 この発生される各インパルス応答信号そのものの発生速度を決定させ、 これら繰り返し周期と発生速度との決定された複数のインパルス応答信号を合成させることにより、これら合成される前のインパルス応答信号とは異なる別のインパルス応答信号を生成させることを特徴とする楽音生成方法。
[3]上記合成される各インパルス応答信号は発生開始のタイミングが同じで位相も揃って同じであり、 上記合成される各インパルス応答信号は、互いに周波数特性が異なっているまたは同じであり、 上記合成される各インパルス応答信号は、互いに繰り返し周期が異なっているまたは同じであり、 上記合成される各インパルス応答信号は、互いに信号そのものの発生速度が異なっているまたは同じであり、 上記合成される各インパルス応答信号の組み合わせは、音楽的因子によって決定され、 上記合成される各インパルス応答信号は、重み付けされて合成され、この各重み付けは音楽的因子によって決定され、 上記発生されるインパルス応答信号そのものの発生速度は、音色決定因子に応じて変化され、 上記発生されるインパルス応答信号の繰り返し周期は、音高決定因子に応じて変化され、 上記インパルス応答信号は記憶手段に記憶され、音色決定因子に応じてこのインパルス応答信号の読み出し速度が決定され、音高決定因子に応じてこのインパルス応答信号の繰り返し読み出しの繰り返し周期が決定され、 上記音高決定因子は上記楽音信号の音高を決定する因子であり、 上記音色決定因子は上記楽音信号の音色を決定する因子であること特徴とする請求項1記載の楽音生成装置。
【0234】
【発明の効果】
以上詳述したように、本発明では、繰り返し周期と発生速度との決定された複数のインパルス応答信号を合成することにより、合成される前のインパルス応答信号とは異なる別のインパルス応答信号を生成する。したがって、少ないインパルス応答信号でより多くのインパルス応答信号を生成することができる等の効果を奏する。
【図面の簡単な説明】
【図1】楽音生成装置の全体回路を示す。
【図2】アサインメントメモリ42を示す。
【図3】インパルス信号発生部50を示す。
【図4】インパルス信号記憶部51に記憶されている種々のインパルス応答信号ISj(t)を示す。
【図5】インパルス応答信号ISj(t)の繰り返し周期Tの変化による波形パワー(音量)の違いを示す。
【図6】インパルス信号発生部50の中のインパルス信号読み出し部53を示す。
【図7】処理全体のフローチャートを示す。
【図8】上記ステップ02の発音処理のフローチャートを示す。
【図9】インパルス信号読み出し部53の各部の動作のタイムチャートを示す。
【図10】インパルス応答信号ISj(t)のインパルス信号記憶部51からの読み出し状態を示す。
【図11】インタラプト処理のフローチャートを示す。
【図12】本願発明の原理を示す。
【図13】本願発明の原理を示す。
【図14】交互反転回路66(50)を示す。
【図15】交互反転回路66(50)の別の実施例を示す。
【図16】インパルス応答信号を1つおきに正負反転させた波形と周波数特性を示す。
【図17】吹奏(管)楽器の共鳴原理を示す。
【図18】インパルス応答信号を1つおきに正負反転させレベルを変えた波形と周波数特性を示す。
【図19】プログラム/データ記憶部40内の包絡周期テーブル群43を示す。
【図20】プログラム/データ記憶部40内のrf選択テーブル44を示す。
【図21】固定フォルマントのインパルス応答信号ISj(t)の変化と周波数特性の変化を示す。
【図22】移動フォルマントのインパルス応答信号ISj(t)の変化と周波数特性の変化を示す。
【図23】プログラム/データ記憶部40内の端部切取テーブル群45を示す。
【図24】プログラム/データ記憶部40内の端部切取テーブル46を示す。
【図25】端部切り取り回路67(50)を示す。
【図26】インパルス応答信号ISj(t)の端部切り取り状態を示す。
【図27】インパルス応答信号ISj(t)のつながり状態を示す。
【図28】インパルス合成回路83を示す。
【図29】複数のインパルス応答信号ISj(t)の合成状態を示す。
【符号の説明】
10…演奏情報発生部、20…コントローラ(CPU)、30…タイム発生部、40…プログラム/データ記憶部、41…情報記憶部、42…アサインメントメモリ、43…包絡周期テーブル、44…rf選択テーブル、45…端部切取テーブル群、46…端部切取テーブル、50…インパルス信号発生部、60…音響出力部、51…インパルス信号記憶部、52…インパルス信号選択部、53…インパルス信号読み出し部、54…インパルス累算部、58…波形パワー制御RAM、59、63…セレクタ、61…オアゲート群、62…乗算器、64…ラッチ、65…インバータ群、66…交互反転回路、67…端部切り取り回路、71…窓関数メモリ、75…端部RAM、81…プログラマブル1/n分周カウンタ、83…インパルス合成回路、85…累算メモリ、86…出力メモリ、88…プログラマブル1/s分周カウンタ、90…重み付けRAM、501…パラメータRAM、508…演算RAM、505…加算器。
Claims (3)
- CPUが楽音生成装置に対して、
発生すべき楽音信号の周波数特性に対応した所定長のインパルス応答信号を繰り返し発生させ、
この繰り返し発生されるインパルス応答信号の繰り返しの周期を、上記楽音信号の音高を決定する音高決定因子だけに応じて変化させ、
上記音高決定因子とは異なり、上記楽音信号の音色を決定する音色決定因子だけに応じて、上記発生されるインパルス応答信号の波形そのものの発生速度を変化させ、
これら繰り返し周期及び波形そのものの発生速度が変化された複数のインパルス応答信号であって、波形形状が異なる、上記発生速度が異なる、または上記繰り返し周期の異なる各インパルス応答信号を合成させることにより、これら合成される前のインパルス応答信号の各周波数特性の中間の周波数特性を持つインパルス応答信号を生成させることを特徴とする楽音生成方法。 - 発生すべき楽音信号の周波数特性に対応した所定長のインパルス応答信号を繰り返し発生する手段と、
この繰り返し発生されるインパルス応答信号の繰り返しの周期を、上記楽音信号の音高を決定する音高決定因子だけに応じて変化させる手段と、
上記音高決定因子とは異なり、上記楽音信号の音色を決定する音色決定因子だけに応じて、上記発生されるインパルス応答信号の波形そのものの発生速度を変化させる手段と、
これら繰り返し周期及び波形そのものの発生速度が変化された複数のインパルス応答信号であって、波形形状が異なる、上記発生速度が異なる、または上記繰り返し周期の異なる各インパルス応答信号を合成することにより、これら合成される前のインパルス応答信号の各周波数特性の中間の周波数特性を持つインパルス応答信号を生成する手段とを備えたことを特徴とする楽音生成装置。 - 上記合成される各インパルス応答信号の組み合わせは、音楽的因子によって決定され、
上記合成される各インパルス応答信号は、重み付けされて合成され、この各重み付けは音楽的因子によって決定され、
上記合成される各インパルス応答信号の各合成割合は、発音時間の経過に応じて変化することを特徴とする請求項2記載の楽音生成装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32155197A JP3634130B2 (ja) | 1997-11-21 | 1997-11-21 | 楽音生成装置及び楽音生成方法 |
US09/182,643 US6031173A (en) | 1997-09-30 | 1998-10-30 | Apparatus for generating musical tones using impulse response signals |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32155197A JP3634130B2 (ja) | 1997-11-21 | 1997-11-21 | 楽音生成装置及び楽音生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11161273A JPH11161273A (ja) | 1999-06-18 |
JP3634130B2 true JP3634130B2 (ja) | 2005-03-30 |
Family
ID=18133837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32155197A Expired - Fee Related JP3634130B2 (ja) | 1997-09-30 | 1997-11-21 | 楽音生成装置及び楽音生成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3634130B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3785542B2 (ja) * | 2003-02-25 | 2006-06-14 | よこはまティーエルオー株式会社 | パルス波形の生成方法 |
CN100421151C (zh) * | 2003-07-30 | 2008-09-24 | 扬智科技股份有限公司 | 适应性多阶步进的时序转换方法 |
JP5104553B2 (ja) * | 2008-05-30 | 2012-12-19 | ヤマハ株式会社 | インパルス応答加工装置、残響付与装置およびプログラム |
JP5434120B2 (ja) * | 2009-02-16 | 2014-03-05 | ヤマハ株式会社 | インパルス応答加工装置、残響付与装置およびプログラム |
JP5310064B2 (ja) * | 2009-02-16 | 2013-10-09 | ヤマハ株式会社 | インパルス応答加工装置、残響付与装置およびプログラム |
JP7380156B2 (ja) * | 2019-12-05 | 2023-11-15 | 株式会社Soken | 携帯端末距離推定システムおよび車載システム |
-
1997
- 1997-11-21 JP JP32155197A patent/JP3634130B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11161273A (ja) | 1999-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3634130B2 (ja) | 楽音生成装置及び楽音生成方法 | |
JP5142363B2 (ja) | 成分音合成装置及び成分音合成方法。 | |
JP4335570B2 (ja) | 共鳴音生成装置、共鳴音生成方法及び共鳴音生成のためのコンピュータプログラム | |
JP2002311957A (ja) | 共鳴装置、共鳴方法及び共鳴処理のためのコンピュータプログラム | |
JP3694172B2 (ja) | 残響共鳴装置及び残響共鳴方法 | |
US6031173A (en) | Apparatus for generating musical tones using impulse response signals | |
JP3706232B2 (ja) | 楽音生成装置及び楽音生成方法 | |
JP3637191B2 (ja) | 楽音生成装置及び楽音生成方法 | |
JP3459760B2 (ja) | 楽音生成装置及び楽音発生方法 | |
JP3684052B2 (ja) | 楽音生成装置及び楽音生成方法 | |
US5665931A (en) | Apparatus for and method of generating musical tones | |
JP3637190B2 (ja) | 楽音生成装置及び楽音生成方法 | |
JPH11161274A (ja) | 楽音生成装置及び楽音生成方法 | |
JP3419563B2 (ja) | 楽音信号のレベル制御装置 | |
JP4059581B2 (ja) | 電子音響装置のゆらぎ付加装置及びゆらぎ付加方法 | |
JP2000194361A (ja) | 電子音響装置のゆらぎ付加装置及びゆらぎ付加方法 | |
JP3595676B2 (ja) | 楽音生成装置及び楽音生成方法 | |
JP3673388B2 (ja) | 楽音のチャンネル割り当て装置及び楽音のチャンネル割り当て方法 | |
JP3673384B2 (ja) | 楽音のチャンネル割り当て装置及び楽音のチャンネル割り当て方法 | |
JP3673387B2 (ja) | 楽音のチャンネル割り当て装置及び楽音のチャンネル割り当て方法 | |
JP3673386B2 (ja) | 楽音のチャンネル割り当て装置及び楽音のチャンネル割り当て方法 | |
JP2997626B2 (ja) | 楽音生成装置及び楽音生成方法 | |
JP2000200087A (ja) | 非調和音発生装置及び非調和音発生方法 | |
JPH11161270A (ja) | 楽音生成装置及び楽音生成方法 | |
JPH09222886A (ja) | 反射音及び残響音装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040906 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040908 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041108 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20041129 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041222 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |