JP3778036B2 - Waveform generating apparatus and method - Google Patents

Waveform generating apparatus and method Download PDF

Info

Publication number
JP3778036B2
JP3778036B2 JP2001277994A JP2001277994A JP3778036B2 JP 3778036 B2 JP3778036 B2 JP 3778036B2 JP 2001277994 A JP2001277994 A JP 2001277994A JP 2001277994 A JP2001277994 A JP 2001277994A JP 3778036 B2 JP3778036 B2 JP 3778036B2
Authority
JP
Japan
Prior art keywords
waveform
waveform data
harmonic
read
data
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
JP2001277994A
Other languages
Japanese (ja)
Other versions
JP2003084770A (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 JP2001277994A priority Critical patent/JP3778036B2/en
Priority to EP02019896A priority patent/EP1304680A3/en
Priority to US10/241,679 priority patent/US20030050781A1/en
Publication of JP2003084770A publication Critical patent/JP2003084770A/en
Application granted granted Critical
Publication of JP3778036B2 publication Critical patent/JP3778036B2/en
Priority to US11/860,464 priority patent/US7579545B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、波形メモリ等からの波形データの読み出し等に基づき、楽音あるいは音声若しくはその他任意の音の波形を生成する方法及び装置に関し、特に、演奏者により行われた自然楽器固有の各種奏法若しくはアーティキュレーションによる音色変化を忠実に表現した波形を生成するものに関する。この発明は、電子楽器は勿論のこと、自動演奏装置、コンピュータ、電子ゲーム装置その他のマルチメディア機器等、楽音あるいは音声若しくはその他任意の音を発生する機能を有するあらゆる分野の機器若しくは装置または方法において広範囲に応用できるものである。なお、この明細書において、楽音波形という場合、音楽的な音の波形に限るものではなく、音声あるいはその他任意の音の波形を含んでいてもよい意味合いで用いるものとする。
【0002】
【従来の技術】
波形メモリにおいて、PCM(パルス符号変調)あるいはDPCM(差分PCM)又はADPCM(適応差分PCM)等の符号化方式で符号化した波形データ(つまり、ベクトルデータ)を記憶しておき、これを所望のピッチに対応して読み出すことにより、楽音波形を形成するようにした、いわゆる「波形メモリ読み出し」技術は既に公知であり、また、様々なタイプの「波形メモリ読み出し」技術が知られている。従来知られた「波形メモリ読み出し」技術のほとんどは、発音開始から終了までの1つの音の波形を発生するためのものである。一例として、発音開始から終了までの1音の全波形の波形データを記憶する方式がある。また、別の例として、変化の複雑なアタック部やリリース部あるいはジョイント部などの非定常状態区間についてはその全波形の波形データを記憶し、変化のあまりないサステイン部などの定常状態区間については所定のループ波形を記憶する方式がある。なお、本明細書において、「ループ波形」とは繰り返し読出し(つまりループ読出し)される波形という意味で用いるものとする。こうした従来の発音開始から終了までの1音の全波形の波形データを記憶する方式や、アタック部などの波形の一部において全波形の波形データを記憶する方式の「波形メモリ読み出し」技術においては、各種奏法(若しくはアーティキュレーション)に対応する様々な波形データをメモリなどに多数記憶しておかなければならないが、多数の波形データをそのまま普通に記憶したのでは必要なメモリ記憶容量がかなり増大してしまうことになる。そこで、従来では入力波形を周期的波形要素からなる調和成分(若しくは周期性成分とも呼ぶ)と非周期的波形要素からなる調和外成分(若しくは非周期性成分とも呼ぶ)とに分離し、これらの成分毎に分離した波形データを各々データ圧縮して記憶することによって、波形データを記憶するのに必要なメモリ記憶容量を節約するようにしている。また、波形データを各音高(ピッチ)毎に対応するようにして記憶することなく、ある音高に対応する入力波形に基づいて記憶された波形データを複数の音高で共有して用いる(すなわち、ある音高に対応する入力波形に基づき記憶された波形データを所望ピッチにピッチシフトして用いる)ことによっても、波形データを記憶するのに必要なメモリ記憶容量を節約するようにしている。
【0003】
【発明が解決しようとする課題】
ところで、上述したような調和成分と調和外成分とに分離した波形データを用いて波形合成を行う場合に、調和成分の波形データ(以下、調和波形ベクトルデータと呼ぶ)と調和外成分の波形データ(以下、調和外波形ベクトルデータと呼ぶ)との間に位相ずれが生じた状態で波形合成すると、音色の劣化や意図しないノイズなどの生じた品質の低い波形が生成されることから、このような場合には自然楽器固有の各種奏法(若しくはアーティキュレーション)による音色変化を忠実に表現することができなくなる。例えば、メモリ記憶容量に記憶された波形データをピッチシフトして用いる場合(すなわち、波形データを所望のピッチに対応して読み出す場合)において、従来知られた「波形メモリ読み出し」技術では調和波形ベクトルデータのみをピッチシフトしているだけであって、調和外波形ベクトルデータについてはピッチシフトすると音の種類が大きく変わってしまうことからピッチシフトしていなかった。すなわち、調和波形ベクトルデータは所望のピッチに同期して読みだしされるが、調和外波形ベクトルデータは所望のピッチに同期して読み出しされることがなかった。そのため、こうした場合には調和波形ベクトルデータと調和外波形ベクトルデータとの間に位相ずれが生じた状態で波形合成が行われる可能性がある。また、従来の「波形メモリ読み出し」技術においては、調和波形ベクトルデータと調和外波形ベクトルデータとを位相同期しながら波形合成を行うことが考慮されていなかった。したがって、従来では、特に波形データをピッチシフトして新たな波形を生成する場合などにおいて、音色の劣化や意図しないノイズなどを生じた波形が生成されることが多く、様々な奏法(若しくはアーティキュレーション)に対応する高品質な波形を再現性よく生成することができない、という問題点があった。
【0004】
本発明は上述の点に鑑みてなされたもので、調和波形と調和外波形とを周期的に位相同期しながら波形合成することによって、様々な奏法(若しくはアーティキュレーション)に対応する高品質な波形を生成することができるようにした波形生成装置及び方法を提供しようとするものである。
【0005】
【課題を解決するための手段】
本発明に係る波形生成装置は、時間軸に沿って読み出される波形データを複数記憶してなり、かつ、1波形データ内において所定の周期に対応して設定される他の波形データと位相が同一な特定の位置を指示する複数のサイクル同期点を含んで記憶する記憶手段と、少なくとも2つの波形データを読み出す読出手段と、前記読み出される少なくとも2つの波形データの読み出し速度が異なる場合に、該読み出される波形データ内のサイクル同期点に基づき、該読み出される波形データの読み出し位置が、前記サイクル同期点によって指示される各波形データ毎の前記特定の位置で少なくとも同期するように、前記読出手段における前記少なくとも2つの波形データのうちの少なくとも一方の波形データの読み出し方を制御する制御手段とを具えるものである。
【0006】
この発明によれば、予めサイクル同期点として設定された位相が同一である所定位置を周期的に同期しながら読み出すようにしたことから、様々な奏法(若しくはアーティキュレーション)に対応する高品質な波形を生成することができるようになる。記憶手段は、時間軸に沿って読み出される波形データを複数記憶してなり、かつ、1波形データ内において所定の周期に対応して設定される他の波形データと位相が同一な特定の位置を指示する複数のサイクル同期点を含んで記憶する。読出手段は、前記記憶手段から少なくとも2つの波形データを読み出す。この少なくとも2つの波形データの読み出しの際に、制御手段は、前記読み出される少なくとも2つの波形データの読み出し速度が異なる場合に、該読み出される波形データ内のサイクル同期点に基づき、該読み出される波形データの読み出し位置が、前記サイクル同期点によって指示される各波形データ毎の前記特定の位置で少なくとも同期するように、前記読出手段における前記少なくとも2つの波形データのうちの少なくとも一方の波形データの読み出し方を制御する。このように、読み出す少なくとも2つの波形データのうちの少なくとも一方の波形データの読み出し方を前記波形データのサイクル同期点にあわせて制御することによって、各波形データを特定の位置で位相同期しながら読み出すことができるようになる。これにより、読み出される少なくとも2つの波形データの読み出し速度が異なる場合であっても、これらの位相を特定の位置で適切に同期させることができるものとなり、高品質な楽音波形を生成することができる。
【0007】
本発明は、装置の発明として構成し実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはDSP等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【0008】
【発明の実施の形態】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
【0009】
図1は、この発明に係る波形生成装置のハードウエア構成例を示すブロック図である。ここに示されたハードウエア構成例はコンピュータを用いて構成されており、そこにおいて、波形生成処理は、コンピュータがこの発明に係る波形生成処理を実現する所定のプログラム(ソフトウエア)を実行することにより実施される。勿論、この波形生成処理はコンピュータソフトウエアの形態に限らず、DSP(ディジタル・シグナル・プロセッサ)によって処理されるマイクロプログラムの形態でも実施可能であり、また、この種のプログラムの形態に限らず、ディスクリート回路又は集積回路若しくは大規模集積回路等を含んで構成された専用ハードウエア装置の形態で実施してもよい。また、この波形生成装置は、電子楽器、カラオケ装置もしくは電子ゲーム装置又はその他のマルチメディア機器、もしくはパーソナルコンピュータ等、任意の製品応用形態をとっていてよい。
なお、上記した波形生成装置はこれら以外のハードウェアを有する場合もあるが、ここでは必要最小限の資源を用いた場合について説明する。
【0010】
図1に示されたハードウエア構成例においては、コンピュータのメイン制御部としてのCPU101に対して、バスラインBL(データあるいはアドレスバス等)を介してリードオンリメモリ(ROM)102、ランダムアクセスメモリ(RAM)103、パネルスイッチ104、パネル表示器105、ドライブ106、波形取込部107、波形出力部108、ハードディスク109、通信インタフェース111がそれぞれ接続されている。CPU101は、「波形データベース作成処理」(後述する図2参照)や「波形生成処理」(後述する図4及び図5参照)などの各種処理を所定のプログラムに基づいて実行する。これらのプログラムは、通信インタフェース111を介したネットワークあるいはドライブ106に装着されたCDやMO等の外部記憶メディア106A等から供給されてハードディスク109に記憶される。そして、実行時にハードディスク109からRAM103にロードされる。あるいは、ROM102にプログラムが記録されていてもよい。
【0011】
ROM102は、CPU101により実行あるいは参照される各種プログラムや各種データ等を格納するものである。RAM103は、演奏に関する各種情報やCPU101がプログラムを実行する際に発生する各種データを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを記憶するメモリとして使用される。RAM103の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。パネルスイッチ104は、楽音をサンプリングする指示やサンプリングされた波形データ等のエディットや各種情報の入力等を行うための各種の操作子を含んで構成される。例えば、数値データ入力用のテンキーや文字データ入力用のキーボード、あるいはパネルスイッチ等である。この他にも音高、音色、効果等を選択・設定・制御するための各種操作子を含んでいてよい。パネル表示器105は、パネルスイッチ104により入力された各種情報やサンプリングされた波形データ等を表示する、例えば液晶表示パネル(LCD)やCRT等のディスプレイである。
【0012】
波形取込部107はA/D変換器を内蔵し、外部波形入力(例えば、マイクロフォンなどからの入力)されたアナログ楽音信号をデジタルデータに変換(サンプリング)してRAM103あるいはハードディスク109に該デジタル波形データをオリジナルの波形データ(つまり生成すべき波形の素材となる波形データ)として取り込むものである。CPU101によって実行する「波形データベース作成処理」(後述する図2参照)では、上記取り込んだオリジナルの波形データを調和と調和外とに成分分離して生成した調和波形データと調和外波形データとを「波形データベース」に記憶する。また、「波形生成処理」(後述する図4及び図5参照)では、上記「波形データベース」から適宜に読み出した調和波形データや調和外波形データを使用して、演奏情報に応じた任意の楽音信号の波形データを生成する。勿論、複数の楽音信号の同時発生が可能である。生成された楽音信号の波形データはバスラインBLを介して波形出力部108に与えられ、適宜バッファ記憶される。波形出力部108ではバッファ記憶された波形データを所定の出力サンプリング周波数にしたがって出力し、これをD/A変換してサウンドシステム108Aに送出する。こうして、波形出力部108から出力された楽音信号は、サウンドシステム108Aを介して発音される。ハードディスク109は、波形データや奏法に応じた波形を合成するための各種データ、各種音色パラメータ等からなる音色データなどのような演奏に関する複数種類のデータを記憶したり、前記CPU101が実行する各種プログラム等の制御に関するデータを記憶したりするものである。
【0013】
ドライブ106は、波形データや奏法に応じた波形を合成するための各種データ、多種多様な音色パラメータ等からなる音色データなどのような演奏に関する複数種類のデータを記憶したり、前記CPU101が実行する各種プログラム等の制御に関するデータを記憶したりするための着脱可能なディスク(外部記憶メディア106A)を駆動するものである。なお、前記ドライブ106により駆動される外部記憶メディア106Aはフレキシブルディスク(FD)の他に、コンパクトディスク(CD−ROM・CD−RW)、光磁気ディスク(MO)、あるいはDVD(Digital Versatile Disk)等の着脱自在な様々な形態の外部記憶媒体を利用するメディアであればどのようなものであってもよい。若しくは、半導体メモリなどであってもよい。制御プログラムを記憶した外部記憶メディア106Aをドライブ106にセットし、その内容(つまり制御プログラム)をハードディスク109に落とさずに、RAM103に直接ロードするようにしてもよい。なお、外部記憶メディア106Aを用いて、あるいはネットワークを介して制御プログラムを提供するやり方は、制御プログラムの追加やバージョンアップ等を容易に行うことができるので好都合である。
【0014】
通信インタフェース111は、例えばLANやインターネット、電話回線等の通信ネットワーク(図示せず)に接続されており、該通信ネットワークを介して、サーバコンピュータ等(図示せず)と接続され、当該サーバコンピュータ等から制御プログラムや波形データあるいは演奏情報などを波形生成装置側に取り込むためのものである。すなわち、ROM102やハードディスク109に制御プログラムや波形データなどが記憶されていない場合に、サーバコンピュータから制御プログラムや波形データをダウンロードするために用いられる。クライアントとなる波形生成装置は、通信インターフェース111を介してサーバコンピュータへと制御プログラムや波形データのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求された制御プログラムや波形データなどを通信インタフェース111を介してハードディスク109に蓄積することにより、ダウンロードが完了する。更に、MIDIインタフェースを含み、MIDIの演奏情報を受け取るようにしてもよいのは勿論である。また、音楽演奏用キーボードや演奏操作機器をバスラインBLに接続し、リアルタイム演奏によって演奏情報を供給するようにしてもよいのは言うまでもない。さらに、所望の楽曲の演奏情報を記憶した外部記憶メディア106Aを使用して、演奏情報を供給するようにしてもよい。
【0015】
図2は、上述した波形生成装置において実行される「波形データベース作成処理」の一実施例を示すフローチャートである。当該処理は、いろいろな奏法(若しくはアーティキュレーション)に対応するために、いろいろな奏法(若しくはアーティキュレーション)で演奏された演奏音の波形を素材として波形データ(つまり、ベクトルデータ)を生成する処理である。
【0016】
ステップS1では、様々な自然楽器の様々な演奏態様による波形を収集する。すなわち、様々な自然楽器の様々な実際の演奏音を外部波形入力(例えば、マイクロフォン等)から波形取込部107を介して取り込み、それらの演奏音のオリジナル波形をハードディスク109の所定のエリアに記憶する。ステップS2では、こうして得られた自然楽器固有の様々な演奏態様による演奏音のオリジナル波形を特徴的な部分毎に切り分けて、チューニング及びファイル名付けする。すなわち、取り込んだオリジナル波形を波形形状の変化を代表する区間毎の波形(例えば、アタック部やリリース部あるいはジョイント部などの非定常状態区間の波形、ボディ部などの定常状態区間の波形等)に分離して(▲1▼切り分け)、分離した1周期乃至複数周期の波形がそれぞれいかなるピッチであるかを判定し、さらに必要に応じてピッチを修正し(▲2▼チューニング)、さらにそれぞれ分離した波形に対してファイル名を付与する(▲3▼ファイル名付け)。ステップS3では、周波数分析による成分分離を行う。すなわち、ステップS2において所定の区間毎に分離された波形をFFT(高速フーリエ変換)分析して調和成分と調和外成分とに分離し、さらに調和成分と調和外成分毎に波形、ピッチ、振幅の各要素毎の特徴抽出を行う。ここでは、ピッチと振幅をノーマライズした波形形状のみ特徴を抽出した「波形」(Timbre)要素、基準ピッチに対するピッチ変動特性を抽出した「ピッチ」(Pitch)要素、振幅エンベロープ特性を抽出した「振幅」(Amplitude)要素などを抽出する。ただし、調和外成分はピッチ変動特性を持たないものであることから、調和外成分については「ピッチ」(Pitch)要素を抽出しない。
なお、この実施例において、ジョイント部とは音と音の間(又は音部分と音部分の間)を任意の奏法でつなぐ波形区間のことである。
【0017】
ステップS4では、ベクトルデータの作成を行う。すなわち、分離された各成分(調和成分、調和外成分等)の波形やピッチや振幅の各要素毎に複数のサンプル値を分散的に又は必要に応じて連続的に抽出し、当該サンプル値列に対して各々異なったベクトルID(識別情報)を付与して、サンプル値の時刻位置のデータとともに記憶する(以下、このようなサンプルデータをベクトルデータと呼ぶ)。この実施例では、調和波形(Timbre)ベクトルデータ、調和ピッチ(Pitch)ベクトルデータ、調和振幅(Amplitude)ベクトルデータ、調和外波形(Timbre)ベクトルデータ、調和外振幅(Amplitude)ベクトルデータがそれぞれ作成される。調和波形ベクトルデータと調和外波形ベクトルデータを生成する際には、周波数分析(ステップS3参照)により分離された調和波形の波形周期毎に適宜の位置をサイクル同期点CSP(Cycle Sync Position)として記憶する。このサイクル同期点CSPは、調和波形ベクトルデータと調和外波形ベクトルデータとを波形合成する際に、互いの波形データの読み出し位置を所定位置毎に周期的に同期するようにして読み出ししながら波形合成するために用いる同期位置情報であり、具体的には所定のデータアドレスなどを記憶する。ステップS5では、作成した各成分・要素毎のベクトルデータをハードディスク109などに構成された波形データベースへ書き込んで蓄積していく。このように、様々な自然楽器の様々な演奏態様による演奏音の波形を全波形にわたって記憶しておくのではなく、波形形状の変化に必要な一部の波形(例えば、アタック部波形、ループ部波形、リリース部波形、ジョイント部波形等)のみを抽出し、さらに成分、要素といった階層的な圧縮手法を用いることによってデータ圧縮した形でハードディスク109に波形を記憶する。こうすることで、波形を記憶するために必要なハードディスク109の記憶容量を削減するようにしている。
【0018】
ここで、上述した「波形データベース生成処理」の実行により生成され波形データベースに記憶される入力波形の調和波形ベクトルデータと調和外波形ベクトルデータについて、図3を参照しながら説明する。図3は調和波形ベクトルデータと調和外波形ベクトルデータの一実施例を示した概念図であり、図3(a)はアタック部、図3(b)はボディ部、図3(c)はジョイント部、図3(d)はリリース部における調和波形ベクトルデータと調和外波形ベクトルデータの一実施例をそれぞれ波形エンベロープを用いて模式的に示したものである。この実施例においては、上段に調和波形ベクトルデータの一例を、下段に上段に示した調和波形ベクトルデータに対応する調和外波形ベクトルデータの一例をそれぞれ示した。
【0019】
アタック部の調和波形ベクトルデータは、図3(a)に示すように特徴ある波形形状が連続的に記憶されているブロック部(図では斜線で示した部分)と、その後に続く繰り返し読み出しすることのできるループ部(図では塗りつぶしで示した部分)との組み合わせからなるデータである。ブロック部は、奏法(若しくはアーティキュレーション)等の特徴を有する高品質な波形(つまりノンループ波形)である。ボディ部の調和波形ベクトルデータは、図3(b)に示すようにループ部を1乃至複数個繰り返し接続したデータである。ジョイント部の調和波形ベクトルデータは、図3(c)に示すようにループ部とブロック部とループ部との組み合わせからなるデータである。リリース部の調和波形ベクトルデータは、図3(d)に示すようにループ部とブロック部との組み合わせからなるデータである。こうしたアタック部、ボディ部、ジョイント部、リリース部などの各波形の接続はループ部により行われるものであるから、ブロック部の前後にはループ部が配置されている。このループ部は1周期または適当な複数周期分の波形からなる比較的単調な音部分の単位波形(つまりループ波形)であり、こうしたループ部を繰り返し読み出しすることによって、アタック部、ボディ部、ジョイント部、リリース部をそれぞれ波形接続できるようになっている。こうしたアタック部、ボディ部、ジョイント部、リリース部などの調和波形ベクトルデータは、波形周期に対応する所定位置(図3の各図において両矢印又は点線で示す各位置)をサイクル同期点CSP(Cycle Sync Position)として記憶する。
【0020】
他方、各調和波形ベクトルデータにそれぞれ対応する調和外波形ベクトルデータは、調和波形ベクトルデータに記憶されたサイクル同期点CSPの位置に対応する所定位置(図3の各図において点線で示す各位置)をサイクル同期点CSPとして記憶する。調和波形ベクトルデータと調和外波形ベクトルデータとの間に示した両方向の矢印は、サイクル同期点CSPとして設定されている互いに対応する位置を便宜的に示したものである。上述したように、調和波形ベクトルデータ及び調和外波形ベクトルデータにおけるサイクル同期点CSPの位置は、周波数分析(図2のステップS3参照)した結果たる調和波形の波形周期毎に適宜の位置(つまり同期したい位置、具体的には波形を成分分離する前の同じ時間にある適宜の位置(以下、単に時間位置と呼ぶ)など)に設定される。例えば、各波形ベクトルデータを1波形周期単位毎の適宜の位置で同期したい場合には1波形周期単位毎の時間位置をサイクル同期点CSPとして記憶するし、各波形ベクトルデータを複数波形周期単位毎の適宜の位置で同期したい場合には複数波形周期単位毎の時間位置をサイクル同期点CSPとして記憶する。すなわち、サイクル同期点CSPとして設定する適宜の位置は周波数分析した結果の調和波形1周期のn倍周期(n:整数又は少数)単位毎に記憶すればよいが、1周期単位の適宜の位置に記憶するのが一番よい。一般的に、調和波形ベクトルデータや調和外波形ベクトルデータは所定の読み出しアドレスに従ってデータ読み出しが行われることから、具体的には所定のデータアドレスをサイクル同期点CSPとして記憶することになる。ただし、ブロック部は一般には周期性がないので、ブロック部には周期単位でサイクル同期点CSPを置かなくてもよい。
【0021】
上述の図1に示した波形生成装置において、波形生成はコンピュータが波形生成処理を実現する所定のプログラム(ソフトウエア)を実行することにより実施される。あるいは、こうしたプログラムの形態に限らず、波形生成処理を専用ハードウエア装置の形態で実施するようにしてもよい。そこで、本発明に係る波形生成装置で実行する波形生成処理について、図4及び図5を用いて説明する。図4は、波形生成処理を専用ハードウエア装置の形態で構成した場合の一実施例を示すブロック図である。図5は、図4に示した波形合成部101Dの一実施例を示す概念図である。
【0022】
まず、図4を用いて、波形生成処理全体の動作概要について簡単に説明する。曲データ再生部101Aは奏法記号付き曲データの再生処理を行う。すなわち、まず最初に曲データ再生部101Aは奏法記号付き曲データ(つまり演奏情報)を受信する。通常の楽譜においては、そのままではMIDIデータとすることができないような強弱記号(例えばクレッシェンドやデクレッシェンド等)、テンポ記号(例えばアレグロやリタルダンド等)、スラー記号、テヌート記号、アクセント記号等の音楽記号が付されている。そこで、これらの音楽記号を「奏法記号」としてデータ化する。この「奏法記号」を含むMIDI曲データが「奏法記号付き曲データ」であり、曲データ再生部101Aはこのような奏法記号付き曲データを受信する。楽譜解釈部(プレーヤー)101Bでは、楽譜解釈処理を行う。具体的には、受信した奏法記号付き曲データに含まれるMIDIデータと「奏法記号」に基づいて所定の奏法指定情報を生成し、時刻情報とともに奏法合成部(アーティキュレーター)101Cに出力する。奏法合成部(アーティキュレーター)101Cは楽譜解釈部(プレーヤー)101Bにより生成された奏法指定に応じたパケットストリーム及び該ストリームに関してのベクトルパラメータを生成し、波形合成部101Dに供給する。パケットストリームとして波形合成部101Dに供給されるデータは、ベクトルID、時刻情報、入力ノートナンバ等である。波形合成部101Dはパケットストリームに応じて波形データベース109からベクトルデータを取り出し、該ベクトルデータをベクトルパラメータに応じて変形し、変形したベクトルデータに基づき波形を合成して楽音波形を生成する。波形出力部108では、生成した楽音波形を出力する。
【0023】
次に、図5を用いて、上述の図4に示した波形合成部101Dにおいて実行する波形合成動作について詳細に説明する。
奏法合成部(アーティキュレーター)101Cは、パケットキューバッファ21〜25に対してパケットを入力する。すなわち、奏法合成部(アーティキュレーター)101Cで作成された各成分要素毎のパケットストリームは、波形合成部101Dにおける各成分要素毎に対応して設けられる所定のパケットキューバッファ21〜25に順次にパケット入力(つまり、パケット単位での入力)される。また、奏法合成部(アーティキュレーター)101Cはパケットキューバッファ21〜25に対してパケットを入力する他にも、ストリーム管理(つまり、個々のベクトルデータの生成や削除あるいはベクトルデータ間の接続に関する管理)や再生コントロール(つまり、所望の波形生成の実行あるいは生成された所望の波形の再生/停止などのコントロール)などの各種の制御を波形合成部101Dに対して実行する。奏法合成部(アーティキュレーター)101Cから入力されたパケットはパケットキューバッファ21〜25に蓄積され、順次所定の順番でベクトルローダ20に送られる。ベクトルローダ20ではパケット内のベクトルIDを参照して、当該ベクトルIDに対応するオリジナルのベクトルデータを波形データベース109から読み出す。
【0024】
ベクトルローダ20により波形データベース109から読出されたベクトルデータは各成分要素毎に対応して設けられた所定のベクトルデコーダ31〜35へと送られて、各ベクトルデコーダ31〜35は各成分要素毎に波形を生成する。すなわち、各成分要素毎に対応するベクトルデコーダ31〜35は、パケット内のベクトルID、時刻情報、入力ノートナンバ等を読み出して所望の波形の時系列的生成を行う。例えば、調和Ampベクトルデコーダ31は調和成分の振幅(Amplitude)要素のエンベロープ波形を、調和Pitchベクトルデコーダ32は調和成分のピッチ(Pitch)要素のエンベロープ波形を、調和Timbreベクトルデコーダ33は調和成分の波形(Timbre)要素の波形を、調和外Ampベクトルデコーダ34は調和外成分の振幅(Amplitude)要素のエンベロープ波形を、調和外Timbreベクトルデコーダ35は調和外成分の波形(Timbre)要素のエンベロープ波形をそれぞれ生成する。調和Timbreベクトルデコーダ33は、調和Ampベクトルデコーダ31及び調和Pitchベクトルデコーダ32で生成された調和成分の振幅要素のエンベロープ波形と調和成分のピッチ要素のエンベロープ波形を付与した調和波形を生成してミキサ38へ出力する。すなわち、調和成分の振幅要素のエンベロープ波形をゲイン制御(つまり、Gain入力)するためのベクトル制御命令として、調和成分のピッチ要素のエンベロープ波形を入力ノートナンバに従うベクトルデータの読み出し位置制御(つまり、Speed入力)を行うためのベクトル制御命令として、各々入力した調和Timbreベクトルデコーダ33は、これらのベクトル制御命令に従って波形データベース109から読み出した調和波形ベクトルデータを変形して調和波形を生成する。ベクトルデータの読み出し位置制御に従って調和波形を生成する際に、調和波形ベクトルデータの読み出し位置がサイクル同期点CSPとして記憶された所定位置(例えば、データアドレスなど)に一致した場合(または所定位置を超えた場合に)、調和Timbreベクトルデコーダ33は調和外Timbreベクトルデコーダ35に対して所定の信号(この実施例では、CSF(Cycle Sync Flag))を送る。
【0025】
調和波形と異なり調和外波形はピッチに同期して波形を合成しないために、調和外Timbreベクトルデコーダ35には入力ノート(例えばノートナンバ)に従うベクトルデータの読み出し位置制御(つまり、Speed入力)を行うためのベクトル制御命令を入力しない。そこで、調和外Timbreベクトルデコーダ35では、調和Timbreベクトルデコーダ33から調和波形ベクトルデータに記憶されたサイクル同期点CSPに応じて送信される所定の信号(例えばCSF(Cycle Sync Flag)など)を受信した場合に、調和外波形ベクトルデータの波形読み出し位置を該調和外波形ベクトルデータに予めサイクル同期点CSPとして設定された所定位置(例えば、データアドレスなど)にジャンプすることによって、調和波形と調和外波形の位相を周期的に同期するようにしている。これについての詳細な説明については後述することから、ここでの説明を省略する。また、調和外Ampベクトルデコーダ34で生成された調和外成分の振幅要素のエンベロープ波形を付与した調和外波形を生成してミキサ38へ出力する。すなわち、調和外Timbreベクトルデコーダ35に対しては、調和外成分の振幅要素のエンベロープ波形のみをゲイン制御(つまり、Gain入力)を行うためのベクトル制御命令として入力する。こうして、波形データベース109から読み出した調和外波形ベクトルデータを変形して調和外波形を生成する。こうして生成された調和波形及び調和外波形をミキサ38で合成することによって、楽音波形を生成する。すなわち、ミキサ38は、調和Timbreベクトルデコーダ33で生成された調和波形と調和外Timbreベクトルデコーダ35で生成した調和外波形とを混合して楽音波形を生成する。
【0026】
以上のように、ベクトルデータの読み出し位置制御によるピッチ制御に従って調和波形を生成する際に、調和波形ベクトルデータの読み出し位置がサイクル同期点CSPとして記憶された所定位置(例えば、データアドレスなど)に一致した場合、調和Timbreベクトルデコーダ33は調和外Timbreベクトルデコーダ35に対して所定の信号(例えば、CSF(Cycle Sync Flag)など)を送ることにより、調和Timbreベクトルデコーダ33で生成する調和波形と調和外Timbreベクトルデコーダ35で生成する調和外波形との位相を周期的に同期しながら読み出すようにしている。
【0027】
ここで、調和波形ベクトルデータ及び該調和波形ベクトルデータに対応する調和外波形ベクトルデータのそれぞれに記憶したサイクル同期点CSPを用いての調和波形と調和外波形の周期的な同期読み出しについて、図6を用いて説明する。図6は、サイクル同期点CSPによる調和波形と調和外波形の周期的な同期読み出しについて説明するための概念図である。図6(a)は、波形データベースから読み出した調和波形ベクトルデータ(以下、調和原波形と呼ぶ)及び波形データベースから読み出した調和外波形ベクトルデータ(以下、調和外原波形と呼ぶ)を模式的に示した波形図である。図6(b)は、調和原波形を所定のピッチにあわせて読み出した場合(この実施例では、ピッチを上げた場合)における調和外原波形を読み出す際に用いるアドレス進行について説明するための概念図である。図6(c)は、図6(b)に示したアドレス進行に従って読み出された調和外原波形を模式的に示した波形図(つまり、サイクル同期点CSPによる調和外原波形の周期的な同期読み出しの結果)である。ただし、この実施例では、一部区間における調和波形ベクトルデータと調和外波形ベクトルデータの周期的な同期読み出しについて説明する。また、この実施例においては説明を理解しやすくするために、調和波形における図示しない波形0に対応するようにして記憶されたサイクル同期点CSP0及び該サイクル同期点CSP0に対応するようにして調和外波形に記憶されたサイクル同期点CSP0´を便宜的に図示した。
【0028】
図6(a)に示すように、波形データベースから読み出した調和原波形には、所定の波形周期単位毎(例えば1周期単位毎)の時間位置にサイクル同期点CSPが記憶される。この実施例に示す調和原波形には、所定の波形周期単位毎に区切られた8個の波形1〜波形8に対応するようにしてそれぞれCSP1〜CSP8の8個のサイクル同期点CSPが記憶されている。この調和原波形に対応する調和外原波形には、上記波形周期単位に対応する所定位置毎にサイクル同期点CSPが記憶される。すなわち、この実施例に示す調和外原波形には、調和原波形の波形1〜波形8の波形周期に対応する所定位置(つまりCSP1〜CSP8)に対応するようにしてそれぞれCSP1´〜CSP8´の8個のサイクル同期点CSPが記憶される。したがって、調和原波形を各サイクル同期点CSP1〜CSP8の位置で区切った波形1〜波形8までの波形周期と、調和外原波形を各サイクル同期点CSP1´〜CSP8´の位置でそれぞれ区切った波形A〜波形Hの波形は同一の波形周期単位に区切られたものであり、こうした各サイクル同期点においては調和原波形と調和外原波形の位相は同一である。
【0029】
調和Timbreベクトルデコーダ33が図6(a)に示した調和原波形を所定のピッチに従い読み出すと、図6(b)の上段に示すような波形図となる。この図6(b)では、図6(a)と比較して時間幅が縮小された形状の波形となっている。すなわち、調和原波形をピッチを上げて読み出した場合である。調和Timbreベクトルデコーダ33が所定のピッチに従って調和原波形を読み出す際に該調和原波形にサイクル同期点CSPとして記憶された所定位置を読み出した場合には、調和Timbreベクトルデコーダ33から調和外Timbreベクトルデコーダ35に対してCSFを送る(上述の図4参照)。この実施例では、時刻t1にCSP1に対応してCSF(1)、時刻t2にCSP2に対応してCSF(2)、時刻t3にCSP3に対応してCSF(3)、時刻t4にCSP4に対応してCSF(4)、時刻t5にCSP5に対応してCSF(5)、時刻t6にCSP6に対応してCSF(6)、時刻t7にCSP7に対応してCSF(7)、時刻t8にCSP8に対応してCSF(8)、時刻t9にCSP9(ただし、図6(a)では省略)に対応してCSF(9)を、調和Timbreベクトルデコーダ33から調和外Timbreベクトルデコーダ35に対して送る。
【0030】
図6(b)の下段に示した図は、調和外Timbreベクトルデコーダ35において調和外波形を読み出す際に用いる波形読み出し位置の時間的位置変化を示す図、つまりアドレス進行を示す図である。この実施例では実アドレス進行を実線で、仮想アドレス進行を点線で示している。実アドレス進行は調和外Timbreベクトルデコーダ35が調和外波形を読み出すために用いる実際の読み出し位置(アドレス位置)の時間進行に従う変化を表すものであり、仮想アドレス進行は仮想読み出し位置(仮想アドレス位置)の時間進行に従う変化を表すものである。上述したように、調和外Timbreベクトルデコーダ35は調和Timbreベクトルデコーダ33からCSFを受け取ると、調和外原波形の読み出し位置を仮想読み出し位置直前のサイクル同期点CSPへ移動して読み出しする。仮想読み出し位置とは、サイクル同期点CSPによる読み出し位置の移動の影響を受けないように読み出しを仮想的に続けた場合における読み出し位置である。ただし、この実施例に示した仮想アドレス進行の進行スピードは、調和外原波形と同じ進行スピードであるものとする。すなわち、この実施例においては、図6(b)における仮想アドレス進行を示す点線の傾きと実アドレス進行を示す実線の傾きとは同じ傾きである。
【0031】
図6(b)から理解できるように、この実施例においては、時刻t0に調和外原波形の読み出しが開始される。時刻t1では、調和原波形に設定されたCSP1に従ってCSF(1)を受け取る。この時刻t1における仮想アドレス進行に従う仮想アドレス位置の直前のアドレス位置はCSP0´であることから、実アドレスはアドレス位置CSP0´にジャンプし、再度アドレス位置CSP0´から読み出しを行う。この場合には、図6(c)に示すように時刻t0〜時刻t1までの間に調和外波形における波形Aの途中まで波形を読み出したが、時刻t1の時点で再度波形Aを最初から読み出しすることになる。時刻t2になると、調和原波形に設定されたCSP2に従ってCSF(2)を受け取る。この時刻t2の時点においては、仮想アドレス進行に従う仮想アドレス位置の直前のアドレス位置はCSP1´であることから、実アドレスはアドレス位置CSP1´にジャンプし、アドレス位置CSP1´から読み出しを行う。すなわち、図6(c)に示すように時刻t2では時刻t1から読み出した波形Aの読み出しを途中で止め、波形Bの読み出しを開始する。時刻t3では調和原波形に設定されたCSP3に従ってCSF(3)を受け取り、この時点における仮想アドレス位置の直前のアドレス位置はCSP1´であることから、実アドレスはアドレス位置CSP1´にジャンプし、再度アドレス位置CSP1´から読み出しを行う。時刻t4では調和原波形に設定されたCSP5に従ってCSF(4)を受け取り、この時点における仮想アドレス位置の直前のアドレス位置はCSP2´であることから、実アドレスはアドレス位置CSP2´にジャンプし、アドレス位置CSP2´から読み出しを行う。このように、時刻t2〜時刻t3、時刻t3〜時刻t4までの間では、波形Bの途中までを繰り返し読み出すことになる。同様にして、時刻t5以降の各時刻においても調和原波形に設定されたサイクル同期点CSP5〜CSP8(CSP9)に従ってCSFを順次に受け取り、CSFを受け取った各時刻毎に実アドレスのアドレス位置を変化させながら調和外波形の読み出しを続ける。
【0032】
このようにして、調和外Timbreベクトルデコーダ35が図6(b)に示した実アドレス進行に従って調和外波形を読み出すと、図6(c)に示した形状で調和外波形が読み出されることになる。図6(b)に示した調和波形と図6(c)に示した調和外波形とは、所定の周期毎に、つまりサイクル同期点CSPが設定された所定の位置毎に同期するようにして読み出しされる。また、これらのサイクル同期点CSPとして設定された周期的な所定位置においては、調和波形と調和外波形の互いの位相が常に同じ位相である。したがって、調和波形と調和外波形とを波形合成する際において、周期的な所定位置では常に位相ずれが生じていない状態となる。このようにして、この実施例に示す波形生成装置においては、周期的に位相同期を行いながら調和波形と調和外波形とを波形合成することができるようになっている。特に、調和外波形上に調和波形の周期に同期してスパイク状の波形が周期的に現れているような場合に、該スパイク状波形のピーク値などが現れる周期的な所定位置をサイクル同期点CSPとして設定すれば、こうしたスパイク状波形のピーク値などにおいて調和波形と調和外波形との間で位相ずれが生じることがなくなる。こうしたスパイク形状波形の特にピーク値などでの位相ずれは音質の劣化やノイズなどを引き起こす最も大きな原因となることが多いことから、こうしたスパイク状波形のピーク値などでの位相ずれをなくすことによって、音質の劣化やノイズなどが生じていない品質のよい波形を生成することができるようになる。
【0033】
なお、上述の図6(b)に示す調和外波形読み出し時に用いる仮想アドレス進行の進行スピードを、調和外原波形のピッチに対応した進行スピードをそのまま用いることなく、進行スピードを速くしたり遅くしたりしてもよい。こうした場合、調和波形のピッチに対応して進行スピードを速くしたり遅くしたりするとよい。さらに、仮想アドレスによらず、CSFが発生した時点で最寄りのサイクル同期点CSPn´にジャンプする簡易アルゴリズムを用いて実現するようにしてもよい。
なお、上述したサイクル同期点CSPによる調和波形と調和外波形間における周期的な読み出し位置の同期制御は、上述したようなピッチにより各ベクトルデータの読み出しスピードが変化するものに適用することに限られない。例えば、ピッチによらずアタック部やジョイント部あるいはリリース部などをTSC制御することによって波形全体の時間伸縮を制御するものや、アタック部やジョイント部あるいはリリース部などを接続するループ部のクロスフェード合成時間を制御したり、あるいはアタック部やジョイント部あるいはリリース部などの接続に用いるループ部を追加・削除することなどによって、生成する波形全体の時間伸縮を制御するものに適用してもよいことは言うまでもない。
なお、上述した実施例においては、調和波形ベクトルデータと該調和波形ベクトルデータに対応する調和外波形ベクトルデータのそれぞれに記憶するサイクル同期点CSPの位置を、所定の周期毎にユーザが適宜の位置に変更若しくは設定することができるようにしてもよいことは言うまでもない。
【0034】
なお、上述したような波形生成装置を電子楽器に用いた場合、電子楽器は鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。また、その場合に、曲データ再生部101A、楽譜解釈部101B、奏法合成部101C、波形合成部101D等を1つの電子楽器本体内に内蔵したものに限らず、それぞれが別々に構成され、MIDIインタフェースや各種ネットワーク等の通信手段を用いて各構成部を接続するように構成されたものにも同様に適用できることはいうまでもない。また、パソコンとアプリケーションソフトウェアという構成であってもよく、この場合処理プログラムを磁気ディスク、光ディスクあるいは半導体メモリ等の記憶メディアから供給したり、ネットワークを介して供給するものであってもよい。さらに、自動演奏ピアノのような自動演奏装置などにも適用してよい。
【0035】
【発明の効果】
本発明によれば、調和波形と調和外波形の読み出し位置を予め設定された所定の周期に対応する所定位置毎に同期しながら読み出すことによって、該読み出し位置において位相ずれが生じないようにして波形合成することができるようになる。これにより、音色の劣化や意図しないノイズなどを引き起こすことなく、様々な奏法(若しくはアーティキュレーション)を考慮した高品質な波形を生成することができる、という優れた効果を奏する。
【図面の簡単な説明】
【図1】 この発明に係る波形生成装置のハードウエア構成例を示すブロック図である。
【図2】 波形生成装置において実行される「波形データベース作成処理」の一実施例を示すフローチャートである。
【図3】 調和波形ベクトルデータと調和外波形ベクトルデータの一実施例を示した概念図であり、図3(a)はアタック部、図3(b)はボディ部、図3(c)はジョイント部、図3(d)はリリース部の一実施例を示した。
【図4】 波形生成処理を専用ハードウエア装置の形態で構成した場合の一実施例を示すブロック図である。
【図5】 図4に示した波形合成部101Dの一実施例を示す概念図である。
【図6】 サイクル同期点CSPによる調和波形と調和外波形の周期的な同期読み出しについて説明するための概念図である。
【符号の説明】
101…CPU、102…リードオンリメモリ(ROM)、103…ランダムアクセスメモリ(RAM)、104…パネルスイッチ、105…パネル表示器、106…ドライブ、106A…外部記憶メディア、107…波形取込部、108…波形出力部、108A…サウンドシステム、109…ハードディスク、111…通信インタフェース、BL…バスライン、101A…曲データ再生部、101B…楽譜解釈部、101C…奏法合成部、101D…波形合成部、20…ベクトルローダ、21(22〜25)…パケットキューバッファ、31…調和Ampベクトルデコーダ、32…調和Pitchベクトルデコーダ、33…調和Timbreベクトルデコーダ、34…調和外Ampベクトルデコーダ、35…調和外Timbreベクトルデコーダ、38…ミキサ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a method and an apparatus for generating a waveform of a musical sound or a voice or any other sound based on reading of waveform data from a waveform memory or the like, and in particular, various performance methods unique to a natural instrument performed by a player or The present invention relates to a device that generates a waveform that faithfully represents a timbre change caused by articulation. The present invention is not limited to electronic musical instruments, but also in devices, apparatuses or methods in all fields having a function of generating musical sounds, voices, or other arbitrary sounds, such as automatic performance apparatuses, computers, electronic game apparatuses and other multimedia devices. It can be applied in a wide range. In this specification, the term “musical sound waveform” is not limited to a musical sound waveform, but is used in a sense that may include a sound waveform or any other sound waveform.
[0002]
[Prior art]
In the waveform memory, waveform data (that is, vector data) encoded by an encoding method such as PCM (pulse code modulation), DPCM (differential PCM), or ADPCM (adaptive differential PCM) is stored, and this is stored as desired. A so-called “waveform memory read” technique for forming a musical sound waveform by reading in accordance with the pitch is already known, and various types of “waveform memory read” techniques are known. Most of the conventionally known “waveform memory reading” techniques are for generating a single sound waveform from the beginning to the end of sound generation. As an example, there is a method of storing waveform data of all waveforms of one sound from the start to the end of sound generation. As another example, the waveform data of all waveforms are stored for unsteady state sections such as attack parts, release parts or joint parts with complicated changes, and the steady state sections such as sustain parts with little change are stored. There is a method for storing a predetermined loop waveform. In this specification, “loop waveform” is used to mean a waveform that is repeatedly read (that is, loop read). In the conventional "waveform memory read-out" technology of storing the waveform data of all waveforms of one sound from the start to the end of sound generation, or storing the waveform data of all waveforms in a part of the waveform such as the attack part A lot of various waveform data corresponding to various performance methods (or articulations) must be stored in a memory, etc., but if a large number of waveform data is stored as it is, the required memory storage capacity increases considerably. Will end up. Therefore, conventionally, the input waveform is separated into a harmonic component (or a periodic component) made up of periodic waveform elements and an out-of-harmonic component (or a non-periodic component) made up of non-periodic waveform elements. By compressing and storing the waveform data separated for each component, the memory storage capacity necessary for storing the waveform data is saved. Further, without storing the waveform data so as to correspond to each pitch (pitch), the waveform data stored based on the input waveform corresponding to a certain pitch is shared and used by a plurality of pitches ( That is, by using the waveform data stored based on the input waveform corresponding to a certain pitch and shifting it to a desired pitch, the memory storage capacity required to store the waveform data is also saved. .
[0003]
[Problems to be solved by the invention]
By the way, when waveform synthesis is performed using waveform data separated into harmonic components and non-harmonic components as described above, waveform data of harmonic components (hereinafter referred to as harmonic waveform vector data) and waveform data of non-harmonic components. If a waveform is synthesized in a state in which there is a phase shift between it (hereinafter referred to as non-harmonic waveform vector data), a low-quality waveform such as timbre degradation or unintended noise is generated. In such a case, it becomes impossible to faithfully express timbre changes by various performance methods (or articulations) unique to natural instruments. For example, when the waveform data stored in the memory storage capacity is used after being pitch-shifted (that is, when the waveform data is read out corresponding to a desired pitch), the conventionally known “waveform memory reading” technique uses the harmonic waveform vector. Only the data was pitch-shifted, and the non-harmonic waveform vector data was not pitch-shifted because the type of sound would change greatly when pitch-shifted. That is, the harmonic waveform vector data is read in synchronization with a desired pitch, but the non-harmonic waveform vector data is not read in synchronization with a desired pitch. Therefore, in such a case, there is a possibility that waveform synthesis is performed in a state where a phase shift occurs between the harmonic waveform vector data and the non-harmonic waveform vector data. Further, in the conventional “waveform memory reading” technique, it has not been considered to perform waveform synthesis while phase-synchronizing harmonic waveform vector data and non-harmonic waveform vector data. Therefore, in the past, especially when generating a new waveform by pitch-shifting waveform data, a waveform with timbre degradation or unintended noise is often generated, and various performance methods (or articulations) are generated. There is a problem that it is impossible to generate a high quality waveform with high reproducibility.
[0004]
The present invention has been made in view of the above points, and by synthesizing a waveform of a harmonic waveform and a non-harmonic waveform in a phase-synchronized manner periodically, high quality corresponding to various performance methods (or articulations) is achieved. It is an object of the present invention to provide a waveform generation apparatus and method capable of generating a waveform.
[0005]
[Means for Solving the Problems]
The waveform generation apparatus according to the present invention stores a plurality of waveform data read along the time axis, and has the same phase as other waveform data set corresponding to a predetermined cycle in one waveform data. Storage means for storing a plurality of cycle synchronization points indicating a specific position, reading means for reading at least two waveform data, and When the readout speeds of the at least two waveform data to be read are different, In the reading means, based on the cycle synchronization point in the read waveform data, the read position of the read waveform data is synchronized at least at the specific position for each waveform data indicated by the cycle synchronization point. And control means for controlling how to read at least one of the at least two waveform data.
[0006]
According to the present invention, since a predetermined position having the same phase set in advance as a cycle synchronization point is read out while being periodically synchronized, high quality corresponding to various performance methods (or articulations) can be obtained. Waveform can be generated. The storage means stores a plurality of waveform data read along the time axis, and a specific position having the same phase as that of other waveform data set corresponding to a predetermined cycle in one waveform data. A plurality of cycle synchronization points to be indicated are included and stored. The reading means reads at least two waveform data from the storage means. When reading the at least two waveform data, the control means , When the readout speeds of the at least two waveform data to be read are different, In the reading means, based on the cycle synchronization point in the read waveform data, the read position of the read waveform data is synchronized at least at the specific position for each waveform data indicated by the cycle synchronization point. A method of reading at least one of the at least two waveform data is controlled. As described above, by controlling the reading of at least one of the at least two waveform data to be read according to the cycle synchronization point of the waveform data, each waveform data is read while being phase-synchronized at a specific position. Will be able to. This Even when the readout speeds of at least two waveform data to be read are different, these phases can be appropriately synchronized at a specific position, High quality musical sound waveform can be generated.
[0007]
The present invention may be constructed and implemented not only as an apparatus invention but also as a method invention. Further, the present invention can be implemented in the form of a program of a processor such as a computer or a DSP, or can be implemented in the form of a storage medium storing such a program.
[0008]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below in detail with reference to the accompanying drawings.
[0009]
FIG. 1 is a block diagram showing a hardware configuration example of a waveform generating apparatus according to the present invention. The hardware configuration example shown here is configured by using a computer, and in the waveform generation process, the computer executes a predetermined program (software) for realizing the waveform generation process according to the present invention. Implemented by Of course, this waveform generation processing is not limited to the form of computer software, but can be implemented in the form of a microprogram processed by a DSP (digital signal processor), and is not limited to this form of program. You may implement in the form of the dedicated hardware apparatus comprised including the discrete circuit or the integrated circuit or the large-scale integrated circuit. In addition, this waveform generation device may take any product application form such as an electronic musical instrument, a karaoke device, an electronic game device, other multimedia devices, or a personal computer.
The waveform generation apparatus described above may have hardware other than these, but here, a case where the minimum necessary resources are used will be described.
[0010]
In the hardware configuration example shown in FIG. 1, a read only memory (ROM) 102, a random access memory (through a bus line BL (data or address bus, etc.), a random access memory (a RAM) 103, panel switch 104, panel display 105, drive 106, waveform capture unit 107, waveform output unit 108, hard disk 109, and communication interface 111 are connected to each other. The CPU 101 executes various processes such as a “waveform database creation process” (see FIG. 2 described later) and a “waveform generation process” (see FIGS. 4 and 5 described later) based on a predetermined program. These programs are supplied from a network via the communication interface 111 or an external storage medium 106 A such as a CD or MO attached to the drive 106 and stored in the hard disk 109. Then, it is loaded from the hard disk 109 to the RAM 103 at the time of execution. Alternatively, the program may be recorded in the ROM 102.
[0011]
The ROM 102 stores various programs executed by or referred to by the CPU 101, various data, and the like. The RAM 103 is used as a working memory that temporarily stores various information related to performance and various data generated when the CPU 101 executes the program, or as a memory that stores a program currently being executed and related data. A predetermined address area of the RAM 103 is assigned to each function and used as a register, flag, table, memory, or the like. The panel switch 104 is configured to include various operators for performing an instruction to sample a musical tone, editing sampled waveform data, and inputting various information. For example, a numeric keypad for inputting numeric data, a keyboard for inputting character data, or a panel switch. In addition to these, various operators for selecting, setting, and controlling the pitch, timbre, effect, and the like may be included. The panel display 105 is a display such as a liquid crystal display panel (LCD) or a CRT that displays various information input by the panel switch 104, sampled waveform data, and the like.
[0012]
The waveform capturing unit 107 includes an A / D converter, converts (samples) an analog musical tone signal input from an external waveform (for example, input from a microphone) into digital data, and stores the digital waveform in the RAM 103 or the hard disk 109. Data is taken in as original waveform data (that is, waveform data as a material of a waveform to be generated). In “waveform database creation processing” (see FIG. 2 to be described later) executed by the CPU 101, harmonic waveform data and non-harmonic waveform data generated by separating the acquired original waveform data into components in harmony and non-harmonic are “ Store in "waveform database". In the “waveform generation process” (see FIGS. 4 and 5 to be described later), any musical tone corresponding to performance information is obtained using harmonic waveform data or non-harmonic waveform data appropriately read from the “waveform database”. Generate signal waveform data. Of course, a plurality of musical sound signals can be generated simultaneously. The waveform data of the generated musical sound signal is given to the waveform output unit 108 via the bus line BL, and stored in a buffer as appropriate. The waveform output unit 108 outputs the waveform data stored in the buffer in accordance with a predetermined output sampling frequency, D / A converts this, and sends it to the sound system 108A. Thus, the musical tone signal output from the waveform output unit 108 is sounded via the sound system 108A. The hard disk 109 stores various types of data related to performance such as various data for synthesizing waveform data and waveforms according to the playing style, timbre data composed of various timbre parameters, etc., and various programs executed by the CPU 101. For example, it stores data related to control.
[0013]
The drive 106 stores a plurality of types of data related to performance such as various data for synthesizing waveform data and waveforms according to the playing style, timbre data composed of a variety of timbre parameters, etc., and is executed by the CPU 101. It drives a removable disk (external storage medium 106A) for storing data relating to control such as various programs. The external storage medium 106A driven by the drive 106 is not only a flexible disk (FD) but also a compact disk (CD-ROM / CD-RW), a magneto-optical disk (MO), a DVD (Digital Versatile Disk), or the like. Any medium may be used as long as it uses external storage media in various forms. Alternatively, a semiconductor memory or the like may be used. The external storage medium 106A storing the control program may be set in the drive 106, and the contents (that is, the control program) may be directly loaded into the RAM 103 without being dropped on the hard disk 109. Note that the method of providing the control program using the external storage medium 106A or via the network is advantageous because the control program can be easily added or upgraded.
[0014]
The communication interface 111 is connected to a communication network (not shown) such as a LAN, the Internet, or a telephone line, and is connected to a server computer or the like (not shown) via the communication network. The control program, waveform data, performance information, and the like are taken into the waveform generation device side. That is, when no control program or waveform data is stored in the ROM 102 or the hard disk 109, it is used to download the control program or waveform data from the server computer. The waveform generation device as a client transmits a command requesting download of a control program and waveform data to the server computer via the communication interface 111. Upon receiving this command, the server computer stores the requested control program, waveform data, and the like in the hard disk 109 via the communication interface 111, thereby completing the download. Further, of course, a MIDI interface may be included to receive MIDI performance information. Needless to say, a performance keyboard may be connected to the bus line BL and performance information may be supplied by real-time performance. Furthermore, the performance information may be supplied using the external storage medium 106A that stores the performance information of the desired music.
[0015]
FIG. 2 is a flowchart showing an example of “waveform database creation processing” executed in the waveform generation apparatus described above. In order to cope with various performance methods (or articulations), the processing generates waveform data (that is, vector data) using the waveforms of performance sounds performed with various performance methods (or articulations) as materials. It is processing.
[0016]
In step S1, waveforms according to various performance modes of various natural musical instruments are collected. That is, various actual performance sounds of various natural instruments are captured from an external waveform input (for example, a microphone) via the waveform capturing unit 107, and the original waveforms of those performance sounds are stored in a predetermined area of the hard disk 109. To do. In step S2, the original waveform of the performance sound according to the various performance modes unique to the natural musical instrument obtained in this way is divided into characteristic portions, and is tuned and named. That is, the captured original waveform is converted into a waveform for each section that represents a change in waveform shape (for example, a waveform in an unsteady state section such as an attack part, a release part, or a joint part, or a waveform in a steady state section such as a body part). Separate (1) and determine what pitch each of the separated 1-cycle or multiple-cycle waveforms is, and further modify the pitch as necessary (2) tuning and further separate each A file name is assigned to the waveform ((3) file naming). In step S3, component separation is performed by frequency analysis. That is, the waveform separated for each predetermined section in step S2 is subjected to FFT (Fast Fourier Transform) analysis to separate the harmonic component and the non-harmonic component, and further, the waveform, pitch, and amplitude of each harmonic component and non-harmonic component are separated. Perform feature extraction for each element. Here, the “waveform” (Timbre) element that extracts features only from the waveform shape with normalized pitch and amplitude, the “pitch” (Pitch) element that extracts pitch fluctuation characteristics relative to the reference pitch, and the “amplitude” that extracts amplitude envelope characteristics Extract (Amplitude) element. However, since the out-of-harmonic component does not have a pitch fluctuation characteristic, no “pitch” (Pitch) element is extracted for the out-of-harmonic component.
In this embodiment, the joint portion is a waveform section that connects between sounds (or between sound portions) with an arbitrary performance technique.
[0017]
In step S4, vector data is created. That is, a plurality of sample values are extracted in a distributed manner or continuously as necessary for each component of the waveform, pitch, and amplitude of each separated component (harmonic component, non-harmonic component, etc.), and the sample value sequence Are assigned with different vector IDs (identification information) and stored together with the data of the time position of the sample value (hereinafter, such sample data is referred to as vector data). In this embodiment, harmonic waveform (Timbre) vector data, harmonic pitch (Pitch) vector data, harmonic amplitude (Amplitude) vector data, non-harmonic waveform (Timbre) vector data, and non-harmonic amplitude (Amplitude) vector data are created respectively. The When generating harmonic waveform vector data and non-harmonic waveform vector data, an appropriate position is stored as a cycle synchronization point CSP (Cycle Sync Position) for each waveform period of the harmonic waveform separated by frequency analysis (see step S3). To do. This cycle synchronization point CSP, when synthesizing the harmonic waveform vector data and the non-harmonic waveform vector data, synthesizes the waveform while reading the waveform data so that the reading positions of the waveform data are periodically synchronized at predetermined positions. This is synchronization position information used for this purpose, and specifically stores a predetermined data address or the like. In step S5, the created vector data for each component / element is written and stored in a waveform database configured in the hard disk 109 or the like. In this way, the waveforms of performance sounds of various natural musical instruments in various performance modes are not stored over the entire waveform, but a part of the waveforms necessary for the change of the waveform shape (for example, the attack part waveform, the loop part) Only the waveform, release portion waveform, joint portion waveform, etc.) are extracted, and the waveform is stored in the hard disk 109 in a compressed form by using a hierarchical compression method such as component and element. By doing so, the storage capacity of the hard disk 109 necessary for storing the waveform is reduced.
[0018]
Here, the harmonic waveform vector data and the non-harmonic waveform vector data of the input waveform generated by executing the “waveform database generation process” described above and stored in the waveform database will be described with reference to FIG. FIG. 3 is a conceptual diagram showing an embodiment of harmonic waveform vector data and non-harmonic waveform vector data. FIG. 3 (a) is an attack portion, FIG. 3 (b) is a body portion, and FIG. 3 (c) is a joint. FIG. 3D schematically shows an example of the harmonic waveform vector data and the non-harmonic waveform vector data in the release unit using a waveform envelope. In this embodiment, an example of harmonic waveform vector data is shown in the upper part, and an example of out-of-harmonic waveform vector data corresponding to the harmonic waveform vector data shown in the upper part is shown in the lower part.
[0019]
As shown in FIG. 3A, the harmonic waveform vector data of the attack portion is read repeatedly after the block portion (the portion indicated by hatching in the figure) in which the characteristic waveform shape is continuously stored. It is data composed of a combination with a loop portion (a portion indicated by filling in the drawing). The block portion is a high-quality waveform (that is, a non-loop waveform) having characteristics such as a performance style (or articulation). The harmonic waveform vector data of the body part is data in which one or more loop parts are repeatedly connected as shown in FIG. The harmonic waveform vector data of the joint part is data composed of a combination of a loop part, a block part, and a loop part as shown in FIG. The harmonic waveform vector data of the release part is data consisting of a combination of a loop part and a block part as shown in FIG. Since connection of each waveform, such as an attack part, a body part, a joint part, and a release part, is performed by a loop part, a loop part is disposed before and after the block part. This loop part is a unit waveform (that is, a loop waveform) of a relatively monotonous sound part composed of waveforms for one period or a plurality of suitable periods. By repeatedly reading out such a loop part, the attack part, body part, joint The release part and the release part can be connected in a waveform. Harmonic waveform vector data such as an attack part, a body part, a joint part, and a release part has a predetermined position corresponding to a waveform period (positions indicated by double arrows or dotted lines in each figure of FIG. 3) as a cycle synchronization point CSP (Cycle Store as Sync Position).
[0020]
On the other hand, the non-harmonic waveform vector data respectively corresponding to each harmonic waveform vector data is a predetermined position corresponding to the position of the cycle synchronization point CSP stored in the harmonic waveform vector data (each position indicated by a dotted line in each diagram of FIG. 3). Is stored as a cycle synchronization point CSP. The arrows in both directions shown between the harmonic waveform vector data and the non-harmonic waveform vector data indicate the positions corresponding to each other set as the cycle synchronization point CSP for convenience. As described above, the position of the cycle synchronization point CSP in the harmonic waveform vector data and the non-harmonic waveform vector data is an appropriate position (that is, synchronized) for each waveform period of the harmonic waveform as a result of frequency analysis (see step S3 in FIG. 2). To a desired position, specifically, an appropriate position (hereinafter simply referred to as a time position) at the same time before the components of the waveform are separated. For example, when it is desired to synchronize each waveform vector data at an appropriate position for each waveform cycle unit, the time position for each waveform cycle unit is stored as a cycle synchronization point CSP, and each waveform vector data is stored for each multiple waveform cycle unit. When it is desired to synchronize at an appropriate position, a time position for each of a plurality of waveform periods is stored as a cycle synchronization point CSP. That is, an appropriate position set as the cycle synchronization point CSP may be stored for each unit of n times (n: integer or decimal) of the harmonic waveform as a result of frequency analysis. It is best to remember. In general, the harmonic waveform vector data and the non-harmonic waveform vector data are read according to a predetermined read address. Specifically, the predetermined data address is stored as a cycle synchronization point CSP. However, since the block part generally does not have periodicity, the cycle synchronization point CSP may not be placed in the block part in units of periods.
[0021]
In the waveform generation apparatus shown in FIG. 1 described above, waveform generation is performed by a computer executing a predetermined program (software) that realizes waveform generation processing. Or you may make it implement not only the form of such a program but a waveform generation process with the form of a dedicated hardware apparatus. Therefore, waveform generation processing executed by the waveform generation apparatus according to the present invention will be described with reference to FIGS. FIG. 4 is a block diagram showing an embodiment when the waveform generation processing is configured in the form of a dedicated hardware device. FIG. 5 is a conceptual diagram showing an embodiment of the waveform synthesis unit 101D shown in FIG.
[0022]
First, an outline of the operation of the entire waveform generation process will be briefly described with reference to FIG. The music data playback unit 101A performs playback processing of music data with performance style symbols. That is, first, the music data reproducing unit 101A receives music data with performance style symbols (that is, performance information). In normal music scores, musical symbols such as dynamic symbols (such as crescendo and decrescendo), tempo symbols (such as allegro and ritardando), slur symbols, tenuto symbols, accent symbols, etc. that cannot be converted to MIDI data as they are. Is attached. Therefore, these music symbols are converted into data as “playing style symbols”. The MIDI music data including the “performance style symbols” is “music data with performance style symbols”, and the music data reproducing unit 101A receives such music data with performance style symbols. The score interpretation unit (player) 101B performs score interpretation processing. Specifically, predetermined performance style designation information is generated based on the MIDI data and the “performance style symbol” included in the received music data with performance style symbols, and output to the performance style synthesis unit (articulator) 101C together with time information. The rendition style synthesis unit (articulator) 101C generates a packet stream corresponding to the rendition style specification generated by the score interpretation unit (player) 101B and vector parameters related to the stream, and supplies them to the waveform synthesis unit 101D. Data supplied to the waveform synthesis unit 101D as a packet stream includes a vector ID, time information, an input note number, and the like. The waveform synthesis unit 101D extracts vector data from the waveform database 109 according to the packet stream, deforms the vector data according to the vector parameter, and synthesizes the waveform based on the deformed vector data to generate a musical sound waveform. The waveform output unit 108 outputs the generated musical sound waveform.
[0023]
Next, the waveform synthesis operation executed in the waveform synthesis unit 101D shown in FIG. 4 will be described in detail with reference to FIG.
The rendition style synthesis unit (articulator) 101C inputs a packet to the packet queue buffers 21-25. That is, the packet stream for each component element created by the rendition style synthesis unit (articulator) 101C is sequentially packetized in predetermined packet queue buffers 21 to 25 provided corresponding to each component element in the waveform synthesis unit 101D. Input (that is, input in packets). In addition to inputting packets to the packet queue buffers 21 to 25, the rendition style synthesis unit (articulator) 101C performs stream management (that is, management related to generation and deletion of individual vector data or connection between vector data). And various controls such as reproduction control (that is, execution of desired waveform generation or reproduction / stop of the generated desired waveform) are performed on the waveform synthesis unit 101D. Packets input from the rendition style synthesis unit (articulator) 101C are accumulated in the packet queue buffers 21 to 25 and are sequentially sent to the vector loader 20 in a predetermined order. The vector loader 20 reads the original vector data corresponding to the vector ID from the waveform database 109 with reference to the vector ID in the packet.
[0024]
The vector data read from the waveform database 109 by the vector loader 20 is sent to predetermined vector decoders 31 to 35 provided corresponding to each component element, and each vector decoder 31 to 35 receives each component element. Generate a waveform. That is, the vector decoders 31 to 35 corresponding to each component element read out the vector ID, time information, input note number, etc. in the packet and generate a desired waveform in time series. For example, the harmonic Amp vector decoder 31 generates an envelope waveform of the harmonic component Amplitude element, the harmonic Pitch vector decoder 32 generates an envelope waveform of the harmonic component Pitch element, and the harmonic Timbre vector decoder 33 generates a harmonic component waveform. (Timbre) element waveform, the non-harmonic Amp vector decoder 34 represents the envelope waveform of the non-harmonic component Amplitude element, and the non-harmonic Timbre vector decoder 35 represents the envelope waveform of the non-harmonic component waveform (Timbre) element. Generate. The harmonic Timbre vector decoder 33 generates a harmonic waveform to which the envelope waveform of the harmonic component amplitude element and the harmonic waveform of the harmonic component generated by the harmonic Amp vector decoder 31 and the harmonic pitch vector decoder 32 are added, and the mixer 38. Output to. That is, as a vector control command for gain control (that is, gain input) of the envelope waveform of the harmonic component amplitude element, the vector waveform read position control (that is, Speed) that uses the envelope waveform of the harmonic component pitch element according to the input note number. The harmonic Timbre vector decoder 33, which has been input as vector control commands for input), generates harmonic waveforms by transforming the harmonic waveform vector data read from the waveform database 109 according to these vector control commands. When generating a harmonic waveform according to the read position control of vector data, the read position of the harmonic waveform vector data coincides with a predetermined position (for example, a data address) stored as the cycle synchronization point CSP (or exceeds the predetermined position). The harmonic Timbre vector decoder 33 sends a predetermined signal (CSF (Cycle Sync Flag) in this embodiment) to the non-harmonic Timbre vector decoder 35.
[0025]
Unlike the harmonic waveform, the non-harmonic waveform does not synthesize the waveform in synchronism with the pitch. Therefore, the non-harmonic Timbre vector decoder 35 controls the reading position of vector data according to the input note (for example, note number) (that is, speed input). No vector control instruction is input. Therefore, the non-harmonic Timbre vector decoder 35 receives a predetermined signal (for example, CSF (Cycle Sync Flag)) transmitted from the harmonic Timbre vector decoder 33 according to the cycle synchronization point CSP stored in the harmonic waveform vector data. In this case, the waveform readout position of the out-of-harmonic waveform vector data is jumped to a predetermined position (for example, a data address) set in advance as a cycle synchronization point CSP in the out-of-harmonic waveform vector data. The phases are periodically synchronized. Since detailed description thereof will be described later, description thereof will be omitted here. Further, an out-of-harmonic waveform to which the envelope waveform of the amplitude element of the out-of-harmonic component generated by the out-of-harmonic Amp vector decoder 34 is added is generated and output to the mixer 38. That is, to the non-harmonic Timbre vector decoder 35, only the envelope waveform of the amplitude element of the non-harmonic component is input as a vector control command for performing gain control (that is, gain input). In this way, the out-of-harmonic waveform vector data read from the waveform database 109 is transformed to generate an out-of-harmonic waveform. The harmonic waveform and the non-harmonic waveform generated in this way are synthesized by the mixer 38 to generate a musical sound waveform. That is, the mixer 38 mixes the harmonic waveform generated by the harmonic Timbre vector decoder 33 and the non-harmonic waveform generated by the non-harmonic Timbre vector decoder 35 to generate a musical sound waveform.
[0026]
As described above, when the harmonic waveform is generated according to the pitch control by the vector data read position control, the read position of the harmonic waveform vector data matches the predetermined position (eg, data address) stored as the cycle synchronization point CSP. In this case, the harmonic Timbre vector decoder 33 sends a predetermined signal (for example, CSF (Cycle Sync Flag), etc.) to the non-harmonic Timbre vector decoder 35 so that the harmonic waveform generated by the harmonic Timbre vector decoder 33 is out of harmonic. The phase with the non-harmonic waveform generated by the Timbre vector decoder 35 is read out while being periodically synchronized.
[0027]
Here, with respect to the periodic synchronous readout of the harmonic waveform and the non-harmonic waveform using the cycle synchronization point CSP stored in each of the harmonic waveform vector data and the non-harmonic waveform vector data corresponding to the harmonic waveform vector data, FIG. Will be described. FIG. 6 is a conceptual diagram for explaining periodic synchronous readout of the harmonic waveform and the non-harmonic waveform by the cycle synchronization point CSP. FIG. 6A schematically shows harmonic waveform vector data (hereinafter referred to as harmonic original waveform) read from the waveform database and non-harmonic waveform vector data (hereinafter referred to as non-harmonic original waveform) read from the waveform database. It is the shown waveform diagram. FIG. 6B is a concept for explaining the address progression used when reading the non-harmonic original waveform when the harmonic original waveform is read according to a predetermined pitch (in this embodiment, when the pitch is increased). FIG. 6C is a waveform diagram schematically showing the non-harmonic original waveform read in accordance with the address progression shown in FIG. 6B (that is, the periodic non-harmonic original waveform by the cycle synchronization point CSP). The result of synchronous reading). However, in this embodiment, periodic synchronous readout of harmonic waveform vector data and non-harmonic waveform vector data in a partial section will be described. Further, in this embodiment, for easy understanding of the explanation, the cycle synchronization point CSP0 stored so as to correspond to the waveform 0 (not shown) in the harmonic waveform and the cycle synchronization point CSP0 corresponding to the cycle synchronization point CSP0 are out of harmony. The cycle synchronization point CSP0 ′ stored in the waveform is shown for convenience.
[0028]
As shown in FIG. 6A, in the harmonic original waveform read from the waveform database, a cycle synchronization point CSP is stored at a time position for each predetermined waveform cycle unit (for example, every cycle unit). In the harmonic original waveform shown in this embodiment, eight cycle synchronization points CSPs CSP1 to CSP8 are stored so as to correspond to eight waveforms 1 to 8 divided for each predetermined waveform period unit. ing. In the non-harmonic original waveform corresponding to the harmonic original waveform, a cycle synchronization point CSP is stored for each predetermined position corresponding to the waveform cycle unit. That is, the non-harmonic original waveform shown in this embodiment includes CSP1 'to CSP8' corresponding to the predetermined positions (that is, CSP1 to CSP8) corresponding to the waveform periods of the waveforms 1 to 8 of the harmonic original waveform. Eight cycle synchronization points CSP are stored. Accordingly, the waveform period from waveform 1 to waveform 8 obtained by dividing the harmonic original waveform at the positions of the cycle synchronization points CSP1 to CSP8, and the waveform obtained by dividing the nonharmonic original waveform at the positions of the cycle synchronization points CSP1 'to CSP8', respectively. The waveforms of A to H are divided into the same waveform period units, and the phase of the harmonic original waveform and the non-harmonic original waveform are the same at each cycle synchronization point.
[0029]
When the harmonic Timbre vector decoder 33 reads the harmonic original waveform shown in FIG. 6A according to a predetermined pitch, a waveform diagram as shown in the upper part of FIG. 6B is obtained. In FIG. 6B, the waveform has a shape in which the time width is reduced as compared with FIG. That is, the harmonic original waveform is read with a higher pitch. When the harmonic Timbre vector decoder 33 reads a harmonic original waveform according to a predetermined pitch, when a predetermined position stored in the harmonic original waveform as a cycle synchronization point CSP is read, the harmonic Timbre vector decoder 33 reads the non-harmonic Timbre vector decoder. CSF is sent to 35 (see FIG. 4 above). In this embodiment, CSF (1) corresponding to CSP1 at time t1, CSF (2) corresponding to CSP2 at time t2, CSF (3) corresponding to CSP3 at time t3, and CSP4 at time t4. CSF (4), CSF (5) corresponding to CSP5 at time t5, CSF (6) corresponding to CSP6 at time t6, CSF (7) corresponding to CSP7 at time t7, and CSP8 at time t8 Is sent from the harmonic Timbre vector decoder 33 to the out-of-harmonic Timbre vector decoder 35 at time t9, corresponding to CSP9 (however, omitted in FIG. 6A). .
[0030]
The diagram shown in the lower part of FIG. 6B is a diagram showing a temporal position change of the waveform readout position used when the out-of-harmonic waveform decoder 35 reads out the out-of-harmonic waveform, that is, a diagram showing address progress. In this embodiment, real address progress is indicated by a solid line and virtual address progress is indicated by a dotted line. The real address progression represents a change according to the time progression of the actual read position (address position) used by the non-harmonic Timbre vector decoder 35 to read out the non-harmonic waveform, and the virtual address progression represents the virtual read position (virtual address position). It represents the change according to the time progress. As described above, when receiving the CSF from the harmonic Timbre vector decoder 33, the non-harmonic Timbre vector decoder 35 moves the readout position of the non-harmonic original waveform to the cycle synchronization point CSP immediately before the virtual readout position and reads it. The virtual read position is a read position when reading is virtually continued so as not to be affected by movement of the read position by the cycle synchronization point CSP. However, it is assumed that the progress speed of the virtual address progression shown in this embodiment is the same as that of the non-harmonic original waveform. That is, in this embodiment, the slope of the dotted line indicating the virtual address progress and the slope of the solid line indicating the real address progress in FIG.
[0031]
As can be understood from FIG. 6B, in this embodiment, reading of the non-harmonic original waveform is started at time t0. At time t1, CSF (1) is received according to CSP1 set to the harmonic original waveform. Since the address position immediately before the virtual address position according to the progress of the virtual address at time t1 is CSP0 ′, the real address jumps to the address position CSP0 ′ and reads from the address position CSP0 ′ again. In this case, as shown in FIG. 6C, the waveform is read to the middle of the waveform A in the non-harmonic waveform between time t0 and time t1, but the waveform A is read again from the beginning at time t1. Will do. At time t2, CSF (2) is received according to CSP2 set to the harmonic original waveform. At time t2, since the address position immediately before the virtual address position following the virtual address progression is CSP1 ′, the real address jumps to the address position CSP1 ′ and reads from the address position CSP1 ′. That is, as shown in FIG. 6C, at time t2, reading of waveform A read from time t1 is stopped halfway, and reading of waveform B is started. At time t3, CSF (3) is received according to CSP3 set to the harmonic original waveform, and since the address position immediately before the virtual address position at this time is CSP1 ′, the real address jumps to address position CSP1 ′ and again Reading is performed from the address position CSP1 ′. At time t4, CSF (4) is received according to CSP5 set to the harmonic original waveform, and since the address position immediately before the virtual address position at this time is CSP2 ′, the real address jumps to address position CSP2 ′, and the address Reading is performed from the position CSP2 ′. In this way, during the period from time t2 to time t3 and from time t3 to time t4, part of the waveform B is repeatedly read out. Similarly, at each time after time t5, CSF is sequentially received according to cycle synchronization points CSP5 to CSP8 (CSP9) set in the harmonic original waveform, and the address position of the real address is changed at each time when CSF is received. Continue reading out of non-harmonic waveform.
[0032]
In this way, when the non-harmonic Timbre vector decoder 35 reads out the non-harmonic waveform according to the real address progression shown in FIG. 6B, the non-harmonic waveform is read out in the shape shown in FIG. 6C. . The harmonic waveform shown in FIG. 6 (b) and the out-of-harmonic waveform shown in FIG. 6 (c) are synchronized every predetermined period, that is, every predetermined position where the cycle synchronization point CSP is set. Read out. In addition, at the periodic predetermined positions set as these cycle synchronization points CSP, the phases of the harmonic waveform and the non-harmonic waveform are always the same phase. Therefore, when synthesizing the harmonic waveform and the non-harmonic waveform, a phase shift does not always occur at a predetermined periodic position. In this way, in the waveform generation device shown in this embodiment, the harmonic waveform and the non-harmonic waveform can be synthesized while performing phase synchronization periodically. In particular, when a spike-like waveform appears periodically on the non-harmonic waveform in synchronization with the cycle of the harmonic waveform, the periodic predetermined position where the peak value of the spike-like waveform appears is a cycle synchronization point. If set as CSP, there will be no phase shift between the harmonic waveform and the non-harmonic waveform in the peak value of the spike-like waveform. Since the phase shift, especially at the peak value of such spike-shaped waveforms, is often the biggest cause of sound quality degradation and noise, eliminating the phase shift at the peak value of these spike-shaped waveforms, It is possible to generate a high-quality waveform free from deterioration of sound quality and noise.
[0033]
Note that the progress speed of the virtual address progression used at the time of readout of the non-harmonic waveform shown in FIG. 6B is increased or decreased without using the progression speed corresponding to the pitch of the non-harmonic original waveform as it is. Or you may. In such a case, it is preferable to increase or decrease the traveling speed corresponding to the pitch of the harmonic waveform. Further, it may be realized by using a simple algorithm that jumps to the nearest cycle synchronization point CSPn ′ when a CSF occurs regardless of the virtual address.
It should be noted that the above-described synchronization control of the cyclic readout position between the harmonic waveform and the non-harmonic waveform by the cycle synchronization point CSP is limited to being applied to the case where the readout speed of each vector data changes according to the pitch as described above. Absent. For example, time-stretching of the entire waveform is controlled by TSC control of the attack part, joint part or release part regardless of the pitch, and crossfade synthesis of the loop part connecting the attack part, joint part or release part, etc. It may be applied to those that control the time expansion / contraction of the entire waveform to be generated by controlling the time or adding / deleting the loop part used for connecting the attack part, joint part, release part, etc. Needless to say.
In the above-described embodiment, the position of the cycle synchronization point CSP stored in each of the harmonic waveform vector data and the non-harmonic waveform vector data corresponding to the harmonic waveform vector data is set by the user at an appropriate position for each predetermined period. Needless to say, it may be changed or set.
[0034]
When the waveform generation apparatus as described above is used for an electronic musical instrument, the electronic musical instrument is not limited to a keyboard instrument, and may be any type of form such as a stringed instrument, a wind instrument, or a percussion instrument. In this case, the music data playback unit 101A, the score interpretation unit 101B, the rendition style synthesis unit 101C, the waveform synthesis unit 101D, etc. are not limited to those built in one electronic musical instrument main body, and each is configured separately. Needless to say, the present invention can be similarly applied to a configuration in which each component is connected using communication means such as an interface or various networks. In addition, a configuration of a personal computer and application software may be used. In this case, the processing program may be supplied from a storage medium such as a magnetic disk, an optical disk, or a semiconductor memory, or may be supplied via a network. Furthermore, the present invention may be applied to an automatic performance device such as an automatic performance piano.
[0035]
【The invention's effect】
According to the present invention, the readout positions of the harmonic waveform and the non-harmonic waveform are read out in synchronization with each predetermined position corresponding to a predetermined period, so that the waveform is prevented from causing a phase shift at the readout position. It becomes possible to synthesize. As a result, it is possible to generate a high-quality waveform in consideration of various performance methods (or articulations) without causing timbre deterioration or unintended noise.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a hardware configuration example of a waveform generation apparatus according to the present invention.
FIG. 2 is a flowchart illustrating an example of “waveform database creation processing” executed in the waveform generation apparatus.
FIG. 3 is a conceptual diagram showing an embodiment of harmonic waveform vector data and non-harmonic waveform vector data. FIG. 3 (a) is an attack part, FIG. 3 (b) is a body part, and FIG. FIG. 3 (d) shows an embodiment of the release part.
FIG. 4 is a block diagram showing an embodiment when the waveform generation processing is configured in the form of a dedicated hardware device.
FIG. 5 is a conceptual diagram illustrating an example of a waveform synthesis unit 101D illustrated in FIG.
FIG. 6 is a conceptual diagram for explaining periodic synchronous readout of a harmonic waveform and a non-harmonic waveform by a cycle synchronization point CSP.
[Explanation of symbols]
101 ... CPU, 102 ... Read only memory (ROM), 103 ... Random access memory (RAM), 104 ... Panel switch, 105 ... Panel display, 106 ... Drive, 106A ... External storage medium, 107 ... Waveform capture unit, DESCRIPTION OF SYMBOLS 108 ... Waveform output part, 108A ... Sound system, 109 ... Hard disk, 111 ... Communication interface, BL ... Bus line, 101A ... Song data reproduction part, 101B ... Music score interpretation part, 101C ... Rendition style synthesis part, 101D ... Waveform synthesis part, DESCRIPTION OF SYMBOLS 20 ... Vector loader, 21 (22-25) ... Packet queue buffer, 31 ... Harmonic Amp vector decoder, 32 ... Harmonic pitch vector decoder, 33 ... Harmonic Timbre vector decoder, 34 ... Out of harmonic Amp vector decoder, 35 ... Out of harmonic Timbre Vector decoder, 38 ... mixer

Claims (7)

時間軸に沿って読み出される波形データを複数記憶してなり、かつ、1波形データ内において所定の周期に対応して設定される他の波形データと位相が同一な特定の位置を指示する複数のサイクル同期点を含んで記憶する記憶手段と、
少なくとも2つの波形データを読み出す読出手段と、
前記読み出される少なくとも2つの波形データの読み出し速度が異なる場合に、該読み出される波形データ内のサイクル同期点に基づき、該読み出される波形データの読み出し位置が、前記サイクル同期点によって指示される各波形データ毎の前記特定の位置で少なくとも同期するように、前記読出手段における前記少なくとも2つの波形データのうちの少なくとも一方の波形データの読み出し方を制御する制御手段と
を具える波形生成装置。
A plurality of waveform data read along the time axis are stored, and a plurality of waveform data indicating a specific position having the same phase as other waveform data set corresponding to a predetermined cycle in one waveform data Storage means for storing including cycle synchronization points;
Reading means for reading at least two waveform data;
When the readout speeds of the at least two waveform data to be read are different , each waveform data in which the readout position of the readout waveform data is indicated by the cycle synchronization point based on the cycle synchronization point in the readout waveform data And a control means for controlling a method of reading at least one of the at least two waveform data in the reading means so as to be synchronized at least at the specific position.
前記記憶手段は波形の調和成分に対応する波形データと波形の非調和成分に対応する波形データとを記憶してなり、前記読出手段は少なくとも波形の調和成分に対応する波形データと波形の非調和成分に対応する波形データとを読み出すことを特徴とする請求項1に記載の波形生成装置。The storage means stores waveform data corresponding to the harmonic component of the waveform and waveform data corresponding to the harmonic component of the waveform, and the reading means includes at least the waveform data corresponding to the harmonic component of the waveform and the waveform harmonic. 2. The waveform generation apparatus according to claim 1, wherein waveform data corresponding to the component is read out. 前記記憶手段は、波形の調和成分に対応する波形データに従い決定される波形周期に対応して設定される複数のサイクル同期点を含んで記憶することを特徴とする請求項2に記載の波形生成装置。3. The waveform generation according to claim 2, wherein the storage unit includes a plurality of cycle synchronization points set corresponding to a waveform period determined according to waveform data corresponding to a harmonic component of the waveform. apparatus. 前記制御手段は、前記読み出される少なくとも2つの波形データのうちの少なくとも一方の波形データ内のサイクル同期点に基づいて、該読み出される他方の波形データの読み出し位置を、仮想的に波形データを読み出した場合における仮想読み出し位置直前に設定されているサイクル同期点によって指示される特定の位置にその都度変更しながら読み出すよう前記読出手段を制御することを特徴とする請求項1に記載の波形生成装置。The control means virtually reads the waveform data from the read position of the other waveform data to be read based on a cycle synchronization point in at least one of the at least two waveform data to be read. 2. The waveform generating apparatus according to claim 1, wherein the reading means is controlled to read while changing each time to a specific position indicated by a cycle synchronization point set immediately before the virtual read position in the case. 前記制御手段は、前記読み出される少なくとも2つの波形データのうちの少なくとも一方の波形データ内のサイクル同期点に基づいて、該読み出される他方の波形データの読み出し位置を、直前読み出し位置の最寄りのサイクル同期点によって指示される特定の位置にその都度変更しながら読み出すよう前記読出手段を制御することを特徴とする請求項1に記載の波形生成装置。The control means sets the read position of the other waveform data to be read out based on the cycle synchronization point in at least one of the at least two waveform data to be read out, as a cycle synchronization nearest to the immediately preceding read position. 2. The waveform generating apparatus according to claim 1, wherein the reading means is controlled to read while changing each time to a specific position indicated by a point. 前記所定の周期とは、その波形データの波形1周期の整数倍の周期であることを特徴とする請求項1に記載の波形生成装置。The waveform generation apparatus according to claim 1, wherein the predetermined cycle is a cycle that is an integral multiple of one waveform cycle of the waveform data. 時間軸に沿って読み出される波形データを複数記憶してなり、かつ、1波形データ内において所定の周期に対応して設定される他の波形データと位相が同一な特定の位置を指示する複数のサイクル同期点を含んで記憶する記憶手段から、少なくとも2つの波形データを読み出すステップと、
前記読み出される少なくとも2つの波形データの読み出し速度が異なる場合に、該読み出される波形データ内のサイクル同期点に基づき、該読み出される波形データの読み出し位置が、前記サイクル同期点によって指示される各波形データ毎の前記特定の位置で少なくとも同期するように、前記少なくとも2つの波形データのうちの少なくとも一方の波形データの読み出し方を制御するステップと
を具える波形生成方法。
A plurality of waveform data read along the time axis are stored, and a plurality of waveform data indicating a specific position having the same phase as other waveform data set corresponding to a predetermined cycle in one waveform data Reading at least two waveform data from storage means including a cycle synchronization point; and
When the readout speeds of the at least two waveform data to be read are different , each waveform data in which the readout position of the readout waveform data is indicated by the cycle synchronization point based on the cycle synchronization point in the readout waveform data And a step of controlling a method of reading at least one of the at least two waveform data so as to be synchronized at least at the specific position.
JP2001277994A 2001-09-13 2001-09-13 Waveform generating apparatus and method Expired - Fee Related JP3778036B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2001277994A JP3778036B2 (en) 2001-09-13 2001-09-13 Waveform generating apparatus and method
EP02019896A EP1304680A3 (en) 2001-09-13 2002-09-10 Apparatus and method for synthesizing a plurality of waveforms in synchronized manner
US10/241,679 US20030050781A1 (en) 2001-09-13 2002-09-11 Apparatus and method for synthesizing a plurality of waveforms in synchronized manner
US11/860,464 US7579545B2 (en) 2001-09-13 2007-09-24 Apparatus and method for synthesizing a plurality of waveforms in synchronized manner

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001277994A JP3778036B2 (en) 2001-09-13 2001-09-13 Waveform generating apparatus and method

Publications (2)

Publication Number Publication Date
JP2003084770A JP2003084770A (en) 2003-03-19
JP3778036B2 true JP3778036B2 (en) 2006-05-24

Family

ID=19102435

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001277994A Expired - Fee Related JP3778036B2 (en) 2001-09-13 2001-09-13 Waveform generating apparatus and method

Country Status (1)

Country Link
JP (1) JP3778036B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4561636B2 (en) * 2006-01-10 2010-10-13 ヤマハ株式会社 Musical sound synthesizer and program

Also Published As

Publication number Publication date
JP2003084770A (en) 2003-03-19

Similar Documents

Publication Publication Date Title
US7579545B2 (en) Apparatus and method for synthesizing a plurality of waveforms in synchronized manner
US7259315B2 (en) Waveform production method and apparatus
JP2001100760A (en) Method and device for waveform generation
JP3601371B2 (en) Waveform generation method and apparatus
JP3654079B2 (en) Waveform generation method and apparatus
JP3654083B2 (en) Waveform generation method and apparatus
JP4561636B2 (en) Musical sound synthesizer and program
JP3654080B2 (en) Waveform generation method and apparatus
JP3915807B2 (en) Automatic performance determination device and program
JP3654082B2 (en) Waveform generation method and apparatus
JP3654084B2 (en) Waveform generation method and apparatus
JP3778036B2 (en) Waveform generating apparatus and method
JP2006126710A (en) Playing style determining device and program
JP3630107B2 (en) SOUND DATA TRANSFER METHOD, SOUND DATA TRANSFER DEVICE, AND PROGRAM
JP3829707B2 (en) Waveform generating apparatus and method
JP3933161B2 (en) Waveform generation method and apparatus
JP3630106B2 (en) SOUND DATA TRANSFER METHOD, SOUND DATA TRANSFER DEVICE, AND PROGRAM
JP3933162B2 (en) Waveform generation method and apparatus
JP3674527B2 (en) Waveform generation method and apparatus
JP3804522B2 (en) Waveform compression method and waveform generation method
JP4007374B2 (en) Waveform generation method and apparatus
JP3613191B2 (en) Waveform generation method and apparatus
JP3674526B2 (en) Waveform synthesis method, sound data transfer device, and program
JP3649141B2 (en) SOUND DATA TRANSFER METHOD, SOUND DATA TRANSFER DEVICE, AND PROGRAM
JP3876896B2 (en) Waveform generation method and apparatus

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051101

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060104

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: 20060207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060220

R150 Certificate of patent or registration of utility model

Ref document number: 3778036

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090310

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100310

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110310

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110310

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120310

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130310

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140310

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees