JP3752855B2 - 波形データ作成方法 - Google Patents
波形データ作成方法 Download PDFInfo
- Publication number
- JP3752855B2 JP3752855B2 JP22255998A JP22255998A JP3752855B2 JP 3752855 B2 JP3752855 B2 JP 3752855B2 JP 22255998 A JP22255998 A JP 22255998A JP 22255998 A JP22255998 A JP 22255998A JP 3752855 B2 JP3752855 B2 JP 3752855B2
- Authority
- JP
- Japan
- Prior art keywords
- loop
- waveform data
- waveform
- frequency component
- point
- 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 - Lifetime
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
この発明は、いわゆる波形メモリ方式の音源などにおいて、波形メモリに格納される楽音波形データを作成する波形データ作成方法に関する。
【0002】
【従来の技術】
メモリに予め記憶された楽音波形のサンプルデータ(波形データ)を読み出すことにより楽音信号を生成する波形メモリ方式の音源が知られている。この音源においては、通常、元となる楽音波形の先頭部分をアタック波形として切り出し、この先頭部分に後続する定常波形とみなしてよい区間、すなわち、ほぼ同一の波形の繰り返しとみなしてよい区間から繰り返しの一単位となる波形をループ波形として切り出し、このアタック波形とループ波形の波形データを音源波形データとしてメモリに格納している。そして、楽音発生指示が与えられたとき、指示された音高に対応した速度で、まず、前記アタック波形の音源波形データを前記メモリから読み出し、続いて、前記ループ波形の開始位置(以下、ループスタートポイントという)から終了位置(以下、ループエンドポイントという)までの音源波形データを繰り返し読み出すことにより、元の楽音波形(以下、原波形という)とほぼ同じ波形を有し、指定された音高の楽音信号を生成するように構成されている。
【0003】
このような波形メモリ方式の音源においては、前記アタック波形から前記ループ波形への移行の際、および、前記ループ波形の読み出し位置がループエンドポイントからループスタートポイントに戻る際における楽音のつながりが不自然にならないようにすることが良質な楽音発生のために重要である。そこで、前記ループ波形終端区間に、ループの終端からループの先端へ滑らかに接続するためクロスフェード波形を記憶することが知られている(特開昭59−188697号公報)。
また、前記ループ波形として、ビブラートなどの変調が付与された波形を用意し、それを繰り返し再生することにより変調効果付きの自然楽器に近い楽音を発生させることも知られている(特開昭59−97195号公報)。
【0004】
【発明が解決しようとする課題】
弦楽器やアンサンブルなどの楽音波形の場合、該波形のアタック部に後続する部分は、完全に定常的な変化をしている訳ではなく、かかる部分の各周波数成分の周波数、位相および振幅は微妙な時間変動(揺らぎ)を呈しており、この時間変動は楽音としての個性を醸し出す重要な要因となっている。
原波形にこのような揺らぎが含まれているときには、原波形データから揺らぎのn周期分に相当するループ波形を取出すこととなるが、該揺らぎの周期は一般に数十ミリ秒から数百ミリ秒程度と長いので、そのループの終端から先端へかけて波形がスムーズに接続できるという保証は無い。
また、前記ループ波形を上述した方法で加工した場合、一見滑らかに接続されているように見えても、そのループ波形で実際に音を出してみるとループの接続部に不自然さが残る場合があった。
【0005】
そこで本発明は、ループ部に揺らぎが含まれていても接続部に不自然さがなく、高品質の楽音を発生させることができる波形データの作成方法を提供することを目的としている。
また、揺らぎが含まれている場合であっても、接続部に不自然さがなく相互に接続可能な波形データを作成することのできる波形データ作成方法を提供することを目的としている。
【0006】
【課題を解決するための手段】
上記目的を達成するために、本発明の波形データ作成方法は、原波形データに基づいて複数回繰り返し再生されるループ波形データを作成する波形データ作成方法であって、前記原波形データの周波数成分を検出する周波数分析処理と、前記原波形データから前記ループ波形データループ開始位置とループ終了位置とを決定するループ部決定処理と、前記検出した各周波数成分において、前記ループ開始位置と前記ループ終了位置のいずれか一方を第1ポイント、他方を第2ポイントとしたときの該第1ポイントに当該周波数成分を接続するための接続ポイントを前記各周波数成分毎に決定する接続ポイント決定処理と、前記各周波数成分について、それぞれ、前記第2ポイントと前記接続ポイントとの間の当該周波数成分を、当該周波数成分の前記第2ポイント側を固定して当該周波数成分の接続ポイント側が前記第1ポイントと略一致するまでタイムストレッチするタイムストレッチ処理と、前記タイムストレッチ処理により時間軸の調整された各周波数成分に基づいてループ波形データループ開始位置とループ終了位置の時間内に、タイムストレッチされた接続ポイントと第2ポイント間の信号により正弦波合成を行い、前記ループ波形データを合成するループ波形合成処理とを含むものである。
また、前記ループ部決定処理は、前記原波形の楽音特性の揺らぎに基づいて前記ループ開始位置と前記ループ終了位置を決定する処理とされているものである。
【0007】
さらに、本発明の他の波形データ作成方法は、原波形データに基づいて、第1の波形データに接続可能な第2の波形データを作成する波形データ作成方法であって、接続しようとする位置における前記第1の波形データの各周波数成分の振幅値と位相値と特性の揺らぎ状態を決定する決定処理と、前記原波形データの各周波数成分を検出する周波数分析処理と、該検出された原波形データの各周波数成分の特性の揺らぎを検出して、該揺らぎが前記第1の波形データの揺らぎ状態に一致する接続位置を前記原波形データの各周波数成分毎に独立して決定する接続位置決定処理と、原波形データの時間軸上に前記第1の波形データと接続するための目標位置を決定する目標位置決定処理と、前記原波形データの各周波数成分について、前記原波形データの一端と前記接続位置との間の当該周波数成分を、当該周波数成分の該一端側を固定して当該周波数成分の接続位置側が前記目標位置に略一致するまで時間軸方向に独立に伸縮させるとともに、該各周波数成分の振幅および位相を時間軸およびレベル軸方向に微調整することにより前記目標位置において前記第1の波形データの前記接続しようとする位置における振幅値および位相値に一致するよう加工するタイムストレッチおよびスムージング処理と、前記タイムストレッチおよびスムージング処理により調整された各周波数成分に基づいて正弦波合成を行い、前記第2の波形データを合成するループ波形合成処理とを含むものである。
【0008】
【発明の実施の形態】
図1は、本発明の波形データ作成方法が実施される波形データ作成装置の一構成例を示すブロック図である。この図において、1はこの波形データ作成装置全体の制御を行うCPU、2は制御プログラムなどの各種プログラムおよび各種の制御情報などが格納されるROM、3はワークエリアやバッファ領域あるいは各種プログラムを格納する領域として使用されるRAM、4は計時動作や前記CPU1に対するタイマ割込を行うためのタイマ、5は各種の操作スイッチが配備されたパネルスイッチ、6は処理対象である原波形などの各種の表示を行うパネル表示器である。また、7は外部MIDI機器との間でMIDIイベントの授受を行うためのMIDIインターフェース、8はCD−ROM、HD(ハードディスク)、MO、FD等の記録媒体9にアクセスするための駆動装置である。
【0009】
10は原波形の波形データや本装置内で作成された波形データを記憶する波形メモリであり、複数の波形データを書き込み読み出し可能とされている。11は、前記波形メモリ10に対する書込回路13、音源部15あるいはCPU1からのアクセスが互いに衝突しないように、波形メモリ10のアクセスタイムスロットを管理するアクセス管理部、12は外部波形入力端子、13は該外部波形入力端子12を介して装置外部から入力される原波形信号をサンプリングして、前記波形メモリ10に書き込む書込回路、14は前記記録媒体9や前記RAM3から前記波形メモリ10に書き込まれる波形データあるいは前記波形メモリ10から読み出される波形データを転送するためのバッファ、15は前記波形メモリ10から読み出される波形データを用いて楽音信号を生成する音源部、16は該音源部15から出力される楽音信号を出力するサウンドシステム、17は以上説明した各要素間の情報の授受のために使用されるバスラインである。
なお、この図には示していないが、電話回線、LANあるいはインターネットなどの通信ネットワークに接続するための通信インターフェース回路を設け、該ネットワークから波形データや各種プログラムなどをダウンロードするようにしてもよい。さらにまた、鍵盤操作子を設け、該鍵盤操作子を用いて演奏を行うことができるようにすることもできる。
【0010】
ここで、前記ROM2あるいはRAM3には、この波形データ作成装置の全般的な制御を行うためのプログラムの他、外部より入力される原波形の波形データからアタック波形およぴループ波形を切り出し、所定の加工を行なって前述した音源波形データを作成するための音源波形データ作成プログラムと、この波形データ作成装置を波形メモリ音源として機能させるための演奏処理プログラムなどが含まれている。
CPU1は、前記ROM2あるいはRAM3に記憶された各種制御プログラムに従い、パネルスイッチ5やMIDIインターフェース7からの入力等に応じて、この波形データ作成装置全体の制御を行う。
また、音源波形データ作成処理時においては、前記バッファ14を介して前記波形メモリ10のデータの読み書きを行い、波形データを読み出して分析、加工、編集して再度波形メモリ10に書き込んだり、記録媒体9や図示しない通信路から供給された波形データを波形メモリ10に書き込んだり、逆に波形メモリ10から前記記録媒体9や通信路に供給したりする。
さらに、演奏処理実行時においては、MIDIインターフェース7や前記記録媒体9あるいは前記RAM3などから供給される演奏情報に応じて、前記音源部15の発音チャンネルの楽音生成状態を制御する。例えば、MIDIインターフェース7から発音開始を示すノートオン信号が入力された場合、音源部15の発音チャンネルの1つにその楽音の発生を割当て、割当てられたチャンネルにその楽音を生成するために必要な楽音パラメータ(ピッチ情報、ビブラート制御情報、波形選択情報、音量エンベロープ制御情報、エフェクト情報等)を供給するとともに発音開始の指示を与える。これに応じて、前記音源部15では、割当てられた発音チャンネルを用いて、前記波形選択情報に応じて前記波形メモリ10から選択された波形データを使用して前記楽音パラメータに対応した楽音を生成する。
【0011】
図2は、このように構成された波形データ作成装置を用いて波形データを作成し、それを使用して演奏が実行されるまでの処理の概要を示したフローチャートである。
まず、ステップS1において、元となる波形データ(原波形データ)が用意される。例えば、前記パネルスイッチ5に設けられた録音スイッチの操作に応じて、前記外部波形入力端子12からの波形データが前記書込回路13および前記アクセス管理部11を介して、前記波形メモリ10に書き込まれる。あるいは、前記記録媒体9に格納されている波形データあるいは前記通信ネットワークから取得した波形データが前記バッファ14および前記アクセス管理部11を介して、前記波形メモリ10に書き込まれる。
【0012】
続いて、ステップS2の波形データ作成処理に進む。このステップS2の内容については後に詳述するが、前記パネルスイッチ5における分析スイッチなどの操作に応じて、前記ステップS1で読み込まれた原波形データを分析し、該分析結果に基づいてアタック部およびループ部の波形データを加工し、合成して、この合成された波形データ(音源波形データ)を前記波形メモリ10に書き込む処理が実行される。
【0013】
そして、ステップS3に進み、前記ステップS2で作成された波形データを使用する演奏処理が実行される。すなわち、前記パネルスイッチ5における演奏スイッチなどの操作に応じて、前記MIDIインターフェース回路7あるいは前記記憶媒体9や前記通信ネットワークから入力されたMIDI演奏情報に基づいて演奏制御情報を作成し、前記音源部15に供給する。前記音源部15は、当該楽音パラメータに基づいて、前記波形メモリ10から対応する波形データを読み出し、アタック部の波形についてはそのまま、ループ部については前記ループ波形を繰り返し読み出して、所定のエンベロープの付与、エフェクト処理等を実行し、各チャンネルの楽音を生成しそれらを合成して、前記サウンドシステム16に供給する。これにより、前記ステップS2により作成された音源波形データを用いた演奏が実行される。
【0014】
次に、本発明の特徴的な部分である前記ステップS2の波形データ作成処理について説明する。
前述のように、この波形データ作成処理S2においては、まず、原波形データをスペクトル分析して、正弦波加算合成により合成することができる波形(決定論的波形、Deterministic波形)と正弦波加算合成できない波形(残差波形、Residual波形)に分離する。そして、前記Deterministic波形については、各周波数成分(パーシャル)毎に位相の制御を行うとともにそれぞれ独立にタイムストレッチ操作を行ってループの波形を作成する。また、Residual波形についてはループ内の成分を周波数分析し、その振幅および位相を制御して、偏りのないResidualのループ波形を作成する。このようにして得られたDeterministic波形とResidual波形とを加算することにより、所望のループ波形を得るようにしている。
【0015】
図3は、この波形データ作成処理を説明するための機能ブロック図である。この図において、20は原波形データをDeterministic波形とResidual波形とに分離する分離処理部、破線で囲まれた30は前記Residual波形を処理するResidual波形処理部、同じく40は前記Deterministic波形を処理するDeterministic波形処理部、50は前記Residual波形処理部30の出力と前記Deterministic波形処理部40の出力を合成して出力する合成部である。
【0016】
まず、前記分離処理部20において実行される原波形データをDeterministic波形とResidual波形とに分離する処理について説明する。
この分離処理部20において、まず、前記ステップS1において前記波形メモリ10に読み込まれた原波形データがスペクトル分析され、その波形に含まれている基音周波数およびその倍音周波数などに対応する線スペクトル成分が抽出される。このスペクトル分析は、例えば、時間窓を用いたフーリエ変換による短時間スペクトル分析を用いて行われている。すなわち、分析対象となる原波形サンプルに所定幅の窓関数を掛けて短時間FFT(Fast Fourier Transfer)を行い、該フーリエ変換出力の振幅データからピークを成す全ての周波数位置を検出する。この処理を、前記時間窓を移動しながら繰り返し行い、各フレームにおけるピークを検出する。これにより、各周波数成分の時間変動を示す出力が得られる。
【0017】
図4は、前記スペクトル分析の結果得られたピークデータの一例を示す図である。この例は、ピアノのC4(基音周波数は約261.63Hz)の楽音を分析したものであり、横軸は時間(単位はms)、縦軸は周波数(単位はHz)であり、前記時間窓に対応する各フレーム毎に検出されたピークデータが点で表されている。また、横方向の細線は、前記基音周波数およびその倍音の周波数を表している。この図において、全ての点は独立に存在しており、図において軌跡を描いている線を見てとることができる。また、線として見える部分以外はノイズであったり、非調和な成分であったり、あるいは、FFTの窓関数のサイドローブが表示されているものとみなされる。
【0018】
次に、前記スペクトル分析の結果得られたピークデータから軌跡を成すものを追跡する処理を実行する。この処理は、各フレームにおけるピークの接続関係を評価することにより行われ、その結果ノイズや非調和な成分が除去される。
図5は、前記図4に示したスペクトル分析結果について軌跡をなすものを追跡する処理を実行した結果を示す図である。
そして、このようにして得られた軌跡の中から所望のデータを選択し、その一つひとつを正弦波合成し、加算することにより原波形のうちのDeterministic波形部分を合成することができる。
次に、前記原波形データから前記Deterministic波形を減算することにより残差波形(Residual波形)を得る。
【0019】
図6は、前記原波形、Deterministic波形およびResidual波形の一例を示す図である。この図において、(a)は原波形、(b)はDeterministic波形、(c)はResidual波形を示しており、原波形(a)から前述したように正弦波加算合成されたDeterministic波形(b)を減算することにより、Residual波形(c)が求められる。
このようにして、この分離処理部20により、Deterministic波形とResidual波形とが分離される。そして、Residual波形データはResidual波形に関する処理部(Residual波形処理部)30に供給され、また、Deterministic波形データはDeterministic波形に関する処理部(Deterministic波形処理部)40に供給されて、それぞれ対応する処理が行われる。
【0020】
次に、前記Residual波形処理部30において実行されるResidual波形に関する処理について説明する。
このResidual波形処理部30は、前記図3に示すように、Residual波形の振幅エンベロープを算出する振幅エンベロープ計算部31、該振幅エンベロープ計算部31の出力に基づいてループスタートポイントおよびループエンドポイントを決定するループ部決定処理部32、該ループ部決定処理部32において決定されたループ部に対応する前記Residual波形の周波数分析を実行する周波数分析処理部33、該周波数分析処理部33の出力結果に対して所望の変更を施すモディファイ処理部34、該モディファイ処理部34の出力をフーリエ逆変換し時間波形を出力するフーリエ逆変換処理部35、および、前記ループ部決定処理部32から出力されるループスタートポイントおよびループエンドポイント、前記フーリエ逆変換処理部35からの時間波形出力および前記分離処理部20からのResidual波形出力が入力され、前記Residual波形と前記フーリエ逆変換された時間波形とをクロスフェードして出力するクロスフェード処理部36とから構成されている。
【0021】
前記分離処理部20からの出力のうちResidual波形データは、振幅エンベロープ計算部31に入力され、ここでResidual波形の振幅エンベロープが抽出される。次に、ループ部決定処理部32において、該抽出された振幅エンベロープに基づいて、ループスタートポイントとループエンドポイントが決定される。
【0022】
図7は、このResidual波形の一例を示す図であり、これは前記図6の(c)を拡大したものに相当する。前記振幅エンベロープ計算部31において、Residual波形の振幅エンベロープを抽出する。図7に示す例において、音の立ち上がり部はピアノハンマーが弦を打ったときの音であり、ループは、このハンマー打弦の音が終わった後、弦振動の単純な減衰部分で取るのが望ましい。そこで、前記ループ部決定処理部32において、Residual波形の振幅エンベロープにあるしきい値(例えば、そのピークの1/8の値)を設定し、Residual波形の振幅エンベロープがそのしきい値を横切る点(図7の例においてはサンプリング開始時点から200msの点)をループスタートポイントと決定する。
【0023】
次に、ループ長を、ループスタートポイント以降のResidual波形の周波数スペクトルの一番低いピークに相当する周期長の整数倍の長さの近傍で、かつ、ループエンドからループスタートにかけてDeterministicの基本波成分の位相が滑らかに接続できる長さ、すなわち、基本波の周期の整数倍の長さに決定する。これにより、ループエンドポイントが決定される。
図8は、前記図7に示したResidual波形の周波数スペクトルを示す図である。この図から、この例においては4.76Hzに最も低い周波数のピークがあることが判る。すなわち、このResidual波形は、この周波数で揺らいでいるものと考えられる。したがって、ループ長は、この揺らぎの周波数の倍数となるように取るのが好ましい。この例においては、1/4.76[Hz]=210[ms]であるから、例えば、この2倍の420ms程度となるようにループ幅を決定している。なお、2倍に限らず、この波形に割り当てることのできるメモリ容量の最大値を超えない範囲で、任意の整数、例えば、3倍あるいは4倍としてもよい。3倍とした場合、ループエンドポイントは、サンプリング開始時点から830ms(=200ms+210ms×3)の点の近傍に決定されることとなる。
【0024】
このようにしてResidual波形のループスタートポイント及びループエンドポイントが決定された後に、周波数分析処理(33)、モディファイ処理(34)およびフーリエ逆変換処理(35)が実行され、これによりループ部分のResidual成分が作成される。
前述した従来の方法においては、ループ接続部の不自然さをなくすために、時間軸上でのクロスフェードを行っていた。しかしながら、この方法だけでは、ループ内で周波数特性が変化している場合あるいは波形の一部にある周波数のパワーが局在している場合などには、周期的にこの周波数が聞こえてしまうこととなり、きれいなループ波形にならなくなる。
このようなループ内で周波数特性が変化している波形の一例を図9に示す。この例は、ブラスの楽音波形およびそのスペクトル分析結果を示すものであり、図示するように、ループ中に周波数特性が変化している個所があり、これが不自然なループの原因となる。
【0025】
そこで、まず、周波数分析処理部33において、前述のようにして決定されたループ部分(ループスタートポイント〜ループエンドポイント)のResidual波形全体をスペクトル分析し、そのパワースペクトル(振幅スペクトル)と位相スペクトルを求める。そして、このスペクトル分析結果をモディファイ処理部34に入力する。
【0026】
図10は、前記モディファイ処理部34の構成例を示すブロック図である。この図に示すように、モディファイ処理部34は、前記周波数分析処理部33からのFFT出力、すなわちループ部分のResidual波形の各周波数成分のパワーと位相の情報が入力され、そのうちの位相の情報をキャンセルし、そこにノイズを入力する。該モディファイ処理部34の出力(Residual波形の各周波数成分のパワーの情報とノイズ)はフーリエ逆変換処理部35に入力されて逆FFTされ、ループ部分のResidual成分データとして出力される。
これにより、ループ部分内でパワーが局在せず、かつ、前記振幅スペクトルと同じ周波数特性を有するループ部分用の合成Residual(ノイズ成分)波形が作成される。この波形は、ノイズをフィルタリングした波形であるので、いくらでも長い波形を作ることができ、また、数十ミリ秒以上の長さのループを設定して繰返し読出ししても、ループの途中でのパワーの局在が感じられないものとなる。
【0027】
なお、前記周波数分析処理部33は前記ループ部のResidual波形のフォルマントを求めているということができる。そこで、前記周波数分析処理部33の出力のうち位相情報を無視して、求めたフォルマントを有するようなインパルスレスポンスを求め、それにノイズを注入してResidualのループ波形を作成することもできる。図11に、このような手法を採用した場合の構成例を示す。この構成においては、前記周波数分析処理部33の出力のうちのパワーの情報を逆変換部37に入力して逆FFT処理を行うことにより、インパルスレスポンスを求める。そして、たたみ込み積分処理部38において、該インパルスレスポンスとノイズ成分とをたたみ込み積分することにより、ループ部のResidual波形を作成する。なお、この場合には、前記周波数分析部33の出力のうちの位相情報を無視する部分が前記モディファイ処理部34に相当し、フォルマントを逆FFTしてインパルスレスポンスを求め、それをノイズにたたみ込む部分が前記フーリエ逆変換処理部35に相当している。このようにして作成されたResidual波形も、前記振幅スペクトルと同じ周波数特性を有しており、ループ部用の合成Residual波形として使用することができる。
【0028】
前記図3において、36はクロスフェード処理部であり、前記ループ部決定処理部32からのループスタートポイント及びループエンドポイントの情報に基づいて、前記フーリエ逆変換処理部35(あるいは、前記たたみ込み積分処理部38)からの上述のようにして作成されたループ部分のResidual波形と前記分離処理部20からの原波形から分離されたResidual波形をクロスフェードで接続する処理が行われる。図12は、この様子を示す図であり、(a)は原波形から分離されたResidual波形、(b)は前述した処理により作成されたループ部の合成Residual波形、(c)はこのクロスフェード処理部36から出力される最終的なResidual波形を示す。すなわち、元のResidual波形(a)にフェードアウトエンベロープを乗算してループスタートポイントでゼロになるようにフェードアウトし、作成されたループ部分の合成Residual波形(b)にフェードインエンベロープを乗算してループスタートポイントで1になるようにフェードインして混合することにより、原波形のResidual波形(a)と前記合成Residual波形(b)とをクロスフェードで接続した最終Residual波形(c)が完成する。
これにより、ループ部分(ループスタートポイント〜ループエンドポイント)では合成Residual波形のみとなるので、アタック波形を保存したままループ周期が極力聞こえないようにしたループ部のResidual波形を得ることができる。
【0029】
次に、前記Deterministic波形に対する処理について説明する。
前記図3に示すように、前記Deterministic波形処理部40は、前記Deterministic波形を各パーシャル(周波数成分)に分離するパーシャル分離処理部41、分離されたパーシャルの振幅情報をFFTなどを用いて周波数分析する周波数分析処理部42、該周波数分析処理部42の出力と前記ループ部決定処理部32からのループスタートポイント情報に基づいて該ループスタートポイントに対応した最適な接続ポイントを決定する接続ポイント決定処理部43、該接続ポイント決定処理部43の出力に基づいて各パーシャルにループ部を設定するループ設定部44、該ループ設定部44により設定されたループ部の時間軸を伸張するタイムストレッチ処理部45、該タイムストレッチ処理部45の出力に基づいて当該パーシャルに対応する正弦波波形を生成する正弦波合成処理部46、および、各パーシャルに対応する前記正弦波合成処理部46の出力を加算する加算部47が含まれている。ここで、前記周波数分析処理部42、接続ポイント決定処理部43、ループ設定部44、タイムストレッチ処理部45および正弦波合成処理部46は、前記パーシャル分離処理部41により分離された各パーシャルにそれぞれ対応して設けられている。すなわち、各パーシャル毎に、それぞれ独立して、周波数分析、接続ポイント決定、ループ設定、タイムストレッチ、正弦波合成の各処理が実行される。
【0030】
前記分離処理部20において分離されたDeterministic波形は、パーシャル分離処理部41において、各パーシャルに分離される。ここで、パーシャルとは、前記分離処理部20におけるスペクトル分析により得られた各周波数成分の軌跡である。なお、パーシャルには、元の波形データの基本周波数および各倍音の成分の軌跡だけでなく、倍音からはずれた周波数成分の軌跡も含まれている。このパーシャル分離処理部41により分離された各パーシャルは、それぞれ別個に、振幅情報の周波数分析、ループ部の設定、タイムストレッチ、および、正弦波合成の各処理が行われ、その後、各パーシャルの正弦波合成結果が加算されて、Deterministic波形データが作成されることとなる。
【0031】
図13は、例えばブラスなどの揺らぎを含んだ楽音波形の基音、2倍音、3倍音の各パーシャルの波形を、揺らぎを強調して記載した図である。このような楽音については、各パーシャルのループスタートポイントとループエンドポイントの位相の傾きを変えて位相を揃えることができれば、きれいなループ波形とすることが可能であるが、この図に示す例のように、各パーシャルが揺らぎを含んでいる場合には、揺らぎの位相も揃えなければ、きれいなループ波形とはならない。しかしながら、位相と揺らぎの位相とを同時に揃えることができるようなループスタートポイントおよびループエンドポイントを全部のパーシャル共通で1組求めることは不可能である。そこで、本発明では、次のように、各パーシャル毎に独立して処理を行なうようにしている。
【0032】
まず、各パーシャルでそれぞれ揺らぎの位相が接続し易いポイントを捜す。
前記パーシャル分離処理部41において分離された各パーシャルについて、それぞれ周波数分析処理部42により振幅情報のスペクトル分析を行い、その振幅の揺らぎの周波数を求める。すなわち、当該パーシャルについてFFT処理を行い、その結果得られたパワースペクトルの複数のピークのうち一番周波数の低いピークから、その振幅の揺らぎの周波数を求め、その周期を求める。
【0033】
次に、前記接続ポイント決定処理部43において、前記ループ部決定処理部32により決定されたループスタートポイントに対する最適な接続ポイントを求める。すなわち、前記ループスタートポイントから前記揺らぎの周期だけ離れた点をチェックする。このチェックされた点は、揺らぎを一つの周波数として考えているものであるため、このチェックされた点における振幅は、前記ループスタートポイントにおける振幅とは異なっている場合がある。そこで、このチェックされた点の近傍で、前記ループスタートポイントにおける振幅と最も近い振幅を有する点を捜して、これを最適な接続ポイントとする。このように、各パーシャルの振幅情報の前記ループ部分における変化を分析し、それぞれ、ループエンドポイントの近傍で振幅情報がループスタートポイントと滑らかに接続できる接続ポイントを検出する。
【0034】
図14は、このようにして検出された最適な接続ポイントの一例を示す図である。この図に示すように、各パーシャル毎にそれぞれ最適な接続ポイントが決定され、この例においては、それらは異なった点となっている。
なお、ここでは、各パーシャルの振幅揺らぎに注目して接続ポイントを決定しているが、その代わりに各パーシャルの周波数揺らぎに注目して決定するようにしても良い。または、振幅と周波数の両方に注目して決定するようにしても良い。各パーシャルの振幅と周波数は互いに同期して揺らぐことが多いので、本実施例のように一方に注目して接続ポイントを決めても特に問題が生じることはない。
次に、ループ設定部44において、上述のように決定されたループスタートポイントおよび接続ポイントに基づいて、ループ部を設定する。
【0035】
以上により、各パーシャル毎にそれぞれループ部を設定することができた。次に、これらの波形を合成するのであるが、前述のように、各ループ部の長さが必ずしも等しくないので、それらを単純に加算することができない。
そこで、タイムストレッチ処理部45において、各パーシャルのループ部毎に、前記ループスタートポイント以降の振幅情報および位相情報を時間軸方向に伸縮(タイムストレッチ)して前記接続ポイントを前記Residual波形処理部30のループ部決定処理部32において決定されたループエンドポイントに一致させる処理を行うとともに、スムージング処理を行う。
【0036】
図15は、前記タイムストレッチの方法を説明するための図である。この図において、横軸は時間(サンプル時間)、縦軸は位相を示している。図15の(a)はあるパーシャルのループスタートポイント〜接続ポイントまでの位相を示す図であり、これをループエンドポイントまで矢印の方向に引き延ばして、図15の(b)に示すようなデータとする。このためには、まず、各時間(サンプル時間)における位相の傾き(次のサンプルとの位相の差、これはその時間における周波数に等しい)を求める。ここで、時間(サンプル時間)とは、周波数分析の時間軸のことであり、具体的には、前述した時間軸を移動させながら行なっているFFT分析の各サンプルが出力される時間を示す。次に、指定された時間軸の伸縮比に基づいてこの傾きの時間軸を伸縮し、更に、補間により各時間(サンプル時間)における伸縮後の位相の傾きの値を求める。そして、伸縮後の位相の傾きの各時間の値を累算することにより、タイムストレッチ後の各時間の位相(位相情報)を得る。これにより、(b)に示したように、傾きをかえずに伸長することができ、各パーシャルの楽音特性の揺らぎを滑らかに接続することが可能となる。
振幅情報のタイムストレッチは、上記位相の傾きの伸縮の方法と同様である。すなわち、各パーシャルの各時間(サンプル時間)における振幅を、指定された時間軸の伸縮比に基づいて時間軸方向に伸縮し、更に、補間により各時間における伸縮後の振幅(振幅情報)を求めている。
ここで、各パーシャルに対し、上記時間軸の伸縮比として、前記ループスタートから前記ループエンドまでの長さを、前記ループスタートから各パーシャルの接続ポイントまでの長さで割り算した値が指定されている。
【0037】
さらに、各パーシャル毎の振幅情報および位相情報をレベル軸方向および/または時間軸方向に微調整して、該振幅情報および位相情報を前記ループエンドポイントからループスタートポイントへ滑らかに接続する処理(スムージング処理)を行う。このスムージング処理について、図16を参照して説明する。図16の(a)は、位相についてのスムージング処理を説明するための図であり、当該パーシャルの前記ループスタートポイントにおける位相と前記ループエンドポイントにおける位相の差が、図示するように2nπ(nは整数)となっていないときに、それが2nπとなるように図中破線で示すように位相軌跡の修正を行うものである。具体的には、各位相データに前記位相のずれに対応する適切な係数を一律に乗算することにより行うことができる。
【0038】
また、図16の(b)は、振幅についてのスムージング処理を説明するための図であり、図示するように、当該パーシャルの前記ループスタートポイントにおける振幅とループエンドポイントにおける振幅とが一致していないときに、その差分がゼロになるように、絶対値が0から前記差分に相当するまで次第に大きくなるような正または負の補正値列を準備し、これを各振幅データに加算することによりおこなうことができる。
なお、前述の揺らぎの周期は数百ミリ秒〜数秒と長いため前述したタイムストレッチ処理は時間軸の大きな調整となるのに対し、このスムージング処理における位相、振幅の調整は楽音周期の短い時間(通常十ミリ秒以下)レベルの微調整となる。
また、各パーシャルのループスタートポイントと接続ポイントの振幅が完全に一致している場合には、そのパーシャルについて振幅情報のスムージング処理を省略することができる。また、スムージング処理を後で行なう代わりに、前記接続ポイントの決定の仕方や前記時間軸伸縮の前記伸縮比等の調整で行なうようにしてもよい。
【0039】
このようにタイムストレッチ処理された各パーシャルについて、正弦波合成処理部46により対応する正弦波を生成し、それらを加算部47で加算して、合成Deterministic波形データを作成する。
ここで、前記正弦波合成は、アタックスタート〜ループスタートポイント〜ループエンドポイントの範囲について行われる。なお、ループ部に適さない一部のパーシャルは、ループスタートに入るまでにフェードアウトされるため、ループ部の合成Deterministic波形は、ループに適したパーシャルのみで合成される。
【0040】
このようにして、加算部47から出力される合成Deterministic波形データと、前述のようにクロスフェード処理部36から出力される最終のResidual波形データは、合成部50において、相互に時間軸を揃えて加算され、アタックスタート〜ループスタート〜ループエンドの波形データが得られることとなる。この波形データは、音源波形データとして前記波形メモリ10に書き込まれる。
CPU1は、MIDIインターフェースから入力する演奏情報や、CPU1の実行する自動演奏処理で発生する演奏情報に基づいて、前記音源部9に対し発音指示、音色指示、消音指示等の制御を実行する。前記音源部9は、該発音指示に応じて、前述のようにして合成された波形のアタックスタート〜ループスタートのアタック波形を一通り読み出した後、ループスタート〜ループエンドのループ波形を繰り返し読み出し、読み出されたアタック波形とループ波形に基づいて楽音を生成する。
【0041】
なお、上述した実施の形態では、ループスタートポイントを固定し、接続ポイントをタイムストレッチによりループエンドポイントに対応する位置に移動して、各パーシャルの揺らぎが滑らかに接続されるように調整していたが、逆にループエンドポイントを固定し、接続ポイントをタイムストレッチでループスタートポイントに対応する位置に移動して調整するようにしても良い。
【0042】
また、上述した実施の形態では、ループエンドポイントからループスタートポイントに接続する場合のスムージングを示したが、これに限らず、本発明は揺らぎを伴った波形同士を接続する場合に広く適用することができる。
図17を参照しつつ、ともに揺らぎを伴っている第1の波形に第2の波形を接続する場合に本発明の波形データ作成方法を適用する場合について説明する。ここでは、第1の波形における接続ポイントに、第2の波形を接続するものとする。この場合、まず、前記接続ポイントにおける前記第1の波形データの各パーシャルの振幅値、位相値およびそれらの揺らぎの状態を前述の場合と同様に決定する。次に、前記第2の波形の原波形の周波数分析を行い、その各パーシャルの時間変化を求める。そして、求めた各パーシャルにおける位相および振幅の特性の揺らぎを検出し、該揺らぎが前記第1の波形における揺らぎの状態に一致する最適な接続位置を該第2の波形の原波形における各パーシャル毎に決定する。また、該第2の波形における前記第1の波形と接続する時間位置を接続の目標位置(目標ポイント)として設定する。そして、前記原波形における各パーシャルについて、前記最適な接続位置が前記目標ポイントに一致するように、前記タイムストレッチ処理を実行し、さらに、前記スムージング処理を行う。これにより、前記第2の波形の各パーシャルの前記目標ポイントにおける位相および振幅と、前記第1の波形の各パーシャルの前記接続ポイントにおける位相および振幅とを一致させることができる。このように加工された前記第2の波形の各パーシャルを正弦波合成することにより、前記第1の波形と前記接続ポイントで自然に接続することができる波形データを作成することが可能となる。
このように、ループ波形の場合に限らず異なる波形を接続することが可能となるため、複数の波形を用意しておき、これらを不自然さ無く任意に接続することが可能となり、より高品質の楽音を生成することが可能となる。
【0043】
なお、本発明の波形データ作成方法は、前記図1に示したような専用の電子楽器だけでなく、パーソナルコンピュータなど汎用のコンピュータ上で実施することもできる。
また、上記実施の形態においては、前記ステップS2および図3で示される波形データ作成処理はCPU1により実行されるソフトウエアで実行されるものとしたが、ソフトウエアで実現する代わりに、図3に示される各ブロックをハードウェア回路で実現してもよい。
さらに、上記実施の形態では、原波形のResidual波形に基づいてループスタート/エンドポイントを決定していたが、それに限らず、例えば同波形データのDeterministic波形のパーシャルのうちの基本波のパーシャルの揺らぎ等に基づいてループスタート/エンドポイントを決定するようにしても良い。その場合、前記各処理部33〜36における処理は、Deterministic波形に基づいて決定されたループスタート/エンドポイントに基づいて実行されることとなる。
さらにまた、ループスタートポイントの決め方についても、上述した方法に限定されることはない。単純に立ち上がりから所定時間後のポイント(例えば、200ミリ秒のポイント)、あるいは、非倍音成分のパーシャルが減衰したポイントをループスタートポイントと決定しても良い。さらに、ループスタート/エンドポイントの何れか一方ないし両方を、ユーザが、パネル表示器に表示された各パーシャルの特性を見ながら、操作子により手動で設定するようにしても良い。
さらにまた、上述した実施の形態においては、タイムストレッチ処理部45で各パーシャルの時間軸を伸張して調整を行なうようになっていたが、時間軸を短縮すること、あるいは、伸張と短縮の両方を使用することにより調整するようにしても良い。
【0044】
【発明の効果】
以上説明したように、本発明の波形作成方法によれば、各パーシャル毎に揺らぎの位相を揃え、該揺らぎ位相の揃ったパーシャルから波形を作成しているので、ループ部内に揺らぎが含まれている場合であっても、接続部に不自然さがなく、高品質の楽音を発生させることができるループ波形データを作成することが可能となる。
また、異なる波形を接続する場合に、それらの波形に揺らぎが含まれていても、不自然さが無く相互に接続可能な波形データを作成することが可能となる。
【図面の簡単な説明】
【図1】 本発明の波形データ作成方法が実施される波形データ作成装置の一構成例を示すブロック図である。
【図2】 演奏が実行されるまでに行われる処理の概容を示す図である。
【図3】 ループ波形作成処理を説明するための図である。
【図4】 スペクトル分析結果の一例を示す図である。
【図5】 図4に示すスペクトル分析結果から取り出された周波数成分を示す図である。
【図6】 原波形、Deterministic波形およびResidual波形の一例を示す図である。
【図7】 Residual波形の一例を示す図である。
【図8】 図7に示したResidual波形の周波数スペクトルを示す図である。
【図9】 ループ内で、周波数特性の揺らぎを有する波形の例を示す図である。
【図10】 モディファイ処理部34の構成例を示す図である。
【図11】 モディファイ処理部34の他の構成例を示す図である。
【図12】 クロスフェード処理を説明するための図である。
【図13】 揺らぎを含んだ楽音波形の各パーシャルの波形の例を示す図である。
【図14】 最適な接続ポイントの決定の様子を説明するための図である。
【図15】 タイムストレッチ処理を説明するための図である。
【図16】 スムージング処理を説明するための図である。
【図17】 異なる波形を接続する実施の形態を説明するための図である。
【符号の説明】
1 CPU、2 ROM、3 RAM、4 タイマ、5 パネルスイッチ、6パネル表示器、7 MIDIインターフェース、8 駆動装置、9 記録媒体、10 波形メモリ、11 アクセス管理部、12 外部波形入力端子、13 書込み回路、14 バッファ、15 音源部、16 サウンドシステム、20 分離処理部、31 振幅エンベロープ計算部、32 ループ部決定処理部、33周波数分析処理部、34 モディファイ処理部、35 フーリエ逆変換処理部、36 クロスフェード処理部、41 パーシャル分離処理部、42 周波数分析処理部、43 接続ポイント決定処理部、44 ループ設定部、45 タイムストレッチ処理部、46 正弦波合成処理部、47 加算部、50 合成部
Claims (3)
- 原波形データに基づいて複数回繰り返し再生されるループ波形データを作成する波形データ作成方法であって、
前記原波形データの周波数成分を検出する周波数分析処理と、
前記原波形データから前記ループ波形データループ開始位置とループ終了位置とを決定するループ部決定処理と、
前記検出した各周波数成分において、前記ループ開始位置と前記ループ終了位置のいずれか一方を第1ポイント、他方を第2ポイントとしたときの該第1ポイントに当該周波数成分を接続するための接続ポイントを前記各周波数成分毎に決定する接続ポイント決定処理と、
前記各周波数成分について、それぞれ、前記第2ポイントと前記接続ポイントとの間の当該周波数成分を、当該周波数成分の前記第2ポイント側を固定して当該周波数成分の接続ポイント側が前記第1ポイントと略一致するまでタイムストレッチするタイムストレッチ処理と、
前記タイムストレッチ処理により時間軸の調整された各周波数成分に基づいてループ波形データループ開始位置とループ終了位置の時間内に、タイムストレッチされた接続ポイントと第2ポイント間の信号により正弦波合成を行い、前記ループ波形データを合成するループ波形合成処理と
を含むことを特徴とする波形データ作成方法。 - 前記ループ部決定処理は、前記原波形の楽音特性の揺らぎに基づいて前記ループ開始位置と前記ループ終了位置を決定する処理であることを特徴とする前記請求項1記載の波形データ作成方法。
- 原波形データに基づいて、第1の波形データに接続可能な第2の波形データを作成する波形データ作成方法であって、
接続しようとする位置における前記第1の波形データの各周波数成分の振幅値と位相値と特性の揺らぎ状態を決定する決定処理と、
前記原波形データの各周波数成分を検出する周波数分析処理と、
該検出された原波形データの各周波数成分の特性の揺らぎを検出して、該揺らぎが前記
第1の波形データの揺らぎ状態に一致する接続位置を前記原波形データの各周波数成分毎に独立して決定する接続位置決定処理と、
原波形データの時間軸上に前記第1の波形データと接続するための目標位置を決定する目標位置決定処理と、
前記原波形データの各周波数成分について、前記原波形データの一端と前記接続位置との間の当該周波数成分を、当該周波数成分の該一端側を固定して当該周波数成分の接続位置側が前記目標位置に略一致するまで時間軸方向に独立に伸縮させるとともに、該各周波数成分の振幅および位相を時間軸およびレベル軸方向に微調整することにより前記目標位置において前記第1の波形データの前記接続しようとする位置における振幅値および位相値に一致するよう加工するタイムストレッチおよびスムージング処理と、
前記タイムストレッチおよびスムージング処理により調整された各周波数成分に基づいて正弦波合成を行い、前記第2の波形データを合成するループ波形合成処理と
を含むことを特徴とする波形データ作成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22255998A JP3752855B2 (ja) | 1998-08-06 | 1998-08-06 | 波形データ作成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22255998A JP3752855B2 (ja) | 1998-08-06 | 1998-08-06 | 波形データ作成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000056774A JP2000056774A (ja) | 2000-02-25 |
JP3752855B2 true JP3752855B2 (ja) | 2006-03-08 |
Family
ID=16784360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22255998A Expired - Lifetime JP3752855B2 (ja) | 1998-08-06 | 1998-08-06 | 波形データ作成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3752855B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010282176A (ja) * | 2009-05-07 | 2010-12-16 | Seiichi Fukunaga | 採譜支援プログラム |
-
1998
- 1998-08-06 JP JP22255998A patent/JP3752855B2/ja not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010282176A (ja) * | 2009-05-07 | 2010-12-16 | Seiichi Fukunaga | 採譜支援プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2000056774A (ja) | 2000-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6687674B2 (en) | Waveform forming device and method | |
US7396992B2 (en) | Tone synthesis apparatus and method | |
US7432435B2 (en) | Tone synthesis apparatus and method | |
US7816599B2 (en) | Tone synthesis apparatus and method | |
JP4561636B2 (ja) | 楽音合成装置及びプログラム | |
JP3008922B2 (ja) | 楽音発生装置および楽音発生方法 | |
JP3404775B2 (ja) | 楽音合成装置と方法 | |
JP3601373B2 (ja) | 波形編集方法 | |
JP4736046B2 (ja) | 波形データ生産方法、波形データ生産装置、プログラムおよび波形メモリ生産方法 | |
JP3752855B2 (ja) | 波形データ作成方法 | |
JP2004021027A (ja) | 演奏音制御方法及び装置 | |
JP3534012B2 (ja) | 波形分析方法 | |
JP2000010565A (ja) | 波形デ―タ生成方法、波形デ―タ生成プログラムを記録した記録媒体、波形デ―タ生成装置および波形デ―タを記録した記録媒体 | |
JP3649398B2 (ja) | 波形処理方法および装置 | |
JP3733964B2 (ja) | 分析結果を用いた音源波形合成装置 | |
JP3095018B2 (ja) | 楽音発生装置 | |
JP3428230B2 (ja) | 電子楽器の繰返し波形の形成法及び繰返し波形形成装置 | |
JP5316091B2 (ja) | 波形メモリ音源 | |
JP3721822B2 (ja) | 奏法対応入力システム | |
JP4294179B2 (ja) | 波形再生装置 | |
JP3636056B2 (ja) | 波形データ処理方法 | |
JP4087964B2 (ja) | 波形再生装置 | |
JP2000214852A (ja) | 波形再生装置および波形記憶媒体 | |
JP5353305B2 (ja) | 波形データの形成方法 | |
JPH02176795A (ja) | 波形データ読出装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050526 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050927 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051102 |
|
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: 20051122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051205 |
|
R150 | Certificate of patent or registration of utility model |
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: 20081222 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091222 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101222 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101222 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111222 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111222 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121222 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131222 Year of fee payment: 8 |
|
EXPY | Cancellation because of completion of term |