JP3780857B2 - 波形編集方法および波形編集装置 - Google Patents
波形編集方法および波形編集装置 Download PDFInfo
- Publication number
- JP3780857B2 JP3780857B2 JP2001087744A JP2001087744A JP3780857B2 JP 3780857 B2 JP3780857 B2 JP 3780857B2 JP 2001087744 A JP2001087744 A JP 2001087744A JP 2001087744 A JP2001087744 A JP 2001087744A JP 3780857 B2 JP3780857 B2 JP 3780857B2
- Authority
- JP
- Japan
- Prior art keywords
- waveform
- block
- loop
- band
- fade
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
本発明は、波形の伸長やループ波形を作成することのできる波形編集方法および波形編集装置に関する。
【0002】
【従来の技術】
従来より、音源装置や電子楽器においては操作された鍵盤等の演奏キーや演奏データに応じた楽音波形を生成してサウンドシステムから放音している。この場合、生成される楽音波形の長さは、演奏キーの操作具合や演奏データの発音長データに応じて変化するようになる。音源装置や電子楽器においては、長さの異なる多くの波形データを音色毎に用意すると、膨大な容量の記憶装置が必要となるため、一般に音色毎に用意された1つの波形データを時間的に短縮したり伸長したりすることにより、発音期間に応じた長さの楽音波形を生成するようにしている。
【0003】
従来における波形データを伸長する波形編集方法の一例を図16および図17を参照しながら、以下に説明する。
図16(a)は、入力された編集前の波形データあるいは記録されている編集前の波形データであり、この波形データを伸長するようにする。まず、図16(a)に示すように、波形データを所定の長さの波形ブロックに分割する。図示する例では、波形データは等分割されて波形ブロックa、波形ブロックb、波形ブロックc、波形ブロックd、波形ブロックeの5つの波形ブロックに分割されている。次いで、図16(b)に示すように、波形ブロックa、波形ブロックb、波形ブロックc、波形ブロックd、波形ブロックeにおいて、各波形ブロック間を時間的に離すように各波形ブロックを時間軸上でずらせて配置する。このずらせた時間が、伸長する時間に対応するようになる。
【0004】
次に、各波形ブロックが時間軸上でずらされて配置された波形データである波形Aをコピーして波形Bとし、図17に示すように波形Bを波形Aより時間Tdだけ遅らせて時間軸上に再配置する。そして、波形Bの各波形ブロックの始端の時点から波形Aの各波形ブロックの終端の時点にかけてのクロスフェード領域において、波形Aの各波形ブロックから波形Bの各波形ブロックへのクロスフェードを行うようにする。この場合の波形Aに乗算するエンベロープAと、波形Bに乗算するエンベロープBとは図17に示すカーブとされている。すなわち、クロスフェード領域において、フェードアウトされる波形Aの各波形ブロックには直線状に傾斜して下降するフェードアウト関数が乗算され、フェードインされる波形Bの各波形ブロックには直線状に傾斜して上昇するフェードイン関数が乗算される。このように、エンベロープAが乗算された波形Aと、エンベロープBが乗算された波形Bとを加算することにより、各波形ブロックa〜eにおいて時間Tdずつ伸長された波形データを得ることができる。なお、フェードアウト関数およびフェードイン関数の傾斜の度合いはクロスフェード領域の長さに応じて任意に指定することができる。
【0005】
【発明が解決しようとする課題】
しかしながら、従来の波形編集方法においては、クロスフェード領域において直線状に斜めに下降あるいは上昇する関数を、それぞれフェードアウトされる波形とフェードインされる波形に乗算している。このため、クロスフェード領域における2つの波形の振幅や位相に関わらず一様にクロスフェードされるようになり、クロスフェード領域でエンベロープが暴れたり、位相のキャンセルが生じるという問題点があった。
この場合、周期性のある波形データの場合、時間的に前に配置された波形ブロックの後部と、次の波形ブロックの前部で位相を揃えて接続することにより2つの波形ブロックを滑らかに接続することができる。しかしながら、ノイズ的な周期性のない波形データの場合は、位相を合わせられないことから従来の波形編集方法ではつながりをよくすると共に、違和感のない楽音波形を得るように2つの波形ブロックを接続することができないと云う問題点があった。
【0006】
そこで、本発明は、周期性のない波形データであってもつながりをよくすると共に、違和感のない楽音波形やループ波形を得るように2つの波形ブロックを接続することのできる波形編集方法および装置を提供することを目的としている。
【0007】
【課題を解決するための手段】
上記目的を達成するために、本発明の第1の波形編集方法は、第1の波形ブロックと第2の波形ブロックとを接続する波形編集方法であって、前記第1の波形ブロックの後部と前記第2の波形ブロックの前部とが時間的に重なるように、前記第1の波形ブロックと前記第2の波形ブロックとを時間軸上に配置する配置ステップと、前記第1の波形ブロックと前記第2の波形ブロックとの時間的に重なる部分をクロスフェード領域として複数に区分する区分ステップと、該区分ステップにおいて区分された各区分毎に、前記第1の波形ブロックと前記第2の波形ブロックとの相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算ステップと、該演算ステップで検出された前記クロスフェード範囲において、フェードイン関数により前記第2の波形ブロックをフェードインすると共に、フェードアウト関数により前記第1の波形ブロックをフェードアウトするクロスフェードステップとを備えるようにしている。
【0008】
次に、上記目的を達成することのできる本発明の第2の波形編集方法は、波形データを複数の波形ブロックに分割する波形分割ステップと、同一の前記波形ブロックを2つ用意し、その内の一方の波形ブロックの時間軸をずらせて配置し、両波形ブロックにおいて時間軸上で重なる部分をクロスフェード領域として複数に区分する区分ステップと、該区分ステップにおいて区分された各区分毎に、前記両波形ブロック間の相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算ステップと、該演算ステップで検出された前記クロスフェード範囲において、時間軸がずらされている前記波形ブロックをフェードイン関数によりフェードインすると共に、時間軸がずらされていない前記波形ブロックをフェードアウト関数によりフェードアウトするクロスフェードステップとを備え、前記波形ブロック毎に時間軸を伸長するようにしている。
【0009】
さらに、上記本発明の第1、第2の波形編集方法において、前記演算ステップにより得られた前記評価関数を用いて演算することにより、前記評価関数の値が小さくなるに従って、急峻に立ち上がる飽和曲線となる前記フェードイン関数および前記フェードアウト関数を得る第2演算ステップを、さらに備えていてもよい。
【0010】
次に、上記目的を達成することのできる本発明の第3の波形編集方法は、波形データを複数の帯域に分割する帯域分割ステップと、該帯域分割ステップにより分割された各帯域毎の波形データをループスタートの振幅でノーマライズするノーマライズステップと、該ノーマライズステップにより分割された各帯域毎の波形データを複数の波形ブロックに分割する波形分割ステップと、所定のクロスフェード範囲において、ループスタートの直後の前記波形ブロックからループスタートの直前の前記波形ブロックにクロスフェードを行うことによりクロスフェード波形ブロックを生成すると共に、該クロスフェード波形ブロック同士を複数接続することにより繰り返しループする帯域別ループ波形部を生成する帯域別ループ波形部生成ステップと、該帯域別ループ波形部生成ステップにより、各帯域毎に生成された帯域別ループ波形部を加算することによりループ波形部を生成する加算ステップとを備え、前記帯域別ループ波形生成ステップにおけるクロスフェードが、ループスタートの直後の前記波形ブロックとループスタートの直前の前記波形ブロックとの前記クロスフェード範囲における相関を示す評価関数に基づいて求められた飽和曲線のフェードイン関数およびフェードアウト関数を用いて行われるようにしている。
【0011】
次に、上記目的を達成することのできる本発明の第4の波形編集方法は、波形データを複数の帯域に分割する帯域分割ステップと、該帯域分割ステップにより分割された各帯域毎の波形データをループスタートの振幅でノーマライズするノーマライズステップと、該ノーマライズステップにより分割された各帯域毎の波形データを複数の波形ブロックに分割する波形分割ステップと、ループスタートの直後の前記波形ブロックとループスタートの直前の前記波形ブロックとの時間軸上で重なる部分をクロスフェード領域として複数に区分する区分ステップと、該区分ステップにおいて区分された各区分毎に、前記両波形ブロック間の相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算ステップと、該演算ステップにおいて検出されたクロスフェード範囲において、ループスタートの直後の前記波形ブロックからループスタートの直前の前記波形ブロックにクロスフェードを行うことによりクロスフェード波形ブロックを生成すると共に、該クロスフェード波形ブロック同士を接続することにより繰り返しループする帯域別ループ波形部を生成する帯域別ループ波形部生成ステップと、該帯域別ループ波形部生成ステップにより、各帯域毎に生成された帯域別ループ波形部を加算することによりループ波形部を生成する加算ステップとを備えている。
【0012】
また、上記本発明の第4波形編集方法において、前記演算ステップにより得られた前記評価関数を用いて演算することにより、前記評価関数の値が小さくなるに従って、急峻に立ち上がる飽和曲線となる前記フェードイン関数および前記フェードアウト関数を得る第2演算ステップを、さらに備えていてもよい。
【0013】
次に、上記目的を達成することのできる本発明の第1の波形編集装置は、第1の波形ブロックと第2の波形ブロックとを接続する波形編集装置であって、前記第1の波形ブロックの後部と前記第2の波形ブロックの前部とが時間的に重なるように、前記第1の波形ブロックと前記第2の波形ブロックとを時間軸上に配置する配置手段と、前記第1の波形ブロックと前記第2の波形ブロックとの時間的に重なる部分をクロスフェード領域として複数に区分する区分手段と、該区分手段において区分された各区分毎に、前記第1の波形ブロックと前記第2の波形ブロックとの相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算手段と、該演算手段で検出された前記クロスフェード範囲において、フェードイン関数により前記第2の波形ブロックをフェードインすると共に、フェードアウト関数により前記第1の波形ブロックをフェードアウトするクロスフェード手段とを備えるようにしている。
【0014】
次に、上記目的を達成することのできる本発明の第2の波形編集装置は、波形データを複数の波形ブロックに分割する波形分割手段と、同一の前記波形ブロックを2つ用意し、その内の一方の波形ブロックの時間軸をずらせて配置し、両波形ブロックにおいて時間軸上で重なる部分をクロスフェード領域として複数に区分する区分手段と、該区分手段において区分された各区分毎に、前記両波形ブロック間の相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算手段と、該演算手段で検出された前記クロスフェード範囲において、時間軸がずらされている前記波形ブロックをフェードイン関数によりフェードインすると共に、時間軸がずらされていない前記波形ブロックをフェードアウト関数によりフェードアウトするクロスフェード手段とを備え、前記波形ブロック毎に時間軸を伸長するようにしている。
【0015】
また、上記本発明の第1、第2の波形編集装置において、前記演算手段により得られた前記評価関数を用いて演算することにより、前記評価関数の値が小さくなるに従って、急峻に立ち上がる飽和曲線となる前記フェードイン関数および前記フェードアウト関数を得る第2演算手段を、さらに備えていてもよい。
【0016】
次に、上記目的を達成することのできる本発明の第3の波形編集装置は、波形データを複数の帯域に分割する帯域分割手段と、該帯域分割手段により分割された各帯域毎の波形データをループスタートの振幅でノーマライズするノーマライズ手段と、該ノーマライズ手段により分割された各帯域毎の波形データを複数の波形ブロックに分割する波形分割手段と、所定のクロスフェード範囲において、ループスタートの直後の前記波形ブロックからループスタートの直前の前記波形ブロックにクロスフェードを行うことによりクロスフェード波形ブロックを生成すると共に、該クロスフェード波形ブロック同士を複数接続することにより繰り返しループする帯域別ループ波形部を生成する帯域別ループ波形部生成手段と、該帯域別ループ波形部生成手段により、各帯域毎に生成された帯域別ループ波形部を加算することによりループ波形部を生成する加算手段とを備え、前記帯域別ループ波形生成手段におけるクロスフェードが、ループスタートの直後の前記波形ブロックとループスタートの直前の前記波形ブロックとの前記クロスフェード範囲における相関を示す評価関数に基づいて求められた飽和曲線のフェードイン関数およびフェードアウト関数を用いて行われるようにしている。
【0017】
次に、上記目的を達成することのできる本発明の第4の波形編集装置は、波形データを複数の帯域に分割する帯域分割手段と、該帯域分割手段により分割された各帯域毎の波形データをループスタートの振幅でノーマライズするノーマライズ手段と、該ノーマライズ手段により分割された各帯域毎の波形データを複数の波形ブロックに分割する波形分割手段と、ループスタートの直後の前記波形ブロックとループスタートの直前の前記波形ブロックとの時間軸上で重なる部分をクロスフェード領域として複数に区分する区分手段と、該区分手段において区分された各区分毎に、前記両波形ブロック間の相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算手段と、該演算手段において検出されたクロスフェード範囲において、ループスタートの直後の前記波形ブロックからループスタートの直前の前記波形ブロックにクロスフェードを行うことによりクロスフェード波形ブロックを生成すると共に、該クロスフェード波形ブロック同士を接続することにより繰り返しループする帯域別ループ波形部を生成する帯域別ループ波形部生成手段と、該帯域別ループ波形部生成手段により、各帯域毎に生成された帯域別ループ波形部を加算することによりループ波形部を生成する加算手段と、
を備えている。
【0018】
また、上記本発明の第4の波形編集装置において、前記演算手段により得られた前記評価関数を用いて演算することにより、前記評価関数の値が小さくなるに従って、急峻に立ち上がる飽和曲線となる前記フェードイン関数および前記フェードアウト関数を得る第2演算手段を、さらに備えていてもよい。
【0019】
このような本発明によれば、2つの波形ブロックを接続する際に、クロスフェード領域を分割した区分毎の評価関数に基づいてクロスフェード範囲を検出している。これにより、周期性のない波形データを伸長する場合であっても、つながりよく接続して伸長することができるようになる。また、波形ブロック間の相関の度合いに応じた飽和曲線となるフェードイン関数およびフェードアウト関数を用いてクロスフェードを行うようにしている。このため、違和感のない楽音波形を得るように2つの波形ブロックを接続することができるようになる。
さらに、接続する2つの波形ブロックをループスタートの前後の波形ブロックとすることにより、周期性のない波形データであってもつながりをよくすると共に、違和感のないループ波形を得ることができるようになる。これにより、パーカッション等の減衰音の一部をループさせることにより伸長する場合において、違和感がないと共につながりがよいループ波形とすることができる。
【0020】
【発明の実施の形態】
本発明の波形編集方法を具現化した本発明の実施の形態にかかる波形編集装置の機能ブロック図を図1に示す。
図1に示す波形編集装置1において、外部から供給された波形データや、内蔵された記録装置から読み出された波形データが波形入力手段2からブロック分割&再配置手段3に入力される。この波形入力手段2においては、波形入力手段2から入力された波形データが複数の波形ブロックに分割される。この場合、図16に示すように波形データは等間隔で分割されたり、波形データを分析してゼロクロスやピーク等の区切りの良い時点で分割するようにする。次いで、各波形ブロックを時間的に伸長するために、伸長する時間に基づいて図16(b)に示すように各波形ブロックを時間軸上でずらせて配置する。ずらせた時間が伸長する時間に相当するようになる。次に、各波形ブロック毎に波形ブロックを時間的に伸長する処理が行われる。
【0021】
以下では1つの波形ブロックを例に挙げて、波形ブロックを時間的に伸長する処理を説明する。まず、時間軸を伸長する波形ブロックを波形Aとし、波形Aをコピーして波形Bとする。そして、図3に示すように波形Bを波形Aより時間Tdだけ遅らせて時間軸上に再配置する。この場合、波形Aをコピーすることに替えてアドレスポインターを2つ用意し、2つのアドレスポインターのアドレス距離を時間Tdに対応させて波形Aの波形データを読み出すことにより、波形Aおよび波形Bを得るようにしても良い。
【0022】
このようにして得られた波形Aおよび波形Bをクロスフェード領域分析手段5に供給する。クロスフェード領域分析手段5では、図3に示すように波形Bにおける波形ブロックの始端の時点から波形Aにおける波形ブロックの終端の時点にかけてのクロスフェード領域を複数の区分に分割する。図3に示す例では、区分a、区分b、区分c、区分d、区分eの5つの区分に分割し、最適なクロスフェード範囲を求めるために次式(1)で示す計算を区分毎に行って区分毎の評価関数αを得る。
【数1】
ただし、(1)式において、xa(t)は波形Aの波形サンプルであり、xb(t)は波形Bの波形サンプルであり、時間tは0〜nで1区分の時間長とされている。なお、この評価関数αは、各区分における波形Aと波形Bとの相関の割合を示している。
【0023】
求められた各区分の評価関数αはクロスフェード範囲検出手段6に供給され、供給された各区分の評価関数αに基づいてクロスフェード範囲が検出される。例えば、区分aにおいてα=1.9、区分bにおいてα=1.8、区分cにおいてα=1.7、区分dにおいてα=1.6、区分eにおいてα=1.5が得られた場合は、区分aから区分eに向かって次第に位相がずれていることが示されていることになる。クロスフェードを行う範囲は、評価関数αがなるべく高くされており、評価関数αがある範囲内に収まる複数の連続する区分に限定して行うようにする。例えば、最大の評価関数αの10%以内の評価関数αが得られる連続する区分をクロスフェード範囲とする。この場合は、最大の評価関数αは1.9であり、その約10%以内の評価関数αは1.7程度までとなるので、区分a〜区分cが最適のクロスフェード範囲として検出されることになる。
【0024】
検出されたクロスフェード範囲はクロスフェード手段4に供給される。このクロスフェード手段4には、ブロック分割&再配置手段3から波形Aと波形Bとが供給されており、図3に示す区分a〜区分cのクロスフェード範囲における評価関数αの中央値に基づいて計算された最適とされるクロスフェードカーブを用いてクロスフェードが行われる。クロスフェードカーブにおけるフェードイン関数yを求める式を次式(2)に示す。
【数2】
ただし、(2)式において、αはクロスフェード範囲における評価関数αの中央値である。さらに、クロスフェードカーブにおけるフェードアウト関数yを求める式を次式(3)に示す。
【数3】
ただし、(3)式において、αはクロスフェード範囲における評価関数αの中央値である。
(2)式および(3)式では、xが0〜1の範囲において、(2)式のクロスフェードカーブがフェードインし(3)式のクロスフェードカーブがフェードアウトする。このようなクロスフェードカーブで波形のクロスフェードを行なう際は、検出されたクロスフェード範囲にわたってクロスフェードが行われるように横軸方向が伸縮調整される。
【0025】
上記(2)式および(3)式により求められた飽和特性を示すクロスフェードカーブを図4(a)(b)に示す。評価関数αが2とされている場合は、位相が完全に一致している場合であり、この場合はクロスフェードカーブは図4(b)に示すように直線状となる(ただし、実際には位相が完全に一致することはほとんどない)。すなわち、上記(2)式および(3)式を参照すれば明らかなように、相関を示す評価関数αが小さくなるほど急峻に立ち上がる飽和特性を示すようになる。これは、位相が合っていない2つの波形を合成した際にはそのエンベロープの振幅が、個々の波形のエンベロープを加算した振幅より小さくなる(位相が逆転するまでずれていれば、加算した振幅は0となる)ためであり、上記(2)式および(3)式により、その振幅補償が行える最適のクロスフェードカーブを得ているのである。また、クロスフェード範囲において波形Aの波形ブロックと波形Bの波形ブロックとの振幅は、予めその大きさが合うように調整される。
【0026】
クロスフェード手段4においては、波形Aに上記(3)式で求められたフェードアウト関数が乗算されると共に、波形Bに上記(2)式で求められたフェードイン関数が乗算され、乗算結果後の波形Aと波形Bとを加算することによりクロスフェードが行われる。クロスフェードされることにより、時間が伸長された波形ブロックは波形出力手段7から出力される。
このような波形ブロックの時間伸長を、各波形ブロックについて行うことにより、波形データの時間伸長を行うことができる。
図1に示す波形編集装置1においては、上記説明したように評価関数αに基づいてクロスフェード範囲を検出すると共に、評価関数αに基づいてクロスフェードカーブを求めるようにしたため、周期性のない波形データであってもつながりをよくすることができる。また、聴いた際に違和感のない楽音波形を得るように2つの波形ブロックを接続することができるようになる。
【0027】
次に、波形編集装置1における波形編集の実際的な例を図5ないし図7を参照しながら説明する。
図5(a)は、波形入力手段から供給される波形データの一例であり、この波形データはエンベロープが急峻に立ち上がるアタック部が検出された時点に基づいて、図5(b)に示すように1,2,3・・・・,12,・・・の複数の波形ブロックに分割されている。図5(b)に示す複数の波形ブロックに分割された波形データを図6(a)に示す。この波形データを短縮する場合は、図6(b)に示すように各波形ブロックの、例えば後部を切り取って、それぞれの波形ブロックを時間的に短縮するようにする。図6(b)に示す例では、各波形ブロックは67%に短縮されており、短縮比R=0.67とされた波形データとされている。なお、波形データを短縮する処理は、ブロック分割&再配置手段3が行い、クロスフェード領域分析手段5、クロスフェード範囲検出手段6は何も処理を行わず、クロスフェード手段4は、各波形ブロックを、所定のクロスフェード範囲(数十サンプル程度)にわたる従来のクロスフェードにより順次接続する。これは、各波形ブロックの先頭が急峻に立ち上がっており、各波形ブロックの後尾と次の波形ブロックの先頭とにおける振幅や位相が一致しない場合が多いからである。なお、前後の波形ブロックを接続する際に、あえてクロスフェードを行なうことなく直接接続するようにしても良い。
【0028】
また、波形データを時間的に伸長する場合は、複数の波形ブロック1,2,3・・・・,12,・・・を前記説明したように処理することにより、波形ブロック毎に伸長することにより波形データを伸長する。例えば、図6(c)に示す例では、各波形ブロックは150%に伸長されており、伸長比R=1.5とされた波形データとされている。この場合、複数の波形ブロック1,2,3・・・・,12,・・・における伸長部分が、伸長部1i,2i,3i・・・・,12i,・・・として示されている。この伸長部1i,2i,3i・・・・,12i,・・・を、図1に示す波形編集装置1で作成する処理を図7を参照しながら説明する。
【0029】
図7(a)に示す波形データは、ブロック分割&再配置手段3において複数の波形ブロックに分割された状態の元の波形データである。図7(a)では、複数に分割された波形ブロックの内の波形ブロックN,波形ブロック(N+1)、波形ブロック(N+2)の連続する3つのブロックだけが示されている。また、図7(d)は作成された伸長部NiがブロックNとブロック(N+1)との間に挿入され、伸長部(N+1)iがブロック(N+1)とブロック(N+2)との間に挿入されることにより伸長された波形データが示されている。この伸長部Niを作成する際には、伸長部Niの長さが長くされていることから図7(b)に示すように波形ブロックNを時間軸上でずらせて合計3つの波形ブロックNを時間軸上に再配置する。この再配置はブロック分割&再配置手段3により行われるが、波形ブロックNをコピーして再配置しても良いし、波形ブロックNを読み出すアドレスポインタを3つ用意して、3つのアドレスポインタのアドレス距離をずらす時間に応じて設定することにより、読み出した波形ブロックNを時間軸上に等価的にずらせて3つ配置するようにしてもよい。
【0030】
次に、クロスフェード領域分析手段5において、ずらせた波形ブロックNから波形ブロックN’(ハッチした部分)を切り出す。この切り出しでは、波形ブロックNの先頭部分が図5(a)に示すように振幅および位相の変動が激しいアタック波形とされて他の波形に接続しにくくされているため、このアタック波形部分を取り除くように切り出している。次いで、切り出した波形ブロックN’と元の波形ブロックNとが時間軸上で重なるクロスフェード領域を複数の区分に分割する。このクロスフェード領域は、波形ブロックN’の始端の時点から元の波形ブロックNの終端の時点までの領域とされる。
【0031】
そして、最適のクロスフェード範囲を求めるために前記式(1)で示す計算を区分毎に行って区分毎の評価関数αを得る。求められた各区分の評価関数αはクロスフェード範囲検出手段6に供給され、供給された各区分の評価関数αに基づいてクロスフェード範囲が検出される。検出された最適のクロスフェード範囲はクロスフェード手段4に供給される。このクロスフェード手段4には、ブロック分割&再配置手段3から波形ブロックNと波形ブロックN’とが供給されており、検出されたクロスフェード範囲における評価関数αの中央値に基づいて計算された最適のクロスフェードカーブを用いて図7(c)に示すように、波形ブロックNから波形ブロックN’へのクロスフェードが行われる。この場合、例えば最大の評価関数αの約10%以内の評価関数αを有する連続する区分が最適のクロスフェード範囲として検出される。また、クロスフェード手段4における最適のクロスフェードカーブのフェードイン関数yは前記式(2)により求められ、フェードアウト関数yは前記式(3)により求められる。
【0032】
ここで、波形ブロックNから波形ブロックN’へクロスフェードしても、伸長部Niの長さには達しないため、図7(b)に示すように、クロスフェード領域分析手段5において、さらにずらせて再配置した波形ブロックNから波形ブロックN”を切り出す。この切り出しも、波形ブロックNの先頭部分のアタック波形部分を取り除くように切り出している。次いで、切り出した波形ブロックN”(ハッチした部分)とずらせた波形ブロックNから切り出した波形ブロックN’とが時間軸上で重なるクロスフェード領域を複数の区分に分割する。このクロスフェード領域は、波形ブロックN”の始端の時点から波形ブロックN’の終端の時点までの領域とされる。
【0033】
そして、最適のクロスフェード範囲を求めるために前記式(1)で示す計算を区分毎に行って区分毎の評価関数αを得る。求められた各区分の評価関数αはクロスフェード範囲検出手段6に供給され、供給された各区分の評価関数αに基づいて最適のクロスフェード範囲が検出される。検出されたクロスフェード範囲はクロスフェード手段4に供給される。このクロスフェード手段4には、ブロック分割&再配置手段3から波形ブロックN’と波形ブロックN”とが供給されており、検出されたクロスフェード範囲における評価関数αの中央値に基づいて計算された最適のクロスフェードカーブを用いて図7(c)に示すように波形ブロックN’から波形ブロックN”へのクロスフェードが行われる。この場合、例えば最大の評価関数αの約10%以内の評価関数αを有する連続する区分が最適のクロスフェード範囲として検出される。また、クロスフェード手段4における最適のクロスフェードカーブのフェードイン関数yは前記式(2)により求められ、フェードアウト関数yは前記式(3)により求められる。
【0034】
このように、波形ブロックNから波形ブロックN’へのクロスフェード、続いて波形ブロックN’から波形ブロックN”へのクロスフェードを行うことにより、長さが長くされている伸長部Niを生成することができる。この伸長部Niは波形ブロック(N+1)に接続されるが、図5(a)に示すように複数に分割されている波形ブロックの先頭は急峻に立ち上がっており、波形ブロックの後尾と次の波形ブロックの先頭とにおける振幅や位相はほとんど一致していない。そこで、伸長部Niを波形ブロック(N+1)に接続する際には、本発明の波形編集方法によるクロスフェードを行って、位相や振幅を合わせる必要がないので、従来のクロスフェードを行うことにより伸長部Niを波形ブロック(N+1)に接続するようにする。この様子が図7(b)(c)に示されており、伸長部Niと波形ブロック(N+1)とは、傾斜している直線状のクロスフェードカーブによりクロスフェードされる。なお、伸長部Niを波形ブロック(N+1)に接続する際に、あえてクロスフェードを行うことなく直接接続するようにしても良い。
【0035】
伸長部(N+1)iおよび以降の伸長部についても、伸長部Niと同様の処理が行われて作成される。このようにして各波形ブロック1,2,3・・・・,12,・・・における伸長部1i,2i,3i・・・・,12i,・・・を作成することにより、図5(a)に示す波形データの伸長を行うことができる。この場合、図7(b)に示すように波形ブロックを順次時間軸上でずらせて複数再配置することにより、任意の長さの伸長部を作成することができ、波形データを任意の長さで伸長可能とすることができるようになる。
このように波形編集装置1においては、上記説明したように評価関数αに基づいてクロスフェード範囲を検出すると共に、評価関数αに基づいてクロスフェードカーブを求めるようにしたため、周期性のない波形データであってもつながりをよくすることができる。また、聴いた際に違和感のない楽音波形を得るように2つの波形ブロックを接続することができるようになる。
【0036】
なお、上記(2)式および(3)式においてαを、クロスフェード範囲における評価関数αの中央値に替えて評価関数αの平均値としてもよい。また、フェードイン関数およびフェードアウト関数は上記(2)式および(3)式に限るものではなく、評価関数αに応じた飽和曲線となる関数であればよい。
また、評価関数αを前記の(1)式に替えて、次に示す(4)式を計算することにより求めるようにしてもよい。(4)式においては、波形データの電力から評価関数αを求めるようにしている。
【数4】
ただし、(4)式において、xa(t)は一方の波形Aの波形サンプルであり、xb(t)は他方の波形Bの波形サンプルであり、時間tは0〜nで1区分の時間長とされている。
【0037】
さらに、評価関数αを前記の(1)式に替えて、次に示す(5)式を計算することにより求めるようにしてもよい。(5)式においては、波形データのエンベロープから評価関数αを求めるようにしている。
【数5】
ただし、(5)式において、xa(t)は一方の波形Aの波形サンプルであり、xb(t)は他方の波形Bの波形サンプルであり、env()は()内の波形のエンベロープ抽出関数であり、時間tは0〜nで1区分の時間長とされている。
また、評価関数αをクロスフェード領域の区分毎に計算した結果は、前述したようにしだいに小さくなったり、しだいに大きくなったりする場合もあるが、途中の区分において最大の評価関数αが得られる場合もある。このような場合は、最大の評価関数αが得られる区分の前後の区分を最適のクロスフェード範囲として検出する。例えば、最大の評価関数αの約5%以内の評価関数αが得られる区分を最適のクロスフェード範囲とすることができる。なお、最適のクロスフェード範囲を検出する範囲は、評価関数αの約10%や約5%に限られるものではなく、波形データの態様に応じて変化させることができる。
【0038】
次に、波形編集装置1において減衰音波形を生成する波形編集を行う際の処理について図8ないし図15を参照しながら説明する。
減衰音を発生する楽器には種々の楽器があるが、減衰音の波形データを時間軸上で伸長する場合、上述したように複数の波形ブロックに分割して、波形ブロック毎に伸長する処理を行ってもそれほど伸長することはできない。これは、減衰音の波形データの時間的長さが短い場合がほとんどであるためである。そこで、減衰音の波形データを伸長するには、波形データにおける減衰音の余韻の部分をループさせることにより波形データを時間軸上で伸長することが提案されている。ところで、減衰音を発生する楽器の代表としてピアノがあるが、ピアノは周期性のある波形データとされているため、位相を合わせてループさせることにより滑らかに接続されたループ波形を生成することができる。しかしながら、減衰音を発生するパーカッションにおいてはその波形データがノイズ的な周期性のない波形データの場合が多くされている。そこで、ループ波形を生成する際に、上述した波形編集装置1における波形編集方法を用いてクロスフェードを行うようにすると、ノイズ的な周期性のない波形データであっても滑らかに接続されたループ波形を生成することができるようになる。そこで、ループ波形を生成する処理を、具体的にパーカッションであるシンバルをあげて図15に示すシンバル波形生成処理のフローチャートの各ステップに沿って、以下に説明を行う。
【0039】
シンバルの波形データを時間軸上で伸長する場合は、まず、ステップS1にて図8に示すシンバルの波形データを複数の帯域に分割する。ただし、図8に示す波形データは横軸である時間軸が拡大されて示されている。複数の帯域に分割するには、シンバルの波形データをフーリエ変換して各スペクトルに分解し、帯域毎のスペクトルを集めて逆フーリエ変換して合成することにより行う。または、バンドパスフィルタを用いて複数の帯域に分割するようにしてもよい。このようにして、複数の帯域に分割した際の各帯域の波形データの例を図9に示す。この例では、帯域(1)から帯域(16)の16の帯域における波形データが示されている。なお、各帯域の中心周波数の間隔は、対数的に等間隔とされている。
【0040】
次に、ステップS2にて分割された各帯域毎に波形データの振幅を、ループスタートの振幅でノーマライズする。このノーマライズを、図10(a)に示す分割された1つの帯域の波形データを参照して説明する。図10(a)に示す時点t2がループスタートの時点とされている場合は、図示されているエンベロープ曲線の逆の関数を求め、時点t2の振幅を基準として求められたエンベロープの逆関数を図10(a)に示す波形データに乗算することにより、当該波形の時点t2の振幅でノーマライズする。図10(a)に示す波形データの振幅をノーマライズした波形データが図10(c)に示されている。このように、ノーマライズ処理を行うことにより振幅がほぼ一定となる。このノーマライズ処理が、分割された各帯域毎の波形データに対して行われて、各帯域の波形データの振幅が時間的にほぼ一定とされる。なお、図10(a)に示す時点t2がループスタートの時点とされている場合は、時点t3がループエンドの時点となる。また、時点t1,時点t2,時点t3は各帯域の波形データにおいて共通のタイミングとされている。
【0041】
そして、図10(a)に示す元の波形データは、例えば等間隔で波形ブロックに分割されて、図10(b)に示すように元波形A、元波形B、元波形C、元波形D・・・に分割される。また、図10(c)に示すノーマライズされた波形データも同様の間隔で波形ブロックに分割され、図10(d)に示すようにループスタートの直前の波形ブロックが波形Bとされ、ループスタートの直後の波形ブロックが波形Cとされる。図示する場合は、元の波形データおよびノーマライズされた波形データを等間隔で分割するようにしたが、必ずしも等間隔で分割しなければならないものではない。
【0042】
次に、ステップS3にて各帯域毎に、ループスタートの前後の波形ブロックをクロスフェードさせることによりループ波形部を生成する。この処理では、図10(d)に示すループスタートの時点t2の前後の波形ブロックである波形Bと波形Cとからループ波形部を生成する。具体的には、図10(e)に示すようにループスタート時点t2の直後の波形Cから、ループスタート時点t2の直前の波形Bの一部を切り出した波形B’へクロスフェードさせる。続いて、波形B’の後尾に波形Cを接続させる。この場合、波形B’の後尾に波形Cを直接接続しても、波形B’の後尾は波形Bの後尾で構成されており、図10(d)に示すように波形Bの後尾は波形Cの先頭に位相および振幅が連続して接続されているため、滑らかに接続される。このようにループ波形部を生成するには、波形Bと波形Cとの波形ブロックの全体が必要なわけではなく、波形Bの後部と波形Aの前部とから構成されるクロスフェード領域の部分だけあればよい。
【0043】
このクロスフェード処理には、2つの実施の形態があり、第1のクロスフェード処理について図12を参照して説明する。図12(a)に示す波形Cは、図10(d)に示す波形Cであり、図12(b)に示す波形Bは図10(d)に示す波形Bであり、図示するようにほぼ時間軸上に並列に再配置される。そして、波形Bの途中から終端までを切り出して波形B’(ハッチで示している)とする。次いで、所定のクロスフェード範囲を定めて、最適値のクロスフェード関数を得るためにそのクロスフェード範囲における評価関数αを上記(1)式を用いて計算する。この場合の時間tは、クロスフェード範囲の始端が0、終端がnとなる。次いで、得られた評価関数αを上記(2)式および(3)式に代入して、最適のフェードイン関数およびフェードアウト関数を求める。そして、クロスフェード範囲において、上記(2)式および(3)式により求められたフェードイン関数およびフェードアウト関数を用いて図12(c)に示すように波形Cから波形B’へのクロスフェードを行うようにする。このようにして生成したループ波形部を複数回繰り返すことにより図10(e)に示すようなループ波形部を生成することができる。
【0044】
次に、第2のクロスフェード処理を図13を参照して説明する。
図13(a)に示す波形Cは、図10(d)に示す波形Cであり、図12(b)に示す波形Bは図10(d)に示す波形Bであり、図示するようにほぼ時間軸上に並列に再配置される。そして、波形Bの途中から終端までを切り出して波形B’(ハッチで示している)とする。次いで、波形Cと切り出した波形B’とが時間軸上で重なるクロスフェード領域を複数の区分に分割する。このクロスフェード領域は、波形B’の始端の時点から波形Cの終端の時点までの領域とされ、例えば図示するように区分a〜区分pに分割されている。次いで、最適のクロスフェード範囲を検出するために前記式(1)で示す計算を区分毎に行って区分毎の評価関数αを得る。求められた各区分の評価関数αから、例えば最大の評価関数αの約10%以内の評価関数αを有する連続する区分e〜区分jが最適のクロスフェード範囲として検出される。次いで、クロスフェード範囲内の評価関数αの中央値を上記(2)式および(3)式に代入して、最適のフェードイン関数およびフェードアウト関数を求める。そして、クロスフェード範囲において、上記(2)式および(3)式により求められたフェードイン関数およびフェードアウト関数を用いて図13(c)に示すように波形Cから波形B’へのクロスフェードを行うようにする。このようにして生成したループ波形部を複数回繰り返すことにより図10(e)に示すようなループ波形部を生成することができる。
【0045】
上述した第1のクロスフェード処理あるいは第2のクロスフェード処理のいずれかのクロスフェード処理を行うことにより、ステップS3において各帯域毎のループ波形部が生成されるようになる。次いで、ステップS4にて生成された各帯域のループ波形部である結果が全て加算される。この加算は、時点t2の振幅でノーマライズされた各帯域のループ部を、その振幅のままで加算することにより実行され、全ての帯域成分からなるループ波形部が生成されるようになる。この全ての帯域成分からなるループ波形部は、各帯域毎のループ波形部の振幅が時間的にノーマライズされていることから、そのエンベロープはほぼ一定となる。続いて、ステップS4にて元の波形データと全ての帯域成分からなるループ波形部とを、ループスタートの時点においてそのまま、あるいは、クロスフェードすることにより接続して、アタック部とループ部により構成される波形メモリ音源用のシンバルの波形データが生成されるようになる。この様子が、図11に示されている。
【0046】
図11(a)には、帯域分割する前の元の波形データを分割した元波形A、元波形B、元波形C、元波形Dの波形ブロックが示されており、元波形Bの終端(元波形Cの始端)の時点がループスタートの時点t2とされている。図11(b)に示すループ波形は、前記ステップS4にて生成された全ての帯域成分からなるループ波形部であり、時点t2に配置される。そして、時点t0において元波形Aが読み出され、続いて時点t1にて元波形Bが読み出され、時点t2のループスタートにおいて元波形Bから全ての帯域成分からなるループ波形部へのクロスフェードが行われる。この場合、ループ波形部の先頭は図10(e)に示すように波形Cの先頭とされているので、元波形Bの後尾とループ波形部の先頭との位相は一致する。そこで、ループスタート時点t2におけるシンバルの波形データの振幅にループ波形部の振幅を合わせれば、そのまま元波形Bにループ波形部を接続することができる。その場合、完成したシンバルの波形データは、元波形Aと元波形Bをアタック部、生成されたループ波形部をループ部とする波形となる。
【0047】
また、図11(c)に示すように元波形Bにループ波形部を接続するようにしてもよい。図11(c)に示す接続は、ループ波形部の後尾の一部を取り出し、取り出したループ波形部と元波形Bの後尾との間でクロスフェードを行い接続部を生成する。この場合、元波形Bをフェードアウトしループ波形部をフェードインする。そして、図示するように元波形Bの後尾を生成された接続部で入れ替えて、接続部には直接ループ波形部を接続する。このようにすれば、ループ波形部として元波形Cとは異なる形状の波形が生成されてしまった場合でも、波形形状が急激に変わることなく滑らかに元波形Bにループ波形部を接続することができる。このようにして作成された図11(c)に示すシンバルのループ波形の波形データの実際の一例を図14に示す。この図において、時点t0から時点t2にかけて完成したシンバルの波形データがアタック部であり、時点t2以降のループ部波形がループ部である。図14に示すように、シンバルの波形データのように周期性のない波形データであっても、つながりが良好であると共に違和感のないループ波形を得ることができる。
【0048】
なお、図15におけるフローチャートのステップS1の処理およびステップS2の処理は、図1における波形編集装置1のブロック分割&再配置手段により実行され、ステップS3の処理はクロスフェード領域分析手段5、クロスフェード範囲検出手段6およびクロスフェード手段4により繰り返し実行される。そして、ステップS4およびステップS5の処理は波形出力手段7により実行されるようになる。
このように、周期性のない波形データをループさせることにより伸長する際にも、本発明にかかる波形編集装置1においては、評価関数αに基づくクロスフェードを行うようにしたので、つながりをよくしたループ波形を生成することができる。また、聴いた際に違和感のないループ波形を得るように2つの波形ブロックを繰り返し接続することができるようになる。
なお、クロスフェード領域を複数の区分に分割する際の区分の仕方は上記の説明に限るものではない。例えば、n個のサンプルを1つの区分として、それをn個より少ないm個ずつずらしながら各区分を順次設定し、それを評価関数計算の対象としてもよい。この場合、設定された各区分は、互いに重なり合う部分を有するようになる。
【0049】
以上説明したように、本発明の実施の形態にかかる波形編集装置1は、周期性のない波形データを伸長する場合であっても、伸長した波形データ部分とのつながりをよくすることができ、これを利用して減衰音のループ波形を生成することもできる。そこで、図1に示す本発明の実施の形態にかかる波形編集装置1を電子楽器に適用した際の電子楽器の構成例を図2に示す。
図2において、中央処理装置(Central Processing Unit:CPU)10は、ROM11に格納された制御プログラムに基づいて各部の制御を行っている。ROM11は、システムCPU10が実行する楽音発生プログラムおよびそれに関連するプログラム等が記憶されているROM(Read Only Memory)である。RAM12は、演奏データや各種データ等の格納エリアや、CPU10のワークエリア等が設定されるRAM(Random Access Memory)である。タイマ13は、動作時の経過時間を示したり、特定の間隔でタイマ割込を発生するタイマである。
【0050】
インタフェース(I/O)14は、ディスクドライブ15との間でデータの入出力を行う入出力手段である。ディスクドライブ15は、セットされた記録媒体であるディスク16に演奏データや演奏関連データを保存したり、ディスク16に保存されている演奏データや演奏関連データを、電子楽器50におけるRAM12にロードするためのディスクドライブである。ディスクドライブ15は、HDD(Hard Disk Drive)、FDD(Floppy Disk Drive)、CD(Compact Disk)−ROMドライブ、MO(Magneto Optical Disk)ドライブ、DVD(Digital Versatile Disk)ドライブ等により構成することができる。インタフェース(I/O)17は、鍵盤18から出力されるイベントデータを電子楽器50に取り込む入出力手段(インターフェース)である。インタフェース(I/O)19は、パネル表示器&SW20との間でデータの入出力を行う入出力手段である。パネル表示器&SW20は、電子楽器50のパネルに備えられている液晶表示器等からなる表示器と、表示器に表示された画面の項目を選択するスイッチボタンや、電子楽器50において発音する音色を選択する音色選択ボタン等のパネルスイッチを有している。このパネルスイッチを操作することにより、ユーザが各種操作を行うことができるようにされている。
【0051】
楽音発生器21は、鍵盤18からインタフェース(I/O)17を介して入力されたイベントデータや、外部機器25からインタフェース(I/O)24を介して受け取った演奏データに基づいて楽音データを生成している。生成された楽音データは、ディジタルアナログ変換器(D/A)22においてアナログ信号に変換されて、サウンドシステム23から放音される。サウンドシステム23は、楽音発生器21により生成された楽音を放音するスピーカや増幅手段を備えている。インタフェース(I/O)24は、外部機器25から演奏データや波形データを取り込んだり、外部機器25へ出力するための入出力手段である。ここで、取り込まれた演奏データや波形データはRAM12やディスク16に記憶される。バスライン26は、各部がデータ等の受け渡しを行うためのバスラインである。また、電子楽器50は、ディスク16等に格納されている自動演奏データに基づいて自動演奏を行うこともできる。
【0052】
ここで、楽音発生器21は図1に示す波形編集装置1の機能を備えており、鍵盤18が操作された際に、鍵盤18のキーオンに基づいて楽音発生器21は楽音の生成を開始する。この際に、楽音発生器21は選択された音色の波形データをRAM12より読み出して、鍵盤18のキーオン中は楽音データを生成し続けるようになる。ここで、キーオン時間が読み出される波形データより長くされている場合は、波形編集機能を用いて前述した波形データの伸長処理を行って楽音データを生成するようにする。生成された楽音データは、D/A22にてアナログの楽音信号に変換され、サウンドシステム23から放音されるようになる。そして、キーオフされた際に、楽音発生器21は消音処理を行って楽音データの生成を停止させる。
【0053】
また、シンバルの音色がアサインされた鍵盤18が操作されたとすると、鍵盤18のキーオンに基づいて楽音発生器21はシンバルの楽音の生成を開始する。この際に、楽音発生器21は選択されたシンバルの波形データを読み出して、鍵盤18のキーオン中はシンバルの楽音データを生成し続けるようになる。ここで、キーオン時間が読み出されるシンバルの波形データより長くされている場合は、楽音発生器21において波形編集機能を用いて前述したシンバル波形生成処理が行われ、生成されたシンバルのループ波形の楽音データが生成されるようになる。生成された楽音データは、D/A22にてアナログの楽音信号に変換され、サウンドシステム23から放音されるようになる。この場合のシンバル音は、余韻の長いシンバル音となる。そして、キーオフされた際に、楽音発生器21は消音処理を行って楽音データの生成を停止させる。
【0054】
また、楽音発生器21は次のようにして楽音データを生成するようにしてもよい。まず、録音したシンバル等の波形データから、予め本発明にかかる波形編集方法を実行して波形メモリ音源用のアタック部とループ部からなる波形データを作成し、RAM12に記憶しておく。そして、鍵盤18からのキーオンに応じて楽音発生器21がRAM12に記憶されているアタック部とループ部からなる波形データを読み出して楽音データを生成する。この場合、キーオンの発生に応じて、波形データのアタック部が一通り読み出され、それに続けてループが繰り返し読み出される。次いで、読み出された波形データに、キーオンの発生、キーオンの停止(キーオフ)に応じて時間変化する振幅エンベロープを付与して、キーオン時間長に応じた時間長の楽音データを生成する。
【0055】
上記説明した楽音発生器21による楽音データの生成は、ディスク16に記憶された自動演奏データによる自動演奏時にも行われる。この際には、自動演奏データにおけるイベントデータに基づいて楽音の発生タイミングおよび発音時間が制御されるようになる。
なお、上記した電子楽器50における本発明の波形編集方法は、CPU10の制御の元で楽音発生器21により実行されるプログラムとして実現されている。この波形編集プログラムは、ROM11に格納されて必要とする際に実行されるようになる。
また、本発明の波形編集方法および波形編集装置において、波形データを時間軸上で伸長する等の時間軸制御をリアルタイムで行うようにしたが、本発明はこれに限るものではなくノンリアルタイムで行うようにしてもよい。
【0056】
【発明の効果】
本発明は以上説明したように、2つの波形ブロックを接続する際に、クロスフェード領域を分割した区分毎の評価関数に基づいてクロスフェード範囲を検出している。これにより、周期性のない波形データを伸長する場合であっても、つながりよく接続して伸長することができるようになる。また、波形ブロック間の相関の度合いに応じた飽和曲線となるフェードイン関数およびフェードアウト関数を用いてクロスフェードを行うようにしている。このため、違和感のない楽音波形を得るように2つの波形ブロックを接続することができるようになる。
さらに、接続する2つの波形ブロックをループスタートの前後の波形ブロックとすることにより、周期性のない波形データであってもつながりをよくすると共に、違和感のないループ波形を得ることができるようになる。これにより、パーカッション等の減衰音の一部をループさせることにより伸長する場合において、違和感がないと共につながりがよいループ波形とすることができる。
【図面の簡単な説明】
【図1】 本発明の実施の形態にかかる波形編集装置の機能ブロック図を示す図である。
【図2】 本発明の実施の形態にかかる波形編集装置を適用した電子楽器の構成例を示す図である。
【図3】 本発明の実施の形態にかかる波形編集装置において波形データを伸長する様子を示す図である。
【図4】 本発明の実施の形態にかかる波形編集装置におけるクロスフェードカーブを示す図である。
【図5】 本発明の実施の形態にかかる波形編集装置において実際の波形データを波形ブロックに分割した様子を示す図である。
【図6】 本発明の実施の形態にかかる波形編集装置において実際の波形データを短縮/伸長する様子を示す図である。
【図7】 本発明の実施の形態にかかる波形編集装置において分割した波形ブロックを接続する様子を示す図である。
【図8】 シンバルの波形データの一例を示す図である。
【図9】 本発明の波形編集装置の実施の形態において帯域別とされた波形データを示す図である。
【図10】 本発明の波形編集装置の実施の形態において帯域別とされた波形データにおいてループ波形部を生成する様子を示す図である。
【図11】 本発明の実施の形態にかかる波形編集装置においてループ波形を生成する様子を示す図である。
【図12】 本発明の実施の形態にかかる波形編集装置において第1のクロスフェードの態様を示す図である。
【図13】 本発明の実施の形態にかかる波形編集装置において第2のクロスフェードの態様を示す図である。
【図14】 本発明の実施の形態にかかる波形編集装置において作成されたループ波形の波形データの一例を示す図である。
【図15】 本発明の実施の形態にかかる波形編集装置におけるシンバル波形生成処理のフローチャートである。
【図16】 従来の波形編集装置において波形データを分割して再配置した様子を示す図である。
【図17】 従来の波形編集装置において波形ブロックをクロスフェードする様子を示す図である。
【符号の説明】
1 波形編集装置、2 波形入力手段、3 ブロック分割&再配置手段、4 クロスフェード手段、5 クロスフェード領域分析手段、6 クロスフェード範囲検出手段、7 波形出力手段、10 CPU、11 ROM、12 RAM、13 タイマ、14 I/O、15 ディスクドライブ、16 ディスク、17 I/O、18 鍵盤、19 I/O、20 パネル表示器&SW、21 楽音発生器、22 D/A、23 サウンドシステム、24 I/O、25 外部機器、26 バスライン、50 電子楽器、α 評価関数
Claims (12)
- 第1の波形ブロックと第2の波形ブロックとを接続する波形編集方法であって、
前記第1の波形ブロックの後部と前記第2の波形ブロックの前部とが時間的に重なるように、前記第1の波形ブロックと前記第2の波形ブロックとを時間軸上に配置する配置ステップと、
前記第1の波形ブロックと前記第2の波形ブロックとの時間的に重なる部分をクロスフェード領域として複数に区分する区分ステップと、
該区分ステップにおいて区分された各区分毎に、前記第1の波形ブロックと前記第2の波形ブロックとの相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算ステップと、
該演算ステップで検出された前記クロスフェード範囲において、フェードイン関数により前記第2の波形ブロックをフェードインすると共に、フェードアウト関数により前記第1の波形ブロックをフェードアウトするクロスフェードステップとを備えるようにしたことを特徴とする波形編集方法。 - 波形データを複数の波形ブロックに分割する波形分割ステップと、
同一の前記波形ブロックを2つ用意し、その内の一方の波形ブロックの時間軸をずらせて配置し、両波形ブロックにおいて時間軸上で重なる部分をクロスフェード領域として複数に区分する区分ステップと、
該区分ステップにおいて区分された各区分毎に、前記両波形ブロック間の相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算ステップと、
該演算ステップで検出された前記クロスフェード範囲において、時間軸がずらされている前記波形ブロックをフェードイン関数によりフェードインすると共に、時間軸がずらされていない前記波形ブロックをフェードアウト関数によりフェードアウトするクロスフェードステップとを備え、
前記波形ブロック毎に時間軸を伸長するようにしたことを特徴とする波形編集方法。 - 前記演算ステップにより得られた前記評価関数を用いて演算することにより、前記評価関数の値が小さくなるに従って、急峻に立ち上がる飽和曲線となる前記フェードイン関数および前記フェードアウト関数を得る第2演算ステップを、さらに備えることを特徴とする請求項1あるいは2記載の波形編集方法。
- 波形データを複数の帯域に分割する帯域分割ステップと、
該帯域分割ステップにより分割された各帯域毎の波形データをループスタートの振幅でノーマライズするノーマライズステップと、
該ノーマライズステップにより分割された各帯域毎の波形データを複数の波形ブロックに分割する波形分割ステップと、
所定のクロスフェード範囲において、ループスタートの直後の前記波形ブロックからループスタートの直前の前記波形ブロックにクロスフェードを行うことによりクロスフェード波形ブロックを生成すると共に、該クロスフェード波形ブロック同士を複数接続することにより繰り返しループする帯域別ループ波形部を生成する帯域別ループ波形部生成ステップと、
該帯域別ループ波形部生成ステップにより、各帯域毎に生成された帯域別ループ波形部を加算することによりループ波形部を生成する加算ステップとを備え、
前記帯域別ループ波形生成ステップにおけるクロスフェードが、ループスタートの直後の前記波形ブロックとループスタートの直前の前記波形ブロックとの前記クロスフェード範囲における相関を示す評価関数に基づいて求められた飽和曲線のフェードイン関数およびフェードアウト関数を用いて行われるようにしたことを特徴とする波形編集方法。 - 波形データを複数の帯域に分割する帯域分割ステップと、
該帯域分割ステップにより分割された各帯域毎の波形データをループスタートの振幅でノーマライズするノーマライズステップと、
該ノーマライズステップにより分割された各帯域毎の波形データを複数の波形ブロックに分割する波形分割ステップと、
ループスタートの直後の前記波形ブロックとループスタートの直前の前記波形ブロックとの時間軸上で重なる部分をクロスフェード領域として複数に区分する区分ステップと、
該区分ステップにおいて区分された各区分毎に、前記両波形ブロック間の相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算ステップと、
該演算ステップにおいて検出されたクロスフェード範囲において、ループスタートの直後の前記波形ブロックからループスタートの直前の前記波形ブロックにクロスフェードを行うことによりクロスフェード波形ブロックを生成すると共に、該クロスフェード波形ブロック同士を接続することにより繰り返しループする帯域別ループ波形部を生成する帯域別ループ波形部生成ステップと、
該帯域別ループ波形部生成ステップにより、各帯域毎に生成された帯域別ループ波形部を加算することによりループ波形部を生成する加算ステップと、
を備えるようにしたことを特徴とする波形編集方法。 - 前記演算ステップにより得られた前記評価関数を用いて演算することにより、前記評価関数の値が小さくなるに従って、急峻に立ち上がる飽和曲線となる前記フェードイン関数および前記フェードアウト関数を得る第2演算ステップを、さらに備えることを特徴とする請求項5記載の波形編集方法。
- 第1の波形ブロックと第2の波形ブロックとを接続する波形編集装置であって、
前記第1の波形ブロックの後部と前記第2の波形ブロックの前部とが時間的に重なるように、前記第1の波形ブロックと前記第2の波形ブロックとを時間軸上に配置する配置手段と、
前記第1の波形ブロックと前記第2の波形ブロックとの時間的に重なる部分をクロスフェード領域として複数に区分する区分手段と、
該区分手段において区分された各区分毎に、前記第1の波形ブロックと前記第2の波形ブロックとの相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算手段と、
該演算手段で検出された前記クロスフェード範囲において、フェードイン関数により前記第2の波形ブロックをフェードインすると共に、フェードアウト関数により前記第1の波形ブロックをフェードアウトするクロスフェード手段とを備えるようにしたことを特徴とする波形編集装置。 - 波形データを複数の波形ブロックに分割する波形分割手段と、
同一の前記波形ブロックを2つ用意し、その内の一方の波形ブロックの時間軸をずらせて配置し、両波形ブロックにおいて時間軸上で重なる部分をクロスフェード領域として複数に区分する区分手段と、
該区分手段において区分された各区分毎に、前記両波形ブロック間の相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算手段と、
該演算手段で検出された前記クロスフェード範囲において、時間軸がずらされている前記波形ブロックをフェードイン関数によりフェードインすると共に、時間軸がずらされていない前記波形ブロックをフェードアウト関数によりフェードアウトするクロスフェード手段とを備え、
前記波形ブロック毎に時間軸を伸長するようにしたことを特徴とする波形編集装置。 - 前記演算手段により得られた前記評価関数を用いて演算することにより、前記評価関数の値が小さくなるに従って、急峻に立ち上がる飽和曲線となる前記フェードイン関数および前記フェードアウト関数を得る第2演算手段を、さらに備えることを特徴とする請求項7あるいは8記載の波形編集装置。
- 波形データを複数の帯域に分割する帯域分割手段と、
該帯域分割手段により分割された各帯域毎の波形データをループスタートの振幅でノーマライズするノーマライズ手段と、
該ノーマライズ手段により分割された各帯域毎の波形データを複数の波形ブロックに分割する波形分割手段と、
所定のクロスフェード範囲において、ループスタートの直後の前記波形ブロックからループスタートの直前の前記波形ブロックにクロスフェードを行うことによりクロスフェード波形ブロックを生成すると共に、該クロスフェード波形ブロック同士を複数接続することにより繰り返しループする帯域別ループ波形部を生成する帯域別ループ波形部生成手段と、
該帯域別ループ波形部生成手段により、各帯域毎に生成された帯域別ループ波形部を加算することによりループ波形部を生成する加算手段とを備え、
前記帯域別ループ波形生成手段におけるクロスフェードが、ループスタートの直後の前記波形ブロックとループスタートの直前の前記波形ブロックとの前記クロスフェード範囲における相関を示す評価関数に基づいて求められた飽和曲線のフェードイン関数およびフェードアウト関数を用いて行われるようにしたことを特徴とする波形編集装置。 - 波形データを複数の帯域に分割する帯域分割手段と、
該帯域分割手段により分割された各帯域毎の波形データをループスタートの振幅でノーマライズするノーマライズ手段と、
該ノーマライズ手段により分割された各帯域毎の波形データを複数の波形ブロックに分割する波形分割手段と、
ループスタートの直後の前記波形ブロックとループスタートの直前の前記波形ブロックとの時間軸上で重なる部分をクロスフェード領域として複数に区分する区分手段と、
該区分手段において区分された各区分毎に、前記両波形ブロック間の相関を示す評価関数を演算し、得られた評価関数に基づいてクロスフェード範囲を決定する演算手段と、
該演算手段において検出されたクロスフェード範囲において、ループスタートの直後の前記波形ブロックからループスタートの直前の前記波形ブロックにクロスフェードを行うことによりクロスフェード波形ブロックを生成すると共に、該クロスフェード波形ブロック同士を接続することにより繰り返しループする帯域別ループ波形部を生成する帯域別ループ波形部生成手段と、
該帯域別ループ波形部生成手段により、各帯域毎に生成された帯域別ループ波形部を加算することによりループ波形部を生成する加算手段と、
を備えるようにしたことを特徴とする波形編集装置。 - 前記演算手段により得られた前記評価関数を用いて演算することにより、前記評価関数の値が小さくなるに従って、急峻に立ち上がる飽和曲線となる前記フェードイン関数および前記フェードアウト関数を得る第2演算手段を、さらに備えることを特徴とする請求項11記載の波形編集装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001087744A JP3780857B2 (ja) | 2001-03-26 | 2001-03-26 | 波形編集方法および波形編集装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001087744A JP3780857B2 (ja) | 2001-03-26 | 2001-03-26 | 波形編集方法および波形編集装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002287758A JP2002287758A (ja) | 2002-10-04 |
JP3780857B2 true JP3780857B2 (ja) | 2006-05-31 |
Family
ID=18942952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001087744A Expired - Fee Related JP3780857B2 (ja) | 2001-03-26 | 2001-03-26 | 波形編集方法および波形編集装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3780857B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101278349A (zh) * | 2005-09-30 | 2008-10-01 | 皇家飞利浦电子股份有限公司 | 处理用于重放的音频的方法和设备 |
JP4779553B2 (ja) * | 2005-10-06 | 2011-09-28 | ヤマハ株式会社 | 音声信号の圧伸方法および音声信号圧伸装置 |
JP5434120B2 (ja) * | 2009-02-16 | 2014-03-05 | ヤマハ株式会社 | インパルス応答加工装置、残響付与装置およびプログラム |
JP2011203482A (ja) * | 2010-03-25 | 2011-10-13 | Yamaha Corp | 音声処理装置 |
JP6616435B2 (ja) * | 2018-01-25 | 2019-12-04 | 株式会社カプコン | 音声生成装置、音声生成プログラム |
JP7343320B2 (ja) * | 2019-07-23 | 2023-09-12 | 株式会社コーエーテクモゲームス | 情報処理装置、情報処理方法、及びプログラム |
-
2001
- 2001-03-26 JP JP2001087744A patent/JP3780857B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002287758A (ja) | 2002-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7003120B1 (en) | Method of modifying harmonic content of a complex waveform | |
JP5135931B2 (ja) | 楽曲加工装置およびプログラム | |
US9613635B2 (en) | Automated performance technology using audio waveform data | |
JP2800465B2 (ja) | 電子楽器 | |
US7396992B2 (en) | Tone synthesis apparatus and method | |
JP6939922B2 (ja) | 伴奏制御装置、伴奏制御方法、電子楽器及びプログラム | |
US8791350B2 (en) | Accompaniment data generating apparatus | |
JP3780857B2 (ja) | 波形編集方法および波形編集装置 | |
JP3008922B2 (ja) | 楽音発生装置および楽音発生方法 | |
JP3654117B2 (ja) | 時間軸方向における楽音波形信号の伸縮方法 | |
JP3601373B2 (ja) | 波形編集方法 | |
EP3373289B1 (en) | Electronic musical instrument, musical sound generating method, and storage medium | |
JP4736046B2 (ja) | 波形データ生産方法、波形データ生産装置、プログラムおよび波形メモリ生産方法 | |
JP3279861B2 (ja) | 楽音信号発生装置 | |
WO2010146624A1 (ja) | 音声信号処理装置のタイムスケーリング方法、音声信号処理装置のピッチシフト方法、音声信号処理装置およびプログラム | |
JP2002287744A (ja) | 波形データ分析方法、波形データ分析装置およびプログラム | |
JP3095018B2 (ja) | 楽音発生装置 | |
JP3743993B2 (ja) | コード判定装置、コード判定方法およびコード判定方法を記録した媒体 | |
JP4402853B2 (ja) | 演奏データ生成方法および電子鍵盤楽器 | |
JP3872186B2 (ja) | 自動演奏装置 | |
JP4172366B2 (ja) | 自動演奏装置、自動演奏プログラム、自動演奏データ及びそのデータを記録した記録媒体 | |
JP3752855B2 (ja) | 波形データ作成方法 | |
JP2004219495A (ja) | 電子楽器 | |
JP4043126B2 (ja) | 波形再生装置の制御データ生成装置 | |
JP4345010B2 (ja) | ピッチ変更量決定方法、ピッチ変更量決定装置およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051206 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060126 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060214 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060227 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3780857 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090317 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100317 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110317 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110317 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120317 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130317 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140317 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |