JP3731470B2 - Waveform data generation method, waveform data generation apparatus, and recording medium - Google Patents

Waveform data generation method, waveform data generation apparatus, and recording medium Download PDF

Info

Publication number
JP3731470B2
JP3731470B2 JP2000373983A JP2000373983A JP3731470B2 JP 3731470 B2 JP3731470 B2 JP 3731470B2 JP 2000373983 A JP2000373983 A JP 2000373983A JP 2000373983 A JP2000373983 A JP 2000373983A JP 3731470 B2 JP3731470 B2 JP 3731470B2
Authority
JP
Japan
Prior art keywords
waveform data
original
section
sections
additional
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
Application number
JP2000373983A
Other languages
Japanese (ja)
Other versions
JP2002175080A (en
Inventor
徹 北山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2000373983A priority Critical patent/JP3731470B2/en
Publication of JP2002175080A publication Critical patent/JP2002175080A/en
Application granted granted Critical
Publication of JP3731470B2 publication Critical patent/JP3731470B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、パーソナルコンピュータ、電子楽器、アミューズメント機器等における自動演奏、特に自動伴奏に用いて好適な、波形データ生成方法、波形データ生成装置および記録媒体に関する。
【0002】
【従来の技術】
従来より、ある程度の長さの自然楽器音等を録音し、これを設定されたテンポに応じた速度で自動的に繰返し再生する技術が知られている。この技術はリズム音等の自動伴奏等に使用されているが、設定されるテンポに応じて原波形を伸張あるいは縮小させる必要がある。その処理内容を図2(a),(b)を流用し説明する。
【0003】
同図(a)は、自然楽器音等をステレオ録音した原波形データである。この原波形データを、エンベロープの立上り部分およびピッチの切り換わり部分で区切ると、例えば同図(b)に示すように、原波形データを複数の区画(オリジナルセクションという)1r〜12rに区切ることができる。この原波形データを用いて自動リズム伴奏等を行う際、原波形データの録音時のテンポと同一のテンポで再生するのであれば、原波形データを特に加工することなく繰返し再生するとよい。
【0004】
また、再生時のテンポが録音時よりも速くなる場合は、各オリジナルセクション1r〜12rの再生部分を短くする必要がある。このためには、各区画の終端部分を一定の割合でカットすればよい。例えば、録音時のテンポが「100」、再生時のテンポが「125」であったとすると、各オリジナルセクション1r〜12rの終端部分を20%づつカットし、残りの波形データを再生するとよい。
【0005】
一方、再生時のテンポが録音時のテンポよりも遅くなる場合には問題が生じる。すなわち、再生時のテンポに合せて各区画の再生開始タイミングを単に遅らせたのでは、各区画の隙間に無音区間が生じ、耳障りになる。そこで、この各区画の隙間は、直前の区画の波形データを必要な長さだけ継ぎ足して再生することが一般的である。その際、継ぎ足される部分の振幅の初期値は、その直前の部分の振幅と一致するように設定される。
【0006】
【発明が解決しようとする課題】
しかし、上記技術によれば、継ぎ足される部分の波形は、振幅の初期値が制御されるとしても元の各区間の波形データがそのまま用いられるため、二度打ち感やエコー感が生じるという問題があった。
この発明は上述した事情に鑑みてなされたものであり、違和感なくテンポの調節を行うことができる波形データ生成方法、波形データ生成装置および記録媒体を提供することを目的としている。
【0007】
【課題を解決するための手段】
上記課題を解決するため本発明にあっては、下記構成を具備することを特徴とする。なお、括弧内は例示である。
請求項1記載の波形データ生成方法にあっては、原波形データを複数の原区間(オリジナルセクション1r〜12r)の波形データに分割する過程と、再生時のテンポが決定される前に、前記各原区間(1r〜12r)の各々の波形データを再生した後に再生するための複数の追加区間(1i〜12i)の波形データを前記原区間(1r〜12r)の波形データに対応させて生成し記憶手段に記憶する追加区間生成過程であって、前記追加区間(1i〜12i)の波形データのエンベロープレベルを、対応する前記原区間(1r〜12r)の波形データの終端におけるエンベロープレベルを初期値とし時間の経過とともに減衰するように設定する追加区間生成過程と、前記各原区間(1r〜12r)の波形データの各々に対応して、当該原区間(1r〜12r)の波形データの再生を開始すべきテンポクロック数を示す再生開始クロック数を前記記憶手段に記憶する過程とを有することを特徴とする。
さらに、請求項記載の構成にあっては、請求項記載の波形データ生成方法において、前記原区間の全部または前記原区間の終端を含む一部における減衰率を検出する過程をさらに有し、この検出された減衰率に基づいて前記追加区間の波形データのエンベロープレベルを減衰させることを特徴とする。
また、請求項記載の波形データ生成方法にあっては、原波形データを複数の原区間(オリジナルセクション1r〜12r)の波形データに分割する過程と、再生時のテンポが決定される前に、前記各原区間(1r〜12r)の各々の波形データを再生した後に再生するための複数の追加区間(1i〜12i)の波形データを前記原区間(1r〜12r)の波形データに対応させて生成するとともに対応する原区間の波形データの後部に各々結合して記憶手段に記憶する追加区間生成過程であって、前記追加区間(1i〜12i)の波形データのエンベロープレベルを、対応する前記原区間(1r〜12r)の波形データの終端におけるエンベロープレベルを初期値とし時間の経過とともに減衰するように設定する追加区間生成過程と、を有することを特徴とする。
また、請求項記載の波形データ生成装置にあっては、請求項1ないしの何れかに記載の方法を実行することを特徴とする。
また、請求項記載のコンピュータ読み取り可能な記録媒体にあっては、請求項1ないしの何れかに記載の方法をコンピュータに実行させるプログラムを記憶したことを特徴とする。
【0008】
【発明の実施の形態】
1.実施形態のハードウエア構成
次に、本発明の一実施形態の波形編集システムのハードウエア構成を図1を参照し説明する。なお、本波形編集システムは、汎用パーソナルコンピュータ上で動作するアプリケーションプログラムおよびドライバ等によって構成されている。
図において2は通信インタフェースであり、インターネット等の外部ネットワークを介して波形データ等のやりとりを行う。4は入力装置であり、キーボード、マウス等から構成されている。6は演奏操作子であり、鍵盤および打楽器を模擬するパッド操作子等によって構成されている。
【0009】
8はディスプレイであり、ユーザに対して各種情報を表示する。10はCPUであり、後述するプログラムに基づいて、バス16を介して他の各部を制御する。12はROMであり、イニシャルプログラムローダ等が格納されている。14はRAMであり、CPU10によって読み書きされる。18はドライブ装置であり、CD−ROM、MO等の記憶媒体20の読み書きを行う。
【0010】
22は波形取込インタフェースであり、外部から入力されたアナログ波形をサンプリングし、デジタル波形データに変換した後、バス16を介して出力する。24はハードディスクであり、汎用パーソナルコンピュータのオペレーティングシステム、後述する波形編集のアプリケーションプログラム、波形データ等が格納される。26は波形出力インタフェースであり、バス16を介して供給された波形データをアナログ波形に変換し、サウンドシステム28を介して発音させる。
【0011】
2.実施形態の動作
次に、本実施形態の動作を説明する。
まず、パーソナルコンピュータの電源が投入されると、ROM12に格納されたイニシャルプログラムローダが実行され、オペレーティングシステムが立上る。このオペレーティングシステムにおいて所定の操作を行うと、本実施形態の波形編集アプリケーションプログラムが起動される。
【0012】
2.1.原波形データの取得
波形編集アプリケーションプログラムにおいてユーザが所定の操作を行うと、波形取込インタフェース22を介して、処理対象の原波形データが取得される。なお、原波形データは、通信インタフェース2あるいは記憶媒体20を介して取得してもよい。
【0013】
2.2.再生用波形データ生成処理
2.2.1.トリミング処理
原波形データが取得された後、所定の操作が行われると、波形編集アプリケーションプログラムにおいて図6に示すプログラムが起動される。まず、原波形データには、その開始部分および終了部分に無音区間が存在する場合がある。そこで、処理がステップSP2に進むと、両無音区間が自動的にトリミング(削除)される。
【0014】
但し、原波形データに雑音が含まれていた場合等においては、必ずしも適切な位置でトリミングされない場合もある。そこで、処理がステップSP4に進むと、ユーザは、この自動的に決定されたデフォルトのトリミング位置を任意に修正することが可能である。設定するトリミング位置は、両トリミング位置間で波形データをループ再生した時にテンポ感が崩れないような位置に設定すると好適である。
【0015】
2.2.2.デフォルトの拍数およびテンポ数等の決定
トリミング処理が終了すると、処理はステップSP6に進み、該波形データの音量レベルのピークが検出され、各ピークの出現位置に基づいて、拍子(3拍子、4拍子、6拍子等)、小節数、テンポ数等が自動的に決定される。次に処理がステップSP8に進むと、必要に応じて、ステップSP6の決定結果がユーザの任意の値に修正される。
【0016】
2.2.3.制御ポイントの決定
「制御ポイント」とは、本実施形態において波形データの編集処理を行う基準となる位置である。
ステップSP10においては、デフォルトの制御ポイントを設定する手法として、単純決定モードまたは解析モードの何れかの動作モードがユーザによって指定される。次に、処理がステップSP12に進むと、指定された動作モードに応じて、デフォルトの制御ポイントが自動的に決定される。ここで、「単純決定モード」においては、拍単位に制御ポイントが設定される。例えば、1小節で拍子が3拍子であれば、波形データを3等分する位置に制御ポイントが設定され、また2小節であれば6等分する位置に設定される。
【0017】
一方、「解析モード」においては、波形データの解析結果に基づいて制御ポイントが決定される。具体的には、音量エンベロープの立上がり開始位置、立下がり開始位置、ピッチの変化位置等が検出され、各検出位置に制御ポイントが設定される。以上のように決定されたデフォルトの制御ポイントは、波形データとともにディスプレイ8に表示される。その表示例を図2(a)に示す。
【0018】
図において波形データはステレオ録音されたものであり、左(上側)および右(下側)の2系統示されている。制御ポイントは同図のウィンドウ上の縦破線によって示されており、両系統に対して共通である。次に、処理がステップSP14に進むと、このデフォルトの制御ポイントがユーザによって編集される。具体的には、上記ウィンドウ上で、必要に応じて制御ポイントが追加、削除または移動される。
【0019】
2.2.4.挿入セクション1i〜12iの平坦化波形データの決定
波形データの始点、終点および制御ポイントによって区切られた区間を、本明細書においては「オリジナルセクション」と呼ぶ。図2(a)のように制御ポイントが決定されたのであれば、同図(b)の上側の長方形列に示されるように、波形データは12個のオリジナルセクション1r〜12rに分割されることになる。
【0020】
次に、同図(b)の下側の長方形列に示されるように、各オリジナルセクションと同一の長さを有する12個のセクション(挿入セクション1i〜12i)が作成され、この挿入セクション1i〜12iに各オリジナルセクション1r〜12rに続くような波形データが記憶される。これにより、各オリジナルセクション1r〜12rと、対応する挿入セクション1i〜12iとを結合して、同図(c)に示すような結合セクション1t〜12tが得られる。そこで、以下、かかる処理の詳細を説明する。
【0021】
図6に戻り、処理がステップSP16に進むと、ユーザにより、挿入セクション1i〜12iに設定される波形データ(エンベロープ調整前)として、
(1)図3(a)に示すように、対応するオリジナルセクションnr(但し、n=1〜12)の次の波形データ(n+1)rをそのままコピーしたもの、あるいは、
(2)同図(b)に示すように対応するオリジナルセクションnrの波形データを時間軸上で反転した波形データ
のうち何れかが選択される。
ここで、デフォルトの状態では、持続系の音に対しては同図(a),パーカッション系の音に対しては同図(b)の波形データが選択される。その理由について説明しておく。
【0022】
<持続系の音に対して>
まず、持続系の音においては、オリジナルセクションnrと挿入セクションni=(n+1)rとは元々連続したセクションであるため、オリジナルセクションnrから挿入セクション(n+1)rへの滑らかな接続が保証されている。ここで、該挿入セクション(n+1)r以外のセクションを挿入セクションとして用いることも可能であるが、持続系の音ではアタックの無い部分(持続系の波形の途中)に制御ポイントが設定されることもあるため、考慮が必要である。すなわち、この場合、オリジナルセクションnrと該挿入セクションとの位相が合っていなかった場合には、耳障りなノイズが発生するため、両者間で位相合わせを行う必要が生じ、処理が煩雑になる。一方、上述した例のように、オリジナルセクションnrの次のセクション(n+1)rを挿入セクションとして用いれば、挿入セクションの波形データは、より安定した波形データに基づいて作成することができる。
【0023】
また、持続系の音において、制御ポイントの直後に次の音のアタックがあった場合を想定してみる。この場合、一般的には、次の音のピッチは前の音のピッチとは異なっている。オリジナルセクションと挿入セクションのピッチが異なることは本来は望ましいことではないが、実験結果によれば、両者のピッチが異なっていたとしても、あまり目立たないことが判明した。これは、挿入セクションのエンベロープレベルが前のオリジナルセクションから継続してなめらかに減衰してゆくように制御されていることに起因すると考えられる。すなわち、新たに始まる音のアタック部で音色やピッチが変化すると目立つが、減衰している波形の途中で音色やピッチが変化した場合には、前のアタック部の印象が強いために比較的目立たないものと考えられる。
【0024】
<パーカッション系の音に対して>
次に、パーカッション系の音においては、元々ノイズ的な成分が多いため、オリジナルセクションnrから挿入セクションniへの接続部で目立ったノイズは発生しないことが多い。しかし、当該オリジナルセクションnrまたは次のオリジナルセクション(n+1)r等をそのまま挿入セクションniとして用いると、波形の先頭部分のアタックノイズが多少耳障りになる場合がある。そこで、オリジナルセクションnrの波形データを時間軸上で反転した波形データを挿入セクションniとして用いることにより、かかる不具合を解消することができる。さらに、オリジナルセクションnrと挿入セクションniの接続部分をクロスフェードすると、さらに両者を滑らかに接続することが可能になる。なお、反転した波形データを最後まで読み出すと、該反転波形データの終端部分にアタックノイズが再生され、多少耳障りになることがある。かかる場合は、反転波形データの途中のポイント(例えば先頭から2/3程度の長さのポイント)において、該反転波形データを折り返して(時間軸上でさらに反転させて)読み出すとよい。
【0025】
挿入セクションは以上説明したデフォルトのものに限定されるわけではなく、各オリジナルセクション毎にユーザは所望の挿入セクションを指定することができるため、聴感上で最も好ましいものを選択するとよい。また、ステップSP16においては、挿入セクションの波形データが選択されると、その波形データの各部のレベルが、該波形データのエンベロープレベルで除算される。これにより、挿入セクションの波形データは、エンベロープが平坦な波形データに変換される。
【0026】
2.2.5.挿入セクション1i〜12iに対するエンベロープの付与
次に、処理がステップSP18に進むと、挿入セクション1i〜12iのエンベロープ波形が決定される。その決定方法を図4を参照し説明する。図においてあるオリジナルセクションnrのエンベロープレベルの最大値をL1とし、オリジナルセクションnrの終端のエンベロープレベルをL2とし、この最大値L1が現れてからオリジナルセクションnrの終端までの時間をTとする。この期間内においてエンベロープレベルの減衰率drは、
dr=(L1/L2)1/T
によって求めることができる。
【0027】
次に、オリジナルセクションnrに対応する挿入セクションniのエンベロープレベルの初期値を上記L2とし、減衰率drが維持されるように挿入セクションniのエンベロープが決定される。具体的には、挿入セクションniの開始時刻t=0としたとき、挿入セクションni内の各部のエンベロープレベルは、L2/drtによって求められる。これにより、図4に示すように、挿入セクションniのエンベロープ特性は、オリジナルセクションnrに対して自然につながるように設定される。
【0028】
但し、制御ポイントの決定時に単純決定モードが選択された場合等においては、オリジナルセクションnrの終端部においてエンベロープレベルが最大になることも考えられる。かかる場合には、図5に示すように、挿入セクションniのエンベロープレベルは、オリジナルセクションnrの終端時のレベルに制限される。具体的には、上記計算式により求めた減衰率drが1より小さくなる場合に、挿入セクションのエンベロープ値を求めるための減衰率drを強制的に1に設定し、あるいは、減衰率drに関して1より大きな下限値「dr_min」を決めておき、減衰率drが必ずそれより大きくなるように制御してもよい。
【0029】
以上のように、各挿入セクションのエンベロープが決定されると、各挿入セクション1i〜12iの平坦化波形データの各部に対して、該決定されたエンベロープが乗算される。これにより、各挿入セクションの波形データは、この決定されたエンベロープを有するようになる。
【0030】
次に、処理がステップSP20に進むと、自動演奏時において上記結合セクション1t〜12tの波形データを読出すためのパラメータが決定される。まず、自動演奏時においては、4分音符の「1/64」の間隔でテンポクロックが生成され、このテンポクロックに同期して自動演奏処理が実行される。そこで、ステップSP6,SP8において決定された拍子と小節数とに応じて、波形データ再生時の繰返し周期に対応する、最大クロック数maxcountが決定される。例えば、拍子が「3拍子」であって小節数が「2」であれば、最大クロック数maxcountは、3×2×64=384になる。
【0031】
次に、波形データの先頭、および先頭から各制御ポイントまでの時間に相当するクロック数(生成開始クロック数)と、これらクロック数において読み出されるべき波形データとが、図7に示すようなテーブルに格納される。これにより、本ルーチンの処理が終了する。
【0032】
2.3.演奏処理
次に、上記結合セクション1t〜12tの波形データを用いて自動演奏を行う処理を、図8を参照し説明する。上述したように自動演奏時においては、4分音符の「1/64」の間隔でテンポクロックが生成され、該テンポクロックが生成される毎に図8に示すプログラムが実行される。
【0033】
図8において処理がステップSP34に進むと、変数tcountは最大クロック数maxcountを超えたか否かが判定される。なお、変数tcountは、自動演奏の開始時に「0」に初期化されている。ここで「YES」と判定されると、処理はステップSP36に進み、変数tcountが「0」に設定される。一方、ステップSP34において「NO」と判定されると、ステップSP36はスキップされる。
【0034】
次に、処理がステップSP38に進むと、図7のテーブルが参照され、波形データの読出しを開始するタイミングに達したか否か、すなわち変数tcountがいずれかの生成開始クロック数に一致するか否かが判定される。ここで「YES」と判定されると、処理はステップSP40に進み、対応する波形データの読出しが開始される。
【0035】
すなわち、この時点の直前まで別の波形データの読出し処理が行われていたとしても、ステップSP40においては、該別の波形データと交代する形で新たな波形データの読出しが開始されることになる。一方、ステップSP38において「NO」と判定されると、ステップSP40はスキップされ、読出し中の波形データが変更されることなく、処理はステップSP42に進む。そして、ステップSP42においては、変数tcountが「1」だけインクリメントされ、本ルーチンの処理が終了する。
【0036】
上記処理によれば、最初に変数tcountが「0」に初期設定された後に処理がステップSP38に進むと、直ちに結合セクション1tの波形読出しが開始される。その後、変数tcountが「28」に達した後に処理がステップSP38に進むと、結合セクション1tの波形データの読出しが中止され、結合セクション2tの波形データの読出しが開始される。結合セクション1tと結合セクション2tとを滑らかに接続するために、結合セクション1tの読出しを中止する部分の波形データと結合セクション2tの読出しを開始する部分の波形データをクロスフェード接続するようにしてもよい。
【0037】
以下同様に、変数tcountの増加に応じて結合セクション3t〜12tの読出しが順次開始されてゆく。そして、変数tcountが「maxcount+1」になると、ステップSP34,SP36において変数tcountが「0」に戻される。そして、以降は同様の動作が繰り返されることになる。
【0038】
次に、かかる処理により、実際に生成される楽音波形を図9を参照し説明する。同図(b)は、再生時および録音時のテンポ比を1.00に設定した場合に読み出されるセクションを示す。かかる場合は、各結合セクションの「1/2」すなわちオリジナルセクションの部分が全て読出された時に、次の結合セクションの読出しが開始される。これにより、再生される楽音波形は、原波形データと一致する。
【0039】
また、同図(a)は、再生時および録音時のテンポ比を0.67に設定した場合に読み出されるセクションを示す。かかる場合には、オリジナルセクションの長さを基準にすると「67%」再生された時点で次のセクションの読出しが開始される。これにより、各オリジナルセクションの後半33%および挿入セクションは再生されないことになる。
【0040】
また、同図(c)は、再生時および録音時のテンポ比を1.65に設定した場合に読み出されるセクションを示す。かかる場合には、オリジナルセクションの長さを基準にすると「165%」再生された時点で次のセクションの読出しが開始される。これにより、各オリジナルセクションと、各挿入セクションの前半65%の部分が再生されることになる。
【0041】
そして、再生時のテンポや再生に用いられる波形データは、ユーザが入力装置4を介してリアルタイムに変更することができる。同様に、各セクションを読出す速度すなわちピッチシフト量も入力装置4を介してリアルタイムに変更することが可能である。また、予め定めたシーケンスに基づいて、再生される波形データ、テンポ、あるいはピッチシフト量を自動的に変遷させるようにしてもよい。これにより、ユーザの操作あるいは予め定められたシーケンスに基づいて、多彩な態様で波形データが再生され発音される。
【0042】
3.実施形態の効果
以上のように、本実施形態によれば、波形データの各挿入セクションのエンベロープレベルの初期値は、対応するオリジナルセクションの終端時のエンベロープレベルに等しくなるように設定され、さらに挿入セクションの減衰率はオリジナルセクションの減衰率と等しくなるように設定される。
【0043】
これにより、オリジナルセクションと挿入セクションとが全く違和感なく接続され、特に再生時および録音時のテンポ比が1.00を超える値に設定された時、従来得られなかった高品質な再生音を得ることができる。
【0044】
4.変形例
本発明は上述した実施形態に限定されるものではなく、例えば以下のように種々の変形が可能である。
(1)上記各実施形態はパーソナルコンピュータ上で動作するアプリケーションプログラムによって波形編集システムを実現したが、同様の機能を各種の電子楽器、携帯電話器、アミューズメント機器、その他楽音を発生する装置に使用してもよい。また、上記実施形態に用いられるソフトウエアをCD−ROM、フロッピーディスク等の記録媒体に格納して頒布し、あるいは伝送路を通じて頒布することもできる。
【0045】
(2)上記実施形態においては、各オリジナルセクションに対応して予め挿入セクションの波形データを生成したが、各挿入セクションの波形データを波形データ再生中に、ないし波形再生の指示を受けて波形データ再生を開始する直前に生成するようにしてもよい。これにより、波形データを格納しておくための記憶容量を削減することができる。
【0046】
(3)上記実施形態のステップSP16においては、エンベロープ調整前の挿入セクションの波形データとして、対応するオリジナルセクションの波形データまたはこれを反転したものがそのまま用いられた。しかし、オリジナルセクションの後半部分のピッチを検出し、このピッチ単位でオリジナルセクションの一部(部分波形)を繰返えすことによって挿入セクションを生成してもよい。これにより、アタック部分特有の不安定さが挿入セクションに現れることを防止することができる。
【0047】
なお、部分波形のサイズは一定であってもよく、ランダムな長さに設定してもよい。また、オリジナルセクションの後半部分で安定してピッチが検出された場合にはオリジナルセクションの一部を繰り返し、ピッチが検出されなかった場合にはオリジナルセクション全体(またはこれを反転したもの)をコピーして、挿入セクションのエンベロープ調整前の波形データに設定してもよい。
【0048】
(4)また、上記実施形態においては、各挿入セクションは、その直前のオリジナルセクションの波形データ(またはこれを反転したもの)に基づいて作成されたが、次のオリジナルセクションの波形データに基づいて各挿入セクションを生成してもよい。例えば、挿入セクション1iは、オリジナルセクション2rの波形データに基づいて生成してもよい。
【0049】
(5)また、上記実施形態において、原波形データを複数の周波数帯域に分割し、各周波数帯域毎に圧縮・伸張処理を行ってもよい。その構成を図10を参照し説明する。図において50は帯域分割フィルタであり、FFT回路あるいはPhase Vocoder等によって構成され、原波形データを複数の周波数帯域に分割する。
【0050】
52はエンベロープ/ビート検出部であり、各周波数帯域についてエンベロープおよびビートを検出し、原波形データの各周波数帯域を複数のオリジナルセクションに分割する。54は時間圧縮/伸張処理回路であり、各周波数帯域毎のオリジナルセクションに対して挿入セクションの波形データを生成し、テンポクロックに同期して波形データを再生する。再生される波形データの圧縮/伸張の態様は、図9に示したものと同様である。56は加算器であり、各帯域毎の再生波形を加算し、その結果を楽音波形として出力する。
【0051】
(6)上記実施形態においては、オリジナルセクションに基づいて、リニアスケールで減衰率drを求めたが、この減衰率drはログスケールで求めてもよい。具体的には、ログスケールにおいて減衰率drは
dr=(L1−L2)/T
となり、挿入セクション内の各部のエンベロープは、挿入セクションの開始時刻t=0として、
L2−dr・t
によって求めることができる。また、減衰率drは、リニアスケールあるいはログスケール以外の種々の方法で求めてもよい。
【0052】
(7)上記実施形態においては、エンベロープが平坦な平坦化波形データを一旦求め、この平坦化波形データに対してエンベロープレベルを乗算することによって挿入セクションの波形データを求めた(ステップSP18,SP20)。しかし、オリジナルセクションの波形データに対して、「新たに求めた挿入セクションのエンベロープ/オリジナルセクションのエンベロープ」を乗算することにより、挿入セクションの最終的な波形データを直接的に求めてもよい。
【0053】
(8)上記実施形態においては、オリジナルセクションのエンベロープレベルの最大値L1と、終端エンベロープレベルL2と、この最大値L1が現れてからオリジナルセクションの終端までの時間Tとに基づいて減衰率drを求めた。しかし、最大値L1が生ずる位置とオリジナルセクションの終端との間の所定位置におけるエンベロープレベルL1’と、該所定位置から終端までの時間をT’と、終端エンベロープレベルL2とに基づいて、
dr=(L1’/L2)1/T'
によって減衰率drを求めてもよい。特にオリジナルセクションの終端付近の減衰率がそれ以前と比較して変動している場合には、挿入セクションに対して一層適切な減衰率drを付与することができる。
【0054】
【発明の効果】
以上説明したように、追加区間の波形データのエンベロープレベルを、対応する原区間の終端におけるエンベロープレベルを初期値として時間の経過とともに減衰する構成によれば、原区間と追加区間とを滑らかに接続することができ、様々なテンポ設定に対して違和感の無い楽音波形を合成することができる。また、各原区間に対応する追加区間を再生時のテンポが決定される前に予め生成する態様によれば、演奏時における処理負荷を軽減することができる。
【図面の簡単な説明】
【図1】 本発明の一実施形態の波形編集システムのブロック図である。
【図2】 上記実施形態において挿入セクションおよび結合セクションを生成する処理の動作説明図である。
【図3】 挿入セクションniにおける波形データの設定処理の動作説明図である。
【図4】 挿入セクションniにおけるエンベロープレベルの設定処理の動作説明図である。
【図5】 挿入セクションniにおけるエンベロープレベルの設定処理の動作説明図である。
【図6】 上記実施形態における再生用波形データ生成処理のフローチャートである。
【図7】 生成開始クロック数と波形データとの対応テーブルの内容を示す図である。
【図8】 演奏処理ルーチンのフローチャートである。
【図9】 再生される波形データの圧縮/伸張処理の説明図である。
【図10】 上記実施形態の変形例の要部のブロック図である。
【符号の説明】
1i〜12i…挿入セクション、1t〜12t…結合セクション、2…通信インタフェース、4…入力装置、6…演奏操作子、8…ディスプレイ、10…CPU、12…ROM、14…RAM、16…バス、18…ドライブ装置、20…記憶媒体、22…波形取込インタフェース、28…サウンドシステム、50…帯域分割フィルタ、52…エンベロープ/ビート検出部、54…時間圧縮/伸張処理回路、56…加算器。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a waveform data generation method, a waveform data generation device, and a recording medium suitable for use in automatic performances, particularly automatic accompaniment, in personal computers, electronic musical instruments, amusement devices, and the like.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, a technique for recording a natural instrument sound or the like having a certain length and automatically and repeatedly reproducing it at a speed corresponding to a set tempo is known. This technique is used for automatic accompaniment of rhythm sounds and the like, but it is necessary to expand or contract the original waveform according to a set tempo. The processing contents will be described with reference to FIGS. 2 (a) and 2 (b).
[0003]
FIG. 5A shows original waveform data in which natural musical instrument sounds and the like are recorded in stereo. If the original waveform data is divided at the rising edge of the envelope and the switching portion of the pitch, the original waveform data may be divided into a plurality of sections (original sections) 1r to 12r as shown in FIG. it can. When performing automatic rhythm accompaniment or the like using the original waveform data, if the original waveform data is reproduced at the same tempo as when the original waveform data was recorded, the original waveform data may be reproduced repeatedly without any particular processing.
[0004]
If the tempo during playback is faster than during recording, it is necessary to shorten the playback portion of each original section 1r-12r. For this purpose, the end portion of each section may be cut at a certain rate. For example, if the tempo at the time of recording is “100” and the tempo at the time of reproduction is “125”, the end portions of the original sections 1r to 12r may be cut by 20% and the remaining waveform data may be reproduced.
[0005]
On the other hand, a problem arises when the playback tempo is slower than the recording tempo. That is, if the playback start timing of each section is simply delayed in accordance with the tempo at the time of playback, a silent section is generated in the gap between the sections, which is annoying. Therefore, it is general that the gap between the sections is reproduced by adding the waveform data of the immediately preceding section by a necessary length. At that time, the initial value of the amplitude of the part to be added is set to coincide with the amplitude of the part immediately before.
[0006]
[Problems to be solved by the invention]
However, according to the above technique, the waveform of the part to be added uses the waveform data of each original section as it is even if the initial value of the amplitude is controlled. there were.
The present invention has been made in view of the above-described circumstances, and an object thereof is to provide a waveform data generation method, a waveform data generation device, and a recording medium that can adjust the tempo without a sense of incongruity.
[0007]
[Means for Solving the Problems]
  In order to solve the above problems, the present invention is characterized by having the following configuration. The parentheses are examples.
  In the waveform data generation method according to claim 1, the process of dividing the original waveform data into waveform data of a plurality of original sections (original sections 1r to 12r), and before the tempo at the time of reproduction is determined, Generate waveform data of a plurality of additional sections (1i to 12i) to be reproduced after reproducing each waveform data of each original section (1r to 12r) in correspondence with the waveform data of the original section (1r to 12r). In the additional section generation process stored in the storage means, the envelope level of the waveform data of the additional section (1i to 12i) is initialized to the envelope level at the end of the waveform data of the corresponding original section (1r to 12r). In accordance with each of the additional section generation process that is set as a value and attenuates with the passage of time, and the waveform data of each of the original sections (1r to 12r), And having a step of storing in the memory means the number of reproduction start clock indicating the number of tempo clocks should begin playing the waveform data (1r~12r).
  And claims2In the described configuration, the claim1The waveform data generation method according to claim 1, further comprising a step of detecting an attenuation rate in all of the original interval or a part including the end of the original interval, and the waveform data of the additional interval based on the detected attenuation rate The envelope level is attenuated.
  Claims3In the described waveform data generation method, the process of dividing the original waveform data into waveform data of a plurality of original sections (original sections 1r to 12r), and before each tempo at the time of reproduction is determined, The waveform data of a plurality of additional sections (1i to 12i) to be reproduced after reproducing each waveform data of (1r to 12r) is generated in correspondence with the waveform data of the original section (1r to 12r). In the additional section generation process that is coupled to the rear part of the waveform data of the original section to be stored and stored in the storage means, the envelope level of the waveform data of the additional section (1i to 12i) is set to the corresponding original section (1r to 12r) having an envelope level at the end of the waveform data as an initial value, and an additional section generation process for setting so as to attenuate with the passage of time. To.
  Claims4In the waveform data generation apparatus described above, the first to the second aspects are provided.3The method according to any one of the above is executed.
  Claims5The computer-readable recording medium described in claim 1 to claim 1.3A program for causing a computer to execute the method described in any one of the above is stored.
[0008]
DETAILED DESCRIPTION OF THE INVENTION
1. Hardware configuration of the embodiment
Next, the hardware configuration of the waveform editing system according to the embodiment of the present invention will be described with reference to FIG. The waveform editing system includes an application program and a driver that operate on a general-purpose personal computer.
In the figure, reference numeral 2 denotes a communication interface, which exchanges waveform data and the like via an external network such as the Internet. Reference numeral 4 denotes an input device, which includes a keyboard and a mouse. Reference numeral 6 denotes a performance operator, which includes a keyboard and a pad operator that simulates a percussion instrument.
[0009]
Reference numeral 8 denotes a display that displays various information to the user. Reference numeral 10 denotes a CPU which controls other units via the bus 16 based on a program described later. A ROM 12 stores an initial program loader and the like. Reference numeral 14 denotes a RAM which is read and written by the CPU 10. Reference numeral 18 denotes a drive device that reads from and writes to a storage medium 20 such as a CD-ROM or MO.
[0010]
A waveform capture interface 22 samples an analog waveform input from the outside, converts it into digital waveform data, and outputs the digital waveform data via the bus 16. A hard disk 24 stores an operating system of a general-purpose personal computer, a waveform editing application program (to be described later), waveform data, and the like. A waveform output interface 26 converts the waveform data supplied via the bus 16 into an analog waveform and generates a sound via the sound system 28.
[0011]
2. Operation of the embodiment
Next, the operation of this embodiment will be described.
First, when the personal computer is turned on, the initial program loader stored in the ROM 12 is executed, and the operating system is started up. When a predetermined operation is performed in this operating system, the waveform editing application program of this embodiment is started.
[0012]
2.1. Acquisition of original waveform data
When the user performs a predetermined operation in the waveform editing application program, the original waveform data to be processed is acquired via the waveform capture interface 22. The original waveform data may be acquired via the communication interface 2 or the storage medium 20.
[0013]
2.2. Waveform data generation processing for playback
2.2.1. Trimming process
When a predetermined operation is performed after the original waveform data is acquired, the program shown in FIG. 6 is started in the waveform editing application program. First, in the original waveform data, there may be a silent section at the start and end. Therefore, when the process proceeds to step SP2, both silent sections are automatically trimmed (deleted).
[0014]
However, when noise is included in the original waveform data, trimming may not always be performed at an appropriate position. Therefore, when the process proceeds to step SP4, the user can arbitrarily correct the automatically determined default trimming position. The trimming position to be set is preferably set to a position where the sense of tempo is not lost when the waveform data is loop-reproduced between both trimming positions.
[0015]
2.2.2. Determining default number of beats and tempo
When the trimming process ends, the process proceeds to step SP6, where the peak of the volume level of the waveform data is detected, and based on the appearance position of each peak, the time signature (3 time signature, 4 time signature, 6 time signature, etc.), the number of measures, The number of tempos and the like are automatically determined. Next, when the process proceeds to step SP8, the determination result in step SP6 is corrected to an arbitrary value of the user as necessary.
[0016]
2.2.3. Control point determination
The “control point” is a reference position for performing waveform data editing processing in the present embodiment.
In step SP10, as a method for setting a default control point, either the simple determination mode or the analysis mode is designated by the user. Next, when the process proceeds to step SP12, a default control point is automatically determined according to the designated operation mode. Here, in the “simple determination mode”, control points are set in beat units. For example, if the time signature is 3 beats in 1 bar, the control point is set at a position where the waveform data is divided into 3 equal parts, and if it is 2 bars, the control point is set at a position where it is divided into 6 equal parts.
[0017]
On the other hand, in the “analysis mode”, the control point is determined based on the analysis result of the waveform data. Specifically, the rising start position, falling start position, pitch change position, and the like of the volume envelope are detected, and control points are set at the respective detection positions. The default control points determined as described above are displayed on the display 8 together with the waveform data. An example of the display is shown in FIG.
[0018]
In the figure, the waveform data is recorded in stereo, and two systems, left (upper) and right (lower), are shown. The control point is indicated by a vertical broken line on the window in the figure, and is common to both systems. Next, when the process proceeds to step SP14, the default control point is edited by the user. Specifically, control points are added, deleted, or moved as necessary on the window.
[0019]
2.2.4. Determination of flattened waveform data for insertion sections 1i-12i
The section delimited by the start point, end point, and control point of the waveform data is referred to as “original section” in this specification. If the control point is determined as shown in FIG. 2 (a), the waveform data is divided into 12 original sections 1r-12r as shown in the upper rectangular row of FIG. 2 (b). become.
[0020]
Next, as shown in the lower rectangular column in FIG. 5B, 12 sections (insertion sections 1i to 12i) having the same length as each original section are created. The waveform data following the original sections 1r to 12r is stored in 12i. As a result, the original sections 1r to 12r and the corresponding insertion sections 1i to 12i are joined to obtain joined sections 1t to 12t as shown in FIG. Therefore, details of such processing will be described below.
[0021]
Returning to FIG. 6, when the process proceeds to step SP <b> 16, the waveform data (before the envelope adjustment) set in the insertion sections 1 i to 12 i by the user is as follows.
(1) As shown in FIG. 3 (a), the next waveform data (n + 1) r of the corresponding original section nr (where n = 1 to 12) is directly copied, or
(2) Waveform data obtained by inverting the waveform data of the corresponding original section nr on the time axis as shown in FIG.
Is selected.
Here, in the default state, the waveform data shown in FIG. 5A is selected for a continuous sound and the waveform data shown in FIG. 5B is selected for a percussion sound. The reason will be explained.
[0022]
<For continuous sound>
First, in a continuous sound, since the original section nr and the insertion section ni = (n + 1) r are originally continuous sections, a smooth connection from the original section nr to the insertion section (n + 1) r is guaranteed. Yes. Here, it is possible to use a section other than the insertion section (n + 1) r as the insertion section, but the control point is set in a portion where there is no attack (in the middle of the continuous waveform) in the continuous sound. Therefore, it is necessary to consider. That is, in this case, if the phase of the original section nr and the insertion section are not matched, annoying noise is generated, so that it is necessary to perform phase matching between them, and the processing becomes complicated. On the other hand, if the section (n + 1) r next to the original section nr is used as the insertion section as in the example described above, the waveform data of the insertion section can be created based on more stable waveform data.
[0023]
In addition, in the case of a continuous sound, let us assume a case where there is an attack of the next sound immediately after the control point. In this case, generally, the pitch of the next sound is different from the pitch of the previous sound. Although it is not originally desirable that the pitch of the original section and that of the insertion section be different, the experimental results show that even if the pitch of the two is different, it is not very noticeable. This is considered to be due to the fact that the envelope level of the inserted section is controlled so as to continue to attenuate smoothly from the previous original section. In other words, it stands out when the timbre or pitch changes in the attack part of the newly started sound, but when the timbre or pitch changes in the middle of the decaying waveform, it is relatively conspicuous because the impression of the previous attack part is strong. It seems that there is no
[0024]
<For percussion sounds>
Next, since percussion-type sounds originally have many noise components, noticeable noise often does not occur at the connection from the original section nr to the insertion section ni. However, if the original section nr or the next original section (n + 1) r or the like is used as it is as the insertion section ni, the attack noise at the beginning of the waveform may be somewhat disturbing. Therefore, by using the waveform data obtained by inverting the waveform data of the original section nr on the time axis as the insertion section ni, such a problem can be solved. Furthermore, if the connection portion between the original section nr and the insertion section ni is cross-fade, it becomes possible to connect the two more smoothly. When the inverted waveform data is read to the end, attack noise is reproduced at the end portion of the inverted waveform data, which may be a little annoying. In such a case, the inverted waveform data may be read back (inverted further on the time axis) at a point in the middle of the inverted waveform data (for example, a point having a length of about 2/3 from the beginning).
[0025]
The insertion section is not limited to the default one described above, and since the user can specify a desired insertion section for each original section, it is preferable to select the most preferable one in terms of audibility. In step SP16, when the waveform data of the insertion section is selected, the level of each part of the waveform data is divided by the envelope level of the waveform data. Thereby, the waveform data of the insertion section is converted into waveform data having a flat envelope.
[0026]
2.2.5. Envelope for insert sections 1i-12i
Next, when the process proceeds to step SP18, the envelope waveforms of the insertion sections 1i to 12i are determined. The determination method will be described with reference to FIG. In the figure, the maximum value of the envelope level of an original section nr is L1, the envelope level at the end of the original section nr is L2, and the time from when this maximum value L1 appears until the end of the original section nr is T. Within this period, the attenuation rate dr of the envelope level is
dr = (L1 / L2)1 / T
Can be obtained.
[0027]
Next, the initial value of the envelope level of the insertion section ni corresponding to the original section nr is set to L2, and the envelope of the insertion section ni is determined so that the attenuation rate dr is maintained. Specifically, when the start time t = 0 of the insertion section ni, the envelope level of each part in the insertion section ni is L2 / dr.tSought by. Thereby, as shown in FIG. 4, the envelope characteristic of the insertion section ni is set so as to be naturally connected to the original section nr.
[0028]
However, when the simple determination mode is selected at the time of determining the control point, the envelope level may be maximized at the end of the original section nr. In such a case, as shown in FIG. 5, the envelope level of the insertion section ni is limited to the level at the end of the original section nr. Specifically, when the attenuation rate dr determined by the above formula is smaller than 1, the attenuation rate dr for determining the envelope value of the insertion section is forcibly set to 1, or 1 regarding the attenuation rate dr. A larger lower limit value “dr_min” may be determined, and the attenuation rate dr may be controlled to be always larger than that.
[0029]
As described above, when the envelope of each insertion section is determined, each portion of the flattened waveform data of each insertion section 1i to 12i is multiplied by the determined envelope. Thereby, the waveform data of each insertion section has this determined envelope.
[0030]
Next, when the process proceeds to step SP20, parameters for reading the waveform data of the combined sections 1t to 12t are determined during automatic performance. First, during automatic performance, a tempo clock is generated at intervals of “1/64” of quarter notes, and automatic performance processing is executed in synchronization with this tempo clock. Therefore, the maximum clock number maxcount corresponding to the repetition period at the time of waveform data reproduction is determined according to the time signature and the number of measures determined in steps SP6 and SP8. For example, if the time signature is “3 time signatures” and the number of bars is “2”, the maximum clock number maxcount is 3 × 2 × 64 = 384.
[0031]
Next, the number of clocks corresponding to the head of the waveform data and the time from the head to each control point (number of generation start clocks) and the waveform data to be read at these clock numbers are shown in a table as shown in FIG. Stored. Thereby, the processing of this routine ends.
[0032]
2.3. Performance processing
Next, a process of performing an automatic performance using the waveform data of the combined sections 1t to 12t will be described with reference to FIG. As described above, during automatic performance, a tempo clock is generated at intervals of “1/64” of quarter notes, and the program shown in FIG. 8 is executed each time the tempo clock is generated.
[0033]
When the process proceeds to step SP34 in FIG. 8, it is determined whether or not the variable tcount exceeds the maximum clock number maxcount. The variable tcount is initialized to “0” at the start of automatic performance. If “YES” is determined here, the process proceeds to step SP36, and the variable tcount is set to “0”. On the other hand, if “NO” is determined in step SP34, step SP36 is skipped.
[0034]
Next, when the process proceeds to step SP38, the table of FIG. 7 is referred to, and whether or not the timing for starting the reading of waveform data has been reached, that is, whether or not the variable tcount matches any of the generation start clock numbers. Is determined. If "YES" is determined here, the process proceeds to step SP40, and reading of the corresponding waveform data is started.
[0035]
That is, even if another waveform data reading process is performed immediately before this time point, in step SP40, reading of new waveform data is started in the form of alternating with the other waveform data. . On the other hand, if “NO” is determined in step SP38, step SP40 is skipped, and the process proceeds to step SP42 without changing the waveform data being read. In step SP42, the variable tcount is incremented by “1”, and the processing of this routine ends.
[0036]
According to the above process, when the process proceeds to step SP38 after the variable tcount is initially set to “0”, the waveform reading of the combined section 1t is started immediately. Thereafter, when the process proceeds to step SP38 after the variable tcount reaches “28”, reading of the waveform data of the combined section 1t is stopped, and reading of the waveform data of the combined section 2t is started. In order to smoothly connect the coupling section 1t and the coupling section 2t, the waveform data of the portion where reading of the coupling section 1t is stopped and the waveform data of the portion where reading of the coupling section 2t is started may be cross-fade connected. Good.
[0037]
Similarly, the reading of the combined sections 3t to 12t is sequentially started in accordance with the increase of the variable tcount. When the variable tcount becomes “maxcount + 1”, the variable tcount is returned to “0” in steps SP34 and SP36. Thereafter, the same operation is repeated.
[0038]
Next, the tone waveform actually generated by such processing will be described with reference to FIG. FIG. 5B shows a section that is read when the tempo ratio during playback and recording is set to 1.00. In such a case, reading of the next combined section is started when “1/2” of each combined section, that is, all of the original section is read. As a result, the reproduced sound waveform matches the original waveform data.
[0039]
FIG. 5A shows a section that is read when the tempo ratio during reproduction and recording is set to 0.67. In such a case, reading of the next section is started when “67%” is reproduced based on the length of the original section. As a result, the latter half 33% of each original section and the inserted section are not reproduced.
[0040]
FIG. 4C shows a section that is read when the tempo ratio during reproduction and recording is set to 1.65. In such a case, reading of the next section is started when “165%” is reproduced based on the length of the original section. As a result, each original section and the first 65% of each inserted section are reproduced.
[0041]
The user can change the tempo at the time of reproduction and the waveform data used for the reproduction in real time via the input device 4. Similarly, the speed at which each section is read, that is, the pitch shift amount, can be changed in real time via the input device 4. Further, the waveform data to be reproduced, the tempo, or the pitch shift amount may be automatically changed based on a predetermined sequence. Thereby, the waveform data is reproduced and sounded in various manners based on the user's operation or a predetermined sequence.
[0042]
3. Effects of the embodiment
As described above, according to the present embodiment, the initial value of the envelope level of each insertion section of the waveform data is set to be equal to the envelope level at the end of the corresponding original section, and further the attenuation rate of the insertion section. Is set to be equal to the attenuation factor of the original section.
[0043]
As a result, the original section and the inserted section are connected with no sense of incongruity, and in particular, when the tempo ratio during playback and recording is set to a value exceeding 1.00, a high-quality playback sound that could not be obtained before is obtained. be able to.
[0044]
4). Modified example
The present invention is not limited to the above-described embodiment, and various modifications can be made as follows, for example.
(1) In each of the above embodiments, the waveform editing system is realized by an application program that runs on a personal computer, but the same function is used for various electronic musical instruments, mobile phones, amusement devices, and other devices that generate musical sounds. May be. Further, the software used in the above embodiment can be stored in a recording medium such as a CD-ROM or a floppy disk and distributed, or can be distributed through a transmission path.
[0045]
(2) In the above embodiment, the waveform data of the insertion section is generated in advance corresponding to each original section. However, the waveform data of each insertion section is reproduced during the waveform data reproduction or in response to an instruction for waveform reproduction. You may make it produce | generate immediately before starting reproduction | regeneration. Thereby, the storage capacity for storing waveform data can be reduced.
[0046]
(3) In step SP16 of the above embodiment, the waveform data of the corresponding original section or its inverted version is used as it is as the waveform data of the insertion section before the envelope adjustment. However, the insertion section may be generated by detecting the pitch of the latter half of the original section and repeating a part (partial waveform) of the original section in this pitch unit. Thereby, it is possible to prevent instability peculiar to the attack portion from appearing in the insertion section.
[0047]
The partial waveform size may be constant or may be set to a random length. Also, if the pitch is detected stably in the latter half of the original section, a part of the original section is repeated, and if the pitch is not detected, the entire original section (or the inverted version) is copied. The waveform data before the envelope adjustment of the insertion section may be set.
[0048]
(4) In the above embodiment, each insertion section is created based on the waveform data of the original section immediately before (or an inverted version thereof), but based on the waveform data of the next original section. Each insert section may be generated. For example, the insertion section 1i may be generated based on the waveform data of the original section 2r.
[0049]
(5) In the above embodiment, the original waveform data may be divided into a plurality of frequency bands, and compression / decompression processing may be performed for each frequency band. The configuration will be described with reference to FIG. In the figure, reference numeral 50 denotes a band division filter, which is constituted by an FFT circuit, a phase vocoder, or the like, and divides the original waveform data into a plurality of frequency bands.
[0050]
An envelope / beat detection unit 52 detects an envelope and a beat for each frequency band, and divides each frequency band of the original waveform data into a plurality of original sections. A time compression / decompression processing circuit 54 generates waveform data of the insertion section for the original section for each frequency band, and reproduces the waveform data in synchronization with the tempo clock. The mode of compression / decompression of the reproduced waveform data is the same as that shown in FIG. An adder 56 adds the reproduced waveforms for each band and outputs the result as a musical sound waveform.
[0051]
(6) In the above embodiment, the attenuation rate dr is obtained with a linear scale based on the original section. However, the attenuation rate dr may be obtained with a log scale. More specifically, the attenuation rate dr in the log scale is
dr = (L1-L2) / T
And the envelope of each part in the insertion section is the insertion section start time t = 0,
L2-dr · t
Can be obtained. The attenuation rate dr may be obtained by various methods other than the linear scale or the log scale.
[0052]
(7) In the above embodiment, flattened waveform data with a flat envelope is obtained once, and the waveform data of the insertion section is obtained by multiplying the flattened waveform data by the envelope level (steps SP18 and SP20). . However, the final waveform data of the inserted section may be directly obtained by multiplying the waveform data of the original section by “the newly obtained envelope of the inserted section / the envelope of the original section”.
[0053]
(8) In the above embodiment, the attenuation rate dr is set based on the maximum value L1 of the envelope level of the original section, the end envelope level L2, and the time T from when the maximum value L1 appears until the end of the original section. Asked. However, based on the envelope level L1 'at a predetermined position between the position where the maximum value L1 occurs and the end of the original section, the time from the predetermined position to the end, T', and the end envelope level L2,
dr = (L1 '/ L2)1 / T '
The attenuation rate dr may be obtained by In particular, when the attenuation rate near the end of the original section is fluctuating as compared to before, a more appropriate attenuation rate dr can be given to the insertion section.
[0054]
【The invention's effect】
  As described above, according to the configuration in which the envelope level of the waveform data in the additional section is attenuated with the passage of time with the envelope level at the end of the corresponding original section as the initial value, the original section and the additional section are smoothly connected. It is possible to synthesize musical sound waveforms that do not feel uncomfortable with various tempo settings. In addition, additional sections corresponding to each original sectionBefore the playback tempo is determinedAccording to the aspect generated in advance, the processing load during performance can be reduced.
[Brief description of the drawings]
FIG. 1 is a block diagram of a waveform editing system according to an embodiment of the present invention.
FIG. 2 is an operation explanatory diagram of processing for generating an insertion section and a combined section in the embodiment.
FIG. 3 is an operation explanatory diagram of waveform data setting processing in an insertion section ni.
FIG. 4 is an operation explanatory diagram of an envelope level setting process in an insertion section ni.
FIG. 5 is an operation explanatory diagram of an envelope level setting process in an insertion section ni.
FIG. 6 is a flowchart of reproduction waveform data generation processing in the embodiment.
FIG. 7 is a diagram showing the contents of a correspondence table between the number of generation start clocks and waveform data.
FIG. 8 is a flowchart of a performance processing routine.
FIG. 9 is an explanatory diagram of compression / decompression processing of waveform data to be reproduced.
FIG. 10 is a block diagram of a main part of a modification of the embodiment.
[Explanation of symbols]
1i to 12i ... insertion section, 1t to 12t ... coupling section, 2 ... communication interface, 4 ... input device, 6 ... performance operator, 8 ... display, 10 ... CPU, 12 ... ROM, 14 ... RAM, 16 ... bus, DESCRIPTION OF SYMBOLS 18 ... Drive apparatus, 20 ... Storage medium, 22 ... Waveform acquisition interface, 28 ... Sound system, 50 ... Band division filter, 52 ... Envelope / beat detection part, 54 ... Time compression / expansion processing circuit, 56 ... Adder.

Claims (5)

原波形データを複数の原区間の波形データに分割する過程と、
再生時のテンポが決定される前に、前記各原区間の各々の波形データを再生した後に再生するための複数の追加区間の波形データを前記原区間の波形データに対応させて生成し記憶手段に記憶する追加区間生成過程であって、前記追加区間の波形データのエンベロープレベルを、対応する前記原区間の波形データの終端におけるエンベロープレベルを初期値とし時間の経過とともに減衰するように設定する追加区間生成過程と、
前記各原区間の波形データの各々に対応して、当該原区間の波形データの再生を開始すべきテンポクロック数を示す再生開始クロック数を前記記憶手段に記憶する過程と
を有することを特徴とする波形データ生成方法。
A process of dividing the original waveform data into waveform data of a plurality of original sections;
A means for generating and storing waveform data of a plurality of additional sections for reproduction after reproducing each waveform data of each original section before the tempo at the time of reproduction is determined, corresponding to the waveform data of the original section An additional section generation process stored in the above, wherein the envelope level of the waveform data in the additional section is set so that the envelope level at the end of the corresponding waveform data in the original section is set to an initial value and attenuates with time Interval generation process,
Storing the reproduction start clock number indicating the number of tempo clocks at which reproduction of the waveform data of the original section is to be started in the storage unit corresponding to each of the waveform data of the original section. To generate waveform data.
前記原区間の全部または前記原区間の終端を含む一部における減衰率を検出する過程をさらに有し、この検出された減衰率に基づいて前記追加区間の波形データのエンベロープレベルを減衰させることを特徴とする請求項記載の波形データ生成方法。The method further comprises a step of detecting an attenuation rate in all of the original interval or a part including the end of the original interval, and attenuating the envelope level of the waveform data in the additional interval based on the detected attenuation rate. The waveform data generation method according to claim 1, wherein: 原波形データを複数の原区間の波形データに分割する過程と、
再生時のテンポが決定される前に、前記各原区間の各々の波形データを再生した後に再生するための複数の追加区間の波形データを前記原区間の波形データに対応させて生成するとともに対応する原区間の波形データの後部に各々結合して記憶手段に記憶する追加区間生成過程であって、前記追加区間の波形データのエンベロープレベルを、対応する前記原区間の波形データの終端におけるエンベロープレベルを初期値とし時間の経過とともに減衰するように設定する追加区間生成過程と、
を有することを特徴とする波形データ生成方法。
A process of dividing the original waveform data into waveform data of a plurality of original sections;
Before the tempo at the time of playback is determined, the waveform data of each of the original sections is generated and the waveform data of a plurality of additional sections to be played back is generated in correspondence with the waveform data of the original section. An additional section generation process in which the waveform data of the additional section is connected to the rear part of the waveform data of the original section and stored in the storage means, and the envelope level of the waveform data of the additional section is set to the envelope level at the end of the waveform data of the corresponding original section An additional interval generation process in which the initial value is set to decay with the passage of time,
A waveform data generation method comprising:
請求項1ないしの何れかに記載の方法を実行することを特徴とする波形データ生成装置。Waveform data generating apparatus characterized by performing a method according to any one of claims 1 to 3. 請求項1ないしの何れかに記載の方法をコンピュータに実行させるプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記録媒体。Claims 1 to computer-readable recording medium characterized by storing a program for executing the method according to the computer in one of 3.
JP2000373983A 2000-12-08 2000-12-08 Waveform data generation method, waveform data generation apparatus, and recording medium Expired - Fee Related JP3731470B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000373983A JP3731470B2 (en) 2000-12-08 2000-12-08 Waveform data generation method, waveform data generation apparatus, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000373983A JP3731470B2 (en) 2000-12-08 2000-12-08 Waveform data generation method, waveform data generation apparatus, and recording medium

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005202483A Division JP4089712B2 (en) 2005-07-12 2005-07-12 Waveform data generation method, musical sound synthesis method, waveform data generation device, and computer-readable recording medium

Publications (2)

Publication Number Publication Date
JP2002175080A JP2002175080A (en) 2002-06-21
JP3731470B2 true JP3731470B2 (en) 2006-01-05

Family

ID=18843265

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000373983A Expired - Fee Related JP3731470B2 (en) 2000-12-08 2000-12-08 Waveform data generation method, waveform data generation apparatus, and recording medium

Country Status (1)

Country Link
JP (1) JP3731470B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7536257B2 (en) 2004-07-07 2009-05-19 Yamaha Corporation Performance apparatus and performance apparatus control program
JP3985825B2 (en) 2005-04-06 2007-10-03 ヤマハ株式会社 Performance device and performance program
JP4046129B2 (en) 2005-07-29 2008-02-13 ヤマハ株式会社 Performance equipment
JP3985830B2 (en) 2005-07-29 2007-10-03 ヤマハ株式会社 Performance equipment
JP4254793B2 (en) 2006-03-06 2009-04-15 ヤマハ株式会社 Performance equipment

Also Published As

Publication number Publication date
JP2002175080A (en) 2002-06-21

Similar Documents

Publication Publication Date Title
JP6191459B2 (en) Automatic performance technology using audio waveform data
JP4293712B2 (en) Audio waveform playback device
KR100402364B1 (en) Apparatus and method for generating musical tones, and storage medium
JP3731470B2 (en) Waveform data generation method, waveform data generation apparatus, and recording medium
JP4561636B2 (en) Musical sound synthesizer and program
JP2000510255A (en) System and method for synthesizing sound using a length modulated digital delay line
JP2010113278A (en) Music processing device and program
JP3654117B2 (en) Expansion and contraction method of musical sound waveform signal in time axis direction
JP3786036B2 (en) Reverberation imparting device, reverberation imparting method, program, and recording medium
JP3202017B2 (en) Data compression of attenuated instrument sounds for digital sampling systems
JP4089712B2 (en) Waveform data generation method, musical sound synthesis method, waveform data generation device, and computer-readable recording medium
JP4089713B2 (en) Waveform data reproducing apparatus and recording medium
JPH08160961A (en) Sound source device
JP3731476B2 (en) Waveform data analysis method, waveform data analysis apparatus, and recording medium
JP3428401B2 (en) Waveform data processing method
JP4016992B2 (en) Waveform data analysis method, waveform data analysis apparatus, and computer-readable recording medium
JP3731477B2 (en) Waveform data analysis method, waveform data analysis apparatus, and recording medium
JP3731478B2 (en) Waveform data analyzing method, waveform data analyzing apparatus and recording medium
JP2008027552A (en) Music reproducing device
JP5359203B2 (en) Music processing apparatus and program
JP3613191B2 (en) Waveform generation method and apparatus
JP4037973B2 (en) Waveform playback device
JP3714397B2 (en) Waveform data processing apparatus and waveform data processing method
JP2004290501A (en) Music performance control method for video game, program, storage medium, and game device
JP4345010B2 (en) Pitch change amount determination method, pitch change amount determination device, and program

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050314

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