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