(57)【特許請求の範囲】
【請求項１】
第１の波形ブロックと第２の波形ブロックとを接続する波形編集方法であって、
前記第１の波形ブロックの後部と前記第２の波形ブロックの前部とが時間的に重なるように、前記第１の波形ブロックと前記第２の波形ブロックとを時間軸上に配置する配置ステップと、
前記第１の波形ブロックと前記第２の波形ブロックとの時間的に重なる部分をクロスフェード領域として複数に区分する区分ステップと、
該区分ステップにおいて区分された各区分毎に、前記第１の波形ブロックと前記第２の波形ブロックとの相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算ステップと、
該演算ステップで検出された前記クロスフェード範囲において、フェードイン関数により前記第２の波形ブロックをフェードインすると共に、フェードアウト関数により前記第１の波形ブロックをフェードアウトするクロスフェードステップとを備えるようにしたことを特徴とする波形編集方法。
【請求項２】
波形データを複数の波形ブロックに分割する波形分割ステップと、
同一の前記波形ブロックを２つ用意し、その内の一方の波形ブロックの時間軸をずらせて配置し、両波形ブロックにおいて時間軸上で重なる部分をクロスフェード領域として複数に区分する区分ステップと、
該区分ステップにおいて区分された各区分毎に、前記両波形ブロック間の相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算ステップと、
該演算ステップで検出された前記クロスフェード範囲において、時間軸がずらされている前記波形ブロックをフェードイン関数によりフェードインすると共に、時間軸がずらされていない前記波形ブロックをフェードアウト関数によりフェードアウトするクロスフェードステップとを備え、
前記波形ブロック毎に時間軸を伸長するようにしたことを特徴とする波形編集方法。
【請求項３】
前記演算ステップにより得られた前記評価関数を用いて演算することにより、前記評価関数の値が小さくなるに従って、急峻に立ち上がる飽和曲線となる前記フェードイン関数および前記フェードアウト関数を得る第２演算ステップを、さらに備えることを特徴とする請求項１あるいは２記載の波形編集方法。
【請求項４】
波形データを複数の帯域に分割する帯域分割ステップと、
該帯域分割ステップにより分割された各帯域毎の波形データをループスタートの振幅でノーマライズするノーマライズステップと、
該ノーマライズステップにより分割された各帯域毎の波形データを複数の波形ブロックに分割する波形分割ステップと、
所定のクロスフェード範囲において、ループスタートの直後の前記波形ブロックからループスタートの直前の前記波形ブロックにクロスフェードを行うことによりクロスフェード波形ブロックを生成すると共に、該クロスフェード波形ブロック同士を複数接続することにより繰り返しループする帯域別ループ波形部を生成する帯域別ループ波形部生成ステップと、
該帯域別ループ波形部生成ステップにより、各帯域毎に生成された帯域別ループ波形部を加算することによりループ波形部を生成する加算ステップとを備え、
前記帯域別ループ波形生成ステップにおけるクロスフェードが、ループスタートの直後の前記波形ブロックとループスタートの直前の前記波形ブロックとの前記クロスフェード範囲における相関を示す評価関数に基づいて求められた飽和曲線のフェードイン関数およびフェードアウト関数を用いて行われるようにしたことを特徴とする波形編集方法。
【請求項５】
波形データを複数の帯域に分割する帯域分割ステップと、
該帯域分割ステップにより分割された各帯域毎の波形データをループスタートの振幅でノーマライズするノーマライズステップと、
該ノーマライズステップにより分割された各帯域毎の波形データを複数の波形ブロックに分割する波形分割ステップと、
ループスタートの直後の前記波形ブロックとループスタートの直前の前記波形ブロックとの時間軸上で重なる部分をクロスフェード領域として複数に区分する区分ステップと、
該区分ステップにおいて区分された各区分毎に、前記両波形ブロック間の相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算ステップと、
該演算ステップにおいて検出されたクロスフェード範囲において、ループスタートの直後の前記波形ブロックからループスタートの直前の前記波形ブロックにクロスフェードを行うことによりクロスフェード波形ブロックを生成すると共に、該クロスフェード波形ブロック同士を接続することにより繰り返しループする帯域別ループ波形部を生成する帯域別ループ波形部生成ステップと、
該帯域別ループ波形部生成ステップにより、各帯域毎に生成された帯域別ループ波形部を加算することによりループ波形部を生成する加算ステップと、
を備えるようにしたことを特徴とする波形編集方法。
【請求項６】
前記演算ステップにより得られた前記評価関数を用いて演算することにより、前記評価関数の値が小さくなるに従って、急峻に立ち上がる飽和曲線となる前記フェードイン関数および前記フェードアウト関数を得る第２演算ステップを、さらに備えることを特徴とする請求項５記載の波形編集方法。
【請求項７】
第１の波形ブロックと第２の波形ブロックとを接続する波形編集装置であって、
前記第１の波形ブロックの後部と前記第２の波形ブロックの前部とが時間的に重なるように、前記第１の波形ブロックと前記第２の波形ブロックとを時間軸上に配置する配置手段と、
前記第１の波形ブロックと前記第２の波形ブロックとの時間的に重なる部分をクロスフェード領域として複数に区分する区分手段と、
該区分手段において区分された各区分毎に、前記第１の波形ブロックと前記第２の波形ブロックとの相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算手段と、
該演算手段で検出された前記クロスフェード範囲において、フェードイン関数により前記第２の波形ブロックをフェードインすると共に、フェードアウト関数により前記第１の波形ブロックをフェードアウトするクロスフェード手段とを備えるようにしたことを特徴とする波形編集装置。
【請求項８】
波形データを複数の波形ブロックに分割する波形分割手段と、
同一の前記波形ブロックを２つ用意し、その内の一方の波形ブロックの時間軸をずらせて配置し、両波形ブロックにおいて時間軸上で重なる部分をクロスフェード領域として複数に区分する区分手段と、
該区分手段において区分された各区分毎に、前記両波形ブロック間の相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算手段と、
該演算手段で検出された前記クロスフェード範囲において、時間軸がずらされている前記波形ブロックをフェードイン関数によりフェードインすると共に、時間軸がずらされていない前記波形ブロックをフェードアウト関数によりフェードアウトするクロスフェード手段とを備え、
前記波形ブロック毎に時間軸を伸長するようにしたことを特徴とする波形編集装置。
【請求項９】
前記演算手段により得られた前記評価関数を用いて演算することにより、前記評価関数の値が小さくなるに従って、急峻に立ち上がる飽和曲線となる前記フェードイン関数および前記フェードアウト関数を得る第２演算手段を、さらに備えることを特徴とする請求項７あるいは８記載の波形編集装置。
【請求項１０】
波形データを複数の帯域に分割する帯域分割手段と、
該帯域分割手段により分割された各帯域毎の波形データをループスタートの振幅でノーマライズするノーマライズ手段と、
該ノーマライズ手段により分割された各帯域毎の波形データを複数の波形ブロックに分割する波形分割手段と、
所定のクロスフェード範囲において、ループスタートの直後の前記波形ブロックからループスタートの直前の前記波形ブロックにクロスフェードを行うことによりクロスフェード波形ブロックを生成すると共に、該クロスフェード波形ブロック同士を複数接続することにより繰り返しループする帯域別ループ波形部を生成する帯域別ループ波形部生成手段と、
該帯域別ループ波形部生成手段により、各帯域毎に生成された帯域別ループ波形部を加算することによりループ波形部を生成する加算手段とを備え、
前記帯域別ループ波形生成手段におけるクロスフェードが、ループスタートの直後の前記波形ブロックとループスタートの直前の前記波形ブロックとの前記クロスフェード範囲における相関を示す評価関数に基づいて求められた飽和曲線のフェードイン関数およびフェードアウト関数を用いて行われるようにしたことを特徴とする波形編集装置。
【請求項１１】
波形データを複数の帯域に分割する帯域分割手段と、
該帯域分割手段により分割された各帯域毎の波形データをループスタートの振幅でノーマライズするノーマライズ手段と、
該ノーマライズ手段により分割された各帯域毎の波形データを複数の波形ブロックに分割する波形分割手段と、
ループスタートの直後の前記波形ブロックとループスタートの直前の前記波形ブロックとの時間軸上で重なる部分をクロスフェード領域として複数に区分する区分手段と、
該区分手段において区分された各区分毎に、前記両波形ブロック間の相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算手段と、
該演算手段において検出されたクロスフェード範囲において、ループスタートの直後の前記波形ブロックからループスタートの直前の前記波形ブロックにクロスフェードを行うことによりクロスフェード波形ブロックを生成すると共に、該クロスフェード波形ブロック同士を接続することにより繰り返しループする帯域別ループ波形部を生成する帯域別ループ波形部生成手段と、
該帯域別ループ波形部生成手段により、各帯域毎に生成された帯域別ループ波形部を加算することによりループ波形部を生成する加算手段と、
を備えるようにしたことを特徴とする波形編集装置。
【請求項１２】
前記演算手段により得られた前記評価関数を用いて演算することにより、前記評価関数の値が小さくなるに従って、急峻に立ち上がる飽和曲線となる前記フェードイン関数および前記フェードアウト関数を得る第２演算手段を、さらに備えることを特徴とする請求項１１記載の波形編集装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、波形の伸長やループ波形を作成することのできる波形編集方法および波形編集装置に関する。
【０００２】
【従来の技術】
従来より、音源装置や電子楽器においては操作された鍵盤等の演奏キーや演奏データに応じた楽音波形を生成してサウンドシステムから放音している。この場合、生成される楽音波形の長さは、演奏キーの操作具合や演奏データの発音長データに応じて変化するようになる。音源装置や電子楽器においては、長さの異なる多くの波形データを音色毎に用意すると、膨大な容量の記憶装置が必要となるため、一般に音色毎に用意された１つの波形データを時間的に短縮したり伸長したりすることにより、発音期間に応じた長さの楽音波形を生成するようにしている。
【０００３】
従来における波形データを伸長する波形編集方法の一例を図１６および図１７を参照しながら、以下に説明する。
図１６（ａ）は、入力された編集前の波形データあるいは記録されている編集前の波形データであり、この波形データを伸長するようにする。まず、図１６（ａ）に示すように、波形データを所定の長さの波形ブロックに分割する。図示する例では、波形データは等分割されて波形ブロックａ、波形ブロックｂ、波形ブロックｃ、波形ブロックｄ、波形ブロックｅの５つの波形ブロックに分割されている。次いで、図１６（ｂ）に示すように、波形ブロックａ、波形ブロックｂ、波形ブロックｃ、波形ブロックｄ、波形ブロックｅにおいて、各波形ブロック間を時間的に離すように各波形ブロックを時間軸上でずらせて配置する。このずらせた時間が、伸長する時間に対応するようになる。
【０００４】
次に、各波形ブロックが時間軸上でずらされて配置された波形データである波形Ａをコピーして波形Ｂとし、図１７に示すように波形Ｂを波形Ａより時間Ｔｄだけ遅らせて時間軸上に再配置する。そして、波形Ｂの各波形ブロックの始端の時点から波形Ａの各波形ブロックの終端の時点にかけてのクロスフェード領域において、波形Ａの各波形ブロックから波形Ｂの各波形ブロックへのクロスフェードを行うようにする。この場合の波形Ａに乗算するエンベロープＡと、波形Ｂに乗算するエンベロープＢとは図１７に示すカーブとされている。すなわち、クロスフェード領域において、フェードアウトされる波形Ａの各波形ブロックには直線状に傾斜して下降するフェードアウト関数が乗算され、フェードインされる波形Ｂの各波形ブロックには直線状に傾斜して上昇するフェードイン関数が乗算される。このように、エンベロープＡが乗算された波形Ａと、エンベロープＢが乗算された波形Ｂとを加算することにより、各波形ブロックａ〜ｅにおいて時間Ｔｄずつ伸長された波形データを得ることができる。なお、フェードアウト関数およびフェードイン関数の傾斜の度合いはクロスフェード領域の長さに応じて任意に指定することができる。
【０００５】
【発明が解決しようとする課題】
しかしながら、従来の波形編集方法においては、クロスフェード領域において直線状に斜めに下降あるいは上昇する関数を、それぞれフェードアウトされる波形とフェードインされる波形に乗算している。このため、クロスフェード領域における２つの波形の振幅や位相に関わらず一様にクロスフェードされるようになり、クロスフェード領域でエンベロープが暴れたり、位相のキャンセルが生じるという問題点があった。
この場合、周期性のある波形データの場合、時間的に前に配置された波形ブロックの後部と、次の波形ブロックの前部で位相を揃えて接続することにより２つの波形ブロックを滑らかに接続することができる。しかしながら、ノイズ的な周期性のない波形データの場合は、位相を合わせられないことから従来の波形編集方法ではつながりをよくすると共に、違和感のない楽音波形を得るように２つの波形ブロックを接続することができないと云う問題点があった。
【０００６】
そこで、本発明は、周期性のない波形データであってもつながりをよくすると共に、違和感のない楽音波形やループ波形を得るように２つの波形ブロックを接続することのできる波形編集方法および装置を提供することを目的としている。
【０００７】
【課題を解決するための手段】
上記目的を達成するために、本発明の第１の波形編集方法は、第１の波形ブロックと第２の波形ブロックとを接続する波形編集方法であって、前記第１の波形ブロックの後部と前記第２の波形ブロックの前部とが時間的に重なるように、前記第１の波形ブロックと前記第２の波形ブロックとを時間軸上に配置する配置ステップと、前記第１の波形ブロックと前記第２の波形ブロックとの時間的に重なる部分をクロスフェード領域として複数に区分する区分ステップと、該区分ステップにおいて区分された各区分毎に、前記第１の波形ブロックと前記第２の波形ブロックとの相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算ステップと、該演算ステップで検出された前記クロスフェード範囲において、フェードイン関数により前記第２の波形ブロックをフェードインすると共に、フェードアウト関数により前記第１の波形ブロックをフェードアウトするクロスフェードステップとを備えるようにしている。
【０００８】
次に、上記目的を達成することのできる本発明の第２の波形編集方法は、波形データを複数の波形ブロックに分割する波形分割ステップと、同一の前記波形ブロックを２つ用意し、その内の一方の波形ブロックの時間軸をずらせて配置し、両波形ブロックにおいて時間軸上で重なる部分をクロスフェード領域として複数に区分する区分ステップと、該区分ステップにおいて区分された各区分毎に、前記両波形ブロック間の相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算ステップと、該演算ステップで検出された前記クロスフェード範囲において、時間軸がずらされている前記波形ブロックをフェードイン関数によりフェードインすると共に、時間軸がずらされていない前記波形ブロックをフェードアウト関数によりフェードアウトするクロスフェードステップとを備え、前記波形ブロック毎に時間軸を伸長するようにしている。
【０００９】
さらに、上記本発明の第１、第２の波形編集方法において、前記演算ステップにより得られた前記評価関数を用いて演算することにより、前記評価関数の値が小さくなるに従って、急峻に立ち上がる飽和曲線となる前記フェードイン関数および前記フェードアウト関数を得る第２演算ステップを、さらに備えていてもよい。
【００１０】
次に、上記目的を達成することのできる本発明の第３の波形編集方法は、波形データを複数の帯域に分割する帯域分割ステップと、該帯域分割ステップにより分割された各帯域毎の波形データをループスタートの振幅でノーマライズするノーマライズステップと、該ノーマライズステップにより分割された各帯域毎の波形データを複数の波形ブロックに分割する波形分割ステップと、所定のクロスフェード範囲において、ループスタートの直後の前記波形ブロックからループスタートの直前の前記波形ブロックにクロスフェードを行うことによりクロスフェード波形ブロックを生成すると共に、該クロスフェード波形ブロック同士を複数接続することにより繰り返しループする帯域別ループ波形部を生成する帯域別ループ波形部生成ステップと、該帯域別ループ波形部生成ステップにより、各帯域毎に生成された帯域別ループ波形部を加算することによりループ波形部を生成する加算ステップとを備え、前記帯域別ループ波形生成ステップにおけるクロスフェードが、ループスタートの直後の前記波形ブロックとループスタートの直前の前記波形ブロックとの前記クロスフェード範囲における相関を示す評価関数に基づいて求められた飽和曲線のフェードイン関数およびフェードアウト関数を用いて行われるようにしている。
【００１１】
次に、上記目的を達成することのできる本発明の第４の波形編集方法は、波形データを複数の帯域に分割する帯域分割ステップと、該帯域分割ステップにより分割された各帯域毎の波形データをループスタートの振幅でノーマライズするノーマライズステップと、該ノーマライズステップにより分割された各帯域毎の波形データを複数の波形ブロックに分割する波形分割ステップと、ループスタートの直後の前記波形ブロックとループスタートの直前の前記波形ブロックとの時間軸上で重なる部分をクロスフェード領域として複数に区分する区分ステップと、該区分ステップにおいて区分された各区分毎に、前記両波形ブロック間の相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算ステップと、該演算ステップにおいて検出されたクロスフェード範囲において、ループスタートの直後の前記波形ブロックからループスタートの直前の前記波形ブロックにクロスフェードを行うことによりクロスフェード波形ブロックを生成すると共に、該クロスフェード波形ブロック同士を接続することにより繰り返しループする帯域別ループ波形部を生成する帯域別ループ波形部生成ステップと、該帯域別ループ波形部生成ステップにより、各帯域毎に生成された帯域別ループ波形部を加算することによりループ波形部を生成する加算ステップとを備えている。
【００１２】
また、上記本発明の第４波形編集方法において、前記演算ステップにより得られた前記評価関数を用いて演算することにより、前記評価関数の値が小さくなるに従って、急峻に立ち上がる飽和曲線となる前記フェードイン関数および前記フェードアウト関数を得る第２演算ステップを、さらに備えていてもよい。
【００１３】
次に、上記目的を達成することのできる本発明の第１の波形編集装置は、第１の波形ブロックと第２の波形ブロックとを接続する波形編集装置であって、前記第１の波形ブロックの後部と前記第２の波形ブロックの前部とが時間的に重なるように、前記第１の波形ブロックと前記第２の波形ブロックとを時間軸上に配置する配置手段と、前記第１の波形ブロックと前記第２の波形ブロックとの時間的に重なる部分をクロスフェード領域として複数に区分する区分手段と、該区分手段において区分された各区分毎に、前記第１の波形ブロックと前記第２の波形ブロックとの相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算手段と、該演算手段で検出された前記クロスフェード範囲において、フェードイン関数により前記第２の波形ブロックをフェードインすると共に、フェードアウト関数により前記第１の波形ブロックをフェードアウトするクロスフェード手段とを備えるようにしている。
【００１４】
次に、上記目的を達成することのできる本発明の第２の波形編集装置は、波形データを複数の波形ブロックに分割する波形分割手段と、同一の前記波形ブロックを２つ用意し、その内の一方の波形ブロックの時間軸をずらせて配置し、両波形ブロックにおいて時間軸上で重なる部分をクロスフェード領域として複数に区分する区分手段と、該区分手段において区分された各区分毎に、前記両波形ブロック間の相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算手段と、該演算手段で検出された前記クロスフェード範囲において、時間軸がずらされている前記波形ブロックをフェードイン関数によりフェードインすると共に、時間軸がずらされていない前記波形ブロックをフェードアウト関数によりフェードアウトするクロスフェード手段とを備え、前記波形ブロック毎に時間軸を伸長するようにしている。
【００１５】
また、上記本発明の第１、第２の波形編集装置において、前記演算手段により得られた前記評価関数を用いて演算することにより、前記評価関数の値が小さくなるに従って、急峻に立ち上がる飽和曲線となる前記フェードイン関数および前記フェードアウト関数を得る第２演算手段を、さらに備えていてもよい。
【００１６】
次に、上記目的を達成することのできる本発明の第３の波形編集装置は、波形データを複数の帯域に分割する帯域分割手段と、該帯域分割手段により分割された各帯域毎の波形データをループスタートの振幅でノーマライズするノーマライズ手段と、該ノーマライズ手段により分割された各帯域毎の波形データを複数の波形ブロックに分割する波形分割手段と、所定のクロスフェード範囲において、ループスタートの直後の前記波形ブロックからループスタートの直前の前記波形ブロックにクロスフェードを行うことによりクロスフェード波形ブロックを生成すると共に、該クロスフェード波形ブロック同士を複数接続することにより繰り返しループする帯域別ループ波形部を生成する帯域別ループ波形部生成手段と、該帯域別ループ波形部生成手段により、各帯域毎に生成された帯域別ループ波形部を加算することによりループ波形部を生成する加算手段とを備え、前記帯域別ループ波形生成手段におけるクロスフェードが、ループスタートの直後の前記波形ブロックとループスタートの直前の前記波形ブロックとの前記クロスフェード範囲における相関を示す評価関数に基づいて求められた飽和曲線のフェードイン関数およびフェードアウト関数を用いて行われるようにしている。
【００１７】
次に、上記目的を達成することのできる本発明の第４の波形編集装置は、波形データを複数の帯域に分割する帯域分割手段と、該帯域分割手段により分割された各帯域毎の波形データをループスタートの振幅でノーマライズするノーマライズ手段と、該ノーマライズ手段により分割された各帯域毎の波形データを複数の波形ブロックに分割する波形分割手段と、ループスタートの直後の前記波形ブロックとループスタートの直前の前記波形ブロックとの時間軸上で重なる部分をクロスフェード領域として複数に区分する区分手段と、該区分手段において区分された各区分毎に、前記両波形ブロック間の相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算手段と、該演算手段において検出されたクロスフェード範囲において、ループスタートの直後の前記波形ブロックからループスタートの直前の前記波形ブロックにクロスフェードを行うことによりクロスフェード波形ブロックを生成すると共に、該クロスフェード波形ブロック同士を接続することにより繰り返しループする帯域別ループ波形部を生成する帯域別ループ波形部生成手段と、該帯域別ループ波形部生成手段により、各帯域毎に生成された帯域別ループ波形部を加算することによりループ波形部を生成する加算手段と、
を備えている。
【００１８】
また、上記本発明の第４の波形編集装置において、前記演算手段により得られた前記評価関数を用いて演算することにより、前記評価関数の値が小さくなるに従って、急峻に立ち上がる飽和曲線となる前記フェードイン関数および前記フェードアウト関数を得る第２演算手段を、さらに備えていてもよい。
【００１９】
このような本発明によれば、２つの波形ブロックを接続する際に、クロスフェード領域を分割した区分毎の評価関数に基づいてクロスフェード範囲を検出している。これにより、周期性のない波形データを伸長する場合であっても、つながりよく接続して伸長することができるようになる。また、波形ブロック間の相関の度合いに応じた飽和曲線となるフェードイン関数およびフェードアウト関数を用いてクロスフェードを行うようにしている。このため、違和感のない楽音波形を得るように２つの波形ブロックを接続することができるようになる。
さらに、接続する２つの波形ブロックをループスタートの前後の波形ブロックとすることにより、周期性のない波形データであってもつながりをよくすると共に、違和感のないループ波形を得ることができるようになる。これにより、パーカッション等の減衰音の一部をループさせることにより伸長する場合において、違和感がないと共につながりがよいループ波形とすることができる。
【００２０】
【発明の実施の形態】
本発明の波形編集方法を具現化した本発明の実施の形態にかかる波形編集装置の機能ブロック図を図１に示す。
図１に示す波形編集装置１において、外部から供給された波形データや、内蔵された記録装置から読み出された波形データが波形入力手段２からブロック分割＆再配置手段３に入力される。この波形入力手段２においては、波形入力手段２から入力された波形データが複数の波形ブロックに分割される。この場合、図１６に示すように波形データは等間隔で分割されたり、波形データを分析してゼロクロスやピーク等の区切りの良い時点で分割するようにする。次いで、各波形ブロックを時間的に伸長するために、伸長する時間に基づいて図１６（ｂ）に示すように各波形ブロックを時間軸上でずらせて配置する。ずらせた時間が伸長する時間に相当するようになる。次に、各波形ブロック毎に波形ブロックを時間的に伸長する処理が行われる。
【００２１】
以下では１つの波形ブロックを例に挙げて、波形ブロックを時間的に伸長する処理を説明する。まず、時間軸を伸長する波形ブロックを波形Ａとし、波形Ａをコピーして波形Ｂとする。そして、図３に示すように波形Ｂを波形Ａより時間Ｔｄだけ遅らせて時間軸上に再配置する。この場合、波形Ａをコピーすることに替えてアドレスポインターを２つ用意し、２つのアドレスポインターのアドレス距離を時間Ｔｄに対応させて波形Ａの波形データを読み出すことにより、波形Ａおよび波形Ｂを得るようにしても良い。
【００２２】
このようにして得られた波形Ａおよび波形Ｂをクロスフェード領域分析手段５に供給する。クロスフェード領域分析手段５では、図３に示すように波形Ｂにおける波形ブロックの始端の時点から波形Ａにおける波形ブロックの終端の時点にかけてのクロスフェード領域を複数の区分に分割する。図３に示す例では、区分ａ、区分ｂ、区分ｃ、区分ｄ、区分ｅの５つの区分に分割し、最適なクロスフェード範囲を求めるために次式（１）で示す計算を区分毎に行って区分毎の評価関数αを得る。
【数１】
0003780857.tif 000002
ただし、（１）式において、ｘa（ｔ）は波形Ａの波形サンプルであり、ｘb（ｔ）は波形Ｂの波形サンプルであり、時間ｔは０〜ｎで１区分の時間長とされている。なお、この評価関数αは、各区分における波形Ａと波形Ｂとの相関の割合を示している。
【００２３】
求められた各区分の評価関数αはクロスフェード範囲検出手段６に供給され、供給された各区分の評価関数αに基づいてクロスフェード範囲が検出される。例えば、区分ａにおいてα＝１．９、区分ｂにおいてα＝１．８、区分ｃにおいてα＝１．７、区分ｄにおいてα＝１．６、区分ｅにおいてα＝１．５が得られた場合は、区分ａから区分ｅに向かって次第に位相がずれていることが示されていることになる。クロスフェードを行う範囲は、評価関数αがなるべく高くされており、評価関数αがある範囲内に収まる複数の連続する区分に限定して行うようにする。例えば、最大の評価関数αの１０％以内の評価関数αが得られる連続する区分をクロスフェード範囲とする。この場合は、最大の評価関数αは１．９であり、その約１０％以内の評価関数αは１．７程度までとなるので、区分ａ〜区分ｃが最適のクロスフェード範囲として検出されることになる。
【００２４】
検出されたクロスフェード範囲はクロスフェード手段４に供給される。このクロスフェード手段４には、ブロック分割＆再配置手段３から波形Ａと波形Ｂとが供給されており、図３に示す区分ａ〜区分ｃのクロスフェード範囲における評価関数αの中央値に基づいて計算された最適とされるクロスフェードカーブを用いてクロスフェードが行われる。クロスフェードカーブにおけるフェードイン関数ｙを求める式を次式（２）に示す。
【数２】
0003780857.tif 000003
ただし、（２）式において、αはクロスフェード範囲における評価関数αの中央値である。さらに、クロスフェードカーブにおけるフェードアウト関数ｙを求める式を次式（３）に示す。
【数３】
0003780857.tif 000004
ただし、（３）式において、αはクロスフェード範囲における評価関数αの中央値である。
（２）式および（３）式では、ｘが０〜１の範囲において、（２）式のクロスフェードカーブがフェードインし（３）式のクロスフェードカーブがフェードアウトする。このようなクロスフェードカーブで波形のクロスフェードを行なう際は、検出されたクロスフェード範囲にわたってクロスフェードが行われるように横軸方向が伸縮調整される。
【００２５】
上記（２）式および（３）式により求められた飽和特性を示すクロスフェードカーブを図４（ａ）（ｂ）に示す。評価関数αが２とされている場合は、位相が完全に一致している場合であり、この場合はクロスフェードカーブは図４（ｂ）に示すように直線状となる（ただし、実際には位相が完全に一致することはほとんどない）。すなわち、上記（２）式および（３）式を参照すれば明らかなように、相関を示す評価関数αが小さくなるほど急峻に立ち上がる飽和特性を示すようになる。これは、位相が合っていない２つの波形を合成した際にはそのエンベロープの振幅が、個々の波形のエンベロープを加算した振幅より小さくなる（位相が逆転するまでずれていれば、加算した振幅は０となる）ためであり、上記（２）式および（３）式により、その振幅補償が行える最適のクロスフェードカーブを得ているのである。また、クロスフェード範囲において波形Ａの波形ブロックと波形Ｂの波形ブロックとの振幅は、予めその大きさが合うように調整される。
【００２６】
クロスフェード手段４においては、波形Ａに上記（３）式で求められたフェードアウト関数が乗算されると共に、波形Ｂに上記（２）式で求められたフェードイン関数が乗算され、乗算結果後の波形Ａと波形Ｂとを加算することによりクロスフェードが行われる。クロスフェードされることにより、時間が伸長された波形ブロックは波形出力手段７から出力される。
このような波形ブロックの時間伸長を、各波形ブロックについて行うことにより、波形データの時間伸長を行うことができる。
図１に示す波形編集装置１においては、上記説明したように評価関数αに基づいてクロスフェード範囲を検出すると共に、評価関数αに基づいてクロスフェードカーブを求めるようにしたため、周期性のない波形データであってもつながりをよくすることができる。また、聴いた際に違和感のない楽音波形を得るように２つの波形ブロックを接続することができるようになる。
【００２７】
次に、波形編集装置１における波形編集の実際的な例を図５ないし図７を参照しながら説明する。
図５（ａ）は、波形入力手段から供給される波形データの一例であり、この波形データはエンベロープが急峻に立ち上がるアタック部が検出された時点に基づいて、図５（ｂ）に示すように１，２，３・・・・，１２，・・・の複数の波形ブロックに分割されている。図５（ｂ）に示す複数の波形ブロックに分割された波形データを図６（ａ）に示す。この波形データを短縮する場合は、図６（ｂ）に示すように各波形ブロックの、例えば後部を切り取って、それぞれの波形ブロックを時間的に短縮するようにする。図６（ｂ）に示す例では、各波形ブロックは６７％に短縮されており、短縮比Ｒ＝０．６７とされた波形データとされている。なお、波形データを短縮する処理は、ブロック分割＆再配置手段３が行い、クロスフェード領域分析手段５、クロスフェード範囲検出手段６は何も処理を行わず、クロスフェード手段４は、各波形ブロックを、所定のクロスフェード範囲（数十サンプル程度）にわたる従来のクロスフェードにより順次接続する。これは、各波形ブロックの先頭が急峻に立ち上がっており、各波形ブロックの後尾と次の波形ブロックの先頭とにおける振幅や位相が一致しない場合が多いからである。なお、前後の波形ブロックを接続する際に、あえてクロスフェードを行なうことなく直接接続するようにしても良い。
【００２８】
また、波形データを時間的に伸長する場合は、複数の波形ブロック１，２，３・・・・，１２，・・・を前記説明したように処理することにより、波形ブロック毎に伸長することにより波形データを伸長する。例えば、図６（ｃ）に示す例では、各波形ブロックは１５０％に伸長されており、伸長比Ｒ＝１．５とされた波形データとされている。この場合、複数の波形ブロック１，２，３・・・・，１２，・・・における伸長部分が、伸長部１ｉ，２ｉ，３ｉ・・・・，１２ｉ，・・・として示されている。この伸長部１ｉ，２ｉ，３ｉ・・・・，１２ｉ，・・・を、図１に示す波形編集装置１で作成する処理を図７を参照しながら説明する。
【００２９】
図７（ａ）に示す波形データは、ブロック分割＆再配置手段３において複数の波形ブロックに分割された状態の元の波形データである。図７（ａ）では、複数に分割された波形ブロックの内の波形ブロックＮ，波形ブロック（Ｎ＋１）、波形ブロック（Ｎ＋２）の連続する３つのブロックだけが示されている。また、図７（ｄ）は作成された伸長部ＮｉがブロックＮとブロック（Ｎ＋１）との間に挿入され、伸長部（Ｎ＋１）ｉがブロック（Ｎ＋１）とブロック（Ｎ＋２）との間に挿入されることにより伸長された波形データが示されている。この伸長部Ｎｉを作成する際には、伸長部Ｎｉの長さが長くされていることから図７（ｂ）に示すように波形ブロックＮを時間軸上でずらせて合計３つの波形ブロックＮを時間軸上に再配置する。この再配置はブロック分割＆再配置手段３により行われるが、波形ブロックＮをコピーして再配置しても良いし、波形ブロックＮを読み出すアドレスポインタを３つ用意して、３つのアドレスポインタのアドレス距離をずらす時間に応じて設定することにより、読み出した波形ブロックＮを時間軸上に等価的にずらせて３つ配置するようにしてもよい。
【００３０】
次に、クロスフェード領域分析手段５において、ずらせた波形ブロックＮから波形ブロックＮ’（ハッチした部分）を切り出す。この切り出しでは、波形ブロックＮの先頭部分が図５（ａ）に示すように振幅および位相の変動が激しいアタック波形とされて他の波形に接続しにくくされているため、このアタック波形部分を取り除くように切り出している。次いで、切り出した波形ブロックＮ’と元の波形ブロックＮとが時間軸上で重なるクロスフェード領域を複数の区分に分割する。このクロスフェード領域は、波形ブロックＮ’の始端の時点から元の波形ブロックＮの終端の時点までの領域とされる。
【００３１】
そして、最適のクロスフェード範囲を求めるために前記式（１）で示す計算を区分毎に行って区分毎の評価関数αを得る。求められた各区分の評価関数αはクロスフェード範囲検出手段６に供給され、供給された各区分の評価関数αに基づいてクロスフェード範囲が検出される。検出された最適のクロスフェード範囲はクロスフェード手段４に供給される。このクロスフェード手段４には、ブロック分割＆再配置手段３から波形ブロックＮと波形ブロックＮ’とが供給されており、検出されたクロスフェード範囲における評価関数αの中央値に基づいて計算された最適のクロスフェードカーブを用いて図７（ｃ）に示すように、波形ブロックＮから波形ブロックＮ’へのクロスフェードが行われる。この場合、例えば最大の評価関数αの約１０％以内の評価関数αを有する連続する区分が最適のクロスフェード範囲として検出される。また、クロスフェード手段４における最適のクロスフェードカーブのフェードイン関数ｙは前記式（２）により求められ、フェードアウト関数ｙは前記式（３）により求められる。
【００３２】
ここで、波形ブロックＮから波形ブロックＮ’へクロスフェードしても、伸長部Ｎｉの長さには達しないため、図７（ｂ）に示すように、クロスフェード領域分析手段５において、さらにずらせて再配置した波形ブロックＮから波形ブロックＮ”を切り出す。この切り出しも、波形ブロックＮの先頭部分のアタック波形部分を取り除くように切り出している。次いで、切り出した波形ブロックＮ”（ハッチした部分）とずらせた波形ブロックＮから切り出した波形ブロックＮ’とが時間軸上で重なるクロスフェード領域を複数の区分に分割する。このクロスフェード領域は、波形ブロックＮ”の始端の時点から波形ブロックＮ’の終端の時点までの領域とされる。
【００３３】
そして、最適のクロスフェード範囲を求めるために前記式（１）で示す計算を区分毎に行って区分毎の評価関数αを得る。求められた各区分の評価関数αはクロスフェード範囲検出手段６に供給され、供給された各区分の評価関数αに基づいて最適のクロスフェード範囲が検出される。検出されたクロスフェード範囲はクロスフェード手段４に供給される。このクロスフェード手段４には、ブロック分割＆再配置手段３から波形ブロックＮ’と波形ブロックＮ”とが供給されており、検出されたクロスフェード範囲における評価関数αの中央値に基づいて計算された最適のクロスフェードカーブを用いて図７（ｃ）に示すように波形ブロックＮ’から波形ブロックＮ”へのクロスフェードが行われる。この場合、例えば最大の評価関数αの約１０％以内の評価関数αを有する連続する区分が最適のクロスフェード範囲として検出される。また、クロスフェード手段４における最適のクロスフェードカーブのフェードイン関数ｙは前記式（２）により求められ、フェードアウト関数ｙは前記式（３）により求められる。
【００３４】
このように、波形ブロックＮから波形ブロックＮ’へのクロスフェード、続いて波形ブロックＮ’から波形ブロックＮ”へのクロスフェードを行うことにより、長さが長くされている伸長部Ｎｉを生成することができる。この伸長部Ｎｉは波形ブロック（Ｎ＋１）に接続されるが、図５（ａ）に示すように複数に分割されている波形ブロックの先頭は急峻に立ち上がっており、波形ブロックの後尾と次の波形ブロックの先頭とにおける振幅や位相はほとんど一致していない。そこで、伸長部Ｎｉを波形ブロック（Ｎ＋１）に接続する際には、本発明の波形編集方法によるクロスフェードを行って、位相や振幅を合わせる必要がないので、従来のクロスフェードを行うことにより伸長部Ｎｉを波形ブロック（Ｎ＋１）に接続するようにする。この様子が図７（ｂ）（ｃ）に示されており、伸長部Ｎｉと波形ブロック（Ｎ＋１）とは、傾斜している直線状のクロスフェードカーブによりクロスフェードされる。なお、伸長部Ｎｉを波形ブロック（Ｎ＋１）に接続する際に、あえてクロスフェードを行うことなく直接接続するようにしても良い。
【００３５】
伸長部（Ｎ＋１）ｉおよび以降の伸長部についても、伸長部Ｎｉと同様の処理が行われて作成される。このようにして各波形ブロック１，２，３・・・・，１２，・・・における伸長部１ｉ，２ｉ，３ｉ・・・・，１２ｉ，・・・を作成することにより、図５（ａ）に示す波形データの伸長を行うことができる。この場合、図７（ｂ）に示すように波形ブロックを順次時間軸上でずらせて複数再配置することにより、任意の長さの伸長部を作成することができ、波形データを任意の長さで伸長可能とすることができるようになる。
このように波形編集装置１においては、上記説明したように評価関数αに基づいてクロスフェード範囲を検出すると共に、評価関数αに基づいてクロスフェードカーブを求めるようにしたため、周期性のない波形データであってもつながりをよくすることができる。また、聴いた際に違和感のない楽音波形を得るように２つの波形ブロックを接続することができるようになる。
【００３６】
なお、上記（２）式および（３）式においてαを、クロスフェード範囲における評価関数αの中央値に替えて評価関数αの平均値としてもよい。また、フェードイン関数およびフェードアウト関数は上記（２）式および（３）式に限るものではなく、評価関数αに応じた飽和曲線となる関数であればよい。
また、評価関数αを前記の（１）式に替えて、次に示す（４）式を計算することにより求めるようにしてもよい。（４）式においては、波形データの電力から評価関数αを求めるようにしている。
【数４】
0003780857.tif 000005
ただし、（４）式において、ｘa（ｔ）は一方の波形Ａの波形サンプルであり、ｘb（ｔ）は他方の波形Ｂの波形サンプルであり、時間ｔは０〜ｎで１区分の時間長とされている。
【００３７】
さらに、評価関数αを前記の（１）式に替えて、次に示す（５）式を計算することにより求めるようにしてもよい。（５）式においては、波形データのエンベロープから評価関数αを求めるようにしている。
【数５】
0003780857.tif 000006
ただし、（５）式において、ｘa（ｔ）は一方の波形Ａの波形サンプルであり、ｘb（ｔ）は他方の波形Ｂの波形サンプルであり、ｅｎｖ（）は（）内の波形のエンベロープ抽出関数であり、時間ｔは０〜ｎで１区分の時間長とされている。
また、評価関数αをクロスフェード領域の区分毎に計算した結果は、前述したようにしだいに小さくなったり、しだいに大きくなったりする場合もあるが、途中の区分において最大の評価関数αが得られる場合もある。このような場合は、最大の評価関数αが得られる区分の前後の区分を最適のクロスフェード範囲として検出する。例えば、最大の評価関数αの約５％以内の評価関数αが得られる区分を最適のクロスフェード範囲とすることができる。なお、最適のクロスフェード範囲を検出する範囲は、評価関数αの約１０％や約５％に限られるものではなく、波形データの態様に応じて変化させることができる。
【００３８】
次に、波形編集装置１において減衰音波形を生成する波形編集を行う際の処理について図８ないし図１５を参照しながら説明する。
減衰音を発生する楽器には種々の楽器があるが、減衰音の波形データを時間軸上で伸長する場合、上述したように複数の波形ブロックに分割して、波形ブロック毎に伸長する処理を行ってもそれほど伸長することはできない。これは、減衰音の波形データの時間的長さが短い場合がほとんどであるためである。そこで、減衰音の波形データを伸長するには、波形データにおける減衰音の余韻の部分をループさせることにより波形データを時間軸上で伸長することが提案されている。ところで、減衰音を発生する楽器の代表としてピアノがあるが、ピアノは周期性のある波形データとされているため、位相を合わせてループさせることにより滑らかに接続されたループ波形を生成することができる。しかしながら、減衰音を発生するパーカッションにおいてはその波形データがノイズ的な周期性のない波形データの場合が多くされている。そこで、ループ波形を生成する際に、上述した波形編集装置１における波形編集方法を用いてクロスフェードを行うようにすると、ノイズ的な周期性のない波形データであっても滑らかに接続されたループ波形を生成することができるようになる。そこで、ループ波形を生成する処理を、具体的にパーカッションであるシンバルをあげて図１５に示すシンバル波形生成処理のフローチャートの各ステップに沿って、以下に説明を行う。
【００３９】
シンバルの波形データを時間軸上で伸長する場合は、まず、ステップＳ１にて図８に示すシンバルの波形データを複数の帯域に分割する。ただし、図８に示す波形データは横軸である時間軸が拡大されて示されている。複数の帯域に分割するには、シンバルの波形データをフーリエ変換して各スペクトルに分解し、帯域毎のスペクトルを集めて逆フーリエ変換して合成することにより行う。または、バンドパスフィルタを用いて複数の帯域に分割するようにしてもよい。このようにして、複数の帯域に分割した際の各帯域の波形データの例を図９に示す。この例では、帯域（１）から帯域（１６）の１６の帯域における波形データが示されている。なお、各帯域の中心周波数の間隔は、対数的に等間隔とされている。
【００４０】
次に、ステップＳ２にて分割された各帯域毎に波形データの振幅を、ループスタートの振幅でノーマライズする。このノーマライズを、図１０（ａ）に示す分割された１つの帯域の波形データを参照して説明する。図１０（ａ）に示す時点ｔ２がループスタートの時点とされている場合は、図示されているエンベロープ曲線の逆の関数を求め、時点ｔ２の振幅を基準として求められたエンベロープの逆関数を図１０（ａ）に示す波形データに乗算することにより、当該波形の時点ｔ２の振幅でノーマライズする。図１０（ａ）に示す波形データの振幅をノーマライズした波形データが図１０（ｃ）に示されている。このように、ノーマライズ処理を行うことにより振幅がほぼ一定となる。このノーマライズ処理が、分割された各帯域毎の波形データに対して行われて、各帯域の波形データの振幅が時間的にほぼ一定とされる。なお、図１０（ａ）に示す時点ｔ２がループスタートの時点とされている場合は、時点ｔ３がループエンドの時点となる。また、時点ｔ１，時点ｔ２，時点ｔ３は各帯域の波形データにおいて共通のタイミングとされている。
【００４１】
そして、図１０（ａ）に示す元の波形データは、例えば等間隔で波形ブロックに分割されて、図１０（ｂ）に示すように元波形Ａ、元波形Ｂ、元波形Ｃ、元波形Ｄ・・・に分割される。また、図１０（ｃ）に示すノーマライズされた波形データも同様の間隔で波形ブロックに分割され、図１０（ｄ）に示すようにループスタートの直前の波形ブロックが波形Ｂとされ、ループスタートの直後の波形ブロックが波形Ｃとされる。図示する場合は、元の波形データおよびノーマライズされた波形データを等間隔で分割するようにしたが、必ずしも等間隔で分割しなければならないものではない。
【００４２】
次に、ステップＳ３にて各帯域毎に、ループスタートの前後の波形ブロックをクロスフェードさせることによりループ波形部を生成する。この処理では、図１０（ｄ）に示すループスタートの時点ｔ２の前後の波形ブロックである波形Ｂと波形Ｃとからループ波形部を生成する。具体的には、図１０（ｅ）に示すようにループスタート時点ｔ２の直後の波形Ｃから、ループスタート時点ｔ２の直前の波形Ｂの一部を切り出した波形Ｂ’へクロスフェードさせる。続いて、波形Ｂ’の後尾に波形Ｃを接続させる。この場合、波形Ｂ’の後尾に波形Ｃを直接接続しても、波形Ｂ’の後尾は波形Ｂの後尾で構成されており、図１０（ｄ）に示すように波形Ｂの後尾は波形Ｃの先頭に位相および振幅が連続して接続されているため、滑らかに接続される。このようにループ波形部を生成するには、波形Ｂと波形Ｃとの波形ブロックの全体が必要なわけではなく、波形Ｂの後部と波形Ａの前部とから構成されるクロスフェード領域の部分だけあればよい。
【００４３】
このクロスフェード処理には、２つの実施の形態があり、第１のクロスフェード処理について図１２を参照して説明する。図１２（ａ）に示す波形Ｃは、図１０（ｄ）に示す波形Ｃであり、図１２（ｂ）に示す波形Ｂは図１０（ｄ）に示す波形Ｂであり、図示するようにほぼ時間軸上に並列に再配置される。そして、波形Ｂの途中から終端までを切り出して波形Ｂ’（ハッチで示している）とする。次いで、所定のクロスフェード範囲を定めて、最適値のクロスフェード関数を得るためにそのクロスフェード範囲における評価関数αを上記（１）式を用いて計算する。この場合の時間ｔは、クロスフェード範囲の始端が０、終端がｎとなる。次いで、得られた評価関数αを上記（２）式および（３）式に代入して、最適のフェードイン関数およびフェードアウト関数を求める。そして、クロスフェード範囲において、上記（２）式および（３）式により求められたフェードイン関数およびフェードアウト関数を用いて図１２（ｃ）に示すように波形Ｃから波形Ｂ’へのクロスフェードを行うようにする。このようにして生成したループ波形部を複数回繰り返すことにより図１０（ｅ）に示すようなループ波形部を生成することができる。
【００４４】
次に、第２のクロスフェード処理を図１３を参照して説明する。
図１３（ａ）に示す波形Ｃは、図１０（ｄ）に示す波形Ｃであり、図１２（ｂ）に示す波形Ｂは図１０（ｄ）に示す波形Ｂであり、図示するようにほぼ時間軸上に並列に再配置される。そして、波形Ｂの途中から終端までを切り出して波形Ｂ’（ハッチで示している）とする。次いで、波形Ｃと切り出した波形Ｂ’とが時間軸上で重なるクロスフェード領域を複数の区分に分割する。このクロスフェード領域は、波形Ｂ’の始端の時点から波形Ｃの終端の時点までの領域とされ、例えば図示するように区分ａ〜区分ｐに分割されている。次いで、最適のクロスフェード範囲を検出するために前記式（１）で示す計算を区分毎に行って区分毎の評価関数αを得る。求められた各区分の評価関数αから、例えば最大の評価関数αの約１０％以内の評価関数αを有する連続する区分ｅ〜区分ｊが最適のクロスフェード範囲として検出される。次いで、クロスフェード範囲内の評価関数αの中央値を上記（２）式および（３）式に代入して、最適のフェードイン関数およびフェードアウト関数を求める。そして、クロスフェード範囲において、上記（２）式および（３）式により求められたフェードイン関数およびフェードアウト関数を用いて図１３（ｃ）に示すように波形Ｃから波形Ｂ’へのクロスフェードを行うようにする。このようにして生成したループ波形部を複数回繰り返すことにより図１０（ｅ）に示すようなループ波形部を生成することができる。
【００４５】
上述した第１のクロスフェード処理あるいは第２のクロスフェード処理のいずれかのクロスフェード処理を行うことにより、ステップＳ３において各帯域毎のループ波形部が生成されるようになる。次いで、ステップＳ４にて生成された各帯域のループ波形部である結果が全て加算される。この加算は、時点ｔ２の振幅でノーマライズされた各帯域のループ部を、その振幅のままで加算することにより実行され、全ての帯域成分からなるループ波形部が生成されるようになる。この全ての帯域成分からなるループ波形部は、各帯域毎のループ波形部の振幅が時間的にノーマライズされていることから、そのエンベロープはほぼ一定となる。続いて、ステップＳ４にて元の波形データと全ての帯域成分からなるループ波形部とを、ループスタートの時点においてそのまま、あるいは、クロスフェードすることにより接続して、アタック部とループ部により構成される波形メモリ音源用のシンバルの波形データが生成されるようになる。この様子が、図１１に示されている。
【００４６】
図１１（ａ）には、帯域分割する前の元の波形データを分割した元波形Ａ、元波形Ｂ、元波形Ｃ、元波形Ｄの波形ブロックが示されており、元波形Ｂの終端（元波形Ｃの始端）の時点がループスタートの時点ｔ２とされている。図１１（ｂ）に示すループ波形は、前記ステップＳ４にて生成された全ての帯域成分からなるループ波形部であり、時点ｔ２に配置される。そして、時点ｔ０において元波形Ａが読み出され、続いて時点ｔ１にて元波形Ｂが読み出され、時点ｔ２のループスタートにおいて元波形Ｂから全ての帯域成分からなるループ波形部へのクロスフェードが行われる。この場合、ループ波形部の先頭は図１０（ｅ）に示すように波形Ｃの先頭とされているので、元波形Ｂの後尾とループ波形部の先頭との位相は一致する。そこで、ループスタート時点ｔ２におけるシンバルの波形データの振幅にループ波形部の振幅を合わせれば、そのまま元波形Ｂにループ波形部を接続することができる。その場合、完成したシンバルの波形データは、元波形Ａと元波形Ｂをアタック部、生成されたループ波形部をループ部とする波形となる。
【００４７】
また、図１１（ｃ）に示すように元波形Ｂにループ波形部を接続するようにしてもよい。図１１（ｃ）に示す接続は、ループ波形部の後尾の一部を取り出し、取り出したループ波形部と元波形Ｂの後尾との間でクロスフェードを行い接続部を生成する。この場合、元波形Ｂをフェードアウトしループ波形部をフェードインする。そして、図示するように元波形Ｂの後尾を生成された接続部で入れ替えて、接続部には直接ループ波形部を接続する。このようにすれば、ループ波形部として元波形Ｃとは異なる形状の波形が生成されてしまった場合でも、波形形状が急激に変わることなく滑らかに元波形Ｂにループ波形部を接続することができる。このようにして作成された図１１（ｃ）に示すシンバルのループ波形の波形データの実際の一例を図１４に示す。この図において、時点ｔ０から時点ｔ２にかけて完成したシンバルの波形データがアタック部であり、時点ｔ２以降のループ部波形がループ部である。図１４に示すように、シンバルの波形データのように周期性のない波形データであっても、つながりが良好であると共に違和感のないループ波形を得ることができる。
【００４８】
なお、図１５におけるフローチャートのステップＳ１の処理およびステップＳ２の処理は、図１における波形編集装置１のブロック分割＆再配置手段により実行され、ステップＳ３の処理はクロスフェード領域分析手段５、クロスフェード範囲検出手段６およびクロスフェード手段４により繰り返し実行される。そして、ステップＳ４およびステップＳ５の処理は波形出力手段７により実行されるようになる。
このように、周期性のない波形データをループさせることにより伸長する際にも、本発明にかかる波形編集装置１においては、評価関数αに基づくクロスフェードを行うようにしたので、つながりをよくしたループ波形を生成することができる。また、聴いた際に違和感のないループ波形を得るように２つの波形ブロックを繰り返し接続することができるようになる。
なお、クロスフェード領域を複数の区分に分割する際の区分の仕方は上記の説明に限るものではない。例えば、ｎ個のサンプルを１つの区分として、それをｎ個より少ないｍ個ずつずらしながら各区分を順次設定し、それを評価関数計算の対象としてもよい。この場合、設定された各区分は、互いに重なり合う部分を有するようになる。
【００４９】
以上説明したように、本発明の実施の形態にかかる波形編集装置１は、周期性のない波形データを伸長する場合であっても、伸長した波形データ部分とのつながりをよくすることができ、これを利用して減衰音のループ波形を生成することもできる。そこで、図１に示す本発明の実施の形態にかかる波形編集装置１を電子楽器に適用した際の電子楽器の構成例を図２に示す。
図２において、中央処理装置（Central Processing Unit：ＣＰＵ）１０は、ＲＯＭ１１に格納された制御プログラムに基づいて各部の制御を行っている。ＲＯＭ１１は、システムＣＰＵ１０が実行する楽音発生プログラムおよびそれに関連するプログラム等が記憶されているＲＯＭ（Read Only Memory）である。ＲＡＭ１２は、演奏データや各種データ等の格納エリアや、ＣＰＵ１０のワークエリア等が設定されるＲＡＭ（Random Access Memory）である。タイマ１３は、動作時の経過時間を示したり、特定の間隔でタイマ割込を発生するタイマである。
【００５０】
インタフェース（Ｉ／Ｏ）１４は、ディスクドライブ１５との間でデータの入出力を行う入出力手段である。ディスクドライブ１５は、セットされた記録媒体であるディスク１６に演奏データや演奏関連データを保存したり、ディスク１６に保存されている演奏データや演奏関連データを、電子楽器５０におけるＲＡＭ１２にロードするためのディスクドライブである。ディスクドライブ１５は、ＨＤＤ（Hard Disk Drive）、ＦＤＤ（Floppy Disk Drive）、ＣＤ（Compact Disk）−ＲＯＭドライブ、ＭＯ（Magneto Optical Disk）ドライブ、ＤＶＤ（Digital Versatile Disk）ドライブ等により構成することができる。インタフェース（Ｉ／Ｏ）１７は、鍵盤１８から出力されるイベントデータを電子楽器５０に取り込む入出力手段（インターフェース）である。インタフェース（Ｉ／Ｏ）１９は、パネル表示器＆ＳＷ２０との間でデータの入出力を行う入出力手段である。パネル表示器＆ＳＷ２０は、電子楽器５０のパネルに備えられている液晶表示器等からなる表示器と、表示器に表示された画面の項目を選択するスイッチボタンや、電子楽器５０において発音する音色を選択する音色選択ボタン等のパネルスイッチを有している。このパネルスイッチを操作することにより、ユーザが各種操作を行うことができるようにされている。
【００５１】
楽音発生器２１は、鍵盤１８からインタフェース（Ｉ／Ｏ）１７を介して入力されたイベントデータや、外部機器２５からインタフェース（Ｉ／Ｏ）２４を介して受け取った演奏データに基づいて楽音データを生成している。生成された楽音データは、ディジタルアナログ変換器（Ｄ／Ａ）２２においてアナログ信号に変換されて、サウンドシステム２３から放音される。サウンドシステム２３は、楽音発生器２１により生成された楽音を放音するスピーカや増幅手段を備えている。インタフェース（Ｉ／Ｏ）２４は、外部機器２５から演奏データや波形データを取り込んだり、外部機器２５へ出力するための入出力手段である。ここで、取り込まれた演奏データや波形データはＲＡＭ１２やディスク１６に記憶される。バスライン２６は、各部がデータ等の受け渡しを行うためのバスラインである。また、電子楽器５０は、ディスク１６等に格納されている自動演奏データに基づいて自動演奏を行うこともできる。
【００５２】
ここで、楽音発生器２１は図１に示す波形編集装置１の機能を備えており、鍵盤１８が操作された際に、鍵盤１８のキーオンに基づいて楽音発生器２１は楽音の生成を開始する。この際に、楽音発生器２１は選択された音色の波形データをＲＡＭ１２より読み出して、鍵盤１８のキーオン中は楽音データを生成し続けるようになる。ここで、キーオン時間が読み出される波形データより長くされている場合は、波形編集機能を用いて前述した波形データの伸長処理を行って楽音データを生成するようにする。生成された楽音データは、Ｄ／Ａ２２にてアナログの楽音信号に変換され、サウンドシステム２３から放音されるようになる。そして、キーオフされた際に、楽音発生器２１は消音処理を行って楽音データの生成を停止させる。
【００５３】
また、シンバルの音色がアサインされた鍵盤１８が操作されたとすると、鍵盤１８のキーオンに基づいて楽音発生器２１はシンバルの楽音の生成を開始する。この際に、楽音発生器２１は選択されたシンバルの波形データを読み出して、鍵盤１８のキーオン中はシンバルの楽音データを生成し続けるようになる。ここで、キーオン時間が読み出されるシンバルの波形データより長くされている場合は、楽音発生器２１において波形編集機能を用いて前述したシンバル波形生成処理が行われ、生成されたシンバルのループ波形の楽音データが生成されるようになる。生成された楽音データは、Ｄ／Ａ２２にてアナログの楽音信号に変換され、サウンドシステム２３から放音されるようになる。この場合のシンバル音は、余韻の長いシンバル音となる。そして、キーオフされた際に、楽音発生器２１は消音処理を行って楽音データの生成を停止させる。
【００５４】
また、楽音発生器２１は次のようにして楽音データを生成するようにしてもよい。まず、録音したシンバル等の波形データから、予め本発明にかかる波形編集方法を実行して波形メモリ音源用のアタック部とループ部からなる波形データを作成し、ＲＡＭ１２に記憶しておく。そして、鍵盤１８からのキーオンに応じて楽音発生器２１がＲＡＭ１２に記憶されているアタック部とループ部からなる波形データを読み出して楽音データを生成する。この場合、キーオンの発生に応じて、波形データのアタック部が一通り読み出され、それに続けてループが繰り返し読み出される。次いで、読み出された波形データに、キーオンの発生、キーオンの停止（キーオフ）に応じて時間変化する振幅エンベロープを付与して、キーオン時間長に応じた時間長の楽音データを生成する。
【００５５】
上記説明した楽音発生器２１による楽音データの生成は、ディスク１６に記憶された自動演奏データによる自動演奏時にも行われる。この際には、自動演奏データにおけるイベントデータに基づいて楽音の発生タイミングおよび発音時間が制御されるようになる。
なお、上記した電子楽器５０における本発明の波形編集方法は、ＣＰＵ１０の制御の元で楽音発生器２１により実行されるプログラムとして実現されている。この波形編集プログラムは、ＲＯＭ１１に格納されて必要とする際に実行されるようになる。
また、本発明の波形編集方法および波形編集装置において、波形データを時間軸上で伸長する等の時間軸制御をリアルタイムで行うようにしたが、本発明はこれに限るものではなくノンリアルタイムで行うようにしてもよい。
【００５６】
【発明の効果】
本発明は以上説明したように、２つの波形ブロックを接続する際に、クロスフェード領域を分割した区分毎の評価関数に基づいてクロスフェード範囲を検出している。これにより、周期性のない波形データを伸長する場合であっても、つながりよく接続して伸長することができるようになる。また、波形ブロック間の相関の度合いに応じた飽和曲線となるフェードイン関数およびフェードアウト関数を用いてクロスフェードを行うようにしている。このため、違和感のない楽音波形を得るように２つの波形ブロックを接続することができるようになる。
さらに、接続する２つの波形ブロックをループスタートの前後の波形ブロックとすることにより、周期性のない波形データであってもつながりをよくすると共に、違和感のないループ波形を得ることができるようになる。これにより、パーカッション等の減衰音の一部をループさせることにより伸長する場合において、違和感がないと共につながりがよいループ波形とすることができる。
【図面の簡単な説明】
【図１】  本発明の実施の形態にかかる波形編集装置の機能ブロック図を示す図である。
【図２】  本発明の実施の形態にかかる波形編集装置を適用した電子楽器の構成例を示す図である。
【図３】  本発明の実施の形態にかかる波形編集装置において波形データを伸長する様子を示す図である。
【図４】  本発明の実施の形態にかかる波形編集装置におけるクロスフェードカーブを示す図である。
【図５】  本発明の実施の形態にかかる波形編集装置において実際の波形データを波形ブロックに分割した様子を示す図である。
【図６】  本発明の実施の形態にかかる波形編集装置において実際の波形データを短縮／伸長する様子を示す図である。
【図７】  本発明の実施の形態にかかる波形編集装置において分割した波形ブロックを接続する様子を示す図である。
【図８】  シンバルの波形データの一例を示す図である。
【図９】  本発明の波形編集装置の実施の形態において帯域別とされた波形データを示す図である。
【図１０】  本発明の波形編集装置の実施の形態において帯域別とされた波形データにおいてループ波形部を生成する様子を示す図である。
【図１１】  本発明の実施の形態にかかる波形編集装置においてループ波形を生成する様子を示す図である。
【図１２】  本発明の実施の形態にかかる波形編集装置において第１のクロスフェードの態様を示す図である。
【図１３】  本発明の実施の形態にかかる波形編集装置において第２のクロスフェードの態様を示す図である。
【図１４】  本発明の実施の形態にかかる波形編集装置において作成されたループ波形の波形データの一例を示す図である。
【図１５】  本発明の実施の形態にかかる波形編集装置におけるシンバル波形生成処理のフローチャートである。
【図１６】  従来の波形編集装置において波形データを分割して再配置した様子を示す図である。
【図１７】  従来の波形編集装置において波形ブロックをクロスフェードする様子を示す図である。
【符号の説明】
１  波形編集装置、２  波形入力手段、３  ブロック分割＆再配置手段、４  クロスフェード手段、５  クロスフェード領域分析手段、６  クロスフェード範囲検出手段、７  波形出力手段、１０  ＣＰＵ、１１  ＲＯＭ、１２  ＲＡＭ、１３  タイマ、１４  Ｉ／Ｏ、１５  ディスクドライブ、１６  ディスク、１７  Ｉ／Ｏ、１８  鍵盤、１９  Ｉ／Ｏ、２０  パネル表示器＆ＳＷ、２１  楽音発生器、２２  Ｄ／Ａ、２３  サウンドシステム、２４  Ｉ／Ｏ、２５  外部機器、２６  バスライン、５０  電子楽器、α  評価関数
【図１】
0003780857.tif 000007
【図２】
0003780857.tif 000008
【図３】
0003780857.tif 000009
【図４】
0003780857.tif 000010
【図５】
0003780857.tif 000011
【図６】
0003780857.tif 000012
【図７】
0003780857.tif 000013
【図８】
0003780857.tif 000014
【図９】
0003780857.tif 000015
【図１０】
0003780857.tif 000016
【図１１】
0003780857.tif 000017
【図１２】
0003780857.tif 000018
【図１３】
0003780857.tif 000019
【図１４】
0003780857.tif 000020
【図１５】
0003780857.tif 000021
【図１６】
0003780857.tif 000022
【図１７】
0003780857.tif 000023