以下、本発明について説明するが、最初に本発明に係る波形データ生成方法について説明し、その後に、前記波形データ生成方法によって生成した波形データを用いて楽音信号を発生するための楽音信号発生装置について説明する。
a1.波形データ生成装置
まず、本発明の波形データ生成方法に用いる波形データ生成装置について説明する。波形データ生成装置は、図1に示すように、複数のパネルスイッチ11、表示器12、波形メモリ13、書込み回路14、バッファ回路15、音源回路16及びアクセス管理回路17を備えている。
複数のパネルスイッチ11は、操作パネル上に設けられており、作業者によって操作されて波形データ生成装置の作動を指示する。表示器12は、操作パネル上に設けられた液晶ディスプレイで構成され、文字、数字、図形、特に楽音波形及び波形解析結果などを表示する。これらのパネルスイッチ11及び表示器12は、バス20に接続されている。
波形メモリ13は、書込み及び読出し可能なメモリで構成され、原波形(楽器音波形)を表す波形データ及びこの波形データ生成装置内で生成された波形データを記憶する。書込み回路14は、波形データの波形メモリ13への書込みを制御する。この書込み回路14には、種々の楽器音波形を所定のサンプリングレートでサンプリングしてA/D変換された、楽器音波形を表す波形データを入力するための入力端子14aが接続されている。バッファ回路15は、波形メモリ13から他の回路への波形データの転送、及び他の回路から波形メモリ13への波形データの転送を制御する。音源回路16は、波形メモリ13から読出した波形データを用いてディジタル楽音信号を生成し、生成したディジタル楽音信号をサウンドシステム18に出力する。サウンドシステム18は、D/A変換器、アナログ増幅器及びスピーカを含み、音源回路16から供給されたディジタル楽音信号に対応した楽音を放音する。これらの書込み回路14、バッファ回路15及び音源回路16も、バス20に接続されている。アクセス管理回路17は、波形メモリ13と、書込み回路14、バッファ回路15及び音源回路16との間に接続され、書込み回路14による波形メモリ13への波形データの書込み、バッファ回路15による波形メモリ13に対する波形データの転送、及び音源回路16による波形メモリ13からの波形データの読出しが衝突しないように、波形メモリ13に対するアクセスタイムスロットを管理する。
また、この波形データ生成装置は、バス20にそれぞれ接続されたCPU31、ROM32、RAM33、タイマ34、ドライブ回路35及び外部インターフェース回路36も備えている。CPU31、ROM32、RAM33及びタイマ34は、コンピュータ本体部を構成するもので、特に、CPU31は、後述する波形データ生成プログラムを実行する。ドライブ回路35は、ハードディスクHD、フラッシュメモリ、コンパクトディスクCDなどの外部記録装置37に対する各種データ及びプログラムの記憶及び読出しを制御する。外部インターフェース回路36は、電子楽器、シーケンサなどの外部MIDI機器との接続を可能としているとともに、通信ネットワークを介してサーバとの接続を可能としている。前述した波形データ生成プログラムは、外部記録装置37に記憶され、又は外部インターフェース回路36を介してRAM33若しくは外部記録装置37に取込まれるようになっている。以下、この波形データ生成装置を用いた第1及び第2の波形データ生成方法について説明する。
a2.第1の波形データ生成方法
第1の波形データ生成方法について説明する。まず、作業者は、所望の楽器種類、所望の音高、及び所望の強さの減衰系の楽器音波形を表すディジタル波形データ(以下、このディジタル波形データを原波形データという)を用意する。ただし、打楽器音の場合には、所望の楽器種類及び所望の強さの原波形データを用意する。この原波形データは、1つの楽器音の発音開始から発音終了までの楽器音波形を表すものである。この原波形データの用意においては、原波形データを予め記憶した装置を入力端子14aに接続する。また、原波形データを外部記録装置37に予め記録しておいたり、原波形データを外部インターフェース回路36から取込むようにしてもよい。
この原波形データの用意後、作業者は、パネルスイッチ11を操作することにより、図2の波形データ生成プログラムの実行開始を指示する。この波形データ生成プログラムの実行はステップS100にて開始され、CPU31は、ステップS102にて、書込み回路14を制御して前記所望とする原波形データを波形メモリ13に書込む。この書込みにおいては、書込み回路14により、前述のような入力端子14a及び外部インターフェース回路36を介して入力される原波形データ、又は外部記録装置37に記録された原波形データが波形メモリ13に書き込まれる。
前記ステップS102の処理後、CPU31は、ステップS104にて、原波形データの先頭から1つの時間窓を設定して、この時間窓に含まれる最初の1フレーム分の原波形データを取出す。この時間窓の幅は、例えば基本周波数成分の周期の8倍程度である。次に、CPU31は、ステップS106にて、前記取出した1フレーム分の原波形データを高速フーリエ変換処理(以下、単にFFT処理という)して1フレーム分のスペクトル情報を取得する。このスペクトル情報には、1フレーム分の原波形データに関する周波数、振幅及び位相の3つの情報が含まれている。次に、CPU31は、ステップS108にて、原波形データの末尾すなわち最後の1フレーム分の波形データの取出しが終了したかを判定する。最後の1フレーム分の波形データの取出しが終了していなければ、CPU31は、ステップS108にて「No」と判定し、ステップS110にて時間窓を移動させて次の1フレーム分の波形データを取出してステップS106に戻る。この時間窓の移動時間は、例えば基本周波数成分の周期の8分の1程度である。そして、CPU31は、前記ステップS106〜S110からなる循環処理を繰返し実行することにより、原波形データの先頭から末尾までの複数のフレームにわたって、各フレームごとに原波形データの複数のスペクトル情報をそれぞれ取得する。
最後の1フレーム分の波形データの取出しが終了すると、CPU31は、前記ステップS108にて「Yes」と判定し、ステップS112にて、作業者に安定ポイントを入力させる。安定ポイントとは、減衰の速い高速減衰成分波形が減衰し終えて減衰の遅い低速減衰成分波形だけが残るポイント、すなわち調和成分だけが残って、楽器音波形が時間変動なく安定し始める時間位置である。なお、この安定ポイントは、前記楽器音波形が安定し始める時間位置よりも後方の楽器音波形が確実に安定した時間位置であってもよい。この安定ポイントの入力においては、原波形データにより表された原波形(図3(A))などを表示器12に表示するとともに、作業者に安定ポイントの入力を促す。作業者は、表示器12に表示される原波形などを見ながら、パネルスイッチ11を操作することにより、安定ポイントに対応する時間位置を入力する。
また、前記のように作業者が安定ポイントを指定するのに代えて、CPU31がプログラム処理によって安定ポイントを自動的に設定するようにしてもよい。この場合、周波数の時間変化が安定する所定時間を各種実験などにより予め決定して、プログラムと共に記憶しておいて、この所定時間に対応した時間位置を安定ポイントとして用いてもよい。また、作業者が安定ポイントを指定するための原波形の振幅値を指定し、又は前記原波形の振幅値を記憶しておき、波形メモリ13に記憶されている原波形データによって表される原波形の振幅値が前記指定又は記憶しておいた振幅値まで減衰した時間位置を安定ポイントして設定するようにしてもよい。
前記ステップS112の処理後、CPU31は、ステップS114にて、前記設定した安定ポイント以降(図3(A)の破線で囲む範囲)の複数のフレームのスペクトル分布をそれぞれ解析して、各フレームに連続して含まれるスペクトル成分を安定スペクトル成分(すなわち周波数成分)として抽出する。各フレームに連続して含まれるスペクトル成分とは、各フレームの全てのスペクトル成分に対する該当スペクトル成分の比率が所定値以上であって、この比率が大きく変化することなく、複数のフレームにわたってほぼ一定に連続することを意味する。すなわち、該当スペクトル成分が複数のフレームにわたって平均的(ほぼ均等)に連続的して含まれていることを意味する。この安定スペクトル成分の抽出においては、時間経過に従って絶対量が減少する各フレームごとのスペクトル成分をスケール処理して増加させ、ある程度大きな一定の振幅値を有するスペクトル成分に変更するとともに、安定ポイント以降の全てのフレームに含まれる原波形のスペクトル成分の分布を調べて、各フレームに平均的(ほぼ均等)に含まれて安定しているスペクトル成分を抽出する。ただし、前記安定しているスペクトル成分に関しても周波数の若干の変動があるので、前記各フレームに平均的(ほぼ均等)に連続して含まれるスペクトル成分には、スペクトル成分(周波数)が僅かに異なる場合も含まれ、安定スペクトル成分は若干の幅を有する。この安定スペクトル成分は、原波形信号の調和成分(基本波成分及び倍音成分)である。
次に、CPU31は、ステップS116にて、原波形データの先頭から末尾までにわたる全てのフレームに対して、各フレームに含まれる全てのスペクトル情報から前記安定スペクトル成分に関するスペクトル情報を除去する。すなわち、前記ステップS106の処理によって取得した各フレームのスペクトル情報から、安定スペクトル成分によって規定される周波数範囲内に属する周波数に関係したスペクトル情報を除去する。これにより、全てのフレームにわたり、減衰の遅い安定成分(低速減衰成分)に関するスペクトル情報が除去され、減衰の速い高速減衰成分に関するスペクトル情報だけが残される。なお、このようなスペクトル情報の除去に関しては、例えば特開平9−34497号公報にも示されている周知のノイズキャンセラー技術が利用される。ただし、本実施形態においては、ノイズ成分を除去するのではなく、むしろ周波数成分を除去している。前記ステップS116の処理後、CPU31は、ステップS118にて、全てのフレームの前記残されたスペクトル情報を逆高速フーリエ変換処理(以下、単に逆FFT処理という)して高速減衰成分波形を表す波形データを加算合成する。そして、CPU31は、ステップS120にて、書込み回路14を制御して、前記加算合成波形データを高速減衰波形データとして波形メモリ13に書込む。
次に、CPU31は、ステップS122にて、波形メモリ13に記憶されている原波形データから前記新たに波形メモリ13に記憶した高速減衰波形データを、両波形データの先頭から末尾にわたって順次減算する。この減算結果は、原波形データから高速減衰波形データを除いた本発明の低速減衰波形データに対応する。そして、CPU31は、ステップS124にて、前記減算結果である波形データを低速減衰波形データとして波形メモリ13に書込み、ステップS126にてこの波形データ生成プログラムの実行を終了する。これにより、1組の低速減衰波形データと高速減衰波形データが波形メモリ13に記憶される。図3(B)は低速減衰波形データにより表される低速減衰成分波形を概略的に示し、図3(C)は高速減衰波形データにより表される高速減衰成分波形を概略的に示している。
このようにして1組の低速減衰波形データと高速減衰波形データが波形メモリ13に記憶された後、前記と同じ楽器種類及び音高(打楽器の場合には、前記と同じ楽器種類)であって、前記とは異なる強さの楽器音波形を表す原波形データを用意して、前述した図2の波形データ生成プログラムを再度実行する。これにより、前記と同じ楽器種類及び音高(打楽器の場合には、前記と同じ楽器種類)であって、前記とは異なる強さの楽器音波形を表す1組の低速減衰波形データと高速減衰波形データが波形メモリ13に記憶される。このような処理を繰返し行うことにより、一つの楽器種類及び音高(打楽器の場合には、一つの楽器種類)であって、前記とは異なる強さの楽器音波形を表す1組の低速減衰波形データと高速減衰波形データが波形メモリ13に順次記憶されていく。例えば、後述する楽音信号発生装置(電子楽器)で利用される場合には、鍵タッチ強さVEL及び操作子タッチ強さVELが「127」、「80」、「48」、「16」(又は「127」、「85」、「43」、「1」)に対応した低速減衰波形データと高速減衰波形データが波形メモリ13に順次記憶される。なお、後述する楽音信号発生装置において楽音合成に必要な波形データは、複数の鍵タッチ強さVEL又は操作子タッチ強さVEL(例えば、「127」、「80」、「48」、「16」又は「127」、「85」、「43」、「1」)に対応した複数の高速減衰波形データと、最も大きな鍵タッチ強さVEL又は操作子タッチ強さVEL(例えば、「127」)の1つの低速減衰波形データであるので、それら以外の波形データを波形メモリ13から消去してもよいし、前記ステップS122,S126の記憶処理時に波形メモリ13に記憶させなくてもよい。
さらに、前記1つの楽器種類及び音高に関する複数の高速減衰波形データと少なくとも1つの低速減衰波形データからなる波形セットの波形メモリ13への記憶後、前記と同じ楽器種類であって異なる音高に関する前記波形セットを、前記と同様な処理により、波形メモリ13に記憶させる。そして、全ての音高又は全ての音域に関する前記波形セットの波形メモリ13の記憶後には、異なる楽器種類に関する波形セットを、前記と同様な処理により、波形メモリ13に記憶させる。その結果、このような波形データ生成処理により、波形メモリ13には、所望の複数の楽器種類、必要な音高、及び複数の強さの減衰系の楽器音に関する波形セットが波形メモリ13に用意されることになる。
この第1の波形データ生成方法においては、比較的簡単かつ短時間で原波形データから複数の高速減衰波形データと1つの低速減衰波形データを生成することができる。この第1の波形データ生成方法も、種々の減衰系の楽器音に関する複数の高速減衰波形データと1つの低速減衰波形データを生成する際に利用可能であるが、例えばタム、ティンパニーなどの減衰時間の比較的長い打楽器音に関する複数の高速減衰波形データと1つの低速減衰波形データを生成するのに最適である。この種の打楽器においては、打撃の瞬間に打面にノイズ的な波が広がるが、その後、定在波以外の波が定在波より高速に減衰する。つまり、定在波が低速減衰成分波形に相当する。
a3.第2の波形データ生成方法
次に、第2の波形データ生成方法について説明する。この場合も、作業者は、上記第1の波形データ生成方法の場合と同様にして、所望の楽器種類、所望の音高、及び所望の強さの減衰系の原波形データ(打楽器音の場合には、所望の楽器種類及び所望の強さの原波形データ)を用意する。そして、作業者は、パネルスイッチ11を操作することにより、図4の波形データ生成プログラムの実行開始を指示する。この波形データ生成プログラムの実行はステップS200にて開始され、CPU31は、図2のステップS102〜S114の処理と同様なステップS202〜S214の処理により、原波形データの先頭から末尾までの複数のフレームにわたって、各フレームごとに原波形データのスペクトル情報をそれぞれ取得するとともに、安定ポイント以降(図3(A)の破線で囲む範囲)の各フレームのスペクトルを解析して、各フレームにほぼ均等(平均的)に含まれる安定スペクトル成分(すなわち周波数成分)を抽出する。
前記ステップS202〜S214の処理後、CPU31は、ステップS216にて、原波形データの先頭から末尾までにわたる全てのフレームに対して、各フレームに含まれる全てのスペクトル情報から前記安定スペクトル成分に関するスペクトル情報を抽出する。すなわち、各フレームのスペクトル情報から、安定スペクトル成分によって規定される周波数範囲内に属する周波数に関係したスペクトル情報を抽出する。これにより、上記第1の波形データ生成方法とは逆に、全てのフレームにわたり、減衰の速い高速減衰成分に関するスペクトル情報が除去され、減衰の遅い安定成分(低速減衰成分)に関するスペクトル情報が抽出される。次に、CPU31は、ステップS218にて、全てのフレームの前記抽出したスペクトル情報を逆FFT処理して低速減衰成分波形を表す波形データを加算合成する。そして、CPU31は、ステップS220にて、書込み回路14を制御して、前記加算合成波形データを低速減衰波形データとして波形メモリ13に書込む。
前記ステップS220の処理後、CPU31は、ステップS222にて、波形メモリ13に記憶されている原波形データから前記新たに波形メモリ13に記憶した低速減衰波形データを、両波形データの先頭から末尾にわたって順次減算する。この減算結果は、原波形データから低速減衰波形データを除いた本発明の高速減衰波形データに対応する。そして、CPU31は、ステップS224にて、前記減算結果である波形データを高速減衰波形データとして波形メモリ13に書込み、ステップS226にてこの波形データ生成プログラムの実行を終了する。これにより、上記第1の波形データ生成方法の場合と同様に、1組の低速減衰波形データと高速減衰波形データが波形メモリ13に記憶される。
このようにして1組の低速減衰波形データと高速減衰波形データが波形メモリ13に記憶された後、上記第1の波形データ生成方法の場合と同様に、異なる強度の楽器音、異なる音高の楽器音及び異なる楽器種類に対して、前述した波形データ生成処理を実行して、所望の複数の楽器種類、必要な音高、及び複数の強さの減衰系の楽器音に関する1組の低速減衰波形データと高速減衰波形データからなる波形セットを波形メモリ13に記憶する。なお、複数の鍵タッチ強さVEL又は操作子タッチ強さVELに対応した複数の高速減衰波形データ、及び最も大きな鍵タッチ強さVEL又は操作子タッチ強さVELの1つの低速減衰波形データを波形メモリ13に残し、それら以外の波形データを波形メモリ13から消去してもよいし、波形メモリ13に記憶させなくてもよい点も、上記第1の波形データ生成方法の場合と同じである。
この第2の波形データ生成方法においては、上記第1の波形データ生成方法とは逆に、逆FFT処理により低速減衰波形データを生成するとともに、原波形データから低速減衰波形データを減算することにより高速減衰波形データを生成している。これにより、この第2の波形データ生成方法によれば、上記第1の波形データ生成方法と同様に、前記両波形データを簡単かつ長時間を要しないで生成できる。また、この場合も、種々の減衰系の楽器音に関する複数の高速減衰波形データと1つの低速減衰波形データを生成する際に利用可能であるが、例えばタム、ティンパニーなどの減衰時間の比較的長い打楽器音に関する複数の高速減衰波形データと1つの低速減衰波形データを生成するのに最適である。
b.生成された波形データの適用される楽音信号発生装置
以下、上記第1及び第2の波形データ生成方法によって生成された高速減衰波形データ及び低速減衰波形データからなる波形データを用いて、楽音信号を発生する楽音信号発生装置について説明する。図7は、この楽音信号発生装置の適用された電子楽器の全体ブロック図である。この電子楽器は、鍵盤51、複数の演奏操作子52、複数のパネル操作子53、表示器54及び音源回路55を備えている。
鍵盤51は、演奏者によって操作されて、それぞれ発生楽音の音高を指定するとともに楽音の発生を指示する複数の白鍵及び黒鍵からなる。鍵盤51は、押鍵速度、押鍵圧力等の鍵タッチ強さVELを検出するための鍵タッチ検出機構も備えている。この鍵盤51の各鍵の押離鍵操作及び鍵タッチ強さVELは、バス56に接続された検出回路51aによって検出される。検出回路51aは、各鍵の押離鍵操作を表すキーオン信号KON及びキーオフ信号KOF、押離鍵操作された鍵を表すノートナンバNN、並びに鍵タッチ強さVELを表す鍵タッチ信号をバス56に出力する。複数の演奏操作子52は、演奏者によって操作されて、打楽器音の発生を指示するための複数種類の打楽器にそれぞれ対応した複数のスイッチである。複数の演奏操作子52にも、それらの押圧速度、押圧圧力等の操作子タッチ強さVELを検出するための操作子タッチ検出機構が設けられている。この複数の演奏操作子52の押圧操作及び操作子タッチ強さVELは、バス56に接続された検出回路52aによって検出される。検出回路52aは、各演奏操作子52の押圧操作を表すスイッチオン信号SWON、押圧操作された演奏操作子52に対応した打楽器種類を表す楽器種類情報IN、及び操作子タッチ強さVELを表す操作子タッチ信号をバス56に出力する。
複数のパネル操作子53は、電子楽器の操作パネル上に設けられた複数のスイッチ、ボリュームなどからなり、演奏者によって操作されて、楽音信号の発生態様を含む電子楽器の各種動作を指示する。この複数のパネル操作子53の操作は、バス56に接続された検出回路53aによって検出される。検出回路53aは、複数のパネル操作子53の操作を表す検出信号をバス56に出力する。表示器54は、操作パネル上に設けられた液晶ディスプレイ、CRTなどで構成され、文字、数字、図形などを表示する。この表示器54には、バス56に接続された表示回路54aが接続されている。表示回路54aは、バス56を介して供給される画像データに従って表示器54の表示を制御する。
音源回路55は、バス56に接続されていて、バス56を介して供給される各種制御信号に応じてディジタル楽音信号を生成して効果回路57に出力する。音源回路55は、図8に示すように、複数の発音チャンネルch1,ch2・・・chnを備えている。複数の発音チャンネルch1,ch2・・・chnはそれぞれ同様に構成されており、各チャンネルは、所定のサンプリング周期ごとにディジタル楽音信号の生成のための処理をそれぞれ行う、読出し回路55a、ディジタル制御フィルタ55b及びディジタル制御増幅器55cを備えている。読出し回路55aは、後述するコンピュータ本体部からの制御パラメータ(読出し開始アドレス、読出し終了アドレス、ピッチシフト量など)及び発音開始指示に応じて、後述する波形メモリWMに記憶されている波形データを読出してディジタル楽音信号を生成し、生成したディジタル楽音信号をディジタル制御フィルタ55bに出力する。また、この読出し回路55aは、必要に応じて、前記波形メモリWMから読出した波形データに補間演算を施したり、波形メモリWMに記憶されている波形データが圧縮されていれば解凍したりする。
ディジタル制御フィルタ55bは、後述するコンピュータ本体部からの制御パラメータ(フィルタ制御パラメータ群など)、発音開始指示、リリース開始指示及び急速減衰指示に応じて、読出し回路55aから出力される波形データからなるディジタル楽音信号の周波数特性を制御してディジタル制御増幅器55cに出力する。ディジタル制御増幅器55cは、後述するコンピュータ本体部からの制御パラメータ(振幅制御パラメータ群など)、発音開始指示、リリース開始指示及び急速減衰指示に応じて、ディジタル制御フィルタ55bから出力される波形データからなるディジタル楽音信号の振幅特性(振幅エンベロープ)を制御してチャンネル累算回路55dに出力する。チャンネル累算回路55dは、複数の発音チャンネルch1,ch2・・・chnからのディジタル楽音信号を累算すなわち混合して出力する。
効果回路57は、音源回路55から出力されるディジタル楽音信号に、後述するコンピュータ本体部からの制御パラメータに従ったコーラス、リバーブなどの効果を付与してサウンドシステム58に出力する。なお、この効果の付与においても、効果回路57は、所定のサンプリング周期ごとにディジタル楽音信号を処理する。サウンドシステム58は、D/A変換器、アナログ増幅器及びスピーカを含み、効果回路57から供給されたディジタル楽音信号に対応した楽音を放音する。
また、この電子楽器は、バス56にそれぞれ接続されたCPU61、ROM62、RAM63、タイマ64、外部記憶装置65、MIDIインターフェース回路66及び外部インターフェース回路67を備えている。CPU61、ROM62、RAM63及びタイマ64は、コンピュータ本体部を構成するもので、特に、CPU61は、図11に示すノートオンイベント処理プログラムを実行する。外部記憶装置65は、この電子楽器に予め組み込まれているハードディスクHD及びフラッシュメモリ、同電子楽器に装着可能なコンパクトディスクCD及びフレキシブルディスクFDなどの種々の記録媒体と、各記録媒体に対するドライブユニットを含むものであり、各種データ及びプログラムの記憶及び読出しを可能にしている。
ROM62又は外部記憶装置65には、詳しくは後述する波形データを記憶した波形メモリWM及び音色制御パラメータを記憶した音色パラメータメモリPMが設けられているとともに、自動演奏データ及び自動リズムデータを含む各種データ及び前記ノートオンイベント処理プログラムを含む各種プログラムを記憶している。自動演奏データとは、1つ楽曲に関する鍵演奏音に関する鍵演奏イベントデータ(鍵タッチ強さVELを含むキーオン及びキーオフイベント)及び打楽器音に関する打楽器演奏イベントデータ(操作子タッチ強さVELを含む打楽器操作イベント)を楽曲の進行に従って時系列に記憶したデータである。また、自動リズムデータとは、マーチ、ワルツなどのリズムパターン種類ごとに打楽器音に関する打楽器演奏イベントデータ(操作子タッチ強さVELを含む打楽器操作イベント)を時間経過に従って複数小節にわたって記憶したデータである。なお、これらのデータ及びプログラムは予めROM62又は外部記憶装置65に記憶されていてもよいし、MIDIインターフェース回路66又は外部インターフェース回路67を介して外部から取り込んでもよい。MIDIインターフェース回路66には、他の電子楽器、シーケンサなどの外部MIDI機器71が接続可能となっている。外部インターフェース回路67は、通信ネットワーク72を介してサーバ73との接続を可能としている。そして、前述した各種データ及びプログラムが、外部MIDI機器71又はサーバ73から電子楽器に取込まれる。
次に、波形メモリWM及び音色パラメータメモリPMについて説明する。波形メモリWMは、図9Aに示すように、複数の音色にそれぞれ対応した複数の記憶領域に分割されている。複数の音色の中には持続系の楽音も含まれているが、持続系の楽音は本発明には直接関係しないので、以降の説明においては減衰系の楽音についてのみ説明する。音色に対応した前記各記憶領域には、複数の鍵(複数の鍵音高)にそれぞれ対応した波形データ群からなる複数の波形セットが記憶されている。各波形セットは、複数の高速減衰波形データ及び1つの低速減衰波形データからなる。
高速減衰波形データは、上述した第1及び第2の波形データ生成方法によって生成した減衰系の楽音波形から減衰の速い成分波形のみを抽出した1秒程度にわたる高速減衰成分波形を表す波形データである。複数の高速減衰波形データは、発生楽音の異なる強弱(鍵タッチ強さVEL)にそれぞれ対応しており、この場合、4つの異なる強度に対応している。例えば、鍵タッチ強さVELが「1」〜「127」で表されるとすると、図10(A)の左側に上から順に示すように、鍵タッチ強さVELが「127」、「80」、「48」及び「16」である演奏音から抽出した高速減衰成分波形を表す4つの波形データが複数の高速減衰波形データとして記憶されている。値「127」は鍵タッチ強さVELの全範囲「1」〜「127」の最大値であり、値「80」、「48」及び「16」は、それぞれ前記鍵タッチ強さVELの全範囲をほぼ4分割した下側の3つの領域のほぼ中央値である。鍵タッチ強さ「127」に対応した高速減衰波形データを採用した理由は、次の低速減衰波形データと同じ鍵タッチ強さを採用することにより、波形データの用意のための処理を簡単にするためである。なお、前記値「127」に代えて、前記4分割した最上領域の中央値「112」を採用してもよい。さらに、鍵タッチ強さVELは、絶対的な尺度ではなく、相対的な尺度であるので、前記値「80」、「48」及び「16」に関しても、他の値を用いてもよい。前記「127」、「80」、「48」及び「16」の4段階に限らず、3段階又は5段階以上であってもよい。1つの低速減衰波形データは、最も強い強度で演奏された演奏音から抽出した10秒程度にわたる低速減衰成分波形を表す波形データである。例えば、この低速減衰波形データは、鍵タッチ強さVELが「127」である演奏音から抽出した低速減衰成分波形を表す波形データである。
また、打楽器音に関する波形データも波形メモリWMに記憶されているが、打楽器音に関しては、複数の鍵(複数の鍵音高)ごとに用意する必要がなく1つのみで足りるので、1つの音色に対応した記憶領域には1つの波形セットしか記憶されていない。ただし、この場合も、1つの波形セット中には、前記と同様に、操作子タッチ強さVELが「127」、「80」、「48」及び「16」である演奏音(打楽器音)から抽出した高速減衰成分波形を表す4つの波形データが複数の高速減衰波形データとして含まれている。また、前記1つの波形セット中には、操作子タッチVELが「127」である演奏音(打楽器音)から抽出した低速減衰成分波形を表す1つの波形データも含まれている。この場合も、前述のように、前記操作子タッチ強さVELの値は「127」、「80」、「48」及び「16」に限られないと同時に、その数も適宜変更され得るものである。なお、複数の鍵音高に対応した減衰音及び打楽器音の前記高速減衰波形データ及び低速減衰波形データの生成方法に関しては、前述した通りである。これらの高速減衰波形データ及び低速減衰波形データを、波形メモリWMにそのまま記憶しておいてもよいが、圧縮して記憶しておくようにしてもよい。また、波形メモリWMに記憶されている複数の異なる鍵タッチ強さVEL(又は操作子タッチ強さVEL)に対応した複数の高速減衰波形データに関しては、それらの振幅(音量レベル)を鍵タッチ強さVEL(又は操作子タッチ強さVEL)にそれぞれ対応させてもよいが、本実施形態では、鍵タッチ強さVEL(又は操作子タッチ強さVEL)が異なっていても、複数の高速減衰波形データの振幅をほぼ同じにしている。これは、小さな鍵タッチ強さVEL(又は操作子タッチ強さVEL)に対応した高速減衰波形データの振幅を大きくすることにより、高精度で波形データを記憶しておくことができるからである。
音色パラメータメモリPMも、図9Bに示すように、複数の音色にそれぞれ対応した複数の記憶領域に分割されている。この場合も、持続系の楽音は本発明には直接関係しないので、以降の説明においては減衰系の楽音についてのみ説明する。音色に対応した前記各記憶領域には、音色名を表す音色名情報を含むヘッダを先頭にして、波形セット制御パラメータ群、フィルタ制御パラメータ群、振幅制御パラメータ群、その他の制御パラメータ群、及び複数の波形セットに関する選択情報が記憶されている。波形セット制御パラメータ群、フィルタ制御パラメータ群及び振幅制御パラメータ群は、音源回路55内の読出し回路55a、ディジタル制御フィルタ55b及びディジタル制御増幅器55cにそれぞれ供給されて、読出し回路55a、ディジタル制御フィルタ55b及びディジタル制御増幅器55cにてディジタル楽音信号の生成に利用される1つの音色に関するパラメータ群である。その他の制御パラメータ群は、音源回路55及び効果回路57に供給されて1つの音色のディジタル楽音信号の生成に利用されるその他のパラメータである。
複数の波形セットに関する選択情報は、図9Aの複数の波形セットにそれぞれ対応している。各波形セットに関する選択情報は、元ピッチ、高速減衰波形選択情報及び低速減衰波形選択情報からなる。元ピッチは、波形データを用いたディジタル楽音信号の生成時におけるピッチシフト用のパラメータであり、波形データの生成時に録音した演奏音のピッチ、前記演奏音の録音時のサンプリング周波数などを表す情報からなる。そして、説明を簡単化するために鍵ごと波形データを用意するようにした本実施形態であって、波形データの生成時おけるサンプリング周波数と、音源回路55におけるディジタル楽音信号の生成のためのサンプリング周波数とが同じである場合に限り、波形データを生成した際の演奏音のピッチ(鍵音高)のみを表す情報を元ピッチとして採用することができる。なお、前述したコンピュータ本体部から読出し回路55aに供給されるピッチシフト量は、押鍵された鍵の音高と波形データを生成するために採用された録音時における演奏音のピッチとの差である。高速減衰波形選択情報は、各波形セット内の複数の高速減衰波形データの各記憶領域の先頭及び末尾のアドレスをそれぞれ表す複数組の先頭アドレス情報及び末尾アドレス情報である。これらの複数組の先頭アドレス情報及び末尾アドレス情報は、鍵タッチの強い順に配列されている。低速減衰波形選択情報は各波形セット内の1つの低速減衰波形データの記憶領域の先頭及び末尾のアドレスをそれぞれ表す1組の先頭アドレス情報及び末尾アドレス情報である。
また、音色パラメータメモリPMには、打楽器音に関しても、前述の場合と同様に、ヘッダ、波形セット制御パラメータ群、フィルタ制御パラメータ群、振幅制御パラメータ群、その他の制御パラメータ群、及び波形セットに関する選択情報が記憶されている。しかし、基本的には、打楽器音に関しては、各楽器種類ごとに1つの波形セットが用意されているので、波形セットに関する選択情報は、波形データの生成時におけるサンプリング周波数と、音源回路55におけるディジタル楽音信号の生成のためのサンプリング周波数が同じである場合に限り、1つの波形セットに関する高速減衰波形選択情報及び低速減衰波形選択情報のみでよい。しかしながら、ティンパニーのように、1種類の打楽器に対して、複数の異なるピッチの打楽器音信号を発生させる場合には、複数のピッチに対応した複数の波形データを用意するか、1つの波形データのみを用意して再生ピッチを変更する。複数の波形データを用意する場合には、前述のように、波形データの生成時におけるサンプリング周波数と、音源回路55におけるディジタル楽音信号の生成のためのサンプリング周波数が同じである場合に限り、元ピッチは不要となる。しかし、1つの波形データのみを用意する場合には、波形データの生成のために録音した演奏音のピッチに関する情報は必要である。高速減衰波形選択情報及び低速減衰波形選択情報は、前述した押鍵によって発生される減衰音の場合と同じである。
次に、上記のように構成した電子楽器の動作について説明する。演奏者が複数のパネル操作子53のいずれかを操作して、鍵盤51の演奏操作によって発生される減衰系の楽音の音色(例えば、電気ピアノ)を選択すると、CPU61は、図示しないプログラムの実行により、音色パラメータメモリPM内の選択された音色に対応した記憶領域から波形セット制御パラメータ群、フィルタ制御パラメータ群、振幅制御パラメータ群及びその他の制御パラメータ群を読出してRAM63内に一時的に記憶しておく。
この状態で、演奏者が鍵盤51のいずれかの鍵を押鍵操作すると、CPU61は、図11のノートオンイベント処理プログラムの実行をステップS300にて開始する。このノートオンイベント処理プログラムの実行開始後、CPU61は、ステップS302にて検出回路51aによって検出された押鍵された鍵を表すノートナンバNN及び鍵タッチ強さVELを表す鍵タッチ信号を入力する。次に、CPU61は、ステップS304にて、この押鍵された鍵に関する楽音信号を生成するために、前記鍵に対して音源回路55の複数の発音チャンネル1ch〜nchのうちの空いている2つの発音チャンネルを第1及び第2の発音チャンネルとして割当てる。
前記ステップS304の処理後、CPU61は、ステップS306にて、音色パラメータメモリ内の前記選択された音色に対応した記憶領域に記憶されている複数の波形セット1,2・・に関する複数の選択情報の中から、前記選択情報中の元ピッチと前記入力したノートナンバNNを比較して、押鍵された鍵に対応する選択情報を指定、すなわちノートナンバNNに対応した波形セットNNに関する選択情報を指定する。次に、CPU61は、ステップS308にて、前記選択情報中に含まれる複数の高速減衰波形データの各記憶領域の先頭及び末尾の記憶アドレスをそれぞれ表す複数組のアドレス情報の中から、鍵タッチ強さVELに対応した1つの高速減衰波形データの記憶領域の先頭及び末尾の記憶アドレスをそれぞれ表す1組のアドレス情報を選択する。この1組のアドレス情報の選択においては、複数の高速減衰波形データにそれぞれ対応した複数の鍵タッチ強さ(この場合には、「127」、「80」、「48」、「16」)のうちの、鍵タッチ強さVELに最も近い1つの鍵タッチ強さに対応した1つの高速減衰波形データに関する高速減衰波形選択情報(1組の先頭アドレス情報及び末尾アドレス情報)を選択する。
次に、CPU61は、ステップS310にて前記割当てられた第1の発音チャンネルに対して、高速減衰成分波形の発生のための準備処理を行う。この高速減衰成分波形の準備処理においては、CPU61は、前記選択した1組の先頭アドレス情報及び末尾アドレス情報をそれぞれ読出し開始アドレス及び読出し終了アドレスとして音源回路55の第1の発音チャンネルに出力するとともに、前記図示しないプログラム処理によってRAM63に一時的に記憶しておいた波形セット制御パラメータ群、フィルタ制御パラメータ群、振幅制御パラメータ群及びその他の制御パラメータ群を前記第1の発音チャンネルに出力する。また、この高速減衰成分波形の発生のための準備処理においては、CPU61は、鍵タッチ強さVELに応じて、音量レベルを計算、すなわち第2の発音チャンネルで生成されるディジタル楽音信号の音量レベルとバランスがとれた音量レベルを計算して、計算した音量レベルを表す制御パラメータを第1の発音チャンネルに出力する。これは、波形メモリWMに記憶されている複数の異なる鍵タッチ強さに対応した複数の高速減衰波形データの各最大振幅は、本実施形態ではほぼ同じであり、鍵タッチ強さVELに対応していないからである。前記第1の発音チャンネルは、前記出力された読出し開始アドレス、読出し終了アドレス、及び音量レベルを表す制御パラメータを含む各種制御パラメータを一時的に記憶して、ディジタル楽音信号の生成のための準備を行う。
前記ステップS310の処理後、CPU61は、ステップS312にて、鍵タッチ強さVELを用いて、鍵タッチ強さVELが小さくなるに従って、前記選択した先頭アドレス情報によって表される記憶アドレスから前記選択した末尾アドレス情報によって表される記憶アドレスに近づくアドレスを低速減衰波形データの読出し開始アドレスとして決定する。具体的には、例えば、図10(B)に示すように、先頭及び末尾の記憶アドレスをそれぞれADtop,ADendとすると、読出し開始アドレスADstartは下記式1の演算により計算される。
ADstart=ADtop+(ADend−ADtop−INTmin)・{1−(VEL−1)/126} …式1
なお、前記式1中のINTminは、鍵タッチ強さVELが最小の「1」であるときの読出し開始アドレスADstartから末尾の記憶アドレスADendまでのアドレス間隔に等しい値を表す固定値である。ただし、前記式1の演算結果が小数部を含む場合には、四捨五入により演算結果は整数化される。
前記式1によれば、鍵タッチ強さVELが最大の「127」であるときには、読出し開始アドレスADstartは先頭の記憶アドレスADtopに設定される。鍵タッチ強さVELが小さくなるに従って、読出し開始アドレスADstartは先頭の記憶アドレスADtopから末尾の記憶アドレスADendに向かって変化する。そして、鍵タッチ強さVELが最小の「1」であるときには、読出し開始アドレスADstartは末尾の記憶アドレスADendからアドレス間隔INTminだけ先頭の記憶アドレスADtop側のアドレスに設定される。
ただし、前記式1は本実施形態を理解し易くするために単純化されたモデルに基づく式であり、一般化できる式ではない。ここでは、算出される数値に注目すべきではなく、むしろ算出される数値の傾向に注目すべきである。また、式1の先頭アドレスADtopに関しては、必ずしも先頭の記憶アドレスでなくてもよい。すなわち、読出し開始アドレスADstartは、鍵タッチ強さVELが最大値「127」であるとき最も先頭に近いアドレスに設定され、鍵タッチ強さVELが小さくなるに従って前記最も先頭に近いアドレスから後方に変化するアドレスに設定されればよい。そして、この読出し開始アドレスADstartの計算においては、楽器の種類に応じて、種々の関数、テーブルが利用され得る。特に、この読出し開始アドレスADstartはリニアスケールで規定され、またディジタル楽音信号の音量レベル(鍵タッチ強さVEL)はデシベルスケールで規定されているので、デシベルスケール上で鍵タッチ強さVELが減少すると、この読出し開始アドレスADstartは先頭の記憶アドレスADtopから後方にリニアに変化する。そして、このような読出し開始アドレスADstartの決定により、波形データの読出しによって生成されるディジタル楽音信号の音量レベルを制御しなくても、前記生成されるディジタル楽音信号の音量レベルは鍵タッチ強さVELに対応したものとなる。
次に、CPU61は、ステップS314にて前記割当てられた第2の発音チャンネルに対して、低速減衰成分波形の発生のための準備処理を行う。この低速減衰成分波形の準備処理においては、CPU61は、前記決定した読出し開始アドレスADstartと共に、低速減衰波形データの末尾アドレス情報を読出し終了アドレスとして音源回路55の第2の発音チャンネルに出力するとともに、前記図示しないプログラム処理によってRAM63に一時的に記憶しておいた波形セット制御パラメータ群、フィルタ制御パラメータ群、振幅制御パラメータ群及びその他の制御パラメータ群を前記第2の発音チャンネルに出力する。前記第2の発音チャンネルは前記出力された読出し開始アドレス、読出し終了アドレス及び各種制御パラメータを一時的に記憶して、ディジタル楽音信号の生成のための準備を行う。なお、この第2の発音チャンネルについては、第1の発音チャンネルで生成されるディジタル楽音信号と音量バランスがとれるように音量レベルを制御しなければならないが、鍵タッチ強さVELに応じた音量レベル制御は不要である。
前記ステップS314の処理後、CPU61は、ステップS316にて、前記第1及び第2の発音チャンネルに発音開始を指示して、ステップS318にてこのノートオンイベント処理プログラムの実行を終了する。前記第1及び第2の発音チャンネルは、この発音開始の指示に応答して、ディジタル楽音信号を生成し始める。前記第1の発音チャンネルにおいては、その読出し回路55aが読出し開始アドレスから時間経過に従ってアドレスを歩進させながら、波形メモリWMに記憶されている高速減衰波形データを順次読出して、高速減衰波形データにより表される高速減衰成分波形からなるディジタル楽音信号を生成して出力する。この場合、本実施形態では、波形データの生成時における演奏音のサンプリング周波数と、音源回路55によるディジタル楽音信号の生成のためのサンプリング周波数が同じであり、かつ各鍵ごとに波形セットが用意されているので、ピッチシフトを必要とせず、アドレスの歩進量は各サンプリング周期ごとに「1」である。しかし、これ以外の場合には、ピッチシフト制御を行う必要がある。そして、この高速減衰波形データの読出しは、前記アドレスの歩進が読出し終了アドレスに達した時点で終了する。この高速減衰波形データの読出しが終了した時点で、第1の発音チャンネルは解放されて空きチャンネルとされる。その結果、ノートナンバNN及び鍵タッチVELにより指定された高速減衰波形データに基づく高速減衰成分波形が生成される。
この読出し回路55aから出力されたディジタル楽音信号は、ディジタル制御フィルタ55bにより周波数特性が制御され、ディジタル制御増幅器55cにより振幅特性が制御されてチャンネル累算回路55dに出力される。特に、この第1の発音チャンネルにおける振幅特性の制御に関しては、前記ステップS20の処理により音源回路55に供給された音量レベルを表す制御パラメータを用いて、ディジタル制御型増幅器55cはディジタル楽音信号の定常的な音量レベルを鍵タッチ強さVELに応じて制御する。なお、ディジタル制御増幅器55cは、この場合、後述するようにリリース開始の指示及び急速減衰の指示を受けない限り、基本的には、読出された高速減衰波形データに基づくディジタル楽音信号の振幅特性を時間変化させることはない。
一方、前記第2の発音チャンネルにおいても、その読出し回路55aが読出し開始アドレスから時間経過に従ってアドレスを歩進させながら、波形メモリWMに記憶されている低速減衰波形データを順次読出して、低速減衰波形データにより表される低速減衰成分波形からなるディジタル楽音信号を生成して出力する。この場合も、本実施形態では、波形データの生成時における演奏音のサンプリング周波数と、音源回路55によるディジタル楽音信号の生成ためのサンプリング周波数が同じであり、かつ各鍵ごとに波形セットが用意されているので、ピッチシフトを必要とせず、アドレス歩進量は各サンプリング周期ごとに「1」である。しかし、これ以外の場合には、ピッチシフト制御を行う必要がある。そして、この低速減衰波形データの読出しも、前記アドレスの歩進が読出し終了アドレスに達した時点で終了する。この場合も、低速減衰波形データの読出しが終了した時点で、第2の発音チャンネルは解放されて空きチャンネルとなる。その結果、ノートナンバNNにより指定された低速減衰波形データが鍵タッチ強さVELにより指定された読出し開始アドレスから読出され始め、読出された低速減衰波形データに基づいて低速減衰成分波形が生成される。
この読出し回路55aから出力されたディジタル楽音信号も、ディジタル制御フィルタ55bにより周波数特性が制御され、ディジタル制御増幅器55cにより振幅特性が制御されてチャンネル累算回路55dに出力される。この第2の発音チャンネルにおける振幅特性の制御に関しては、前記第1の発音チャンネルとは異なり、鍵タッチ強さVELに応じたディジタル楽音信号の定常的な音量レベルは前述した低速減衰波形データの読出し開始アドレスADstartに依存するので、鍵タッチ強さVELに応じた音量レベルの制御は行われず、必要に応じた他の音量レベルの制御が行われる。なお、この場合も、ディジタル制御増幅器55cは、後述するようにリリース開始の指示及び急速減衰の指示を受けない限り、基本的には、読出された高速減衰波形データに基づくディジタル楽音信号の振幅特性を時間変化させることはない。
チャンネル累算回路55dは、前記第1の発音チャンネルから出力された高速減衰成分波形からなるディジタル楽音信号と、前記第2の発音チャンネルから出力された低速減衰成分波形からなるディジタル楽音信号とを加算することにより混合し、混合したディジタル楽音信号を効果回路57に出力する。効果回路57は、図示しないプログラム処理により供給された効果制御用パラメータに基づく効果を付与してサウンドシステム58に出力する。サウンドシステム58は、前記出力されたディジタル楽音信号をアナログ楽音信号に変換して、スピーカを介して放音する。
上記のような楽音信号の発生においては、演奏者による鍵の押鍵時間が充分長く、音源回路55の発音チャンネル内の読出し回路55aにて低速減衰波形データの読出し用のアドレスが読出し終了アドレスまで達した場合には、全ての高速減衰波形データ及び低速減衰波形データがディジタル楽音信号として出力される。しかし、ディジタル楽音信号の発生中に、押鍵されていた鍵が離鍵されると、CPU61は、図示しないプログラムの実行により、離鍵された鍵に対して楽音の発生が割当てられていた音源回路55内の2つの発音チャンネルに対してリリース開始を指示する指示信号を出力する。前記2つの発音チャンネル内のディジタル制御増幅器55cはディジタル制御フィルタ55bからのディジタル楽音信号の振幅を比較的急速に減衰させる。すなわち、ディジタル制御増幅器55cはディジタル制御フィルタ55bからのディジタル楽音信号をリリース処理する。ディジタル制御フィルタ55bも、前記リリース処理と同期して、ディジタル楽音信号の周波数特性を必要に応じて多少変化させる。そして、リリース処理によりディジタル楽音信号が減衰し終えた発音チャンネルは解放されて空きチャンネルとされる。
さらに、鍵盤51にて多数の鍵が短時間内に押離鍵されて発音チャンネルが不足する場合には、CPU61は、図示しないプログラムの実行により、離鍵された鍵に関する発音チャンネルのうちで最も振幅レベルが小さなディジタル楽音信号を発生している発音チャンネルに対して、急速減衰開始を指示する指示信号を出力する。この指示信号を受取った発音チャンネル内のディジタル制御増幅器55cはディジタル制御フィルタ55bからのディジタル楽音信号の振幅を急速に減衰させる。この場合も、ディジタル制御フィルタ55bは、前記ディジタル制御増幅器55cの急速減衰処理と同期して、ディジタル楽音信号の周波数特性を必要に応じて多少変化させる。また、この場合も、ディジタル楽音信号が減衰し終えた発音チャンネルは解放されて空きチャンネルとされる。これにより、多数の鍵が短時間内に押離鍵されても、新たに押鍵された鍵の楽音を発生するための発音チャンネルが確保される。
次に、複数の演奏操作子52のいずれかが操作されて打楽器音を発音する場合について説明する。CPU61は、上述した図11のノートオンイベント処理プログラムを変形した図示しない変形プログラムを実行して、打楽器音の発音を制御する。この変形プログラムの実行は、検出回路52aからのスイッチオン信号SWONの入力に応答して開始される。そして、図11のステップS302におけるノートナンバNN及び鍵タッチ強さVELの入力に代えて、検出回路52aから楽器種類情報IN及び操作子タッチ強さVELを入力する。また、ステップS306におけるノートナンバNNに対応した波形セットNNに関する選択情報の指定に代えて、音色パラメータメモリPM内の複数の記憶領域のうちで、前記入力した楽器種類情報INによって表される打楽器音色に対応した記憶領域を指定する。そして、指定した記憶領域内の波形セット制御パラメータ群、フィルタ制御パラメータ群、振幅制御パラメータ群及びその他の制御パラメータ群を読出してRAM63内に一時的に記憶しておく。また、この場合、前記記憶領域に1つのみ記憶されている選択情報(高速減衰波形選択情報及び低速減衰波形選択情報)を指定する。図11の他のステップS304,S308〜S316の処理に関しては、押鍵による楽音信号の発生のための制御処理と同じである。
その結果、複数の演奏操作子52のいずれかがオン操作された場合にも、複数の高速減衰波形データのうちの1つの高速減衰波形データが、操作子タッチ強さVELに応じて指定される。また、1つの低速減衰波形データの読出し開始アドレスが操作子タッチ強さVELに応じて決定される。したがって、演奏操作子52のオン操作による打楽器音の発生においても、前記押鍵による場合と同様に、操作子タッチ強さVELによって指定される1つの高速減衰波形データに基づくディジタル楽音信号と、操作子タッチ強さVELによって読出し開始アドレスの指定された低速減衰波形データに基づくディジタル楽音信号が混合されて出力される。また、この打楽器音に関するディジタル楽音信号の場合も、前述した鍵音高に対応した音高を有するディジタル楽音信号の場合と同様に、混合される高速減衰波形データの音量レベルは操作子タッチ強さVELに応じた音量レベルに制御される。
さらに、図示しない自動演奏プログラムの実行により、自動演奏データの再生によって鍵演奏イベントデータ及び打楽器演奏イベントデータが読出された場合にも、上記図11のノートオンイベント処理プログラム及びその変形プログラムの実行により、上述した鍵演奏による減衰系の楽音及び打楽器音が発生される。すなわち、自動演奏データは、鍵タッチ強さVEL及びノートナンバNNを含むキーオン及びキーオフイベントからなる鍵演奏イベントデータと、操作子タッチ強さVEL及び楽器種類情報INを含む打楽器操作イベントからなる打楽器演奏イベントデータとを時間経過に従って記憶したものである。自動リズムデータは、操作子タッチ強さVEL及び楽器種類情報INを含む打楽器操作イベントからなる打楽器演奏イベントデータを時間経過に従って記憶したものである。そして、これらの鍵演奏イベントデータ及び打楽器演奏イベントデータは、上記実施形態の検出回路51a,52aから出力されるキーオン信号KON、キーオフ信号KOF、ノートナンバNN、鍵タッチ強さVEL,スイッチオン信号SWON、操作子タッチ強さVEL,楽器種類情報INなどと同じである。したがって、自動演奏データ及び自動リズムデータの再生時に出力される鍵演奏イベントデータ及び打楽器演奏イベントデータを用いて上述したように楽音の発生を制御すれば、自動演奏及び自動リズムによって発生される楽音は、鍵盤51及び複数の演奏操作子52による発生される楽音と全く同じとなる。
上記楽音信号発生装置によれば、波形メモリWMには、複数段階の強度で演奏された演奏音から抽出された複数の波形データからなる高速減衰波形データと、強い強度で演奏された演奏音から抽出された1つの波形データからなる低速減衰波形データとが記憶されている。音源回路55内の発音の割当てられた第1の発音チャンネルは、高速減衰波形データとしての複数の波形データの中から強弱情報(鍵タッチ強さVEL及び操作子タッチ強さVEL)に応じて1つの波形データを選択して読出し、読出した高速減衰波形データに基づいて高速減衰成分波形であるディジタル楽音信号を生成する。このとき、高速減衰成分波形であるディジタル楽音信号は、その音量レベルが鍵タッチ強さVEL及び操作子タッチ強さVELに応じて制御されたものである。音源回路55内の発音の割当てられた第2の発音チャンネルは、低速減衰波形データとしての1つの波形データを読出して、読出した低速減衰波形データに基づいて低速減衰成分波形であるディジタル楽音信号を生成する。そして、チャンネル累算回路55dは、第1の発音チャンネルによって生成されたディジタル楽音信号と、第2の発音チャンネルによって生成されたディジタル楽音信号とを混合して出力する。
高速減衰成分波形は発生楽音の強弱に応じて変化するが、低速減衰成分波形は発生楽音の強弱によってほとんど変化しないので、混合されたディジタル楽音信号は、強弱に応じて変化する発生楽音波形を高精度で表すことになる。したがって、上記楽音信号発生装置によれば、リアル感のある楽音信号を発生することができる。また、波形メモリWMは、発生の開始から短い時間で終了する高速減衰成分波形を表す複数の高速減衰波形データと、発生の開始から長い時間の経過後に終了する1つの低速減衰波形を表す低速減衰波形データとを記憶しているだけであるので、楽音信号を発生するための波形データの量を少なく抑えることができ、波形メモリWMとしても大きな容量を必要としない。また、高速減衰成分波形であるディジタル楽音信号の生成のために第1の発音チャンネルを使用する時間は、楽音信号の発生開始直後の短い時間に限られる。したがって、1つの楽音の発生のために2つの発音チャンネルを使用しても、1つの楽音の発生のために1つの発音チャンネルしか使用しない方式に比べて、発音チャンネルの占有時間はそれほど長くならない。
また、第2の発音チャンネルは、波形メモリWMに記憶されている低速減衰波形データとしての波形データを、強弱情報によって表された楽音信号の強弱が弱くなるに従って、波形データの先頭アドレスから遠くなるアドレスを読出し開始アドレスとして時間経過に従って読出す。したがって、発生される楽音信号の強弱が弱くなるに従って、波形データの読出し開始から終了までの時間が短くなり、楽音信号の発生開始から終了までの時間が短くなる。このことは、発生楽音の強弱が弱くなるに従って、楽音の発生開始から終了までの時間が短くなる減衰系の楽器音の特性と一致している。したがって、前記強弱情報に応じて読出し開始アドレスを変更するという簡単な方法により、減衰系の楽音をより良好に模倣することができる。
また、第1の発音チャンネルにおいては、高速減衰成分波形であるディジタル楽音信号の生成時に、鍵タッチ強さVEL及び操作子タッチ強さVELに応じてディジタル楽音信号の音量レベルを制御するようにした。したがって、楽音信号の強弱が弱い高速減衰波形データあっても、波形メモリWMに記憶しておく際には、その振幅レベルを大きくしておくことができ、高精度の高速減衰波形データの再生が可能となる。
また、上記楽音信号発生装置においては、波形メモリWM内の高速減衰波形データを指定する際に、鍵タッチ強さVELに最も近い鍵タッチ強さに対応した1つの高速減衰波形データを選択して、選択した1つの高速減衰波形データを用いてディジタル楽音信号を生成するようにした。しかし、これに代えて、複数の高速減衰波形データにそれぞれ対応した複数の鍵タッチ強さのうちの、鍵タッチ強さVELを挟む2つの鍵タッチ強さに対応した2つの高速減衰波形データを選択して、選択した2つの高速減衰波形データを補間(クロスフェード)処理してディジタル楽音信号を生成するようにしてもよい。
この場合、図11のノートオンイベント処理プログラムを変形した図12のノートオンイベント処理プログラムをROM62又は外部記憶装置65に記憶しておき、CPU61は、この図12のノートオンイベント処理プログラムを実行する。図12のノートオンイベント処理プログラムにおいては、図11のノートオンイベント処理プログラムと同一部分に関しては同一の符号を付し、それらの説明を省略する。
図12のノートオンイベント処理プログラムにおいては、図11のステップS304に代わるステップS304aにて、CPU61は、押鍵された鍵に関する楽音信号を生成するために、前記鍵に対して音源回路55の複数の発音チャンネルのうちの空いている3つの発音チャンネルを第1乃至第3の発音チャンネルとして割当てる。また、図11のステップS308に代わるステップS308aにて、CPU61は、選択情報中に含まれる複数の高速減衰波形データの各記憶領域の先頭及び末尾の記憶アドレスをそれぞれ表す複数組のアドレス情報の中から、鍵タッチ強さVELを挟む2つの鍵タッチ強さに対応した2つの高速減衰波形データの記憶領域の先頭及び末尾の記憶アドレスをそれぞれ表す2組のアドレス情報(先頭アドレス情報及び末尾アドレス情報)を選択する。
そして、CPU61は、ステップS320にて、前記選択した2つの高速減衰波形データによって表される2つの高速減衰成分波形の混合比率を計算する。この場合、前記鍵タッチ強さVELを挟む2つ鍵タッチ強さをそれぞれVEL1,VEL2とするとともに、鍵タッチ強さVEL1,VEL2にそれぞれ対応した高速減衰成分波形の混合比率をMIX1,MIX2とそれぞれすると、混合比率MIX1,MIX2は下記式2,3の演算により決定される。
MIX1=|VEL2−VEL|/|VEL1−VEL2| …式2
MIX2=|VEL1−VEL|/|VEL1−VEL2| …式3
これによれば、比例配分により、2つの高速減衰成分波形の混合比率がMIX1,MIX2に決定されることになり、2つの高速減衰成分波形の混合により、鍵タッチ強さVELに応じて補間された合成波形が得られることになる。この決定された混合比率MIX1,MIX2は、音源回路55内の前記割当てられた第1及び第2の発音チャンネルにそれぞれ出力される。
なお、前記式2,3も、前記式1の場合と同様に、本実施形態を理解し易くするために単純化されたモデルに基づく式であり、一般化できる式ではない。ここでも、算出される数値に注目すべきでなく、むしろ算出される数値の傾向に注目すべきである。特に、混合比率MIX1,MIX2は、実際にはリニアスケールでなくデシベルスケールで表されるものである。そして、混合比率MIX1,MIX2には、実際には、式2,3に示されたクロスフェードの要素以外にも、鍵タッチ強さVELに応じた音量レベルの制御の要素も必要であり、混合比率MIX1,MIX2のデシベル値は、混合後の高速減衰成分波形の音量が鍵タッチ強さVELに応じた音量レベルになるように調整された値である必要がある。具体的には、式2,3の右辺に前述した低速減衰成分波形であるディジタル楽音信号の音量レベル(デシベル値)を加算するとよい。
図11のステップS310に代わるステップS310aにて、CPU61は、前記割当てられた第1及び第2の発音チャンネルに対して、前記選択された2つの高速減衰成分波形の発生のための準備処理を行う。この高速減衰成分波形の準備処理においては、前記選択した2組のアドレス情報のうちの1組のアドレス情報を読出し開始アドレス及び読出し終了アドレスとして音源回路55の第1の発音チャンネルに出力する。また、前記選択した2組のアドレス情報のうちの他の1組のアドレス情報を読出し開始アドレス及び読出し終了アドレスとして音源回路55の第2の発音チャンネルに出力する。波形セット制御パラメータ群、フィルタ制御パラメータ群、振幅制御パラメータ群及びその他の制御パラメータ群を前記第1及び第2の発音チャンネルに出力する点については、上記実施形態の場合と同様である。第1及び第2の発音チャンネルは前記出力された読出し開始アドレス、読出し終了アドレス及び各種制御パラメータを一時的に記憶して、ディジタル楽音信号の生成のための準備を行う。
図11のステップS314に代わるステップS314aにて、CPU61は、前記割当てられた第3の発音チャンネルに対して、低速減衰成分波形の発生のための上記実施形態と同様な準備処理を行う。そして、図11のステップS316に代わるステップS316aにて、CPU61は、前記第1乃至第3の発音チャンネルに発音開始を指示する。他の処理に関しては、図11の各処理と同じである。
上記変形例に係るノートオンイベント処理プログラムの実行により、音源回路55内の前記第1乃至第3の発音チャンネルは、この発音開始の指示に応答して、ディジタル楽音信号を生成し始める。この場合、第1及び第2の発音チャンネルは、2つの異なる高速減衰波形データに従って2つの高速減衰成分波形をそれぞれ表すディジタル楽音信号をそれぞれ生成して出力する。第1の発音チャンネルにおいては、ディジタル制御増幅器55cが、ディジタル制御フィルタ55bから出力されるディジタル楽音信号に、前記ステップS320の処理によって出力された混合比率MIX1を乗算することにより、前記ディジタル楽音信号の振幅を混合比率MIX1に比例して制御する。また、第2の発音チャンネルにおいては、ディジタル制御増幅器55cが、ディジタル制御フィルタ55bから出力されるディジタル楽音信号に、前記ステップS320の処理によって出力された混合比率MIX2を乗算することにより、前記ディジタル楽音信号の振幅を混合比率MIX2に比例して制御する。
第3の発音チャンネルは、低速減衰波形データに従って低速減衰成分波形を表すディジタル楽音信号を生成して出力する。なお、第1乃至第3の発音チャンネル内におけるディジタル楽音信号の生成処理に関しては、上述した場合と同様である。そして、第1乃至第3の発音チャンネルから出力されるディジタル楽音信号は、チャンネル累算回路55dにそれぞれ出力される。チャンネル累算回路55dは、これらの第1乃至第3の発音チャンネルから出力されるディジタル楽音信号を加算して出力する。これにより、第1及び第2の発音チャンネルから出力された2つの高速減衰成分波形は前記混合比率MIX1、MIX2で混合されるとともに、第3の発音チャンネルから出力された低速減衰成分波形と混合される。
この変形例による2つの高速減衰波形成分に関しては、複数の演奏操作子52による打楽器音の発生、自動演奏データに基づく自動演奏音の発生、及び自動リズムデータに基づく自動リズム音(打楽器音)の発生にも適用される。
その結果、この変形例に係る楽音信号発生装置によれば、最終的に混合される高速減衰波形データは、強弱情報(鍵タッチ強さVEL及び操作子タッチ強さVEL)によって表された楽音信号の強弱及び前記強弱を挟む2つの強度段階に応じて、前記強弱を挟む2つの強度段階の波形データを補間(クロスフェード)したものとなる。したがって、波形メモリWMに記憶する高速減衰波形データとしての強度段階に対応した波形データの数を少なくしても、強弱情報によって表された楽音信号の強弱に応じた高速減衰波形データを高精度で得ることができる。
また、上記楽音信号発生装置においては、図11及び図12のステップS312の処理により、低速減衰波形データの読出し開始アドレスとして、鍵タッチ強さVEL(又は操作子タッチ強さVEL)が最小値「1」から最大値「127」まで変化するに従って、アドレスADend−INTminからアドレスADtopまで線形変化するアドレス値を計算するようにした。しかし、これに代えて、鍵タッチ強さVELが最小値「1」から最大値「127」まで変化するに従って、アドレスADend−INTminからアドレスADstartまで非線形変化するアドレス値を規定する関数を用意しておいて、前記関数を用いて、鍵タッチ強さVEL及び操作子タッチ強さVELの変化に対して非線形変化するアドレス値を計算するようにしてもよい。
また、複数の鍵タッチ強さVEL(又は操作子タッチ強さVEL)に対応させて複数の読出し開始位置を記憶しておいて、図11及び図12のステップS312の処理により、前記記憶しておいた複数の読出し開始位置を用いて低速減衰波形データの読出し開始アドレスを決定するようにしてもよい。この場合、各波形セットに関する低速減衰波形選択情報として、低速減衰波形データの記憶領域の先頭及び末尾のアドレスに加えて、これらの先頭及び末尾の記憶アドレスの間のアドレスであって、発生楽音信号の強度に応じた複数の読出し開始アドレスを表す複数の中間アドレス情報を記憶しておけばよい。この中間アドレス情報は、図10(B)に示すように、例えば鍵タッチ強さVEL「96」、「64」、「32」、「1」に対応させた読出し開始アドレスを表している。なお、鍵タッチ強さVELが最大値「127」である読出し開始位置を「0秒」として、波形データの読出しに関する時間に換算すると、前記4つの中間アドレスは、先頭側から「2秒」、「4秒」、「6秒」、「8秒」の位置にそれぞれ対応している。
そして、図11及び図12のステップS312の処理においては、前記ステップS302の処理により入力した鍵タッチ強さVELが最大の鍵タッチ(すなわち「127」)であれば、前記ステップS306の処理によって指定された選択情報中の低速減衰波形選択情報に含まれる低速減衰波形データの先頭アドレスを読出し開始アドレスとして決定する。また、鍵タッチ強さVELが、複数の鍵タッチ強さ「96」、「64」、「32」、「1」のうちのいずれかと一致すれば、一致した鍵タッチ強さVELに対応した中間アドレス情報を読出し開始アドレスとして決定する。鍵タッチ強さVELが複数の鍵タッチ強さ「127」、「96」、「64」、「32」及び「1」のいずれとも一致しなければ、前記複数の鍵タッチ強さのうちで、前記ステップS302の処理により入力した鍵タッチ強さVELが挟まれる両側の2つの鍵タッチ強さを選択する。この選択された2つの鍵タッチ強さをVEL1,VEL2(VEL1>VEL2)とし、鍵タッチ強さVEL1,VEL2に対応した2つの中間アドレスAD1,AD2(AD2>AD1)とすると、読出し開始アドレスADstartは下記式4の補間演算により計算される。ただし、式4も、前記式1〜3と同様に、本実施形態を理解し易くするために単純化されたモデルに基づく式であり、一般化できる式ではない。ここで、算出される数値に注目すべきではなく、むしろ算出される数値の傾向に注目すべきである。
ADstart=AD1+(AD2−AD1)・ (VEL−VEL1)/(VEL2−VEL1) …式4
なお、前記のように、鍵タッチ強さ「96」、「64」、「32」、「1」に対応した複数の読出し開始アドレスを複数の中間アドレス情報とした場合には、複数の鍵タッチ強さVELの間隔が「31」又は「32」とほぼ均一であるために、読出し開始アドレスは鍵タッチ強さVEL(又は操作子強さVEL)に応じてほぼ線形的に変化する。しかし、前記複数の中間アドレスによって表されるアドレスの間隔を異ならせるようにすれば、例えば徐々に大きくなるようにすれば、読出し開始アドレスは鍵タッチ強さVELの変化に対して非線形に変化する。
また、上記楽音信号発生装置においては、鍵音高に応じて周波数の変化する減衰系の楽音波形に関して、波形メモリWM内の音色ごとの波形セットを鍵音高(ノートナンバNN)ごとに用意するようにした。しかし、これに代えて、前記減衰系の楽音波形に関して、波形メモリWM内の音色ごとの波形セットとして、複数の鍵音高を含む鍵音域(例えば、半オクターブ)ごとに波形セットを用意するようにしてもよい。この場合、複数の鍵音域にそれぞれ対応した複数の波形セットが波形メモリWMに記憶される。そして、音色パラメータメモリPMの各音色に対応した記憶領域には、ヘッダ及び各種制御パラメータに加えて、前記複数の波形セットに対応した複数の波形セットに関する選択情報が記憶される。各波形セットに関する選択情報は、上記実施形態と同様に構成され、その中の元ピッチには波形セットに係る波形データを生成した際の元の演奏音のピッチを表す情報も含まれている。そして、この変形例においては、押鍵された鍵のノートナンバNNにより指定される鍵音高(ピッチ)と、元ピッチに含まれる前記演奏音のピッチとの差に応じて、ノートナンバNNにより指定される鍵音高のディジタル楽音信号(高速減衰成分波形及び低速減衰成分波形であるディジタル楽音信号)を生成する。
具体的には、まず、CPU61は、押鍵された鍵が属する鍵音域の波形セットに関する選択情報を音色パラメータメモリPMから選択して、前記選択された選択情報中の高速減衰波形データ及び低速減衰波形データに関するアドレス情報を前記押鍵されて鍵の割当てられた第1及び第2の発音チャンネル(又は第1乃至第3の発音チャンネル)にそれぞれ出力する。ただし、高速減衰波形データに関するアドレス情報に関しては、上記実施形態の場合と同様に、鍵タッチ強さVELに対応した1つ(又は2つ)の高速減衰波形データのアドレス情報が選択される。また、CPU61は、このアドレス情報の出力と同時に、前記押鍵された鍵に対応した鍵音高(ピッチ)と、前記選択された選択情報中の元ピッチにより表されたピッチとの差を、ピッチシフト量(セント)として前記第1及び第2の発音チャンネル(又は第1乃至第3の発音チャンネル)に出力する。
第1及び第2の発音チャンネル(又は第1乃至第3の発音チャンネル)内の読出し回路55aは、前記ピッチシフト量に応じて波形データの読出しレートを決定して、前記アドレス情報によって指定される高速減衰波形データ及び低速減衰波形データを読出す。これにより、読出し回路55aは、ノートナンバNNに対応した鍵音高のディジタル楽音信号を生成して、ディジタル制御フィルタ55bに出力する。ただし、前記ピッチシフト量に応じて決定される読出しレートは、通常、小数部を含むので、前記波形データの読出しアドレスも整数部と小数部からなる。そこで、この波形データの読出しでは、前記整数部を用いて波形データの複数のサンプル値を読出し、小数部を用いた補間演算により最終的なディジタル楽音信号を生成する。このディジタル楽音信号の生成後の処理に関しては、上記実施形態の場合と同じである。なお、この変形例においても、波形データの生成時におけるサンプリング周波数と、音源回路55のディジタル楽音信号の生成時におけるサンプリング周波数が同じであることを前提としている。これらの両者のサンプリング周波数が異なる場合には、このサンプリング周波数の差も考慮してピッチシフト量を決定する必要がある。