(57)【特許請求の範囲】
【請求項１】
原波形の周波数分析を時間的に相互にずれた複数の区間について行い、各区間毎に、当該区間に属する原波形の複数の周波数成分の位相と振幅を求め、この各区間毎に求めた原波形の複数の周波数成分の位相と振幅から、前記原波形の複数の周波数成分の位相と振幅の時間経過に伴う軌跡を求める周波数分析処理と、
前記原波形のループ部の開始位置および終了位置を決定するループ部決定処理と、
前記原波形の前記複数の周波数成分の少なくとも一部の周波数成分について、当該周波数成分の前記ループ部の終了位置における位相と前記ループ部の開始位置における位相の位相差が２ｎπ（ｎは整数）となり、かつ、前記ループ部の終了位置の振幅と前記ループ部の開始位置の振幅が一致して、前記ループ部の終了位置以前の当該周波数成分の時間経過に伴う位相および振幅の軌跡と前記ループ部の開始位置以降の当該周波数成分の時間経過に伴う位相および振幅の軌跡とが不連続を生じることなく接続されるように、前記周波数分析処理により求めた前記ループ部の当該周波数成分の位相および振幅の軌跡を調整するループ部スムージング処理と、
前記ループ部スムージング処理により調整された前記ループ部の各周波数成分の位相および振幅の軌跡に基づいて正弦波合成を行って前記ループ部の波形データを合成するループ波形合成処理と
を具備することを特徴とする波形データ生成方法。
【請求項２】
求められた各区間における前記原波形の各周波数成分に基づいて正弦波合成を行い、合成された正弦波合成波形を原波形から差し引くことにより残差波形を求める残差波形生成処理をさらに具備し、
前記ループ部決定処理は、前記残差波形のレベルが所定の閾値以下である区間内で前記ループ部の開始位置および終了位置を決定することを特徴とする請求項１に記載の波形データ生成方法。
【請求項３】
前記ループ部決定処理は、
前記原波形上の第１ポイントを決定する第１決定処理と、
前記第１ポイントに対し、前記原波形の各周波数成分のうちの少なくとも基本波の周波数成分の位相差が２ｎπ（ｎは整数）となる複数の第２ポイントを決定する第２決定処理と、
前記第１ポイントと前記複数の第２ポイントの各々との間の前記原波形の各周波数成分の位相差の２ｎπ（ｎは整数）との差に基づいて、前記複数の第２ポイントから１つを選択する選択処理と
を具備することを特徴とする請求項１に記載の波形データ生成方法。
【請求項４】
原波形の周波数分析を時間的に相互にずれた複数の区間について行い、各区間毎に、当該区間に属する原波形の複数の周波数成分の位相と振幅を求め、この各区間毎に求めた原波形の複数の周波数成分の位相と振幅から、前記原波形の複数の周波数成分の位相と振幅の時間経過に伴う軌跡を求める周波数分析処理と、
前記原波形のループ部を決定するループ部決定処理と、
前記原波形のうちアタック部を決定するアタック部決定処理と、
前記アタック部の後端を後端とする接続部の前端を指定する接続部指定処理と、
前記原波形のアタック部の各周波数成分と前記原波形におけるループ部の各周波数成分とを対応付ける対応付け処理と、
前記対応付け処理により対応付けられた前記アタック部の各周波数成分と前記ループ部の各周波数成分について、前記アタック部の終了位置における位相と前記ループ部の開始位置における位相の位相差が２ｎπ（ｎは整数）となり、かつ、前記アタック部の終了位置の振幅と前記ループ部の開始位置の振幅が一致して、前記原波形のアタック部の各周波数成分の時間経過に伴う位相および振幅の軌跡と前記原波形のループ部の開始位置以降の当該周波数成分に対応付けられた周波数成分の時間経過に伴う位相および振幅の軌跡とが不連続を生じることなく接続されるように、前記周波数分析処理により求めた前記原波形の接続部における各周波数成分の位相および振幅の軌跡を調整するアタック部スムージング処理と、
前記アタック部スムージング処理により調整された前記アタック部の各周波数成分の位相および振幅の軌跡に基づいて正弦波合成を行い、前記アタック波形の波形データを合成するアタック波形合成処理と
を具備することを特徴とする波形データ生成方法。
【請求項５】
前記周波数分析により得られた複数の区間の各々における前記原波形の各周波数成分に基づいて正弦波合成を行い、合成された正弦波合成波形を原波形から差し引くことにより残差波形を求める残差波形生成処理を具備し、
前記アタック波形合成処理では、前記正弦波合成により合成された正弦波合成波形に前記残差波形を加算して前記アタック波形の波形データを合成することを特徴とする請求項４に記載の波形データ生成方法。
【請求項６】
さらに前記アタック部の各周波数成分のうち前記対応付け処理によって前記原波形のループ部の各周波数成分のいずれとも対応付けられなかった周波数成分の振幅が前記接続部において前記ループ部に至るまでの間に次第に減少して消滅するように、当該周波数成分の振幅を調整する処理を含むことを特徴とする請求項４に記載の波形データ生成方法。
【請求項７】
合成した波形データをコンピュータ読み取り可能な記録媒体に書き込む処理をさらに具備することを特徴とする請求項１〜６のいずれか１の請求項に記載の波形データ生成方法。
【請求項８】
原波形の周波数分析を時間的に相互にずれた複数の区間について行い、各区間毎に、当該区間に属する原波形の複数の周波数成分の位相と振幅を求め、この各区間毎に求めた原波形の複数の周波数成分の位相と振幅から、前記原波形の複数の周波数成分の位相と振幅の時間経過に伴う軌跡を求める周波数分析処理と、
前記原波形のループ部の開始位置および終了位置を決定するループ部決定処理と、
前記原波形の前記複数の周波数成分の少なくとも一部の周波数成分について、当該周波数成分の前記ループ部の終了位置における位相と前記ループ部の開始位置における位相の位相差が２ｎπ（ｎは整数）となり、かつ、前記ループ部の終了位置の振幅と前記ループ部の開始位置の振幅が一致して、前記ループ部の終了位置以前の当該周波数成分の時間経過に伴う位相および振幅の軌跡と前記ループ部の開始位置以降の当該周波数成分の時間経過に伴う位相および振幅の軌跡とが不連続を生じることなく接続されるように、前記周波数分析処理により求めた前記ループ部の当該周波数成分の位相および振幅の軌跡を調整するループ部スムージング処理と、
前記ループ部スムージング処理により調整された前記ループ部の各周波数成分の位相および振幅の軌跡に基づいて正弦波合成を行って前記ループ部の波形データを合成するループ波形合成処理と
をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項９】
波形データを記憶する記憶手段と、
原波形の波形データを外部から取り込んで前記記憶手段に格納する原波形入力手段と、
前記記憶手段に記憶された原波形の波形データに基づき、ループ部の波形データを合成する波形データ生成処理を実行する演算手段とを具備し、
該波形データ生成処理が、
原波形の周波数分析を時間的に相互にずれた複数の区間について行い、各区間毎に、当該区間に属する原波形の複数の周波数成分の位相と振幅を求め、この各区間毎に求めた原波形の複数の周波数成分の位相と振幅から、前記原波形の複数の周波数成分の位相と振幅の時間経過に伴う軌跡を求める周波数分析処理と、
前記原波形のループ部の開始位置および終了位置を決定するループ部決定処理と、
前記原波形の前記複数の周波数成分の少なくとも一部の周波数成分について、当該周波数成分の前記ループ部の終了位置における位相と前記ループ部の開始位置における位相の位相差が２ｎπ（ｎは整数）となり、かつ、前記ループ部の終了位置の振幅と前記ループ部の開始位置の振幅が一致して、前記ループ部の終了位置以前の当該周波数成分の時間経過に伴う位相および振幅の軌跡と前記ループ部の開始位置以降の当該周波数成分の時間経過に伴う位相および振幅の軌跡とが不連続を生じることなく接続されるように、前記周波数分析処理により求めた前記ループ部の当該周波数成分の位相および振幅の軌跡を調整するループ部スムージング処理と、
前記ループ部スムージング処理により調整された前記ループ部の各周波数成分の位相および振幅の軌跡に基づいて正弦波合成を行って前記ループ部の波形データを合成するループ波形合成処理と
を含むことを特徴とする波形データ生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、いわゆる波形メモリ音源のメモリに格納する楽音波形の波形データを生成する波形データ生成方法、波形データ生成プログラムを記録した記録媒体および波形データ生成装置に関する。
【０００２】
【従来の技術】
メモリに予め記憶された楽音波形のサンプルデータ（波形データ）を読み出すことにより楽音信号を形成する波形メモリ音源が知られている。この種の波形メモリ音源における波形データの格納方法として、楽音波形の全波形のサンプルデータを格納しておくことも考えられる。しかし、メモリの記憶容量の制約があるため、この方法は得策とは言えない。そこで、多くの波形メモリ音源は、楽音波形全体のサンプルデータをメモリに格納する代りに、楽音波形から切り出したアタック波形とループ波形の波形データをメモリに格納し、これらの波形データをメモリから読み出すことにより楽音信号を形成するという構成を採っている。さらに詳述すると次の通りである。
【０００３】
一般的に楽音波形は、その先頭部分（発音開始時点近傍の部分）においては波形が目まぐるしく変化するが、それ以降の区間は波形の変化がほぼ定常的になる。そこで、楽音波形の先頭部分をアタック波形として切り出し、この先頭部分以降の定常波形とみなしてよい区間、すなわち、ほぼ同一の波形の繰り返しとみなしてよい区間から繰り返しの一単位となる波形をループ波形として切り出し、これらのアタック波形とループ波形の波形データを音源波形データとして波形メモリ音源のメモリに格納するのである。そして、かかる波形メモリ音源に対して楽音形成指示が与えられた場合、波形メモリ音源では、まず、指示された音高に対応した速度でアタック波形の音源波形データがメモリから読み出される。そして、これに続き、同速度でループ波形の開始位置（以下、ループスタートという）から終了位置（以下、ループエンドという）までの音源波形データが繰り返し読み出される。このようにして読み出されるアタック波形とループ波形の音源波形データにより、元の楽音波形（以下、原波形という）とほぼ同じ波形を有し、かつ、指定された音高に対応した楽音信号が形成されるのである。
【０００４】
さて、以上説明した波形メモリ音源による楽音信号形成を可能ならしむためには、音源波形データを予め生成し、波形メモリ音源のメモリに格納する作業が必要である。そして、この音源波形データ生成作業の中では、原波形からアタック波形およびループ波形を切り出す作業が特に困難なものとされている。何故ならば、ループ波形の切り出し方が不適当であると、そのループ波形をメモリから繰り返し読み出して楽音信号を形成する場合に、そのループ波形の読み出し位置がループエンドからループスタートに戻る際にノイズが生じるからである。また、同様の問題が、アタック波形からループ波形への移行の際にも生じる。そこで、従来は、このようなノイズを生じさせないよう以下のような方法が採られていた。
【０００５】
＜方法１＞
波形データ上で滑らかに接続できそうな２点を捜してループスタート、ループエンドとする。この場合の２点の捜し方としては、互いの近傍の相互相関関数が高い点を捜す方法、あるいは値および傾きが同じとなる点を捜す方法等がある。このような２点をループスタートおよびループエンドとすることにより、ループ波形を連続して再生した場合に、先行するループ波形のループエンド近傍の波形と後続のループ波形のループスタート近傍の波形が不連続を生じることなく接続される。
＜方法２＞
アタック波形からループ波形へ、ループエンドからループスタートへ、滑らかに再生波形が移行するように、波形の移行点の近傍部分の音源波形データに予めクロスフェードをかけておく。
＜方法３＞
原波形において定常波形とみなしてよい区間にＦＦＴ（高速フーリエ変換）を施し、このＦＦＴによって求められた原波形の各周波数成分のみからアタック波形以降の部分を作成する。すなわち、アタック波形以降の部分については、ループ波形の繰り返し読み出しという方法ではなく、上記各周波数成分に対応した正弦波を発生して合成する、という方法により生成する。
【０００６】
【発明が解決しようとする課題】
ところで、上述した従来技術のうち、方法１は、連続再生されるループ波形が一見滑らかに接続されているように見えても、ループ波形を構成する各周波数成分に着目すると、その中には連続再生される各ループ波形の接続点において不連続が生じているものがあり、ループ波形と原波形とで音色が異なったものとなる場合があるという問題があった。また、方法２は、原波形の一部にクロスフェードを施して音源波形データを生成するため、かかる音源波形データと原波形とでは音色が異なったものとなるという問題があった。また、方法３の場合、原波形のアタック波形以降の一部の区間の各周波数成分を用いてアタック部以降の部分を合成することから、元々の原波形が有していた楽音としての個性を有する波形を合成することができないという問題があった。すなわち、原波形のアタック波形以降の部分は、完全に定常的な変化をしている訳ではなく、かかる部分の各周波数成分の周波数、位相および振幅は微妙な時間変動を呈しており、この時間変動は、原波形の楽音としての個性を醸し出す重要な要因となっている。しかるに上記方法３によれば、アタック波形以降の部分のうちほんの短い区間の周波数成分に基づいてアタック波形以降の部分を合成するため、かかる個性が合成過程において捨象されてしまうのである。
【０００７】
この発明は以上説明した事情に鑑みてなされたものであり、原波形の有していた個性を有し、かつ、再生の際にノイズを生じさせない音源波形データを原波形から生成することができる波形データ生成方法、波形データ生成プログラムを記録した記録媒体および波形データ生成装置を提供することを目的としている。
【０００８】
【課題を解決するための手段】
この発明は、原波形の周波数分析を時間的に相互にずれた複数の区間について行い、各区間毎に、当該区間に属する原波形の周波数成分を求める周波数分析処理と、前記原波形のループ部の開始位置および終了位置を決定するループ部決定処理と、前記原波形の少なくとも一部の周波数成分について、前記ループ部の終了位置以前の当該周波数成分の時間経過に伴う位相および振幅の軌跡と前記ループ部の開始位置以降の当該周波数成分の時間経過に伴う位相および振幅の軌跡とが不連続を生じることなく接続されるように、前記ループ部の当該周波数成分の位相および振幅の軌跡を調整するループ部スムージング処理と、
前記ループ部スムージング処理により調整された前記ループ部の各周波数成分の位相および振幅の軌跡に基づいて正弦波合成を行って前記ループ部の波形データを合成するループ波形合成処理とを具備することを特徴とする波形データ生成方法を提供する。
好ましい態様において、波形データ生成方法は、求められた各区間における前記原波形の各周波数成分に基づいて正弦波合成を行い、合成された正弦波合成波形を原波形から差し引くことにより残差波形を求める残差波形生成処理をさらに具備し、前記ループ部決定処理は、前記残差波形のレベルに基づき前記ループ部の開始位置および終了位置を決定する。
他の好ましい態様におい、前記ループ部決定処理は、前記原波形上の第１ポイントを決定する第１決定処理と、前記第１ポイントに対し、前記原波形の各周波数成分のうちの少なくとも基本波の周波数成分の位相差が２ｎπ（ｎは整数）に近い複数の第２ポイントを決定する第２決定処理と、前記第１ポイントと前記複数の第２ポイントの各々との間の前記原波形の各周波数成分の位相差の２ｎπ（ｎは整数）との差に基づいて、前記複数の第２ポイントから１つを選択する選択処理とを具備する。
また、この発明は、原波形の周波数分析を時間的に相互にずれた複数の区間について行い、各区間毎に、当該区間に属する原波形の周波数成分を求める周波数分析処理と、前記原波形のループ部を決定するループ部決定処理と、前記原波形のうちアタック部を決定するアタック部決定処理と、前記アタック部の後端を後端とする接続部の前端を指定する接続部指定処理と、前記原波形のアタック部の各周波数成分と前記原波形におけるループ部の各周波数成分とを対応付ける対応付け処理と、前記原波形のアタック部の各周波数成分の時間経過に伴う位相および振幅の軌跡と前記原波形のループ部の開始位置以降の当該周波数成分に対応付けられた周波数成分の時間経過に伴う位相および振幅の軌跡とが不連続を生じることなく接続されるように、前記原波形の接続部における各周波数成分の位相および振幅の軌跡を調整するアタック部スムージング処理と、前記アタック部スムージング処理により調整された前記アタック部の各周波数成分の位相および振幅の軌跡に基づいて正弦波合成を行い、前記アタック波形の波形データを合成するアタック波形合成処理とを具備することを特徴とする波形データ生成方法を提供する。
他の好ましい態様において、波形データ生成方法は、前記周波数分析により得られた複数の区間の各々における前記原波形の各周波数成分に基づいて正弦波合成を行い、合成された正弦波合成波形を原波形から差し引くことにより残差波形を求める残差波形生成処理をさらに具備し、前記アタック波形合成処理では、前記正弦波合成により合成された正弦波合成波形に前記残差波形を加算して前記アタック波形の波形データを合成する。
他の好ましい態様においては、波形データ生成方法は、さらに前記アタック部の各周波数成分のうち前記対応付け処理によって前記原波形のループ部の各周波数成分のいずれとも対応付けられなかった周波数成分の振幅が前記接続部において前記ループ部に至るまでの間に次第に減少して消滅するように、当該周波数成分の振幅を調整する処理を含む。
また、好ましい態様において、波形データ生成方法は、合成した波形データをコンピュータ読み取り可能な記録媒体に書き込む処理をさらに具備する。
また、この発明は、原波形の周波数分析を時間的に相互にずれた複数の区間について行い、各区間毎に、当該区間に属する原波形の周波数成分を求める周波数分析処理と、前記原波形のループ部の開始位置および終了位置を決定するループ部決定処理と、前記原波形の少なくとも一部の周波数成分について、前記ループ部の終了位置以前の当該周波数成分の時間経過に伴う位相および振幅の軌跡と前記ループ部の開始位置以降の当該周波数成分の時間経過に伴う位相および振幅の軌跡とが不連続を生じることなく接続されるように、前記ループ部の当該周波数成分の位相および振幅の軌跡を調整するループ部スムージング処理と、前記ループ部スムージング処理により調整された前記ループ部の各周波数成分の位相および振幅の軌跡に基づいて正弦波合成を行って前記ループ部の波形データを合成するループ波形合成処理とをコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。
さらにこの発明は、波形データを記憶する記憶手段と、原波形の波形データを外部から取り込んで前記記憶手段に格納する原波形入力手段と、前記記憶手段に記憶された原波形の波形データに基づき、ループ部の波形データを合成する波形データ生成処理を実行する演算手段とを具備し、該波形データ生成処理が、原波形の周波数分析を時間的に相互にずれた複数の区間について行い、各区間毎に、当該区間に属する原波形の周波数成分を求める周波数分析処理と、前記原波形のループ部の開始位置および終了位置を決定するループ部決定処理と、前記原波形の少なくとも一部の周波数成分について、前記ループ部の終了位置以前の当該周波数成分の時間経過に伴う位相および振幅の軌跡と前記ループ部の開始位置以降の当該周波数成分の時間経過に伴う位相および振幅の軌跡とが不連続を生じることなく接続されるように、前記ループ部の当該周波数成分の位相および振幅の軌跡を調整するループ部スムージング処理と、前記ループ部スムージング処理により調整された前記ループ部の各周波数成分の位相および振幅の軌跡に基づいて正弦波合成を行って前記ループ部の波形データを合成するループ波形合成処理とを含むことを特徴とする波形データ生成装置を提供する。
【００２１】
【発明の実施の形態】
以下、本発明を更に理解しやすくするため、実施の形態について説明する。
かかる実施の形態は、本発明の一態様を示すものであり、この発明を限定するものではなく、本発明の範囲で任意に変更可能である。
【００２２】
図１はこの発明の一実施形態である波形データ生成装置の構成を示すブロック図である。この図において、１は外部装置との間でＭＩＤＩイベントの授受を行うためのＭＩＤＩインターフェース、２は各種の操作スイッチが配備されたパネルスイッチ部、３は処理対象である原波形等の表示を行うパネル表示器である。また、４はこの波形データ生成装置全体の制御を行うＣＰＵ、５はＣＰＵ４が実行する制御プログラムおよび各種の制御情報を記憶したＲＯＭ、６は各種制御情報を記憶するためのＲＡＭである。ここで、ＲＯＭ５に記憶された制御プログラムには、この波形データ生成装置の全般的な制御を行うためのプログラムの他、外部より入力される原波形の波形データからアタック波形およびループ波形を切り出し、音源波形データを生成するための音源波形データ生成プログラムと、この波形データ生成装置を波形メモリ音源として機能させるための制御プログラムとが含まれている。また、７はＣＤ（コンパクトディスク）、ＨＤ（ハードディスク）等の記録媒体、８はこの記録媒体に対するアクセスを行うためのドライブである。
【００２３】
９は外部から入力される原波形の波形データおよび本装置内で生成された音源波形データを記憶するための波形メモリ、１０はこの波形メモリ８に対するアクセスを管理するアクセス管理部である。１１は書込回路であり、外部から入力される原波形の波形データあるいはドライブ８によって記録媒体７から読み出された原波形の波形データを受け取り、アクセス管理部１０を介して波形メモリ９に書き込む手段である。１２は音源であり、アクセス管理部１０を介して読み出される波形データを用いて楽音信号を形成する手段である。１３はこの音源１２によって形成された楽音信号を楽音として出力するサウンドシステムである。１４は以上説明した各要素間の情報の授受のために使用されるバスラインである。
【００２４】
図２〜図７は本実施形態の動作を示すフローチャートである。以下、これらのフローチャートを参照しつつ、本実施形態の動作について説明する。この波形データ生成装置に電源が投入されると、ＣＰＵ４は図２にフローを示すメインルーチンの実行を開始し、最初にＲＡＭ６内の各種制御情報の初期化を行う（ステップＳ１）。この初期設定が終了すると、ＣＰＵ４は、各種の制御動作の起動要因となるイベントの有無のチェックを行う（ステップＳ２およびＳ３）。そして、何等かの制御動作を起動する要因がある場合には当該要因が何であるかを判定し（ステップＳ４）、ＭＩＤＩ処理（ステップＳ５）、スイッチ処理（ステップＳ６）またはその他の処理（ステップＳ７）のうち要因に対応したものを実行した後、再び要因チェック（ステップＳ２）に戻り、同様の処理を繰り返す。以上がこの波形データ生成装置の全般的な動作である。
【００２５】
次に本実施形態に係る波形データ生成装置の動作について説明する。パネルスイッチ部２のスイッチ操作により、音源波形データの生成を要求するコマンドが入力されると、ＣＰＵ４は、図２のメインフローにおける「スイッチ処理」（ステップＳ６）として、図３にフローを示す音源波形データ生成処理をＲＯＭ５内の音源波形データ生成プログラムに従って実行する。なお、以下説明するステップＳ１０１〜Ｓ１０６の各処理は、連続して自動的に実行するようにしてもよいし、あるいは、個別的にスイッチによって指示されたときに実行するようにしてもよい。
【００２６】
まず、ＣＰＵ４は、波形データ準備処理を実行する（ステップＳ１０１）。この波形データ準備処理では、ＣＰＵ４による制御の下、外部から入力される原波形の波形データあるいはドライブ８によって記録媒体７から読み出された原波形の波形データが書込回路１１に引き渡され、この書込回路１１によりアクセス管理部１０を介して波形メモリ９に書き込まれる。
【００２７】
次にＣＰＵ４は、ステップＳ１０１において波形メモリ９に書き込まれた波形データの分析処理を実行する（ステップＳ１０２）。図４はこの波形データの分析処理の詳細な処理内容を示すフローチャートである。この波形データの分析処理の前半のステップＳ２０１〜Ｓ２０５では、原波形から一定区間（以下、フレームという）ずつ波形データを取り出し、これに時間窓を乗じてＦＦＴを施すという処理を繰り返す。図８はこの処理が行われる様子を示すものである。この図８において、ＷＤは原波形、ＴＷ，ＴＷ，…は原波形の各フレーム内の波形データに乗じられる時間窓を例示したものである。ステップＳ２０１〜Ｓ２０５の詳細な処理内容は次の通りである。
【００２８】
まず、ＣＰＵ４は、原波形の最初のフレームを分析対象として指定する（ステップＳ２０１）。次にＣＰＵ４は、分析対象となっているフレームの波形データに対し、時間窓を乗じるウィンドウ処理を行う（ステップＳ２０２）。なお、本実施形態では、１フレームの長さが原波形の基本波の８周期相当の時間長に設定されている。従って、ステップＳ２０２では、この１フレームの時間長に対応した時間窓が原波形の波形データに乗じられる。
【００２９】
次にＣＰＵ４は、上記時間窓の乗じられた１フレーム分の波形データのＦＦＴ処理を実行し、ＦＦＴ処理の結果をＲＡＭ６に保存する（ステップＳ２０３）。そして、分析（ウィンドウ処理およびＦＦＴ処理）未了の波形データが未だ残っているか否かを判断する（ステップＳ２０４）。そして、分析未了の波形データが残っている場合には、現在のフレームよりも１／８フレーム周期だけ位相の進んだフレームを次のフレームとして指定し、ステップＳ２０２に戻る。
【００３０】
以後、１／８フレーム周期ずつ分析対象をシフトしつつ原波形の分析処理（ステップＳ２０２、Ｓ２０３）が繰り返され、原波形の最後のフレームまでの分析処理が終了すると、ステップＳ２０４からステップＳ２０５へ進む。
【００３１】
以上の処理により、ＲＡＭ６内に、各フレーム毎に当該フレーム内の原波形（厳密には時間窓が乗じられた原波形）のＦＦＴ結果（各フレームのスペクトル）が保存される。
【００３２】
次にステップＳ２０５に進むと、ＲＡＭ６に保存された各フレームのＦＦＴ結果において周波数成分の大きさがピークとなる点を求め、さらに各ピーク点の周波数、位相、振幅を求める。そして、各ピーク点の周波数、位相、振幅について前後のフレームで比較し、上手く接続できるピーク点同士の対応付けを行う。この対応付けされたピーク点同士を複数フレームにわたって接続してゆくことにより、原波形の主要な周波数成分（基本波および主要な倍音成分）の、最初のフラームから最後のフレームまで移り行く間の、周波数、位相および振幅の軌跡が求められる。そして、このようにして求められた主要な周波数成分の周波数、位相および振幅の軌跡を、分析データとしてＲＡＭ６に保存する。
【００３３】
次にステップＳ２０６に進むと、ＲＡＭ６に保存された分析データを用いて合成データを生成する。図９はこの合成データの作成処理および後述する残波形データの作成処理（ステップＳ２０７）をハードウェア的に示したものである。既に説明したように、分析データは、最初のフレームから最後のフレームに至るまでの、原波形の主要な周波数成分の周波数、位相および振幅の軌跡を表している。この原波形の主要な周波数成分の周波数、位相および振幅の軌跡を用いて、基本波、２次倍音、３次倍音、…といった原波形の主要な周波数成分の波形（正弦波）を合成し、これを加算することにより正弦波合成波形を生成する。そして、この正弦波合成波形のサンプルデータである正弦波合成波形データをＲＡＭ６に保存する。
【００３４】
次にステップＳ２０７に進むと、波形メモリ９内の原波形の波形データから上記正弦波合成波形データを引き算し、この結果得られる残波形のサンプルデータを残波形データとしてＲＡＭ６に保存する。図１０はこの場合の残波形の例を示したものである。この残波形は、正弦波によって合成することができなかった原波形の成分であり、ノイズや周波数が急激に変化する楽音のアタック部の成分等によって構成されていると考えられる。
以上が波形データの分析処理の詳細である。
【００３５】
図３において、波形データの分析処理（ステップＳ１０２）が終了すると、ＣＰＵ４はループポイント決定処理を実行する（ステップＳ１０３）。図５はこのループポイント決定処理の詳細な処理内容を示すフローチャートである。このループポイント決定処理および後述するループ波形作成処理（ステップＳ１０４）の前半部分では、原波形からループ波形を切り出す区間の両端のループポイントＬＰ１およびＬＰ２を決定する。各ループポイントの決定においては、まず、ループポイントＬＰ１を決定し、次いでこのループポイントＬＰ１を基準としてループポイントＬＰ２を相対移動させつつループポイントＬＰ１との関係で最適なループポイントＬＰ２を求めるという手順を採る。なお、ループポイントＬＰ１およびＬＰ２の時間軸上での前後関係はどのように定めても構わないが、以下の説明では、便宜上、時間軸上において前のループポイント（すなわち、ループスタートＬＰＳ）をループポイントＬＰ１、後のループポイント（すなわち、ループエンドＬＰＥ）をループポイントＬＰ２としている。
【００３６】
ループポイント決定処理では、まず、ループポイントＬＰ１の位置および上述したループポイントＬＰ２の相対移動を行うためのインデックスｎの変化範囲ｎｍｉｎ〜ｎｍａｘ（ただし、ｎｍｉｎはｎの最小値、ｎｍａｘはｎの最大値である）の指定を行う（ステップＳ３０１）。ここで、ＬＰ１、ｎｍｉｎおよびｎｍａｘの指定は、ＣＰＵ４が指定を促す適当なメッセージをパネル表示器３に表示し、使用者がこれに応答してパネルスイッチ部２を操作し、ＬＰ１、ｎｍｉｎおよびｎｍａｘを特定する情報を入力するという手順により行う。
【００３７】
次にステップＳ３０２に進むと、ＣＰＵ４はＲＡＭ６内の残波形データを参照し、ステップＳ３０１において指定されたループポイントＬＰ１と、このループポイントからｎｍａｘ相当隔たった点との間の区間内の残差（すなわち、残差波形のレベル）を所定の閾値と比較して、微小であるか否かを判断する。この判断結果が「ＮＯ」である場合にはステップＳ３０１に戻ってＬＰ１、ｎｍｉｎおよびｎｍａｘの指定をやり直し、「ＹＥＳ」である場合にはステップＳ３０３に進む。このステップＳ３０１およびＳ３０２の処理により、図１０に例示するように、残波形のレベルが十分に微小であり、原波形の各周波数成分が比較的安定していると考えられる区間内にループポイントＬＰ１およびこれを基準としたループポイントＬＰ２の相対移動範囲が設定されることとなる。
【００３８】
次にステップＳ３０３に進むと、インデックスｎをその変化範囲内の最小値ｎｍｉｎに設定する。次いでステップＳ３０４に進むと、ループポイントＬＰ１における基本波の位相を基準とし、これより位相がほぼ２ｎπ（この場合、ｎ＝ｎｍｉｎ）だけ隔たった位置を仮のループポイントＬＰ２として設定する。
【００３９】
ここで、図１１を参照し、このステップＳ３０４における処理の内容についてやや詳細に説明する。ＲＡＭ６内の分析データは、各フレーム毎の各周波数成分の周波数、位相および振幅を表すデータを含んでいる。これらのデータから各フレームにおける基本波成分の位相を表すデータを選択してフレーム順に並べてグラフ化すると、図１１（ａ）に示すように、原波形の基本波成分の位相の時間的変化を表す位相軌跡が得られる。また、この位相軌跡の各点の位相角θについてｓｉｎθを求めれば、図１１（ｂ）に示すように原波形に含まれる基本波の波形を求めることができる。
【００４０】
ステップＳ３０４における処理では、図１１（ａ）に例示する基本波の位相軌跡において、ループポイントＬＰ１における基本波の位相（図１１（ａ）の例では位相角０）を基準とし、これより位相がほぼ２ｎπ（図１１（ａ）の例では１２π）だけ隔たった点を仮のループポイントＬＰ２とするのである。これは、ループポイントＬＰ１〜ＬＰ２までの区間の原波形を繰り返し再生した場合に原波形中の基本波の位相の時間的変化に不連続が生じないようにするためである。
【００４１】
次にステップＳ３０５に進むと、ステップＳ３０４において設定した仮のループポイントＬＰ２における各倍音の位相の合成距離を算出する。ここで、合成距離について説明すると次の通りである。まず、上記ステップＳ３０５において、基本波についてはループポイントＬＰ１およびＬＰ２間の位相差を厳密に２ｎπ（ｎは整数）としない場合もある。また、原波形を構成する各倍音と基本波の周波数比は必ずしも整数比ではなく、原波形を構成する各倍音によっては、ループポイントＬＰ１およびＬＰ２間の位相差が２ｎπ（ｎは各倍音毎に異なる整数。例えばｍ倍音なら、基本波に対するｎをｍ倍した値）からずれている場合がある。合成距離は、原波形の周波数成分全体としてこの“ずれ”がどの程度であるかを表す量である。この合成距離の算出方法としては、例えば以下の各方法が考えられる。
【００４２】
＜方法１＞
各周波数成分毎に、次式により与えられるΔＤを求め、このΔＤを全倍音について累算したものを合成距離とする。
ΔＤ＝√（２（１−ｃｏｓ（φ（ＬＰ２）−φ（ＬＰ１）））
ただし、上記式において、φ（ＬＰ１）およびφ（ＬＰ２）は、各々ループポイントＬＰ１およびＬＰ２の各位置における当該周波数成分の位相角である。
【００４３】
＜方法２＞
各周波数成分について、ループポイントＬＰ１およびＬＰ２間の位相差とこの位相差に最も近い２ｎπ（ｎは整数）との差分の２乗を求め、その結果を累算したものを合成距離とする。
【００４４】
＜方法３＞
上記方法２において、各周波数成分について求めた上記差分の２乗値に重みを付けて累算し、合成距離を求める。重みは、低次倍音ほど大きな値とする。
【００４５】
以上のようにして合成距離の算出を終えると、ステップＳ３０６に進み、ｎ＝ｎｍａｘか否か、すなわち、変化範囲内の全てについてステップＳ３０４およびＳ３０５の処理を終えたか否かを判断する。この判断結果が「ＮＯ」の場合は、ｎを１だけインクリメントし（ステップＳ３０７）、ステップＳ３０４に戻って同様の処理を繰り返す。そして、変化範囲内の全てのｎについて、仮のループポイントＬＰ２の設定が行われ（ステップＳ３０４）、当該ＬＰ２における合成距離の算出（ステップＳ３０５）が行われると、ステップＳ３０６の判断結果が「ＹＥＳ」となってステップＳ３０８に進む。
【００４６】
次にステップＳ３０８に進むと、最小の合成距離が得られたｎを最適なループポイントＬＰ２に対応したインデックスＮと決定する。そして、ＬＰ１＋２Ｎπの位置が（正式な）ループポイントＬＰ２として設定される。次いでステップＳ３０９に進み、ループポイントＬＰ１と設定されたループポイントＬＰ２との間の各倍音毎の位相差の２ｎπからのずれのばらつきが充分に小さいか否か、すなわち、極端に大きなずれが生じている倍音がないか否かを判断し、この判断結果が「ＹＥＳ」の場合はループポイント決定処理を終了する。一方、ステップＳ３０９の判断結果が「ＮＯ」の場合にはパネル表示器３にエラー表示をしてループポイント決定処理を終了する。この場合、所定のコマンドをパネルスイッチ部２から入力することにより、ステップＳ３０１に戻ってループポイント決定処理を再実行することが可能である。
以上がループポイント決定処理の詳細である。
【００４７】
図３において、ループポイント決定処理（ステップＳ１０３）が終了すると、ＣＰＵ４はループ波形作成処理を実行する（ステップＳ１０４）。図６はこのループ波形作成処理の処理内容を示すフローチャートである。
【００４８】
まず、ＣＰＵ４は、何倍音まで含むループ波形を作成するかの指定を促すメッセージをパネル表示器３に表示し、使用者がパネルスイッチ部２を操作することにより指定する倍音の次数を読み込む（ステップＳ４０１）。
【００４９】
次にステップＳ４０２に進み、基本波のループポイントＬＰ１における位相角との位相差がほぼ２Ｎπとなる位置をループポイントＬＰ２として指定する。次にステップＳ４０３に進み、インデックスｍに「１」をセットする。
【００５０】
そして、ｍ倍音（ｍ＝１の場合は基本波）について、以下説明するステップＳ４０４およびＳ４０５からなるループ部スムージング処理を実行する。このループ部スムージング処理は、ループ部の終了位置（この場合、ループポイントＬＰ２）以前のｍ倍音の位相および振幅の時間的推移とループ部の開始位置（この場合、ループポイントＬＰ１）以降のｍ倍音の位相および振幅の時間的推移とが不連続を生じることなく接続されるようにループポイントＬＰ１およびＬＰ２間の各フレームのｍ倍音に対応した分析データの修正を行うものである。すなわち、このループ部スムージング処理は、ループ波形が繰り返し再生される場合における再生波形のｍ倍音の位相の時間的変化の連続性および振幅の時間的変化の連続性を担保するための処理である。
【００５１】
まず、ステップＳ４０４では、ｍ倍音の位相軌跡のスムージングを行う。ここで、図１２を参照し、このステップＳ４０４におけるスムージング処理について説明する。既に説明した通り、ループポイントＬＰ２は、基本波のループポイントＬＰ１およびＬＰ２間の位相差がほぼ２Ｎπ（Ｎは整数）となるように設定されているが、この場合の位相差は２ｎπと厳密に一致しないこともある。また、倍音の中にはループポイントＬＰ１およびＬＰ２間の位相差が２ｎπ（ｎは整数。ｍ倍音についてはｎ＝ｍ×Ｎ）からずれているものもある。そこで、このようにループポイントＬＰ１およびＬＰ２間の位相差が２ｎπからずれているｍ倍音については、図１２に破線によって示すように、ループポイントＬＰ１およびＬＰ２間の位相差を２ｎπとするための位相軌跡の修正を行うのである。これがステップＳ４０４におけるスムージング処理である。
【００５２】
このスムージング処理の具体的な方法としては、例えば、ループポイントＬＰ１およびＬＰ２間の各フレームにおけるｍ倍音の位相を表す分析データ（位相データ）をＲＡＭ６から読み出し、これらのデータから得られる位相軌跡においてループポイントＬＰ１およびＬＰ２間の位相差が２ｎπとなるように、各データに一律に適切な係数を乗じる方法（係数乗算によるスムージング）等が考えられる。係数乗算によるスムージングでは、ＬＰ１とＬＰ２の間のｍ倍音の分析データの特徴を保存したままで、該分析データをＬＰ２からＬＰ１へ滑らかに接続することができる。
【００５３】
次にステップＳ４０５に進むと、ｍ倍音の振幅軌跡のスムージングを行う。ここで、図１３を参照し、このステップＳ４０５におけるスムージング処理について説明する。上記ステップＳ４０４のスムージング処理の結果、ループポイントＬＰ２（ＬＰＥ）からループポイントＬＰ１（ＬＰＳ）への移行の際のｍ倍音についての位相変化の連続性が担保された。しかし、一般的にｍ倍音の振幅は時間的に変動しているので、図１２に示すように、ループポイントＬＰ１およびＬＰ２の各位置においてｍ倍音の振幅が異なっている場合がある。かかる場合に何等修正を行わないと、ループポイントＬＰ１およびＬＰ２間の原波形を繰り返し再生する場合において、再生位置がループポイントＬＰ２（ＬＰＥ）からループポイントＬＰ１（ＬＰＳ）へ移行する際に、再生波形の振幅に不連続が生じ、ノイズの原因となる。そこで、このようにループポイントＬＰ１およびＬＰ２の２点におけるｍ倍音の振幅に差がある場合には、図１３に破線によって示すように、これらの２点におけるｍ倍音の振幅が一致するようｍ倍音の振幅軌跡の修正を行うのである。これがステップＳ４０５におけるスムージング処理である。
【００５４】
このスムージング処理の具体的な方法としては、例えば次のような方法が考えられる。すなわち、まず、ループポイントＬＰ１およびＬＰ２間の各フレームにおけるｍ倍音の振幅を表す分析データ（振幅データ）をＲＡＭ６から読み出し、ループポイントＬＰ１に対応した振幅データとループポイントＬＰ２に対応した振幅データの差分を求める。次いで絶対値が０からこの差分に相当する値まで次第に大きくなるような正または負の補正値列を用意する。そして、この補正値列における各補正値を先頭のものから順に、ループポイントＬＰ１からＬＰ２に至るまでの区間内の各振幅データに各々加算する。このような補正を行うことにより、ｍ倍音の分析データの変化特性を保ったまま、ループポイントＬＰ２における振幅データをループポイントＬＰ１における振幅データと一致させ、振幅の変化の連続性を担保することができる。この方法を補正値加算によるスムージングと呼ぶ。
【００５５】
次にステップＳ４０６に進むと、ステップＳ４０１において指定された倍音までの全倍音についてステップＳ４０４およびＳ４０５の処理を終えたか否かを判断し、この判断結果が「ＮＯ」の場合はｍを１だけインクリメントし（ステップＳ４０７）、ステップＳ４０４に戻る。一方、ステップＳ４０６の判断結果が「ＹＥＳ」の場合はステップＳ４０８に進む。
【００５６】
次にステップＳ４０８に進むと、ループ波形の合成処理を行う。このステップＳ４０８に進んだ時点において、ループポイントＬＰ１およびＬＰ２間の各フレームに対応した分析データのうち基本波および指定された各倍音に対応した位相データおよび周波数データのスムージング処理が完了している。このステップＳ４０８の合成処理では、このスムージング処理の施されたループポイントＬＰ１およびＬＰ２間の各フレームの分析データに対し逆ＦＦＴが施され、ループポイントＬＰ１およびＬＰ２間のループ波形が合成される。
以上がループ波形作成処理の詳細である。
【００５７】
図３において、ループ波形作成処理（ステップＳ１０４）が終了すると、ＣＰＵ４はアタック波形作成処理を実行する（ステップＳ１０５）。図７はこのアタック波形作成処理の処理内容を示すフローチャートである。
【００５８】
このアタック波形作成処理では、原波形からアタック部に対応した区間内の波形を切り出し、この波形に加工を施すことにより、ループ波形との間で各周波数成分毎に位相および振幅の変化の連続性を担保できるようなアタック波形を合成する。また、加工は、アタック部として切り出した原波形の各周波数成分の位相および振幅とループ波形の各周波数成分の位相および振幅とのクロスフェードを行うという手段により行う。以下、図７に示すフローに従い、このアタック波形作成処理の詳細について説明する。
【００５９】
まず、ＣＰＵ４は、原波形においてアタック部を切り出す範囲および上述したクロスフェードを行う範囲の指定を促すメッセージをパネル表示器３に表示する。使用者は、これに応答し、パネルスイッチ部２の操作により、アタック部の範囲、クロスフェードを行う範囲の開始位置ＸＦＳおよび終了位置ＸＦＥを指定する。ここで、クロスフェードの終了位置ＸＦＥはアタック部後端のループ波形と接続される位置であり、一方、開始位置ＸＦＳは該位置ＸＦＥから所定量だけ前方のアタック部中の位置である。ＣＰＵ４は、使用者によって指定された情報を読み込む（以上、ステップＳ５０１）。
【００６０】
次にステップＳ５０２に進み、ＲＡＭ６内の分析データを参照することにより、ステップＳ５０１において指定されたアタック部の各周波数成分とループ波形の各周波数成分とを対応付ける。
【００６１】
次にステップＳ５０３に進み、アタック部およびループ波形の各周波数成分の位相の連続性が得られるようにクロスフェード範囲の終了位置ＸＦＥを調整する。すなわち、ループスタートＬＰＳにおけるループ波形の各周波数成分の位相と終了位置ＸＦＥにおける原波形における各周波数成分の位相とを各々対応する周波数成分同士で対比して位相差を各々求め、主要な周波数成分（例えば基本波）の位相差と２ｎπとのずれが許容範囲を超えている場合には、そのずれが許容範囲に収るように終了位置ＸＦＥの調整を行うのである。
【００６２】
次にステップＳ５０４に進み、クロスフェード範囲内において原波形およびループ波形の各周波数成分の位相および振幅のスムージングを行う。図１４はこの場合のｍ倍音の位相のスムージングの処理内容、図１５はｍ倍音の振幅のスムージングの処理内容を各々例示するものである。なお、この図１４および図１５に示す例では、クロスフェード範囲の開始位置ＸＦＳがアタック部の開始位置から所定時間経過した位置に設定されている。一方、クロスフェード範囲の終了位置ＸＦＥはループ波形と接続されるポイント（すなわち、ループスタートＬＰＳ）である。この図においてループスタートＬＰＳ、ループエンドＬＰＥとなっているが、これは、ループ波形作成処理で作成されたループ波形のループポイントＬＰ１、ＬＰ２にそれぞれ対応している。
【００６３】
まず、図１４を参照し、原波形およびループ波形の各周波数成分の位相のスムージング処理について説明する。図１４において、Ｌ１は原波形のアタック部のクロスフェード範囲の１つの周波数成分（例えばｍ倍音）の位相軌跡である。また、Ｌ２はこの周波数成分に対応したループ波形の周波数成分の位相軌跡である。ただし、Ｌ２の軌跡は、主要な周波数成分がループ波形に連続的につながるよう、位相軸方向に基本波の２ｎπ分シフトされた位置に表示されている（ステップＳ５０３の調整により、この接続は保証されている。）。
【００６４】
ステップＳ５０４における位相のスムージング処理においては、この図１４に例示するようにアタック部の周波数成分の位相軌跡Ｌ１とループ波形の周波数成分の位相軌跡Ｌ２とが不連続な状態となっている場合に、位相軌跡Ｌ１から位相軌跡Ｌ２に連続的に移行するように、位相軌跡Ｌ１の修正を行う。そして、本実施形態では、クロスフェード範囲において位相軌跡Ｌ１およびＬ２のクロスフェードを行うことによりこの位相のスムージングを行う。具体的には次の通りである。
【００６５】
まず、ループスタートＬＰＳおよびループエンドＬＰＥ間のループ波形の位相軌跡Ｌ２をそのまま継ぎ足すことにより、ループスタートＬＰＳ以前の時間領域まで延長された位相軌跡Ｌ２を作成する。なお、このようにして延長された位相軌跡Ｌ２がクロスフェード範囲の開始位置ＸＦＳにまで達していない場合には、位相軌跡Ｌ２を開始位置ＸＦＳに到達させるのに必要な回数だけ同様な継ぎ足しを行う。
【００６６】
次にクロスフェード範囲の開始位置ＸＦＳから終了位置ＸＦＥまでの位相軌跡Ｌ１上の各点に対し、１から０に向けて次第に減少する一連の係数Ｋ１を乗じ、一方、位相軌跡Ｌ２上の各点には０から１に向けて次第に増加する一連の係数Ｋ２を乗じ、各乗算結果を加算する。この結果、クロスフェード範囲の開始位置ＸＦＳから終了位置ＸＦＥに進むに従って位相軌跡Ｌ１から位相軌跡Ｌ２に滑らかに移行する位相軌跡（破線）の各点の位相を表すデータが得られる。この方法をクロスフェードによるスムージングと呼ぶ。
【００６７】
次に図１５を参照し、原波形およびループ波形の各周波数成分の振幅のスムージング処理について説明する。図１４において、Ｌ３は原波形のアタック部のクロスフェード範囲の１つの周波数成分（例えばｍ倍音）の振幅軌跡である。また、Ｌ４はこの周波数成分に対応したループ波形の周波数成分の振幅軌跡である。
【００６８】
ステップＳ５０４における振幅のスムージング処理においては、この図１５に例示するようにアタック部の周波数成分の振幅軌跡Ｌ３とループ波形の周波数成分の振幅軌跡Ｌ３とが不連続な状態となっている場合に、振幅軌跡Ｌ３から振幅軌跡Ｌ４に連続的に移行するように、振幅軌跡Ｌ３の修正を行う。この修正は、位相のスムージング処理の場合と同様なクロスフェード手法を用いて行う。
【００６９】
ステップＳ５０４では、以上の位相および振幅のスムージング処理がアタック部およびループ波形の各周波数成分について実行され、スムージング後の位相軌跡および振幅軌跡に対応したアタック部の波形の分析データ（各周波数成分の位相データおよび振幅データ）がＲＡＭ６に保存される。
【００７０】
次にステップＳ５０５に進むと、アタック部の波形の各周波数成分の中にループ波形の各周波数成分と対応しないものがあるか否かを判断する。この判断結果が「ＹＥＳ」である場合にはステップＳ５０６に進み、該当する周波数成分の振幅軌跡をクロスフェード範囲内においてフェードアウト（すなわち、開始位置ＸＦＳから終了位置ＸＦＥに向かうに従い、当該周波数成分の振幅を次第に減少させ、終了位置ＸＦＥでは振幅を０にする。）し、このフェードアウト後の振幅軌跡に対応した分析データをＲＡＭ６に保存する。そして、このステップＳ５０６の終了後、ステップＳ５０７に進む。一方、ステップＳ５０５の判断結果が「ＮＯ」の場合はステップ５０６を介することなくステップＳ５０７に進む。
【００７１】
次にステップＳ５０８に進むと、逆ＦＦＴによるアタック波形の合成処理を行う。このステップＳ５０８に進んだ時点において、クロスフェード範囲内の各フレームに対応した分析データのスムージング処理（クロスフェード処理）およびフェードアウト処理が完了している。このステップＳ５０８では、これらの処理を経たアタック部の波形の分析データに対し逆ＦＦＴが施され、アタック波形が合成される。
【００７２】
次にステップＳ５０９に進み、ステップＳ５０８において得られたアタック波形の波形データに対し、さらに残波形データを足し込み、正弦波合成（ステップＳ５０８）された合成波形の他、正弦波合成では合成できない残波形を含んだアタック波形の波形データを作成し、波形メモリ９に格納する。
以上がアタック波形作成処理の詳細である。
【００７３】
そして、図３において、アタック波形作成処理（ステップＳ１０５）が終了すると、ＣＰＵ４は、音源用諸データ準備処理を実行する（ステップＳ１０６）。この音源用諸データ準備処理では、楽音形成指示があった場合に波形メモリ９からアタック波形およびループ波形の波形データを読み出して楽音信号を形成する際に必要な制御パラメータを準備し、ＲＡＭ６に格納する。具体的には、上述したステップＳ１０５までの処理により合成したアタック波形のアタックスタートＡＴＳ、ループ波形のループスタートＬＰＳ、ループエンドＬＰＥに対応した各波形データの波形メモリ９内の格納位置を特定する各アドレス等、当該アタック波形およびループ波形を用いた楽音形成処理に必要な各種の制御データをＲＡＭ６内の制御データ格納エリアに格納する。そして、ステップＳ１０６の処理の終了を以て、音源波形データ生成処理を終了する。
【００７４】
以上、本実施形態に係る波形データ生成装置の本来の動作について説明したが、本実施形態に係る波形データ生成装置は、波形メモリ音源としても機能する。以下、この波形メモリ音源としての本実施形態の動作について説明する。
【００７５】
まず、ＭＩＤＩインタフェース１を介してＣＰＵ４にＭＩＤＩのノートオンイベントが入力されたとすると、ＣＰＵ４は、図２に示すメインルーチンにおけるＭＩＤＩ処理（ステップＳ５）を実行する。
【００７６】
このＭＩＤＩ処理の具体的内容は次の通りである。
（１）まず、ＣＰＵ４は、ノートオンイベントをＲＡＭ６内に設定されたバッファに格納する。
（２）次に、ＣＰＵ４は、音源１２の楽音形成チャネルの１つを当該ノートオンイベントに対応した楽音形成処理に割り当てる。
（３）次に、ＣＰＵ４は、当該ノートオンイベントに対応した楽音形成処理を行うための制御パラメータを決定し、この制御パラメータを当該楽音形成処理を行う楽音形成チャネルに対応した音源１２内のレジスタに設定する。この制御パラメータには、楽音形成処理に使用する音源波形データを指定する情報、付与する効果を制御するための情報、音量エンベロープを制御するための情報等が含まれる。ここで、楽音形成処理に使用する音源波形データを指定する情報は、パネルスイッチ部２の音色スイッチ等により設定された音色やノートオンの音高等に基づいて決定されるものであり、当該音源波形におけるアタック波形のアタックスタートＡＴＳ、ループ波形のループスタートＬＰＳ、ループエンドＬＰＥに対応した各音源波形データの波形メモリ９内の格納位置を特定する各アドレスが含まれている。
（４）次に、ＣＰＵ４は、上記楽音形成チャネルに対応した音源１２内のレジスタにノートオンフラグを設定する。このノートオンフラグの設定により、音源１２は、波形メモリ９内の該当する音源波形データを読み出して楽音信号を形成する処理を開始する。すなわち、ＣＰＵ４は、上記アタックスタートＡＴＳからループスタートＬＰＳの手前までの区間に対応した波形メモリ９内の各アドレスから音源波形データをノートオンの音高に応じた読み出し速度で読み出し、その後、ループスタートＬＰＳからループエンドＬＰＥまでの区間に対応した各アドレスから音源波形データを同速度で繰り返し読み出し、この順次読み出される音源波形データにより楽音信号を形成するのである。
【００７７】
なお、以上説明した実施形態では、正弦波合成を用いたが、同様の技術が高調波合成、部分音合成などと呼ばれる場合もある。
また、以上説明した実施形態は、種々の変形した態様で実施可能である。例えば、次の通りである。
（１）上記実施形態において、波形データ生成プログラムを記録した記録媒体はＲＯＭ５であったが、ＦＤ等の着脱可能な記録媒体に記録し、この記録媒体に記録された波形データ生成プログラムを任意のパーソナルコンピュータが読み込んで実行し得るようにしてもよい。
（２）ＦＦＴにより周波数分析を行う代わりに、ウェーブレット変換等を利用して周波数分析を行ってもよい。また、上記実施形態では、８周期の窓を１／８周期ずつずらしてＦＦＴを行うようにしたが、窓のサイズ、窓をずらす量は適宜変更してよい。
（３）上記実施形態では、ループ部の位相データのスムージング方法として係数乗算によるスムージングを、ループ部の振幅データのスムージング方法として補正値加算によるスムージングを、また、アタック部の位相および振幅のスムージング方法としてクロスフェードによるスムージングを行っている。しかし、スムージングする場所とスムージング方法の対応はこの例に限らない。例えば、ループ部の位相をクロスフェードによりスムージングしてもよい。ループ部の振幅データをスムージングした補正値は、直線的に変化する関数であったが、高次関数や正弦波関数的に変化する補正値を用いてもよい。本発明の特徴は各倍音毎にスムージングを行うことにあり、そこで用いられるスムージング方法については任意の方法を使用してよい。
（４）上記実施形態において説明した波形データ生成方法により得られた波形データをＦＤ、ＣＤ、ＲＯＭ、ＩＣカードなどの記録媒体に記録し、ユーザに頒布してもよい。この場合、ユーザは、例えば音源付きのパーソナルコンピュータ等によりＦＤやＣＤに記録された波形データを読み出し、音として再生することができる。また、上記実施形態において説明した波形データ生成方法により得られた波形データを、例えばネットワーク内のサーバコンピュータが管理するハードディスクなどの記録媒体に記録しておき、サーバコンピュータがユーザからの要求に応じ、ネットワークを介して配信するようにしてもよい。
【００７８】
【発明の効果】
以上説明したように、この発明によれば、原波形の有していた個性を有し、かつ、再生の際にノイズを生じさせない音源波形データを原波形から生成することができるという効果が得られる。
【図面の簡単な説明】
【図１】  この発明の一実施形態である波形メモリ音源の構成を示すブロック図である。
【図２】  同実施形態の動作を示すフローチャートである。
【図３】  同実施形態の動作を示すフローチャートである。
【図４】  同実施形態の動作を示すフローチャートである。
【図５】  同実施形態の動作を示すフローチャートである。
【図６】  同実施形態の動作を示すフローチャートである。
【図７】  同実施形態の動作を示すフローチャートである。
【図８】  同実施形態における原波形の周波数分析の方法を示す図である。
【図９】  同実施形態における正弦波合成波形および残波形の生成方法を示す図である。
【図１０】  同実施形態における残波形を例示する図である。
【図１１】  同実施形態におけるループポイントの決定方法を示す図である。
【図１２】  同実施形態におけるループ部のｍ倍音の位相のスムージング処理を示す図である。
【図１３】  同実施形態におけるループ部のｍ倍音の振幅のスムージング処理を示す図である。
【図１４】  同実施形態におけるアタック部とループ部との間のｍ倍音の位相のスムージング処理を示す図である。
【図１５】  同実施形態におけるアタック部とループ部との間のｍ倍音の振幅のスムージング処理を示す図である。
【符号の説明】
１……ＭＩＤＩインタフェース、２……パネルスイッチ部、
３……パネル表示器、４……ＣＰＵ（演算手段）、
５……ＲＯＭ（波形データ生成プログラムを記録した記録媒体）、
６……ＲＡＭ、
７……記録媒体、８……ドライブ、１１……書込回路、
１０……アクセス管理部（以上、原波形入力手段）、
９……波形メモリ（記憶手段）、
１２……音源、１３……サウンドシステム（以上、楽音形成手段）。
【図１】
0003659053.tif 000002
【図２】
0003659053.tif 000003
【図３】
0003659053.tif 000004
【図４】
0003659053.tif 000005
【図５】
0003659053.tif 000006
【図６】
0003659053.tif 000007
【図７】
0003659053.tif 000008
【図８】
0003659053.tif 000009
【図９】
0003659053.tif 000010
【図１０】
0003659053.tif 000011
【図１１】
0003659053.tif 000012
【図１２】
0003659053.tif 000013
【図１３】
0003659053.tif 000014
【図１４】
0003659053.tif 000015
【図１５】
0003659053.tif 000016