(57)【特許請求の範囲】
【請求項１】
時間軸に沿って読み出される波形データを複数記憶してなり、かつ、１波形データ内において所定の周期に対応して設定される他の波形データと位相が同一な特定の位置を指示する複数のサイクル同期点を含んで記憶する記憶手段と、
少なくとも２つの波形データを読み出す読出手段と、
前記読み出される少なくとも２つの波形データの読み出し速度が異なる場合に、該読み出される波形データ内のサイクル同期点に基づき、該読み出される波形データの読み出し位置が、前記サイクル同期点によって指示される各波形データ毎の前記特定の位置で少なくとも同期するように、前記読出手段における前記少なくとも２つの波形データのうちの少なくとも一方の波形データの読み出し方を制御する制御手段と
を具える波形生成装置。
【請求項２】
前記記憶手段は波形の調和成分に対応する波形データと波形の非調和成分に対応する波形データとを記憶してなり、前記読出手段は少なくとも波形の調和成分に対応する波形データと波形の非調和成分に対応する波形データとを読み出すことを特徴とする請求項１に記載の波形生成装置。
【請求項３】
前記記憶手段は、波形の調和成分に対応する波形データに従い決定される波形周期に対応して設定される複数のサイクル同期点を含んで記憶することを特徴とする請求項２に記載の波形生成装置。
【請求項４】
前記制御手段は、前記読み出される少なくとも２つの波形データのうちの少なくとも一方の波形データ内のサイクル同期点に基づいて、該読み出される他方の波形データの読み出し位置を、仮想的に波形データを読み出した場合における仮想読み出し位置直前に設定されているサイクル同期点によって指示される特定の位置にその都度変更しながら読み出すよう前記読出手段を制御することを特徴とする請求項１に記載の波形生成装置。
【請求項５】
前記制御手段は、前記読み出される少なくとも２つの波形データのうちの少なくとも一方の波形データ内のサイクル同期点に基づいて、該読み出される他方の波形データの読み出し位置を、直前読み出し位置の最寄りのサイクル同期点によって指示される特定の位置にその都度変更しながら読み出すよう前記読出手段を制御することを特徴とする請求項１に記載の波形生成装置。
【請求項６】
前記所定の周期とは、その波形データの波形１周期の整数倍の周期であることを特徴とする請求項１に記載の波形生成装置。
【請求項７】
時間軸に沿って読み出される波形データを複数記憶してなり、かつ、１波形データ内において所定の周期に対応して設定される他の波形データと位相が同一な特定の位置を指示する複数のサイクル同期点を含んで記憶する記憶手段から、少なくとも２つの波形データを読み出すステップと、
前記読み出される少なくとも２つの波形データの読み出し速度が異なる場合に、該読み出される波形データ内のサイクル同期点に基づき、該読み出される波形データの読み出し位置が、前記サイクル同期点によって指示される各波形データ毎の前記特定の位置で少なくとも同期するように、前記少なくとも２つの波形データのうちの少なくとも一方の波形データの読み出し方を制御するステップと
を具える波形生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、波形メモリ等からの波形データの読み出し等に基づき、楽音あるいは音声若しくはその他任意の音の波形を生成する方法及び装置に関し、特に、演奏者により行われた自然楽器固有の各種奏法若しくはアーティキュレーションによる音色変化を忠実に表現した波形を生成するものに関する。この発明は、電子楽器は勿論のこと、自動演奏装置、コンピュータ、電子ゲーム装置その他のマルチメディア機器等、楽音あるいは音声若しくはその他任意の音を発生する機能を有するあらゆる分野の機器若しくは装置または方法において広範囲に応用できるものである。なお、この明細書において、楽音波形という場合、音楽的な音の波形に限るものではなく、音声あるいはその他任意の音の波形を含んでいてもよい意味合いで用いるものとする。
【０００２】
【従来の技術】
波形メモリにおいて、ＰＣＭ（パルス符号変調）あるいはＤＰＣＭ（差分ＰＣＭ）又はＡＤＰＣＭ（適応差分ＰＣＭ）等の符号化方式で符号化した波形データ（つまり、ベクトルデータ）を記憶しておき、これを所望のピッチに対応して読み出すことにより、楽音波形を形成するようにした、いわゆる「波形メモリ読み出し」技術は既に公知であり、また、様々なタイプの「波形メモリ読み出し」技術が知られている。従来知られた「波形メモリ読み出し」技術のほとんどは、発音開始から終了までの1つの音の波形を発生するためのものである。一例として、発音開始から終了までの1音の全波形の波形データを記憶する方式がある。また、別の例として、変化の複雑なアタック部やリリース部あるいはジョイント部などの非定常状態区間についてはその全波形の波形データを記憶し、変化のあまりないサステイン部などの定常状態区間については所定のループ波形を記憶する方式がある。なお、本明細書において、「ループ波形」とは繰り返し読出し（つまりループ読出し）される波形という意味で用いるものとする。こうした従来の発音開始から終了までの1音の全波形の波形データを記憶する方式や、アタック部などの波形の一部において全波形の波形データを記憶する方式の「波形メモリ読み出し」技術においては、各種奏法（若しくはアーティキュレーション）に対応する様々な波形データをメモリなどに多数記憶しておかなければならないが、多数の波形データをそのまま普通に記憶したのでは必要なメモリ記憶容量がかなり増大してしまうことになる。そこで、従来では入力波形を周期的波形要素からなる調和成分（若しくは周期性成分とも呼ぶ）と非周期的波形要素からなる調和外成分（若しくは非周期性成分とも呼ぶ）とに分離し、これらの成分毎に分離した波形データを各々データ圧縮して記憶することによって、波形データを記憶するのに必要なメモリ記憶容量を節約するようにしている。また、波形データを各音高（ピッチ）毎に対応するようにして記憶することなく、ある音高に対応する入力波形に基づいて記憶された波形データを複数の音高で共有して用いる（すなわち、ある音高に対応する入力波形に基づき記憶された波形データを所望ピッチにピッチシフトして用いる）ことによっても、波形データを記憶するのに必要なメモリ記憶容量を節約するようにしている。
【０００３】
【発明が解決しようとする課題】
ところで、上述したような調和成分と調和外成分とに分離した波形データを用いて波形合成を行う場合に、調和成分の波形データ（以下、調和波形ベクトルデータと呼ぶ）と調和外成分の波形データ（以下、調和外波形ベクトルデータと呼ぶ）との間に位相ずれが生じた状態で波形合成すると、音色の劣化や意図しないノイズなどの生じた品質の低い波形が生成されることから、このような場合には自然楽器固有の各種奏法（若しくはアーティキュレーション）による音色変化を忠実に表現することができなくなる。例えば、メモリ記憶容量に記憶された波形データをピッチシフトして用いる場合（すなわち、波形データを所望のピッチに対応して読み出す場合）において、従来知られた「波形メモリ読み出し」技術では調和波形ベクトルデータのみをピッチシフトしているだけであって、調和外波形ベクトルデータについてはピッチシフトすると音の種類が大きく変わってしまうことからピッチシフトしていなかった。すなわち、調和波形ベクトルデータは所望のピッチに同期して読みだしされるが、調和外波形ベクトルデータは所望のピッチに同期して読み出しされることがなかった。そのため、こうした場合には調和波形ベクトルデータと調和外波形ベクトルデータとの間に位相ずれが生じた状態で波形合成が行われる可能性がある。また、従来の「波形メモリ読み出し」技術においては、調和波形ベクトルデータと調和外波形ベクトルデータとを位相同期しながら波形合成を行うことが考慮されていなかった。したがって、従来では、特に波形データをピッチシフトして新たな波形を生成する場合などにおいて、音色の劣化や意図しないノイズなどを生じた波形が生成されることが多く、様々な奏法（若しくはアーティキュレーション）に対応する高品質な波形を再現性よく生成することができない、という問題点があった。
【０００４】
本発明は上述の点に鑑みてなされたもので、調和波形と調和外波形とを周期的に位相同期しながら波形合成することによって、様々な奏法（若しくはアーティキュレーション）に対応する高品質な波形を生成することができるようにした波形生成装置及び方法を提供しようとするものである。
【０００５】
【課題を解決するための手段】
本発明に係る波形生成装置は、時間軸に沿って読み出される波形データを複数記憶してなり、かつ、１波形データ内において所定の周期に対応して設定される他の波形データと位相が同一な特定の位置を指示する複数のサイクル同期点を含んで記憶する記憶手段と、少なくとも２つの波形データを読み出す読出手段と、前記読み出される少なくとも２つの波形データの読み出し速度が異なる場合に、該読み出される波形データ内のサイクル同期点に基づき、該読み出される波形データの読み出し位置が、前記サイクル同期点によって指示される各波形データ毎の前記特定の位置で少なくとも同期するように、前記読出手段における前記少なくとも２つの波形データのうちの少なくとも一方の波形データの読み出し方を制御する制御手段とを具えるものである。
【０００６】
この発明によれば、予めサイクル同期点として設定された位相が同一である所定位置を周期的に同期しながら読み出すようにしたことから、様々な奏法（若しくはアーティキュレーション）に対応する高品質な波形を生成することができるようになる。記憶手段は、時間軸に沿って読み出される波形データを複数記憶してなり、かつ、１波形データ内において所定の周期に対応して設定される他の波形データと位相が同一な特定の位置を指示する複数のサイクル同期点を含んで記憶する。読出手段は、前記記憶手段から少なくとも２つの波形データを読み出す。この少なくとも２つの波形データの読み出しの際に、制御手段は、前記読み出される少なくとも２つの波形データの読み出し速度が異なる場合に、該読み出される波形データ内のサイクル同期点に基づき、該読み出される波形データの読み出し位置が、前記サイクル同期点によって指示される各波形データ毎の前記特定の位置で少なくとも同期するように、前記読出手段における前記少なくとも２つの波形データのうちの少なくとも一方の波形データの読み出し方を制御する。このように、読み出す少なくとも２つの波形データのうちの少なくとも一方の波形データの読み出し方を前記波形データのサイクル同期点にあわせて制御することによって、各波形データを特定の位置で位相同期しながら読み出すことができるようになる。これにより、読み出される少なくとも２つの波形データの読み出し速度が異なる場合であっても、これらの位相を特定の位置で適切に同期させることができるものとなり、高品質な楽音波形を生成することができる。
【０００７】
本発明は、装置の発明として構成し実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはＤＳＰ等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【０００８】
【発明の実施の形態】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
【０００９】
図１は、この発明に係る波形生成装置のハードウエア構成例を示すブロック図である。ここに示されたハードウエア構成例はコンピュータを用いて構成されており、そこにおいて、波形生成処理は、コンピュータがこの発明に係る波形生成処理を実現する所定のプログラム（ソフトウエア）を実行することにより実施される。勿論、この波形生成処理はコンピュータソフトウエアの形態に限らず、ＤＳＰ（ディジタル・シグナル・プロセッサ）によって処理されるマイクロプログラムの形態でも実施可能であり、また、この種のプログラムの形態に限らず、ディスクリート回路又は集積回路若しくは大規模集積回路等を含んで構成された専用ハードウエア装置の形態で実施してもよい。また、この波形生成装置は、電子楽器、カラオケ装置もしくは電子ゲーム装置又はその他のマルチメディア機器、もしくはパーソナルコンピュータ等、任意の製品応用形態をとっていてよい。
なお、上記した波形生成装置はこれら以外のハードウェアを有する場合もあるが、ここでは必要最小限の資源を用いた場合について説明する。
【００１０】
図１に示されたハードウエア構成例においては、コンピュータのメイン制御部としてのＣＰＵ１０１に対して、バスラインＢＬ（データあるいはアドレスバス等）を介してリードオンリメモリ（ＲＯＭ）１０２、ランダムアクセスメモリ（ＲＡＭ）１０３、パネルスイッチ１０４、パネル表示器１０５、ドライブ１０６、波形取込部１０７、波形出力部１０８、ハードディスク１０９、通信インタフェース１１１がそれぞれ接続されている。ＣＰＵ１０１は、「波形データベース作成処理」（後述する図２参照）や「波形生成処理」（後述する図４及び図５参照）などの各種処理を所定のプログラムに基づいて実行する。これらのプログラムは、通信インタフェース１１１を介したネットワークあるいはドライブ１０６に装着されたＣＤやＭＯ等の外部記憶メディア１０６Ａ等から供給されてハードディスク１０９に記憶される。そして、実行時にハードディスク１０９からＲＡＭ１０３にロードされる。あるいは、ＲＯＭ１０２にプログラムが記録されていてもよい。
【００１１】
ＲＯＭ１０２は、ＣＰＵ１０１により実行あるいは参照される各種プログラムや各種データ等を格納するものである。ＲＡＭ１０３は、演奏に関する各種情報やＣＰＵ１０１がプログラムを実行する際に発生する各種データを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを記憶するメモリとして使用される。ＲＡＭ１０３の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。パネルスイッチ１０４は、楽音をサンプリングする指示やサンプリングされた波形データ等のエディットや各種情報の入力等を行うための各種の操作子を含んで構成される。例えば、数値データ入力用のテンキーや文字データ入力用のキーボード、あるいはパネルスイッチ等である。この他にも音高、音色、効果等を選択・設定・制御するための各種操作子を含んでいてよい。パネル表示器１０５は、パネルスイッチ１０４により入力された各種情報やサンプリングされた波形データ等を表示する、例えば液晶表示パネル（ＬＣＤ）やＣＲＴ等のディスプレイである。
【００１２】
波形取込部１０７はＡ／Ｄ変換器を内蔵し、外部波形入力（例えば、マイクロフォンなどからの入力）されたアナログ楽音信号をデジタルデータに変換（サンプリング）してＲＡＭ１０３あるいはハードディスク１０９に該デジタル波形データをオリジナルの波形データ（つまり生成すべき波形の素材となる波形データ）として取り込むものである。ＣＰＵ１０１によって実行する「波形データベース作成処理」（後述する図２参照）では、上記取り込んだオリジナルの波形データを調和と調和外とに成分分離して生成した調和波形データと調和外波形データとを「波形データベース」に記憶する。また、「波形生成処理」（後述する図４及び図５参照）では、上記「波形データベース」から適宜に読み出した調和波形データや調和外波形データを使用して、演奏情報に応じた任意の楽音信号の波形データを生成する。勿論、複数の楽音信号の同時発生が可能である。生成された楽音信号の波形データはバスラインＢＬを介して波形出力部１０８に与えられ、適宜バッファ記憶される。波形出力部１０８ではバッファ記憶された波形データを所定の出力サンプリング周波数にしたがって出力し、これをＤ／Ａ変換してサウンドシステム１０８Ａに送出する。こうして、波形出力部１０８から出力された楽音信号は、サウンドシステム１０８Ａを介して発音される。ハードディスク１０９は、波形データや奏法に応じた波形を合成するための各種データ、各種音色パラメータ等からなる音色データなどのような演奏に関する複数種類のデータを記憶したり、前記ＣＰＵ１０１が実行する各種プログラム等の制御に関するデータを記憶したりするものである。
【００１３】
ドライブ１０６は、波形データや奏法に応じた波形を合成するための各種データ、多種多様な音色パラメータ等からなる音色データなどのような演奏に関する複数種類のデータを記憶したり、前記ＣＰＵ１０１が実行する各種プログラム等の制御に関するデータを記憶したりするための着脱可能なディスク（外部記憶メディア１０６Ａ）を駆動するものである。なお、前記ドライブ１０６により駆動される外部記憶メディア１０６Ａはフレキシブルディスク（ＦＤ）の他に、コンパクトディスク（ＣＤ−ＲＯＭ・ＣＤ−ＲＷ）、光磁気ディスク（ＭＯ）、あるいはＤＶＤ（Digital Versatile Disk）等の着脱自在な様々な形態の外部記憶媒体を利用するメディアであればどのようなものであってもよい。若しくは、半導体メモリなどであってもよい。制御プログラムを記憶した外部記憶メディア１０６Ａをドライブ１０６にセットし、その内容（つまり制御プログラム）をハードディスク１０９に落とさずに、ＲＡＭ１０３に直接ロードするようにしてもよい。なお、外部記憶メディア１０６Ａを用いて、あるいはネットワークを介して制御プログラムを提供するやり方は、制御プログラムの追加やバージョンアップ等を容易に行うことができるので好都合である。
【００１４】
通信インタフェース１１１は、例えばＬＡＮやインターネット、電話回線等の通信ネットワーク（図示せず）に接続されており、該通信ネットワークを介して、サーバコンピュータ等（図示せず）と接続され、当該サーバコンピュータ等から制御プログラムや波形データあるいは演奏情報などを波形生成装置側に取り込むためのものである。すなわち、ＲＯＭ１０２やハードディスク１０９に制御プログラムや波形データなどが記憶されていない場合に、サーバコンピュータから制御プログラムや波形データをダウンロードするために用いられる。クライアントとなる波形生成装置は、通信インターフェース１１１を介してサーバコンピュータへと制御プログラムや波形データのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求された制御プログラムや波形データなどを通信インタフェース１１１を介してハードディスク１０９に蓄積することにより、ダウンロードが完了する。更に、ＭＩＤＩインタフェースを含み、ＭＩＤＩの演奏情報を受け取るようにしてもよいのは勿論である。また、音楽演奏用キーボードや演奏操作機器をバスラインＢＬに接続し、リアルタイム演奏によって演奏情報を供給するようにしてもよいのは言うまでもない。さらに、所望の楽曲の演奏情報を記憶した外部記憶メディア１０６Ａを使用して、演奏情報を供給するようにしてもよい。
【００１５】
図２は、上述した波形生成装置において実行される「波形データベース作成処理」の一実施例を示すフローチャートである。当該処理は、いろいろな奏法（若しくはアーティキュレーション）に対応するために、いろいろな奏法（若しくはアーティキュレーション）で演奏された演奏音の波形を素材として波形データ（つまり、ベクトルデータ）を生成する処理である。
【００１６】
ステップＳ１では、様々な自然楽器の様々な演奏態様による波形を収集する。すなわち、様々な自然楽器の様々な実際の演奏音を外部波形入力（例えば、マイクロフォン等）から波形取込部１０７を介して取り込み、それらの演奏音のオリジナル波形をハードディスク１０９の所定のエリアに記憶する。ステップＳ２では、こうして得られた自然楽器固有の様々な演奏態様による演奏音のオリジナル波形を特徴的な部分毎に切り分けて、チューニング及びファイル名付けする。すなわち、取り込んだオリジナル波形を波形形状の変化を代表する区間毎の波形（例えば、アタック部やリリース部あるいはジョイント部などの非定常状態区間の波形、ボディ部などの定常状態区間の波形等）に分離して（▲１▼切り分け）、分離した１周期乃至複数周期の波形がそれぞれいかなるピッチであるかを判定し、さらに必要に応じてピッチを修正し（▲２▼チューニング）、さらにそれぞれ分離した波形に対してファイル名を付与する（▲３▼ファイル名付け）。ステップＳ３では、周波数分析による成分分離を行う。すなわち、ステップＳ２において所定の区間毎に分離された波形をＦＦＴ（高速フーリエ変換）分析して調和成分と調和外成分とに分離し、さらに調和成分と調和外成分毎に波形、ピッチ、振幅の各要素毎の特徴抽出を行う。ここでは、ピッチと振幅をノーマライズした波形形状のみ特徴を抽出した「波形」（Timbre）要素、基準ピッチに対するピッチ変動特性を抽出した「ピッチ」（Pitch）要素、振幅エンベロープ特性を抽出した「振幅」（Amplitude）要素などを抽出する。ただし、調和外成分はピッチ変動特性を持たないものであることから、調和外成分については「ピッチ」（Pitch）要素を抽出しない。
なお、この実施例において、ジョイント部とは音と音の間（又は音部分と音部分の間）を任意の奏法でつなぐ波形区間のことである。
【００１７】
ステップＳ４では、ベクトルデータの作成を行う。すなわち、分離された各成分（調和成分、調和外成分等）の波形やピッチや振幅の各要素毎に複数のサンプル値を分散的に又は必要に応じて連続的に抽出し、当該サンプル値列に対して各々異なったベクトルＩＤ（識別情報）を付与して、サンプル値の時刻位置のデータとともに記憶する（以下、このようなサンプルデータをベクトルデータと呼ぶ）。この実施例では、調和波形（Timbre）ベクトルデータ、調和ピッチ（Pitch）ベクトルデータ、調和振幅（Amplitude）ベクトルデータ、調和外波形（Timbre）ベクトルデータ、調和外振幅（Amplitude）ベクトルデータがそれぞれ作成される。調和波形ベクトルデータと調和外波形ベクトルデータを生成する際には、周波数分析（ステップＳ３参照）により分離された調和波形の波形周期毎に適宜の位置をサイクル同期点ＣＳＰ（Cycle Sync Position）として記憶する。このサイクル同期点ＣＳＰは、調和波形ベクトルデータと調和外波形ベクトルデータとを波形合成する際に、互いの波形データの読み出し位置を所定位置毎に周期的に同期するようにして読み出ししながら波形合成するために用いる同期位置情報であり、具体的には所定のデータアドレスなどを記憶する。ステップＳ５では、作成した各成分・要素毎のベクトルデータをハードディスク１０９などに構成された波形データベースへ書き込んで蓄積していく。このように、様々な自然楽器の様々な演奏態様による演奏音の波形を全波形にわたって記憶しておくのではなく、波形形状の変化に必要な一部の波形（例えば、アタック部波形、ループ部波形、リリース部波形、ジョイント部波形等）のみを抽出し、さらに成分、要素といった階層的な圧縮手法を用いることによってデータ圧縮した形でハードディスク１０９に波形を記憶する。こうすることで、波形を記憶するために必要なハードディスク１０９の記憶容量を削減するようにしている。
【００１８】
ここで、上述した「波形データベース生成処理」の実行により生成され波形データベースに記憶される入力波形の調和波形ベクトルデータと調和外波形ベクトルデータについて、図３を参照しながら説明する。図３は調和波形ベクトルデータと調和外波形ベクトルデータの一実施例を示した概念図であり、図３（ａ）はアタック部、図３（ｂ）はボディ部、図３（ｃ）はジョイント部、図３（ｄ）はリリース部における調和波形ベクトルデータと調和外波形ベクトルデータの一実施例をそれぞれ波形エンベロープを用いて模式的に示したものである。この実施例においては、上段に調和波形ベクトルデータの一例を、下段に上段に示した調和波形ベクトルデータに対応する調和外波形ベクトルデータの一例をそれぞれ示した。
【００１９】
アタック部の調和波形ベクトルデータは、図３（ａ）に示すように特徴ある波形形状が連続的に記憶されているブロック部（図では斜線で示した部分）と、その後に続く繰り返し読み出しすることのできるループ部（図では塗りつぶしで示した部分）との組み合わせからなるデータである。ブロック部は、奏法（若しくはアーティキュレーション）等の特徴を有する高品質な波形（つまりノンループ波形）である。ボディ部の調和波形ベクトルデータは、図３（ｂ）に示すようにループ部を１乃至複数個繰り返し接続したデータである。ジョイント部の調和波形ベクトルデータは、図３（ｃ）に示すようにループ部とブロック部とループ部との組み合わせからなるデータである。リリース部の調和波形ベクトルデータは、図３（ｄ）に示すようにループ部とブロック部との組み合わせからなるデータである。こうしたアタック部、ボディ部、ジョイント部、リリース部などの各波形の接続はループ部により行われるものであるから、ブロック部の前後にはループ部が配置されている。このループ部は１周期または適当な複数周期分の波形からなる比較的単調な音部分の単位波形（つまりループ波形）であり、こうしたループ部を繰り返し読み出しすることによって、アタック部、ボディ部、ジョイント部、リリース部をそれぞれ波形接続できるようになっている。こうしたアタック部、ボディ部、ジョイント部、リリース部などの調和波形ベクトルデータは、波形周期に対応する所定位置（図３の各図において両矢印又は点線で示す各位置）をサイクル同期点ＣＳＰ（Cycle Sync Position）として記憶する。
【００２０】
他方、各調和波形ベクトルデータにそれぞれ対応する調和外波形ベクトルデータは、調和波形ベクトルデータに記憶されたサイクル同期点ＣＳＰの位置に対応する所定位置（図３の各図において点線で示す各位置）をサイクル同期点ＣＳＰとして記憶する。調和波形ベクトルデータと調和外波形ベクトルデータとの間に示した両方向の矢印は、サイクル同期点ＣＳＰとして設定されている互いに対応する位置を便宜的に示したものである。上述したように、調和波形ベクトルデータ及び調和外波形ベクトルデータにおけるサイクル同期点ＣＳＰの位置は、周波数分析（図２のステップＳ３参照）した結果たる調和波形の波形周期毎に適宜の位置（つまり同期したい位置、具体的には波形を成分分離する前の同じ時間にある適宜の位置（以下、単に時間位置と呼ぶ）など）に設定される。例えば、各波形ベクトルデータを１波形周期単位毎の適宜の位置で同期したい場合には１波形周期単位毎の時間位置をサイクル同期点ＣＳＰとして記憶するし、各波形ベクトルデータを複数波形周期単位毎の適宜の位置で同期したい場合には複数波形周期単位毎の時間位置をサイクル同期点ＣＳＰとして記憶する。すなわち、サイクル同期点ＣＳＰとして設定する適宜の位置は周波数分析した結果の調和波形１周期のｎ倍周期（ｎ：整数又は少数）単位毎に記憶すればよいが、１周期単位の適宜の位置に記憶するのが一番よい。一般的に、調和波形ベクトルデータや調和外波形ベクトルデータは所定の読み出しアドレスに従ってデータ読み出しが行われることから、具体的には所定のデータアドレスをサイクル同期点ＣＳＰとして記憶することになる。ただし、ブロック部は一般には周期性がないので、ブロック部には周期単位でサイクル同期点ＣＳＰを置かなくてもよい。
【００２１】
上述の図１に示した波形生成装置において、波形生成はコンピュータが波形生成処理を実現する所定のプログラム（ソフトウエア）を実行することにより実施される。あるいは、こうしたプログラムの形態に限らず、波形生成処理を専用ハードウエア装置の形態で実施するようにしてもよい。そこで、本発明に係る波形生成装置で実行する波形生成処理について、図４及び図５を用いて説明する。図４は、波形生成処理を専用ハードウエア装置の形態で構成した場合の一実施例を示すブロック図である。図５は、図４に示した波形合成部１０１Ｄの一実施例を示す概念図である。
【００２２】
まず、図４を用いて、波形生成処理全体の動作概要について簡単に説明する。曲データ再生部１０１Ａは奏法記号付き曲データの再生処理を行う。すなわち、まず最初に曲データ再生部１０１Ａは奏法記号付き曲データ（つまり演奏情報）を受信する。通常の楽譜においては、そのままではＭＩＤＩデータとすることができないような強弱記号（例えばクレッシェンドやデクレッシェンド等）、テンポ記号（例えばアレグロやリタルダンド等）、スラー記号、テヌート記号、アクセント記号等の音楽記号が付されている。そこで、これらの音楽記号を「奏法記号」としてデータ化する。この「奏法記号」を含むＭＩＤＩ曲データが「奏法記号付き曲データ」であり、曲データ再生部１０１Ａはこのような奏法記号付き曲データを受信する。楽譜解釈部（プレーヤー）１０１Ｂでは、楽譜解釈処理を行う。具体的には、受信した奏法記号付き曲データに含まれるＭＩＤＩデータと「奏法記号」に基づいて所定の奏法指定情報を生成し、時刻情報とともに奏法合成部（アーティキュレーター）１０１Ｃに出力する。奏法合成部（アーティキュレーター）１０１Ｃは楽譜解釈部（プレーヤー）１０１Ｂにより生成された奏法指定に応じたパケットストリーム及び該ストリームに関してのベクトルパラメータを生成し、波形合成部１０１Ｄに供給する。パケットストリームとして波形合成部１０１Ｄに供給されるデータは、ベクトルＩＤ、時刻情報、入力ノートナンバ等である。波形合成部１０１Ｄはパケットストリームに応じて波形データベース１０９からベクトルデータを取り出し、該ベクトルデータをベクトルパラメータに応じて変形し、変形したベクトルデータに基づき波形を合成して楽音波形を生成する。波形出力部１０８では、生成した楽音波形を出力する。
【００２３】
次に、図５を用いて、上述の図４に示した波形合成部１０１Ｄにおいて実行する波形合成動作について詳細に説明する。
奏法合成部（アーティキュレーター）１０１Ｃは、パケットキューバッファ２１〜２５に対してパケットを入力する。すなわち、奏法合成部（アーティキュレーター）１０１Ｃで作成された各成分要素毎のパケットストリームは、波形合成部１０１Ｄにおける各成分要素毎に対応して設けられる所定のパケットキューバッファ２１〜２５に順次にパケット入力（つまり、パケット単位での入力）される。また、奏法合成部（アーティキュレーター）１０１Ｃはパケットキューバッファ２１〜２５に対してパケットを入力する他にも、ストリーム管理（つまり、個々のベクトルデータの生成や削除あるいはベクトルデータ間の接続に関する管理）や再生コントロール（つまり、所望の波形生成の実行あるいは生成された所望の波形の再生／停止などのコントロール）などの各種の制御を波形合成部１０１Ｄに対して実行する。奏法合成部（アーティキュレーター）１０１Ｃから入力されたパケットはパケットキューバッファ２１〜２５に蓄積され、順次所定の順番でベクトルローダ２０に送られる。ベクトルローダ２０ではパケット内のベクトルＩＤを参照して、当該ベクトルＩＤに対応するオリジナルのベクトルデータを波形データベース１０９から読み出す。
【００２４】
ベクトルローダ２０により波形データベース１０９から読出されたベクトルデータは各成分要素毎に対応して設けられた所定のベクトルデコーダ３１〜３５へと送られて、各ベクトルデコーダ３１〜３５は各成分要素毎に波形を生成する。すなわち、各成分要素毎に対応するベクトルデコーダ３１〜３５は、パケット内のベクトルＩＤ、時刻情報、入力ノートナンバ等を読み出して所望の波形の時系列的生成を行う。例えば、調和Ampベクトルデコーダ３１は調和成分の振幅（Amplitude）要素のエンベロープ波形を、調和Pitchベクトルデコーダ３２は調和成分のピッチ（Pitch）要素のエンベロープ波形を、調和Timbreベクトルデコーダ３３は調和成分の波形（Timbre）要素の波形を、調和外Ampベクトルデコーダ３４は調和外成分の振幅（Amplitude）要素のエンベロープ波形を、調和外Timbreベクトルデコーダ３５は調和外成分の波形（Timbre）要素のエンベロープ波形をそれぞれ生成する。調和Timbreベクトルデコーダ３３は、調和Ampベクトルデコーダ３１及び調和Pitchベクトルデコーダ３２で生成された調和成分の振幅要素のエンベロープ波形と調和成分のピッチ要素のエンベロープ波形を付与した調和波形を生成してミキサ３８へ出力する。すなわち、調和成分の振幅要素のエンベロープ波形をゲイン制御（つまり、Gain入力）するためのベクトル制御命令として、調和成分のピッチ要素のエンベロープ波形を入力ノートナンバに従うベクトルデータの読み出し位置制御（つまり、Speed入力）を行うためのベクトル制御命令として、各々入力した調和Timbreベクトルデコーダ３３は、これらのベクトル制御命令に従って波形データベース１０９から読み出した調和波形ベクトルデータを変形して調和波形を生成する。ベクトルデータの読み出し位置制御に従って調和波形を生成する際に、調和波形ベクトルデータの読み出し位置がサイクル同期点ＣＳＰとして記憶された所定位置（例えば、データアドレスなど）に一致した場合（または所定位置を超えた場合に）、調和Timbreベクトルデコーダ３３は調和外Timbreベクトルデコーダ３５に対して所定の信号（この実施例では、ＣＳＦ（Cycle Sync Flag））を送る。
【００２５】
調和波形と異なり調和外波形はピッチに同期して波形を合成しないために、調和外Timbreベクトルデコーダ３５には入力ノート（例えばノートナンバ）に従うベクトルデータの読み出し位置制御（つまり、Speed入力）を行うためのベクトル制御命令を入力しない。そこで、調和外Timbreベクトルデコーダ３５では、調和Timbreベクトルデコーダ３３から調和波形ベクトルデータに記憶されたサイクル同期点ＣＳＰに応じて送信される所定の信号（例えばＣＳＦ（Cycle Sync Flag）など）を受信した場合に、調和外波形ベクトルデータの波形読み出し位置を該調和外波形ベクトルデータに予めサイクル同期点ＣＳＰとして設定された所定位置（例えば、データアドレスなど）にジャンプすることによって、調和波形と調和外波形の位相を周期的に同期するようにしている。これについての詳細な説明については後述することから、ここでの説明を省略する。また、調和外Ampベクトルデコーダ３４で生成された調和外成分の振幅要素のエンベロープ波形を付与した調和外波形を生成してミキサ３８へ出力する。すなわち、調和外Timbreベクトルデコーダ３５に対しては、調和外成分の振幅要素のエンベロープ波形のみをゲイン制御（つまり、Gain入力）を行うためのベクトル制御命令として入力する。こうして、波形データベース１０９から読み出した調和外波形ベクトルデータを変形して調和外波形を生成する。こうして生成された調和波形及び調和外波形をミキサ３８で合成することによって、楽音波形を生成する。すなわち、ミキサ３８は、調和Timbreベクトルデコーダ３３で生成された調和波形と調和外Timbreベクトルデコーダ３５で生成した調和外波形とを混合して楽音波形を生成する。
【００２６】
以上のように、ベクトルデータの読み出し位置制御によるピッチ制御に従って調和波形を生成する際に、調和波形ベクトルデータの読み出し位置がサイクル同期点ＣＳＰとして記憶された所定位置（例えば、データアドレスなど）に一致した場合、調和Timbreベクトルデコーダ３３は調和外Timbreベクトルデコーダ３５に対して所定の信号（例えば、ＣＳＦ（Cycle Sync Flag）など）を送ることにより、調和Timbreベクトルデコーダ３３で生成する調和波形と調和外Timbreベクトルデコーダ３５で生成する調和外波形との位相を周期的に同期しながら読み出すようにしている。
【００２７】
ここで、調和波形ベクトルデータ及び該調和波形ベクトルデータに対応する調和外波形ベクトルデータのそれぞれに記憶したサイクル同期点ＣＳＰを用いての調和波形と調和外波形の周期的な同期読み出しについて、図６を用いて説明する。図６は、サイクル同期点ＣＳＰによる調和波形と調和外波形の周期的な同期読み出しについて説明するための概念図である。図６（ａ）は、波形データベースから読み出した調和波形ベクトルデータ（以下、調和原波形と呼ぶ）及び波形データベースから読み出した調和外波形ベクトルデータ（以下、調和外原波形と呼ぶ）を模式的に示した波形図である。図６（ｂ）は、調和原波形を所定のピッチにあわせて読み出した場合（この実施例では、ピッチを上げた場合）における調和外原波形を読み出す際に用いるアドレス進行について説明するための概念図である。図６（ｃ）は、図６（ｂ）に示したアドレス進行に従って読み出された調和外原波形を模式的に示した波形図（つまり、サイクル同期点ＣＳＰによる調和外原波形の周期的な同期読み出しの結果）である。ただし、この実施例では、一部区間における調和波形ベクトルデータと調和外波形ベクトルデータの周期的な同期読み出しについて説明する。また、この実施例においては説明を理解しやすくするために、調和波形における図示しない波形０に対応するようにして記憶されたサイクル同期点ＣＳＰ０及び該サイクル同期点ＣＳＰ０に対応するようにして調和外波形に記憶されたサイクル同期点ＣＳＰ０´を便宜的に図示した。
【００２８】
図６（ａ）に示すように、波形データベースから読み出した調和原波形には、所定の波形周期単位毎（例えば１周期単位毎）の時間位置にサイクル同期点ＣＳＰが記憶される。この実施例に示す調和原波形には、所定の波形周期単位毎に区切られた８個の波形１〜波形８に対応するようにしてそれぞれＣＳＰ１〜ＣＳＰ８の８個のサイクル同期点ＣＳＰが記憶されている。この調和原波形に対応する調和外原波形には、上記波形周期単位に対応する所定位置毎にサイクル同期点ＣＳＰが記憶される。すなわち、この実施例に示す調和外原波形には、調和原波形の波形１〜波形８の波形周期に対応する所定位置（つまりＣＳＰ１〜ＣＳＰ８）に対応するようにしてそれぞれＣＳＰ１´〜ＣＳＰ８´の８個のサイクル同期点ＣＳＰが記憶される。したがって、調和原波形を各サイクル同期点ＣＳＰ１〜ＣＳＰ８の位置で区切った波形１〜波形８までの波形周期と、調和外原波形を各サイクル同期点ＣＳＰ１´〜ＣＳＰ８´の位置でそれぞれ区切った波形Ａ〜波形Ｈの波形は同一の波形周期単位に区切られたものであり、こうした各サイクル同期点においては調和原波形と調和外原波形の位相は同一である。
【００２９】
調和Timbreベクトルデコーダ３３が図６（ａ）に示した調和原波形を所定のピッチに従い読み出すと、図６（ｂ）の上段に示すような波形図となる。この図６（ｂ）では、図６（ａ）と比較して時間幅が縮小された形状の波形となっている。すなわち、調和原波形をピッチを上げて読み出した場合である。調和Timbreベクトルデコーダ３３が所定のピッチに従って調和原波形を読み出す際に該調和原波形にサイクル同期点ＣＳＰとして記憶された所定位置を読み出した場合には、調和Timbreベクトルデコーダ３３から調和外Timbreベクトルデコーダ３５に対してＣＳＦを送る（上述の図４参照）。この実施例では、時刻ｔ１にＣＳＰ１に対応してＣＳＦ（１）、時刻ｔ２にＣＳＰ２に対応してＣＳＦ（２）、時刻ｔ３にＣＳＰ３に対応してＣＳＦ（３）、時刻ｔ４にＣＳＰ４に対応してＣＳＦ（４）、時刻ｔ５にＣＳＰ５に対応してＣＳＦ（５）、時刻ｔ６にＣＳＰ６に対応してＣＳＦ（６）、時刻ｔ７にＣＳＰ７に対応してＣＳＦ（７）、時刻ｔ８にＣＳＰ８に対応してＣＳＦ（８）、時刻ｔ９にＣＳＰ９（ただし、図６（ａ）では省略）に対応してＣＳＦ（９）を、調和Timbreベクトルデコーダ３３から調和外Timbreベクトルデコーダ３５に対して送る。
【００３０】
図６（ｂ）の下段に示した図は、調和外Timbreベクトルデコーダ３５において調和外波形を読み出す際に用いる波形読み出し位置の時間的位置変化を示す図、つまりアドレス進行を示す図である。この実施例では実アドレス進行を実線で、仮想アドレス進行を点線で示している。実アドレス進行は調和外Timbreベクトルデコーダ３５が調和外波形を読み出すために用いる実際の読み出し位置（アドレス位置）の時間進行に従う変化を表すものであり、仮想アドレス進行は仮想読み出し位置（仮想アドレス位置）の時間進行に従う変化を表すものである。上述したように、調和外Timbreベクトルデコーダ３５は調和Timbreベクトルデコーダ３３からＣＳＦを受け取ると、調和外原波形の読み出し位置を仮想読み出し位置直前のサイクル同期点ＣＳＰへ移動して読み出しする。仮想読み出し位置とは、サイクル同期点ＣＳＰによる読み出し位置の移動の影響を受けないように読み出しを仮想的に続けた場合における読み出し位置である。ただし、この実施例に示した仮想アドレス進行の進行スピードは、調和外原波形と同じ進行スピードであるものとする。すなわち、この実施例においては、図６（ｂ）における仮想アドレス進行を示す点線の傾きと実アドレス進行を示す実線の傾きとは同じ傾きである。
【００３１】
図６（ｂ）から理解できるように、この実施例においては、時刻ｔ０に調和外原波形の読み出しが開始される。時刻ｔ１では、調和原波形に設定されたＣＳＰ１に従ってＣＳＦ（１）を受け取る。この時刻ｔ１における仮想アドレス進行に従う仮想アドレス位置の直前のアドレス位置はＣＳＰ０´であることから、実アドレスはアドレス位置ＣＳＰ０´にジャンプし、再度アドレス位置ＣＳＰ０´から読み出しを行う。この場合には、図６（ｃ）に示すように時刻ｔ０〜時刻ｔ１までの間に調和外波形における波形Ａの途中まで波形を読み出したが、時刻ｔ１の時点で再度波形Ａを最初から読み出しすることになる。時刻ｔ２になると、調和原波形に設定されたＣＳＰ２に従ってＣＳＦ（２）を受け取る。この時刻ｔ２の時点においては、仮想アドレス進行に従う仮想アドレス位置の直前のアドレス位置はＣＳＰ１´であることから、実アドレスはアドレス位置ＣＳＰ１´にジャンプし、アドレス位置ＣＳＰ１´から読み出しを行う。すなわち、図６（ｃ）に示すように時刻ｔ２では時刻ｔ１から読み出した波形Ａの読み出しを途中で止め、波形Ｂの読み出しを開始する。時刻ｔ３では調和原波形に設定されたＣＳＰ３に従ってＣＳＦ（３）を受け取り、この時点における仮想アドレス位置の直前のアドレス位置はＣＳＰ１´であることから、実アドレスはアドレス位置ＣＳＰ１´にジャンプし、再度アドレス位置ＣＳＰ１´から読み出しを行う。時刻ｔ４では調和原波形に設定されたＣＳＰ５に従ってＣＳＦ（４）を受け取り、この時点における仮想アドレス位置の直前のアドレス位置はＣＳＰ２´であることから、実アドレスはアドレス位置ＣＳＰ２´にジャンプし、アドレス位置ＣＳＰ２´から読み出しを行う。このように、時刻ｔ２〜時刻ｔ３、時刻ｔ３〜時刻ｔ４までの間では、波形Ｂの途中までを繰り返し読み出すことになる。同様にして、時刻ｔ５以降の各時刻においても調和原波形に設定されたサイクル同期点ＣＳＰ５〜ＣＳＰ８（ＣＳＰ９）に従ってＣＳＦを順次に受け取り、ＣＳＦを受け取った各時刻毎に実アドレスのアドレス位置を変化させながら調和外波形の読み出しを続ける。
【００３２】
このようにして、調和外Timbreベクトルデコーダ３５が図６（ｂ）に示した実アドレス進行に従って調和外波形を読み出すと、図６（ｃ）に示した形状で調和外波形が読み出されることになる。図６（ｂ）に示した調和波形と図６（ｃ）に示した調和外波形とは、所定の周期毎に、つまりサイクル同期点ＣＳＰが設定された所定の位置毎に同期するようにして読み出しされる。また、これらのサイクル同期点ＣＳＰとして設定された周期的な所定位置においては、調和波形と調和外波形の互いの位相が常に同じ位相である。したがって、調和波形と調和外波形とを波形合成する際において、周期的な所定位置では常に位相ずれが生じていない状態となる。このようにして、この実施例に示す波形生成装置においては、周期的に位相同期を行いながら調和波形と調和外波形とを波形合成することができるようになっている。特に、調和外波形上に調和波形の周期に同期してスパイク状の波形が周期的に現れているような場合に、該スパイク状波形のピーク値などが現れる周期的な所定位置をサイクル同期点ＣＳＰとして設定すれば、こうしたスパイク状波形のピーク値などにおいて調和波形と調和外波形との間で位相ずれが生じることがなくなる。こうしたスパイク形状波形の特にピーク値などでの位相ずれは音質の劣化やノイズなどを引き起こす最も大きな原因となることが多いことから、こうしたスパイク状波形のピーク値などでの位相ずれをなくすことによって、音質の劣化やノイズなどが生じていない品質のよい波形を生成することができるようになる。
【００３３】
なお、上述の図６（ｂ）に示す調和外波形読み出し時に用いる仮想アドレス進行の進行スピードを、調和外原波形のピッチに対応した進行スピードをそのまま用いることなく、進行スピードを速くしたり遅くしたりしてもよい。こうした場合、調和波形のピッチに対応して進行スピードを速くしたり遅くしたりするとよい。さらに、仮想アドレスによらず、ＣＳＦが発生した時点で最寄りのサイクル同期点ＣＳＰｎ´にジャンプする簡易アルゴリズムを用いて実現するようにしてもよい。
なお、上述したサイクル同期点ＣＳＰによる調和波形と調和外波形間における周期的な読み出し位置の同期制御は、上述したようなピッチにより各ベクトルデータの読み出しスピードが変化するものに適用することに限られない。例えば、ピッチによらずアタック部やジョイント部あるいはリリース部などをＴＳＣ制御することによって波形全体の時間伸縮を制御するものや、アタック部やジョイント部あるいはリリース部などを接続するループ部のクロスフェード合成時間を制御したり、あるいはアタック部やジョイント部あるいはリリース部などの接続に用いるループ部を追加・削除することなどによって、生成する波形全体の時間伸縮を制御するものに適用してもよいことは言うまでもない。
なお、上述した実施例においては、調和波形ベクトルデータと該調和波形ベクトルデータに対応する調和外波形ベクトルデータのそれぞれに記憶するサイクル同期点ＣＳＰの位置を、所定の周期毎にユーザが適宜の位置に変更若しくは設定することができるようにしてもよいことは言うまでもない。
【００３４】
なお、上述したような波形生成装置を電子楽器に用いた場合、電子楽器は鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。また、その場合に、曲データ再生部１０１Ａ、楽譜解釈部１０１Ｂ、奏法合成部１０１Ｃ、波形合成部１０１Ｄ等を１つの電子楽器本体内に内蔵したものに限らず、それぞれが別々に構成され、ＭＩＤＩインタフェースや各種ネットワーク等の通信手段を用いて各構成部を接続するように構成されたものにも同様に適用できることはいうまでもない。また、パソコンとアプリケーションソフトウェアという構成であってもよく、この場合処理プログラムを磁気ディスク、光ディスクあるいは半導体メモリ等の記憶メディアから供給したり、ネットワークを介して供給するものであってもよい。さらに、自動演奏ピアノのような自動演奏装置などにも適用してよい。
【００３５】
【発明の効果】
本発明によれば、調和波形と調和外波形の読み出し位置を予め設定された所定の周期に対応する所定位置毎に同期しながら読み出すことによって、該読み出し位置において位相ずれが生じないようにして波形合成することができるようになる。これにより、音色の劣化や意図しないノイズなどを引き起こすことなく、様々な奏法（若しくはアーティキュレーション）を考慮した高品質な波形を生成することができる、という優れた効果を奏する。
【図面の簡単な説明】
【図１】  この発明に係る波形生成装置のハードウエア構成例を示すブロック図である。
【図２】  波形生成装置において実行される「波形データベース作成処理」の一実施例を示すフローチャートである。
【図３】  調和波形ベクトルデータと調和外波形ベクトルデータの一実施例を示した概念図であり、図３（ａ）はアタック部、図３（ｂ）はボディ部、図３（ｃ）はジョイント部、図３（ｄ）はリリース部の一実施例を示した。
【図４】  波形生成処理を専用ハードウエア装置の形態で構成した場合の一実施例を示すブロック図である。
【図５】  図４に示した波形合成部１０１Ｄの一実施例を示す概念図である。
【図６】  サイクル同期点ＣＳＰによる調和波形と調和外波形の周期的な同期読み出しについて説明するための概念図である。
【符号の説明】
１０１…ＣＰＵ、１０２…リードオンリメモリ（ＲＯＭ）、１０３…ランダムアクセスメモリ（ＲＡＭ）、１０４…パネルスイッチ、１０５…パネル表示器、１０６…ドライブ、１０６Ａ…外部記憶メディア、１０７…波形取込部、１０８…波形出力部、１０８Ａ…サウンドシステム、１０９…ハードディスク、１１１…通信インタフェース、ＢＬ…バスライン、１０１Ａ…曲データ再生部、１０１Ｂ…楽譜解釈部、１０１Ｃ…奏法合成部、１０１Ｄ…波形合成部、２０…ベクトルローダ、２１（２２〜２５）…パケットキューバッファ、３１…調和Ampベクトルデコーダ、３２…調和Pitchベクトルデコーダ、３３…調和Timbreベクトルデコーダ、３４…調和外Ampベクトルデコーダ、３５…調和外Timbreベクトルデコーダ、３８…ミキサ
【図１】
0003778036.tif 000002
【図２】
0003778036.tif 000003
【図３】
0003778036.tif 000004
【図４】
0003778036.tif 000005
【図５】
0003778036.tif 000006
【図６】
0003778036.tif 000007