(57)【特許請求の範囲】
【請求項１】
所定のサンプリング周期に従う各サンプリング時間毎に、複数の発音チャンネルの各々で楽音信号を時分割で繰り返し生成する音源部と、該音源部の制御を行う制御部とを有する音源装置であって、
前記音源部は、
複数種類の波形データを記憶する波形データメモリと、
前記各発音チャンネルについて、波形アドレス情報、ピッチ制御情報および音量制御情報を含む生成パラメータを記憶する複数のチャンネルレジスタと、
該生成パラメータを前記チャンネルレジスタに書き込むレジスタ書込手段であって、該生成パラメータのうちのピッチ制御情報については、所望の複数のチャンネルで該ピッチ制御情報を同時に書き込むべきとき、書き込み後の各チャンネルのピッチ制御情報が同一のサンプリング時間から該各チャンネルで適用されるように、対応する前記チャンネルレジスタへの該ピッチ制御情報の書き込みを制御する前記レジスタ書込手段と、
前記各発音チャンネルについて、対応するチャンネルレジスタに記憶されたピッチ制御情報に応じた速度で進行する読出しアドレスを生成し、生成された各々の読出しアドレスで前記波形データメモリをアクセスすることによって前記波形アドレス情報の示す波形データを読み出す読出手段と、
読み出された各波形データの音量を各々対応する前記音量制御情報に基づいて制御することにより前記複数の発音チャンネルの音量を制御する音量制御手段と、
前記各発音チャンネル毎に音量が制御された波形データを合成して出力する合成手段と
を有するものであり、
前記制御部は、
楽音の発音開始指示に応じて、それぞれループ再生される二の波形データであって、同じループサイズの何れか二の波形データを決定する波形データ決定手段と、
前記楽音の発音開始指示に応じて、複数の発音チャンネルのうちから、二の発音チャンネルを割り当て、共通のピッチ制御情報を含み、かつ、前記決定された二の波形データに基づく二の楽音信号を生成させるための二組の生成パラメータを、前記レジスタ書込手段を用いて、当該二の発音チャンネルのチャンネルレジスタに設定する生成パラメータ設定手段と、
前記二の発音チャンネルで、前記決定された二の波形データに基づく楽音信号の生成を同一のサンプリング時間から開始させる手段と、
前記二の発音チャンネルにおいて楽音信号を生成しているときであって、前記共通のピッチ制御情報を書き込むべきときに、該二の発音チャンネルについての該ピッチ制御情報を書き込むよう前記レジスタ書込手段に指示し、もって、該書き込み後の前記共通のピッチ制御情報が同一のサンプリング時間から該二の発音チャンネルで適用されるように該二の発音チャンネルのチャンネルレジスタへの該ピッチ制御情報の書き込みが前記レジスタ書込手段によって制御されるようにするピッチ変動制御手段と、
前記二の発音チャンネルにおいて楽音信号を発生しているときに、前記レジスタ書込手段を用いて、該二の発音チャンネルのチャンネルレジスタに、和が所定値となるような二の音量制御情報を設定する混合比制御手段と
を有することを特徴とする音源装置。
【請求項２】
前記二の波形データのうち一方の波形データは、ビブラート演奏またはピッチベンド演奏において、基準ピッチよりも高いピッチに対応する波形データであり、他方の波形データは、該基準ピッチよりも低いピッチに対応する波形データである
ことを特徴とする請求項１記載の音源装置。
【請求項３】
前記決定された二の波形データのうち、一方の波形データは第１の強度で演奏された波形に対応する波形データであり、他方の波形データは、前記第１の強度よりも弱い第２の強度で演奏された波形に対応する波形データである
ことを特徴とする請求項１記載の音源装置。
【請求項４】
所定のサンプリング周期に従う各サンプリング時間毎に、複数の発音チャンネルの各々で楽音信号を時分割で繰り返し生成する音源部と、該音源部の制御を行う制御部とを有する音源装置の、前記制御部において実行されるプログラムであって、
前記音源部は、
複数種類の波形データを記憶する波形データメモリと、
前記各発音チャンネルについて、波形アドレス情報、ピッチ制御情報および音量制御情報を含む生成パラメータを記憶する複数のチャンネルレジスタと、
該生成パラメータを前記チャンネルレジスタに書き込むレジスタ書込手段であって、該生成パラメータのうちのピッチ制御情報については、所望の複数のチャンネルで該ピッチ制御情報を同時に書き込むべきとき、書き込み後の各チャンネルのピッチ制御情報が同一のサンプリング時間から該各チャンネルで適用されるように、対応する前記チャンネルレジスタへの該ピッチ制御情報の書き込みを制御する前記レジスタ書込手段と、
前記各発音チャンネルについて、対応するチャンネルレジスタに記憶されたピッチ制御情報に応じた速度で進行する読出しアドレスを生成し、生成された各々の読出しアドレスで前記波形データメモリをアクセスすることによって前記波形アドレス情報の示す波形データを読み出す読出手段と、
読み出された各波形データの音量を各々対応する前記音量制御情報に基づいて制御することにより前記複数の発音チャンネルの音量を制御する音量制御手段と、
前記各発音チャンネル毎に音量が制御された波形データを合成して出力する合成手段と
を有するものであり、
楽音の発音開始指示に応じて、それぞれループ再生される二の波形データであって、同じループサイズの何れか二の波形データを決定する波形データ決定過程と、
前記楽音の発音開始指示に応じて、複数の発音チャンネルのうちから、二の発音チャンネルを割り当て、共通のピッチ制御情報を含み、かつ、前記決定された二の波形データに基づく二の楽音信号を生成させるための二組の生成パラメータを、前記レジスタ書込手段を用いて、当該二の発音チャンネルのチャンネルレジスタに設定する生成パラメータ設定過程と、
前記二の発音チャンネルで、前記決定された二の波形データに基づく楽音信号の生成を同一のサンプリング時間から開始させる過程と、
前記二の発音チャンネルにおいて楽音信号を生成しているときであって、前記共通のピッチ制御情報を書き込むべきときに、該二の発音チャンネルについての該ピッチ制御情報を書き込むよう前記レジスタ書込手段に指示し、もって、該書き込み後の前記共通のピッチ制御情報が同一のサンプリング時間から該二の発音チャンネルで適用されるように該二の発音チャンネルのチャンネルレジスタへの該ピッチ制御情報の書き込みが前記レジスタ書込手段によって制御されるようにするピッチ変動制御過程と、
前記二の発音チャンネルにおいて楽音信号を発生しているときに、前記レジスタ書込手段を用いて、該二の発音チャンネルのチャンネルレジスタに、和が所定値となるような二の音量制御情報を設定する混合比制御過程と
を前記制御部に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽音信号の生成に用いて好適な音源装置およびプログラムに関する。
【背景技術】
【０００２】
特許文献１には、二種類の波形データを共通の速度で読み出し、読み出し速度を振動させつつ、両波形データの重み付けを変動させることによりビブラートを生成する音源装置が開示されている。かかる動作を行うためには、二種類の波形データを同一の速度で読み出す必要が生じるが、これを実現するため、特許文献１にあっては、各々の波形データを読み出すために二の発音チャンネルを割り当て、これら二の発音チャンネルに対して共通の読出しクロックが供給される。
【０００３】
また、特許文献２には、一の音色に対して、複数の「奏法」（例えばトレモロ、プリングオフ、スラーなど）に対応する波形データを記憶し、指定された奏法に応じた波形データを選択して再生する技術が開示されている。なお、これら個々の波形データは最初に再生される「アタック部」と、アタック部の後に繰り返し再生される「ループ部」とを各々が有するものである。
【０００４】
また、特許文献３には、自然楽器等の原波形データを周波数分析し、この周波数成分を調整することにより、メモリ音源用の波形データを作成する技術が開示されている。すなわち、原波形データのうちループ部が決定されると、ループスタート部とループエンド部との周波数成分を一致させるようにループ部の成分が加工される。また、アタック部と、この加工されたループ部とが自然につながるように、アタック部の終端部分においては、予めループ部との間でクロスフェードがかけられている。
【０００５】
また、特許文献４には、一の波形データを二つの発音チャンネルによって交互に読み出す技術が開示されている。これは、アドレスカウンタのビット数が限られた小型の電子楽器においても、二つの発音チャンネルを交互に用いることにより、長い波形データを再生できるようにしたものである。
【０００６】
【特許文献１】特開平２００７−２４８５５１号公報
【特許文献２】特許第３４０７６１０号公報
【特許文献３】特開２０００−１０５６５号公報
【特許文献４】特開平７−２３４６８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述のように、特許文献１に開示された技術においては、二種類の波形データを共通の速度で読み出すために、二の発音チャンネルに対して共通の読出しクロックを供給する必要があった。しかし、既存の音源部（例えば音源ＬＳＩ）では、共通の読出しクロックを複数の発音チャンネルに供給できるようには必ずしも構成されていないため、特許文献１に開示された技術を実現可能な音源部は限られていた。
この発明は上述した事情に鑑みてなされたものであり、共通の読出しクロックを複数の発音チャンネルに供給できない音源部であっても、複数の発音チャンネルにおける波形データの読出しタイミングを同期させることができる音源装置およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記課題を解決するため本発明にあっては、下記構成を具備することを特徴とする。なお、括弧内は例示である。
請求項１記載の音源装置にあっては、所定のサンプリング周期に従う各サンプリング時間毎に、複数の発音チャンネルの各々で楽音信号を時分割で繰り返し生成する音源部（１０〜１５）と、該音源部の制御を行う制御部（１）とを有する音源装置であって、前記音源部（１０〜１５）は、複数種類の波形データ（ボディ部用の波形データ４２０〜４２６）を記憶する波形データメモリ（１０）と、前記各発音チャンネルについて、波形アドレス情報、ピッチ制御情報（基準音高差，ピッチ差分ＰＤ）および音量制御情報（基準音量，振幅制御係数ＡＸ）を含む生成パラメータを記憶する複数のチャンネルレジスタ（３２０）と、該生成パラメータ（発音開始指示、ピッチ差分ＰＤ）を前記チャンネルレジスタ（３２０）に書き込むレジスタ書込手段（１，３２２）であって、該生成パラメータのうちのピッチ制御情報（基準音高差，ピッチ差分ＰＤ）については、所望の複数のチャンネルで該ピッチ制御情報を同時に書き込むべきとき、書き込み後の各チャンネルのピッチ制御情報が同一のサンプリング時間から該各チャンネルで適用されるように、対応する前記チャンネルレジスタへの該ピッチ制御情報の書き込みを制御する前記レジスタ書込手段（１，３２２）と、前記各発音チャンネルについて、対応するチャンネルレジスタ（３２０）に記憶されたピッチ制御情報（基準音高差，ピッチ差分ＰＤ）に応じた速度で進行する読出しアドレスを生成し、生成された各々の読出しアドレスで前記波形データメモリをアクセスすることによって前記波形アドレス情報の示す波形データを読み出す読出手段（３０２，３０４）と、読み出された各波形データの音量を各々対応する前記音量制御情報に基づいて制御することにより前記複数の発音チャンネルの音量を制御する音量制御手段（３０６，３０８，３１６，３１８）と、前記各発音チャンネル毎に音量が制御された波形データを合成して出力する合成手段（３１０）とを有するものであり、前記制御部（１）は、楽音の発音開始指示に応じて、それぞれループ再生される二の波形データ（ボディ部用の波形データ４２０〜４２６）であって、同じループサイズの何れか二の波形データを決定する波形データ決定手段（ＳＰ３８）と、前記楽音の発音開始指示に応じて、複数の発音チャンネルのうちから、二の発音チャンネルを割り当て、共通のピッチ制御情報を含み、かつ、前記決定された二の波形データ（ボディ部波形データ）に基づく二の楽音信号を生成させるための二組の生成パラメータを、前記レジスタ書込手段（１，３２２）を用いて、当該二の発音チャンネルのチャンネルレジスタに設定する生成パラメータ設定手段（ＳＰ３２，ＳＰ３８）と、前記二の発音チャンネルで、前記決定された二の波形データに基づく楽音信号の生成を同一のサンプリング時間から開始させる手段（ＳＰ４０）と、前記二の発音チャンネルにおいて楽音信号を生成しているときであって、前記共通のピッチ制御情報を書き込むべきときに、該二の発音チャンネルについての該ピッチ制御情報を書き込むよう前記レジスタ書込手段（１，３２２）に指示し、もって、該書き込み後の前記共通のピッチ制御情報が同一のサンプリング時間から該二の発音チャンネルで適用されるように該二の発音チャンネルのチャンネルレジスタへの該ピッチ制御情報の書き込みが前記レジスタ書込手段によって制御されるようにするピッチ変動制御手段（ＳＰ７６，ＳＰ７８）と、前記二の発音チャンネルにおいて楽音信号を発生しているときに、前記レジスタ書込手段（１，３２２）を用いて、該二の発音チャンネルのチャンネルレジスタに、和が所定値となるような二の音量制御情報を設定する混合比制御手段（ＳＰ７６）とを有することを特徴とする。
さらに、請求項２記載の構成にあっては、請求項１記載の音源装置において、前記二の波形データのうち一方の波形データは、ビブラート演奏またはピッチベンド演奏において、基準ピッチよりも高いピッチに対応する波形データであり、他方の波形データは、該基準ピッチよりも低いピッチに対応する波形データであることを特徴とする。
さらに、請求項３記載の構成にあっては、請求項１記載の音源装置において、前記決定された二の波形データのうち、一方の波形データは第１の強度で演奏された波形に対応する波形データであり、他方の波形データは、前記第１の強度よりも弱い第２の強度で演奏された波形に対応する波形データであることを特徴とする。
また、請求項４記載のプログラムにあっては、所定のサンプリング周期に従う各サンプリング時間毎に、複数の発音チャンネルの各々で楽音信号を時分割で繰り返し生成する音源部（１０〜１５）と、該音源部の制御を行う制御部（１）とを有する音源装置の、前記制御部（１）において実行されるプログラムであって、前記音源部（１０〜１５）は、複数種類の波形データ（ボディ部用の波形データ４２０〜４２６）を記憶する波形データメモリ（１０）と、前記各発音チャンネルについて、波形アドレス情報、ピッチ制御情報（基準音高差，ピッチ差分ＰＤ）および音量制御情報（基準音量，振幅制御係数ＡＸ）を含む生成パラメータを記憶する複数のチャンネルレジスタ（３２０）と、該生成パラメータ（発音開始指示、ピッチ差分ＰＤ）を前記チャンネルレジスタ（３２０）に書き込むレジスタ書込手段（１，３２２）であって、該生成パラメータのうちのピッチ制御情報（基準音高差，ピッチ差分ＰＤ）については、所望の複数のチャンネルで該ピッチ制御情報を同時に書き込むべきとき、書き込み後の各チャンネルのピッチ制御情報が同一のサンプリング時間から該各チャンネルで適用されるように、対応する前記チャンネルレジスタへの該ピッチ制御情報の書き込みを制御する前記レジスタ書込手段（１，３２２）と、前記各発音チャンネルについて、対応するチャンネルレジスタ（３２０）に記憶されたピッチ制御情報（基準音高差，ピッチ差分ＰＤ）に応じた速度で進行する読出しアドレスを生成し、生成された各々の読出しアドレスで前記波形データメモリをアクセスすることによって前記波形アドレス情報の示す波形データを読み出す読出手段（３０２，３０４）と、読み出された各波形データの音量を各々対応する前記音量制御情報に基づいて制御することにより前記複数の発音チャンネルの音量を制御する音量制御手段（３０６，３０８，３１６，３１８）と、前記各発音チャンネル毎に音量が制御された波形データを合成して出力する合成手段（３１０）とを有するものであり、楽音の発音開始指示に応じて、それぞれループ再生される二の波形データ（ボディ部用の波形データ４２０〜４２６）であって、同じループサイズの何れか二の波形データを決定する波形データ決定過程（ＳＰ３８）と、前記楽音の発音開始指示に応じて、複数の発音チャンネルのうちから、二の発音チャンネルを割り当て、共通のピッチ制御情報を含み、かつ、前記決定された二の波形データ（ボディ部波形データ）に基づく二の楽音信号を生成させるための二組の生成パラメータを、前記レジスタ書込手段（１，３２２）を用いて、当該二の発音チャンネルのチャンネルレジスタに設定する生成パラメータ設定過程（ＳＰ３２，ＳＰ３８）と、前記二の発音チャンネルで、前記決定された二の波形データに基づく楽音信号の生成を同一のサンプリング時間から開始させる過程（ＳＰ４０）と、前記二の発音チャンネルにおいて楽音信号を生成しているときであって、前記共通のピッチ制御情報を書き込むべきときに、該二の発音チャンネルについての該ピッチ制御情報を書き込むよう前記レジスタ書込手段（１，３２２）に指示し、もって、該書き込み後の前記共通のピッチ制御情報が同一のサンプリング時間から該二の発音チャンネルで適用されるように該二の発音チャンネルのチャンネルレジスタへの該ピッチ制御情報の書き込みが前記レジスタ書込手段によって制御されるようにするピッチ変動制御過程（ＳＰ７６，ＳＰ７８）と、前記二の発音チャンネルにおいて楽音信号を発生しているときに、前記レジスタ書込手段（１，３２２）を用いて、該二の発音チャンネルのチャンネルレジスタに、和が所定値となるような二の音量制御情報を設定する混合比制御過程（ＳＰ７６）とを前記制御部（１）に実行させることを特徴とする。
なお、以下で説明する実施例において、「サンプリング周期」の語は、前記「所定のサンプリング周期に従う各サンプリング時間」と同じ意味合いで使用している。
【発明の効果】
【０００９】
このように本発明によれば、同じサイズの二のループ波形データに基づき楽音信号を生成する二の発音チャンネルに対して、共通のピッチ制御情報に基づく楽音信号の生成を同時に開始させ、その後、共通の新たなピッチ制御情報を同一のサンプリング時間から適用させるように、書込手段を用いて設定を行い、これら二の発音チャンネルの音量制御情報を個別に設定することにより、二の波形データの混合比を変化させるから、共通の読出しクロックがこれら二の発音チャンネルに供給されていない場合であっても、これら二の発音チャンネルにおける波形データの位相を同期させることができる。
【発明を実施するための最良の形態】
【００１０】
1．実施例のハードウエア構成
次に、本発明の一実施例による波形データ編集・楽音発生装置の構成を図１を参照し説明する。図において１はＣＰＵであり、後述する制御プログラムおよび制御情報に基づいて、他の構成要素を制御する。２はＲＯＭであり、イニシャルプログラムローダ等が記憶される。３はＲＡＭであり、ワーク領域やバッファ領域あるいは各種プログラムを格納する領域として使用される。４はタイマであり、計時動作やＣＰＵ１に対するタイマ割込を行う。５は操作部であり、各種の操作スイッチ等が装備されたパネルスイッチと、マウス等のポインティングデバイスとから構成されている。６は処理対象である原波形などの各種の表示を行うパネル表示器である。７は外部ＭＩＤＩ機器との間でＭＩＤＩイベントの授受を行うためのＭＩＤＩインターフェース、８はＨＤＤ（ハードディスク・ドライブ）であり、オペレーティングシステム、後述する制御プログラム、波形データ、演奏情報、その他のプログラムおよびデータを記憶する。
【００１１】
１０は波形メモリであり、原波形の波形データや本装置内で作成された楽音再生用の波形データを記憶し、「１」サンプリング周期内に複数の波形データの書き込みおよび読み出しが可能になっている。１１はアクセス管理部であり、前記波形メモリ１０に対する書込回路１３、音源部１５、あるいは、バッファ１４からのアクセスが互いに衝突しないように、波形メモリ１０のアクセスタイムスロットを管理する。１３は書込回路であって、外部波形入力端子１２から入力される原波形信号をサンプリングして、波形メモリ１０またはＨＤＤ８に書き込む。１４はバッファであって、ＨＤＤ８やＲＡＭ３から波形メモリ１０に書き込まれる波形データ、あるいは、波形メモリ１０からＨＤＤ８やＲＡＭ３等に転送する波形データを一時的に記憶する。１５は音源部であり、波形メモリ１０から読み出された波形データを用いて楽音信号を生成する。１６はサウンドシステムであり、音源部１５から出力された楽音信号を出力する。１７はバスラインであり、上述した各要素間の情報の授受のために使用される。
【００１２】
ここで、ＨＤＤ８には、全般的な制御を行うためのプログラムに加えて、外部より入力された原波形データを分析する波形分析プログラム、分析結果に基づいて合成された波形データを加工，編集して音源用の波形データを作成する音源用波形作成プログラム、および、音源用波形データを用いて波形メモリ音源として機能させるための演奏処理プログラムなどが記憶されている。ＣＰＵ１は、ＨＤＤ８からＲＡＭ３に展開された各種制御プログラムに従い、パネルスイッチ５やＭＩＤＩインターフェース７からの入力等に応じて、各種の制御を行う。例えば、原波形データを分析する波形データ分析処理時および音源用波形データ作成する処理を行う際には、これら波形データはＨＤＤ８に格納され、必要に応じて更新される。一方、演奏情報に基づいて楽音信号を合成する演奏処理を行う場合には、事前に必要な波形データがＨＤＤ８から波形メモリ１０に転送される。
【００１３】
演奏処理実行時において、ＣＰＵ１は、ＭＩＤＩインターフェース７やＨＤＤ８などから供給される演奏情報に応じて、音源部１５の発音チャンネルの楽音生成状態を制御する。例えば、ＭＩＤＩインターフェース７から発音開始を示すノートオンイベント信号が入力された場合、音源部１５の発音チャンネルの一または複数のチャンネルに該ノートオンイベントを割り当て、割り当てられた各発音チャンネルにその楽音を生成するために必要な楽音パラメータを供給するとともに、発音開始の指示を与える。これに応じて、音源部１５では、割り当てられた発音チャンネルを用いて、波形選択情報に応じて波形メモリ１０から読み出された波形データを使用して上述した楽音パラメータに対応した楽音を生成する。
【００１４】
次に、図２を参照し、音源部１５の詳細構成を説明する。音源部１５の内部において３０４は読出部であり、供給された波形アドレス情報に応じた各発音チャンネルの波形データを波形メモリ１０から読み出し、楽音信号として出力する。ここで、「波形アドレス情報」は、再生開始点であるアタックスタートアドレス、ループ再生の開始点であるループスタートアドレス、およびループ再生の終了点であるループエンドアドレス等から構成されている。読出部３０４においては、発音開始指示に応じて、アタックスタートアドレスから波形データの読出しが開始され、その後に読出しアドレスがループエンドアドレスに達すると、以後はループスタートアドレスないしループエンドアドレスの範囲が繰り返し読み出される。但し、ループスタートアドレスが指定されなかった場合には、ループ再生は行われず、アタックスタートアドレスないしループエンドアドレスの範囲が一回だけ読み出される。かかるアドレス指定は、例えば後述する「アタック部」用の波形データに適用される。また、ループスタートアドレスをアタックスタートアドレスと同一にしておくと、当該波形データの全範囲がループ再生されることになる。かかるアドレス指定は、例えば後述する「ボディ部」用の波形データに適用される。
【００１５】
３０２はＦナンバ生成部であり、指定されたピッチ制御情報に基づいて、各発音チャンネル毎に、読出部３０４の読出し周波数（Ｆナンバ）を設定する。ここで、ピッチ制御情報は、ビブラート、ピッチベンド、ピッチエンベロープ等による制御が無い場合の音高差である「基準音高差」（セント）と、その音高差に対するビブラート、ピッチベンド、ピッチエンベロープ等による制御の音高差を示す「ピッチ差分ＰＤ」（セント）とから構成されている。ここで、基準音高差は、サンプリングされた波形データの音高と、発音すべき楽音の音高との差分を示すセント値である。生成する楽音にビブラートを付与するときは、ピッチ差分ＰＤを「４」〜「８」Ｈz程度の周期で変動することにより、同周期でＦナンバが変更されるから、これによって生成される楽音信号のピッチを脈動させることができる。３１６は振幅変化生成部であり、発音開始指示に応じて、振幅ＥＧパラメータに基づき、各楽音信号の振幅の時間変化を制御する振幅エンベロープ波形（振幅ＥＧ波形）を発生し、さらにその振幅ＥＧ波形に（基準音量ＳＶに比例する）「振幅制御係数ＡＸ」を乗算し、その積を振幅制御波形として出力する。なお、振幅制御係数ＡＸは、基準となる音量レベル（基準音量）に対して、発生すべき音量レベルを「比」で表したものである。３０６は乗算部であり、読出部３０４から出力された各楽音信号に対して、対応する振幅制御波形を乗算する。なお、振幅制御係数ＡＸは、例えばビブラート演奏における混合比の制御や、トレモロ演奏における混合比・振幅制御等のために用いられる。
【００１６】
３１８はクロスフェード制御部であり、各チャンネルの楽音信号に対して、クロスフェードを行うためのクロスフェード係数を出力する。なお、クロスフェード係数は、「０％」〜「１００％」の範囲で指定される。クロスフェード制御部３１８は、ある発音チャンネルに対して「フェードイン」が指示されると、当該発音チャンネルのクロスフェード係数を所定のクロスフェード時間内に「０％」から「１００％」に徐々に増加させる一方、「フェードアウト」が指示されると、当該発音チャンネルのクロスフェード係数を該クロスフェード時間内に「１００％」から「０％」に徐々に減少させる。３０８は乗算部であり、乗算部３０６から出力された各楽音信号に対して、対応するクロスフェード係数を乗算する。例えば、あるチャンネルＡ，Ｂに対してクロスフェードを施すためには、チャンネルＡ，Ｂのうち一方に対してフェードインを指示し、他方にフェードアウトを指示するとよい。３１０はミキサであり、各発音チャンネルの楽音信号をミキシングする。３１２はＤＳＰ（デジタル・シグナル・プロセッサ）であり、各チャンネルの楽音信号またはミキシングされた楽音信号に対して効果処理を施し、その結果をミキサ３１０に出力する。
【００１７】
３１４はＤＡコンバータであり、最終的に生成された楽音信号をアナログ信号に変換しサウンドシステム１６（図１参照）に出力する。上述した構成要素３０２〜３１８は、複数チャンネルに対応するため、時分割により動作する。すなわち、「１」サンプリング周期内に各発音チャンネル毎のタイムスロットが割り当てられ、各発音チャンネルの処理は、対応するタイムスロット内で実行される。３２０は制御レジスタであり、各発音チャンネル毎に楽音パラメータを記憶し、上記各構成要素３０２〜３１８に供給する。なお、制御レジスタ３２０内において、各発音チャンネル毎の楽音パラメータを記憶する部分を「チャンネルレジスタ」という。従って、制御レジスタ３２０は、最大発音チャンネル数のチャンネルレジスタを有していることになる。ここで、「楽音パラメータ」とは、上述した「ピッチ制御情報（基準音高差およびピッチ差分ＰＤ）」、「波形アドレス情報」、「振幅ＥＧパラメータ」、「振幅制御係数ＡＸ」、「クロスフェード係数」、および「フェードイン／フェードアウト」等である。
【００１８】
制御レジスタ３２０の内容は、バスライン１７を介して、ＣＰＵ１によって適宜更新することが可能である。例えば、ある発音チャンネルのピッチ差分ＰＤおよび振幅制御係数ＡＸを周期的に変更することにより、当該発音チャンネルに対して、ピッチが変動するビブラートや振幅が変動するトレモロの効果を施すことが可能である。詳細は後述するが、本実施例においては、複数の発音チャンネルに対して楽音パラメータ（具体的には発音開始、あるいはピッチ差分ＰＤ）を同一のサンプリング周期で適用する必要が生じる場合がある。３２２は複数同時書込部であり、ＣＰＵ１の制御の下、複数の発音チャンネルに係る楽音パラメータを順次ラッチし、ＣＰＵ１からトリガが入力されると、これら複数チャンネルの楽音パラメータを、あるサンプリング周期の処理が終わり次のサンプリング周期の処理が始まるまでの所定のタイミングで、制御レジスタ３２０の対応するチャンネルレジスタに転送する。これにより、これら複数の発音チャンネルに対して、新たな楽音パラメータを同時に（＝同一サンプリング周期から）適用することが可能になる。
【００１９】
2．波形データ作成処理
2．1．処理の概要
本実施例において用いられる波形データは、最初に発音される「アタック部」の波形データと、その後にループ再生されつつ発音される「ボディ部」の波形データとから成り、これらは異なる波形データファイルとしてハードディスク等に記憶される。アタック部波形データは、様々な奏法に応じて複数種類のものが用意されている。すなわち、奏法に応じたアタック部波形データが最初に再生され、その後に共通のボディ部波形データにクロスフェードすることにより、奏法に対応した楽音信号が生成される。
【００２０】
また、ボディ部波形データは、ビブラート等に応じたピッチの変化や、エクスプレッションペダル、アフタタッチ等に応じた音量の変化に対応するため、同じピッチの「４」種類のループ波形データ（ループサイズも相互に同じ）から構成されている。なお、「ビブラート」とは、「４」〜「８」Ｈz程度の周期で楽音信号のピッチが脈動することを指すが、ピッチの「極大値」付近と「極小値」付近とでは、周波数成分が異なる。そこで、かかる現象を再現するために、「極大値」付近に対応する「上側」の波形データと、「極小値」付近に対応する「下側」の波形データとをミキシングし、ミキシング比をピッチに応じて変化させるとよい。また、楽音信号のスペクトルは、楽音の「強さ」によっても変化する。そこで、かかる現象を再現するためには、「強い強度で演奏された」波形データと、「中程度の強度で演奏された」の波形データとをミキシングし、楽音の強度に応じて両者のミキシング比を設定するとよい。なお、「上側」の波形データと、「下側」の波形データとをミキシングする点は、背景技術に挙げた特許文献１（特開平２００７−２４８５５１号公報）に開示されている。
【００２１】
従って、ビブラートによるピッチの変動に応じた楽音の音色の変化と、エクスプレションペダル等による音量の変動に応じた楽音の音色の変化とを共に再現するためには、同じ音高の「強い強度でビブラート演奏された波形データ」、「中程度の強度でビブラート演奏された波形データ」の各々において、上記「上側」および「下側」の波形データを準備し、ミキシング比を変動させつつこれらの波形データをミキシングする必要がある。従って、本実施例においては、各音域毎に、ボディ部の波形データとして、「上側強」、「上側中」、「下側強」および「下側中」の「４」種類のものが準備されることになる。ここで、「波形データを準備する」とは、弦楽器や管楽器等の持続音系の自然楽器を演奏して、その自然楽器から発生する楽音をサンプリングして波形データを得ることをいう。
【００２２】
ここで、「上側強」、「上側中」、「下側強」および「下側中」の「４」種類のボディ部波形データをスムーズにミキシングするためには、これら波形データの基本波成分と低次倍音成分の周波数および位相がなるべく揃っていることが好適である。仮に、位相が揃っていなければ、複数の波形データの同一周波数成分同士が打ち消しあうような事態が生ずるためである。但し、各周波数成分の「レベル」は、「４」種類のボディ部波形データ毎に異なっており、このレベルの相違によって各波形データの特徴が現れることになる。また、上述したように、楽音信号の発音開始時には、アタック部からボディ部へのクロスフェードが行われるが、このクロスフェードが行われる区間においても、アタック部波形データの各周波数成分と、各ボディ部波形データの各周波数成分との周波数および位相を揃えておくことが望ましい。そこで、本実施例においては、例えば自然楽器の楽音波形に対して周波数解析／編集処理を行うことにより、各波形データの周波数成分の周波数および位相が、可能な範囲で揃えられる。
【００２３】
ここで、本実施例において楽音信号にビブラートを施す場合における、アタック部波形データと各ボディ部波形データの、ミキシング比の遷移例を図１５に示す。この図において、チャンネル＃１は、アタック部波形データを再生するチャンネルであり、チャンネル＃２〜＃５は、「上側強」、「上側中」、「下側強」および「下側中」の各ボディ部波形データを再生するチャンネルである。ノートオンイベントによって発音開始が指示されると、チャンネル＃１〜＃５の各発音が開始されるとともに、最初にアタック部に係るチャンネル＃１のミキシング比が「１００％」になり、ボディ部に係るチャンネル＃２〜＃５のミキシング比が「０％」（無音状態）に設定される。次に、再生位置が所定の制御ポイントに達すると、チャンネル＃１がフェードアウトされるとともに、チャンネル＃２〜＃５がフェードインされる。チャンネル＃２〜＃５の各ミキシング比は脈動しており、上側の波形データに係るチャンネル＃２，＃４と、下側の波形データに係るチャンネル＃３，＃５との位相は「１８０°」異なっている。
【００２４】
2．2．ボディ部分析データ・波形データの作成
以下、上述したような、各周波数成分の周波数および位相をなるべく揃えた複数の波形データを生成する処理を説明するが、まず自然楽器の楽音波形の周波数成分について図３(a)〜(c)を参照し説明する。楽音波形を記録した原波形データをＦＦＴ（高速フーリエ変換）解析すると、この原波形データの周波数成分は時間軸上で連続した周波数成分と、時間軸上で断続した周波数成分とに分離できる。そして、前者の周波数成分に基づいて波形データを合成すると原波形データの「周期成分」の波形データが得られ、後者の周波数成分に基づいて波形データを合成すると原波形データの「ノイズ成分」が得られる。図３(a)はサックスの楽音波形（原波形データ）であり、図３(b)はその周期成分、図３(c)はそのノイズ成分である。本実施例では、「周期成分」の波形データとして、ボディ部波形データおよびアタック部波形データを作成する方法を説明するが、作成されたそれら波形データに、さらに「ノイズ成分」の波形データのレベルを調整して足し込むようにしてもよい。
【００２５】
次に、本実施例におけるボディ部（強）波形データの作成処理の概要を図５を参照し説明する。なお、同図はＣＰＵ１内で実行される処理（プログラム）および各種データの内容を機能ブロック図で示したものである。図５において３２は波形録音部であり、書込回路１３を介して入力された原波形データ３０をＨＤＤ８内に格納する。この原波形データ３０は、ビブラートを付与した状態で演奏され録音されたものである。３４はＦＦＴ解析処理部であり、この原波形データ３０に対してＦＦＴ解析処理を行う。ここでは、まず原波形データ３０に対して、そのピッチ周期の概算値の「８」倍の長さのフレームに対して窓関数が施され、該フレームの範囲内における周波数成分が解析される。次に、フレームの位置が時間軸上でフレーム長の「１／６４」（ピッチ周期の概算値の１／８）だけ後ろにシフトされ、同様に周波数成分が解析される。この処理が原波形データ３０全体に対して繰り返えされると、時間軸上における周波数成分の変化が得られる。
【００２６】
なお、ビブラートが発生している状態では当然にピッチは変化するが、フレームの長さは精密に「ピッチの８倍」に設定しておく必要はないため、ビブラートが発生している状態であってもフレームの長さは一定でよい。かかる処理によれば、各フレーム毎に、周波数成分の周波数ないし位相と、その振幅レベルとが得られる。このような形式のデータを本明細書では「分析データ」といい、原波形データ３０の分析データを「原分析データ」という。この原分析データにおける周波数成分の分布の一例を図４に示す。図４内において８０はピッチ成分の軌跡、８２は２次倍音の軌跡、８４は３次倍音の軌跡であり、これらは時間軸上で連続して発生している。このように、周波数成分は、時間軸上で軌跡が連続している成分（以下、「決定論的周波数成分」という）と、それ以外の切れ切れの成分とに分類される。
【００２７】
図５に戻り、３６は連続成分分離部であり、解析された各周波数成分の連続性に応じて、かかる分類を行う。５０は波形合成部であり、これら周波数成分のうち決定論的周波数成分の分析データのみに基づいて決定論的波形データ（すなわち図３(b)の周期成分波形データ）を合成する。次に、５２は減算部であり、原波形データから決定論的波形データを減算する。この減算結果である残余波形は、図２(c)におけるノイズ成分に相当する。
【００２８】
ところで、原波形データ３０においては、ピッチおよび振幅にビブラート演奏による数Ｈz程度の揺らぎが生じている。３８は平坦化処理部であり、決定論的周波数成分の時間範囲のうち、平坦化領域指定部２２によって指定された時間範囲（平坦化領域）のピッチが一定になるように、該決定論的周波数成分に係る原分析データデータ内の周波数が変更される。かかる変更後の分析データを「平坦化分析データ」と呼ぶ。また、平坦化処理前の各周波数成分の周波数をｆkqといい、平坦化後の周波数をｆ’kqという。ここで、原波形データにおいてピッチが極大値付近である（少なくともピッチの平均値よりも周波数の高い）任意のポイントを上側ポイントと呼び、ピッチが極小値付近である（少なくともピッチの平均値よりも周波数の低い）任意のポイントを下側ポイントと呼ぶ。２４は上側ポイント指定部、２６は下側ポイント指定部であり、各々複数の上側および下側ポイントを指定する。
【００２９】
ここで、指定された上側および下側ポイントは、直接的には原波形データまたは原分析データに対して指定されたものであるが、原波形データの時間軸は、平坦化分析データの時間軸、さらには、後述する他の種々の波形データおよび分析データの時間軸と共通である。従って、指定された上側および下側ポイントは、平坦化分析データ等に対しても適用されるものである。４０は上側波形作成部であり、平坦化分析データ内の複数の上側ポイントにおける決定論的周波数成分の振幅レベルに基づいて上側分析データ５８を生成する。すなわち、平坦化分析データでは、上側ポイントは時間軸上で断続的に発生するため、上側ポイントとして用いて好ましい振幅レベルも時間軸上で断続的に発生する。そこで、分析データのある範囲に対して、この上側ポイントの振幅レベルを適用することにより、この範囲内の何れのポイントも上側ポイントとして用いて好ましい分析データである、上側分析データ５８が得られるのである。また、４２は下側波形作成部であり、複数の下側ポイントにおける振幅レベルを上記範囲について適用することにより、この範囲内の何れのポイントも下側ポイントとして用いて好ましい、下側決定論的成分の分析データすなわち下側分析データ４８が得られるのである。
【００３０】
ところで、残余波形は時間的に切れ切れの周波数成分によって構成されているが、図４に示すように、周波数成分は全くランダムに発生しているわけではなく、ある一定の傾向を有することが解る。図示の例においては、ピッチ周波数の約「０．５」倍、「０．６」倍、「１．５」倍、「２．５」倍、程度の箇所に周波数成分が集中しており、これら周波数成分によってフォルマントが形成されることになる。このような、残余波形によるフォルマントは上側ポイントおよび下側ポイントにおいても各々発生するものである。５４は上側フォルマント連続化処理部であり、上側ポイントにおける残余波形に基づいて上側残余波形５９を作成する。すなわち、上側ポイントは時間軸上で断続的に発生するため、上側ポイントにおける残余波形も全時間軸上で断続的に発生する。そこで、上側ポイント以外の区間において同様のフォルマントを有する波形を補完することにより、上側残余波形５９が作成されるのである。５６は下側フォルマント連続化処理部であり、下側ポイントにおける残余波形に基づいて、上側フォルマント連続化処理部５４と同様に下側残余波形４９を作成する。
なお、この上側残余波形５９と下側残余波形４９については、それぞれ、図６で最終的に合成される（詳細は後述する）「ボディ部上側波形データ」と「ボディ部下側波形データ」とに足し込むようにしてもよい。
【００３１】
次に、本実施例において用いられるボディ部波形データを得る動作を図６を参照し説明する。まず、図５において上述したように、ある原波形データ３０に基づいて下側分析データ４８および上側分析データ５８を得ることができるが、図６においては、原波形データ３０として、強い強度でビブラート演奏された波形データを用いた際に得られる分析データを「下側分析データ（強）４８−１」および「上側分析データ（強）５８−１」と呼ぶ。同様に、原波形データ３０として、中程度の強度でビブラート演奏された波形データを用いた際に得られる分析データを「下側分析データ（中）４８−２」および「上側分析データ（中）５８−２」と呼ぶ。
【００３２】
これら「４」の分析データにおいては、基音、倍音等の周波数や位相が若干異なっている。６０は周波数・位相調整部であり、上側分析データ（強）５８−１を基準として、他の分析データ４８−１，４８−２，５８−２の各周波数成分の周波数ないし位相を揃える。その際の揃え方としては、各分析データの各周波数成分の周波数ないし位相を、上側分析データ（強）５８−１の対応する周波数成分の周波数ないし位相に置き換えるようにしてもよい。或いは、各分析データの各周波数成分の周波数ないし位相を、所定フレーム数毎に、上側分析データ（強）５８−１の対応する周波数成分の周波数ないし位相に一致させるように変形させてもよい。これにより、各成分の周波数および位相が完全にないしほぼ揃った分析データ６２−１，６２−２，６４−１，６４−２が得られる。２８は範囲指定部であり、ユーザの指定に基づいて、分析データ６２−１，６２−２，６４−１，６４−２の各々について、ボディ部を構成する時間範囲（ループスタートポイントおよびループエンドポイント）を指定する。この時間範囲は、作成されるボディ部波形データをループさせるループ範囲に相当し、そのサイズはピッチ周期の整数倍となる。なお、分析データ６２−１，６２−２，６４−１，６４−２は、同じピッチで演奏された波形データから作成された分析データであるので、ピッチ周期は相互にほぼ同じである。また、作成されるボディ部波形データのループサイズを相互に同じにするため、ここでは、各分析データに対してほぼ同じ長さの時間範囲を設定する。
【００３３】
６６はボディ範囲切出し・調整部であり、分析データ６２−１，６２−２，６４−１，６４−２のうち範囲指定部２８によって指定された時間範囲の部分を切り出すとともに、そのうちの何れか１の分析データ、例えば、分析データ６２−１に設定された時間範囲の長さ（ループサイズ）を基準として、各分析データの各周波数成分の周波数および振幅調整を行う。なお、切り出す長さは、原波形データの持つ自然な揺らぎを残すためには、「数十ｍｓｅｃ〜５００ｍｓｅｃ」程度の長さにすることが望ましい。
【００３４】
次に、ボディ範囲切出し・調整部６６において実行される周波数調節について説明する。まず、ボディ範囲切出し・調整部６６においては、基準とする分析データ（上記例では分析データ６２−１）において、上側決定論的分析データの各倍音成分の平坦化した周波数（平坦化周波数ｆ’kq）が修正される。その修正内容について図８(a)を参照し説明する。上述したように、ボディ部の長さはピッチ周期の整数倍であり、その倍数をＡとすると、ボディ部内でピッチ成分の位相は「２Ａπ」だけ進むことになる。従って、ｎ次倍音の位相は「２ｎＡπ」だけ進むはずであるが、実際には平坦化処理の際に周波数ｆkqが平坦化周波数ｆ’kqに修正されたことにより、上側決定論的分析データのループ範囲内におけるｎ次倍音の位相の進みは正確には「２ｎＡπ」に一致しない。ここで、平坦化周波数ｆ’kqに応じて、ｎ次倍音が実際に進む位相を図８(a)の実線で表す。この実際に進む位相と「２ｎＡπ」との比を各フレームの平坦化周波数ｆ’kqに乗算した結果を修正平坦化周波数ｆ”kqという。この修正平坦化周波数ｆ”kqによるボディ部内の位相は、図８(a)の破線で示すように、正確に「２ｎＡπ」になる。
【００３５】
次に、基準とする分析データ以外の分析データ（分析データ６２−２，６４−１，６４−２）のループサイズは、基準とする分析データ（分析データ６２−１）のループサイズとは若干異なるため、これらの分析データ６２−２，６４−１，６４−２については、基本波および各倍音成分を含めた全周波数成分の位相が、分析データ６２−１のピッチ成分の位相に揃えられるとともに、ループサイズの長さも、分析データ６２−１のループサイズに揃えられる。しかる後に、基準とする分析データ（分析データ６２−１）の場合と同様に、各倍音成分の平坦化周波数ｆ’kqが修正平坦化周波数ｆ”kqに変更される。
【００３６】
また、各分析データ６２−１，６２−２，６４−１，６４−２において、ピッチ成分および各倍音成分の振幅レベルＬＵkqは、ループスタートポイントおよびループエンドポイントにおいて一致するように修正される。修正後の振幅レベルを修正振幅レベルＬＵ’kqという。その修正方法の内容を図８(b)を参照し説明する。ボディ部内における元々の振幅レベルＬＵkqが図８(b)の実線に示すように変化していたとする。そして、ループスタートポイントおよびループエンドポイントにおける振幅レベルの差をＢとし、ボディ部の長さをＴLとし、ループスタートポイントからの経過時間をＴとすると、各フレームにおける修正振幅レベルＬＵ’kqは「ＬＵ’kq＝ＬＵkq＋Ｂ（Ｔ／ＴL）」に設定されるのである。このようにして、修正後のループサイズ、修正平坦化周波数ｆ”kqおよび修正振幅レベルＬＵ’kqを適用することにより、図６に示すボディ部上側分析データ（強）４１０、ボディ部下側分析データ（強）４１２、ボディ部上側分析データ（中）４１４、およびボディ部下側分析データ（中）４１６が得られる。そして、これら分析データに基づいて合成処理部６８（図６参照）において波形データを合成すると、ボディ部上側波形データ（強）４２０、ボディ部下側波形データ（強）４２２、ボディ部上側波形データ（中）４２４、およびボディ部下側波形データ（中）４２６が得られる。
なお、図８(a)では、補正値の乗算により、ループエンドポイントの位相を「２ｎＡπ」に合わせていたが、図８(b)に示されるような補正値の加算により合わせるようにしてもよい。また、図８（ｂ）では、補正値の加算により、ループエンドポイントの振幅をループスタートポイントの振幅に合わせていたが、図８（a）に示されるような補正値の乗算により合わせるようにしてもよい。
【００３７】
2．3．アタック部分析データ・波形データの作成
次に、図７を参照し、「アタック部元分析データ」を作成する動作を説明する。なお、アタック部に係る分析データとして、「アタック部元分析データ」と、後述する「アタック部分析データ」とがある。アタック部元分析データは、アタック部用の原波形データ３１を分析し、フォルマント連続化処理を施したものである。また、後述する「アタック部分析データ」は、ボディ部とクロスフェードできるように、周波数成分をさらに加工したものである。
【００３８】
図７においては、上述した図５の場合と同様に、波形録音部３２によってアタック部用の原波形データ３１がＨＤＤ８内に格納され、ＦＦＴ解析処理部３４によって該原波形データ３１が解析され、連続成分分離部３６によって決定論的周波数成分が分離される。この決定論的周波数成分が、アタック部元分析データ４３０−ｋとして出力される。また、波形合成部５０にあっては、決定論的周波数成分の分析データのみに基づいて決定論的波形データが合成され、減算部５２においては、原波形データ３１から決定論的波形データを減算して成る残余波形が出力される。
【００３９】
以上の処理により、ある奏法によって演奏された原波形データ３１に基づいて、一のアタック部元分析データ４３０−ｋが得られる。同様に、様々な奏法によって演奏されたｍ個の原波形データに基づいて、図９に示すようにｍ個のアタック部元分析データ４３０−１〜４３０−ｍを得ることができる。これら分析データを総称して「アタック部元分析データ群４３０」といい、各分析データはＨＤＤ８に格納される。ここで、図９に示されている各分析データ４３０−１〜４３０−ｍについて簡単に説明しておく。「ノーマル」とは、通常演奏の意味であり、ＨＤＤ８には、演奏の強さに応じて「強」、「中」、「弱」の「３」種類がの分析データが記憶されている。「ベンドアップ」とは、低い音高から立ち上がって目標の音高に達するような奏法であり、ベンドアップ速度に応じて「速」、「遅」の「２」種類の分析データが記憶されている。なお、図示していないが、高い音高から立ち下がって目標の音高に達する「ベンドダウン」奏法もあり、ベンドアップの場合と同様に、「速」、「遅」の「２」種類の分析データが記憶されている。「スラー」は、前回の発音に係る音高から今回の発音に係る音高に向かって音高を滑らかに変化させる奏法であり、前回の音高との差（セント値）に応じて、「＋２００」、「＋４００」、「−２００」、「−４００」等の分析データが記憶されている。「グリスアップ」、「グリスダウン」とは、スラーに近似する奏法であるが、スラーよりも階段的に音高を変化させる奏法である。なお、以上列挙した各種奏法は一例であり、ＨＤＤ８には上述した以外の様々な奏法によるアタック部元分析データが記憶されている。
【００４０】
次に、これら各分析データの一部の時間範囲（この時間範囲はアタック部元分析データ４３０−１〜４３０−ｍ毎に異なる）において、各周波数成分の位相および振幅を基準とするボディ部用の分析データ（例えばボディ部上側分析データ（強）４１０）の位相および振幅に一致するように調節すると、ｍ個の「アタック部分析データ」が得られる。そして、これらアタック部分析データに基づいて波形データを合成すると、上記時間範囲においてボディ部用の波形データ４２０〜４２６との間でクロスフェードを行うことのできる波形データ、すなわちアタック部波形データ４４０−１〜４４０−ｍが得られる。
【００４１】
次に、図１０，図１１を参照し、アタック部元分析データ４３０−ｐと、ボディ部上側分析データ（強）４１０とから、対応するアタック部波形データ４４０−ｐを生成する処理を説明する。図１０において処理がステップＳＰ１２に進むと、処理対象となるアタック部元分析データ４３０−ｐ（１≦ｐ≦ｍ）がＲＡＭ３内の所定のワーク領域内に配置される。次に、処理がステップＳＰ１４に進むと、基準となるボディ部の分析データ４１０が、ｎ（複数）回繰り返して、他のワーク領域内に配置される。以上、ステップＳＰ１２，１４の処理を図１１(a)，(b)を参照してさらに説明する。図１１(a)は、今回の処理において使用される分析データが示されており、「スラー（＋２００）」の分析データが処理対象のアタック部元分析データ４３０−ｐとして選択されていることとする。また、このアタック部元分析データ４３０−ｐに対して調節処理を行うために参照されるボディ部の分析データは、ここではボディ部上側分析データ（強）４１０であることとしているが、これに代えて他のボディ部用の分析データ４１２〜４１６を用いてもよい。４つのボディ部用の分析データ４１０〜４１６から合成される４つのボディ部波形データ４２０〜４２６は、相互に多少形状が違うものの基本的には良く似た波形データである。従って、何れか１つのボディ部用の分析データに基づいて対応する１つのボディ部波形データに滑らかに接続できるアタック部波形データを作成すれば、そのアタック部波形データは他のボディ部波形データにも滑らかに接続できる。
【００４２】
また、図１１(b)は、アタック部元分析データ４３０−ｐと、ｎ回繰り返したボディ部上側分析データ（強）４１０とをワーク領域に配置した状態を示している。なお、ｎ回繰り返した分析データ４１０を「分析データ４５４」という。ここで、繰り返し回数ｎは、分析データ４５４の長さが分析データ４３０−ｐよりも若干長くなる程度にするとよく、図示の例では繰り返し回数ｎは「５」になっている。図１０に戻り、処理がステップＳＰ１６に進むと、同期ポイントが決定され、アタック部元分析データ４３０−ｐの先頭位置が調節される。このステップＳＰ１６の処理内容を再び図１１(b)を参照し説明する。まず、分析データ４３０−ｐにおいて、ユーザの操作に基づいて、任意の時間位置が指定される。この時間位置を同期ポイントＰ１という。同期ポイントＰ１は、分析データ４３０−ｐにおいてアタック波形としての特徴がほぼ消失し、ボディ部の分析データ４１０と同様の波形に落ち着いたフレームあたりを指定すると好適である。
【００４３】
同期ポイントＰ１が決定されると、分析データ４５４において以下のようにして同期ポイントＰ２が決定される。まず、分析データ４５４において、スタートアドレスからの時間位置が同期ポイントＰ１と同一である時間位置を始点とし、この始点から所定ピッチ（「５」ピッチないし「２０」ピッチ）後の時間位置を終点とする範囲を定め、この範囲においてピッチ成分の位相が、同期ポイントＰ１におけるピッチ成分の位相と揃っている複数の時間位置が同期ポイントＰ２の候補として抽出される。なお、「揃っている」とは、完全に一致する必要はなく、両者の位相差が所定範囲内であれば、「揃っている」と看做してよい。本実施例においては、各フレームの中心位置の間隔はピッチ周期の「１／８」（４５°）であるから、所定範囲を「２２．５°以内」とすると、ほぼ「８」フレーム毎に同期ポイントＰ２の候補となる時間位置が出現する。次に、同期ポイントＰ１において、ピッチ成分の次に振幅の大きい成分（例えば２倍音成分）の位相と、上記各候補における対応する成分（２倍音成分）の位相とが比較され、当該成分の位相差が最も小さい時間位置が同期ポイントＰ２として選択される。なお、かかる処理において同期ポイントＰ２が絞りきれない場合には、同期ポイントＰ１の上記以外の周波数成分（基本波、２倍音成分以外の成分）の中から、振幅の大きい順に成分を順次選択し、選択した成分と、各候補における対応する成分の位相とを比較し、位相差の大きい候補を除外してゆくとよい。
【００４４】
以上のように同期ポイントＰ２が決定されると、分析データ４３０−ｐの先頭部分に、同期ポイントＰ１，Ｐ２の時間差に等しい無音区間が挿入される。この無音区間を挿入した分析データ４３０−ｐを「分析データ４５２」（図１１(c)参照）という。同図(c)において４５２ａは、上記無音区間である。分析データ４５２において、同期ポイントＰ１に対応する時間位置を同期ポイントＰ１’という。同期ポイントＰ１’は、同期ポイントＰ１よりも上記無音区間４５２ａの長さだけ後にシフトされているため、分析データ４５２，４５４のスタートアドレスを基準とする同期ポイントＰ１’，Ｐ２の時間位置は等しくなる。
【００４５】
図１０に戻り、処理がステップＳＰ１８に進むと、スムージング区間が決定され、スムージング処理が実行される。その詳細を、再び図１１(c)を参照し説明する。同図(c)の分析データ４５２，４５４において、同期ポイントＰ１’，Ｐ２を各々の終点とし、ユーザによって定められたフレーム単位の長さ（例えば２フレームないし２００フレーム）を有する区間をスムージング区間４５２ｂ，４５４ｂという。ここで、アタック部に係るスムージング区間４５２ｂにおいては、各周波数成分の周波数、位相および振幅が、ボディ部に係るスムージング区間４５４ｂにおける各周波数成分の周波数、位相および振幅に徐々に近接しやがて一致するように修正される。この結果、同期ポイントＰ１’，Ｐ２においては、各周波数成分の周波数、位相および振幅が完全に一致するようになる。なお、このスムージング処理の内容は、先に図８(a)，(b)を参照して説明した周波数および振幅調整処理と同様である。
【００４６】
図１０に戻り、処理がステップＳＰ２０に進むと、アタック部におけるボディ部接続区間が決定され、このボディ部接続区間にボディ部の分析データがコピーされる。その詳細を、再び図１１(d)，(e)を参照し説明する。まず、図１１(d)においては、分析データ４５２（図１１(c)参照）のうち同期ポイントＰ１’以降の分析データが除去される。このように加工された分析データを分析データ４５６という。従って、分析データ４５６は、無音区間４５６ａ，本体区間４５６ｂ，スムージング区間４５６ｃから構成される。また、分析データ４５６に対して、この同期ポイントＰ１’以降、ユーザの指定に基づいて、フレーム単位の長さ（例えば２フレームないし１０００フレーム）を有する区間が定められる。この定められた区間をボディ部接続区間４５６ｄという。
【００４７】
次に、ボディ部に係る分析データ４５４のうち、同期ポイントＰ２を始点とし、ボディ部接続区間４５６ｄと同一の長さを有する区間４５４ｄの部分がボディ部接続区間４５６ｄにコピーされる。このように、ボディ部接続区間４５６ｄへのコピーが行われた分析データをアタック部分析データ４５８（図１１(e)参照）という。従って、アタック部分析データ４５８は、無音区間４５８ａ，本体区間４５８ｂ，スムージング区間４５８ｃおよびボディ部接続区間４５８ｄから構成される。
【００４８】
図１０に戻り、処理がステップＳＰ２２に進むと、アタック部分析データ４５８に基づいて、波形を合成することにより、該分析データ４５８に対応するアタック部波形データ、すなわちアタック部波形データ４４０−ｐが生成される。以上、「スラー（＋２００）」のアタック部元分析データ４３０−ｐに基づいて、そのアタック部波形データ４４０−ｐを生成する処理について説明したが、他の分析データ４３０−１〜４３０−ｍについても、同様の処理を施すことによってアタック部波形データ４４０−１〜４４０−ｍを得ることができる（図９参照）。但し、無音区間４５８ａの長さ、スムージング区間４５８ｂおよびボディ部接続区間４５８ｄ（図１１(e)参照）の時間位置および長さは、各アタック部波形データ４４０−１〜４４０−ｍ毎に独立しており、一般的には波形データ毎に異なる値になる。
【００４９】
しかし、何れのアタック部波形データ４４０−１〜４４０−ｍにおいても、そのボディ部接続区間４５８ｄは、何れかのボディ部波形データ（上記例ではボディ部上側波形データ（強）４２０）の波形そのものであるため、再生位置が該ボディ部接続区間４５８ｄ内に入ったら、任意のタイミングでボディ部用の波形データ４２０〜４２６に対してクロスフェードして好適な状態になる。その際のクロスフェードの速さは、クロスフェードがその接続範囲内で完了するのであれば、（瞬時切替を含む）任意の速さでよい。なお、各アタック部波形データ４４０−１〜４４０−ｍの先頭には、無音区間４５８ａが設けられるが、無音区間４５８ａの長さはきわめて短いため、再生時においても、人間の聴感上で発音タイミングが遅れるようには感じられない。以上のように、ボディ部用の波形データ４２０〜４２６と、アタック部波形データ４４０−１〜４４０−ｍとが完成すると、ユーザの指示によってこれらの波形データはＨＤＤ８から波形メモリ１０に転送され、後述する楽音信号合成処理を実行する準備が整う。
【００５０】
3．楽音信号合成処理
3．1．ノートオンイベント処理（図１２(a)）
本実施例の波形データ編集・楽音発生装置は、ＭＩＤＩインターフェース７を介して供給される演奏情報、あるいはＨＤＤ８内の演奏情報ファイル（ＳＭＦファイル等）に基づく自動演奏を行うことにより発生する演奏情報等に基づいて、波形メモリ１０に記憶された波形データを読み出し楽音信号を合成することができる。これら演奏情報は、通常のＭＩＤＩ情報と同様に、ノートオン、ノートオフ、ピッチベンドやエクスプレション等のコントロールチェンジ、フィルタやエフェクタ等を制御するパラメータチェンジ等の様々なイベントデータが含まれる。特に本願実施例においては、楽音の「奏法」についても、コントロールチェンジ、パラメータチェンジ、メタイベント等によって演奏情報内で指定できるようになっている。ここでは、特定のパラメータチェンジで「奏法」が指定されるものとする。また、以下の説明は、ＭＩＤＩで指定可能な複数パートのうちの特定の１パートのみに注目して行う。
【００５１】
ＭＩＤＩインターフェース７から入力された演奏情報、または再生中の演奏情報ファイルにおいてノートオンイベントが発生すると、図１２(a)に示すノートオンイベント処理ルーチンが起動される。図において処理がステップＳＰ３０に進むと、ノートオンイベントに係るノートナンバが変数ＮＮに代入され、ベロシティが変数ＶＥＬに代入される。次に、処理がステップＳＰ３１に進むと、当該パートで指定されている音色（当該音色）が「特定音色」であるか否かが判定される。
【００５２】
ここで、「特定音色」とは、アタック部の奏法対応およびボディ部のピッチ変動対応が可能な音色であり、複数の単音発音音色が用意されている。ユーザは、「特定音色」を含む複数の音色の中から当該パートの音色を選択することができる。ステップＳＰ３０において「ＹＥＳ」と判定されると、処理はステップＳＰ３２に進み、「５」の発音チャンネルが当該ノートオンイベントに対して割り当てられる。以下、これら一のノートオンイベントに対して割り当てられる「５」の発音チャンネルを、「チャンネル群」といい、一のチャンネル群を構成するチャンネルを「チャンネル＃１〜＃５」という。より詳細には、チャンネル＃１はアタック部波形データを再生するチャンネルであり、チャンネル＃２〜＃５は、ボディ部用の波形データ４２０〜４２６を再生するチャンネルである。そして、これらチャンネル＃１〜＃５には、ノートナンバＮＮに応じた共通の基準音高差と、ベロシティＶＥＬに応じた共通の基準音量ＳＶとに基づく各種パラメータ が設定されることになる。ここで、基準音高差が共通になるのは、発音に用いるアタック部波形データと４つのボディ部波形データが、同じ音高の波形データであるためである。なお、チャンネル＃１〜＃５として割り当てられる発音チャンネルは、ノートオン時に空いているチャンネルであるため、これらのチャンネル番号は一般的には事前に特定することはできない。
【００５３】
次に、処理がステップＳＰ３４に進むと、既に受信済みの特定のパラメータチェンジに基づいて、当該ノートオンに係る奏法が判定される。次に、処理がステップＳＰ３６に進むと、チャンネル＃１のチャンネルレジスタに対して、検出された奏法に適用するアタック部の発音を行うように、各種パラメータが設定される。すなわち、チャンネル＃１において再生される波形データとして、波形メモリ１０に記憶された波形データのうちの当該音色のノートナンバＮＮが属する音域に対応したアタック部波形データ４４０−１〜４４０−ｍの中から当該奏法に対応するアタック波形データが選択され、そのアタック部波形データを一回だけ読み出すためのアタックスタートアドレスとループエンドアドレスが設定される。また、上述した共通の基準音高差、基準音量ＳＶに基づく振幅制御係数ＡＸ、当該音色の振幅ＥＧパラメータ、等も設定される。さらに、このチャンネル＃１は通常音量状態（クロスフェード係数が「１００％」）に設定される。また、このステップＳＰ３６では、チャンネル＃１の読出しアドレスが制御ポイントに達したことを検出するための制御ポイントの設定も行われる。
【００５４】
次に、処理がステップＳＰ３８に進むと、チャンネル＃２〜＃５のチャンネルレジスタに対して、ボディ部の発音を行うように、各種パラメータが設定される。すなわち、チャンネル＃２〜＃５において、再生される波形データとして、波形メモリ１０に記憶された波形データのうちの当該音色のノートナンバＮＮが属する音域に対応したボディ部用の波形データ４２０〜４２６が各々指定され、チャンネル＃２〜＃５に、ボディ部波形データ４２０〜４２６を繰り返し読み出すためのアタックスタートアドレス、ループスタートアドレス（＝アタックスタートアドレス）、ループエンドアドレスが設定される。また、上述した基準音高差、基準音量に基づく振幅制御係数ＡＸ、当該音色のＥＧパラメータ、等も設定される。さらに、チャンネル＃２〜＃５は無音状態（クロスフェード係数が「０％」）に設定される。次に、処理がステップＳＰ４０に進むと、チャンネル＃１〜＃５に対して同時に発音開始が指示される。すなわち、チャンネル＃１〜＃５の発音開始指示が複数同時書込部３２２に順次書き込まれ、しかる後に複数同時書込部３２２に対してトリガが送信される。これにより、複数同時書込部３２２から制御レジスタ３２０に対して、チャンネル＃１〜＃５の同時の発音開始指示が書き込まれる。これに応じて、チャンネル＃１〜＃５は、直後の同じサンプリング周期において、発音を開始する。但し、チャンネル＃２〜＃５に関しては、クロスフェード係数は「０％」であるから、実際には無音状態のまま波形データの読出しが続行されることになる（無音の発音）。一方、チャンネル＃１に関しては、クロスフェード係数は「１００％」であるから、通常の音量（１楽音でＳＶ・ＡＤ）で楽音信号が発音される（有音の発音）。
【００５５】
次に、処理がステップＳＰ４２に進むと、チャンネル＃１〜＃５に係るチャンネル番号等の情報がＲＡＭ３の所定領域に格納される。ただし、チャンネル＃１が既に開放されていた場合は、チャンネル＃２〜＃５に係る情報を格納する。次に、処理がステップＳＰ４４に進むと、この特定音高について、今回のノートオンイベント発生前から発音の継続しているチャンネル群（前音チャンネル群という）が存在するか否かが、上記所定領域を参照して判定される。ここで「ＹＥＳ」と判定されると、処理はステップＳＰ４６に進み、前音チャンネル群に係るチャンネル＃１〜＃５（ないし＃２〜＃５）に対して、音量ＥＧ波形のリリースの開始を指示するリリース開始指示が書き込まれ、本ルーチンの処理が終了する。従って、本ルーチンが終了した後、前音チャンネル群に係るチャンネル＃１〜＃５（ないし＃２〜＃５）の音量ＥＧ波形は所定のリリース速度で減衰され、やがて音量が所定レベル以下になったときに、これらの発音チャンネルは開放される。なお、ここでリリース処理を行う理由は、特定音色は管楽器等の単音発音の音色であることによる。すなわち、今回割り当てられたチャンネル＃１〜＃５の発音期間と、前音チャンネル群の発音期間とは、前音チャンネル群のリリースが完了するまできわめて短い時間だけ重複するが、聴感上は、前音チャンネル群から新たなチャンネル群に特定音色の楽音が自然に推移するように聞こえる。
【００５６】
一方、上記ステップＳＰ３１において「ＮＯ」（当該音色が特定音色以外である）と判定されると、処理はステップＳＰ４７に進む。ここでは、当該ノートオンイベントに対して、一の発音チャンネルのみが割り当てられる。次に、処理がステップＳＰ４８に進むと、当該発音チャンネルに対して、当該音色の楽音を生成するための各種パラメータが設定される。すなわち、波形メモリ１０に記憶された波形データのうちの当該音色のノートナンバＮＮが属する音域に対応する波形データが指定され、その波形データのアタックスタートアドレス、ループスタートアドレス、ループエンドアドレスが設定される。また、波形データの音高をノートナンバＮＮに対応した音高にするための基準音高差、ベロシティに応じた基準音量ＳＶと同じ値の振幅制御係数ＡＸ、当該音色の音量ＥＧパラメータ、等が設定される。次に、処理がステップＳＰ４９に進むと、当該発音チャンネルに対する発音開始指示が行われ、本ルーチンの処理は終了する。
【００５７】
3．2．制御ポイント割込処理（図１２(b)）
ところで、特定音色のノートオンイベントが発生すると、チャンネル＃１〜＃５に係る波形データの読み出しが開始されるが、それに平行して、読出部３０４では、そのうちのチャンネル＃１の読出しアドレスに基づいて「制御ポイント」の検出が行われる。そして、チャンネル＃１の読出しアドレスが「制御ポイント」に達するとＣＰＵ割込が発生し、図１２（ｂ）に示す制御ポイント割込処理ルーチンが起動される。なお、「制御ポイント」は、図１１(c)〜(e)に示す同期ポイントＰ１’，Ｐ２と同一ポイントであってもよく、同期ポイントＰ１’，Ｐ２以降であってアタック部の終了ポイント以前のポイントであってもよい。アタック部波形データ４４０−１〜４４０−ｍは、各データ毎に同期ポイントＰ１’，Ｐ２および終了ポイントが異なるため、制御ポイントは、各波形データ４４０−１〜４４０−ｍに対応した独立の値であり、予めＨＤＤ８から読み出されＲＡＭ３に記憶されている。
【００５８】
図１２(b)において処理がステップＳＰ５０に進むと、チャンネル＃２〜＃５に対してフェードインの開始が指示される。すなわち、制御レジスタ３２０のチャンネル＃２〜＃５の対応箇所に、フェードインの指示が書き込まれる。次に、処理がステップＳＰ５２に進むと、チャンネル＃１に対してフェードアウトの開始が指示される。すなわち、制御レジスタ３２０のチャンネル＃１の対応箇所に、フェードアウトの指示が書き込まれる。これにより、以降クロスフェード時間が経過するタイミングまでに、チャンネル＃１からチャンネル＃２〜＃５へのクロスフェードが行われ、クロスフェード時間の終了時には、チャンネル＃１が無音状態になり、チャンネル＃２〜＃５の音量は通常音量（４楽音足してＳＶ・ＡＤ）になる。なお、この割込処理は、「同期ポイント」以降の、アタック部波形データの読出しアドレスが最終アドレス（ループエンドアドレス）に達するまでにクロスフェードが行える任意のタイミングで実行してよい。すなわち、図１１に示されるアタック部波形データのＣ区間の長さが、割込みが発生してからＣＰＵ１が実行するまで、どれだけ遅れてよいか、その時間的猶予に対応している。
【００５９】
3．3．フェードアウト終了割込処理（図１２(c)）
チャンネル＃１のフェードアウトが終了すると、音源部１５からＣＰＵ１に対して所定の割込み信号が出力され、これに応じてＣＰＵ１においては、フェードアウト終了割込処理ルーチン（図１２(c)）が起動される。図において処理がステップＳＰ５５に進むと、チャンネル＃１が直ちに開放され、本ルーチンの処理が終了する。
【００６０】
3．4．ビブラート処理の概要
次に、図１４(a)，(b)を参照し、楽音信号にビブラートを施す処理の概要を説明する。まず、音高に関しては、図１４(a)に示すような低周波波形を供給することにより、楽音信号に音高の変化が付与される。ピッチ差分ＰＤの周波数は、「４」〜「８」Ｈz程度であり、その振幅ＰＤＭは、図示の例では「１０」セントである。なお、ビブラート用の低周波波形は、ビブラート周波数、ビブラート振幅ＰＤＭ等に基づいて、ＣＰＵ１がリアルタイムに生成する。
【００６１】
ビブラート演奏が行われる際には、特定音色のボディ部に関しては、「強」の波形データ（ボディ部上側波形データ（強）４２０およびボディ部下側波形データ（強）４２２）に係るチャンネル＃２，＃３の楽音信号と、「中」の波形データ（ボディ部上側波形データ（中）４２４およびボディ部下側波形データ（中）４２６）に係るチャンネル＃４，＃５の楽音信号とがミキサ３１０においてミキシングされることになる。その際、これら楽音信号の混合比ＳＭＩＸは、音量レベル（＝基準音量ＳＶ×レベル比ＡＤ）に基づいて決定される。なお、混合比ＳＭＩＸは、４楽音を合成した合成楽音の音量を「１．０」としたときの、「強」の波形データに係るチャンネル＃２、＃３の混合比を示すものである。音量レベルはベロシティ、エクスプレションペダル、アフタタッチ等や、トレモロ用の低周波信号に応じて、静的ないし動的に変化し、それに応じて混合比ＳＭＩＸも変化する。
【００６２】
また、上側の波形データ（ボディ部上側波形データ（強）４２０およびボディ部上側波形データ（中）４２４）に係るチャンネル＃２，＃４の楽音信号と、下側の波形データ（ボディ部下側波形データ（強）４２２およびボディ部下側波形データ（中）４２６）に係るチャンネル＃３、＃５の楽音信号とがミキサ３１０においてミキシングされる。その際、これらの楽音信号の混合比ＵＭＩＸは、ピッチ差分ＰＤに基づいて決定される。なお、混合比ＵＭＩＸは、４楽音を合成した合成楽音の音量を「１．０」としたときの、上側の波形データに係るチャンネル＃２、＃４の混合比を示すものである。図１４(b)に示すように、ピッチ差分ＰＤ（セント）が大きいほど混合比ＵＭＩＸが大きくなり、ピッチ差分ＰＤが所定の負値−ＰＤＭから所定の正値ＰＤＭまで変化する間に、混合比ＵＭＩＸは「０」から「１」に変化する。生成する楽音にビブラートを付与するときは、ピッチ差分ＰＤとして供給される低周波波形に応じて、チャンネル＃２〜＃５で生成される４楽音のピッチが揺らされるとともに、同低周波波形に応じて、その４楽音のうちの上側の波形データに基づく楽音と下側の波形データに基づく楽音の混合比が変化する。
【００６３】
以上の混合比ＳＭＩＸ，ＵＭＩＸの適用状態をまとめると、チャンネル＃２〜＃５に各々適用される振幅制御係数ＡＸ2〜ＡＸ5は、下式(１)で表されることになる。
ボディ部上側（強）：  ＡＸ2＝ＳＶ・ＡＤ・ＵＭＩＸ・ＳＭＩＸ
ボディ部下側（強）：  ＡＸ3＝ＳＶ・ＡＤ・（１−ＵＭＩＸ）・ＳＭＩＸ
ボディ部上側（中）：  ＡＸ4＝ＳＶ・ＡＤ・ＵＭＩＸ・（１−ＳＭＩＸ）
ボディ部下側（中）：  ＡＸ5＝ＳＶ・ＡＤ・（１−ＵＭＩＸ）・（１−ＳＭＩＸ）
……式(１)
ここで、ＳＶは基準音量、ＡＤはレベル比、ＳＭＩＸ，ＵＭＩＸは混合比である。
【００６４】
3．5．振幅／レベル変化イベント処理（図１３(a)）
本実施例の波形データ編集・楽音発生装置が楽音発生装置として動作中は、楽音の振幅を制御すべきイベントが発生したタイミングで、図１３(a)に示す振幅変化イベント処理ルーチンが起動される。例えば、生成する楽音に自動でトレモロ等の振幅の時間変化を付与するときは、当該ルーチン中で低周波信号を生成するために、所定時間（例えば「１ｍｓｅｃ」）毎に起動される。また、エクスプレションペダルやアフタタッチなどの、振幅を変化させるイベントデータが発生した（ないし受信された）ときは、そのタイミングで起動される。図において処理がステップＳＰ６０に進むと、その振幅を制御すべきイベントに応じて、新たなレベル比が生成され変数ＡＤに代入される。次に、処理がステップＳＰ６２に進むと、特定音色に対して、発音チャンネルが現在割り当てられているか否かが判定される。ここで「ＮＯ」（割り当てられていない）と判定されると、本ルーチンの処理は直ちに終了する。
【００６５】
一方、「ＹＥＳ」と判定されると、処理はステップＳＰ６４に進み、特定音色に割り当てられている発音チャンネル数が「４」であるか「５」であるかが判定される。なお、「５」である場合とは、ノートオン直後の、そのノートオンに応じて発音開始したチャンネル＃１〜＃５が発音を続けている場合（アタック部発音中）であり、「４」である場合とは、ノートオン後の「制御ポイント」で開始されたチャンネル＃１のフェードアウトが完了して、チャンネル＃１が開放された時点（図１２(c)）より以降の場合（ボディ部発音中）である。発音チャンネル数が「５」であると判定されると、処理はステップＳＰ６６に進み、レベル比ＡＤに応じて、チャンネル＃１の音量が増減される。具体的には、基準音量ＳＶと新たなレベル比ＡＤとに基づいて通常音量（＝ＳＶ・ＡＤ）が算出され、制御レジスタ３２０にチャンネル＃１の振幅制御係数ＡＸ1として設定される。そして、音源部１５では、設定された振幅制御係数ＡＸ1に基づいて、チャンネル＃１で生成されている楽音の音量が制御される。
【００６６】
次に、発音チャンネル数が「４」、「５」の何れの場合においても、処理はステップＳＰ６８に進み、ピッチ差分ＰＤと新たなレベル比ＡＤとに応じて、チャンネル＃２〜＃５の音量が増減される。具体的には、まず、通常音量（＝ＳＶ・ＡＤ）に応じて混合比ＳＭＩＸが、ピッチ差分ＰＤに応じて混合比ＵＭＩＸがそれぞれ決定され、次に、上記式（１）によってチャンネル＃２〜＃５の振幅制御係数ＡＸ2〜ＡＸ5が各々決定され、これら振幅制御係数ＡＸ2〜ＡＸ5が制御レジスタ３２０に書き込まれる。そして、音源部１５では、設定された振幅制御係数ＡＸ2〜ＡＸ5に基づいて、チャンネル＃２〜＃５で生成されている楽音の音量が制御される。以上のステップが終了すると、本ルーチンの処理が終了する。 
【００６７】
3．6．ピッチ変化イベント処理（図１３(b)）
また、本実施例が楽音発生装置として動作中は、楽音の音高を制御すべきイベントが発生したタイミングで、図１３(b)に示すピッチ変化イベント処理ルーチンが起動される。例えば、発生する楽音に自動でビブラートやピッチエンベロープ等の音高の時間変化を付与するときは、当該ルーチン中で低周波信号やピッチＥＧ波形を発生するために、所定時間（例えば「１ｍｓｅｃ」）毎に起動される。また、ピッチベンド等の、ピッチを変化させるイベントデータが発生した（ないし受信された）ときは、そのタイミングで起動される。図において処理がステップＳＰ７０に進むと、その音高を制御すべきイベントに応じて、新たなピッチ差分が生成され変数ＰＤに代入される。例えば、自動でビブラートを付与する場合は、図１４(a)に示した低周波波形（セント）が発生され変数ＰＤに代入される。また、ピッチベンドを受信したときは、そのピッチベンド値（セント）に応じたピッチ差分が変数ＰＤに代入される。ビブラートやピッチベンドなどのイベントが同時に発生している場合は、それらのピッチ変動分を全て加算した結果がピッチ差分ＰＤとなる。次に、処理がステップＳＰ７２に進むと、特定音色に対して、発音チャンネルが現在割り当てられているか否かが判定される。ここで「ＮＯ」（割り当てられていない）と判定されると、本ルーチンの処理は直ちに終了する。
【００６８】
一方、「ＹＥＳ」と判定されると、処理はステップＳＰ７４に進み、特定音色に割り当てられている発音チャンネル数が「４」であるか「５」であるかが判定される。発音チャンネル数が「５」であると判定されると、処理はステップＳＰ７６に進み、新たなピッチ差分ＰＤが、制御レジスタ３２０内のチャンネル＃１〜＃５に係る領域に対して、同時に書き込まれる。すなわち、チャンネル＃１〜＃５の新たなピッチ差分ＰＤ（同一値）が複数同時書込部３２２に順次供給され、その後に複数同時書込部３２２に対してトリガが送信される。トリガに応じて、チャンネル＃１〜＃５の新たなピッチ差分ＰＤが、音源部１５内部で各チャンネルのピッチ差分ＰＤが使用されるあるサンプリング周期の処理が終わって、次のサンプリング周期の処理が始まるまでのタイミングで制御レジスタ３２０に書き込まれる。これにより、新たなピッチ差分ＰＤは、チャンネル＃１〜＃５に対して次サンプリング周期から適用される。なお、仮に、チャンネル＃１〜＃５において新たなピッチ差分ＰＤを適用するサンプリング期間がずれた場合には、それ以降、これらチャンネル＃１〜＃５間で位相ずれが発生する。そこで、ピッチ差分ＰＤについては、必ず複数同時書込部３２２を用いて制御レジスタ３２０に書き込むことにより、チャンネル間の位相ずれを防止している。ここで言う「位相ずれ」とは、チャンネル＃２〜＃５で読み出される同じループサイズのボディ部波形データの読出しアドレスが相互にずれること、および、図１１の処理で作成されたアタック部波形データと、その処理に使用されたループ部波形データの同期ポイント以降の波形形状が時間的にずれることを意味する。
【００６９】
一方、ステップＳＰ７４において発音チャンネル数が「４」であると判定されると、処理はステップＳＰ７８に進む。ここでは、チャンネル＃２〜＃５の新たなピッチ差分ＰＤ（同一値）が複数同時書込部３２２（図２参照）に順次供給され、その後に複数同時書込部３２２に対してトリガが供給される。これにより、チャンネル＃２〜＃５の新たなピッチ差分ＰＤが、制御レジスタ３２０に同時に書き込まれる。次に、処理がステップＳＰ８０に進むと、レベル比ＡＤと新たなピッチ差分ＰＤとに応じて、チャンネル＃２〜＃５の音量が増減される。具体的には、まず、通常音量（＝ＳＶ・ＡＤ）に応じて混合比ＳＭＩＸが、ピッチ差分ＰＤに応じて混合比ＵＭＩＸがそれぞれ決定され、次に、上記式（１）によって、チャンネル＃２〜＃５の振幅制御係数ＡＸ2〜ＡＸ5が各々決定され、これら振幅制御係数ＡＸ2〜ＡＸ5が制御レジスタ３２０に書き込まれる。なお、ピッチ差分ＰＤは、ビブラート、ピッチベンド等によるピッチ変化の和であるが、その値が図１２（ｄ）に示す負値−ＰＤＭを下回ったり正値ＰＤＭを上回ると、混合比ＵＭＩＸが「０」や「１」に張り付いて音色変化ができなくなるので、その和は負値−ＰＤＭないし正値ＰＤＭの範囲であることが望ましい。以上のステップが終了すると、本ルーチンが終了する。
【００７０】
4．実施例の効果
以上のように本実施例によれば、アタック部およびボディ部の波形データに対応するチャンネル＃１〜＃５に対して波形データの読出しを同時に開始し、共通のピッチ差分ＰＤが同時に適用されるように複数同時書込部３２２を介してピッチ制御を行うから、チャンネル＃１〜＃５に対して共通の読出しクロックが供給されていない場合であっても、これらチャンネル＃１〜＃５における波形データの位相を同期させることができる。
さらに、本実施例によれば、アタック部波形データの読出位置が該アタック部波形データに対応して定められた制御ポイントに達すると、チャンネル＃１からチャンネル＃２〜＃５へのクロスフェードを行うことができるから、様々なアタック部波形データに対して共通のボディ部波形データを適用することができ、また、所要記憶容量を抑制することもできる。
【００７１】
5．変形例
本発明は上述した実施例に限定されるものではなく、例えば以下のように種々の変形が可能である。
(1)上記実施例においては、波形データ編集・楽音発生装置上で動作するプログラムによってチャンネル＃１〜＃５の割当、開放、クロスフェード、および振幅制御等を実行したが、これらのプログラムのみをＣＤ−ＲＯＭ、メモリカード等の記録媒体に格納して頒布し、あるいは伝送路を通じて頒布することもできる。
【００７２】
(2)上記実施例においては、ボディ部用の波形データとして、「４」種類の波形データを「４」のチャンネル＃２〜＃５を介して生成したが、例えば「強」と「中」の波形データの差が小さい場合等においては、上側波形データおよび下側波形データの「２」種類の波形データによってボディ部の楽音信号を合成してもよい。かかる場合は、上側波形データおよび下側波形データを再生するチャンネルにおける振幅制御係数ＡＸu，ＡＸdは次のようになる。
ボディ部上側：  ＡＸu＝ＳＶ・ＡＤ・ＵＭＩＸ
ボディ部下側：  ＡＸd＝ＳＶ・ＡＤ・（１−ＵＭＩＸ）      ……式(２)
【００７３】
(3)また、ボディ部用の波形データのうち例えば「上側」と「下側」の波形データの差が小さい場合等においては、「強」および「中」の「２」種類の波形データによってボディ部の楽音信号を合成してもよい。かかる場合は、「強」の波形データおよび「中」の側波形データを再生するチャンネルにおける振幅制御係数ＡＸs，ＡＸwは次のようになる。
ボディ部「強」：  ＡＸs＝ＳＶ・ＡＤ・ＳＭＩＸ
ボディ部「中」：  ＡＸw＝ＳＶ・ＡＤ・（１−ＳＭＩＸ）      ……式(３)
【００７４】
(4)また、上記実施例においては、アタック部波形データとボディ部波形データの再生を同時に開始し、アタック部からボディ部へのクロスフェードを行ったが、アタック部波形データとボディ部波形データの特徴の差異が小さい場合には、アタック部波形データを省略し、ボディ部波形データのみによって楽音信号を合成してもよい。
【００７５】
(5)また、上記実施例においては、複数のボディ部波形データを再生し、これらの混合比ＳＭＩＸ，ＵＭＩＸを変動することによってビブラート演奏を行ったが、「上側」と「下側」および「強」と「中」の間に有意な差異が無い場合、あるいはそもそもビブラート演奏が不要である場合には、再生すべきボディ部波形データは一種類のみでよい。かかる場合においても、アタック部からボディ部へのクロスフェードを行うことにより、一のボディ部波形データに対して、複数のアタック部波形データの中から奏法に応じたものを選択でき、アタック部とボディ部とに対して同一サンプリング周期で発音開始指示およびピッチ差分ＰＤが供給されることは勿論である。
【００７６】
(6)また、上記実施例においては、制御レジスタ３２０に設定されるピッチ制御情報は、基準音高差（セント）とピッチ差分ＰＤ（セント）とで構成されていたが、基準音高差とピッチ差分ＰＤを合算した単一の音高差（セント）で構成するようにしてもよい。その場合には、ＣＰＵ１が、基準音高とピッチ差分ＰＤを加算して、その和を音高差として制御レジスタ３２０に設定する。
【００７７】
(7)また、上記実施例においては、制御ポイントに対応するタイミングを、読出アドレスと制御ポイントに対応するアドレスとの比較して検出するようになっていたが、アタック部波形データに基づく楽音波形データの開始からの時間のカウント値と、制御ポイントに対応する時間とを比較して検出するようにしてもよい。
【００７８】
(8)また、上記実施例において、図１３(a)の「振幅変化イベント処理」と、図１３(b)の「ピッチ変化イベント処理」は、１つのタイマ割込み処理内で続けて行われるようにしてもよい。その場合、ステップＳＰ６８とＳＰ８０とは全く同じ処理であり、図１３(a)のステップＳＰ６０〜ＳＰ６６の処理と、図１３(b)のステップＳＰ７０〜ＳＰ７８の処理とが終わった後に、その処理を１回だけ実行するようにすればよい。
【００７９】
(9)また、上記実施例においては、ボディ部波形データとして、演奏の強度に応じて「強」と「中」の２段階の波形データを用意していたが、例えば、「強」、「中」、「弱」の３段階、「強」、「やや強」、「中」、「やや弱」、「弱」の５段階など、より多くの段階の波形データを用意するようにしてもよい。
【００８０】
(10)各請求項における「レジスタ書込手段」は、音源部１５内の制御レジスタ３２０にパラメータを書き込むための回路であって、ＣＰＵ１から供給されるパラメータを制御レジスタ３２０に直接書き込む機能と、ＣＰＵ１から供給される複数のパラメータを複数同時書込部３２２を利用して制御レジスタ３２０に同時に書き込む機能の両方を含む。
【００８１】
(11)各請求項における「音量制御情報」は、制御レジスタ３２０内の個別のパラメータではなく、基準音量ＳＶ、振幅ＥＧパラメータ、振幅制御係数ＡＸ、クロスフェード係数、「フェードイン／フェードアウト」等の、各発音チャンネルで生成される楽音信号の音量を制御するパラメータ群に相当する。
【図面の簡単な説明】
【００８２】
【図１】本発明の一実施例による波形データ編集・楽音発生装置のブロック図である。
【図２】音源部１５の詳細ブロック図である。
【図３】自然楽器の楽音波形の周波数成分の説明図である。
【図４】原波形データ３０のにおける周波数成分の分布例を示す図である。
【図５】ボディ部波形データの作成処理の説明図（１／２）である。
【図６】ボディ部波形データの作成処理の説明図（２／２）である。
【図７】アタック部元分析データ４３０−ｋの作成処理の説明図である。
【図８】ボディ範囲切出し・調整部６６の動作説明図である。
【図９】アタック部波形データ４４０−１〜４４０−ｍの作成処理の説明図である。
【図１０】アタック部波形データ作成処理のフローチャートである。
【図１１】アタック部波形データ作成処理の説明図である。
【図１２】再生時における各種イベントルーチンのフローチャートである。
【図１３】ビブラートに係る各種イベントルーチンのフローチャートである。
【図１４】ビブラートに係る各種パラメータの波形図および特性図である。
【図１５】チャンネル＃１〜＃５のミキシング比の遷移例を示す図である。
【符号の説明】
【００８３】
１：ＣＰＵ（制御部）、２：ＲＯＭ、３：ＲＡＭ、４：タイマ、５：操作部、６：パネル表示器、７：ＭＩＤＩインターフェース、８：ＨＤＤ、１０：波形メモリ（波形データメモリ）、１１：アクセス管理部、１２：外部波形入力端子、１３：書込回路、１４：バッファ、１５：音源部、１６：サウンドシステム、１７：バスライン、２２：平坦化領域指定部、２４：上側ポイント指定部、２６：下側ポイント指定部、２８：範囲指定部、３０：原波形データ、３１：原波形データ、３２：波形録音部、３４：ＦＦＴ解析処理部、３６：連続成分分離部、３８：平坦化処理部、４０：上側波形作成部、４２：下側波形作成部、４８：下側分析データ、４８−１：下側分析データ（強）、４８−２：下側分析データ（中）、５０：波形合成部、５２：減算部、５４：上側フォルマント連続化処理部、５６：下側フォルマント連続化処理部、５８：上側分析データ、５８−１：上側分析データ（強）、５８−２：上側分析データ（中）、６０：周波数・位相調整部、６２−１，６２−２，６４−１，６４−２：分析データ、６６：ボディ範囲切出し・調整部、６８：合成処理部、８０：ピッチ成分の軌跡、８２，８４：倍音の軌跡、３０２：Ｆナンバ生成部（読出手段）、３０４：読出部（読出手段）、３０６：乗算部（音量制御手段）、３０８：乗算部（音量制御手段）、３１０：ミキサ（合成手段）、３１２：ＤＳＰ、３１４：ＤＡコンバータ、３１６：振幅変化生成部（音量制御手段）、３１８：クロスフェード制御部（音量制御手段）、３２０：制御レジスタ（チャンネルレジスタ）、３２２：複数同時書込部（レジスタ書込手段）、４１０〜４１６：ボディ部用の分析データ、４２０〜４２６：ボディ部用の波形データ、４３０−１〜４３０−ｍ：アタック部元分析データ、４４０−１〜４４０−ｍ：アタック部波形データ、４５２，４５４：分析データ、４５２ａ：無音区間、４５２ｂ，４５４ｂ：スムージング区間、４５６：分析データ、４５６ａ：無音区間、４５６ｂ：本体区間、４５６ｃ：スムージング区間、４５６ｄ：ボディ部接続区間、４５８：分析データ、４５８：アタック部分析データ、４５８ａ：無音区間、４５８ｂ：本体区間、４５８ｃ：スムージング区間、４５８ｄ：ボディ部接続区間。
【図１】
0005239433.tif 000002
【図２】
0005239433.tif 000003
【図３】
0005239433.tif 000004
【図４】
0005239433.tif 000005
【図５】
0005239433.tif 000006
【図６】
0005239433.tif 000007
【図７】
0005239433.tif 000008
【図８】
0005239433.tif 000009
【図９】
0005239433.tif 000010
【図１０】
0005239433.tif 000011
【図１１】
0005239433.tif 000012
【図１２】
0005239433.tif 000013
【図１３】
0005239433.tif 000014
【図１４】
0005239433.tif 000015
【図１５】
0005239433.tif 000016