(57)【特許請求の範囲】
【請求項１】
繰り返し読み出しされるループ波形の波形データを組み合わせ、該組み合わされたループ波形同士をクロスフェード合成することで、所定区間内における連続的な波形を生成する波形生成装置であって、
演奏情報に基づき、複数のループ波形の中から時間的に相前後するように波形接続するループ波形の組み合わせを取得する波形接続対象取得手段と、
前記取得した組み合わせのループ波形について、該ループ波形間の位相差を求める波形評価手段と、
時間的に相前後する前記取得した組み合わせのループ波形を並行して読み出す読み出し手段と、
前記ループ波形を並行して読み出す際に、時間的に後続する接続先のループ波形の読み出し位置を、時間的に先行する接続元のループ波形の読み出し位置に対し前記波形評価手段により求められた位相差に応じて決められた読み出し位置で読み出すよう、前記読み出し手段を制御する制御手段と
を具える波形生成装置。
【請求項２】
前記波形評価手段は、所定の比較範囲において時間的に先行する接続元のループ波形と時間的に後続する接続先のループ波形との相関度を計算し、該計算した相関度に基づき前記位相差を決定することを特徴とする請求項１に記載の波形生成装置。
【請求項３】
前記波形評価手段により求められる前記位相差は、所定の比較範囲において時間的に先行する接続元のループ波形と時間的に後続する接続先のループ波形との間で差分の絶対値の周期内総和を計算し、該計算した周期内総和を最小とするときの位相差とすることを特徴とする請求項１に記載の波形生成装置。
【請求項４】
複数のループ波形の組み合わせについて、ループ波形間の位相差を当該ループ波形の組み合わせ毎に記憶する記憶手段を具えてなり、
前記波形評価手段は、前記取得した組み合わせのループ波形が前記記憶手段に記憶された前記複数のループ波形の組み合わせのうちの１つである場合には、前記記憶手段に記憶された当該ループ波形の組み合わせに対応する位相差を、当該取得した組み合わせのループ波形についての該ループ波形間の位相差として決定することを特徴とする請求項１に記載の波形生成装置。
【請求項５】
前記波形評価手段は、前記取得した組み合わせにおける２つのループ波形について複数の特定位置における波形評価値を求め、その中の１つの波形評価値に基づき前記位相差を決定することを特徴とする請求項１に記載の波形生成装置。
【請求項６】
繰り返し読み出しされるループ波形の波形データを組み合わせ、該組み合わされたループ波形同士をクロスフェード合成することで、所定区間内における連続的な波形を生成する波形生成装置であって、
演奏情報に基づき、複数のループ波形の中から時間的に先行するループ波形を取得する接続元波形取得手段と、
前記接続元波形取得手段で取得された時間的に先行するループ波形と前記演奏情報に基づき、該先行するループ波形に後続する可能性のある１又は複数のループ波形を予測し、先行するループ波形と予測された各ループ波形との組み合わせ毎に、各組み合わせにおけるループ波形間の位相差をそれぞれ求める波形評価手段と、
前記演奏情報に基づき、前記予測されたループ波形の中から前記時間的に先行するループ波形に後続するループ波形を取得する接続先波形取得手段と、
前記接続元波形取得手段及び接続先波形取得手段により取得されたループ波形の組み合わせに従い、時間的に相前後する各ループ波形を並行して読み出す読み出し手段と、
前記取得されたループ波形の組み合わせに従い各ループ波形を並行して読み出す際に、時間的に後続する接続先のループ波形の読み出し位置を、時間的に先行する接続元のループ波形の読み出し位置に対し前記波形評価手段により求められた位相差に応じた読み出し位置で読み出すよう、前記読み出し手段を制御する制御手段と
を具える波形生成装置。
【請求項７】
前記波形評価手段は、前記先行するループ波形と前記予測された各ループ波形との組み合わせ毎に波形の相関度を計算し、該計算した相関度に基づき前記位相差を決定することを特徴とする請求項６に記載の波形生成装置。
【請求項８】
繰り返し読み出しされるループ波形の波形データを組み合わせ、該組み合わされたループ波形同士をクロスフェード合成することで、所定区間内における連続的な波形を生成する波形生成方法であって、
演奏情報に基づき、複数のループ波形の中から時間的に相前後するように波形接続するループ波形の組み合わせを取得するステップと、
前記取得した組み合わせのループ波形について、該ループ波形間の位相差を求めるステップと、
時間的に相前後する前記取得した組み合わせのループ波形を並行して読み出すステップと、
前記ループ波形を並行して読み出す際に、時間的に後続する接続先のループ波形の読み出し位置を、時間的に先行する接続元のループ波形の読み出し位置に対し前記求められた位相差に応じて決められた読み出し位置で読み出すよう制御するステップと
を具える波形生成方法。
【請求項９】
繰り返し読み出しされるループ波形の波形データを組み合わせ、該組み合わされたループ波形同士をクロスフェード合成することで、所定区間内における連続的な波形を生成する波形生成方法であって、
演奏情報に基づき、複数のループ波形の中から時間的に先行するループ波形を取得するステップと、
前記取得された時間的に先行するループ波形と前記演奏情報に基づき、該先行するループ波形に後続する可能性のある１又は複数のループ波形を予測し、先行するループ波形と予測された各ループ波形との組み合わせ毎に、各組み合わせにおけるループ波形間の位相差をそれぞれ求めるステップと、
前記演奏情報に基づき、前記予測されたループ波形の中から前記時間的に先行するループ波形に後続するループ波形を取得するステップと、
前記取得されたループ波形の組み合わせに従い、時間的に相前後する各ループ波形を並行して読み出すステップと、
前記取得されたループ波形の組み合わせに従い各ループ波形を並行して読み出す際に、時間的に後続する接続先のループ波形の読み出し位置を、時間的に先行する接続元のループ波形の読み出し位置に対し当該組み合わせに対応して求められた前記位相差に応じた読み出し位置で読み出すよう制御するステップと
を具える波形生成方法。
【請求項１０】
コンピュータに、
演奏情報に基づき、複数のループ波形の中から時間的に相前後するように波形接続するループ波形の組み合わせを取得する手順と、
前記取得した組み合わせのループ波形について、該ループ波形間の位相差を求める手順と、
時間的に相前後する前記取得した組み合わせのループ波形を並行して読み出す手順と、
前記ループ波形を並行して読み出す際に、時間的に後続する接続先のループ波形の読み出し位置を、時間的に先行する接続元のループ波形の読み出し位置に対し前記求められた位相差に応じて決められた読み出し位置で読み出すよう制御する手順と
を実行させるためのプログラム。
【請求項１１】
コンピュータに、
演奏情報に基づき、複数のループ波形の中から時間的に先行するループ波形を取得する手順と、
前記取得された時間的に先行するループ波形と前記演奏情報に基づき、該先行するループ波形に後続する可能性のある１又は複数のループ波形を予測し、先行するループ波形と予測された各ループ波形との組み合わせ毎に、各組み合わせにおけるループ波形間の位相差をそれぞれ求める手順と、
前記演奏情報に基づき、前記予測されたループ波形の中から前記時間的に先行するループ波形に後続するループ波形を取得する手順と、
前記取得されたループ波形の組み合わせに従い、時間的に相前後する各ループ波形を並行して読み出す手順と、
前記取得されたループ波形の組み合わせに従い各ループ波形を並行して読み出す際に、時間的に後続する接続先のループ波形の読み出し位置を、時間的に先行する接続元のループ波形の読み出し位置に対し当該組み合わせに対応して求められた前記位相差に応じた読み出し位置で読み出すよう制御する手順と
を実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、波形メモリ等から適宜に読み出した波形を接続し合成することにより、楽音あるいは音声若しくはその他任意の音の波形を生成する波形生成装置及び方法に関する。特に、読み出した個々の波形をクロスフェード合成によって接続して合成する際に、接続対象とされた時間的に相前後する各波形間における位相差を求め、該位相差に基づき各波形の位相をあわせながら波形を接続し合成することで、劣化のない高品質な波形を生成することができるようにした波形生成装置及び方法に関する。この発明は、電子楽器は勿論のこと、自動演奏装置、コンピュータ、電子ゲーム装置その他のマルチメディア機器等、楽音あるいは音声若しくはその他任意の音を発生する機能を有するあらゆる分野の機器若しくは装置または方法において広範囲に応用できるものである。なお、この明細書において、楽音波形という場合、音楽的な音の波形に限るものではなく、音声あるいはその他任意の音の波形を含んでいてもよい意味合いで用いるものとする。
【０００２】
【従来の技術】
電子楽器等に用いる波形メモリ音源において、ＰＣＭ（パルス符号変調）あるいはＤＰＣＭ（差分ＰＣＭ）又はＡＤＰＣＭ（適応差分ＰＣＭ）等の任意の符号化方式で符号化した波形データを記憶しておき、適宜に選択された波形データを読み出して楽音波形を形成するようにした、いわゆる「波形メモリ読み出し」技術は既に公知であり、また、様々なタイプの「波形メモリ読み出し」技術が知られている。従来知られた「波形メモリ読み出し」技術のほとんどは、発音開始から終了までの1つの音の波形を発生するためのものである。一例として、発音開始から終了までの1音の全波形の波形データをサンプル波形データとして記憶する方式がある。また、別の例として、変化の複雑なアタック部やリリース部あるいはジョイント部などの非定常状態区間についてはその全波形の波形データ（これをモジュールと呼ぶ）をサンプル波形データとして記憶し、変化のあまりないサステイン等で構成されるボディ部などの定常状態区間については所定のループ波形（これをユニットと呼ぶ）をサンプル波形データとして記憶する方式がある。この方式では、外部波形入力から取り込んだ自然楽器固有の様々な演奏態様による演奏音のオリジナル波形から、アタック部やリリース部あるいはジョイント部などの非定常状態区間の波形を表すモジュール、あるいはボディ部などの定常状態区間における代表的なループ波形を表すユニット等を切り出して、これらの切り出したモジュール及びユニットを所定の圧縮手法を用いてデータ圧縮した形で「波形データベース（波形メモリ）」に記憶している。ただし、各モジュールは全体として非定常状態区間の波形を表すものであるが、各モジュールのデータ構成としては非定常状態区間の波形だけでなく、波形接続のために使用するループ波形を含む。すなわち、各モジュールはノンループ波形とループ波形とから構成されるサンプル波形データである。
なお、本明細書において、「ループ波形」とは繰り返し読み出し（つまりループ読み出し）される波形という意味で用いるものとする。
【０００３】
上述したような「波形メモリ読み出し」技術を用いて一連の楽音波形を生成する際には、複数のモジュールやユニットを特定のシーケンスに従って順次切り替えながら読み出し、これらの読み出したモジュールやユニットをループ波形を用いて順次にクロスフェード合成する。こうしたループ波形同士のクロスフェード合成を用いて複数のモジュールやユニットを順次に接続し合成する場合においては、モジュールやユニットの繋ぎ目など、波形形状が異なるもの同士あるいは波形形状は同一又は類似しているが位相が異なるもの同士の接続を行う場合がある。すなわち、同一の１音から取得し切り離したアタック部とボディ部などのようなサンプル波形同士が常に接続されるものとは限らないので、同一の１音から取得し切り離したサンプル波形同士を接続する以外では接続対象の波形の波形形状や位相が異なる場合がある。また、同一の１音から取得したサンプル波形同士の接続であるがサンプル波形取得時（例えば録音時）の時間の流れとは異ならせて接続すると（例えば、ユニットの前後を入れ替える、あるいはユニットの一部を省略するなど）、接続対象の波形の波形形状や位相が異なる場合がある。さらに、同一の１音から取得したサンプル波形同士の接続であるが、例えばアタック部とボディ部とに対し別々の周期分析等が行われた結果として、その周期切り出しにおける位相が異なる場合がある。
【０００４】
このような接続対象の波形の波形形状や位相が異なる場合において波形を滑らかに接続するには、クロスフェード合成の対象となる時間的に相前後している各波形の位相を合わせながらクロスフェード合成を行うことが必要である。そのために、従来では各モジュールやユニット毎に前後に接続可能な波形との位相差などをデータとして前もって記憶しておき、クロスフェード合成の際に該記憶しているデータに基づき位相合わせを行っていた。そうしたものの一例として、本出願人により既に出願済みである特開2000-47667号がある。これによると、各モジュールやユニットにおける基準とするループ波形に対する初期位相を示す初期位相情報を当該ループ波形に対応付けて波形メモリに記憶しておき、波形の組み合わせにあわせて予め記憶しておいた該初期位相情報を利用して必要な位相調整を行うことにより、組み合わされた波形の接続の際に適切な位相合わせを行うことができるようにしている。なお、接続可能な波形の組み合わせは１つだけに限られるものではなく、接続可能な波形の組み合わせによって最適な位相差は変わることから、本出願人により既に出願済みの上記発明は波形合成時において接続可能な波形の組み合わせ全てについての初期位相情報を記憶するものを含む。
【０００５】
【発明が解決しようとする課題】
しかし、上述したように接続可能な波形の組み合わせの全てについて初期位相情報を記憶するとなると、そのためのデータ量が非常に多くなってしまい不都合である。また、波形合成時に接続可能な波形の組み合わせ全てについて予め初期位相情報を記憶しておくことは、非常に困難でありまた非現実的である。さらに、新たな波形が波形メモリに追加されたような場合に、波形メモリに記憶されている波形の中から新たに追加された波形を波形合成時に接続可能である波形のみを取り出して、新たに追加された波形との初期位相情報を記憶することは非常に時間がかかり効率が悪い、といったような様々な問題点があった。こうした問題点を解決するための１つの方法として、予め位相合わせした波形を波形メモリに記憶しておく方法が挙げられる。しかし、全ての波形の位相を合わせて波形メモリに記憶するような場合、各波形の位相はそれぞれ異なっている場合が多く、位相合わせの基準とすべき基準波形が不明確であることから、正しく位相をそろえておくことができない。例えば、基準波形として位相「０」のサイン波形との相関が最大になるように各波形の位相を合わせておくことが考えられるが、倍音のレベルが大きい波形などではサイン波形との相関をとったとしてもピーク値がそれほど大きく出ずにはっきりピーク値であるとわからない場合があり、そうした場合に位相合わせした波形同士を接続すると位相差が最適でないこともある。また、基準波形として位相「０」のサイン波以外のものを用いるようにしてもよいが、その場合にも該基準波形の特徴に左右されてしまうことから適切ではない。さらに、低い音程の波形などにおいては、１周期の波形の長さが長いことから、決まった位相でしか波形を切り出せないとなると、波形データ切り出しの自由度が下がり、適切な波形切り出しができないなどの不都合が新たに生じることとなるので問題である。
【０００６】
本発明は上述の点に鑑みてなされたもので、クロスフェード合成による波形接続対象である時間的に相前後する波形の組み合わせが決定した時点において接続する各波形間の位相差を求め、該求めた位相差に基づいて各波形の位相を合わせて波形を接続し合成することによって、各波形間における位相差を予め記憶しておくことなしに、どのような波形を組み合わせた場合であっても音質劣化のない高品質な波形を生成することができるようにした波形生成装置及び方法を提供しようとするものである。
【０００７】
【課題を解決するための手段】
本発明の請求項１に係る波形生成装置は、繰り返し読み出しされるループ波形の波形データを組み合わせ、該組み合わされたループ波形同士をクロスフェード合成することで、所定区間内における連続的な波形を生成する波形生成装置であって、演奏情報に基づき、複数のループ波形の中から時間的に相前後するように波形接続するループ波形の組み合わせを取得する波形接続対象取得手段と、前記取得した組み合わせのループ波形について、該ループ波形間の位相差を求める波形評価手段と、時間的に相前後する前記取得した組み合わせのループ波形を並行して読み出す読み出し手段と、前記ループ波形を並行して読み出す際に、時間的に後続する接続先のループ波形の読み出し位置を、時間的に先行する接続元のループ波形の読み出し位置に対し前記波形評価手段により求められた位相差に応じて決められた読み出し位置で読み出すよう、前記読み出し手段を制御する制御手段とを具えるものである。
【０００８】
この発明によれば、複数のループ波形の中から時間的に相前後するように波形接続するループ波形の組み合わせを演奏情報に基づき取得し、該取得した組み合わせのループ波形について該ループ波形間の位相差を求める。そして、前記ループ波形を並行して読み出す際において、時間的に後続する接続先のループ波形の読み出し位置を、時間的に先行する接続元のループ波形の読み出し位置に対し前記求められた位相差に応じて決められた読み出し位置で読み出すよう制御するようにした。すなわち、繰り返し読み出しされるループ波形の波形データを組み合わせ、該組み合わされたループ波形同士をクロスフェード合成して所定区間内における連続的な波形を生成する場合において、各ループ波形間における位相ずれによる波形の劣化が生じないように各ループ波形間の位相差を決定し、該決定した位相差分だけ時間的に後続する接続先のループ波形の読み出し位置をシフトして読み出す。各ループ波形間の位相差は、演奏情報に基づき取得されるループ波形の組み合わせに応じてその都度求められる。このように、波形接続対象となるループ波形の組み合わせに応じて各ループ波形間の位相差を求めるようにしたので、予め各ループ波形の組み合わせ毎の位相差を記憶しておく場合に比べて、ループ波形の組み合わせの自由度が高い、多くの組み合わせ毎に位相差を記憶しておく必要がないのでデータ記憶容量を少なくできる、組み合わせるループ波形が追加された場合であっても容易に適応できる、といった利点がある。また、決定した位相差に応じて決められた読み出し位置で読み出しを行うことによって、互いの位相をあわせてクロスフェード合成する。したがって、位相の違いによる波形の相殺などの波形劣化のない高品質な楽音波形を生成することができるようになる。
【０００９】
本発明の請求項６に係る波形生成装置は、繰り返し読み出しされるループ波形の波形データを組み合わせ、該組み合わされたループ波形同士をクロスフェード合成することで、所定区間内における連続的な波形を生成する波形生成装置であって、演奏情報に基づき、複数のループ波形の中から時間的に先行するループ波形を取得する接続元波形取得手段と、前記接続元波形取得手段で取得された時間的に先行するループ波形と前記演奏情報に基づき、該先行するループ波形に後続する可能性のある１又は複数のループ波形を予測し、先行するループ波形と予測された各ループ波形との組み合わせ毎に、各組み合わせにおけるループ波形間の位相差をそれぞれ求める波形評価手段と、前記演奏情報に基づき、前記予測されたループ波形の中から前記時間的に先行するループ波形に後続するループ波形を取得する接続先波形取得手段と、前記接続元波形取得手段及び接続先波形取得手段により取得されたループ波形の組み合わせに従い、時間的に相前後する各ループ波形を並行して読み出す読み出し手段と、前記取得されたループ波形の組み合わせに従い各ループ波形を並行して読み出す際に、時間的に後続する接続先のループ波形の読み出し位置を、時間的に先行する接続元のループ波形の読み出し位置に対し前記波形評価手段により求められた位相差に応じた読み出し位置で読み出すよう、前記読み出し手段を制御する制御手段とを具えるものである。これによると、時間的に先行するループ波形に後続するループ波形を予測して先行するループ波形との組み合わせ毎に各組み合わせにおけるループ波形間の位相差をそれぞれ求めるようにしたので、先行する接続元のループ波形に対する後続する接続先のループ波形が確定したときには、予測された組み合わせに応じて既に求められている位相差を使用できるので、波形接続処理に係る時間を短縮することができ非常に有効である。
【００１０】
本発明は、装置の発明として構成し実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはＤＳＰ等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【００１１】
【発明の実施の形態】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
【００１２】
図１は、この発明に係る波形生成装置のハードウエア構成例を示すブロック図である。ここに示されたハードウエア構成例はコンピュータを用いて構成されており、そこにおいて、波形生成処理は、コンピュータがこの発明に係る波形生成処理を実現する所定のプログラム（ソフトウエア）を実行することにより実施される。勿論、この波形生成処理はコンピュータソフトウエアの形態に限らず、ＤＳＰ（ディジタル・シグナル・プロセッサ）によって処理されるマイクロプログラムの形態でも実施可能であり、また、この種のプログラムの形態に限らず、ディスクリート回路又は集積回路若しくは大規模集積回路等を含んで構成された専用ハードウエア装置の形態で実施してもよい。また、この波形生成装置は、電子楽器あるいはカラオケ装置又は電子ゲーム装置又はその他のマルチメディア機器又はパーソナルコンピュータ等、任意の製品応用形態をとっていてよい。
なお、上記した波形生成装置はこれら以外のハードウェアを有する場合もあるが、ここでは必要最小限の資源を用いた場合について説明する。
【００１３】
図１に示されたハードウエア構成例においては、コンピュータのメイン制御部としてのＣＰＵ１に対して、バスラインＢＬ（データあるいはアドレスバス等）を介してリードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３、パネルスイッチ４、パネル表示器５、ドライブ６、波形取込部７、波形出力部８、ハードディスク９、通信インタフェース１０がそれぞれ接続されている。ＣＰＵ１は、「波形データベース作成処理」（図示せず）や「波形生成処理」（後述する図２参照）などの各種処理を所定のプログラムに基づいて実行する。これらのプログラムは、通信インタフェース１０を介したネットワークあるいはドライブ６に装着されたフレキシブルディスク（ＦＤ）、コンパクトディスク（ＣＤ−ＲＯＭ・ＣＤ−ＲＡＭ）、光磁気ディスク（ＭＯ）、あるいはＤＶＤ（Digital Versatile Disk）等の着脱自在な様々な形態の外部記憶メディア６Ａ等から供給されてハードディスク９に記憶される。そして、実行時にハードディスク９からＲＡＭ３にロードされる。あるいは、ＲＯＭ２にプログラムが記録されていてもよい。
【００１４】
ＲＯＭ２は、ＣＰＵ１により実行あるいは参照される各種プログラムや各種データ等を格納するものである。ＲＡＭ３は、ハードディスク９などに構成された「波形データベース（波形メモリ）」から読み出したオリジナルの波形データなどの各種データやＣＰＵ１がプログラムを実行する際に発生する各種情報などを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを記憶するメモリとして使用される。ＲＡＭ３の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。パネルスイッチ４は、楽音をサンプリングする指示やサンプリングされた波形データ等のエディットや各種情報の入力等を行うための各種の操作子を含んで構成される。例えば、数値データ入力用のテンキーや文字データ入力用のキーボード、あるいはパネルスイッチ等である。この他にも音高、音色、効果等を選択・設定・制御するための各種操作子を含んでいてよい。パネル表示器５は、パネルスイッチ４により入力された各種情報やサンプリングされた波形データ等を表示する、例えば液晶表示パネル（ＬＣＤ）やＣＲＴ等のディスプレイである。
【００１５】
波形取込部７はＡ／Ｄ変換器を内蔵し、外部波形入力（例えば、マイクロフォンなどからの入力）されたアナログ楽音信号をデジタルデータに変換（サンプリング）し、該デジタル波形データをオリジナルの波形データ（つまり、生成すべき波形の素材となる波形データ）として「波形データベース」に新たに取り込むものである。ＣＰＵ１により実行される「波形データベース作成処理」（図示せず）では、上記波形取込部７から取り込んだアナログ楽音信号に対して成分分離や周波数分析を行い、これにより生成されるモジュール波形やユニット波形などのオリジナルの波形データをハードディスク９などに構成された「波形データベース」に記憶する。すなわち、外部波形入力（例えば、マイクロフォン等）から波形取込部７を介して取り込んだ自然楽器固有の様々な演奏態様による演奏音のオリジナル波形を波形形状の変化を代表する区間毎の特徴的な楽音波形（例えば、アタック部やリリース部あるいはジョイント部などの非定常状態区間の波形を表すモジュール、ボディ部などの定常状態区間における代表的な一部波形を表すユニット等）に分離し、これらの波形をＦＦＴ（高速フーリエ変換）分析して成分（例えば、調和成分と調和外成分など）、要素（例えば、ピッチと振幅をノーマライズした波形形状を抽出した「波形」（Timbre）要素、基準ピッチに対するピッチ変動特性を抽出した「ピッチ」（Pitch）要素、振幅エンベロープ特性を抽出した「振幅」（Amplitude）要素など）といった階層的な圧縮手法を用いることによってデータ圧縮した形で「波形データベース」に記憶する。
【００１６】
上記「波形データベース作成処理」の実行に伴い生成した波形データを「波形データベース」に記憶する際には、分離された各成分（調和成分、調和外成分等）における各要素（波形、ピッチ、振幅等）毎に複数のサンプル値を分散的に又は必要に応じて連続的に抽出し、当該サンプル値列に対して各々異なったベクタＩＤ（識別情報）などを付与して、サンプル値の時刻位置のデータとともに記憶する（以下、このようなデータをベクタデータと呼ぶ）。したがって、この実施例では、１つのモジュールあるいはユニット毎にそれぞれ対応するようにして、調和波形（Timbre）ベクタデータ、調和ピッチ（Pitch）ベクタデータ、調和振幅（Amplitude）ベクタデータ、調和外波形（Timbre）ベクタデータ、調和外振幅（Amplitude）ベクタデータを作成する。後述する「波形生成処理」（後述する図２参照）では、上記「波形データベース」から適宜に読み出したベクタデータを利用して、演奏情報に応じた任意の楽音信号の波形データを生成する。勿論、複数の楽音信号の同時発生が可能である。
なお、この実施例において、ジョイント部とは音と音の間（又は音部分と音部分の間）を任意の奏法でつなぐ波形区間のことである。
【００１７】
図１に示した波形生成装置の説明に戻って、上記「波形生成処理」の実行に伴い生成された楽音信号の波形データはバスラインＢＬを介して波形出力部８に与えられ、適宜バッファ記憶される。波形出力部８ではバッファ記憶された波形データを所定の出力サンプリング周波数にしたがって出力し、これをＤ／Ａ変換してサウンドシステム８Ａに送出する。こうして、波形出力部８から出力された楽音信号は、サウンドシステム８Ａを介して発音される。ハードディスク９は、波形データや奏法に応じた波形を合成するための各種データ、各種音色パラメータ等からなる音色データなどのような演奏に関する複数種類のデータを記憶したり、前記ＣＰＵ１が実行する各種プログラム等の制御に関するデータを記憶したりするものである。
【００１８】
ドライブ６は、オリジナルの波形データ（ベクタデータ）や奏法に応じた波形を合成するための各種データ、多種多様な音色パラメータ等からなる音色データなどのような演奏に関する複数種類のデータを記憶したり、前記ＣＰＵ１が実行する各種プログラム等の制御に関するデータを記憶したりするための着脱可能なディスク（外部記憶メディア６Ａ）を駆動するものである。なお、前記ドライブ６により駆動される外部記憶メディア６Ａはフレキシブルディスク（ＦＤ）の他に、コンパクトディスク（ＣＤ−ＲＯＭ・ＣＤ−ＲＷ）、光磁気ディスク（ＭＯ）、あるいはＤＶＤ（Digital Versatile Disk）等の着脱自在な様々な形態の外部記憶媒体を利用するメディアであればどのようなものであってもよい。若しくは、半導体メモリなどであってもよい。制御プログラムを記憶した外部記憶メディア６Ａをドライブ６にセットし、その内容（つまり制御プログラム）をハードディスク９に落とさずに、ＲＡＭ３に直接ロードするようにしてもよい。なお、外部記憶メディア６Ａを用いて、あるいはネットワークを介して制御プログラムを提供するやり方は、制御プログラムの追加やバージョンアップ等を容易に行うことができるので好都合である。
【００１９】
通信インタフェース１０は、例えばＬＡＮやインターネット、電話回線等の通信ネットワーク（図示せず）に接続されており、該通信ネットワークを介して、サーバコンピュータ等（図示せず）と接続され、当該サーバコンピュータ等から制御プログラムやオリジナルの波形データ（ベクタデータ）あるいは演奏情報などを波形生成装置側に取り込むためのものである。すなわち、ＲＯＭ２やハードディスク９等に制御プログラムや波形データなどが記憶されていない場合に、サーバコンピュータから制御プログラムや波形データをダウンロードするために用いられる。クライアントとなる波形生成装置は、通信インターフェース１０を介してサーバコンピュータへと制御プログラムや波形データのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求された制御プログラムや波形データなどを通信インタフェース１０を介してハードディスク９に蓄積することにより、ダウンロードが完了する。更に、ＭＩＤＩインタフェースを含み、ＭＩＤＩの演奏情報を受け取るようにしてもよいのは勿論である。また、音楽演奏用キーボードや演奏操作機器をバスラインＢＬに接続し、リアルタイム演奏によって演奏情報を供給するようにしてもよいのは言うまでもない。さらに、所望の楽曲の演奏情報を記憶した外部記憶メディア６Ａを使用して、演奏情報を供給するようにしてもよい。
【００２０】
上述したように、図１に示した波形生成装置において、波形生成はコンピュータが波形生成処理を実現する所定のプログラム（ソフトウエア）を実行することにより実施される。あるいはプログラムの形態に限らず、波形生成処理を専用ハードウエア装置の形態で実施するようにしてもよい。そこで、本発明に係る波形生成装置で実行する波形生成処理について、図２を用いて説明する。図２は、波形生成処理を専用ハードウエア装置の形態で構成した場合の一実施例を示すブロック図である。以下、図２を用いて波形生成処理全体の動作概要について簡単に説明する。
【００２１】
曲データ再生部１Ａは、奏法記号付き曲データの再生処理を行う。すなわち、まず最初に曲データ再生部１Ａは奏法記号付き曲データ（つまり演奏情報）を受信する。通常の楽譜においては、そのままではＭＩＤＩデータとすることができないような強弱記号（例えば、クレッシェンドやデクレッシェンド等）、テンポ記号（例えば、アレグロやリタルダンド等）、スラー記号、テヌート記号、アクセント記号等の音楽記号が付されている。そこで、これらの音楽記号を「奏法記号」としてデータ化する。この「奏法記号」を含むＭＩＤＩ曲データが「奏法記号付き曲データ」であり、曲データ再生部１Ａはこのような奏法記号付き曲データを受信する。楽譜解釈部（プレーヤー）１Ｂでは、楽譜解釈処理を行う。具体的には、受信した奏法記号付き曲データに含まれるＭＩＤＩデータと「奏法記号」に基づいて所定の奏法指定情報（奏法パラメータとも呼ぶ）を生成し、時刻情報とともに奏法合成部（アーティキュレーター）１Ｃに出力する。奏法合成部（アーティキュレーター）１Ｃは楽譜解釈部（プレーヤー）１Ｂにより生成された奏法指定に応じたパケットストリーム及び該ストリームに関してのベクタパラメータを生成し、波形合成部１Ｄに供給する。パケットストリームとして波形合成部１Ｄに供給されるデータは、ベクタＩＤ、時刻情報等である。波形合成部１Ｄはパケットストリームに応じて波形データベース９からベクタデータを取り出し、該ベクタデータをベクタパラメータに応じて変形し、変形したベクタデータに基づき波形を合成して楽音波形を生成する。この波形合成部１Ｄでは、パケットストリームに応じた順に時間的に相前後するベクタデータに基づく波形の位相合わせを行いながら波形合成を実行する。これについての詳細は、後述する。波形出力部８では、波形合成部１Ｄで生成された楽音波形を出力する。
【００２２】
次に、上述の図２に示した波形合成部１Ｄにおいて実行する楽音波形生成動作について、図３を用いて説明する。図３は、波形合成部１Ｄにおける楽音波形生成動作を説明するための概念図である。
奏法合成部（アーティキュレーター）１Ｃは、パケットキューバッファ２１〜２５に対してパケットを入力する。すなわち、奏法合成部（アーティキュレーター）１Ｃで作成された各成分要素毎のパケットストリームは、波形合成部１Ｄにおける各成分要素毎に対応して設けられる所定のパケットキューバッファ２１〜２５に順次にパケット入力（つまり、パケット単位での入力）される。また、奏法合成部（アーティキュレーター）１Ｃはパケットキューバッファ２１〜２５に対してパケットを入力する他にも、ストリーム管理（つまり、個々のベクタデータの生成や削除あるいはベクタデータ間の接続に関する管理）や再生コントロール（つまり、所望の波形生成の実行あるいは生成された所望の波形の再生／停止などのコントロール）などの各種の制御を波形合成部１Ｄに対して実行する。奏法合成部（アーティキュレーター）１Ｃから入力されたパケットはパケットキューバッファ２１〜２５に蓄積され、順次所定の順番でベクタローダ２０に送られる。ベクタローダ２０ではパケット内のベクタＩＤを参照して、当該ベクタＩＤに対応するオリジナルのベクタデータを波形データベース９から読み出す。
【００２３】
ベクタローダ２０により波形データベース９から読出されたベクタデータは各成分要素毎に対応して設けられた所定のベクタデコーダ３１〜３５へと送られて、各ベクタデコーダ３１〜３５は各成分要素毎に波形を生成する。各成分要素毎に対応するベクタデコーダ３１〜３５は、パケット内のベクタＩＤ、時刻情報等を読み出して所望の波形の時系列的生成を行う。例えば、調和Ampベクタデコーダ３１は調和成分の振幅（Amplitude）要素のエンベロープ波形を、調和Pitchベクタデコーダ３２は調和成分のピッチ（Pitch）要素のエンベロープ波形を、調和Timbreベクタデコーダ３３は調和成分の波形（Timbre）要素の波形を、調和外Ampベクタデコーダ３４は調和外成分の振幅（Amplitude）要素のエンベロープ波形を、調和外Timbreベクタデコーダ３５は調和外成分の波形（Timbre）要素のエンベロープ波形をそれぞれ生成する。
【００２４】
ベクタローダ２０から調和Timbreベクタデコーダ３３に読み出したベクタデータを送る際に、位相差計算部３９ではパケットストリームに基づく波形の接続順に相前後する各波形の位相差を適宜に計算し、相関が最大となる位相差をパケットに書き込む位相差計算処理を行う。この位相差計算部３９及び該位相差計算部３９で実行する位相差計算処理についての詳細は後述することから、ここでの説明を省略する。調和Timbreベクタデコーダ３３は、調和Ampベクタデコーダ３１及び調和Pitchベクタデコーダ３２で生成された調和成分の振幅要素のエンベロープ波形と調和成分のピッチ要素のエンベロープ波形を付与した調和波形を生成してミキサ３８へ出力する。すなわち、調和成分の振幅要素のエンベロープ波形をゲイン制御（つまり、Gain入力）するためのベクタ制御命令として、調和成分のピッチ要素のエンベロープ波形を入力ノートナンバに従うベクタデータの読み出し位置制御（つまり、Speed入力）を行うためのベクタ制御命令として、各々入力した調和Timbreベクタデコーダ３３は、これらのベクタ制御命令に従って波形データベース９から読み出した調和波形ベクタデータを変形して調和波形を生成する。
【００２５】
他方、調和波形と異なり調和外波形はピッチに同期して波形を合成しないために、調和外Timbreベクタデコーダ３５には入力ノート（例えばノートナンバ）に従うベクタデータの読み出し位置制御（つまり、Speed入力）を行うためのベクタ制御命令を入力しない。また、調和外波形（詳しくは調和外Timbreベクタデータ）はもともとノイズ成分であり、調和波形（詳しくは調和Timbreベクタデータ）のように時間的に相前後する波形同士で互いに位相を合わせて波形接続を行う必要がないことから、位相差計算部３９を設けて位相差計算処理を行わなくてよい。すなわち、調和外波形は調和波形と比べて明白な周期性を持たず、こうした調和外波形を接続する際に適切な位相差を算出することは非常に困難であるために、調和外波形側には特に位相差計算部３９を設けて位相差計算処理を行わなくてよい。調和外Timbreベクタデコーダ３５は、調和外Ampベクタデコーダ３４で生成された調和外成分の振幅要素のエンベロープ波形を付与した調和外波形を生成してミキサ３８へ出力する。すなわち、調和外Timbreベクタデコーダ３５に対しては、調和外成分の振幅要素のエンベロープ波形のみをゲイン制御（つまり、Gain入力）を行うためのベクタ制御命令として入力する。こうして、波形データベース９から読み出した調和外波形ベクタデータを変形して調和外波形を生成する。こうして生成された調和波形及び調和外波形をミキサ３８で合成することによって、１音に関しての楽音波形を生成する。すなわち、ミキサ３８は、調和Timbreベクタデコーダ３３で生成された調和波形と調和外Timbreベクタデコーダ３５で生成した調和外波形とを混合して楽音波形を生成する。
【００２６】
上述したように、調和波形の生成時において、波形データベース９から読み出した調和Timbreベクタデータをベクタローダ２０から調和Timbreベクタデコーダ３３に送る際には、位相差計算部３９により最適な位相差（つまり、相関が最大となる位相差）をパケットに書き込む処理が行われる。すなわち、位相差計算部３９はパケットストリームに基づく波形順に相前後する各波形の相互相関を適宜に計算し、該計算結果のうち相関が最大となる位相差をパケットに書き込む位相差計算処理を実行する。そこで、この位相差計算処理を実行する位相差計算部３９についての詳細を、図４を用いて説明する。図４は、位相差計算部３９の一実施例を示すブロック図である。
【００２７】
ベクタローダ２０にはパケットキューバッファ２３に蓄積されたパケットストリームを構成する個々のパケットが時刻情報に応じた時間順に順次に入力され、ベクタローダ２０は各パケット内のベクタＩＤに基づいて、波形データベース９から当該ベクタＩＤに対応する調和Timbreベクタデータを読み出す。そして、読み出した調和Timbreベクタデータをパケットと共に位相差計算部３９へと送る。この際に、パケットストリームにおいて時間的に先行するパケットをSourceパケットとして、パケットストリームにおいてSourceパケットに時間的に後続する直後のパケットをDestinationパケットとして、位相差計算部３９に送る。位相差計算部３９では、入力されたSourceパケットとDestinationパケットとに基づき位相差計算を行う。すなわち、Sourceパケットに応じて読み出された先行する調和TimbreベクタデータとDestinationパケットに応じて読み出された後続する調和Timbreベクタデータとの間で相互相関を計算し、該計算結果に基づき最適な位相差を特定する。
【００２８】
上記位相差計算部３９では、最適な位相差を特定するために所定の相互相関（Cross  Correlation）関数を用いる。すなわち、先行する調和Timbreベクタデータと後続する調和Timbreベクタデータとの相互相関を計算し、前後する波形の間において最も相関の大きい位相差を求める。ここで、こうした相互相関関数Ｒ（τ）の一実施例を数１に示す。ただし、ここで示す数１において、先行する調和Timbreベクタデータを波形データＦ1（ｘ）、後続する調和Timbreベクタデータを波形データＦ2（ｘ）と表す。また、上記波形データＦ1（ｘ）の周期長をＴ1、波形データＦ2（ｘ）の周期長をＴ2と表す。
【００２９】
【数１】
0003829732.tif 000002
上記数１において、記号τは位相差を示す値であり、０〜１までの値（小数含む）である。すなわち、記号τが「０」である場合には位相差「０」、つまり位相差がなく、記号τが「１」である場合には位相差「２π」を示す。記号ｘは各波形データの読み出し位置（例えば波形読み出しアドレス）に関する位相を示す値であり、０〜１までの値（小数含む）である。すなわち、記号ｘが０である場合には位相０つまり波形データの先頭位置を示し、記号ｘが１である場合には位相２πつまり波形データの最終位置を示す。波形データＦ1（ｘ）と波形データＦ2（ｘ）は各々周期長がＴ1、Ｔ2であるので、記号ｘにＴ1もしくはＴ2を乗算することで上記波形位置が得られる。すなわち、波形データＦ1（ｘ）の周期長と波形データＦ2（ｘ）の周期長をそろえた上で相互相関を計算する。なお、上記数１におけるｐ（ｘ＋τ）は、ｘ＋τの小数点以下のみを取得する関数である。
【００３０】
上記位相計算部３９による位相差計算の結果たる最適な位相差は、Destinationパケットにデータとして書き込まれる。そして、位相差計算部３９は、SourceパケットとDestinationパケットとを調和Timbreベクタデコーダ３３へ送る。調和Timbreベクタデコーダ３３ではSourceパケットとDestinationパケットとを受け取ると、Destinationパケットに書き込まれた最適な位相差に基づき、先行する調和Timbreベクタデータと後続する調和Timbreベクタデータとの間で位相合わせを行いながらクロスフェード合成を行うことにより、滑らかに両波形を接続して合成する。このように、ベクタローダ２０から調和Timbreベクタデコーダ３３に調和Timbreベクタデータを送る際に、位相差計算部３９ではパケットストリームに基づく波形の接続順に相前後する各波形の最適な位相差をそれぞれ適宜に求め、該求めた最適な位相差に基づいて接続する波形間における位相調整を行いながら波形を接続していく。以上の動作が連続的になされる。つまり、Destinationパケットを調和Timbreベクタデコーダ３３に送った次の瞬間にSourceパケットとなり、次々と後続のパケットとの間で位相合わせが行われる。
【００３１】
ここで、具体的な波形接続処理について、図５及び図６を用いて説明する。ここでは先行するLoop１波形（ベクタデータ）に、後続するLoop２波形（ベクタデータ）を接続する場合を例として説明する。図５は、位相差計算部３９による位相差計算処理について説明するための概念図である。図５（ａ）は、波形接続対象の波形を示す概念図である。図５（ｂ）は図５（ａ）に示した波形を用いての位相差計算について説明するための概念図であり、上記数１に示した所定の相互相関関数Ｒ（τ）に従ってLoop１波形とLoop２波形との相互相関を計算した結果得られる相互相関グラフを示すものである。ただし、ここでは先行するLoop１波形と後続するLoop２波形とが共に１波ループである場合を例にして、位相差計算部３９による位相差計算処理について説明する。
【００３２】
図５（ａ）から理解できるように、先行するLoop１波形及び後続するLoop２波形は共に１周期分のループ波形（すなわち、１波ループ）であるが、Loop１波形とLoop２波形とでは波形形状と位相、さらに周期長が異なって波形データベース９に記憶されている波形である。こうした波形をそのままクロスフェード合成すると波形同士の相殺が生じて合成波形に劣化が起こるので、接続した波形はノイズや音質劣化が著しく現れたものとなってしまう。そこで、上述したように、位相差計算部３９では、先行する接続元のLoop１波形に対する後続する接続先のLoop２波形が決定した時点からLoop２波形が実際に波形合成に使用されるまでの間において、接続元のLoop１波形に対する接続先のLoop２波形の最適な位相差を上記数１に示した所定の相互相関関数Ｒ（τ）に従って求める。すなわち、Loop１波形とLoop２波形の相互相関を計算し、その相関が最大（ピーク）となる位相差を最適な位相差とする。Loop１波形とLoop２波形のそれぞれの周期長をそろえるために正規化しながら、上記数１に従いLoop１波形とLoop２波形１周期分の相互相関を計算する。ここでいう正規化とは、位相を基準に相互相関を計算することを言う。つまり、個々の周期長Ｔ1、Ｔ2を用いず、位相ｘ及び位相差τを用いて計算する。図５（ｂ）から理解できるように、上記数１では、Loop１波形に対してLoop２波形の位相をずらしながら、１周期分の相互相関を計算する。その結果、図５（ｂ）最下段に示すような相互相関波形が得られる。この相互相関波形の最大ピーク値（最大値）は位相差「α」の位置に現れている。そこで、この位相差「α」をLoop１波形とLoop２波形との間における最適な位相差とする。
【００３３】
上述のようにして求められた最適な位相差は、Loop１波形とLoop２波形とをクロスフェード合成により波形接続する際に用いられるデータであることは既に述べた。そこで、波形を接続するために行われるクロスフェード合成について、図６を用いて説明する。図６は、ループ波形同士を接続する際のクロスフェード合成について説明するための概念図である。この図６では、先行する接続元としてのLoop１波形と、後続する接続先としてのLoop２波形とを接続する際のクロスフェード合成について説明する。なお、Loop１波形とLoop２波形との関係では、Loop１波形は先行する接続元であるが、図６の例では、Loop１波形に先行する図示しないループ波形が存在しており、この図示しないループ波形に後続する波形として用いられたLoop１波形は、次の波形切り替えに際してはLoop２波形に先行する波形として用いられる。すなわち、時刻ｔ０は上記図示しないループ波形の切り替わりタイミング、時刻ｔ１はLoop１波形の切り替わりタイミング、時刻ｔ２はLoop２波形の切り替わりタイミングであり、各時刻ｔ０、ｔ１、ｔ２で各ループ波形が順次切り替わって順に波形接続されるものを例に示した。なお、図６の例では、或るループ波形（例えばLoop１）の切り替わりタイミング（ｔ１）の到来前（それに先行するループ波形の切り替わりタイミングｔ０の時）にフェードインが始まり、切り替わりタイミング（ｔ１）でフェードインが完了し、それから直ちにフェードアウトするような特性のクロスフェードについて図示してある。
【００３４】
図６（ａ）は、波形データベースから読み出したLoop１波形とLoop２波形との開始点を時刻情報に従って所定の時間軸上に配置した場合の模式図である。図６（ｂ）はLoop１波形の振幅制御特性を表すエンベロープを示す概念図、図６（ｃ）はLoop１波形を所定のピッチにあわせて読み出す際の波形読み出し位置の時間的位置変化（位相、つまりアドレス進行をLoop１波形の周期長で割ったもの）を示す概念図、図６（ｄ）はLoop２波形の振幅制御特性を表すエンベロープを示す概念図、図６（ｅ）はLoop２波形を所定のピッチ（Loop１波形を読み出すピッチと同じピッチ）にあわせて読み出す際の波形読み出し位置の時間的位置変化（位相、つまりアドレス進行をLoop２波形の周期長で割ったもの）を示す概念図である。図６（ｃ）及び図６（ｅ）に示す位相の角度は、読み出しピッチに相当する。なお、図６の各図に示すｔ０〜ｔ２までの記号は所定の時刻を表す記号であり、説明を理解しやすくするために、Loop１波形やLoop２波形の読み出し開始タイミングなどに便宜的に付したものである。例えば、図６（ｂ）に示したLoop１波形の振幅制御特性つまりクロスフェード特性によれば、Loop１波形の生成開始タイミング（フェードイン開始時刻）が時刻ｔ０、フェードイン終了時刻すなわち波形切り替わりタイミングが時刻ｔ１、そして、ただちにフェードアウト開始し、生成終了タイミング（フェードアウト終了時刻）が時刻ｔ２である。同様に、図６（ｄ）に示したLoop２波形の振幅制御特性つまりクロスフェード特性によれば、Loop２波形の生成開始タイミング（フェードイン開始時刻）が時刻ｔ１、フェードイン終了時刻すなわち波形切り替わりタイミングが時刻ｔ２である。
【００３５】
図６（ａ）から理解できるように、Loop１波形及びLoop２波形はそれぞれパケット内に含まれる時刻情報に基づき所定の時間軸上に配置される。この実施例においては、Loop１波形の切り替わりタイミングが時刻ｔ１の位置に、Loop２波形の切り替わりタイミングが時刻ｔ２の位置にそれぞれ配置されている。上述したように、先行するLoop１波形と後続するLoop２波形との繋ぎ目（すなわち、時刻ｔ１から時刻ｔ２までの区間）においてはそれぞれのループ波形をクロスフェード合成することによってこれらの波形を接続する。この際に、適切な位相調整を行うことによって、先行するLoop１波形と後続するLoop２波形両者の位相が合うように制御する。Loop１波形は図示しないループ波形に後続する波形として用いられたLoop１波形を、そのままLoop２波形に先行する波形として切り替えて用いたものである。そのため、Loop１波形は図示しない先行するループ波形とのクロスフェード読み出しのために時刻ｔ０から繰り返し読出しされている読み出しをそのまま時刻ｔ１においても続ける（図６（ｃ）参照）。すなわち、時刻ｔ１〜時刻ｔ２までのクロスフェード区間において、先行するLoop波形１のループ読み出しを時刻ｔ０〜時刻ｔ１までのクロスフェード区間におけるループ読み出しに引き続いて行う。時刻ｔ１〜時刻ｔ２までのクロスフェード区間においては、Loop１波形のループ読み出しと同時に、後続するLoop波形２のループ読み出しを実行する。そして、先行するLoop１波形のループ再生波形をフェードアウト（立下り）特性のエンベロープで振幅制御（図６（ｂ）参照）し、後続するLoop２波形のループ再生波形をフェードイン（立ち上がり）特性のエンベロープで振幅制御（図６（ｄ）参照）し、両者を加算合成して、１つのループ再生波形を合成する。
【００３６】
このクロスフェード合成されたループ再生波形がLoop１波形からLoop２波形へと滑らかに変化するためには、Loop１波形とLoop２波形とを加算合成するクロスフェード区間において、それぞれの位相が合っていることが必要である。この位相合わせを行うために、Loop２波形の読み出しを開始する際には、上述した位相差計算処理により求めた位相差を利用する。すなわち、時刻ｔ１時点におけるLoop１波形の位相に対して位相計算部３９により求められた最適な位相差を加算し、該加算した位相からLoop２波形の読み出しを開始する。図６（ｅ）から理解できるように、この実施例においては、時刻ｔ１に到達した時点で、Loop１波形とLoop２波形とのクロスフェード読み出しが開始されるため、Loop２波形の読み出しが時刻t１から開始される。この時、時刻ｔ１におけるLoop１波形の位相と同じ位相でLoop２波形の読み出しを行う必要がある。図６（ｃ）では、時刻ｔ１におけるLoop１波形の位相が「β」になった場合を示している。これに応じて、Loop２波形は時刻ｔ１で位相「β−α（α：求めた位相差）」から読み出しスタートさせる。すなわち、接続先波形であるLoop２波形の読み出しを開始する時刻ｔ１において、接続元波形であるLoop１波形のその時点での位相に、さらに、上記位相差「α」を減算した位置に対応する読み出し位置からLoop２波形の読み出しを開始し、その位相差「α」を保ったままクロスフェードを行う。このような位相調整を行うことによって、時刻ｔ１以降、Loop１波形とLoop２波形とが位相が合った状態で繰り返し読み出される。こうした位相調整を行うことにより、クロスフェード合成による相前後する２波形の接続時における波形の打ち消しを防ぎ、滑らかに波形接続を行うようになっている。
【００３７】
上述したように、最適な位相差を求める際には所定の相互相関関数を用いるのであるが、こうした最適な（つまり、相関が最大な）位相差を求める際に上記数１を用いて演算すると相互相関の計算に非常に時間がかかる。こうしたことは、ユーザ操作に応じてリアルタイムに波形を生成する場合に特に問題となる。そこで、リアルタイムに波形を生成する場合（例えば、リアルタイム演奏時）においては上記数１を用いずに、次に示すような簡略化方法により相互相関の計算を簡略化して行うようにするとよい。以下、こうした相互相関計算の簡略化方法について説明する。
【００３８】
まず、接続元としての先行するループ波形及び接続先としての後続するループ波形のそれぞれについて、波形の振幅が「０」となる位置を跨いで振幅値の符号（正又は負）が変わるゼロクロス点、正の振幅値の内で最も大きい振幅値をとる正ピーク点、負の振幅値の内で最も大きい振幅値をとる負ピーク点などの各点を求める。次に、以下に示すような各点の位相差を最適な位相差の候補と仮定し、それぞれの点の位相差における相関値を求める。例えば、ゼロクロス点の内のいずれかの点同士が重なる位相差（τ0）における相関値、又は正ピーク点同士が重なる位相差（τ1）における相関値、若しくは負ピーク点同士が重なる位相差（τ2）における相関値など、代表的なこれら位相差の候補についてのみ相関値を求め、その中で最も大きな相関値をもつ位相差を選択することで、全ての位相差にわたって相関値の計算をする場合に比べて計算量を大きく削減できる。
さらに、相互相関の計算時における波形同士の乗算を該波形の周期内全ての点において計算するのではなく（上記数１参照）、所定の複数点でのみ、つまり間引いた波形（ダウンサンプリング波形）で相互相関を計算する。こうした場合における相互相関関数Ｒ´（τ）の一例を示すと、例えば数２に示すような式になる。この数２においては先行する調和Timbreベクタデータをサンプリング波形データＦ1（ｘ）、後続する調和Timbreベクタデータをサンプリング波形データＦ2（ｘ）と表す。また、上記サンプリング波形データＦ1（ｘ）の周期長をＴ1、サンプリング波形データＦ2（ｘ）の周期長をＴ2と表す。
【００３９】
【数２】
0003829732.tif 000003
上記数２において、Ｍは波形を間引いた後のサンプル数（一例として１６点）を表わす。記号τは位相差を示す値であり、０〜１までの値（小数含む）である。すなわち、記号τが「０」である場合には位相差「０」、つまり位相差がなく、記号τが「１」である場合には位相差「２π」を示す。式n/（M-1）は各波形データの読み出し位置（例えば波形読み出しアドレス）に関する位相を示す値であり、０〜１までの値（小数含む）である。すなわち、式n/（M-1）が０である場合には位相０つまり波形データの先頭位置を示し、式n/（M-1）が１である場合には位相２πつまり波形データの最終位置を示す。波形データＦ1（ｘ）と波形データＦ2（ｘ）は各々周期長がＴ1、Ｔ2であるので、式n/（M-1）にＴ1もしくはＴ2を乗算することで上記波形位置が得られる。すなわち、波形データＦ1（ｘ）の周期長と波形データＦ2（ｘ）の周期長をそろえた上で相互相関を計算する。なお、上記数２におけるｐ（n/（M-1）＋τ）は、n/（M-1）＋τの小数点以下のみを取得する関数である。また、上記数２において、各サンプリング波形データＦ1（ｘ）及びＦ2（ｘ）は波形を補間しながら読み出すか、もしくは小数点アドレスを切り捨てながら読み出すようにするとよい。上記数２で表わされる相互相関Ｒ´（τ）を用いて代表的な位相差の候補（τ0、τ1、τ2など）についてのみ相関値を求めると、図５（ｂ）に示したような実線で表される連続的な相互関数波形が、飛び飛びの部分的な点で表される離散的な相互関数値として現れることになる。代表的な位相差の候補についてこの数２を用いると、相前後する２波形間における全ての位相差についての相互相関の計算を上記した数１を用いた場合に比べて非常に速く行うことができるようになり、ユーザの操作に応じて波形を生成する際にユーザの操作に大きく遅れることなくリアルタイムに波形を生成できることから非常に有効である。
【００４０】
次に、位相差計算部３９の他の実施例について、図を用いていくつか説明する。まず、図７に示した実施例について説明する。図７は位相差計算部３９の他の実施例を示すブロック図であり、この実施例ではキャッシュ検索を行うことにより位相差を決定する位相差計算部３９について説明する。
【００４１】
位相差計算部３９は、ベクタローダ２０から各パケット内のベクタＩＤに基づいて波形データベース９から読み出した当該ベクタＩＤに対応する調和Timbreベクタデータとパケットとをベクタローダ２０から受け取る。この実施例においては、パケットストリームにおいて時間的に先行するSourceパケットのベクタＩＤ「１５」に対応する調和Timbreベクタデータ、パケットストリームにおいてSourceパケットに時間的に後続するDestinationパケットのベクタＩＤ「２３」に対応する調和Timbreベクタデータを、位相差計算部３９は受け取るものを例として示した。位相差計算部３９ではSourceパケットとDestinationパケットとを受け取ると、受け取ったSourceパケットとDestinationパケット内のベクタＩＤに基づきキャッシュ検索３９Ａを実行する。このキャッシュ検索３９Ａにおいては、ベクタＩＤの組み合わせに基づいてキャッシュメモリ３９Ｄを検索する。キャッシュメモリ３９Ｄは、ベクタＩＤの組み合わせ毎の位相差を記憶するメモリである。この実施例に示すキャッシュメモリ３９Ｄにおいて、先行する接続元の波形がベクタＩＤ「１５」、後続する接続先の波形がベクタＩＤ「２３」である場合には位相差は「0.5326」という値が既に格納されており、先行する接続元の波形がベクタＩＤ「５８」、後続する接続先の波形がベクタＩＤ「６４」である場合には位相差は「0.8123」という値が既に格納されている。キャッシュ検索３９Ａの結果、キャッシュメモリ３９Ｄに該当するベクタＩＤの組み合わせが格納されている場合には（図中「有り」表示参照）、該キャッシュメモリ３９Ｄに格納されている位相差を最適位相差としてDestinationパケットに書き込み、ベクタデコーダ３３に送る。
【００４２】
一方、キャッシュ検索３９Ａの結果、キャッシュメモリ３９Ｄに該当するベクタＩＤの組み合わせがない場合には（図中「無し」表示参照）、入力されたSourceパケットとDestinationパケットとに基づき波形評価３９Ｂを行う。すなわち、SourceパケットのベクタＩＤ「１５」に対応する先行する調和TimbreベクタデータとDestinationパケットのベクタＩＤ「２３」に対応する後続する調和Timbreベクタデータとの間で所定の評価関数（例えば、上記数１あるいは数２などに示したような相互相関関数など）に従って複数の位相差に対する評価値を計算する。そして、該計算結果を最適値検索３９Ｃで行い、該最適値検索結果（例えば、最大値など）を最適位相差としてDestinationパケットに書き込み、ベクトルデコーダ３３に送る。また、最適値検索３９Ｃを行った場合、キャッシュ制御部３９Ｅは波形評価３９Ｂを行ったベクタＩＤの組み合わせと共に最適値検索３９Ｃの結果（つまり、最適位相差）をキャッシュメモリ３９Ｄに格納する。こうすると、同じベクタＩＤの組み合わせについて再度最適位相差を算出しなければならないような場合において、再度波形評価３９Ｂを行うことなく、キャッシュ検索３９Ａによりキャッシュメモリ３９Ｄから位相差を直接読み出すだけで最適位相差を簡単に算出することができるようになることから、最適位相差の算出に係る処理時間を大幅に短縮することができ非常に便利である。
【００４３】
上述の図７に示した実施例では、波形評価３９Ｂを行ったベクタＩＤの組み合わせと共に最適値検索３９Ｃの結果（つまり、最適位相差）をキャッシュメモリ３９Ｄに登録し、同じベクタＩＤの組み合わせについて再度最適位相差を算出しなければならないような場合に、キャッシュメモリ３９Ｄから位相差を直接読み出すようにしたがこれに限らず、encode時に波形接続する可能性の有る組み合わせについて予め位相差計算を行っておき、その結果を全て既計算値メモリに記憶しておく方法がある。こうした場合の一実施例を示すと、図８のようになる。図８は位相差計算部３９の他の実施例を示すブロック図であり、この実施例では既計算値メモリの検索を行うことにより位相差を決定する位相差計算部３９について説明する。この実施例においても、パケットストリームにおいて時間的に先行するSourceパケットのベクタＩＤ「１５」に対応する調和Timbreベクタデータ、パケットストリームにおいてSourceパケットに時間的に後続するDestinationパケットのベクタＩＤ「２３」に対応する調和Timbreベクタデータを、位相差計算部３９がベクタローダ２０から受け取るものを例として示した。
【００４４】
位相差計算部３９はSourceパケットとDestinationパケットとを受け取ると、受け取ったSourceパケットとDestinationパケット内のベクタＩＤに基づき既計算値検索３９Ｆを実行する。この既計算値検索３９Ｆにおいては、ベクタＩＤの組み合わせに基づいて該計算値メモリ３９Ｉを検索する。該計算値メモリ３９Ｉは、ベクタＩＤの組み合わせ毎の位相差を記憶するメモリである。この該計算値メモリ３９Ｉには、例えばベクタＩＤ「１５」とベクタＩＤ「２３」の組み合わせ時の位相差は「0.5326」、ベクタＩＤ「５８」とベクタＩＤ「６４」の組み合わせ時の位相差「0.8123」などのようにして、波形接続の際に組み合わせ対象となりうる各ベクタＩＤの組み合わせ毎に予め位相差が定義されている。既計算値検索３９Ｆの結果、既計算値メモリ３９Ｉに該当するベクタＩＤの組み合わせがある場合には（図中「有り」表示参照）、該既計算値メモリ３９Ｉに定義されている位相差を最適位相差としてDestinationパケットに書き込み、ベクタデコーダ３３に送る。一方、既計算値検索３９Ｆの結果、既計算値メモリ３９Ｉに該当するベクタＩＤの組み合わせがない場合には（図中「無し」表示参照）、入力されたSourceパケットとDestinationパケットとに基づいて波形評価３９Ｇを行う。そして、該計算結果を最適値検索３９Ｈし、該最適値検索結果（例えば、最大値など）を最適位相差としてDestinationパケットに書き込み、ベクトルデコーダ３３に送る。図８から理解できるように、この既計算値メモリ３９Ｉを利用する場合は上述の図７に示したキャッシュメモリ３９Ｄを利用する場合と異なり、最適値検索３９Ｈを行った場合に既計算値メモリ３９Ｉに対し、波形評価３９Ｇを行ったベクタＩＤの組み合わせと共に最適値検索３９Ｈの結果（つまり、最適位相差）を登録することを行わなくてよい。
【００４５】
さらに、位相差計算部３９の他の実施例として、クロスフェード接続する波形の組み合わせが決まる前に、波形接続対象候補の全ての波形との間で最適位相差を計算する方法について、図９を用いて説明する。図９は、クロスフェード接続する波形の組み合わせが決まる前に、波形接続対象となる可能性がある全ての波形との間で最適位相差を計算し記憶しておく方法について説明するための概念図である。
【００４６】
ベクタローダ２０には、パケットキューバッファ２３に蓄積されたパケットストリームを構成する個々のパケットが時刻情報に応じた時間順に順次に１つずつ入力される。また、ベクタローダ２０は入力されたパケット内のベクタＩＤに対応する接続可能性先ＩＤリストをアーティキュレーター１Ｃ（図３参照）から受け取る。この接続可能性先ＩＤリストはプレーヤー１Ｂ（図２参照）での楽譜解釈に従うNOTE、音の強弱、その他の奏法パラメータから予想される接続先波形をベクタＩＤにより指し示す接続先リストであり、アーティキュレーター１Ｃにより作成されるものである。この実施例では、予想される接続先波形としてベクタＩＤ「１３」「４５」「３８」などが接続可能性先ＩＤリストに規定されている。そして、ベクタローダ２０は入力されたパケット内のベクタＩＤに基づき、波形データベース９から当該ベクタＩＤに対応する調和Timbreベクタデータを読み出し、該読み出した調和Timbreベクタデータを位相差計算部３９に送る。
【００４７】
位相差計算部３９では、入力されたパケットと接続可能性先ＩＤリストとに基づき、該読み出した調和Timbreベクタデータに接続する可能性のある全ての波形（つまり調和Timbreベクタデータ）との間で位相差計算を行う。すなわち、ベクタローダ２０は、接続可能性先ＩＤリストに規定されているベクタＩＤに基づき、波形データベース９から当該ベクタＩＤに対応する全ての調和Timbreベクタデータを順次に読み出し、該読み出した調和Timbreベクタデータを位相差計算部３９に送る。位相差計算部３９では、入力されたパケット内のベクタＩＤに基づき読み出された調和Timbreベクタデータと接続可能性先ＩＤリストに規定されているベクタＩＤに基づき読み出された調和Timbreベクタデータとの間で相互相関を計算し、該計算結果に基づき最適な位相差を特定する。つまり、入力されたパケットと接続可能性先ＩＤリストとに基づき読み出された調和Timbreベクタデータ間で相互相関を計算し、最も相関の大きい位相差を最適な位相差として特定する。この最適な位相差を特定するために用いる所定の相互相関関数は、上記数１あるいは数２などに示した関数を用いればよい。上記位相計算部３９による位相差計算の結果たる最適な位相差は、予測ベクタバッファ１００にベクタＩＤ、調和Timbreベクタデータと共に書き込まれ、予測ベクタパケットとして記憶される。
【００４８】
ベクタローダ２０は、パケットキュー２３内のストリームに基づき予測ベクタバッファ１００から該当する予測ベクタパケットを取り出して、該取り出した予測ベクタパケットを調和Timbreベクタデコーダ３３へ送る。調和Timbreベクタデコーダ３３ではSourceパケットと予測ベクタパケットとを受け取ると、予測ベクタパケットに書き込まれている最適な位相差に基づき、先行するSourceパケットの調和Timbreベクタデータと後続する予測ベクタパケットの調和Timbreベクタデータとの間で位相合わせを行いながらクロスフェード合成を行うことにより、滑らかに両波形を接続して合成する。
【００４９】
なお、上述した各実施例においては位相合わせの方法として、所定の相互相関関数（数１あるいは数２参照）に基づいて先行する接続元の波形と後続する接続先の波形との間で相互相関を計算し、該相互相関値が最大となる位相差を最適な位相差として求めるようにしたがこれに限らない。こうした位相合わせの方法は所定の相互相関関数を用いる他にも、波形同士の距離（つまり、差分の絶対値の周期的総和）を計算し、該計算値が一番小さくなるような位相差を最適な位相差として求めるようにしてもよい。この場合においても、取り出した所定の複数点、例えば波形の振幅が「０」となる位置を跨いで振幅値の符号（正又は負）が変わるゼロクロス点、正の振幅値の内で最も大きい振幅値をとる正ピーク点、負の振幅値の内で最も大きい振幅値をとる負ピーク点などの各点において波形同士の距離を求めるとよい。こうした場合における波形同士の距離を計算するための関数Ｋ（τ）の一例を示すと、例えば数３に示すような式になる。この実施例に示す数３においては、先行する調和Timbreベクタデータをサンプリング波形データＦ1（ｘ）、後続する調和Timbreベクタデータをサンプリング波形データＦ2（ｘ）と表す。また、上記サンプリング波形データＦ1（ｘ）の周期長をＴ1、サンプリング波形データＦ2（ｘ）の周期長をＴ2と表す。
【００５０】
【数３】
0003829732.tif 000004
上記数３において、Ｍは波形を間引いた後のサンプル数（一例として１６点）を表わす。記号τは位相差を示す値であり、０〜１までの値（小数含む）である。すなわち、記号τが「０」である場合には位相差「０」、つまり位相差がなく、記号τが「１」である場合には位相差「２π」を示す。式n/（M-1）は各波形データの読み出し位置（例えば波形読み出しアドレス）に関する位相を示す値であり、０〜１までの値（小数含む）である。すなわち、式n/（M-1）が０である場合には位相０つまり波形データの先頭位置を示し、式n/（M-1）が１である場合には位相２πつまり波形データの最終位置を示す。波形データＦ1（ｘ）と波形データＦ2（ｘ）は各々周期長がＴ1、Ｔ2であるので、式n/（M-1）にＴ1もしくはＴ2を乗算することで上記波形位置が得られる。すなわち、波形データＦ1（ｘ）の周期長と波形データＦ2（ｘ）の周期長をそろえた上で相互相関を計算する。なお、上記数３におけるｐ（n/（M-1）＋τ）は、n/（M-1）＋τの小数点以下のみを取得する関数である。また、上記数３においても、各サンプリング波形データＦ1（ｘ）及びＦ2（ｘ）は波形を補間しながら読み出すか、もしくは小数点アドレスを切り捨てながら読み出すようにするとよい。
【００５１】
上述した各実施例では１波ループ波形（つまり、１周期分のループ波形）同士で波形を接続する場合について説明したがこれに限らず、１波ループ波形同士以外で波形を接続する場合に適用してよいことは言うまでもない。例えば１波ループ波形と２波ループ波形、あるいは２波ループ波形と３波ループ波形などの周期長の異なる複数周期からなるループ波形を用いて波形を接続する場合においても適用可能である。ただし、こうした１波ループ波形同士以外で波形を接続する場合において、２波形間の位相差を上記数１、数２、数３のいずれかを用いて計算する際には、各波形の最初の１波のみについて周期長をそろえて計算を行うようにする。例えば、１波ループ波形と３波ループ波形との間で位相差を算出する場合には、３波ループ波形における３周期分の長さを３分の１した長さを１波ループ波形の周期長にそろえるようにする。すなわち、３波ループ波形における３分の１の波形のみを位相差の計算に用い、残りの３分の２の波形は位相差の計算に用いない。あるいは、２波形の各周期長の最小公倍数からなる長いループ波形を新たに生成し（つまり、生成される２個の長いループ波形の各周期数は同一である）、該生成した長いループ波形全体に渡って位相差の計算を行うようにしてもよい。このように、複数周期からなるループ波形間の位相差を上記数１、数２、数３のいずれかを用いて計算することができることは明らかであることから、上述した各実施例を複数周期からなるループ波形を用いて波形を接続する場合にも適用することができることは言うまでもない。
【００５２】
なお、上述した各実施例においては、入力波形を成分毎（調和成分、調和外成分）及び要素毎（波形、ピッチ、振幅）に分け、そのうちの調和波形（つまり調和Timbreベクタデータ）におけるモジュールやユニットをループ波形で接続することで一連の楽音波形を生成するＡＥＭ（Articulation Element Modeling）音源に適用したものについて説明したが、こうしたＡＥＭ音源に適用することに限らないことは言うまでもない。
なお、上述した各実施例においては、時間的に相前後するループ波形をクロスフェード合成により波形接続するものを例に説明したがこれに限らず、例えば時間的に相前後する周期波形のワンショット波形同士の最適位相差を求め、該最適位相差に基づきクロスフェード合成するようにしてもよい。
【００５３】
なお、上述したような波形生成装置を電子楽器に用いた場合、電子楽器は鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。また、その場合に、曲データ再生部１０１Ａ、楽譜解釈部１０１Ｂ、奏法合成部１０１Ｃ、波形合成部１０１Ｄ等を１つの電子楽器本体内に内蔵したものに限らず、それぞれが別々に構成され、ＭＩＤＩインタフェースや各種ネットワーク等の通信手段を用いて各構成部を接続するように構成されたものにも同様に適用できることはいうまでもない。また、パソコンとアプリケーションソフトウェアという構成であってもよく、この場合処理プログラムを磁気ディスク、光ディスクあるいは半導体メモリ等の記憶メディアから供給したり、ネットワークを介して供給するものであってもよい。さらに、自動演奏ピアノのような自動演奏装置などにも適用してよい。
【００５４】
【発明の効果】
本発明によれば、接続する波形の組み合わせが決定した時点で各波形間の位相差を求め、該求めた位相差に基づき相前後する波形の位相を合わせながらクロスフェード合成するようにしたことによって、各波形間における位相の違いによる合成波形の劣化のない、高品質な波形を生成することができるようになる。また、事前に複数のループ波形の組み合わせに応じて位相差を計算して記憶しておき、記憶されている限られた組み合わせの中からループ波形を選択して使用する場合と比較して、そのような制限がなくなるので、ループ波形の組み合わせの自由度が高くなる、多くの波形の組み合わせに応じた位相差を記憶しておく必要がなくデータ量を減らせる、波形を追加した際に関連する波形との位相差を計算して記憶しておく必要がないので波形を容易に追加することが可能となる、という優れた効果を奏する。
また、基準位相がはっきりしない、波形が異なる同士の接続においても、より最適な位相差で波形を接続することができるので、高品質な波形を生成することができる。さらに、実際に接続する波形の組み合わせで最適な位相差をその都度求めるようにすることで、サイン波などの中間的な基準波形を用いた場合に比べても、より最適な位相差で波形を接続することができ、したがって高品質な波形を生成することができるようになる。
【図面の簡単な説明】
【図１】  この発明に係る波形生成装置のハードウエア構成例を示すブロック図である。
【図２】  波形生成処理を専用ハードウエア装置の形態で構成した場合の一実施例を示すブロック図である。
【図３】  波形合成部における楽音波形生成動作を説明するための概念図である。
【図４】  位相差計算部の一実施例を示すブロック図である。
【図５】  位相差計算処理について説明するための概念図であり、図５（ａ）は波形接続対象の波形を示す概念図、図５（ｂ）は位相差計算について説明するための概念図である。
【図６】  クロスフェード合成について説明するための概念図であり、図６（ａ）はLoop１波形とLoop２波形との開始点を時間軸上に配置した場合の模式図、図６（ｂ）はLoop１波形の振幅制御特性を表すエンベロープを示す概念図、図６（ｃ）はLoop１波形の読み出し位置の時間的位置変化を示す概念図、図６（ｄ）はLoop２波形の振幅制御特性を表すエンベロープを示す概念図、図６（ｅ）はLoop２波形の読み出し位置の時間的位置変化を示す概念図である。
【図７】  位相差計算部の他の実施例を示すブロック図であり、キャッシュ検索を行うことにより位相差を決定するものである。
【図８】  位相差計算部の他の実施例を示すブロック図であり、既計算値メモリの検索を行うことにより位相差を決定するものである。
【図９】  クロスフェード接続する波形の組み合わせが決まる前に、波形接続対象となる可能性がある全ての波形との間で最適位相差を計算し記憶しておく方法について説明するための概念図である。
【符号の説明】
１…ＣＰＵ、２…リードオンリメモリ（ＲＯＭ）、３…ランダムアクセスメモリ（ＲＡＭ）、４…パネルスイッチ、５…パネル表示器、６…ドライブ、６Ａ…外部記憶メディア、７…波形取込部、８…波形出力部、８Ａ…サウンドシステム、９…ハードディスク、１０…通信インタフェース、ＢＬ…バスライン、１Ａ…曲データ再生部、１Ｂ…楽譜解釈部（プレーヤー）、１Ｃ…奏法合成部（アーティキュレーター）、１Ｄ…波形合成部、２０…ベクタローダ、２１（２２〜２５）…パケットキューバッファ、３１…調和Ampベクタデコーダ、３２…調和Pitchベクタデコーダ、３３…調和Timbreベクタデコーダ、３４…調和外Ampベクタデコーダ、３５…調和外Timbreベクタデコーダ、３８…ミキサ、３９…位相差計算部、１００…予測ベクタバッファ
【図１】
0003829732.tif 000005
【図２】
0003829732.tif 000006
【図３】
0003829732.tif 000007
【図４】
0003829732.tif 000008
【図５】
0003829732.tif 000009
【図６】
0003829732.tif 000010
【図７】
0003829732.tif 000011
【図８】
0003829732.tif 000012
【図９】
0003829732.tif 000013