JP3659053B2 - 波形データ生成方法、波形データ生成プログラムを記録した記録媒体および波形データ生成装置 - Google Patents
波形データ生成方法、波形データ生成プログラムを記録した記録媒体および波形データ生成装置 Download PDFInfo
- Publication number
- JP3659053B2 JP3659053B2 JP07671199A JP7671199A JP3659053B2 JP 3659053 B2 JP3659053 B2 JP 3659053B2 JP 07671199 A JP07671199 A JP 07671199A JP 7671199 A JP7671199 A JP 7671199A JP 3659053 B2 JP3659053 B2 JP 3659053B2
- Authority
- JP
- Japan
- Prior art keywords
- waveform
- loop
- phase
- amplitude
- frequency component
- 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】
一般的に楽音波形は、その先頭部分(発音開始時点近傍の部分)においては波形が目まぐるしく変化するが、それ以降の区間は波形の変化がほぼ定常的になる。そこで、楽音波形の先頭部分をアタック波形として切り出し、この先頭部分以降の定常波形とみなしてよい区間、すなわち、ほぼ同一の波形の繰り返しとみなしてよい区間から繰り返しの一単位となる波形をループ波形として切り出し、これらのアタック波形とループ波形の波形データを音源波形データとして波形メモリ音源のメモリに格納するのである。そして、かかる波形メモリ音源に対して楽音形成指示が与えられた場合、波形メモリ音源では、まず、指示された音高に対応した速度でアタック波形の音源波形データがメモリから読み出される。そして、これに続き、同速度でループ波形の開始位置(以下、ループスタートという)から終了位置(以下、ループエンドという)までの音源波形データが繰り返し読み出される。このようにして読み出されるアタック波形とループ波形の音源波形データにより、元の楽音波形(以下、原波形という)とほぼ同じ波形を有し、かつ、指定された音高に対応した楽音信号が形成されるのである。
【0004】
さて、以上説明した波形メモリ音源による楽音信号形成を可能ならしむためには、音源波形データを予め生成し、波形メモリ音源のメモリに格納する作業が必要である。そして、この音源波形データ生成作業の中では、原波形からアタック波形およびループ波形を切り出す作業が特に困難なものとされている。何故ならば、ループ波形の切り出し方が不適当であると、そのループ波形をメモリから繰り返し読み出して楽音信号を形成する場合に、そのループ波形の読み出し位置がループエンドからループスタートに戻る際にノイズが生じるからである。また、同様の問題が、アタック波形からループ波形への移行の際にも生じる。そこで、従来は、このようなノイズを生じさせないよう以下のような方法が採られていた。
【0005】
<方法1>
波形データ上で滑らかに接続できそうな2点を捜してループスタート、ループエンドとする。この場合の2点の捜し方としては、互いの近傍の相互相関関数が高い点を捜す方法、あるいは値および傾きが同じとなる点を捜す方法等がある。このような2点をループスタートおよびループエンドとすることにより、ループ波形を連続して再生した場合に、先行するループ波形のループエンド近傍の波形と後続のループ波形のループスタート近傍の波形が不連続を生じることなく接続される。
<方法2>
アタック波形からループ波形へ、ループエンドからループスタートへ、滑らかに再生波形が移行するように、波形の移行点の近傍部分の音源波形データに予めクロスフェードをかけておく。
<方法3>
原波形において定常波形とみなしてよい区間にFFT(高速フーリエ変換)を施し、このFFTによって求められた原波形の各周波数成分のみからアタック波形以降の部分を作成する。すなわち、アタック波形以降の部分については、ループ波形の繰り返し読み出しという方法ではなく、上記各周波数成分に対応した正弦波を発生して合成する、という方法により生成する。
【0006】
【発明が解決しようとする課題】
ところで、上述した従来技術のうち、方法1は、連続再生されるループ波形が一見滑らかに接続されているように見えても、ループ波形を構成する各周波数成分に着目すると、その中には連続再生される各ループ波形の接続点において不連続が生じているものがあり、ループ波形と原波形とで音色が異なったものとなる場合があるという問題があった。また、方法2は、原波形の一部にクロスフェードを施して音源波形データを生成するため、かかる音源波形データと原波形とでは音色が異なったものとなるという問題があった。また、方法3の場合、原波形のアタック波形以降の一部の区間の各周波数成分を用いてアタック部以降の部分を合成することから、元々の原波形が有していた楽音としての個性を有する波形を合成することができないという問題があった。すなわち、原波形のアタック波形以降の部分は、完全に定常的な変化をしている訳ではなく、かかる部分の各周波数成分の周波数、位相および振幅は微妙な時間変動を呈しており、この時間変動は、原波形の楽音としての個性を醸し出す重要な要因となっている。しかるに上記方法3によれば、アタック波形以降の部分のうちほんの短い区間の周波数成分に基づいてアタック波形以降の部分を合成するため、かかる個性が合成過程において捨象されてしまうのである。
【0007】
この発明は以上説明した事情に鑑みてなされたものであり、原波形の有していた個性を有し、かつ、再生の際にノイズを生じさせない音源波形データを原波形から生成することができる波形データ生成方法、波形データ生成プログラムを記録した記録媒体および波形データ生成装置を提供することを目的としている。
【0008】
【課題を解決するための手段】
この発明は、原波形の周波数分析を時間的に相互にずれた複数の区間について行い、各区間毎に、当該区間に属する原波形の周波数成分を求める周波数分析処理と、前記原波形のループ部の開始位置および終了位置を決定するループ部決定処理と、前記原波形の少なくとも一部の周波数成分について、前記ループ部の終了位置以前の当該周波数成分の時間経過に伴う位相および振幅の軌跡と前記ループ部の開始位置以降の当該周波数成分の時間経過に伴う位相および振幅の軌跡とが不連続を生じることなく接続されるように、前記ループ部の当該周波数成分の位相および振幅の軌跡を調整するループ部スムージング処理と、
前記ループ部スムージング処理により調整された前記ループ部の各周波数成分の位相および振幅の軌跡に基づいて正弦波合成を行って前記ループ部の波形データを合成するループ波形合成処理とを具備することを特徴とする波形データ生成方法を提供する。
好ましい態様において、波形データ生成方法は、求められた各区間における前記原波形の各周波数成分に基づいて正弦波合成を行い、合成された正弦波合成波形を原波形から差し引くことにより残差波形を求める残差波形生成処理をさらに具備し、前記ループ部決定処理は、前記残差波形のレベルに基づき前記ループ部の開始位置および終了位置を決定する。
他の好ましい態様におい、前記ループ部決定処理は、前記原波形上の第1ポイントを決定する第1決定処理と、前記第1ポイントに対し、前記原波形の各周波数成分のうちの少なくとも基本波の周波数成分の位相差が2nπ(nは整数)に近い複数の第2ポイントを決定する第2決定処理と、前記第1ポイントと前記複数の第2ポイントの各々との間の前記原波形の各周波数成分の位相差の2nπ(nは整数)との差に基づいて、前記複数の第2ポイントから1つを選択する選択処理とを具備する。
また、この発明は、原波形の周波数分析を時間的に相互にずれた複数の区間について行い、各区間毎に、当該区間に属する原波形の周波数成分を求める周波数分析処理と、前記原波形のループ部を決定するループ部決定処理と、前記原波形のうちアタック部を決定するアタック部決定処理と、前記アタック部の後端を後端とする接続部の前端を指定する接続部指定処理と、前記原波形のアタック部の各周波数成分と前記原波形におけるループ部の各周波数成分とを対応付ける対応付け処理と、前記原波形のアタック部の各周波数成分の時間経過に伴う位相および振幅の軌跡と前記原波形のループ部の開始位置以降の当該周波数成分に対応付けられた周波数成分の時間経過に伴う位相および振幅の軌跡とが不連続を生じることなく接続されるように、前記原波形の接続部における各周波数成分の位相および振幅の軌跡を調整するアタック部スムージング処理と、前記アタック部スムージング処理により調整された前記アタック部の各周波数成分の位相および振幅の軌跡に基づいて正弦波合成を行い、前記アタック波形の波形データを合成するアタック波形合成処理とを具備することを特徴とする波形データ生成方法を提供する。
他の好ましい態様において、波形データ生成方法は、前記周波数分析により得られた複数の区間の各々における前記原波形の各周波数成分に基づいて正弦波合成を行い、合成された正弦波合成波形を原波形から差し引くことにより残差波形を求める残差波形生成処理をさらに具備し、前記アタック波形合成処理では、前記正弦波合成により合成された正弦波合成波形に前記残差波形を加算して前記アタック波形の波形データを合成する。
他の好ましい態様においては、波形データ生成方法は、さらに前記アタック部の各周波数成分のうち前記対応付け処理によって前記原波形のループ部の各周波数成分のいずれとも対応付けられなかった周波数成分の振幅が前記接続部において前記ループ部に至るまでの間に次第に減少して消滅するように、当該周波数成分の振幅を調整する処理を含む。
また、好ましい態様において、波形データ生成方法は、合成した波形データをコンピュータ読み取り可能な記録媒体に書き込む処理をさらに具備する。
また、この発明は、原波形の周波数分析を時間的に相互にずれた複数の区間について行い、各区間毎に、当該区間に属する原波形の周波数成分を求める周波数分析処理と、前記 原波形のループ部の開始位置および終了位置を決定するループ部決定処理と、前記原波形の少なくとも一部の周波数成分について、前記ループ部の終了位置以前の当該周波数成分の時間経過に伴う位相および振幅の軌跡と前記ループ部の開始位置以降の当該周波数成分の時間経過に伴う位相および振幅の軌跡とが不連続を生じることなく接続されるように、前記ループ部の当該周波数成分の位相および振幅の軌跡を調整するループ部スムージング処理と、前記ループ部スムージング処理により調整された前記ループ部の各周波数成分の位相および振幅の軌跡に基づいて正弦波合成を行って前記ループ部の波形データを合成するループ波形合成処理とをコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。
さらにこの発明は、波形データを記憶する記憶手段と、原波形の波形データを外部から取り込んで前記記憶手段に格納する原波形入力手段と、前記記憶手段に記憶された原波形の波形データに基づき、ループ部の波形データを合成する波形データ生成処理を実行する演算手段とを具備し、該波形データ生成処理が、原波形の周波数分析を時間的に相互にずれた複数の区間について行い、各区間毎に、当該区間に属する原波形の周波数成分を求める周波数分析処理と、前記原波形のループ部の開始位置および終了位置を決定するループ部決定処理と、前記原波形の少なくとも一部の周波数成分について、前記ループ部の終了位置以前の当該周波数成分の時間経過に伴う位相および振幅の軌跡と前記ループ部の開始位置以降の当該周波数成分の時間経過に伴う位相および振幅の軌跡とが不連続を生じることなく接続されるように、前記ループ部の当該周波数成分の位相および振幅の軌跡を調整するループ部スムージング処理と、前記ループ部スムージング処理により調整された前記ループ部の各周波数成分の位相および振幅の軌跡に基づいて正弦波合成を行って前記ループ部の波形データを合成するループ波形合成処理とを含むことを特徴とする波形データ生成装置を提供する。
【0021】
【発明の実施の形態】
以下、本発明を更に理解しやすくするため、実施の形態について説明する。
かかる実施の形態は、本発明の一態様を示すものであり、この発明を限定するものではなく、本発明の範囲で任意に変更可能である。
【0022】
図1はこの発明の一実施形態である波形データ生成装置の構成を示すブロック図である。この図において、1は外部装置との間でMIDIイベントの授受を行うためのMIDIインターフェース、2は各種の操作スイッチが配備されたパネルスイッチ部、3は処理対象である原波形等の表示を行うパネル表示器である。また、4はこの波形データ生成装置全体の制御を行うCPU、5はCPU4が実行する制御プログラムおよび各種の制御情報を記憶したROM、6は各種制御情報を記憶するためのRAMである。ここで、ROM5に記憶された制御プログラムには、この波形データ生成装置の全般的な制御を行うためのプログラムの他、外部より入力される原波形の波形データからアタック波形およびループ波形を切り出し、音源波形データを生成するための音源波形データ生成プログラムと、この波形データ生成装置を波形メモリ音源として機能させるための制御プログラムとが含まれている。また、7はCD(コンパクトディスク)、HD(ハードディスク)等の記録媒体、8はこの記録媒体に対するアクセスを行うためのドライブである。
【0023】
9は外部から入力される原波形の波形データおよび本装置内で生成された音源波形データを記憶するための波形メモリ、10はこの波形メモリ8に対するアクセスを管理するアクセス管理部である。11は書込回路であり、外部から入力される原波形の波形データあるいはドライブ8によって記録媒体7から読み出された原波形の波形データを受け取り、アクセス管理部10を介して波形メモリ9に書き込む手段である。12は音源であり、アクセス管理部10を介して読み出される波形データを用いて楽音信号を形成する手段である。13はこの音源12によって形成された楽音信号を楽音として出力するサウンドシステムである。14は以上説明した各要素間の情報の授受のために使用されるバスラインである。
【0024】
図2〜図7は本実施形態の動作を示すフローチャートである。以下、これらのフローチャートを参照しつつ、本実施形態の動作について説明する。この波形データ生成装置に電源が投入されると、CPU4は図2にフローを示すメインルーチンの実行を開始し、最初にRAM6内の各種制御情報の初期化を行う(ステップS1)。この初期設定が終了すると、CPU4は、各種の制御動作の起動要因となるイベントの有無のチェックを行う(ステップS2およびS3)。そして、何等かの制御動作を起動する要因がある場合には当該要因が何であるかを判定し(ステップS4)、MIDI処理(ステップS5)、スイッチ処理(ステップS6)またはその他の処理(ステップS7)のうち要因に対応したものを実行した後、再び要因チェック(ステップS2)に戻り、同様の処理を繰り返す。以上がこの波形データ生成装置の全般的な動作である。
【0025】
次に本実施形態に係る波形データ生成装置の動作について説明する。パネルスイッチ部2のスイッチ操作により、音源波形データの生成を要求するコマンドが入力されると、CPU4は、図2のメインフローにおける「スイッチ処理」(ステップS6)として、図3にフローを示す音源波形データ生成処理をROM5内の音源波形データ生成プログラムに従って実行する。なお、以下説明するステップS101〜S106の各処理は、連続して自動的に実行するようにしてもよいし、あるいは、個別的にスイッチによって指示されたときに実行するようにしてもよい。
【0026】
まず、CPU4は、波形データ準備処理を実行する(ステップS101)。この波形データ準備処理では、CPU4による制御の下、外部から入力される原波形の波形データあるいはドライブ8によって記録媒体7から読み出された原波形の波形データが書込回路11に引き渡され、この書込回路11によりアクセス管理部10を介して波形メモリ9に書き込まれる。
【0027】
次にCPU4は、ステップS101において波形メモリ9に書き込まれた波形データの分析処理を実行する(ステップS102)。図4はこの波形データの分析処理の詳細な処理内容を示すフローチャートである。この波形データの分析処理の前半のステップS201〜S205では、原波形から一定区間(以下、フレームという)ずつ波形データを取り出し、これに時間窓を乗じてFFTを施すという処理を繰り返す。図8はこの処理が行われる様子を示すものである。この図8において、WDは原波形、TW,TW,…は原波形の各フレーム内の波形データに乗じられる時間窓を例示したものである。ステップS201〜S205の詳細な処理内容は次の通りである。
【0028】
まず、CPU4は、原波形の最初のフレームを分析対象として指定する(ステップS201)。次にCPU4は、分析対象となっているフレームの波形データに対し、時間窓を乗じるウィンドウ処理を行う(ステップS202)。なお、本実施形態では、1フレームの長さが原波形の基本波の8周期相当の時間長に設定されている。従って、ステップS202では、この1フレームの時間長に対応した時間窓が原波形の波形データに乗じられる。
【0029】
次にCPU4は、上記時間窓の乗じられた1フレーム分の波形データのFFT処理を実行し、FFT処理の結果をRAM6に保存する(ステップS203)。そして、分析(ウィンドウ処理およびFFT処理)未了の波形データが未だ残っているか否かを判断する(ステップS204)。そして、分析未了の波形データが残っている場合には、現在のフレームよりも1/8フレーム周期だけ位相の進んだフレームを次のフレームとして指定し、ステップS202に戻る。
【0030】
以後、1/8フレーム周期ずつ分析対象をシフトしつつ原波形の分析処理(ステップS202、S203)が繰り返され、原波形の最後のフレームまでの分析処理が終了すると、ステップS204からステップS205へ進む。
【0031】
以上の処理により、RAM6内に、各フレーム毎に当該フレーム内の原波形(厳密には時間窓が乗じられた原波形)のFFT結果(各フレームのスペクトル)が保存される。
【0032】
次にステップS205に進むと、RAM6に保存された各フレームのFFT結果において周波数成分の大きさがピークとなる点を求め、さらに各ピーク点の周波数、位相、振幅を求める。そして、各ピーク点の周波数、位相、振幅について前後のフレームで比較し、上手く接続できるピーク点同士の対応付けを行う。この対応付けされたピーク点同士を複数フレームにわたって接続してゆくことにより、原波形の主要な周波数成分(基本波および主要な倍音成分)の、最初のフラームから最後のフレームまで移り行く間の、周波数、位相および振幅の軌跡が求められる。そして、このようにして求められた主要な周波数成分の周波数、位相および振幅の軌跡を、分析データとしてRAM6に保存する。
【0033】
次にステップS206に進むと、RAM6に保存された分析データを用いて合成データを生成する。図9はこの合成データの作成処理および後述する残波形データの作成処理(ステップS207)をハードウェア的に示したものである。既に説明したように、分析データは、最初のフレームから最後のフレームに至るまでの、原波形の主要な周波数成分の周波数、位相および振幅の軌跡を表している。この原波形の主要な周波数成分の周波数、位相および振幅の軌跡を用いて、基本波、2次倍音、3次倍音、…といった原波形の主要な周波数成分の波形(正弦波)を合成し、これを加算することにより正弦波合成波形を生成する。そして、この正弦波合成波形のサンプルデータである正弦波合成波形データをRAM6に保存する。
【0034】
次にステップS207に進むと、波形メモリ9内の原波形の波形データから上記正弦波合成波形データを引き算し、この結果得られる残波形のサンプルデータを残波形データとしてRAM6に保存する。図10はこの場合の残波形の例を示したものである。この残波形は、正弦波によって合成することができなかった原波形の成分であり、ノイズや周波数が急激に変化する楽音のアタック部の成分等によって構成されていると考えられる。
以上が波形データの分析処理の詳細である。
【0035】
図3において、波形データの分析処理(ステップS102)が終了すると、CPU4はループポイント決定処理を実行する(ステップS103)。図5はこのループポイント決定処理の詳細な処理内容を示すフローチャートである。このループポイント決定処理および後述するループ波形作成処理(ステップS104)の前半部分では、原波形からループ波形を切り出す区間の両端のループポイントLP1およびLP2を決定する。各ループポイントの決定においては、まず、ループポイントLP1を決定し、次いでこのループポイントLP1を基準としてループポイントLP2を相対移動させつつループポイントLP1との関係で最適なループポイントLP2を求めるという手順を採る。なお、ループポイントLP1およびLP2の時間軸上での前後関係はどのように定めても構わないが、以下の説明では、便宜上、時間軸上において前のループポイント(すなわち、ループスタートLPS)をループポイントLP1、後のループポイント(すなわち、ループエンドLPE)をループポイントLP2としている。
【0036】
ループポイント決定処理では、まず、ループポイントLP1の位置および上述したループポイントLP2の相対移動を行うためのインデックスnの変化範囲nmin〜nmax(ただし、nminはnの最小値、nmaxはnの最大値である)の指定を行う(ステップS301)。ここで、LP1、nminおよびnmaxの指定は、CPU4が指定を促す適当なメッセージをパネル表示器3に表示し、使用者がこれに応答してパネルスイッチ部2を操作し、LP1、nminおよびnmaxを特定する情報を入力するという手順により行う。
【0037】
次にステップS302に進むと、CPU4はRAM6内の残波形データを参照し、ステップS301において指定されたループポイントLP1と、このループポイントからnmax相当隔たった点との間の区間内の残差(すなわち、残差波形のレベル)を所定の閾値と比較して、微小であるか否かを判断する。この判断結果が「NO」である場合にはステップS301に戻ってLP1、nminおよびnmaxの指定をやり直し、「YES」である場合にはステップS303に進む。このステップS301およびS302の処理により、図10に例示するように、残波形のレベルが十分に微小であり、原波形の各周波数成分が比較的安定していると考えられる区間内にループポイントLP1およびこれを基準としたループポイントLP2の相対移動範囲が設定されることとなる。
【0038】
次にステップS303に進むと、インデックスnをその変化範囲内の最小値nminに設定する。次いでステップS304に進むと、ループポイントLP1における基本波の位相を基準とし、これより位相がほぼ2nπ(この場合、n=nmin)だけ隔たった位置を仮のループポイントLP2として設定する。
【0039】
ここで、図11を参照し、このステップS304における処理の内容についてやや詳細に説明する。RAM6内の分析データは、各フレーム毎の各周波数成分の周波数、位相および振幅を表すデータを含んでいる。これらのデータから各フレームにおける基本波成分の位相を表すデータを選択してフレーム順に並べてグラフ化すると、図11(a)に示すように、原波形の基本波成分の位相の時間的変化を表す位相軌跡が得られる。また、この位相軌跡の各点の位相角θについてsinθを求めれば、図11(b)に示すように原波形に含まれる基本波の波形を求めることができる。
【0040】
ステップS304における処理では、図11(a)に例示する基本波の位相軌跡において、ループポイントLP1における基本波の位相(図11(a)の例では位相角0)を基準とし、これより位相がほぼ2nπ(図11(a)の例では12π)だけ隔たった点を仮のループポイントLP2とするのである。これは、ループポイントLP1〜LP2までの区間の原波形を繰り返し再生した場合に原波形中の基本波の位相の時間的変化に不連続が生じないようにするためである。
【0041】
次にステップS305に進むと、ステップS304において設定した仮のループポイントLP2における各倍音の位相の合成距離を算出する。ここで、合成距離について説明すると次の通りである。まず、上記ステップS305において、基本波についてはループポイントLP1およびLP2間の位相差を厳密に2nπ(nは整数)としない場合もある。また、原波形を構成する各倍音と基本波の周波数比は必ずしも整数比ではなく、原波形を構成する各倍音によっては、ループポイントLP1およびLP2間の位相差が2nπ(nは各倍音毎に異なる整数。例えばm倍音なら、基本波に対するnをm倍した値)からずれている場合がある。合成距離は、原波形の周波数成分全体としてこの“ずれ”がどの程度であるかを表す量である。この合成距離の算出方法としては、例えば以下の各方法が考えられる。
【0042】
<方法1>
各周波数成分毎に、次式により与えられるΔDを求め、このΔDを全倍音について累算したものを合成距離とする。
ΔD=√(2(1−cos(φ(LP2)−φ(LP1)))
ただし、上記式において、φ(LP1)およびφ(LP2)は、各々ループポイントLP1およびLP2の各位置における当該周波数成分の位相角である。
【0043】
<方法2>
各周波数成分について、ループポイントLP1およびLP2間の位相差とこの位相差に最も近い2nπ(nは整数)との差分の2乗を求め、その結果を累算したものを合成距離とする。
【0044】
<方法3>
上記方法2において、各周波数成分について求めた上記差分の2乗値に重みを付けて累算し、合成距離を求める。重みは、低次倍音ほど大きな値とする。
【0045】
以上のようにして合成距離の算出を終えると、ステップS306に進み、n=nmaxか否か、すなわち、変化範囲内の全てについてステップS304およびS305の処理を終えたか否かを判断する。この判断結果が「NO」の場合は、nを1だけインクリメントし(ステップS307)、ステップS304に戻って同様の処理を繰り返す。そして、変化範囲内の全てのnについて、仮のループポイントLP2の設定が行われ(ステップS304)、当該LP2における合成距離の算出(ステップS305)が行われると、ステップS306の判断結果が「YES」となってステップS308に進む。
【0046】
次にステップS308に進むと、最小の合成距離が得られたnを最適なループポイントLP2に対応したインデックスNと決定する。そして、LP1+2Nπの位置が(正式な)ループポイントLP2として設定される。次いでステップS309に進み、ループポイントLP1と設定されたループポイントLP2との間の各倍音毎の位相差の2nπからのずれのばらつきが充分に小さいか否か、すなわち、極端に大きなずれが生じている倍音がないか否かを判断し、この判断結果が「YES」の場合はループポイント決定処理を終了する。一方、ステップS309の判断結果が「NO」の場合にはパネル表示器3にエラー表示をしてループポイント決定処理を終了する。この場合、所定のコマンドをパネルスイッチ部2から入力することにより、ステップS301に戻ってループポイント決定処理を再実行することが可能である。
以上がループポイント決定処理の詳細である。
【0047】
図3において、ループポイント決定処理(ステップS103)が終了すると、CPU4はループ波形作成処理を実行する(ステップS104)。図6はこのループ波形作成処理の処理内容を示すフローチャートである。
【0048】
まず、CPU4は、何倍音まで含むループ波形を作成するかの指定を促すメッセージをパネル表示器3に表示し、使用者がパネルスイッチ部2を操作することにより指定する倍音の次数を読み込む(ステップS401)。
【0049】
次にステップS402に進み、基本波のループポイントLP1における位相角との位相差がほぼ2Nπとなる位置をループポイントLP2として指定する。次にステップS403に進み、インデックスmに「1」をセットする。
【0050】
そして、m倍音(m=1の場合は基本波)について、以下説明するステップS404およびS405からなるループ部スムージング処理を実行する。このループ部スムージング処理は、ループ部の終了位置(この場合、ループポイントLP2)以前のm倍音の位相および振幅の時間的推移とループ部の開始位置(この場合、ループポイントLP1)以降のm倍音の位相および振幅の時間的推移とが不連続を生じることなく接続されるようにループポイントLP1およびLP2間の各フレームのm倍音に対応した分析データの修正を行うものである。すなわち、このループ部スムージング処理は、ループ波形が繰り返し再生される場合における再生波形のm倍音の位相の時間的変化の連続性および振幅の時間的変化の連続性を担保するための処理である。
【0051】
まず、ステップS404では、m倍音の位相軌跡のスムージングを行う。ここで、図12を参照し、このステップS404におけるスムージング処理について説明する。既に説明した通り、ループポイントLP2は、基本波のループポイントLP1およびLP2間の位相差がほぼ2Nπ(Nは整数)となるように設定されているが、この場合の位相差は2nπと厳密に一致しないこともある。また、倍音の中にはループポイントLP1およびLP2間の位相差が2nπ(nは整数。m倍音についてはn=m×N)からずれているものもある。そこで、このようにループポイントLP1およびLP2間の位相差が2nπからずれているm倍音については、図12に破線によって示すように、ループポイントLP1およびLP2間の位相差を2nπとするための位相軌跡の修正を行うのである。これがステップS404におけるスムージング処理である。
【0052】
このスムージング処理の具体的な方法としては、例えば、ループポイントLP1およびLP2間の各フレームにおけるm倍音の位相を表す分析データ(位相データ)をRAM6から読み出し、これらのデータから得られる位相軌跡においてループポイントLP1およびLP2間の位相差が2nπとなるように、各データに一律に適切な係数を乗じる方法(係数乗算によるスムージング)等が考えられる。係数乗算によるスムージングでは、LP1とLP2の間のm倍音の分析データの特徴を保存したままで、該分析データをLP2からLP1へ滑らかに接続することができる。
【0053】
次にステップS405に進むと、m倍音の振幅軌跡のスムージングを行う。ここで、図13を参照し、このステップS405におけるスムージング処理について説明する。上記ステップS404のスムージング処理の結果、ループポイントLP2(LPE)からループポイントLP1(LPS)への移行の際のm倍音についての位相変化の連続性が担保された。しかし、一般的にm倍音の振幅は時間的に変動しているので、図12に示すように、ループポイントLP1およびLP2の各位置においてm倍音の振幅が異なっている場合がある。かかる場合に何等修正を行わないと、ループポイントLP1およびLP2間の原波形を繰り返し再生する場合において、再生位置がループポイントLP2(LPE)からループポイントLP1(LPS)へ移行する際に、再生波形の振幅に不連続が生じ、ノイズの原因となる。そこで、このようにループポイントLP1およびLP2の2点におけるm倍音の振幅に差がある場合には、図13に破線によって示すように、これらの2点におけるm倍音の振幅が一致するようm倍音の振幅軌跡の修正を行うのである。これがステップS405におけるスムージング処理である。
【0054】
このスムージング処理の具体的な方法としては、例えば次のような方法が考えられる。すなわち、まず、ループポイントLP1およびLP2間の各フレームにおけるm倍音の振幅を表す分析データ(振幅データ)をRAM6から読み出し、ループポイントLP1に対応した振幅データとループポイントLP2に対応した振幅データの差分を求める。次いで絶対値が0からこの差分に相当する値まで次第に大きくなるような正または負の補正値列を用意する。そして、この補正値列における各補正値を先頭のものから順に、ループポイントLP1からLP2に至るまでの区間内の各振幅データに各々加算する。このような補正を行うことにより、m倍音の分析データの変化特性を保ったまま、ループポイントLP2における振幅データをループポイントLP1における振幅データと一致させ、振幅の変化の連続性を担保することができる。この方法を補正値加算によるスムージングと呼ぶ。
【0055】
次にステップS406に進むと、ステップS401において指定された倍音までの全倍音についてステップS404およびS405の処理を終えたか否かを判断し、この判断結果が「NO」の場合はmを1だけインクリメントし(ステップS407)、ステップS404に戻る。一方、ステップS406の判断結果が「YES」の場合はステップS408に進む。
【0056】
次にステップS408に進むと、ループ波形の合成処理を行う。このステップS408に進んだ時点において、ループポイントLP1およびLP2間の各フレームに対応した分析データのうち基本波および指定された各倍音に対応した位相データおよび周波数データのスムージング処理が完了している。このステップS408の合成処理では、このスムージング処理の施されたループポイントLP1およびLP2間の各フレームの分析データに対し逆FFTが施され、ループポイントLP1およびLP2間のループ波形が合成される。
以上がループ波形作成処理の詳細である。
【0057】
図3において、ループ波形作成処理(ステップS104)が終了すると、CPU4はアタック波形作成処理を実行する(ステップS105)。図7はこのアタック波形作成処理の処理内容を示すフローチャートである。
【0058】
このアタック波形作成処理では、原波形からアタック部に対応した区間内の波形を切り出し、この波形に加工を施すことにより、ループ波形との間で各周波数成分毎に位相および振幅の変化の連続性を担保できるようなアタック波形を合成する。また、加工は、アタック部として切り出した原波形の各周波数成分の位相および振幅とループ波形の各周波数成分の位相および振幅とのクロスフェードを行うという手段により行う。以下、図7に示すフローに従い、このアタック波形作成処理の詳細について説明する。
【0059】
まず、CPU4は、原波形においてアタック部を切り出す範囲および上述したクロスフェードを行う範囲の指定を促すメッセージをパネル表示器3に表示する。使用者は、これに応答し、パネルスイッチ部2の操作により、アタック部の範囲、クロスフェードを行う範囲の開始位置XFSおよび終了位置XFEを指定する。ここで、クロスフェードの終了位置XFEはアタック部後端のループ波形と接続される位置であり、一方、開始位置XFSは該位置XFEから所定量だけ前方のアタック部中の位置である。CPU4は、使用者によって指定された情報を読み込む(以上、ステップS501)。
【0060】
次にステップS502に進み、RAM6内の分析データを参照することにより、ステップS501において指定されたアタック部の各周波数成分とループ波形の各周波数成分とを対応付ける。
【0061】
次にステップS503に進み、アタック部およびループ波形の各周波数成分の位相の連続性が得られるようにクロスフェード範囲の終了位置XFEを調整する。すなわち、ループスタートLPSにおけるループ波形の各周波数成分の位相と終了位置XFEにおける原波形における各周波数成分の位相とを各々対応する周波数成分同士で対比して位相差を各々求め、主要な周波数成分(例えば基本波)の位相差と2nπとのずれが許容範囲を超えている場合には、そのずれが許容範囲に収るように終了位置XFEの調整を行うのである。
【0062】
次にステップS504に進み、クロスフェード範囲内において原波形およびループ波形の各周波数成分の位相および振幅のスムージングを行う。図14はこの場合のm倍音の位相のスムージングの処理内容、図15はm倍音の振幅のスムージングの処理内容を各々例示するものである。なお、この図14および図15に示す例では、クロスフェード範囲の開始位置XFSがアタック部の開始位置から所定時間経過した位置に設定されている。一方、クロスフェード範囲の終了位置XFEはループ波形と接続されるポイント(すなわち、ループスタートLPS)である。この図においてループスタートLPS、ループエンドLPEとなっているが、これは、ループ波形作成処理で作成されたループ波形のループポイントLP1、LP2にそれぞれ対応している。
【0063】
まず、図14を参照し、原波形およびループ波形の各周波数成分の位相のスムージング処理について説明する。図14において、L1は原波形のアタック部のクロスフェード範囲の1つの周波数成分(例えばm倍音)の位相軌跡である。また、L2はこの周波数成分に対応したループ波形の周波数成分の位相軌跡である。ただし、L2の軌跡は、主要な周波数成分がループ波形に連続的につながるよう、位相軸方向に基本波の2nπ分シフトされた位置に表示されている(ステップS503の調整により、この接続は保証されている。)。
【0064】
ステップS504における位相のスムージング処理においては、この図14に例示するようにアタック部の周波数成分の位相軌跡L1とループ波形の周波数成分の位相軌跡L2とが不連続な状態となっている場合に、位相軌跡L1から位相軌跡L2に連続的に移行するように、位相軌跡L1の修正を行う。そして、本実施形態では、クロスフェード範囲において位相軌跡L1およびL2のクロスフェードを行うことによりこの位相のスムージングを行う。具体的には次の通りである。
【0065】
まず、ループスタートLPSおよびループエンドLPE間のループ波形の位相軌跡L2をそのまま継ぎ足すことにより、ループスタートLPS以前の時間領域まで延長された位相軌跡L2を作成する。なお、このようにして延長された位相軌跡L2がクロスフェード範囲の開始位置XFSにまで達していない場合には、位相軌跡L2を開始位置XFSに到達させるのに必要な回数だけ同様な継ぎ足しを行う。
【0066】
次にクロスフェード範囲の開始位置XFSから終了位置XFEまでの位相軌跡L1上の各点に対し、1から0に向けて次第に減少する一連の係数K1を乗じ、一方、位相軌跡L2上の各点には0から1に向けて次第に増加する一連の係数K2を乗じ、各乗算結果を加算する。この結果、クロスフェード範囲の開始位置XFSから終了位置XFEに進むに従って位相軌跡L1から位相軌跡L2に滑らかに移行する位相軌跡(破線)の各点の位相を表すデータが得られる。この方法をクロスフェードによるスムージングと呼ぶ。
【0067】
次に図15を参照し、原波形およびループ波形の各周波数成分の振幅のスムージング処理について説明する。図14において、L3は原波形のアタック部のクロスフェード範囲の1つの周波数成分(例えばm倍音)の振幅軌跡である。また、L4はこの周波数成分に対応したループ波形の周波数成分の振幅軌跡である。
【0068】
ステップS504における振幅のスムージング処理においては、この図15に例示するようにアタック部の周波数成分の振幅軌跡L3とループ波形の周波数成分の振幅軌跡L3とが不連続な状態となっている場合に、振幅軌跡L3から振幅軌跡L4に連続的に移行するように、振幅軌跡L3の修正を行う。この修正は、位相のスムージング処理の場合と同様なクロスフェード手法を用いて行う。
【0069】
ステップS504では、以上の位相および振幅のスムージング処理がアタック部およびループ波形の各周波数成分について実行され、スムージング後の位相軌跡および振幅軌跡に対応したアタック部の波形の分析データ(各周波数成分の位相データおよび振幅データ)がRAM6に保存される。
【0070】
次にステップS505に進むと、アタック部の波形の各周波数成分の中にループ波形の各周波数成分と対応しないものがあるか否かを判断する。この判断結果が「YES」である場合にはステップS506に進み、該当する周波数成分の振幅軌跡をクロスフェード範囲内においてフェードアウト(すなわち、開始位置XFSから終了位置XFEに向かうに従い、当該周波数成分の振幅を次第に減少させ、終了位置XFEでは振幅を0にする。)し、このフェードアウト後の振幅軌跡に対応した分析データをRAM6に保存する。そして、このステップS506の終了後、ステップS507に進む。一方、ステップS505の判断結果が「NO」の場合はステップ506を介することなくステップS507に進む。
【0071】
次にステップS508に進むと、逆FFTによるアタック波形の合成処理を行う。このステップS508に進んだ時点において、クロスフェード範囲内の各フレームに対応した分析データのスムージング処理(クロスフェード処理)およびフェードアウト処理が完了している。このステップS508では、これらの処理を経たアタック部の波形の分析データに対し逆FFTが施され、アタック波形が合成される。
【0072】
次にステップS509に進み、ステップS508において得られたアタック波形の波形データに対し、さらに残波形データを足し込み、正弦波合成(ステップS508)された合成波形の他、正弦波合成では合成できない残波形を含んだアタック波形の波形データを作成し、波形メモリ9に格納する。
以上がアタック波形作成処理の詳細である。
【0073】
そして、図3において、アタック波形作成処理(ステップS105)が終了すると、CPU4は、音源用諸データ準備処理を実行する(ステップS106)。この音源用諸データ準備処理では、楽音形成指示があった場合に波形メモリ9からアタック波形およびループ波形の波形データを読み出して楽音信号を形成する際に必要な制御パラメータを準備し、RAM6に格納する。具体的には、上述したステップS105までの処理により合成したアタック波形のアタックスタートATS、ループ波形のループスタートLPS、ループエンドLPEに対応した各波形データの波形メモリ9内の格納位置を特定する各アドレス等、当該アタック波形およびループ波形を用いた楽音形成処理に必要な各種の制御データをRAM6内の制御データ格納エリアに格納する。そして、ステップS106の処理の終了を以て、音源波形データ生成処理を終了する。
【0074】
以上、本実施形態に係る波形データ生成装置の本来の動作について説明したが、本実施形態に係る波形データ生成装置は、波形メモリ音源としても機能する。以下、この波形メモリ音源としての本実施形態の動作について説明する。
【0075】
まず、MIDIインタフェース1を介してCPU4にMIDIのノートオンイベントが入力されたとすると、CPU4は、図2に示すメインルーチンにおけるMIDI処理(ステップS5)を実行する。
【0076】
このMIDI処理の具体的内容は次の通りである。
(1)まず、CPU4は、ノートオンイベントをRAM6内に設定されたバッファに格納する。
(2)次に、CPU4は、音源12の楽音形成チャネルの1つを当該ノートオンイベントに対応した楽音形成処理に割り当てる。
(3)次に、CPU4は、当該ノートオンイベントに対応した楽音形成処理を行うための制御パラメータを決定し、この制御パラメータを当該楽音形成処理を行う楽音形成チャネルに対応した音源12内のレジスタに設定する。この制御パラメータには、楽音形成処理に使用する音源波形データを指定する情報、付与する効果を制御するための情報、音量エンベロープを制御するための情報等が含まれる。ここで、楽音形成処理に使用する音源波形データを指定する情報は、パネルスイッチ部2の音色スイッチ等により設定された音色やノートオンの音高等に基づいて決定されるものであり、当該音源波形におけるアタック波形のアタックスタートATS、ループ波形のループスタートLPS、ループエンドLPEに対応した各音源波形データの波形メモリ9内の格納位置を特定する各アドレスが含まれている。
(4)次に、CPU4は、上記楽音形成チャネルに対応した音源12内のレジスタにノートオンフラグを設定する。このノートオンフラグの設定により、音源12は、波形メモリ9内の該当する音源波形データを読み出して楽音信号を形成する処理を開始する。すなわち、CPU4は、上記アタックスタートATSからループスタートLPSの手前までの区間に対応した波形メモリ9内の各アドレスから音源波形データをノートオンの音高に応じた読み出し速度で読み出し、その後、ループスタートLPSからループエンドLPEまでの区間に対応した各アドレスから音源波形データを同速度で繰り返し読み出し、この順次読み出される音源波形データにより楽音信号を形成するのである。
【0077】
なお、以上説明した実施形態では、正弦波合成を用いたが、同様の技術が高調波合成、部分音合成などと呼ばれる場合もある。
また、以上説明した実施形態は、種々の変形した態様で実施可能である。例えば、次の通りである。
(1)上記実施形態において、波形データ生成プログラムを記録した記録媒体はROM5であったが、FD等の着脱可能な記録媒体に記録し、この記録媒体に記録された波形データ生成プログラムを任意のパーソナルコンピュータが読み込んで実行し得るようにしてもよい。
(2)FFTにより周波数分析を行う代わりに、ウェーブレット変換等を利用して周波数分析を行ってもよい。また、上記実施形態では、8周期の窓を1/8周期ずつずらしてFFTを行うようにしたが、窓のサイズ、窓をずらす量は適宜変更してよい。
(3)上記実施形態では、ループ部の位相データのスムージング方法として係数乗算によるスムージングを、ループ部の振幅データのスムージング方法として補正値加算によるスムージングを、また、アタック部の位相および振幅のスムージング方法としてクロスフェードによるスムージングを行っている。しかし、スムージングする場所とスムージング方法の対応はこの例に限らない。例えば、ループ部の位相をクロスフェードによりスムージングしてもよい。ループ部の振幅データをスムージングした補正値は、直線的に変化する関数であったが、高次関数や正弦波関数的に変化する補正値を用いてもよい。本発明の特徴は各倍音毎にスムージングを行うことにあり、そこで用いられるスムージング方法については任意の方法を使用してよい。
(4)上記実施形態において説明した波形データ生成方法により得られた波形データをFD、CD、ROM、ICカードなどの記録媒体に記録し、ユーザに頒布してもよい。この場合、ユーザは、例えば音源付きのパーソナルコンピュータ等によりFDやCDに記録された波形データを読み出し、音として再生することができる。また、上記実施形態において説明した波形データ生成方法により得られた波形データを、例えばネットワーク内のサーバコンピュータが管理するハードディスクなどの記録媒体に記録しておき、サーバコンピュータがユーザからの要求に応じ、ネットワークを介して配信するようにしてもよい。
【0078】
【発明の効果】
以上説明したように、この発明によれば、原波形の有していた個性を有し、かつ、再生の際にノイズを生じさせない音源波形データを原波形から生成することができるという効果が得られる。
【図面の簡単な説明】
【図1】 この発明の一実施形態である波形メモリ音源の構成を示すブロック図である。
【図2】 同実施形態の動作を示すフローチャートである。
【図3】 同実施形態の動作を示すフローチャートである。
【図4】 同実施形態の動作を示すフローチャートである。
【図5】 同実施形態の動作を示すフローチャートである。
【図6】 同実施形態の動作を示すフローチャートである。
【図7】 同実施形態の動作を示すフローチャートである。
【図8】 同実施形態における原波形の周波数分析の方法を示す図である。
【図9】 同実施形態における正弦波合成波形および残波形の生成方法を示す図である。
【図10】 同実施形態における残波形を例示する図である。
【図11】 同実施形態におけるループポイントの決定方法を示す図である。
【図12】 同実施形態におけるループ部のm倍音の位相のスムージング処理を示す図である。
【図13】 同実施形態におけるループ部のm倍音の振幅のスムージング処理を示す図である。
【図14】 同実施形態におけるアタック部とループ部との間のm倍音の位相のスムージング処理を示す図である。
【図15】 同実施形態におけるアタック部とループ部との間のm倍音の振幅のスムージング処理を示す図である。
【符号の説明】
1……MIDIインタフェース、2……パネルスイッチ部、
3……パネル表示器、4……CPU(演算手段)、
5……ROM(波形データ生成プログラムを記録した記録媒体)、
6……RAM、
7……記録媒体、8……ドライブ、11……書込回路、
10……アクセス管理部(以上、原波形入力手段)、
9……波形メモリ(記憶手段)、
12……音源、13……サウンドシステム(以上、楽音形成手段)。
Claims (9)
- 原波形の周波数分析を時間的に相互にずれた複数の区間について行い、各区間毎に、当該区間に属する原波形の複数の周波数成分の位相と振幅を求め、この各区間毎に求めた原波形の複数の周波数成分の位相と振幅から、前記原波形の複数の周波数成分の位相と振幅の時間経過に伴う軌跡を求める周波数分析処理と、
前記原波形のループ部の開始位置および終了位置を決定するループ部決定処理と、
前記原波形の前記複数の周波数成分の少なくとも一部の周波数成分について、当該周波数成分の前記ループ部の終了位置における位相と前記ループ部の開始位置における位相の位相差が2nπ(nは整数)となり、かつ、前記ループ部の終了位置の振幅と前記ループ部の開始位置の振幅が一致して、前記ループ部の終了位置以前の当該周波数成分の時間経過に伴う位相および振幅の軌跡と前記ループ部の開始位置以降の当該周波数成分の時間経過に伴う位相および振幅の軌跡とが不連続を生じることなく接続されるように、前記周波数分析処理により求めた前記ループ部の当該周波数成分の位相および振幅の軌跡を調整するループ部スムージング処理と、
前記ループ部スムージング処理により調整された前記ループ部の各周波数成分の位相および振幅の軌跡に基づいて正弦波合成を行って前記ループ部の波形データを合成するループ波形合成処理と
を具備することを特徴とする波形データ生成方法。 - 求められた各区間における前記原波形の各周波数成分に基づいて正弦波合成を行い、合成された正弦波合成波形を原波形から差し引くことにより残差波形を求める残差波形生成処理をさらに具備し、
前記ループ部決定処理は、前記残差波形のレベルが所定の閾値以下である区間内で前記ループ部の開始位置および終了位置を決定することを特徴とする請求項1に記載の波形データ生成方法。 - 前記ループ部決定処理は、
前記原波形上の第1ポイントを決定する第1決定処理と、
前記第1ポイントに対し、前記原波形の各周波数成分のうちの少なくとも基本波の周波数成分の位相差が2nπ(nは整数)となる複数の第2ポイントを決定する第2決定処理と、
前記第1ポイントと前記複数の第2ポイントの各々との間の前記原波形の各周波数成分の位相差の2nπ(nは整数)との差に基づいて、前記複数の第2ポイントから1つを選択する選択処理と
を具備することを特徴とする請求項1に記載の波形データ生成方法。 - 原波形の周波数分析を時間的に相互にずれた複数の区間について行い、各区間毎に、当該区間に属する原波形の複数の周波数成分の位相と振幅を求め、この各区間毎に求めた原波形の複数の周波数成分の位相と振幅から、前記原波形の複数の周波数成分の位相と振幅の時間経過に伴う軌跡を求める周波数分析処理と、
前記原波形のループ部を決定するループ部決定処理と、
前記原波形のうちアタック部を決定するアタック部決定処理と、
前記アタック部の後端を後端とする接続部の前端を指定する接続部指定処理と、
前記原波形のアタック部の各周波数成分と前記原波形におけるループ部の各周波数成分とを対応付ける対応付け処理と、
前記対応付け処理により対応付けられた前記アタック部の各周波数成分と前記ループ部の各周波数成分について、前記アタック部の終了位置における位相と前記ループ部の開始位置における位相の位相差が2nπ(nは整数)となり、かつ、前記アタック部の終了位置の振幅と前記ループ部の開始位置の振幅が一致して、前記原波形のアタック部の各周波数成分の時間経過に伴う位相および振幅の軌跡と前記原波形のループ部の開始位置以降の当該周波数成分に対応付けられた周波数成分の時間経過に伴う位相および振幅の軌跡とが不連続を生じることなく接続されるように、前記周波数分析処理により求めた前記原波形の接続部における各周波数成分の位相および振幅の軌跡を調整するアタック部スムージング処理と、
前記アタック部スムージング処理により調整された前記アタック部の各周波数成分の位相および振幅の軌跡に基づいて正弦波合成を行い、前記アタック波形の波形データを合成するアタック波形合成処理と
を具備することを特徴とする波形データ生成方法。 - 前記周波数分析により得られた複数の区間の各々における前記原波形の各周波数成分に基づいて正弦波合成を行い、合成された正弦波合成波形を原波形から差し引くことにより残差波形を求める残差波形生成処理を具備し、
前記アタック波形合成処理では、前記正弦波合成により合成された正弦波合成波形に前記残差波形を加算して前記アタック波形の波形データを合成することを特徴とする請求項4に記載の波形データ生成方法。 - さらに前記アタック部の各周波数成分のうち前記対応付け処理によって前記原波形のループ部の各周波数成分のいずれとも対応付けられなかった周波数成分の振幅が前記接続部において前記ループ部に至るまでの間に次第に減少して消滅するように、当該周波数成分の振幅を調整する処理を含むことを特徴とする請求項4に記載の波形データ生成方法。
- 合成した波形データをコンピュータ読み取り可能な記録媒体に書き込む処理をさらに具備することを特徴とする請求項1〜6のいずれか1の請求項に記載の波形データ生成方法。
- 原波形の周波数分析を時間的に相互にずれた複数の区間について行い、各区間毎に、当該区間に属する原波形の複数の周波数成分の位相と振幅を求め、この各区間毎に求めた原波形の複数の周波数成分の位相と振幅から、前記原波形の複数の周波数成分の位相と振幅の時間経過に伴う軌跡を求める周波数分析処理と、
前記原波形のループ部の開始位置および終了位置を決定するループ部決定処理と、
前記原波形の前記複数の周波数成分の少なくとも一部の周波数成分について、当該周波数成分の前記ループ部の終了位置における位相と前記ループ部の開始位置における位相の位相差が2nπ(nは整数)となり、かつ、前記ループ部の終了位置の振幅と前記ループ部の開始位置の振幅が一致して、前記ループ部の終了位置以前の当該周波数成分の時間経過に伴う位相および振幅の軌跡と前記ループ部の開始位置以降の当該周波数成分の時間経過に伴う位相および振幅の軌跡とが不連続を生じることなく接続されるように、前記周波数分析処理により求めた前記ループ部の当該周波数成分の位相および振幅の軌跡を調整するループ部スムージング処理と、
前記ループ部スムージング処理により調整された前記ループ部の各周波数成分の位相および振幅の軌跡に基づいて正弦波合成を行って前記ループ部の波形データを合成するループ波形合成処理と
をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。 - 波形データを記憶する記憶手段と、
原波形の波形データを外部から取り込んで前記記憶手段に格納する原波形入力手段と、
前記記憶手段に記憶された原波形の波形データに基づき、ループ部の波形データを合成する波形データ生成処理を実行する演算手段とを具備し、
該波形データ生成処理が、
原波形の周波数分析を時間的に相互にずれた複数の区間について行い、各区間毎に、当該区間に属する原波形の複数の周波数成分の位相と振幅を求め、この各区間毎に求めた原波形の複数の周波数成分の位相と振幅から、前記原波形の複数の周波数成分の位相と振幅の時間経過に伴う軌跡を求める周波数分析処理と、
前記原波形のループ部の開始位置および終了位置を決定するループ部決定処理と、
前記原波形の前記複数の周波数成分の少なくとも一部の周波数成分について、当該周波数成分の前記ループ部の終了位置における位相と前記ループ部の開始位置における位相の位相差が2nπ(nは整数)となり、かつ、前記ループ部の終了位置の振幅と前記ループ 部の開始位置の振幅が一致して、前記ループ部の終了位置以前の当該周波数成分の時間経過に伴う位相および振幅の軌跡と前記ループ部の開始位置以降の当該周波数成分の時間経過に伴う位相および振幅の軌跡とが不連続を生じることなく接続されるように、前記周波数分析処理により求めた前記ループ部の当該周波数成分の位相および振幅の軌跡を調整するループ部スムージング処理と、
前記ループ部スムージング処理により調整された前記ループ部の各周波数成分の位相および振幅の軌跡に基づいて正弦波合成を行って前記ループ部の波形データを合成するループ波形合成処理と
を含むことを特徴とする波形データ生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07671199A JP3659053B2 (ja) | 1998-04-23 | 1999-03-19 | 波形データ生成方法、波形データ生成プログラムを記録した記録媒体および波形データ生成装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11390098 | 1998-04-23 | ||
JP10-113900 | 1998-04-23 | ||
JP07671199A JP3659053B2 (ja) | 1998-04-23 | 1999-03-19 | 波形データ生成方法、波形データ生成プログラムを記録した記録媒体および波形データ生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000010565A JP2000010565A (ja) | 2000-01-14 |
JP3659053B2 true JP3659053B2 (ja) | 2005-06-15 |
Family
ID=26417846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP07671199A Expired - Lifetime JP3659053B2 (ja) | 1998-04-23 | 1999-03-19 | 波形データ生成方法、波形データ生成プログラムを記録した記録媒体および波形データ生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3659053B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5353305B2 (ja) * | 2009-03-03 | 2013-11-27 | ヤマハ株式会社 | 波形データの形成方法 |
JP5316091B2 (ja) * | 2009-03-03 | 2013-10-16 | ヤマハ株式会社 | 波形メモリ音源 |
JP5493408B2 (ja) * | 2009-03-17 | 2014-05-14 | ヤマハ株式会社 | 波形データ生成方法 |
JP5655273B2 (ja) * | 2009-03-17 | 2015-01-21 | ヤマハ株式会社 | 波形データ生成方法 |
JP2011247921A (ja) * | 2010-05-24 | 2011-12-08 | Nippon Telegr & Teleph Corp <Ntt> | 信号合成方法、信号合成装置及びプログラム |
JP6284298B2 (ja) * | 2012-11-30 | 2018-02-28 | Kddi株式会社 | 音声合成装置、音声合成方法および音声合成プログラム |
CN113711302A (zh) * | 2019-04-26 | 2021-11-26 | 雅马哈株式会社 | 音频信息播放方法及装置、音频信息生成方法及装置和程序 |
-
1999
- 1999-03-19 JP JP07671199A patent/JP3659053B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2000010565A (ja) | 2000-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2508324B2 (ja) | 電子楽器 | |
JP3659053B2 (ja) | 波形データ生成方法、波形データ生成プログラムを記録した記録媒体および波形データ生成装置 | |
JP2017049349A (ja) | 楽音信号発生装置 | |
US6509519B2 (en) | Method and apparatus for generating musical tone waveforms by user input of sample waveform frequency | |
JP4608650B2 (ja) | 既知音響信号除去方法及び装置 | |
JP3601373B2 (ja) | 波形編集方法 | |
JP4736046B2 (ja) | 波形データ生産方法、波形データ生産装置、プログラムおよび波形メモリ生産方法 | |
JP3843199B2 (ja) | 音の時間伸長装置、方法、および音の時間伸長プログラムを記録した記録媒体 | |
JP3534012B2 (ja) | 波形分析方法 | |
JPH06138880A (ja) | 楽音合成装置と方法 | |
JP2007248518A (ja) | 波形編集装置 | |
JP3428401B2 (ja) | 波形データ処理方法 | |
JP3731470B2 (ja) | 波形データ生成方法、波形データ生成装置および記録媒体 | |
JP2009282536A (ja) | 既知音響信号除去方法及び装置 | |
JP3714397B2 (ja) | 波形データ処理装置及び波形データ処理方法 | |
JP3636056B2 (ja) | 波形データ処理方法 | |
JP3649398B2 (ja) | 波形処理方法および装置 | |
JP2007248519A (ja) | 波形編集装置 | |
JP2621466B2 (ja) | サンプリング装置 | |
JP2001282246A (ja) | 波形データ時間伸張圧縮装置 | |
JP3752855B2 (ja) | 波形データ作成方法 | |
JP3731476B2 (ja) | 波形データ解析方法、波形データ解析装置および記録媒体 | |
JP3733964B2 (ja) | 分析結果を用いた音源波形合成装置 | |
US6235980B1 (en) | Apparatus and method for generating waveform data for musical tone signal generating apparatus | |
JP2000181458A (ja) | タイムストレッチ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040302 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040506 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041026 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041224 |
|
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: 20050222 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050307 |
|
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: 20090325 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090325 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100325 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110325 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110325 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120325 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130325 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140325 Year of fee payment: 9 |
|
EXPY | Cancellation because of completion of term |