JP3731476B2 - 波形データ解析方法、波形データ解析装置および記録媒体 - Google Patents
波形データ解析方法、波形データ解析装置および記録媒体 Download PDFInfo
- Publication number
- JP3731476B2 JP3731476B2 JP2001008813A JP2001008813A JP3731476B2 JP 3731476 B2 JP3731476 B2 JP 3731476B2 JP 2001008813 A JP2001008813 A JP 2001008813A JP 2001008813 A JP2001008813 A JP 2001008813A JP 3731476 B2 JP3731476 B2 JP 3731476B2
- Authority
- JP
- Japan
- Prior art keywords
- waveform data
- waveform
- automatic performance
- recording
- timing
- 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】
【従来の技術】
従来より、ある程度の長さの自然楽器音等を録音し、これを設定されたテンポに応じた速度で自動的に繰返し再生する技術が知られている。この技術はリズム音等の自動伴奏等に使用されているが、設定されるテンポに応じて原波形を圧縮あるいは伸張させる必要がある。かかる処理を実行するために、従来より以下のような装置またはソフトウエアが知られている。
【0003】
(1)サンプラ
サンプラは、アナログ波形をサンプリングしてデジタルの波形データに変換するものであり、単音波形を記録するものと、複音から成るフレーズ波形を記録するものとが知られている。後者を特にフレーズサンプラという。
【0004】
(2)スライサ
スライサは、区切られた波形データに対して先頭から順番にノートナンバを割り当てるとともに、割り当てたノートナンバとタイミング(区切り位置)からなる自動演奏情報、すなわち区切られた波形データをドライブするためのシーケンスデータを生成して記憶する。この自動演奏情報に基づき、記録時のテンポで自動演奏し、再生されたノートオンイベントによって区切られた波形データをトリガすると、元の波形データ(区切る前の波形データ)が再生される。ここで、テンポを変更すると、そのテンポに応じてノートオンイベントのタイミングが変化し、全体として波形データが時間軸方向に伸縮される。
【0005】
(3)シーケンサ
シーケンサは、上記シーケンスデータを再生するものである。但し、シーケンスデータをそのままの形で再生するばかりではなく、再生速度を適宜増減することによって所望のテンポでシーケンスデータを再生することができる。なお、シーケンスデータを予め編集しておくことにより、各単位波形データの再生タイミングを独自に変更しておくことも勿論可能である。このシーケンスデータを適当な音源に供給すると、再生シーケンスデータに基づいた楽音波形が再生されることになる。
【0006】
次に、再生される楽音波形の状態について、図2(a),(b)を流用しさらに詳細に説明する。
同図(a)は、自然楽器音等をステレオ録音した原波形データである。この原波形データを、エンベロープの立上り部分(図上の破線部分、以下「制御ポイント」という)で区切ると、例えば同図(b)に示すように、原波形データを複数の区画(オリジナルセクションという)1r〜12rに区切ることができる。この原波形データを用いて自動リズム伴奏等を行う際、原波形データの録音時のテンポと同一のテンポで再生するのであれば、原波形データを特に加工することなく繰返し再生するとよい。
【0007】
また、再生時のテンポが録音時よりも速くなる場合は、各オリジナルセクション1r〜12rの再生部分を短くする必要がある。このためには、各区画の終端部分を一定の割合でカットすればよい。例えば、録音時のテンポが「100」、再生時のテンポが「125」であったとすると、各オリジナルセクション1r〜12rの終端部分を20%づつカットし、残りの波形データを再生するとよい。
【0008】
一方、再生時のテンポが録音時のテンポよりも遅くなる場合には問題が生じる。すなわち、再生時のテンポに合せて各区画の再生開始タイミングを単に遅らせたのでは、各区画の隙間に無音区間が生じ、耳障りになる。そこで、この各区画の隙間は、直前の区画の波形データを必要な長さだけ継ぎ足して再生することが一般的である。その際、継ぎ足される部分の振幅の初期値は、その直前の部分の振幅と一致するように設定される。
【0009】
【発明が解決しようとする課題】
ここで、自動演奏情報等、元々存在するなんらかのシーケンスデータ(元シーケンスデータ)に対して新たなトラックを追加し、上記技術によって得たシーケンスデータ(追加シーケンスデータ)をこの追加したトラックに書き込み、両者のアンサンブルのシーケンスデータ(合成シーケンスデータ)を作成する場合を想定してみる。
【0010】
ここで、元シーケンスデータと追加シーケンスデータとは、関連なく記録されているために、単に追加シーケンスデータを新たなトラックに書き込んだのでは、両者のタイミングがずれるという問題が生じる。このため、両者のタイミング合わせを慎重に行う必要があり、きわめて煩雑であった。特に、元シーケンスデータのテンポが途中で変化している場合等においては、タイミング合わせを楽曲の随所で行う必要があった。また、従来は、波形データのエンベロープを分析して得られた区切り位置のみに基づいて波形データを分割していたため、区切り位置が誤検出されたり、音楽的に適切でない位置で分割される場合もあった。
【0011】
この発明は上述した事情に鑑みてなされたものであり、元シーケンスデータに関連付けて波形データを記録することができる波形データ解析方法、波形データ解析装置および記録媒体を提供することを目的としている。
【0012】
【課題を解決するための手段】
上記課題を解決するため本発明にあっては、下記構成を具備することを特徴とする。なお、括弧内は例示である。
請求項1記載の波形データ解析方法にあっては、自動演奏情報の再生を開始する過程と、波形データの記録を開始する過程と、前記自動演奏情報と前記波形データとのタイミングの関係を示す同期制御データを記録しつつ、前記波形データを記録する過程と、前記波形データのエンベロープレベルを求める過程と、前記自動演奏情報と、前記同期制御データと、前記エンベロープレベルとに基づいて、前記波形データの区切り位置(制御ポイント)を求める区切り位置検出過程(ステップSP106〜SP118)とを有することを特徴とする。
さらに、請求項2記載の構成にあっては、請求項1記載の波形データ解析方法において、前記区切り位置検出過程(ステップSP106〜SP118)は、前記自動演奏情報と前記同期制御データとに基づいて、前記波形データの推定区切り位置(基準位置)を決定する推定過程と、該推定区切り位置に対応した所定の範囲内において、前記波形データの一ないし複数の立ち上がり位置を検出する検出過程と、検出された前記一ないし複数の立ち上がり位置の何れかを区切り位置として抽出する抽出過程とを有することを特徴とする。
さらに、請求項3記載の構成にあっては、請求項2記載の波形データ解析方法において、前記所定の範囲(検出窓)は、第1および第2の所定範囲から構成され、前記抽出過程は、前記第1の所定範囲に属する立ち上がり位置についてはこれら立ち上がり位置に各々対応するレベル値(ピークレベル)が所定の第1の閾値(閾値Th1)を超えることを条件として、該立ち上がり位置を前記区切り位置として抽出するとともに、前記第2の所定範囲に属する立ち上がり位置についてはこれら立ち上がり位置に各々対応するレベル値(ピークレベル)が前記第1の閾値(閾値Th1)よりも低い第2の閾値(閾値Th2)を超えることを条件として、該立ち上がり位置を前記区切り位置として抽出する過程であることを特徴とする。
さらに、請求項4記載の構成にあっては、請求項2記載の波形データ解析方法において、前記推定過程は、前記自動演奏情報の拍タイミング、ノートオンタイミングまたはノートオフタイミングに基づいて、前記波形データの推定区切り位置を決定することを特徴とする。
さらに、請求項5記載の構成にあっては、請求項2記載の波形データ解析方法において、前記抽出過程は、検出された立ち上がり位置の強度に基づいて、何れかの立ち上がり位置を前記区切り位置として抽出することを特徴とする。
また、請求項6記載の波形データ解析方法にあっては、自動演奏情報の再生を開始する過程と、波形データの記録を開始する過程と、前記自動演奏情報と前記波形データとのタイミングの関係を示す同期制御データを記録しつつ、前記波形データを記録する過程と、前記自動演奏情報の拍タイミングと前記同期制御データとに基づいて推定拍位置を決定する過程と、前記推定拍位置に基づいて前記波形データの区切り位置を求める区切り位置決定過程とを有することを特徴とする。
また、請求項7記載の波形データ解析方法にあっては、自動演奏情報の再生を開始する過程と、波形データの記録を開始する過程と、前記自動演奏情報と前記波形データとのタイミングの関係を示す同期制御データを記録しつつ、前記波形データを記録する過程と、前記自動演奏情報のノートオンタイミングと前記同期制御データとに基づいて推定立ち上がり位置を決定する過程と、該推定立ち上がり位置に基づいて前記波形データの区切り位置を求める区切り位置決定過程とを有することを特徴とする。
また、請求項8記載の波形データ解析方法にあっては、自動演奏情報の再生を開始する過程と、波形データの記録を開始する過程と、前記自動演奏情報と前記波形データとのタイミングの関係を示す同期制御データを記録しつつ、前記波形データを記録する過程と、前記自動演奏情報と前記同期制御データとに基づいて推定区切り位置を決定する過程と、前記波形データ中の前記推定区切り位置近傍の部分を分析する分析過程と、該分析結果に基づいて前記波形データ全体の区切り位置を求める区切り位置決定過程とを有することを特徴とする。
さらに、請求項9記載の構成にあっては、請求項8記載の波形データ解析方法において、前記分析過程は、前記波形データのエンベロープを分析することにより立ち上がり位置を検出する過程であることを特徴とする。
さらに、請求項10記載の構成にあっては、請求項8記載の波形データ解析方法において、前記区切り位置決定過程は、前記分析結果に含まれる複数の立ち上がり位置に基づいて、各推定区切り位置毎に一つの区切り位置を決定することを特徴とする。
さらに、請求項11記載の構成にあっては、請求項1ないし10の何れかに記載の波形データ解析方法において、前記自動演奏情報を再生する自動演奏のテンポクロックと前記波形データのサンプリング周期は同期しており、前記同期制御データは、前記波形データの録音開始タイミングを示すタイミングデータを含むことを特徴とする。
さらに、請求項12記載の構成にあっては、請求項1ないし10の何れかに記載の波形データ解析方法において、前記同期制御データは、前記波形データの録音開始タイミングを示すタイミングデータと、前記自動演奏のテンポクロックと前記波形データのサンプリング周期を同期させるための同期データとを含むことを特徴とする。
また、請求項13記載の波形データ解析装置にあっては、請求項1ないし12の何れかに記載の波形データ解析方法を実行することを特徴とする。
また、請求項14記載のコンピュータ読み取り可能な記録媒体にあっては、請求項1ないし12の何れかに記載の波形データ解析方法をコンピュータに実行させるプログラムを記憶したことを特徴とする。
【0013】
【発明の実施の形態】
1.実施形態のハードウエア構成
次に、本発明の一実施形態の波形編集システムのハードウエア構成を図1を参照し説明する。なお、本波形編集システムは、汎用パーソナルコンピュータ上で動作するアプリケーションプログラムおよびドライバ等によって構成されている。
【0014】
図において102は表示器であり、ユーザに対して各種情報を表示する。104は操作子であり、キーボード、マウス等から構成されている。106はマイクロフォンであり、自然楽器等の楽音信号(アナログ波形)を検出する。108はADコンバータであり、該アナログ波形をサンプリングしてデジタル信号に変換する。110は録音回路であり、ハードディスク112にダイレクトにアクセスし(DMA動作を行ない)、該デジタル信号を波形データとしてハードディスク112に記憶させる。なお、ハードディスク112には、これら波形データの他、汎用パーソナルコンピュータのオペレーティングシステム、後述する波形編集のアプリケーションプログラム等が格納される。
【0015】
114は再生回路であり、ハードディスク112にダイレクトにアクセスして(DMA動作を行ない)、再生対象となる波形データを読出し、ミキサ116に供給する。122は音源であり、バスライン136を介して供給された演奏情報に基づいて楽音信号を合成し、合成した楽音信号をミキサ116に供給する。ミキサ116においては、再生回路114および音源122から供給された波形データおよび楽音信号が合成される。
【0016】
118はDAコンバータであり、ミキサ116のミキシング結果をアナログ信号に変換する。120はサウンドシステムであり、該アナログ信号を増幅して発音する。124はMIDIインターフェースであり、外部のMIDI機器との間でMIDI信号をやりとりする。126はその他のインタフェースであり、外部機器との間で波形データ等のやりとりを行う。128はタイマであり、所定時間毎にタイマ割込みを発生させる。
【0017】
130はCPUであり、後述するプログラムに基づいて、バスライン136を介して波形編集システムの各部を制御する。132はROMであり、イニシャルプログラムローダ等が格納されている。134はRAMであり、CPU130によって読み書きされる。
【0018】
2.実施形態の動作
2.1.原波形データの録音処理
次に、本実施形態の動作を説明する。
まず、パーソナルコンピュータの電源が投入されると、ROM132に格納されたイニシャルプログラムローダが実行され、オペレーティングシステムが立上る。このオペレーティングシステムにおいて所定の操作を行うと、本実施形態の波形編集アプリケーションプログラムが起動される。このアプリケーションプログラムにおいて所定の操作を行うと、図20に示す自動演奏&波形録音処理ルーチンが起動される。
【0019】
図20において処理がステップSP202に進むと、自動演奏および波形録音に係る準備処理が行われる。そして、表示器2上に図21に示す波形録音制御ウィンドウ150が表示される。波形録音制御ウィンドウ150の内部において151は自動演奏ファイルテキストボックスであり、自動演奏ファイル名を指定するために設けられている。152は自動演奏スタートボタンであり、指定された自動演奏ファイルの再生開始を指示するために設けられている。また、154は自動演奏ストップボタンであり、該自動演奏ファイルの再生停止を指示するために設けられている。
【0020】
また、156は波形録音スタートボタンであり、ADコンバータ108、録音回路110を介しての波形録音の開始を指示するために設けられている。また、158は波形録音ストップボタンであり、該波形録音の停止を指示するために設けられている。159はキャンセルボタンであり、全処理の中止を指示するために設けられている。初期状態においては、上記波形録音制御ウィンドウ150内の各要素のうち自動演奏ファイルテキストボックス151のみがアクティブ(操作可能)状態に設定され、ボタン152〜159はインアクティブ(操作禁止)状態に設定される。
【0021】
ここで、ユーザが自動演奏ファイル(例えばSMF:スタンダードMIDIフォーマットのファイル)の適切なファイル名を自動演奏ファイルテキストボックス151に入力すると、自動演奏スタートボタン152とキャンセルボタン159とがアクティブ状態に設定され、他の要素がインアクティブ状態に設定される。
【0022】
次に、処理がステップSP204に進むと、波形録音制御ウィンドウ150においてアクティブ状態である各要素の操作イベントが検出される。次に、処理がステップSP206に進むと、ステップSP204の検出結果に基づいて処理が分岐される。まず、なんら操作イベントが検出されなかった時は処理はステップSP204に戻り、操作イベントの検出が続行される。また、波形録音制御ウィンドウ150においてキャンセルボタン159がマウスでクリックされると、直ちに本アプリケーションプログラムの処理が終了する。
【0023】
一方、波形録音制御ウィンドウ150において自動演奏スタートボタン152がマウスでクリックされると、処理はステップSP208に進む。ここでは、先に指定された自動演奏ファイルの再生が開始される。さらにステップSP208においては、自動演奏ストップボタン154および波形録音スタートボタン156がアクティブ状態に設定され、他の要素がインアクティブ状態に設定される。
【0024】
次に、処理がステップSP210に進むと、波形録音制御ウィンドウ150においてアクティブ状態である各要素の操作イベントが検出される。次に、処理がステップSP212に進むと、ステップSP210の検出結果に基づいて処理が分岐される。まず、なんら操作イベントが検出されなかった時は処理はステップSP210に戻り、操作イベントの検出が続行される。また、自動演奏ストップボタン154がマウスでクリックされると、自動演奏ファイルの再生処理が停止されるとともに、直ちに本アプリケーションプログラムの処理が終了する。
【0025】
一方、波形録音制御ウィンドウ150において波形録音スタートボタン156がマウスでクリックされると、処理はステップSP214に進む。ここでは、マイクロフォン6、ADコンバータ8および録音回路10を順次介して得られた波形データの録音が開始される。すなわち、DAコンバータ118および録音回路110を順次介して、該波形データがハードディスク112に録音されてゆく。さらに、ステップSP214においては、自動演奏ストップボタン154と波形録音ストップボタン158とがアクティブ状態に設定され、他の要素がインアクティブ状態に設定される。
【0026】
ここで、波形録音処理の詳細をさらに図16を参照し説明する。
同図(a)は自動演奏情報の楽譜であり、「↑」印を付したタイミングが拍タイミングになる。同図(b)は録音されるフレーズ波形(原波形データ)であり、同図(a)の対応するタイミングに合せて表示されている。また、同図(c)はハードディスク112上に録音された波形データ(原波形データ)と、自動演奏情報との関係を示す図である。
【0027】
同図(c)において202,204は自動演奏トラックであり、元々の自動演奏情報(元シーケンスデータ)に含まれていたものである。224は波形データトラックであり、録音された原波形データが記録される。また、222は波形タイミングトラックであり、自動演奏トラック202,204と波形データトラック224とを同期させるための同期制御データが記録される。ここで、同期制御データとしては、録音の開始タイミングや後述する同期データ等のデータである。これら波形タイミングトラック222および波形データトラック224は、上記録音処理を行うに際して自動演奏情報に追加されたトラックである。
【0028】
ステップSP214までの処理内容から明らかなように、波形録音が開始された時は、既に自動演奏は開始されている。従って、図16(a),(b)に示すように、波形録音の開始タイミングは、自動演奏の演奏情報上におけるタイミング(例えば自動演奏が開始された後のタイミングクロック数)によって特定される。この特定された開始タイミングが波形タイミングトラック222に記録される。
【0029】
その後、波形録音処理と自動演奏処理が続行されるが、双方の処理は相互に同期した状態で実行される。具体的には、次のような方法が採られる。
(1)波形データのサンプリング周波数と自動演奏のテンポクロックとを同期させる。この場合、後述する同期データを記憶する必要はない。
(2)波形データのサンプリングを行ないながら、同期データを自動演奏データの所定のトラック(図16の例では波形タイミングトラック222)に記録する。
【0030】
上記(2)の方法においては、記録される同期データに応じて、さらに以下のようなバリエーションが考えられる。なお、自動演奏処理と波形録音処理との同期を確保する方法はここに挙げるものに限られないことは言うまでもない。
(2−1)所定数のテンポクロック毎に、その時点における波形データのサンプル番号を記録する。
(2−2)各拍タイミング(例えば図16(a)において「↑」印を付したタイミング)における波形データのサンプル番号を記録する。
(2−3)波形データの所定数のサンプル毎(例えば1000サンプル毎)のシーケンス位置を記録する。
【0031】
図20に戻り、次に処理がステップSP216に進むと、波形録音制御ウィンドウ150においてアクティブ状態である各要素の操作イベントが検出される。次に、処理がステップSP218に進むと、ステップSP216の検出結果に基づいて処理が分岐される。まず、なんら操作イベントが検出されなかった時は処理はステップSP216に戻り、操作イベントの検出が続行される。また、自動演奏ストップボタン154がマウスでクリックされると、処理はステップSP222に進み、自動演奏ファイルの再生処理が停止される。一方、波形録音ストップボタン158がマウスでクリックされると、処理はステップSP220に進み、波形データの録音処理が停止される。
【0032】
何れの場合においても、次に処理はステップSP224に進み、自動演奏および波形録音の両方が停止されているか否かが判定される。ここで、少なくとも一方の処理が続行中であれば「NO」と判定され、処理はステップSP216に戻り、操作イベントの検出が続行される。そして、自動演奏と波形録音の双方が停止されると、次に処理がステップSP224に進んだ際に「YES」と判定され、本ルーチンの処理は終了する。
【0033】
以上の処理により、録音された波形データ(原波形データ)は、同期制御データによって自動演奏情報のタイミングに対応付けられつつ記録されることが解る。但し、ここまでの処理内容においては、波形データトラック224には一連の原波形データがそのまま記録されているため、自動演奏のテンポの増減等には対応できない。そこで、原波形データを複数のオリジナルセクションに分割する等の処理が必要になるため、かかる処理の内容を以下詳述する。
【0034】
2.2.再生用波形データ生成処理
2.2.1.トリミング処理(SP2,SP4)
上記波形録音処理によって原波形データが取得された後、所定の操作が行われると、波形編集アプリケーションプログラムにおいて図4に示すプログラムが起動される。まず、原波形データには、その開始部分および終了部分に無音区間が存在する場合がある。そこで、処理がステップSP2に進むと、両無音区間が自動的にトリミング(削除)される。
【0035】
但し、原波形データに雑音が含まれていた場合等においては、必ずしも適切な位置でトリミングされない場合もある。そこで、処理がステップSP4に進むと、ユーザは、この自動的に決定されたデフォルトのトリミング位置を任意に修正することが可能である。
【0036】
2.2.2.パラメータ設定(SP6)
次に、処理がステップSP6に進むと、ユーザによって、制御ポイント検出のための各種パラメータが指定される。指定されるパラメータには、以下のようなものがある。
(1)波形タイプ:このパラメータは、例えば波形データの種別を指定するものであり、「パーカッション系」、「持続系」等に大別され、さらに様々な楽器の原波形データに適した複数のバリエーションに分類されている。この波形タイプに基づいて、閾値等、後述する他のパラメータのデフォルト値が決定される。
【0037】
ところで、この「波形タイプ」の選択は以下のように行われる。すなわち、表示器102に図19に示すようなパーカッション系選択ボタン80および持続系選択ボタン82が表示され、ユーザが何れかのボタンをマウスでクリックすると、対応する波形タイプが選択される。上述した「パーカッション系」は単にパーカッション系の波形データに用いて好適なだけではなく、他系統の断続的な波形データに適用しても望ましい。同図に示すように、パーカッション系選択ボタン80には断続的な波形が描画され、持続系選択ボタン82には持続的な波形が描画されているから、ユーザは望ましい波形タイプを一見して判断することができる。
【0038】
(2)分解能:このパラメータは、強拍および弱拍の制御ポイントを検出するために1小節あたりどの程度の分解能で波形データを検索するかを指定するパラメータである。例えば、「拍子」が「4/4」であるとき、「分解能」は「4分」、「4分+3」、「8分」、「8分+3」、「16分」、「16分+3」または「32分」の何れかを指定可能である(但し、「+3」は3連符への分割を示す)。ここで、「4分」は1小節を4分するタイミング(4分音符のタイミング)、「4分+3」は12分するタイミング、「8分」は8分するタイミング(8分音符のタイミング)、「8分+3」は24分するタイミング、「16分」は16分するタイミング、「16分+3」は48分するタイミング、「32分」は32分するタイミングにおいて、波形データが検索されることになる。なお、分解能を設定するにあたり、「拍子」を特定しておく必要があるが、これは自動演奏情報のパラメータとして元々含まれているため、該パラメータの値が使用される。
【0039】
2.2.3.不要帯域除去フィルタ処理(SP8)
トリミングされた波形データには様々な周波数成分が含まれているが、この中には制御ポイント検出のために障害になる成分(不要帯域)も含まれている。そこで、次に処理がステップSP8に進むと、これら不要帯域を除去するためにフィルタ処理が施される。このフィルタ処理は、バンドカット処理およびハイパス処理の2種類に大別されるが、不要帯域が分布している態様は楽曲や楽器に応じて異なるため、フィルタ処理の内容は上記「波形タイプ」に応じて決定すると好適である。すなわち、波形タイプに応じて、バンドカット処理およびハイパス処理の双方あるいは何れか一方のみが実行され、フィルタ処理のパラメータも波形タイプに応じて決定される。
【0040】
ここで、フィルタ処理におけるパラメータの設定例を述べておく。
まず、波形データの中、メロディ等の音程を持った成分は、制御ポイントの検出に際して障害になる可能性が高い。各種の楽曲を解析した結果、このような成分すなわちボーカルやベース等の持続部分の成分は「80Hz〜8kHz」の帯域に多く現れ、特に「100Hz〜300Hz」の帯域に多く現れる。そこで、バンドカット処理においては、「80Hz〜8kHz」の帯域を減衰させ、特に「100Hz〜300Hz」の帯域を強く減衰させるようなフィルタ処理が行われる。なお、ボーカルやベース等のアタック部(子音やアタックノイズ等)は、当該帯域以外にも広がっているため、フィルタ処理を行ったとしても、制御ポイントは検出可能である。
【0041】
また、バンド演奏等においては、シンバル等の高域音が規則正しく刻まれている場合が多い。かかる場合には、この規則正しい高域成分のみを抽出するハイパス処理を行うと好適である。なお、バンドカット処理およびハイパス処理の何れにおいても急峻なフィルタ特性は不要であるため、ハイパス処理においては1次のフィルタ、バンドカット処理においては2次のフィルタを用いれば実用上充分である。この不要帯域除去フィルタ処理の結果の一例として、図5(a)にトリミング後の波形データ、同図(b)にフィルタ処理の波形を示す。なお、この波形データの例においては、小節数は「2小節」、拍子は「4/4拍子」、分解能は「8分」である。
【0042】
2.2.4.デフォルトの制御ポイント決定(SP12)
次に、処理がステップSP12に進むと、録音時に再生されていた自動演奏情報の拍タイミングに基づいて、デフォルトの制御ポイントが自動的に決定される。拍タイミングは自動演奏情報の拍子によって決定されるため、4分音符あるいは8分音符等の間隔で発生する。なお、自動演奏の途中でテンポが変化した場合には、変化後のテンポに応じて拍タイミングが変化する。
【0043】
一方、波形データに対しては、音量エンベロープの立上がり開始位置、ピーク位置等が検出され、これらの検出結果と拍タイミングとの関係に基づいてデフォルトの制御ポイントが設定される。このように決定されたデフォルトの制御ポイントは、波形データとともにディスプレイ8に表示される。その表示例を図2(a)に示す。図において波形データはステレオ録音されたものであり、左(上側)および右(下側)の2系統示されている。制御ポイントは同図のウィンドウ上の縦破線によって示されており、両系統に対して共通である。以下、デフォルトの制御ポイントを決定する処理の詳細を図6を参照し説明する。
【0044】
(1)ダウンサンプル処理(SP102)
図6において処理がステップSP102に進むと、不要帯域が除去された波形データに対してダウンサンプル処理が施される。これは、制御ポイントを決定するために必要なサンプリング周波数は、鑑賞用のオーディオデータのサンプリング周波数と比較してはるかに低いため、その後の処理を高速化させるためにサンプリング周波数を低下させることが好適だからである。
(2)絶対値化処理(SP104)
次に、処理がステップSP104に進むと、ダウンサンプルされた波形データの絶対値が求められる。なお、図5(b)の波形に対応して得られた絶対値の例を図7(a)に示す。
【0045】
(3)エンベロープフォロア処理(SP106)
次に、処理がステップSP106に進むと、図7(a)の絶対値波形に対して、エンベロープフォロア処理が行われる。これは、絶対値波形のエンベロープ波形を求める処理であるが、絶対値波形の立ち上がりに対してエンベロープ波形を急峻に立ち上げ、絶対値波形の立ち下がりに対してエンベロープ波形を徐々に立ち下げる点に特徴がある。ここで、エンベロープフォロア処理のアルゴリズムを等価な回路ブロックによって表現した例を図8に示す。これは、回路としては入力の上昇時と下降時で異なる係数を使用するようなローパスフィルタである。
【0046】
図8において60は遅延回路であり、1サンプリング周期(ダウンサンプル後の周期、以下同)前のエンベロープレベルを記憶する。62は減算器であり、現サンプリング周期の絶対値波形レベルから1サンプリング周期前のエンベロープレベルを減算し、その結果を差分信号dとして出力する。66,68は乗算器であり、各々差分信号dが供給されると、これに対して係数a1,a2(但し、1>a1>a2>0)を乗算し出力する。
【0047】
64はスイッチであり、差分信号dが「0」以上である場合は乗算器66を選択し、また差分信号dが「0」未満である場合は乗算器68を選択し、選択された側の乗算器に当該差分信号dを供給する。70は加算器であり、選択された側の乗算器66,68の出力信号と、1サンプリング周期前のエンベロープレベルとの加算結果を現サンプリング周期におけるエンベロープレベルとして出力する。かかるエンベロープフォロア処理によって得られた波形を図7(b)に示す。この波形に対して細かい変動を取り除くため、ステップSP106においてはさらにローパスフィルタ処理が施される。このローパスフィルタ処理の結果を同図(c)に示す。
【0048】
(4)コンプレッサ処理(SP108)
図6において次に処理がステップSP108に進むと、コンプレッサ処理が実行される。すなわち、エンベロープフォロア処理結果に基づくエンベロープレベルの平均値が算出され、その平均値よりも高いレベルは低く、また平均値よりも低いレベルは高くなるようにエンベロープレベルが修正される。かかる処理の結果を図7(d)に示す。
【0049】
(5)エッジ検出フィルタ処理(SP110)
図6において次に処理がステップSP110に進むと、エッジ検出フィルタ処理が実行される。これは、エンベロープレベルに対する立ち上がりおよび立下がりを強調する処理である。ここで、エッジ検出フィルタ処理のアルゴリズムを等価な回路ブロック(コムフィルタ)によって表現した例を図9(a)に示す。
【0050】
図9(a)において72は遅延回路であり、コンプレッサ処理の施されたエンベロープレベルを入力信号とし、これをnサンプリング周期(nは2以上の自然数)遅延させて出力する。74は減算器であり、現サンプリング周期の入力信号から、nサンプリング周期前の入力信号を減算し、その結果をエッジ検出フィルタ処理結果として出力する。同図(b)に入力信号例、同図(c)にこれをnサンプリング周期遅延させ反転した信号例、同図(c)にフィルタ出力信号例(同図(b),(c)の波形の減算結果)を示す。また、かかる処理を図7(d)の波形に施した結果を図10(a)に示す。
【0051】
(6)エッジ開始位置/ピーク位置検出処理(SP112)
図6において次に処理がステップSP112に進むと、エッジ開始位置/ピーク位置検出処理が実行される。エッジ検出フィルタ処理結果を入力信号として、該入力信号の立ち上がりエッジとピーク位置とを検出する処理である。この処理の概要を図11を参照し説明する。同図(a)は、入力信号の一部を時間軸上で拡大した図を示している。この図において、入力信号は所定の閾値Thと比較され、入力信号が閾値Thを超えた時刻をエッジ開始位置(時刻t1)とする。
【0052】
同図(b)に示す出力信号レベルは時刻t1以前は「0」に設定され、時刻t1において「−M」(Mは所定値)に設定される。さらに、入力信号のピーク位置において、出力信号は1サンプリング周期だけ該ピーク値に設定され、しかる後に再び「0」に立ち下げられる。図10(a)の波形にかかる処理を施した結果を同図(b)に示す。
【0053】
同図(b)の信号において、レベルが「−M」に立下がるタイミングが「エッジ開始位置」であり、「−M」のレベルが継続する時間はエッジ開始位置からピーク位置までの時間(立上り時間Tt)に等しい。さらにピークレベルはエッジ検出フィルタ処理結果(同図(a))のピークレベルに等しい。なお、エッジ開始位置、立上り時間Ttおよびピークレベルを総称して「エッジ情報」と呼ぶ。
【0054】
(7)強拍抽出処理(SP114)
図6において次に処理がステップSP114に進むと、強拍抽出処理が実行される。
まず、上述したように原波形データは、自動演奏情報の自動演奏トラック202,204に同期して記録されているため、この自動演奏情報の拍タイミングに応じて、検出窓が決定される。この検出窓は、拍子に応じて分割される1小節内の各区間(以下、推定強拍区間という)の先頭を基準位置とし、これら推定強拍区間の1/8〜1/2の幅を有する。なお、1/8〜1/2の範囲のうち具体的にどの値を採用するかは「波形タイプ」のパラメータに応じて決定される。
【0055】
ここで、波形データの小節数を「2」、拍子を「4/4」ととし、窓幅を推定強拍区間の「1/6」とした場合の検出窓を、図10(b)の波形に重ねて同図(c)に示す。この図において網掛けの施されている部分が検出窓であり、各検出窓の「1/3」(推定強拍区間幅の1/18)の部分が基準位置よりも前に、「2/3」(推定強拍区間幅の2/18)の部分が基準位置よりも後に位置するように設定されている。
【0056】
次に、各検出窓にピーク位置が属するエッジ情報のうち、ピークレベルが所定の閾値Th1を超えるものが抽出される。但し、一つの検出窓において複数のエッジ情報が存在する場合には、最大のピークレベルを有するエッジ情報のみが抽出される。図10(c)の波形に対して、かかる抽出を行った結果を同図(d)に示す。同図(c)においては、最初の(左端の)検出窓には、閾値Th1を超える2つのエッジ情報のピーク位置が存在するが、同図(d)を参照すると、そのうちピークレベルの高いエッジ情報のみが抽出されている。また、同図(c)において左端から6番目の検出窓には一応エッジ情報が存在するが、ピークレベルが閾値Th1を超えていないため、同図(d)においては抽出されていない。
【0057】
(8)弱拍抽出処理(SP116)
図6において次に処理がステップSP116に進むと、弱拍抽出処理が実行される。
この処理においては、上述したパラメータ設定処理(SP6)において指定された「分解能」のパラメータに基づいて、各小節を分割する位置に検出窓の基準位置が設定される。但し、先のステップSP114において既に強拍が検出された検出窓に対応する基準位置は、本ステップにおいては除かれる。
【0058】
従って、上記ステップSP114において各検出窓で強拍が検出されていた場合には、例えば自動演奏情報の4分の拍タイミング間にある8分の拍タイミングを各基準位置とする新たな検出窓が設けられることになる。一方、先に強拍が抽出されなかった検出窓(図10(c)において左端から6番目の検出窓)については、本ステップにおいても、改めて弱拍抽出用の検出窓が同一の位置すなわち当該4分の拍タイミング位置に設定される。その結果、弱拍抽出用の検出窓は、図12(a)の網掛け部分に示すように設定される。
【0059】
この処理においても、各検出窓の「1/3」(推定強拍区間幅の1/18)の部分が基準位置よりも前に、「2/3」(推定強拍区間幅の2/18)の部分が基準位置よりも後に位置するように設定されている。次に、各検出窓にピーク位置が属するエッジ情報のうち、所定の閾値Th2を超えるものが抽出される。但し、一つの検出窓において複数のエッジ情報が存在する場合には、最大のピークレベルを有するエッジ情報のみが抽出される。
【0060】
ここで、閾値Th2は閾値Th1の「1/5」程度のレベルになるように設定され、閾値Thは閾値Th2よりもさらに小さい値に設定される。ここまでの処理によって抽出された強拍および弱拍の抽出結果を同図(b)に示す。同図(b)によれば、今回の抽出処理により、先の強拍抽出処理(SP114)においてピークレベルが足りなかったために抽出されなかったエッジ情報も抽出されている。上記ステップSP114,SP116によって抽出されたエッジ情報のうち、エッジ開始位置は図2(a)において説明した制御ポイントに他ならない。
【0061】
(9)制御ポイント強制設定処理(SP118)
次に、処理がステップSP118に進むと、必要な場合には、これまでにエッジ情報が検出されなかった検出窓の基準位置に制御ポイントが強制的に設定される。「必要な場合に」とは、具体的には波形タイプとして「持続系」が指定されていた場合である。このような設定を行う理由は、「持続系」の波形のエンベロープは規則的に減衰している(単純減衰である)訳ではないので、立上がりが検出されなかった位置に関しても強制的に制御ポイントを設定した方が音楽的に適切な時間軸制御を行えるからである。
【0062】
2.2.5.制御ポイント編集処理(SP14)
次に、処理がステップSP14に進むと、このデフォルトの制御ポイントがユーザによって編集される。具体的には、上記ウィンドウ上で、必要に応じて制御ポイントが追加、削除または移動される。
【0063】
2.2.6.挿入セクション1i〜12iの平坦化波形データの決定
上述したように、波形データの始点、終点および制御ポイントによって区切られた区間を、本明細書においては「オリジナルセクション」と呼ぶ。図2(a)のように制御ポイントが決定されたのであれば、同図(b)の上側の長方形列に示されるように、波形データは12個のオリジナルセクション1r〜12rに分割されることになる。
【0064】
次に、同図(b)の下側の長方形列に示されるように、各オリジナルセクションと同一の長さを有する12個のセクション(挿入セクション1i〜12i)が作成され、この挿入セクション1i〜12iに各オリジナルセクション1r〜12rに続くような波形データが記憶される。これにより、各オリジナルセクション1r〜12rと、対応する挿入セクション1i〜12iとを結合して、同図(c)に示すような結合セクション1t〜12tが得られる。そこで、以下、かかる処理の詳細を説明する。
【0065】
図4に戻り、処理がステップSP16に進むと、ユーザにより、挿入セクション1i〜12iに設定される波形データ(エンベロープ調整前)として、
(1)図13(a)に示すように、対応するオリジナルセクションnr(但し、n=1〜12)の次の波形データ(n+1)rをそのままコピーしたもの、あるいは、
(2)同図(b)に示すように対応するオリジナルセクションnrの波形データを時間軸上で反転した波形データ
のうち何れかが選択される。
ここで、デフォルトの状態では、波形タイプが「持続系」である場合は同図(a),パーカッション系である場合は同図(b)の波形データが選択される。その理由について説明しておく。
【0066】
<持続系の音に対して>
まず、持続系の音においては、オリジナルセクションnrと挿入セクションni=(n+1)rとは元々連続したセクションであるため、オリジナルセクションnrから挿入セクション(n+1)rへの滑らかな接続が保証されている。ここで、該挿入セクション(n+1)r以外のセクションを挿入セクションとして用いることも可能であるが、持続系の音ではアタックの無い部分(持続系の波形の途中)に制御ポイントが設定されることもある(ステップSP118を参照)ため、考慮が必要である。すなわち、この場合、オリジナルセクションnrと該挿入セクションとの位相が合っていなかった場合には、耳障りなノイズが発生するため、両者間で位相合わせを行う必要が生じ、処理が煩雑になる。一方、上述した例のように、オリジナルセクションnrの次のセクション(n+1)rを挿入セクションとして用いれば、挿入セクションの波形データは、より安定した波形データに基づいて作成することができる。
【0067】
また、持続系の音において、制御ポイントの直後に次の音のアタックがあった場合を想定してみる。この場合、一般的には、次の音のピッチは前の音のピッチとは異なっている。オリジナルセクションと挿入セクションのピッチが異なることは本来は望ましいことではないが、実験結果によれば、両者のピッチが異なっていたとしても、あまり目立たないことが判明した。これは、挿入セクションのエンベロープレベルが前のオリジナルセクションから継続してなめらかに減衰してゆくように制御されていることに起因すると考えられる。すなわち、新たに始まる音のアタック部で音色やピッチが変化すると目立つが、減衰している波形の途中で音色やピッチが変化した場合には、前のアタック部の印象が強いために比較的目立たないものと考えられる。
【0068】
<パーカッション系の音に対して>
次に、パーカッション系の音においては、元々ノイズ的な成分が多いため、オリジナルセクションnrから挿入セクションniへの接続部で目立ったノイズは発生しないことが多い。しかし、当該オリジナルセクションnrまたは次のオリジナルセクション(n+1)r等をそのまま挿入セクションniとして用いると、波形の先頭部分のアタックノイズが多少耳障りになる場合がある。そこで、オリジナルセクションnrの波形データを時間軸上で反転した波形データを挿入セクションniとして用いることにより、かかる不具合を解消することができる。さらに、オリジナルセクションnrと挿入セクションniの接続部分をクロスフェードすると、さらに両者を滑らかに接続することが可能になる。なお、反転した波形データを最後まで読み出すと、該反転波形データの終端部分にアタックノイズが再生され、多少耳障りになることがある。かかる場合は、反転波形データの途中のポイント(例えば先頭から2/3程度の長さのポイント)において、該反転波形データを折り返して(時間軸上でさらに反転させて)読み出すとよい。
【0069】
挿入セクションは以上説明したデフォルトのものに限定されるわけではなく、各オリジナルセクション毎にユーザは所望の挿入セクションの生成態様を指定することができるため、聴感上で最も好ましいものを選択するとよい。また、ステップSP16においては、挿入セクションの波形データが選択されると、その波形データの各部のレベルが、該波形データのエンベロープレベルで除算される。これにより、挿入セクションの波形データは、エンベロープが平坦な波形データに変換される。
【0070】
2.2.7.挿入セクション1i〜12iに対するエンベロープの付与
次に、処理がステップSP18に進むと、挿入セクション1i〜12iのエンベロープ波形が決定される。その決定方法を図14を参照し説明する。図においてあるオリジナルセクションnrのエンベロープレベルの最大値をL1とし、オリジナルセクションnrの終端のエンベロープレベルをL2とし、この最大値L1が現れてからオリジナルセクションnrの終端までの時間をTとする。この期間内においてエンベロープレベルの減衰率drは、
dr=(L1/L2)1/T
によって求めることができる。
【0071】
次に、オリジナルセクションnrに対応する挿入セクションniのエンベロープレベルの初期値を上記L2とし、減衰率drが維持されるように挿入セクションniのエンベロープが決定される。具体的には、挿入セクションniの開始時刻t=0としたとき、挿入セクションni内の各部のエンベロープレベルは、L2/drtによって求められる。これにより、図14に示すように、挿入セクションniのエンベロープ特性は、オリジナルセクションnrに対して自然につながるように設定される。
【0072】
但し、制御ポイントの決定時に単純決定モードが選択された場合等においては、オリジナルセクションnrの終端部においてエンベロープレベルが最大になることも考えられる。かかる場合には、図15に示すように、挿入セクションniのエンベロープレベルは、オリジナルセクションnrの終端時のレベルに制限される。具体的には、上記計算式により求めた減衰率drが1より小さくなる場合に、挿入セクションのエンベロープ値を求めるための減衰率drを強制的に1に設定し、あるいは、減衰率drに関して1より大きな下限値「dr_min」を決めておき、減衰率drが必ずそれより大きくなるように制御してもよい。
【0073】
以上のように、各挿入セクションのエンベロープが決定されると、各挿入セクション1i〜12iの平坦化波形データの各部に対して、該決定されたエンベロープが乗算される。これにより、各挿入セクションの波形データは、この決定されたエンベロープを有するようになる。
【0074】
このように、挿入セクション1i〜12iの波形データが決定されると、結合セクション1t〜12tの波形データが決定されたことに他ならない。これら結合セクション1t〜12tの波形データは、原波形データに代えて、自動演奏情報の波形データトラック224に書き込まれる。さらに、波形タイミングトラック222においては、各結合セクション1t〜12tの開始タイミング(タイミングクロック数)と、これら結合セクションの波形データの立上り時間Ttとが書き込まれる。なお、立上り時間Ttは必須ではないが、これを書き込んでおくことにより、一層好ましいタイミングで波形データを再生することが可能になる(後述する再生テンポ設定/変更処理参照)。
【0075】
2.3.再生テンポ設定/変更処理
ユーザは、演奏処理の前に、あるいは演奏処理の途中で適宜再生テンポを設定/変更することができる。ここで、設定されたテンポが録音時のテンポに等しければ、波形タイミングトラック222(図16参照)に記録されたクロック数をそのまま用いればよい。しかし、再生時のテンポが録音時のテンポとは異なる場合には、単に両者の比に応じて各区間の再生開始タイミングを制御すると、特に立ち上がりの遅い波形において「もたれ」が生じるという問題が生ずる。
【0076】
その内容を図3(a)を参照し説明する。同図(a)において再生開始時刻(0)から波形の立ち上がりが開始されるまでの時間がエッジ開始時間Tsであり、立ち上がりが開始された後、波形レベルがピークに達するまでの時間が立上り時間Ttである。
【0077】
同図(a)の実線は録音時のテンポで再生した波形データのエンベロープレベルを示している。人間の聴覚では、エンベロープレベルのピーク位置すなわち再生開始後「Ts+Tt」の時間が経過したタイミングで拍が生じるように感じられる。次に、同図(a)の一点鎖線は、録音時のテンポをn倍に伸張して波形データを再生した例を示す。なお、図示の例では「n=2」の場合を想定して描画している。この場合、エッジ開始時間は録音時のn倍「nTs」であるが、実際に人間の聴覚で拍を感じる時間は、録音時のn倍「n(Ts+Tt)」よりも短い「nTs+Tt」になる。
【0078】
この結果、波形を伸張して再生すると、好ましいタイミングよりも速いタイミングに拍が生じるように感じられることになる。逆に、録音時よりもテンポを圧縮した場合は、好ましいタイミングよりも遅いタイミングに拍が生じるように感じられることになる。
【0079】
そこで、本実施形態においては、再生テンポが設定または変更された際に、波形タイミングトラック222に記録されている各生成開始クロック数は、該クロック数に対応する時間(クロック数×クロック周期)が「n(Ts+Tt)−Tt」になるような(あるいは最も近くなるような)値に修正される。この結果、図3(b)に示すように、聴感上の拍すなわちピーク位置は、さらに立上り時間Ttだけ経過したタイミングすなわち「n(Ts+Tt)」となる。なお、テンポに応じて生成開始クロック数を変更することに代えて、立上り時間Ttに応じてクロック周期を増減するようにしてもよい。すなわち、テンポクロックが発生する毎に、次のテンポクロックまでの周期を適宜増減することにより、生成開始クロック数自体は一定に保ちつつ、テンポに応じたタイミング制御を行うことが可能になる。
【0080】
2.4.演奏処理
次に、上述した波形タイミングトラック222および波形データトラック224を追加して成る自動演奏情報(合成シーケンスデータ)に基づいて、自動演奏処理を行う動作を説明する。まず、自動演奏の開始が指示されると、指定されたテンポに基づいて4分音符の「1/64」の間隔でテンポクロックが生成される。そして、自動演奏時においては、テンポクロックが発生する毎に図17に示すプログラムが実行される。
【0081】
図17において処理がステップSP32に進むと、変数tcountが「1」だけインクリメントされる。なお、変数tcountは、自動演奏開始時に「0」に初期設定されており、自動演奏開始から現在に至るまでのテンポクロック数をカウントする変数になる。次に、処理がステップSP34に進むと、該変数tcountの値に基づいて波形データ以外のイベントタイミングに達したか否かが判定される。
【0082】
すなわち、自動演奏トラック202,204においては、ノートオン、ノートオフ等のイベントデータが発生順に記録されているが、これらのイベントデータには、当該イベントを発生させるべきテンポクロックに相当するタイミングデータが含まれている。従って、各トラックの先頭のイベントデータ内のタイミングデータを参照することにより、イベントタイミングに達したか否かが判断できる。
【0083】
ステップSP34において「YES」と判定されると、処理はステップSP36に進み、当該イベントデータに対応するイベント処理が実行される。例えば、イベントデータがノートオンイベントであれば、CPU130の指令に基づいて音源122において新たな発音チャンネルが割り当てられ、該発音チャンネルにおいて楽音信号が合成される。合成された楽音信号はミキサ116、DAコンバータ118およびサウンドシステム120を順次介して発音される。また、該イベントデータがノートオフイベントであった場合は、対応する発音チャンネルにおいて消音処理が行われることになる。
【0084】
一方、未だ次のイベントデータのイベントタイミングに達していなければ、ステップSP34において「NO」と判定され、処理はステップSP38に進む。ここでは、何れかの結合セクションの波形データの読出し開始タイミングに達したか否かが判定される。結合セクションの波形データについては、デフォルトの読出し開始タイミングが波形タイミングトラック222に記録されていることは上述した通りである。しかし、ここでいう読出し開始タイミングとは、立上り時間Ttに基づく補正後のタイミング、すなわち上述した「n(Ts+Tt)−Tt」に相当するタイミングである。
【0085】
ここで「YES」と判定されると、処理はステップSP40に進み、対応する波形データの読出しが開始される。ここで、この読出し速度は、後述するピッチシフト量の値に応じて制御される。ピッチシフト量が「0」である場合は、読出し速度が録音時の書込み速度と同じ速度とされ、ピッチシフト量が正の場合はそれより速い速度、ピッチシフト量が負の場合はそれより遅い速度とされる。よく知られているように、読み出された波形データのピッチは該読出し速度が速いほど高くなり、遅いほど低くなる。
【0086】
対応する波形データの読出しが開始されることにより、この時点の直前まで別の波形データの読出し処理が行われていたとしても、ステップSP40においては、該別の波形データと交代する形で新たな波形データの読出しが開始されることになる。一方、ステップSP38において「NO」と判定されると、ステップSP40はスキップされ、読出し中の波形データが変更されることなく、本ルーチンの処理は終了する。
【0087】
上記処理によれば、変数tcountが先頭の結合セクション1tの読出し開始タイミングに達すると、直ちに結合セクション1tの波形読出しが開始される。その後、変数tcountが次の結合セクション2tの読出し開始タイミングに達すると、結合セクション1tの波形データの読出しが中止され、結合セクション2tの波形データの読出しが開始される。結合セクション1tと結合セクション2tとを滑らかに接続するために、結合セクション1tの読出しを中止する部分の波形データと結合セクション2tの読出しを開始する部分の波形データをクロスフェード接続するようにしてもよい。以上の処理により、順次読み出される波形データは、再生回路114、ミキサ116、DAコンバータ118およびサウンドシステム120を順次介して発音される。
【0088】
以下同様に、変数tcountの増加に応じて結合セクション3t以降の読出しが順次開始されてゆく。次に、かかる処理により、実際に生成される楽音波形を図18を参照し説明する。同図(b)は、再生時および録音時のテンポ比を1.00に設定した場合に読み出されるセクションを示す。かかる場合は、各結合セクションの「1/2」すなわちオリジナルセクションの部分が全て読出された時に、次の結合セクションの読出しが開始される。これにより、再生される楽音波形は、原波形データと一致する。
【0089】
また、同図(a)は、再生時および録音時のテンポ比を0.67に設定した場合に読み出されるセクションを示す。かかる場合には、オリジナルセクションの長さを基準にすると約「67%」再生された時点で次のセクションの読出しが開始される。なお、実際に次のセクションの読出しが開始されるタイミングは、該次のセクションの立上り時間Ttに応じて異なることは上述した通りである。これにより、各オリジナルセクションの残りの部分(約33%)および挿入セクションは再生されないことになる。
【0090】
また、同図(c)は、再生時および録音時のテンポ比を1.65に設定した場合に読み出されるセクションを示す。かかる場合には、オリジナルセクションの長さを基準にすると約「165%」再生された時点で次のセクションの読出しが開始される。これにより、各オリジナルセクションと、各挿入セクションの前半約65%の部分が再生されることになる。
【0091】
そして、再生時のテンポや再生に用いられる波形データは、ユーザが操作子104を介してリアルタイムに変更することができる。同様に、各セクションを読出す速度すなわちピッチシフト量も操作子104を介してリアルタイムに変更することが可能である。また、予め定めたシーケンスに基づいて、再生される波形データ、テンポ、あるいはピッチシフト量を自動的に変遷させるようにしてもよい。これにより、ユーザの操作あるいは予め定められたシーケンスに基づいて、多彩な態様で波形データが再生され発音される。
【0092】
3.実施形態の効果
以上のように、本実施形態によれば、原波形データを波形データトラック224に記録する際に、自動演奏情報に対する同期データが波形タイミングトラック222に記録されるから、録音された原波形データおよびこれに基づいて生成された再生用波形データを、元々の自動演奏情報に自動的に同期させることができる。
【0093】
さらに、本実施形態においては、オリジナルのエッジ開始時間Tsおよび立上り時間Ttと、再生時のテンポ(テンポの伸縮率n)との関係に応じて、生成開始クロック数を補正することにより、「n(Ts+Tt)−Tt」のタイミングで各オリジナルセクションの再生を開始させることができるから、テンポの伸縮率nと聴感上の拍タイミングとの整合性を確保することができる。
【0094】
4.変形例
本発明は上述した実施形態に限定されるものではなく、例えば以下のように種々の変形が可能である。
(1)上記実施形態はパーソナルコンピュータ上で動作するアプリケーションプログラムによって波形編集システムを実現したが、同様の機能を各種の電子楽器、携帯電話器、アミューズメント機器、その他楽音を発生する装置に使用してもよい。また、上記実施形態に用いられるソフトウエアをCD−ROM、フロッピーディスク等の記録媒体に格納して頒布し、あるいは伝送路を通じて頒布することもできる。
【0095】
(2)上記実施形態においては、波形データ全体のエンベロープを分析したが、基準位置近傍の部分、例えば各検出窓に対応する部分のみ、エンベロープを分析するようにしてもよい。
【0096】
(3)上記実施形態においては、各オリジナルセクションに対応して予め挿入セクションの波形データを生成したが、各挿入セクションの波形データを波形データ再生中に、ないし波形再生の指示を受けて波形データ再生を開始する直前に生成するようにしてもよい。これにより、波形データを格納しておくための記憶容量を削減することができる。
【0097】
(4)原波形データに対する分割位置(制御ポイント)を決定する処理は上記実施形態のものに限定されないことは言うまでもない。例えば、上記実施形態においては、自動演奏情報の拍タイミングを検出窓の基準位置として制御ポイントを決定したが、拍タイミングに代えて、自動演奏情報の各ノートオンタイミング(図16(a)における各音符のタイミング)またはノートオフタイミングを検出窓の基準位置としてもよい。
【0098】
(5)また、上記実施形態においては、一旦原波形データを波形データトラック224に記録した後に制御ポイントを決定する処理を行ったが、CPU130の処理能力が充分に高い場合には、原波形データを録音しながら同時に制御ポイントを決定するようにしてもよい。
【0099】
(6)上記実施形態においては、制御ポイントを決定する際の分解能を原波形データの録音後に指定したが、分解能の指定は原波形データの録音前にしてもよく、録音後にしてもよい。
【0100】
(7)上記実施形態のステップSP8の不要帯域除去処理においては、ハイパス処理およびバンドカット処理によるフィルタ処理を行ったが、これらに代えて、あるいはこれらに加えて他の処理、例えば低域を減衰させる処理や高域をブーストする処理等を行ってもよい。
【0101】
(8)上記実施形態のステップSP110においては、エッジ部分を検出するためにコムフィルタによるフィルタ処理を行ったが、これに代えて、エンベロープの傾きに対応した値を生成するような如何なるフィルタ処理でエッジ検出してもよい。例えば、単純にエンベロープレベルを微分するフィルタ処理でもよいし、さらに、この微分結果に対してローパスフィルタ処理を行ってもよい。
【0102】
(9)上記実施形態のステップSP116においては、弱拍検出のための検出窓の基準位置は、各推定強拍区間を2分する位置、すなわち強拍検出のための基準位置間を2分する位置に設けられた。しかし、弱拍検出のための検出窓の位置はこれに限定されるものではない。すなわち、ステップSP114において実際に抽出された強拍のエッジ開始位置同士あるいはピーク位置同士の間隔を2分する位置を求め、この求めた位置を弱拍検出のための検出窓の基準位置にしてもよい。
【0103】
(10)上記実施形態のステップSP16においては、エンベロープ調整前の挿入セクションの波形データとして、対応するオリジナルセクションの波形データまたはこれを反転したものがそのまま用いられた。しかし、特に安定した音程成分を有するメロディパート等の波形データの場合には、オリジナルセクションの後半部分のピッチを検出し、このピッチ単位でオリジナルセクションの一部(部分波形)を繰り返えすことによって挿入セクションを生成してもよい。これにより、アタック部分特有の不安定さが挿入セクションに現れることを防止することができる。
【0104】
なお、部分波形のサイズは一定(ループ波形)であってもよく、ランダムな長さに設定してもよい。また、オリジナルセクションの後半部分で安定してピッチが検出された場合にはオリジナルセクションの一部を繰り返し、ピッチが検出されなかった場合にはオリジナルセクション全体(またはこれを反転したもの)をコピーして、挿入セクションのエンベロープ調整前の波形データに設定してもよい。
【0105】
(11)また、上記実施形態においては、各挿入セクションは、その直前のオリジナルセクションの波形データ(またはこれを反転したもの)に基づいて作成されたが、次のオリジナルセクションの波形データに基づいて各挿入セクションを生成してもよい。例えば、挿入セクション1iは、オリジナルセクション2rの波形データに基づいて生成してもよい。
【0106】
(12)また、上記実施形態においては、波形データの種別を「パーカッション系」と「持続系」の2種類に分けていたが、波形データを3種類以上の種別に別けてもよい。
【0107】
(13)また、上記実施形態においては、拍子の設定に応じて強拍抽出用の検出窓を設定し、分解能の設定に応じて弱拍抽出用の検出窓を設定したが、これらを必ずしも拍子や分解能に応じて設定する必要はない。例えば、強拍抽出用の検出窓と弱拍抽出用の検出窓とをそれぞれ独立して指定するようにしてもよい。あるいは、設定された拍子に応じて、強拍抽出用の検出窓と弱拍抽出用の検出窓とをそれぞれ設定するようにしてもよい。さらに、前述したような録音時のメトロノームのタイミングに基づいて両検出窓を設定する方法もある。
【0108】
【発明の効果】
以上説明したように本発明によれば、自動演奏情報と波形データとのタイミングの関係を示す同期データを記録しつつ、波形データを記録するため、波形データを自動演奏情報に容易に同期させることができる。
さらに、該波形データのエンベロープレベルを求め、同期データと、エンベロープレベルとに基づいて、波形データの区切り位置を求める構成によれば、有効な立ち上がり位置を区切り位置として効率的に抽出ことができる。さらに、推定拍位置に対応して立ち上がり位置を抽出することにより、誤検出を防止し、安定して立ち上がり位置を検出することができる。換言すれば、本来区切ることが期待されている位置の付近で、かつ、音楽的により適切な位置を区切り位置とすることができ、区切り位置が誤検出されたり、音楽的に適切でない位置で分割されるような事態を未然に防止することができる。
【0109】
さらに、自動演奏情報の拍タイミング、ノートオンタイミングまたはノートオフタイミングに基づいて、推定拍位置を決定する構成によれば、自動演奏情報に元々含まれている情報を効率的に利用しつつ区切り位置を検出することができる。
さらに、上記拍タイミング、ノートオンタイミングまたはノートオフタイミングに基づく一つの所定の範囲に属する複数の立ち上がり位置のうち、一つの立ち上がり位置を選択して波形データの区切り位置として抽出する構成によれば、不要な立ち上がり位置を効率的に除去することが可能になる。
【図面の簡単な説明】
【図1】 本発明の一実施形態の波形編集システムのブロック図である。
【図2】 上記実施形態において挿入セクションおよび結合セクションを生成する処理の動作説明図である。
【図3】 従来例および上記実施形態における再生処理の動作説明図である。
【図4】 上記実施形態における再生用波形データ生成処理のフローチャートである。
【図5】 上記実施形態における不要帯域除去処理(SP8)の前後の波形図である。
【図6】 デフォルトの制御ポイント決定処理のフローチャートである。
【図7】 絶対値化処理(SP104)の出力波形図である。
【図8】 エンベロープフォロア処理(SP106)の等価回路図である。
【図9】 エッジ検出フィルタ処理の等価回路図およびその各部の波形図である。
【図10】 エッジ検出フィルタ処理、エッジ開始位置/ピーク位置検出処理、および強拍抽出処理(SP110〜SP114)の出力波形図である。
【図11】 エッジ開始位置/ピーク位置検出処理(SP112)の動作説明図である。
【図12】 弱拍抽出処理(SP116)の動作説明図および出力波形図である。
【図13】 挿入セクションniにおける波形データの設定処理の動作説明図である。
【図14】 挿入セクションniにおけるエンベロープレベルの設定処理の動作説明図である。
【図15】 挿入セクションniにおけるエンベロープレベルの設定処理の動作説明図である。
【図16】 自動演奏情報と原波形データとのタイミング関係を示す図である。
【図17】 演奏処理ルーチンのフローチャートである。
【図18】 再生される波形データの圧縮/伸張処理の説明図である。
【図19】 パーカッション系選択ボタン80および持続系選択ボタン82を示す図である。
【図20】 自動演奏&波形録音処理ルーチンのフローチャートである。
【図21】 波形録音制御ウィンドウ150の表示例を示す図である。
【符号の説明】
1i〜12i……挿入セクション、1r〜12r……オリジナルセクション、1t〜12t……結合セクション、60……遅延回路、62……減算器、64……スイッチ、66,68……乗算器、70……加算器、72……遅延回路、74……減算器、80……パーカッション系選択ボタン、82……持続系選択ボタン、102……表示器、104……操作子、106……マイクロフォン、108……ADコンバータ、110……録音回路、112……ハードディスク、114……再生回路、116……ミキサ、118……DAコンバータ、120……サウンドシステム、122……音源、124……MIDIインターフェース、126……インタフェース、128……タイマ、130……CPU、132……ROM、134……RAM、150……波形録音制御ウィンドウ、151……自動演奏ファイルテキストボックス、152……自動演奏スタートボタン、154……自動演奏ストップボタン、156……波形録音スタートボタン、158……波形録音ストップボタン、159……キャンセルボタン、202,204……自動演奏トラック、222……波形タイミングトラック、224……波形データトラック。
Claims (14)
- 自動演奏情報の再生を開始する過程と、
波形データの記録を開始する過程と、
前記自動演奏情報と前記波形データとのタイミングの関係を示す同期制御データを記録しつつ、前記波形データを記録する過程と、
前記波形データのエンベロープレベルを求める過程と、
前記自動演奏情報と、前記同期制御データと、前記エンベロープレベルとに基づいて、前記波形データの区切り位置を求める区切り位置検出過程と
を有することを特徴とする波形データ解析方法。 - 前記区切り位置検出過程は、
前記自動演奏情報と前記同期制御データとに基づいて、前記波形データの推定区切り位置を決定する推定過程と、
該推定区切り位置に対応した所定の範囲内において、前記波形データの一ないし複数の立ち上がり位置を検出する検出過程と、
検出された前記一ないし複数の立ち上がり位置の何れかを区切り位置として抽出する抽出過程と
を有することを特徴とする請求項1記載の波形データ解析方法。 - 前記所定の範囲は、第1および第2の所定範囲から構成され、
前記抽出過程は、前記第1の所定範囲に属する立ち上がり位置についてはこれら立ち上がり位置に各々対応するレベル値が所定の第1の閾値を超えることを条件として、該立ち上がり位置を前記区切り位置として抽出するとともに、前記第2の所定範囲に属する立ち上がり位置についてはこれら立ち上がり位置に各々対応するレベル値が前記第1の閾値よりも低い第2の閾値を超えることを条件として、該立ち上がり位置を前記区切り位置として抽出する過程であること
を特徴とする請求項2記載の波形データ解析方法。 - 前記推定過程は、前記自動演奏情報の拍タイミング、ノートオンタイミングまたはノートオフタイミングに基づいて、前記波形データの推定区切り位置を決定することを特徴とする請求項2記載の波形データ解析方法。
- 前記抽出過程は、検出された立ち上がり位置の強度に基づいて、何れかの立ち上がり位置を前記区切り位置として抽出することを特徴とする請求項2記載の波形データ解析方法。
- 自動演奏情報の再生を開始する過程と、
波形データの記録を開始する過程と、
前記自動演奏情報と前記波形データとのタイミングの関係を示す同期制御データを記録しつつ、前記波形データを記録する過程と、
前記自動演奏情報の拍タイミングと前記同期制御データとに基づいて推定拍位置を決定する過程と、
前記推定拍位置に基づいて前記波形データの区切り位置を求める区切り位置決定過程と
を有することを特徴とする波形データ解析方法。 - 自動演奏情報の再生を開始する過程と、
波形データの記録を開始する過程と、
前記自動演奏情報と前記波形データとのタイミングの関係を示す同期制御データを記録しつつ、前記波形データを記録する過程と、
前記自動演奏情報のノートオンタイミングと前記同期制御データとに基づいて推定立ち上がり位置を決定する過程と、
該推定立ち上がり位置に基づいて前記波形データの区切り位置を求める区切り位置決定過程と
を有することを特徴とする波形データ解析方法。 - 自動演奏情報の再生を開始する過程と、
波形データの記録を開始する過程と、
前記自動演奏情報と前記波形データとのタイミングの関係を示す同期制御データを記録しつつ、前記波形データを記録する過程と、
前記自動演奏情報と前記同期制御データとに基づいて推定区切り位置を決定する過程と、
前記波形データ中の前記推定区切り位置近傍の部分を分析する分析過程と、
該分析結果に基づいて前記波形データ全体の区切り位置を求める区切り位置決定過程と
を有することを特徴とする波形データ解析方法。 - 前記分析過程は、前記波形データのエンベロープを分析することにより立ち上がり位置を検出する過程であることを特徴とする請求項8記載の波形データ解析方法。
- 前記区切り位置決定過程は、前記分析結果に含まれる複数の立ち上がり位置に基づいて、各推定区切り位置毎に一つの区切り位置を決定することを特徴とする請求項8記載の波形データ解析方法。
- 前記自動演奏情報を再生する自動演奏のテンポクロックと前記波形データのサンプリング周期は同期しており、
前記同期制御データは、前記波形データの録音開始タイミングを示すタイミングデータを含む
ことを特徴とする請求項1ないし10の何れかに記載の波形データ解析方法。 - 前記同期制御データは、前記波形データの録音開始タイミングを示すタイミングデータと、前記自動演奏のテンポクロックと前記波形データのサンプリング周期を同期させるための同期データとを含む
ことを特徴とする請求項1ないし10の何れかに記載の波形データ解析方法。 - 請求項1ないし12の何れかに記載の波形データ解析方法を実行することを特徴とする波形データ解析装置。
- 請求項1ないし12の何れかに記載の波形データ解析方法をコンピュータに実行させるプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記録媒体。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001008813A JP3731476B2 (ja) | 2001-01-17 | 2001-01-17 | 波形データ解析方法、波形データ解析装置および記録媒体 |
US10/051,973 US7094965B2 (en) | 2001-01-17 | 2002-01-16 | Waveform data analysis method and apparatus suitable for waveform expansion/compression control |
US11/016,294 US7102068B2 (en) | 2001-01-17 | 2004-12-17 | Waveform data analysis method and apparatus suitable for waveform expansion/compression control |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001008813A JP3731476B2 (ja) | 2001-01-17 | 2001-01-17 | 波形データ解析方法、波形データ解析装置および記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002215163A JP2002215163A (ja) | 2002-07-31 |
JP3731476B2 true JP3731476B2 (ja) | 2006-01-05 |
Family
ID=18876377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001008813A Expired - Fee Related JP3731476B2 (ja) | 2001-01-17 | 2001-01-17 | 波形データ解析方法、波形データ解析装置および記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3731476B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4714230B2 (ja) * | 2008-02-27 | 2011-06-29 | 株式会社コナミデジタルエンタテインメント | 音声処理装置、音声処理方法、ならびに、プログラム |
CN110032670B (zh) * | 2019-04-17 | 2022-11-29 | 腾讯科技(深圳)有限公司 | 时序数据的异常检测方法、装置、设备及存储介质 |
CN111220878B (zh) * | 2019-12-10 | 2022-03-18 | 上海思源弘瑞自动化有限公司 | 一种同步录波方法和装置 |
-
2001
- 2001-01-17 JP JP2001008813A patent/JP3731476B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002215163A (ja) | 2002-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8153882B2 (en) | Time compression/expansion of selected audio segments in an audio file | |
JP2002529773A5 (ja) | ||
KR20080023199A (ko) | 오디오 재생 장치 및 방법과 오디오 재생 장치를 제어하는컴퓨터 프로그램이 저장된 컴퓨터-판독가능 저장 매체 | |
US7094965B2 (en) | Waveform data analysis method and apparatus suitable for waveform expansion/compression control | |
JP4293712B2 (ja) | オーディオ波形再生装置 | |
JP4959861B1 (ja) | 信号処理方法、信号処理装置、再生装置およびプログラム | |
KR100402364B1 (ko) | 악음발생장치, 악음발생방법 및 기억매체 | |
JP3654117B2 (ja) | 時間軸方向における楽音波形信号の伸縮方法 | |
JP2009063714A (ja) | オーディオ再生装置およびオーディオ早送り再生方法 | |
JP3731476B2 (ja) | 波形データ解析方法、波形データ解析装置および記録媒体 | |
JP4089713B2 (ja) | 波形データ再生装置および記録媒体 | |
JP3202017B2 (ja) | デジタルサンプリングシステムのための減衰楽器音のデータ圧縮 | |
JP3731470B2 (ja) | 波形データ生成方法、波形データ生成装置および記録媒体 | |
JP4016992B2 (ja) | 波形データ解析方法、波形データ解析装置およびコンピュータ読み取り可能な記録媒体 | |
Dutilleux et al. | Time‐segment Processing | |
JP3731477B2 (ja) | 波形データ解析方法、波形データ解析装置および記録媒体 | |
JP3731478B2 (ja) | 波形データ解析方法、波形データ解析装置および記録媒体 | |
JP3428401B2 (ja) | 波形データ処理方法 | |
JP4537490B2 (ja) | オーディオ再生装置およびオーディオ早送り再生方法 | |
JP2006113487A (ja) | 楽音データ生成方法及び装置 | |
JP4089712B2 (ja) | 波形データ生成方法、楽音合成方法、波形データ生成装置およびコンピュータ読み取り可能な記録媒体 | |
JP3659121B2 (ja) | 楽音信号の分析・合成方法、楽音信号合成方法、楽音信号合成装置および記録媒体 | |
JP4037973B2 (ja) | 波形再生装置 | |
JP3744247B2 (ja) | 波形圧縮方法及び波形生成方法 | |
TWI328217B (en) | Game machine having a function for discriminating music tempo |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050118 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050315 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050517 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050712 |
|
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: 20050920 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051003 |
|
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: 20091021 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101021 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101021 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111021 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111021 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121021 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121021 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131021 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |