JP3552675B2 - Waveform generation method and apparatus - Google Patents
Waveform generation method and apparatus Download PDFInfo
- Publication number
- JP3552675B2 JP3552675B2 JP2001091186A JP2001091186A JP3552675B2 JP 3552675 B2 JP3552675 B2 JP 3552675B2 JP 2001091186 A JP2001091186 A JP 2001091186A JP 2001091186 A JP2001091186 A JP 2001091186A JP 3552675 B2 JP3552675 B2 JP 3552675B2
- Authority
- JP
- Japan
- Prior art keywords
- rendition style
- data
- waveform
- event
- style
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【0001】
【発明の属する技術分野】
この発明は、波形メモリ等からの波形データの読み出し等に基づき、楽音あるいは音声若しくはその他任意の音の波形を生成する方法及び装置に関し、特に、自然楽器固有の各種奏法若しくはアーティキュレーションによる音色変化を忠実に表現した波形を生成することができるものに関する。この発明は、電子楽器は勿論のこと、自動演奏装置、コンピュータ、電子ゲーム装置その他のマルチメディア機器等、楽音あるいは音声若しくはその他任意の音を発生する機能を有するあらゆる分野の機器若しくは装置または方法において広範囲に応用できるものである。なお、この明細書において、楽音波形という場合、音楽的な音の波形に限るものではなく、音声あるいはその他任意の音の波形を含んでいてもよい意味合いで用いるものとする。
【0002】
【従来の技術】
波形メモリにおいて、PCM(パルス符号変調)あるいはDPCM(差分PCM)又はADPCM(適応差分PCM)等の任意の符号化方式で符号化した波形データ(つまり波形サンプルデータ)を記憶しておき、これを所望の音楽ピッチに対応して読み出すことにより、楽音波形を形成するようにした、いわゆる「波形メモリ読み出し」技術は既に公知であり、また、様々なタイプの「波形メモリ読み出し方式」技術が知られている。従来知られた「波形メモリ読み出し方式」技術のほとんどは、発音開始から終了までの1つの音の波形を発生するためのものである。一例として、発音開始から終了までの1音の全波形の波形データを記憶する方式がある。また、別の例として、変化の複雑なアタック部などについてはその全波形の波形データを記憶し、変化のあまりないサステイン部などについては所定のループ波形を記憶する方式がある。なお、本明細書において、「ループ波形」とは繰り返し読出し(ループ読出し)される波形という意味で用いるものとする。
【0003】
ところで、従来の発音開始から終了までの1音の全波形の波形データを記憶する方式やアタック部などの波形の一部において全波形の波形データを記憶する方式の「波形メモリ読み出し方式」技術においては、各種奏法(若しくはアーティキュレーション)に対応する様々な波形データを多数記憶しておかなければならず、この多数の波形データを記憶するために大きな記憶容量が必要であった。
また、上述の全波形の波形データを記憶する方式では、自然楽器固有の各種奏法(若しくはアーティキュレーション)による音色変化を忠実に表現することが可能であるが、記憶した波形データの通りしか楽音を再生することができないので、制御性に乏しく、また、編集性にも乏しかった。例えば、所望の奏法(若しくはアーティキュレーション)に対応する波形データを演奏データに応じた時間軸制御等の特性制御を行うことが非常に困難であった。
【0004】
【発明が解決しようとする課題】
これらの点に鑑みて、自然楽器固有の各種奏法(すなわちアーティキュレーション)のリアルな再現とその制御を容易にした技術が、SAEM(Sound Articulation Element Modeling)技術と称して、特開2000−122665号公報その他に示されている。そのようなSAEM技術においては、複数の奏法波形モジュールを時系列的に組み合わせて接続することで一連の音波形を作成する場合に、不自然さを伴うことなく奏法波形モジュール同士の接続を行うことが望まれる。
本発明は上述の点に鑑みてなされたもので、様々な奏法(若しくはアーティキュレーション)に対応する高品質な波形データを容易かつ簡便にまた制御性豊かに生成することのできる波形生成方法及び装置を提供しようとするものであり、更には、その場合に、不自然さを伴うことなく奏法モジュール同士の接続を行うことができるようにした波形生成方法及び装置を提供しようとするものである。
【0005】
【課題を解決するための手段】
本発明に係る波形生成方法は、奏法モジュールを指定する奏法イベントデータを時間順に供給するステップと、前記時間順に供給される奏法イベントデータに従って或る時点での奏法イベントデータを処理するとき、それに続く1又は複数のイベントについての奏法イベントデータを先行して取得するステップと、前記或る時点での奏法イベントデータ及び前記先行して取得された奏法イベントデータに基づき、前記奏法イベントデータの少なくともいずれか1つにより指定される奏法モジュールに対応する制御データを生成するステップと、前記制御データに基づき前記或る時点での奏法イベントデータにより指定される奏法モジュールに対応する波形データを合成するステップとを具える。
【0006】
時間順に供給される奏法イベントデータに従って或る時点での奏法イベントデータを処理するとき、それに続く1又は複数のイベントについての奏法イベントデータを先行して取得し、これらの奏法イベントデータに基づき、奏法イベントデータの少なくともいずれか1つにより指定される奏法モジュールに対応する制御データを生成するようにしたので、時間的に相前後する奏法イベントデータに基づく奏法モジュールの相互関係を考慮に入れて、制御データを生成することができる。たとえば、相前後する奏法イベントデータに基づく奏法モジュールに基づく奏法波形同士が円滑に接続されるように制御データに適切な修正を施すことができる。
【0007】
本発明は、方法の発明として構成し実施することができるのみならず、装置の発明として構成し実施することができる。また、本発明は、コンピュータまたはDSP等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【0008】
【発明の実施の形態】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
〔ハードウエア構成例〕
図1は、この発明の一実施例において利用可能な装置のハードウエア構成例を示すブロック図である。ここに示されたハードウエア構成例はコンピュータを用いて構成されており、そこにおいて、波形生成処理は、コンピュータがこの発明に係る波形生成処理を実現する所定のプログラム(ソフトウエア)を実行することにより実施される。勿論、この波形生成処理はコンピュータソフトウエアの形態に限らず、DSP(ディジタル・シグナル・プロセッサ)によって処理されるマイクロプログラムの形態でも実施可能であり、また、この種のプログラムの形態に限らず、ディスクリート回路又は集積回路若しくは大規模集積回路等を含んで構成された専用ハードウエア装置の形態で実施してもよい。また、この波形生成装置は、電子楽器あるいはカラオケ装置又は電子ゲーム装置又はその他のマルチメディア機器又はパーソナルコンピュータ等、任意の製品応用形態をとっていてよい。
【0009】
図1に示されたハードウエア構成例においては、コンピュータのメイン制御部としてのCPU101に対して、バスラインBL(データあるいはアドレスバス等)を介してリードオンリメモリ(ROM)102、ランダムアクセスメモリ(RAM)103、パネルスイッチ104、パネル表示器105、ドライブ106、波形取込部107、波形出力部108、ハードディスク109、通信インタフェース111がそれぞれ接続されている。CPU101は、奏法波形生成処理や通常の楽音合成(ソフトウエア音源)等の各種の処理を、所定のプログラムに基づいて実行する。これらのプログラムは、通信インタフェース111を介したネットワークあるいはドライブ106に装着されたCDやMO等の外部記憶メディア106A等から供給されてハードディスク109に記憶される。そして、実行時にハードディスク109からRAM103にロードされる。あるいは、ROM102にプログラムが記録されていてもよい。ROM102は、CPU101により実行あるいは参照される各種プログラムや各種データ等を格納するものである。ROM103は、演奏に関する各種情報やCPU101がプログラムを実行する際に発生する各種データを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを記憶するメモリとして使用される。RAM103の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。パネルスイッチ104は、各種の演奏条件や波形生成条件等の設定情報を入力したり、波形データ等のエディットや各種情報の入力等を行うための各種の操作子を含んで構成される。例えば、数値データ入力用のテンキーや文字データ入力用のキーボード、あるいはパネルスイッチ等である。この他にも音高、音色、効果等を選択・設定・制御するための各種操作子を含んでいてよい。パネル表示器105は、パネルスイッチ104により入力された各種情報やサンプリングされた波形データ等を表示する、例えば液晶表示パネル(LCD)やCRT等のディスプレイである。
【0010】
波形取込部107はA/D変換器を内蔵し、外部波形入力(例えば、マイクロフォンなどからの入力)されたアナログ楽音信号をデジタルデータに変換(サンプリング)してRAM103あるいはハードディスク109に該デジタル波形データとして取り込むものである。取り込んだ波形データを基にして奏法波形データベースの作成を行うことができるが、その詳細説明は省略する。また、CPU101による波形生成処理によって生成された波形データはバスラインBLを介して波形出力部108に与えられ、適宜バッファ記憶される。波形出力部108ではバッファ記憶された波形データを所定の出力サンプリング周波数にしたがって出力し、これをD/A変換してサウンドシステム108Aに送出する。こうして、波形出力部108から出力された楽音信号は、サウンドシステム108Aを介して発音される。ハードディスク109は、奏法に応じた波形を合成するためのデータ(後述する奏法テーブル、コードブック等のデータ)や通常の波形データ、各種音色パラメータ等からなる音色データなどのような演奏に関する複数種類のデータを記憶したり、前記CPU101が実行する各種プログラム等の制御に関するデータを記憶するデータベースとして機能する。
【0011】
ドライブ106は、奏法に応じた波形を合成するためのデータ(後述する奏法テーブル、コードブック等の各種データ)や通常の波形データ、多種多様な音色パラメータ等からなる音色データなどのような演奏に関する複数種類のデータを記憶したり、前記CPU101が実行する各種プログラム等の制御に関するデータを記憶したりするための着脱可能なディスク(外部記憶メディア106A)をドライブするものである。なお、前記ドライブ106によりドライブされる外部記憶メディア106Aはフロッピーディスク(FD)の他に、コンパクトディスク(CD−ROM・CD−RAM)、光磁気ディスク(MO)、あるいはDVD(Digital Versatile Diskの略)等の着脱自在な様々な形態の記憶メディアであってよい。制御プログラムを記憶した外部記憶メディア106Aをドライブ106にセットし、その内容(制御プログラム)をハードディスク109に落とさずに、RAM103に直接ロードしてもよい。なお、外部記憶メディア106Aを用いて、あるいはネットワークを介して制御プログラムを提供するやり方は、制御プログラムの追加やバージョンアップ等を容易に行うことができるので好都合である。
【0012】
通信インタフェース111は、例えばLANやインターネット、電話回線等の通信ネットワーク(図示せず)に接続されており、該通信ネットワークを介して、サーバコンピュータ等(図示せず)と接続され、当該サーバコンピュータ等から制御プログラムや各種データあるいは演奏情報などを波形生成装置側に取り込むためのものである。すなわち、ROM102やハードディスク109に制御プログラムや各種データが記憶されていない場合に、サーバコンピュータから制御プログラムや各種データをダウンロードするために用いられる。クライアントとなる波形生成装置は、通信インターフェース111を介してサーバコンピュータへと制御プログラムや各種データのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求された制御プログラムやデータなどを通信インタフェース111を介してハードディスク109に蓄積することにより、ダウンロードが完了する。更に、MIDIインタフェースを含み、MIDIの演奏情報を受け取るようにしてもよいのは勿論である。また、音楽演奏用キーボードや演奏操作機器をバスラインBLに接続し、リアルタイム演奏によって演奏情報を供給するようにしてもよいのは言うまでもない。勿論、所望の音楽曲の演奏情報を記憶した外部記憶メディア106Aを使用して、演奏情報を供給するようにしてもよい。
【0013】
〔奏法モジュールの概略説明〕
上述のハードディスク109あるいはその他適宜の記憶媒体を用いて構成される奏法波形データベースにおいては、種々の奏法(すなわちアーティキュレーション)の要素に対応する波形を再生するための多数のモジュールデータ(これを「奏法モジュール」という)とそれに関連するデータ群を記憶している。1つの「奏法モジュール」とは、奏法波形合成システムにおいて1つのかたまりとして処理できる奏法波形の単位である。別の言い方をすると、「奏法モジュール」とは、1つのイベントとして処理できる奏法波形の単位である。例えば、種々有る奏法モジュールの中には、演奏音の奏法的特徴に応じて、アタックやボディあるいはリリース等の音の部分的区間に対応して定義されているものもあれば、また、スラーのような音と音のつなぎの区間(ジョイント部)に対応して定義されているものもあり、ビブラートのような音の特殊演奏部分に対応して定義されているものもある。また、フレーズのように複数音符に対応して定義されているものがあってもよい。
【0014】
奏法モジュールは、奏法の特徴若しくは演奏の時間的部位又は区間等に基づき、大きくいくつかの種類に分類することができる。その例を示すと、次の5種類を挙げることができる。
1)「ノーマル・エントランス」(略称NE): (無音状態からの)音の立ち上がり部分(つまり「アタック」部分)を受け持つ奏法モジュール。
2)「ノーマル・フィニッシュ」(略称NF): (無音状態への)音の立ち下がり部分(つまり「リリース」部分)を受け持つ奏法モジュール。
3)「ノーマル・ジョイント」(略称NJ): 2つの音を(無音状態を経由せずに)接続する部分(つまり「ジョイント」部分)を受け持つ奏法モジュール。
4)「ノーマル・ショート・ボディ」(略称NSB): ビブラートのかからない、音の立ち上がり以降から立ち下がり以前までの部分(つまり「ボディ」部分)の短い部分を受け持つ奏法モジュール。
5)「ビブラート・ロング・ボディ」(略称VLB): ビブラートのかかった、音の立ち上がり以降から立ち下がり以前までの部分(つまり「ボディ」部分)を受け持つ奏法モジュール。
上記5種類の分類法は、明細書での説明のための一例にすぎず、他の分類法を採用してもよいし、更に多くの種類が存在してよい。また、奏法モジュールは、楽器種類等のオリジナル音源別にも分類されるのは勿論である。
【0015】
この実施例において、1つの奏法モジュールに対応する1つの奏法波形のデータは、そのままデータベースに記憶されているのではなく、複数の波形構成要素の集合からなるものとしてデータベースに記憶されている。この波形構成要素を、以下、「ベクトル」という。1つの奏法モジュールに対応するベクトルの種類には一例として下記のようなものがある。なお、調和成分及び調和外成分とは、対象たるオリジナル奏法波形をピッチ調和成分からなる波形ととそれ以外の残りの波形成分とに分離することで定義されるものである。
1)調和成分の波形(Timbre)ベクトル: 調和成分の波形構成要素のうち、ピッチと振幅をノーマライズした波形形状のみの特徴を抽出したもの。
2)調和成分の振幅(Amplitude)ベクトル: 調和成分の波形構成要素のうち、振幅エンベロープ特性を抽出したもの。
3)調和成分のピッチ(Pitch)ベクトル: 調和成分の波形構成要素のうち、ピッチ特性を抽出したもの(例えば或る基準ピッチを基準にした時間的ピッチ変動特性を示すもの)。
4)調和外成分の波形(Timbre)ベクトル: 調和外成分の波形構成要素のうち、振幅をノーマライズした波形形状(ノイズ的波形)のみの特徴を抽出したもの。
5)調和外成分の振幅(Amplitude)ベクトル: 調和外成分の波形構成要素のうち、振幅エンベロープ特性を抽出したもの。
上記のほかに、更に別の種類のベクトル(例えば波形の時間軸の進行を示す時間ベクトル)が含まれていてもよいが、便宜上、本実施例ではその説明を省略する。
【0016】
なお、奏法波形の合成に際しては、これらのベクトルデータに対して制御データに応じた加工処理を適宜施して時間軸上に配置することで、奏法波形の各構成要素に対応する波形若しくはエンベロープを演奏音の再生時間軸に沿ってそれぞれ構築し、このようにして時間軸上に配置された各ベクトルデータに基づいて所定の波形合成処理を行うことで、奏法波形を生成する。例えば、調和波形ベクトルに調和ピッチベクトルに応じたピッチ及びその時間変化特性を付与すると共に調和振幅ベクトルに応じた振幅及びその時間変化特性を付与することで調和成分の波形を合成し、調和外波形ベクトルに調和外振幅ベクトルに応じた振幅及びその時間変化特性を付与することで調和外成分の波形を合成し、調和成分の波形と調和外成分の波形とを加算合成することで、最終的な所定の奏法的特徴を示す演奏音波形つまり奏法波形を生成することができる。
【0017】
奏法モジュールのデータ形式の一例について図2を参照して説明する。一例として、1つの奏法モジュールは図2に示したような階層的なデータ構造によって特定される。第1階層では、1つの奏法モジュールは「奏法ID」(奏法識別情報)と「奏法パラメータ」の組み合わせによって特定される。「奏法ID」は、当該奏法モジュールを識別する情報であり、これによって個々の奏法モジュールを特定するものであり、データベースから必要なベクトルデータを読み出すための情報の1つとして機能しうる。「奏法ID」は、例えば「楽器情報」と「モジュールパーツ名」との組み合わせで分類されることが可能である。楽器情報とは、当該奏法モジュールが適用される楽器名(バイオリン、あるいはアルト・サックス、あるいはピアノなど)を示す情報である。「モジュールパーツ名」とは、当該奏法モジュールの種類をその性格と共に示す情報(例えば「ノーマル・エントランス」や「ベンド・エントランス」など)である。このような「楽器情報」と「モジュールパーツ名」の情報を、「奏法ID」の情報の中に含んでいてもよい。あるいは、「奏法ID」に付加してこれらの「楽器情報」と「モジュールパーツ名」の情報を持たせるようにし、或る「奏法ID」がどのような性格の奏法モジュールに関わるものであるかを、これらの「楽器情報」と「モジュールパーツ名」の情報からユーザが知得できるようにしてもよい。
【0018】
「奏法パラメータ」は、当該奏法モジュールに係る波形の時間やレベルなどを制御するためのパラメータである。「奏法パラメータ」には、各奏法モジュールの性格に応じて適宜異なる1又は複数種類のパラメータが含まれていてよい。例えば、Violin [NormalEntrance] という楽器情報とモジュールパーツ名との組み合わせで特定可能な所定モジュールの場合には、Entrance直後の絶対音高やEntrance直後の音量などの種類の奏法パラメータが含まれていてよいし、Violin [BendUpEntrance] という楽器情報とモジュールパーツ名との組み合わせで特定可能な別の所定モジュールの場合には、BendUpEntrance終了時の絶対音高、BendUpEntrance時のBend深さの初期値、BendUpEntrance開始(ノートオンタイミング)〜終了までの時間、Entrance直後の音量、あるいはBendUpEntrance中のデフォルトのカーブの時間的な伸縮などの種類の奏法パラメータが含まれていてよい。また、Violin [NormalShortBody] という楽器情報とモジュールパーツ名との組み合わせで特定可能な更に別の所定モジュールの場合には、当該モジュールの絶対音高、NormalShortBodyの終了時刻−開始時刻、NormalShortBody開始時のダイナミクス、NormalShortBody終了時のダイナミクスなどの種類の奏法パラメータが含まれていてよい。この「奏法パラメータ」は、奏法IDと共にメモリ等によって予め記憶されていてもよいし、あるいはユーザの入力操作によって入力するようにしたり、あるいは既存のパラメータをはユーザの操作によって適宜変更できるようになっていたりしてもよい。また、奏法波形の再生に際して、奏法IDのみが与えられ、奏法パラメータが与えられなかったような場合には、当該奏法IDにとって標準的な奏法パラメータを自動的に付加するようにしてもよい。また、処理の過程で、適宜のパラメータが自動的に生成されて付加されるようになっていてもよい。
【0019】
第2階層のデータは、奏法IDによって特定されるベクトルID等のデータからなる。奏法波形のデータベースにおいて「奏法テーブル」と称するテーブル若しくはメモリ部が含まれており、この奏法テーブルにおいて、各奏法IDに対応して、当該奏法IDに関わる奏法モジュールを構成するための複数の波形構成要素つまり上述の各ベクトルの識別情報(つまりベクトルID)が記憶されている。つまり、奏法IDに応じて奏法テーブルを読み出すことにより、これらのベクトルID等のデータを取得することができる。なお、奏法テーブルに記憶されている第2階層のデータは、上記ベクトルIDのデータに限らず、他の必要なデータが含まれていてよい。例えば、代表点値列データ(複数サンプル列の中の補正のための代表的サンプル点を指示するデータ)が含まれていてもよい。例えば、振幅ベクトルやピッチベクトルのようなエンベロープ波形形状のデータは、いくつかの代表点値のデータを持っていれば、その形状を再現可能であるので、エンベロープ波形形状のデータをテンプレートとしてそっくり記憶しておくことなく、代表点値列データとして記憶していればよい。以下、代表点値列データを「シェープ」(Shape)データともいう。更には、各成分要素毎のベクトルデータ(波形要素、ピッチ要素(ピッチエンベロープ)、振幅要素(振幅エンベロープ))の開始時間位置や終了時間位置などの情報等を奏法テーブルに記憶していてもよい。あるいは、これらの時間位置等のデータの全部又は一部は、前記「奏法パラメータ」に含まれていてもよい。換言すれば、「奏法パラメータ」の一部がベクトルIDと共に奏法テーブルに記憶されていてもよい。
【0020】
第3階層のデータは、各ベクトルIDによって特定される個々のベクトルデータからなる。奏法波形のデータベースにおいて「コードブック」と称するメモリ部が含まれており、このコードブックにおいて、各ベクトルIDに対応して、当該ベクトルIDに関わる具体的なベクトルデータ(例えばTimbre波形のテンプレートなど)が記憶されている。つまり、ベクトルIDに応じて「コードブック」から具体的なベクトルデータを読み出すことができる。
【0021】
奏法テーブルに記憶される「ベクトルID」及び「shape」(代表点値列)等のデータを含む、1つの奏法モジュールのための、具体的な各種データの一例を説明すると、次の通りである。
データ1:奏法モジュールのサンプル長。
データ2:ノートオンタイミングの位置。
データ3:調和成分の振幅(Amplitude)要素のベクトルIDと代表点値列。
データ4:調和成分のピッチ(Pitch)要素のベクトルIDと代表点値列。
データ5:調和成分の波形(Timbre)要素のベクトルID。
データ6:調和外成分の振幅(Amplitude)要素のベクトルIDと代表点値列。 データ7:調和外成分の波形(Timbre)要素のベクトルID。
データ8:調和成分の波形(Timbre)要素の塊部の開始位置。
データ9:調和成分の波形(Timbre)要素の塊部の終了位置(調和成分の波形(Timbre)要素のループ部の開始位置)。
データ10:調和外成分の波形(Timbre)要素の塊部の開始位置。
データ11:調和外成分の波形(Timbre)要素の塊部の終了位置(調和外成分の波形(Timbre)要素のループ部の開始位置)。
データ12:調和外成分の波形(Timbre)要素のループ部の終了位置。
【0022】
上記データ1〜12について、図3を参照して説明する。
図3は、当該奏法モジュールに対応する実波形区間を構成する各成分及び要素の一例を模式的に示す図であり、上から当該区間における調和成分の振幅(Amplitude)要素、調和成分のピッチ(Pitch)要素、調和成分の波形(Timbre)要素、調和外成分の振幅(Amplitude)要素、調和外成分の波形(Timbre)要素の一例を示す。なお、図に示している数字は上記各データの番号に対応するように付してある。
【0023】
1は、当該奏法モジュールに該当する波形のサンプル長(波形区間長)である。例えば、当該奏法モジュールの基となったオリジナル波形データの全体の時間長さに対応している。2はノートオンタイミングの位置であり、当該奏法モジュールのどの時間位置にも可変に設定することが可能である。原則的には、このノートオンタイミングの位置から当該波形に従った演奏音の発音が開始されるが、ベンドアタックなどの奏法によってはノートオンタイミングよりも波形成分の立ち上がり開始時点が先行する場合がある。例えば、バイオリンでは実際に音が出る前から弓による弦の擦りが始められているので、そのような発音開始前の奏法波形の出始めを正確にシミュレートすることに適している。3は、コードブックに記憶された調和成分の振幅(Amplitude)要素のベクトルデータを指し示すためのベクトルID及び代表点値列を示す(図において、黒く塗りつぶした正方形で示す2点が代表点を示す)。4は、調和成分のピッチ(Pitch)要素のベクトルデータを指し示すためのベクトルID及び代表点値列を示す。
【0024】
6は、調和外成分の振幅(Amplitude)要素のベクトルデータを指し示すためのベクトルID及び代表点値列を示す。代表点値列データはベクトルIDによって指示されるベクトルデータ(複数サンプル列からなる)を変更制御するためのデータであり、代表的サンプル点のいくつかを指示(特定)するものである。特定された代表的サンプル点に関してその時間位置(横軸)とレベル軸(縦軸)を変更若しくは補正することにより、他の残りのサンプル点も連動して変更し、もってベクトルの形状を変更する。例えば、そのサンプル数より少ない数の分散的サンプルを示すデータであるが、勿論これに限らず、代表点値列データはサンプルとサンプルの間の中間位置のデータであってもよいし、あるいは所定の範囲(連続的な複数サンプル)にわたるデータであってもよい。また、サンプル値そのものでなく、差分や乗数等のデータであってもよい。この代表点を横軸及び/又は縦軸(時間軸)に移動することによって、各ベクトルデータの形状を変えることができる。つまり、エンベロープ波形の形状を変えることができる。5は、調和成分の波形(Timbre)要素のベクトルデータを指し示すためのベクトルIDである。7は、調和外成分の波形(Timbre)要素のベクトルデータを指し示すためのベクトルIDである。8は、調和成分の波形(Timbre)要素の波形の塊部の開始位置である。9は、調和成分の波形(Timbre)要素の波形の塊部の終了位置(あるいは、調和成分の波形(Timbre)要素の波形のループ部の開始位置)である。すなわち、8から開始する三角形は特徴のある波形形状が連続的に記憶されているノンループ波形の部分を示し、その後に続く9から開始する長方形は繰り返し読み出しすることのできるループ波形の部分を示す。ノンループ波形は、奏法(若しくはアーティキュレーション)等の特徴を有する高品質な波形である。ループ波形は、1周期または適当な複数周期分の波形からなる比較的単調な音部分の単位波形である。
【0025】
10は、調和外成分の波形(Timbre)要素の波形の塊部の開始位置である。11は、調和外成分の波形(Timbre)要素の波形の塊部の終了位置(あるいは、調和外成分の波形(Timbre)要素の波形のループ部の開始位置)である。12は、調和外成分の波形(Timbre)要素の波形のループ部の終了位置である。上記データ3〜データ7は各成分要素毎にコードブックに記憶されているベクトルデータを指し示すための識別情報のデータであり、上記データ2及びデータ8〜データ12はベクトルデータから元の(分離前の)波形を組み立てるための時間情報のデータである。このように、奏法モジュールのデータはベクトルデータを指し示すためのデータと時間情報のデータとから構成される。このような奏法テーブルに記憶されている奏法モジュールのデータを使用することにより、コードブックに記憶されている波形の素材(ベクトルデータ)を使って、波形を自由に組み立てることができることになる。つまり、奏法モジュールは、奏法(若しくはアーティキュレーション)に応じて生成する波形の挙動を表すデータである。なお、奏法モジュールのデータの種類や数は各奏法モジュール毎に異なっていてよい。また、上述したデータ以外にも他の情報等を具えていてよい。例えば、波形の時間軸を伸長/圧縮制御するためのデータなどを持っていてもよい。
【0026】
また、上述の例では説明を理解しやすくするために、1つの奏法モジュールが調和成分の各要素(波形、ピッチ、振幅)及び調和外成分の各要素(波形、振幅)の全てを具備している例について説明したが、これに限らず、奏法モジュールが調和成分の各要素(波形、ピッチ、振幅)や調和外成分の各要素(波形、振幅)の1つからなっていてもよいのは勿論である。例えば、奏法モジュールが調和成分の波形(Timbre)要素、調和成分のピッチ(Pitch)要素、調和成分の振幅(Amplitude)要素、調和外成分の波形(Timbre)要素、調和外成分の振幅(Amplitude)要素のいずれか1つの要素からなっていてもよい。こうすると、各成分毎に奏法モジュールを自由に組み合わせて使用することができることになり好ましい。
【0027】
〔演奏データの一例の説明〕
この実施例においては、所望の曲の自動演奏データ(曲ファイル)の中に奏法波形を再生するための演奏イベントデータが含まれており、自動演奏シーケンスの進行に伴って読み出される演奏イベントデータに基づき奏法波形が生成される。自動演奏データ(曲ファイル)は、基本的に、SMF(スタンダードMIDIファィル)形式からなり、通常のMIDIデータとAEM(アーティキュレーション・エレメント・モデリング)演奏イベントデータ(換言すれば奏法イベントデータ)とが混在する演奏データからなる。例えば、1つの曲の自動演奏データが複数トラックの演奏データからなり、そのうちの1又は複数トラックがAEM演奏イベント(奏法イベント)を含むAEM演奏シーケンスのトラックであり、他のトラックが通常のMIDI演奏シーケンスのトラックである。また、1トラック内でMIDIデータとAEM演奏イベント(奏法イベント)データとが混在していてもよい。その場合は、AEM演奏イベント(奏法イベント)データは、基本的にMIDIフォーマットで記述され、MIDIチャンネルのいずれか1又は複数がAEM演奏データのために割り当てられる。また、1トラック全体がAEM演奏データのために割り当てられている場合でも、データは基本的にはMIDIDフォーマットで記述されていてよい。つまり、MIDIフォーマットの中で、AEM演奏イベント(奏法イベント)であることを示す識別子を付加しておけばよい。勿論、MIDI以外のデータフォーマットを使用してもよい。各トラックの演奏データは別々の演奏パートの演奏データを構成する。また、1つのトラックの演奏データ内に複数のMIDIチャンネルの演奏データが混在しうるので、1トラックの演奏データにおいても各MIDIチャンネル毎に別々の演奏パートの演奏データを構成しうる。例えば、或る1又は複数の演奏パートの演奏音が、AEM演奏データに基づく奏法波形合成によって、再生される。例えば、バイオリンのパートと、ピアノのパート、というように、複数の演奏パートでそれぞれAEM演奏データに基づく奏法波形合成を行うことができる。
【0028】
図4(a)は、1つの曲の自動演奏データの全体的構成例を示し、ヘッダと各トラック1,2,3,……毎の演奏データ列からなる。図4(b)は、AEM演奏データを含むトラック(例えばトラック2)における演奏データ列の一例を示す。この演奏データ列の構成は、通常の演奏シーケンスデータにおいてよく知られているように、時間差データ(デュレーションデータ)とイベントデータとからなり、時間順にイベントデータを配列してなるものである。公知のように、時間差データ(デュレーションデータ)は、前のイベント時点から次のイベント時点までの時間差を示している。
1つの奏法イベントは、前記図2に示した第1階層のデータ、つまり、当該イベントに対応して再生すべき「奏法モジュール」を示す「奏法ID」と、それに関連する「奏法パラメータ」とを含む。前述のように、「奏法パラメータ」の全部又は一部がこの段階で含まれていなくてもよい。
【0029】
図4(b)の例では、「奏法イベント(1)」はアタック部(エントランス部)の「奏法モジュール」を指示する「奏法ID」を含んでおり、これと対になって、発音開始を指示する「ノートオンイベント」が配置されている。この「奏法イベント(1)」によって指示されるアタック部(エントランス部)の奏法波形の発音開始時点は、それと対で与えられる「ノートオンイベント」によって指定されるようになっている。アタック部の「奏法イベント(1)」とそれに対応する「ノートオンイベント」は一緒のイベントとして処理される。よって、アタック部(エントランス部)に対応する「奏法イベント(1)」の到来時刻は、アタック部(エントランス部)の奏法波形を生成する準備を開始すべきことを示しているだけであり、その発音開始時刻を指示するものではない。なお、後述するように、このアタック部(エントランス部)の奏法波形は、その発音が開始される以前から波形生成開始できるような仕様となっており、生成されたアタック部(エントランス部)の奏法波形の先頭からではなく、それと対を成すノートオンイベントの発生時点に対応する途中の時点からその発音を開始させることができるようになっている。これは、楽器の種類によっては演奏操作の始まり(例えばバイオリンの弓の擦り始め)では、その操作に応じた振動が人の耳に聞こえるほどの振動音としては発生されていないような状況をシミュレートすることに役立つ。また、そうでない場合でも、波形生成の自由度と制御性を高めるのに役立つ。
【0030】
更に図4(b)の例では、「奏法イベント(2)」はボディ部の「奏法モジュール」を指示する「奏法ID」を含み、「奏法イベント(3)」はジョイント部の「奏法モジュール」を指示する「奏法ID」を含み、「奏法イベント(4)」は別のボディ部の「奏法モジュール」を指示する「奏法ID」を含む。ジョイント部の「奏法モジュール」は、先行する音の発音を消音させることなく後続する音の発音へとつなげるときに(例えばタイやスラーの奏法のときに)使用される「つなぎ」用の奏法波形である。よって、このジョイント部の「奏法イベント(3)」も、前記アタック部の奏法イベント(1)と同様に、「ノートオンイベント」(これは後続音の発音開始タイミングを示す)と対になって与えられるようになっており、図示のように、「奏法イベント(3)」の次に「ノートオンイベント」が発生する。ジョイント部の「奏法イベント(3)」とそれに対応する「ノートオンイベント」も一緒のイベントとして処理される。「奏法イベント(4)」は前記ジョイント部を介して接続される後続音のボディ部の奏法モジュールを指示するものである。「奏法イベント(5)」はリリース部(フィニッシュ部)の「奏法モジュール」を指示する「奏法ID」を含んでおり、これと対になって、消音開始(リリース)を指示する「ノートオフイベント」が配置されている。リリース部の「奏法イベント(5)」とそれに対応する「ノートオフイベント」も一緒のイベントとして処理される。ノートオンイベントの場合と同様に、リリース部(フィニッシュ部)の奏法波形は、その消音処理(ノートオフイベント)が開始される以前から波形生成開始できるような仕様となっており、生成されたリリース部(フィニッシュ部)の奏法波形の先頭からではなく、それと対を成すノートオフイベントの発生時点に対応する途中の時点からその消音処理を開始させることができるようになっている。これも上記と同じ理由であり、楽器の種類によって演奏操作の終わりの状況をシミュレートすることに役立ち、また、そうでない場合でも、波形生成の自由度と制御性を高めるのに役立つ。
【0031】
〔奏法波形生成処理の説明〕
図1に示す波形生成装置において、通常の楽音波形及び奏法波形の合成は、コンピュータが通常の音源プログラム及び本実施例に係る奏法波形生成プロセスを実現する所定のプログラム等を実行することにより実施される。この奏法波形生成プロセスを構成する大まかな処理ブロックは、図5に示すように、イージー・プレーヤー部20、奏法シーケンス部21、パート部22、奏法合成部23、波形合成部24からなる。図6は、この奏法波形生成プロセスを構成する各処理ブロックが受け持つ処理の時間関係を大まかに示す概略タイミングチャートである。図6において並列的に示されたブロック30,31,32,33,34は、奏法波形生成プロセスにおけるそれぞれの処理ブロック(イージー・プレーヤー部20、奏法シーケンス部21、パート部22、奏法合成部23、波形合成部24)が自己が受け持つ動作を実行する時間帯をおおまかに示すものである。図6において各ブロック30,31,32,33,34が並列的に図示されているのは、各ブロックの処理が並列的に行われることを意味する。
【0032】
(1)イージー・プレーヤー部20
イージー・プレーヤー部20は、再生しようとする任意の曲の自動演奏データ(曲ファイル)を記憶した記憶媒体から該自動演奏データ(曲ファイル)を読み込む機能、該再生しようとする曲等に関する入力操作子を介した各種の設定操作(移調量設定、音量調整、その他)及び指示操作(再生開始指示、再生停止指示、その他)を受け付ける機能、再生中の再生位置(時間)表示を含む各種表示を制御する機能、後述する必要情報補充機能、などを実行する。
図6における時間ブロック30がイージー・プレーヤー部20による処理が行われる時間帯を略示している。自動演奏の再生プログラムが起動されたときから終了するまでの間、イージー・プレーヤー部20が動作する。再生開始指示「PLAY」が与えられると、イージー・プレーヤー部20では、図6のブロック301で示すようなタイミングで、再生しようとする曲の自動演奏データ(曲ファイル)を読み込み、その解釈を行う。勿論、「PLAY」指示の以前に、所望の曲ファイルが選択された時点で、再生しようとする曲の自動演奏データ(曲ファイル)の読み込みが開始されてもよい。
【0033】
イージー・プレーヤー部20は、前述のとおり通常のMIDIデータとAEM演奏データとが複数トラック間で又は1トラック内で混在している自動演奏データを取り扱うことができるように構成されている。更に、イージー・プレーヤー部20では、読み込んだ自動演奏データ(曲ファイル)に含まれるAEM演奏データに関して基本的な解釈を行い、各奏法イベントデータをタイムスタンプ付きの奏法イベント列オブジェクトとして再構成する。この基本的な解釈とは、例えば、各イベント間に存在する時間差データを累積してこれに基づき各イベント毎のタイムスタンプ(一連の曲中の絶対時間情報)を作成することなどを含む。再構成したタイムスタンプ付きの奏法イベント列オブジェクトは、奏法シーケンス部21に送付される(つまり奏法シーケンス部21が取り扱うメモリ内に書き込まれる)。この演奏データ解釈とこれに基づく奏法イベント列オブジェクトの再構成処理は、図6におけるブロック301,302の時間帯が終了するまでに行われる。
【0034】
このように、イージー・プレーヤー部20は、基本的には、既存の自動演奏シーケンスデータと類似構成からなる(図4に示したような)AEM演奏データを、奏法シーケンス部21で容易に取り扱うのに適したデータ列に変換する。なお、通常のMIDI演奏データは、イージー・プレーヤー部20内に含まれるMIDI用の公知の演奏シーケンサ(MIDIプレーヤー)で処理されるが、この点については公知技術であるため詳しく説明しない。なお、AEM演奏データに基づく奏法波形生成プロセスの処理には相応の遅れ時間があるのに対して、MIDIプレーヤーによる通常のMIDI演奏データの処理には実質的な時間遅れは生じない。そこで、MIDIプレーヤーによる通常のMIDI演奏データの処理を、AEM演奏データに基づく奏法波形生成プロセスの処理における遅れ時間に合わせて、適宜遅延させることにより、両者の再生音の正確な同期をとるようにしている。
【0035】
・省略されている必要情報を補充する機能:
更に、イージー・プレーヤー部20で行う機能の一つとして、読み込んだ自動演奏データ(曲ファイル)におけるAEM演奏イベントデータ(奏法イベント)の中に、必要な奏法パラメータが含まれていなかった場合、これを補充する機能がある。例えば、或る奏法イベントの奏法IDの種類が「ビブラート・ロング・ボディ」の場合、ビブラート深さなどの制御パラメータが設定されないと、どの程度のビブラートで奏法波形を合成してよいのか判らない、という不都合がある。そのため、奏法モジュールの種類によっては、奏法イベントには奏法IDのみならず、必要なパラメータも付属されていなければならないものがある。そこで、イージー・プレーヤー部20では、読み込んだ自動演奏データの中の各奏法イベントにおいてそのような必要なパラメータが含まれているかどうかをチェックし、含まれていない場合は、必要なパラメータを自動的に補充する。この情報補充機能は図6におけるブロック302のタイミングで実行される。イージー・プレーヤー部20から奏法シーケンス部21に送付される前記奏法イベント列オブジェクトにおいては、そのように補充されたパラメータを含む。必要なパラメータの自動補充の仕方としては、奏法モジュールの各種類毎に、各種のパラメータ毎の所定のデフォルト値(標準値)を用意しておき、このデフォルト値を使用すればよい。デフォルト値の決め方としては、それぞれ所定の固定値を予め用意しておいてもよいし、あるいは、当該パラメータに関する前回使用した値(直前使用値)をバッファしておき、バッファされた直前使用値をデフォルト値として使用するようにしてもよく、その他、適宜の手段を採用してよい。
【0036】
イージー・プレーヤー部20で費やされる前記ブロック301,302の処理時間として所定時間が予め確保されており、「PLAY」指示がなされたときから該所定時間内でこれらのブロック301,302の処理が行われる。ユーザは、「PLAY」指示を行う前に、奏法波形生成プロセスにおける各種の処理時間情報を設定したり、その他の種々の設定操作を行うことができるが、この点についての説明は省略する。イージー・プレーヤー部20は、時間ブロック302の最後で、奏法シーケンス部21に対して、シーケンス再生開始指示を与える。実際の演奏が開始された後は、波形合成部24から再生演奏の現在時間(現在の再生位置)を示す情報をイージー・プレーヤー部20で受け取り、この再生演奏の現在時間を表示する。図6におけるブロック303a,303b,303c,…は、定期的な割込み処理として実行される表示変更処理(再生演奏の現在時間を表示する処理)のタイミングを示している。
【0037】
(2)奏法シーケンス部21
奏法シーケンス部21は、イージー・プレーヤー部20から与えられるタイムスタンプ付きの奏法イベント列オブジェクト(つまり奏法イベントデータ列)をバッファし、これをタイムスタンプの時刻つまり再生時刻に従って、順次に読み出す。この順次読出しは、任意に設定される「送り出し頻度」に相当する時間ε毎にバッチ処理で行われる。図6において、時間εの間隔が例示されている。
・パート管理:
奏法波形の合成は演奏パート別に並列的に行われるので、奏法シーケンス部21の最初の仕事は、今回の曲演奏においてAEM演奏パートがどれだけあるかを事前に(シーケンス再生開始指示の受理前に)解釈し、必要な数のAEM演奏の再生パート数を設定するようパート部22を開設する指示を行うことである。そして、イージー・プレーヤー部20から与えられるタイムスタンプ付きの奏法イベント列オブジェクト(つまり奏法イベントデータ列)を解釈して、これをパート別にセット(バッファ)しておく。よって、シーケンス再生開始指示の受理後の、奏法イベント列オブジェクト(つまり奏法イベントデータ列)の順次読出しは、各パート毎に行われる。よって、以下の説明で、「或るイベントの次のイベントを先読みする」というような場合、同じパートにおける奏法イベントデータ列を対象してイベントの前後を論じているのである。以下、単に「パート」という言うが、これは「AEM演奏パート」のことである。
【0038】
・他の事前処理:
上記パート管理以外の事前処理として、奏法シーケンス部21においては、各種の動作時間遅れを考慮した時間パラメータに応じた処理を行う。この種の時間パラメータには次のようなものがある。
「奏法シーケンス部での送り出し頻度の時間ε」…これは、前述の通り、奏法シーケンス部21がどの程度の頻度で演奏イベントデータをパート部22以降の処理に送り出すかを設定するデータである。すなわち、或る送り出し時点(現在時刻)において、この時間εの幅内に存在する演奏イベントデータを一括して次段に送り出す。なお、この実施例では、奏法シーケンス部21は現在時刻の演奏イベント(詳しくは現在処理すべき時間εの幅内に存在するイベント)のみならず、それよりも先の(未来の)1又は複数の演奏イベントをも先行して読み出して、パート部22に与えるようになっている。これについては追って詳しく説明する。パート部22以降の処理では、この時間ε毎に与えられる演奏イベントデータに基づき奏法波形再生に必要な処理を行う。
【0039】
「奏法シーケンス部での先送り時間γ」…これは、奏法シーケンス部21がどの程度先の情報まで先行して処理するかを設定する時間である。
「発音潜伏(latency)時間β」…これは、再生開始時の動作遅延時間に見合った時間である。再生開始シーケンス位置よりもこの発音潜伏(latency)時間βだけ手前に、波形合成部24における動作開始時刻をみかけ上設定する(つまり再生開始シーケンス位置を遅らせる)。再生開始時においては、上記送り出し頻度の時間εの幅分の演奏イベントのみならず上記先送り時間γ分の演奏イベントについても奏法波形合成処理を一挙に行う必要があるため、その負荷を考慮して、それに相当する遅れ時間を発音潜伏(latency)時間βとして、再生開始時にオフセット設定することで、再生開始時の動作遅れを調整する。
【0040】
「コードブックデータアクセスでのプリフェッチ時間α」…これは、波形合成部24が、現在時刻よりもどの程度先のデータまでをハードディスク(その中のコードブック)からRAM内に読み込むか(プリフェッチするか)を設定する時間である。奏法シーケンス部21では、このプリフェッチ時間αのデータを波形合成部24にセットする。
「オーディオデバイスへの出力潜伏(latency)時間δ」…これは、波形合成部24が、出力用オーディオデバイスの時刻よりもどれだけ手前の時刻から合成処理を行うかを設定する時間である。奏法シーケンス部21では、この出力潜伏(latency)時間δのデータを波形合成部24にセットする。例えば、波形合成部24では、合成した波形データを、この出力潜伏(latency)時間分だけ先の時刻で使用される出力バッファに書き込むように制御する。
上記各時間パラメータは、それぞれ所定値に固定されていてもよいし、あるいは、ユーザによって可変設定できてもよい。ユーザが時間パラメータを設定する場合は、イージー・プレーヤー部20での設定処理によってこれを行う。
【0041】
・未来イベントの先読み処理:
奏法シーケンス部21で取り扱うメモリ内にバッファされた或る1パートの奏法イベント列オブジェクトが図7の(a)のようであるとする。EV1,EV2,…が各イベントを示し、Ts1,Ts2,…がそれぞれに対応するタイムスタンプを示す。このメモリの読出しポインタの初期値は、初期時点t0に対応しているものとする。
図7の(b)は、奏法シーケンス部21によるイベント処理タイミングを略示するタイミングチャートである。最初のイベント処理タイミングは、イージー・プレーヤー部20からシーケンス再生開始指示が与えられたとき到来する。これを初期時点t0とする。以後のイベント処理タイミングは、送り出し頻度の時間εが経過する毎に到来する。これらを時点t1,t2,…とする。初期時点t0での処理において、基本的に、時間ε分の時間帯(現在時間帯)に存在するイベント(現在イベント)をそのタイムスタンプと共に図7(a)のメモリから読み出す。もちろん、前述の通り、1つのイベントには奏法IDと奏法パラメータ等が含まれているので、当該イベントについてのこれらのデータ全てがワンセットで読み出される。図7(b)の例では、最初のイベント(EV1,EV2)が最初の時間ε分の時間帯に存在している例を示している。なお、最初のイベントは通常、アタック部の奏法イベント(EV1)であり、これは前述の通りノートオンイベント(EV2)と対になって一緒に処理される。もちろん、現在時間帯にイベントが存在しない場合もありうる。なお、各イベントEV1,EV2,…が存在する時間位置は、それぞれのタイムスタンプTs1,Ts2,…から判明する。
【0042】
この実施例では、そのような現在の奏法イベントの読出しに加えて、その次に存在する1又は複数の奏法イベント(未来イベント)も読み出す。図7(b)の例では、次の奏法イベントEV3が現在の奏法イベント(EV1,EV2)の読み出し時に一緒に読み出される。こうして、読み出された現在及び未来の奏法イベントEV1,EV2,EV3が、それぞれタイムスタンプを伴って、次のパート部22に渡される。この処理は各パート毎にそれぞれ行われる。これらの処理が終わると奏法シーケンス部21は待機状態となる。
【0043】
このように現在の奏法イベントのみならず、その先の(未来の)奏法イベントをも取得して、パート部22に与えるようにしたことにより、パート部22以降の処理において現在の奏法イベントに対応する奏法モジュールの波形合成を行うときに、時間的に相前後する演奏イベントに基づく奏法モジュールの相互関係を考慮に入れて波形合成を行うことができる。たとえば、相前後する演奏イベントに基づく奏法モジュールに基づく奏法波形同士が円滑に接続されるように適切な加工を施すことができるようになる。
【0044】
図7の例において、次の処理時点t1が到来すると、奏法シーケンス部21の前記処理が再開される。イベントが存在しない場合は何も処理されない。処理時点tnが到来して奏法シーケンス部21の前記処理が再開されたとき、該処理時点tnにおける現在時間帯に奏法イベントEV3が存在する場合、時間ε分の時間帯(現在時間帯)に存在するイベント(現在イベント)を読み出すと共にその次に存在するイベント(未来イベント)を先読みする処理を行う。なお、パート部22において、受け取ったイベントを記憶しておき、そのイベント処理が行なわれるまで保存しておくようにするので、既に読み出し済みのイベントはもう読み出さなくてよい。例えば、図7(b)の例では、処理時点tnにおける現在時間帯にはイベントEV3が存在するが、これは前回読み出し時において未来イベントとして読み出されているので、もう読み出さなくてもよい。一方、更に次のイベントEV4がそれに先行するイベントEV3(現在イベント)の処理にとって必要であれば、これはタイムスタンプと共に読み出してパート部22に供給する。この場合、パート部22では、既に受け取り済みの現在イベントEV3と今回受け取った未来イベントEV4とから、それぞれに対応する奏法モジュールの相互接続関係を調整する。
図6において、ブロック311a,311b,311c…が、奏法シーケンス部21による上述のイベント読み出し処理(現在イベントと未来イベントの読み出しを含む)が実行されるタイミングを例示している。
【0045】
(3)パート部22
パート部22は、奏法シーケンス部21から送付された奏法イベント(タイムスタンプ付き)を記憶し、これに基づき所定の「リハーサル」処理を行うと共に、次段の奏法合成部23における処理を管理する。これらの処理も各パート毎にそれぞれ行われる。図6において、ブロック321a,321b,321c…が、パート部22において「リハーサル」処理等が実行されるタイミングを例示している。
・リハーサル処理:
「リハーサル」処理とは、奏法合成後の時間的に相前後する各波形構成要素(Timbre, Amplitude, Pitch等)同士の始点や終点についての時刻やレベル値が滑らかにつながるように、実際の奏法合成を行なう前に、奏法イベントに応じたベクトルIDや代表点値例やその他パラメータなどをリハーサルで読み出し、これに基づき模擬的な奏法合成を行い、各奏法モジュールの始点や終点についての時刻やレベル値を制御するパラメータを適切に設定する処理である。この「リハーサル」処理に基づいて設定されたパラメータを用いて、奏法合成部23で奏法合成処理を行うことにより、時間的に相前後する奏法波形が各構成要素(Timbre, Amplitude, Pitch等)毎に滑らかに接続されることになる。すなわち、合成済みの奏法波形若しくは波形構成要素を調整・制御してそれらの奏法波形若しくは波形構成要素同士が滑らかに接続されるようにするのではなく、個々の奏法波形若しくは波形構成要素を合成する直前における「リハーサル」処理によって模擬的に奏法波形若しくは波形構成要素を合成する処理を行ない、始点や終点等の時刻やレベルなどについての最適なパラメータを設定し、これらの最適なパラメータを用いて奏法波形若しくは波形構成要素の合成を行なうことにより結果的に奏法波形若しくは波形構成要素同士が滑らかに接続されるようにするのである。
【0046】
リハーサル処理では、処理対象である奏法モジュールの種類若しくは性格に応じて必要な処理を行なう。なお、リハーサル処理の対象となるのは主に奏法イベントであるが、ノートオンイベントやノートオフイベントの発生時刻も考慮される。参考のために、発音開始から終了に至るまでの奏法モジュールの組み合わせ状態の一例を図8に示す。図8におけるイベントの並び順は、(1)アタック(エントランス)モジュールを指定する奏法イベントEV1、(2)ノートオンイベントEV2、(3)ボディモジュールを指定する奏法イベントEV3、(4)ジョイントモジュールを指定する奏法イベントEV4、(5)ノートオンイベントEV5、(6)ボディモジュールを指定する奏法イベントEV6、(7)リリース(フィニッシュ)モジュールを指定する奏法イベントEV7、(8)ノートオフイベントEV8、である。
【0047】
図8の例において、現在イベントである奏法イベントEV1及びノートオンイベントEV2によって指定されるアタック部(エントランス部)の奏法モジュールに従う奏法波形を合成するときに、前述のようにその次の奏法イベントEV3が未来イベントとして先読みして与えられ、リハーサル処理では、両者が滑らかに接続されるように必要なパラメータを決定する。次に、その後、奏法イベントEV3を現在イベントとしてそれによって指定されるボディ部の奏法モジュールに従う奏法波形を合成するときに、その次のジョイント部の奏法イベントEV4及びそれと対を成すノートオンイベントEV5が未来イベントとして先読みして与えられ、リハーサル処理では、両者が滑らかに接続されるように必要なパラメータを決定する。同様に、奏法イベントEV4及びノートオンイベントEV5を現在イベントとしてそれによって指定されるジョイント部の奏法モジュールに従う奏法波形を合成するときに、前述のようにその次の奏法イベントEV6が未来イベントとして先読みして与えられ、リハーサル処理では、両者が滑らかに接続されるように必要なパラメータを決定する。なお、この例では、最初のノートオンイベントEV2で発音される音と次のノートオンイベントEV5で発音される音とをジョイント部の奏法波形を用いて接続している。同様に、更にその次の奏法イベントEV6を現在イベントとしてそれによって指定されるボディ部の奏法モジュールに従う奏法波形を合成するときに、その次のリリース部の奏法イベントEV7及びそれと対を成すノートオフイベントEV8が未来イベントとして先読みして与えられ、リハーサル処理では、両者が滑らかに接続されるように必要なパラメータを決定する。更に奏法イベントEV7及びノートオフイベントEV8を現在イベントとしてそれによって指定されるリリース部(フィニッシュ部)の奏法モジュールに従う奏法波形を合成するときには、消音でその奏法波形が終るが故に、次の波形との接続を考慮する必要がないので、次の奏法イベントを考慮したリハーサル処理は行なわれない。
【0048】
次に、いくつかの種類の奏法モジュールに関する「リハーサル」処理の具体例につき説明する。
〈アタック(エントランス)部モジュール〉
図9(a)は、現在イベントがアタック(エントランス)部の奏法モジュールの場合のリハーサル処理の一手順例を示すフロー図である。
ステップS1aでは、今回処理すべき奏法イベント(現在イベント)(図8の例ではEV1,EV2)を奏法合成部23に渡し、その奏法ID(特定のアタック奏法モジュールを指示する)に応じたベクトルID及び代表点値列(Shape)及びその他パラメータを、奏法合成部23の処理によって、前記奏法テーブルからリハーサルとして読み出して、これらをパート部22が受け取り、これに基づき次のようにレベルや時刻等のパラメータ(制御データ)を決定若しくは調整する処理を行なう。
【0049】
ステップS2aでは、次の奏法イベント(先読みによって得た未来イベント)(図8の例ではEV3)を奏法合成部23に渡し、その奏法ID(特定のボディ部の奏法モジュールを指示する)に応じたベクトルID及び代表点値列(Shape)及びその他パラメータを、奏法合成部23の処理によって、前記奏法テーブルからリハーサルとして読み出して、これらをパート部22が受け取り、これに基づき次のようにレベルや時刻等のパラメータ(制御データ)を決定若しくは調整する処理を行なう。
ステップS3aでは、取得した今回及び次回の奏法イベントについての各データに基づき、今回の奏法イベントに係る奏法モジュールについての所定のデータ(レベルと時刻)を決定する処理を行なう。前ステップS1a,S2aでは、ここでの処理のために必要なデータを奏法テーブルから読み出せばよい。ここでのリハーサル処理の内容例を説明するために、図10(a),(b),(c),(d)を参照する。
【0050】
図10(a)は、アタック奏法モジュールにおける調和成分用の各ベクトル例を示し、「HA」は調和成分振幅ベクトルの代表点値列(一例として0,1,2の3点からなる)、「HP」は調和成分ピッチベクトルの代表点値列(一例として0,1,2の3点からなる)、「HT」は調和成分波形ベクトルの一例(ただし波形をそのエンベロープのみで略示している)を示す。ちなみに、調和成分波形ベクトルHTは、基本的には音の立ち上がり部の全波形のサンプルデータからなり、その最後の部分にループ波形を含んでいる。このループ波形は後続波形と接続するときのクロスフェード合成のためにループ読み出しされるものである。アタック奏法モジュールにおける調和成分の開始時刻を定義するパラメータ“preBlockTimeE”は、実際の発音開始時点と、アタック波形の調和成分の波形発生開始時点とのずれを規定するパラメータである。開始時刻の設定は、これと対を成すノートオンイベント(図8の例ではEV2)のタイムスタンプを取得して、実際の発音開始時刻(図10における“noteOnTime”)を把握し、これと“preBlockTimeE”との差“noteOnTime−preBlockTimeE”を調和成分のアタック奏法モジュール開始時刻“startTimeH”として設定する。
【0051】
アタック奏法モジュールにおける調和成分の終了時刻を定義するパラメータのうち、“postBlockTimeE”は、実際の発音開始時点とアタック波形の調和成分の本体波形終了時点とのずれを規定するパラメータであり、“fadeTimeE”は、アタック波形の末尾のクロスフェード時間幅を規定するパラメータである。従って、末尾のクロスフェード部分を含めたアタック奏法モジュールにおける調和成分の終了時刻“endTimeH”は、“noteOnTime+(postBlockTimeE+fadeTimeE)”として求まる。この終了時刻“endTimeH”が、次の奏法イベント(図8の例ではEV3)の調和成分のモジュール開始時刻を規定するデータとして奏法合成部23に返される。こうして、調和成分の終了時刻“endTimeH”に応じて次の奏法モジュールの調和成分の開始時刻を設定するリハーサル処理が行なわれる。
【0052】
図10(b)は、アタック奏法モジュールにおける調和外成分用の各ベクトル例を示し、「NHA」は調和外成分振幅ベクトルの代表点値列(一例として0,1の2点からなる)、「NHT」は調和外成分波形ベクトルの一例(ただし波形をそのエンベロープのみで略示している)を示す。アタック奏法モジュールにおける調和外成分の開始時刻を定義するパラメータ“preTimeNH”は、実際の発音開始時点と、アタック波形の調和外成分の波形発生開始時点とのずれを規定するパラメータである。調和外成分の開始時刻の設定も、前述の調和成分の場合と同様に、それと対を成すノートオンイベント(図8の例ではEV2)のタイムスタンプを取得して、実際の発音開始時刻(図10における“noteOnTime”)を把握し、これと“preTimeNH”との差“noteOnTime−preTimeNH”を調和外成分のアタック奏法モジュール開始時刻“startTimeNH”として設定する。
【0053】
アタック奏法モジュールにおける調和外成分の終了時刻を定義するパラメータ“postTimeNH”は、実際の発音開始時点とアタック波形の調和外成分の終了時点とのずれを規定するパラメータである。アタック奏法モジュールにおける調和外成分の終了時刻“endTimeNH”は、“noteOnTime+postTimeNH”として求まる。この終了時刻“endTimeNH”が、次の奏法イベント(図8の例ではEV3)の調和外成分のモジュール開始時刻を規定するデータとして奏法合成部23に返される。こうして、調和外成分の終了時刻“endTimeNH”に応じて次の奏法モジュールの調和外成分の開始時刻を設定するリハーサル処理が行なわれる。このように、調和外成分の時刻合わせは、調和成分とは独立に行なわれる。
【0054】
レベルについてのリハーサル処理は、現在の奏法イベントに係るアタック部奏法モジュールの振幅ベクトルの終点(図10(a)のHAの2位置)のレベル(振幅値)とピッチベクトルの終点(図10(a)のHPの2位置)のレベル(ピッチの値)を、次の奏法イベントに係るボディ部奏法モジュールの振幅ベクトルの始点(図10(c)のHAの0位置)のレベル(振幅値)とピッチベクトルの始点(図10(c)のHPの0位置)のレベル(ピッチの値)に合わせることを行なう。
図10(c)は、ボディ部の奏法モジュールにおける調和成分用の各ベクトル例を示し、「HA」は調和成分振幅ベクトルの代表点値列(一例として0,1の2点からなる)、「HP」は調和成分ピッチベクトルの代表点値列(一例として0,1の2点からなる)、「HT」は調和成分波形ベクトルの一例(ただし波形は黒塗した矩形で略示している)を示す。なお、ボディ部の調和成分波形ベクトルHTは、図で黒塗したN個の矩形部分(0、1、……N−1)にそれぞれ対応するN個のループ波形からなり、これらのループ波形を順次にループ読み出しながら順次切り替えて接続していくことで所定の時間長のボディ部波形が生成される。ボディ部の時間長を少しだけ短縮又は伸張したい場合は、各ループ部のループ時間を短縮/伸張すればよい。また、ボディ部の時間長をそれ以上に短縮したい場合は、該N個のループ波形のうちの任意の1乃至複数を適宜間引いて読み出せばよい。一方、ボディ部の時間長をそれ以上に伸張したい場合は、該N個のループ波形のうちの任意の複数を所定の順序であるいはランダムに該N個のループ波形の間に挿入すればよい。
【0055】
図9(a)のステップS2aにおいては、調和成分振幅ベクトルについては、次の奏法イベントに係るボディ部の奏法モジュールの調和成分振幅ベクトルHAの始点(図10(c)のHAの0位置)のレベルデータを奏法テーブルから取得する。そして、次のステップS3aにおいて、奏法テーブルから取得したレベルデータにベロシティ値やボリューム設定値などを加味して、ボディ部の奏法モジュールの調和成分振幅ベクトルHAの始点の実際のレベルを算出し、これを、現在の奏法イベントに係るアタック部奏法モジュールの調和成分振幅ベクトルの終点(図10(a)のHAの2位置)のレベル(振幅値)として設定する。
同様に、調和成分ピッチベクトルについても、次の奏法イベントに係るボディ部の奏法モジュールの調和成分ピッチベクトルHPの始点(図10(c)のHPの0位置)のピッチ値データを奏法テーブルから取得する。そして、奏法テーブルから取得したピッチ値データにピッチ制御値を加味して、ボディ部の奏法モジュールの調和成分ピッチベクトルHPの始点の実際のピッチを算出し、これを、現在の奏法イベントに係るアタック部奏法モジュールの調和成分ピッチベクトルの終点(図10(a)のHPの2位置)のレベル(ピッチ値)として設定する。
【0056】
図10(d)は、ボディ部の奏法モジュールにおける調和外成分用の各ベクトル例を示し、「NHA」は調和外成分振幅ベクトルの代表点値列(一例として0,1の2点からなる)、「NHT」は調和外成分波形ベクトルの一例を略記して示す。調和外成分波形ベクトルNHTは3つのブロックからなり、第1のブロックは所定の期間“NHBlockTime0”分の調和外成分波形の全波形からなり、第2のブロックはループ用の調和外成分波形(Loop)からなり、第3のブロックは所定の期間“NHBlockTime1”分の調和外成分波形の全波形からなる。ボディ部の自感知用に応じた調和外成分波形の時間長の調節は、第2のブロックのループ用の調和外成分波形(Loop)をループ再生する時間長を調節することで行なう。
図9(a)のステップS2aにおいては、調和外成分振幅ベクトルについても、次の奏法イベントに係るボディ部の奏法モジュールの調和外成分振幅ベクトルNHAの始点(図10(d)のNHAの0位置)のレベルデータを奏法テーブルから取得する。そして、次のステップS3aにおいて、奏法テーブルから取得したレベルデータにベロシティ値やボリューム設定値などを加味して、ボディ部の奏法モジュールの調和外成分振幅ベクトルNHAの始点の実際のレベルを算出し、これを、現在の奏法イベントに係るアタック部奏法モジュールの調和外成分振幅ベクトルの終点(図10(b)のNHAの1位置)のレベル(振幅値)として設定する。
【0057】
上記の処理が終了すると、図9(a)のステップS4aにおいて、現在の奏法イベントに係るアタック部奏法モジュールの合成を開始する指示を、奏法合成部23に対して与える。次のステップSa5では、上記のようにして決定された今回の奏法イベント(図8の例ではEV1)の調和成分及び調和外成分の終了時刻“endTimeH”、“endTimeNH”を、次の奏法イベント(図8の例ではEV3)の調和成分及び調和外成分のモジュール開始時刻を規定するデータとして設定する。リハーサル処理が終了すると、図5のフローは奏法合成部23の処理に移行する。奏法合成部23の処理については追って説明することとし、次に、更に別のモジュールについてのリハーサル処理について説明する。
【0058】
〈ボディ部モジュール〉
図9(b)は、現在イベントがボディ部の奏法モジュールの場合のリハーサル処理の一手順例を示すフロー図である。
ステップS1bでは、今回処理すべき奏法イベント(現在イベント)(例えば図8のEV3又はEV6)を奏法合成部23に渡し、その奏法ID(特定のボディ部の奏法モジュールを指示する)に応じたベクトルID及び代表点値列(Shape)及びその他パラメータを、奏法合成部23の処理によって、前記奏法テーブルからリハーサルとして読み出して、これらをパート部22が受け取り、これに基づき次のようにレベルや時刻等のパラメータ(制御データ)を決定若しくは調整する処理を行なう。なお、前回の奏法イベントのリハーサル処理のときに既に調整・変更されているパラメータは、調整・変更されているものを用いる。
【0059】
ステップS2bでは、次の奏法イベント(先読みによって得た未来イベント)を奏法合成部23に渡し、その奏法IDに応じたベクトルID及び代表点値列(Shape)及びその他パラメータを、奏法合成部23の処理によって、前記奏法テーブルから引き出して、これらをパート部22が受け取り、これに基づき次のようにレベルや時刻等のパラメータ(制御データ)を決定若しくは調整する処理を行なう。ボディ部の次の来る奏法イベントは、リリース部の奏法イベントかジョイント部の奏法イベントである。図8では、ボディ部奏法イベントEV3の次にジョイント部奏法イベントEV4及びそれと対を成すノートオンイベントEV5が来ており、ボディ部奏法イベントEV6の次にリリース部奏法イベントEV7及びそれと対を成すノートオフイベントEV8が来ている。
ステップS3b、S5bでは、取得した今回及び次回の奏法イベントについての各データに基づき、今回の奏法イベントに係る奏法モジュールについての所定のデータ(時刻とレベル)を決定若しくは調整する処理を行なう。ステップS4bにおいては、今回の奏法イベントに係るボディ部奏法モジュールの合成を開始する指示を、奏法合成部23に対して与える。
【0060】
ボディ部の奏法モジュールについては、基本的に、その開始時刻はそれに先行する奏法モジュールの終了時刻に合わせ、その終了時刻はそれに後続する奏法モジュールの開始時刻に合わせるようにし、また、調和成分及び調和外成分の各振幅ベクトル及び調和成分のピッチベクトルにおける各始点のレベル及び終点のレベルは、ボディ部奏法モジュールのものを使用する。つまり、先行する奏法モジュールの終点のレベルをボディ部奏法モジュールの始点のレベルに合わせ、後続する奏法モジュールの始点のレベルをボディ部奏法モジュールの終点のレベルに合わせるように、リハーサル処理を行なう。
ボディ部の奏法モジュールの調和成分及び調和外成分の各開始時刻は、その前の奏法イベント(例えば前述したアタック部奏法モジュールのイベント)でのリハーサル処理によって既に決定されているので、ここでは求める必要がない。
ボディ部の奏法モジュールの調和成分及び調和外成分の各終了時刻を決定するために、次の奏法モジュール(リリース部又はジョイント部)をステップS2bでリハーサルして、その調和成分及び調和外成分の各開始時刻を求める。そして、ステップS3bでは、上記求めた次の奏法モジュール(リリース部又はジョイント部)の調和成分及び調和外成分の各開始時刻を、今回のボディ部の奏法モジュールの調和成分及び調和外成分の各終了時刻として決定する。
【0061】
このような時刻決定処理の詳細は、アタック部奏法モジュールに関連して既に説明したやり方に準じたやり方で行なえばよい。
参考のために、次の奏法モジュールとなりうるジョイント部奏法モジュールにおける調和成分用の各ベクトル例を図11(a)に示し、同ジョイント部奏法モジュールにおける調和外成分用の各ベクトル例を図11(b)に示す。HA,HP,HT,NHA,NHT等の符号の意味は、図10におけるものと同様である。図11(a)において、調和成分の開始時刻を定義するパラメータ“preTimeH”は、ジョイント部でのノートオンイベント発生時点(図8の例ではEV5)と、ジョイント部の調和成分の波形発生開始時点とのずれを規定するものである。このリハーサルによって、更にその次のイベントであるノートオンイベント(図8の例ではEV5)のタイムスタンプを取得して、実際の発音開始時刻(図11(a)における“noteOnTime”)を把握し、これと“preTimeH”との差“noteOnTime−preTimeH”を調和成分のジョイント部奏法モジュール開始時刻として設定する。こうして、リハーサルで設定された調和成分のジョイント部奏法モジュール開始時刻を、ボディ部の奏法モジュールの調和成分の終了時刻として決定する。図11(b)における調和外成分の開始時刻を定義するパラメータ“preTimeNH”についても同様にリハーサル処理することで、調和外成分のジョイント部奏法モジュール開始時刻を設定し、ボディ部の奏法モジュールの調和外成分の終了時刻として決定する。
【0062】
また、ボディ部の奏法モジュールの調和成分及び調和外成分の各振幅ベクトル及び調和成分のピッチベクトルにおける各始点のレベルを、その前の奏法イベントの奏法モジュール(例えば前述したアタック部奏法モジュール)の調和成分及び調和外成分の各振幅ベクトル及び調和成分のピッチベクトルにおける各終点のレベルとしてそれぞれ設定することは、前の奏法イベントでのリハーサル処理によって既に済んでいる。
よって、ここでは、ボディ部の奏法モジュールの調和成分及び調和外成分の各振幅ベクトル及び調和成分のピッチベクトルにおける各終点のレベルを、次の奏法イベント(未来イベント)に係る奏法モジュールの調和成分及び調和外成分の各振幅ベクトル及び調和成分のピッチベクトルにおける各始点のレベルとして決定する(ステップS5b)。
【0063】
このようなレベル決定処理の詳細も、アタック部奏法モジュールに関連して既に説明したやり方に準じたやり方で行なえばよい。調和成分振幅ベクトルについては、現在の奏法イベントに係るボディ部の奏法モジュールの調和成分振幅ベクトルHAの終点(図10(c)のHAの2位置)のレベルデータを奏法テーブルから取得する。そして、奏法テーブルから取得したレベルデータにベロシティ値やボリューム設定値などを加味して、ボディ部の奏法モジュールの調和成分振幅ベクトルHAの終点の実際のレベルを算出し、これを、次の奏法イベントに係る奏法モジュールの調和成分振幅ベクトルの始点(図11(a)のHAの0位置)のレベル(振幅値)として設定する。また、同様に、調和成分ピッチベクトルについても、現在の奏法イベントに係るボディ部の奏法モジュールの調和成分ピッチベクトルHPの終点(図10(c)のHPの2位置)のピッチ値データを奏法テーブルから取得する。そして、奏法テーブルから取得したピッチ値データにピッチ制御値を加味して、ボディ部の奏法モジュールの調和成分ピッチベクトルHPの終点の実際のピッチを算出し、これを、次の奏法イベントに係る奏法モジュールの調和成分ピッチベクトルの始点(図11(a)のHPの0位置)のレベル(ピッチ値)として設定する。
調和外成分振幅ベクトルについても同様に、現在の奏法イベントに係るボディ部の奏法モジュールの調和外成分振幅ベクトルNHAの終点(図10(d)のHAの1位置)のレベルデータを奏法テーブルから取得し、取得したレベルデータにベロシティ値やボリューム設定値などを加味して、ボディ部の奏法モジュールの調和外成分振幅ベクトNルHAの終点の実際のレベルを算出し、これを、次の奏法イベントに係る奏法モジュールの調和外成分振幅ベクトルの始点(図11(b)のNHAの0位置)のレベル(振幅値)として設定する。
【0064】
〈ジョイント部モジュール〉
図9(c)は、現在イベントがジョイント部の奏法モジュールの場合のリハーサル処理の一手順例を示すフロー図である。
ステップS1cでは、今回処理すべき奏法イベント(現在イベント)(例えば図8のEV4,EV5)を奏法合成部23に渡し、その奏法ID(特定のジョイント部の奏法モジュールを指示する)に応じたベクトルID及び代表点値列(Shape)及びその他パラメータを、奏法合成部23の処理によって、前記奏法テーブルからリハーサルとして読み出して、これらをパート部22が受け取り、これに基づき次のようにレベルや時刻等のパラメータ(制御データ)を決定若しくは調整する処理を行なう。なお、前回の奏法イベントのリハーサル処理のときに既に調整・変更されているパラメータは、調整・変更されているものを用いる。
【0065】
ステップS2cでは、次の奏法イベント(先読みによって得た未来イベント)を奏法合成部23に渡し、その奏法IDに応じたベクトルID及び代表点値列(Shape)及びその他パラメータを、奏法合成部23の処理によって、前記奏法テーブルから引き出して、これらをパート部22が受け取り、これに基づき次のようにレベルや時刻等のパラメータ(制御データ)を決定若しくは調整する処理を行なう。ジョイント部の次の来る奏法イベントは、2番目のボディ部の奏法イベント(例えば図8のEV6)である。
ステップS3c、S5cでは、取得した今回及び次回の奏法イベントについての各データに基づき、今回の奏法イベントに係る奏法モジュールについての所定のデータ(時刻とレベル)を決定若しくは調整する処理を行なう。ステップS4cにおいては、今回の奏法イベントに係るジョイント部奏法モジュールの合成を開始する指示を、奏法合成部23に対して与える。
【0066】
ジョイント部の奏法モジュールについては、基本的に、調和成分及び調和外成分の各振幅ベクトル及び調和成分のピッチベクトルにおける各始点のレベルは、先行するボディ部奏法モジュール(例えば図8のEV3)の各終点のレベルに合わせるようにし、調和成分及び調和外成分の各振幅ベクトル及び調和成分のピッチベクトルにおける各終点のレベルは、後続するボディ部奏法モジュール(例えば図8のEV6)の各始点のレベルに合わせるように、リハーサル処理を行なう。
ジョイント部の奏法モジュールの調和成分及び調和外成分の各振幅ベクトル及び調和成分のピッチベクトルにおける各始点のレベルのデータは、前の奏法イベントのリハーサル処理によって(図9(b)のステップS5b)既に決定されているので、それを用いる。よって、ステップS3cでは、主に、ジョイント部の奏法モジュールの調和成分及び調和外成分の各振幅ベクトル及び調和成分のピッチベクトルにおける各終点のレベルとして、後続するボディ部奏法モジュール(例えば図8のEV6)の各始点のレベルに見合った値に決定するよう、ステップS2cで取得した次のボディ部奏法モジュールのリハーサル結果を利用して処理を行なう。これは、具体的には、図9(a)のステップS3aにおける処理と同様の手法で行なえばよいため、その詳細説明は省略する。
【0067】
ジョイント部の奏法モジュールの開始時刻については、図11(a)を参照して前述したように、次のイベントであるノートオンイベント(図8の例ではEV5)のタイムスタンプを取得して、実際の発音開始時刻(図11(a)における“noteOnTime”)を把握し、これと“preTimeH”との差“noteOnTime−preTimeH”を調和成分のジョイント部奏法モジュール開始時刻として設定する。調和外成分のジョイント部奏法モジュール開始時刻も、図11(b)を参照して前述した通りの手法で求める。これらは、ステップS1cのリハーサルのときに求めればよい。
また、ジョイント部の奏法モジュールの終了時刻については、図11(a)に示すように、調和成分の終了時刻を定義するパラメータ“postTimeH”がジョイント部でのノートオンイベント発生時点(図8の例ではEV5)と、ジョイント部の調和成分の波形発生終了時点とのずれを規定しているので、その次のイベントであるノートオンイベント(図8の例ではEV5)時刻“noteOnTime”にこれを加算して、“noteOnTime+postTimeH”を調和成分のジョイント部奏法モジュール終了時刻として決定する。ステップS5cでは、こうして、リハーサルで設定された調和成分のジョイント部奏法モジュール終了時刻を、次のボディ部の奏法モジュールの調和成分の開始時刻として設定する。図11(b)における調和外成分の終了時刻を定義するパラメータ“postTimeNH”についても同様にリハーサル処理することで、調和外成分のジョイント部奏法モジュール終了時刻を決定し、次のボディ部の奏法モジュールの調和外成分の開始時刻として設定する。
【0068】
〈リリース(フィニッシュ)部モジュール〉
図9(d)は、現在イベントがリリース(フィニッシュ)部の奏法モジュールの場合のリハーサル処理の一手順例を示すフロー図である。
ステップS1dでは、今回処理すべき奏法イベント(現在イベント)(例えば図8のEV7,EV8)を奏法合成部23に渡し、その奏法ID(特定のジョイント部の奏法モジュールを指示する)に応じたベクトルID及び代表点値列(Shape)及びその他パラメータを、奏法合成部23の処理によって、前記奏法テーブルからリハーサルとして読み出して、これらをパート部22が受け取り、これに基づき次のようにレベルや時刻等のパラメータ(制御データ)を決定若しくは調整する処理を行なう。なお、前回の奏法イベントのリハーサル処理のときに既に調整・変更されているパラメータは、調整・変更されているものを用いる。通常、前の奏法イベントのときに、既に今回処理すべき奏法イベントについて必要なデータはリハーサル済みであるから、このステップS1dは実際には省略可能である。
【0069】
参考のために、リリース部奏法モジュールにおける調和成分用の各ベクトル例を図11(c)に示し、同奏法モジュールにおける調和外成分用の各ベクトル例を図11(d)に示す。HA,HP,HT,NHA,NHT等の符号の意味は、図10と同様である。図11(c)において、調和成分の開始時刻を定義するパラメータのうち、“fadeTimeF”は前の奏法モジュールの末尾波形とリリース部の先頭波形とをクロスフェード合成するための時間を示し、“preBlockTimeF”はクロスフェード終了時から次のイベントであるノートオフイベントの発生時点(図8の例ではEV8)との時間差を示す。リリース部奏法モジュールの調和成分の開始時刻は、ノートオフイベントの発生時刻“noteOffTime”を基準にして、“noteOffTime−(fadeTimeF+preBlockTimeF)”で決定される。また、リリース部奏法モジュールの調和外成分の開始時刻は、“noteOffTime−preTimeNH”で決定される。これらの開始時刻は、その前の奏法イベントであるボディ部奏法モジュールのリハーサル処理(図9(b)のステップS2b,S3b)において既に求められているので、それを用いることができる。
また、リリースの奏法モジュールの調和成分及び調和外成分の各振幅ベクトル及び調和成分のピッチベクトルにおける各始点のレベルは、先行するボディ部奏法モジュール(例えば図8のEV6)の各終点のレベルに合わせる。これも、その前の奏法イベントであるボディ部奏法モジュールのリハーサル処理(図9(b)のステップS5b)において既に求められているので、それを用いることができる。
【0070】
このように、発音を終了させる奏法モジュールであるリリース(フィニッシュ)部については、それ以前に必要なリハーサルが済んでいる筈であるので、ステップS1dによるリハーサルは、実際には不要である。ステップS4dでは、今回の奏法イベントに係るリリース部奏法モジュールの合成を開始する指示を、奏法合成部23に対して与える。
なお、図9(a)(b)(c)における各ステップS5a,S5b,S5cの処理は、パート部22によるリハーサル処理で行なわずに、次の奏法合成部23で実際に奏法合成を行なうときに行なうようにしてもよい。
【0071】
(4)奏法合成部23
図5において、奏法合成部23は、パート部22から送付された奏法イベント(タイムスタンプ付き)とリハーサル結果データを受けて所定の奏法合成処理を行なう。この奏法合成処理では、所定の奏法アルゴリズムに従い、奏法イベントの奏法ID及びパラメータあるいは制御データを解釈して処理し、これに基づき奏法テーブルから各ベクトルIDと代表点値列及び各種パラメータを読み出し、これらを修飾又は加工もしは変更する。そして、奏法イベントに対応するこれらの各ベクトルIDと代表点値列及び各種パラメータ等と前記リハーサルによって決定された時刻及びレベル等のパラメータ(制御データ)などをパケット化して時間順に従うストリームデータとして出力する。図6において、ブロック331a,331b,331c…が、奏法合成部23において奏法合成処理等が実行されるタイミングを例示している。また、図6のブロック330は上記パケット化されたストリームデータの出力処理部分を例示し、その中のブロック330a,330b,330c…が各ストリームデータの出力タイミングを例示している。
【0072】
(5)波形合成部24
図5において、波形合成部24は、各ベクトルIDと代表点値列等の上記パケット化されたストリームデータを奏法合成部23から受け取り、現在時刻より前記プリフェッチ時間αだけ前の時刻に、ベクトルIDに応じて波形データベース内のコードブックから波形テンプレートデータ等を読み出し、また、現在時刻より前記出力潜伏(latency)時間δだけ前の時刻に、代表点値列とパラメータ等に基づき振幅ベクトル及びピッチベクトルのエンベロープ波形形状を生成し、これらに基づき奏法波形の調和成分波形と調和外成分波形をそれぞれ形成する。そして、奏法波形の調和成分波形と調和外成分波形をそれぞれの時刻データに応じて所定の時刻位置に貼り付けて、最終的にこれらを加算合成し、奏法波形の合成を行なう。ここで確立される再生時刻(つまり現在時刻)データがイージー・プレーヤー部20に与えられ、再生位置(時刻)のリアルタイム表示に用いられる。図6において、ブロック341,342,343,…は、波形合成部24において波形データベース内のコードブックに対するプリフェッチのタイミングを例示している。なお、波形合成部24において前記波形テンプレートデータ及び振幅ベクトル及びピッチベクトルのエンベロープ波形形状等に基づき奏法波形データを生成する手法としては、例えば「ソフトウェア音源」として知られた手法を適宜採用することができる。波形合成部24で合成された奏法波形データは、出力バッファ(図1の波形出力部108に含まれる)に与えられる。該出力バッファに記憶された奏法波形データが所定の再生サンプリング周期で読み出されて、サウンドシステム108A(図1)を経由して空間的に発音される。
【0073】
なお、上記実施例では、現在の奏法イベントの読み出しとそれに対応する未来の奏法イベントの先読みを、所定時間ε毎に行っているが、これに限らず、随時行うようにしてもよい。
【0074】
【発明の効果】
以上の通り、この発明によれば、時間順に供給される演奏イベント情報に従って或る時点での演奏イベント情報を処理するとき、それに続く1又は複数のイベントについての演奏イベント情報をその時間順よりも先行して取得し、これらの演奏イベント情報に基づき、演奏イベント情報の少なくともいずれか1つにより指定される奏法モジュールに対応する時刻やレベル等の制御データを生成するようにしたので、時間的に相前後する演奏イベント情報に基づく奏法モジュールの相互関係を考慮に入れて、制御データを生成することができる。たとえば、相前後する演奏イベント情報に基づく奏法モジュールに基づく奏法波形同士が円滑に接続されるように制御データに適切な加工を施すことができる。
【図面の簡単な説明】
【図1】この発明の一実施例において利用可能な装置のハードウエア構成例を示すブロック図。
【図2】奏法モジュールのデータ形式の一例を説明する図。
【図3】或る奏法モジュールに対応する実波形区間を構成する各成分及び要素の一例を模式的に示す図。
【図4】1つの曲の自動演奏データ(曲ファイル)の構成例を説明する図。
【図5】同実施例に係る奏法波形生成プロセスの大まかな手順を示すフローチャート。
【図6】同実施例に係る奏法波形生成プロセスを構成する各処理ブロックが受け持つ処理の時間関係を大まかに示す概略タイミングチャート。
【図7】(a)は奏法イベント列オブジェクトの一例を示す図、(b)は現在の奏法イベントの処理タイミングとそれに後続する奏法イベントを先読みする関係を説明するためのタイミングチャート。
【図8】発音開始から終了に至るまでの奏法モジュールの組み合わせ状態の一例を示すタイミングチャート。
【図9】各種の奏法モジュールに対応するリハーサル処理の例を示すフローチャート。
【図10】(a)及び(b)はアタック部の奏法モジュールにおける調和成分及び調和外成分用の各ベクトル例を示す図、(c)及び(d)はボディ部の奏法モジュールにおける調和成分及び調和外成分用の各ベクトル例を示す図。
【図11】(a)及び(b)はジョイント部の奏法モジュールにおける調和成分及び調和外成分用の各ベクトル例を示す図、(c)及び(d)はリリース部の奏法モジュールにおける調和成分及び調和外成分用の各ベクトル例を示す図。
【符号の説明】
101 CPU
102 ROM
103 RAM
104 パネルスイッチ
105 パネル表示器
108 波形出力部108
109 ハードディスク
20 イージー・プレーヤー部20
21 奏法シーケンス部
22 パート部
23 奏法合成部
24 波形合成部[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a method and an apparatus for generating a waveform of a musical tone, a voice, or any other sound based on reading of waveform data from a waveform memory or the like. Which can generate a waveform faithfully expressing The present invention is applicable to not only electronic musical instruments but also apparatuses, apparatuses, or methods in all fields having a function of generating musical sounds, voices, or any other sounds, such as automatic performance devices, computers, electronic game devices, and other multimedia devices. It can be widely applied. In this specification, the musical tone waveform is not limited to a musical sound waveform, but is used in a sense that it may include a sound or any other sound waveform.
[0002]
[Prior art]
In the waveform memory, waveform data (that is, waveform sample data) encoded by an arbitrary encoding method such as PCM (pulse code modulation), DPCM (differential PCM), or ADPCM (adaptive differential PCM) is stored. A so-called "waveform memory readout" technique for forming a musical tone waveform by reading out a music corresponding to a desired music pitch is already known, and various types of "waveform memory readout technique" are known. ing. Most of the conventionally known "waveform memory reading method" techniques are for generating a waveform of one sound from the start to the end of sounding. As an example, there is a method of storing waveform data of all waveforms of one sound from the start to the end of sounding. As another example, there is a method of storing waveform data of all the waveforms of an attack portion having a complicated change, and storing a predetermined loop waveform for a sustain portion having little change. In this specification, a “loop waveform” is used to mean a waveform that is repeatedly read (loop read).
[0003]
By the way, in the conventional "waveform memory readout method" of the method of storing the waveform data of the entire waveform of one sound from the start to the end of sounding or the method of storing the waveform data of all the waveforms in a part of the waveform of the attack part or the like. Has to store a large number of various waveform data corresponding to various playing styles (or articulations), and a large storage capacity is required to store the large number of waveform data.
Further, in the above-described method of storing the waveform data of all the waveforms, it is possible to faithfully represent a tone change caused by various playing techniques (or articulations) unique to a natural musical instrument. Cannot be played back, so controllability was poor and editability was poor. For example, it has been very difficult to perform characteristic control such as time axis control of waveform data corresponding to a desired playing style (or articulation) according to performance data.
[0004]
[Problems to be solved by the invention]
In view of these points, a technique that facilitates the realistic reproduction and control of various playing techniques (that is, articulation) unique to natural musical instruments is referred to as SAEM (Sound Articulation Element Modeling) technique, and is described in Japanese Patent Application Laid-Open No. 2000-122665. And other publications. In such SAEM technology, when a series of sound waveforms is created by connecting a plurality of rendition style waveform modules in chronological order, connection between the rendition style waveform modules is performed without unnaturalness. Is desired.
The present invention has been made in view of the above points, and a waveform generation method and a waveform generation method capable of easily and easily generating high-quality waveform data corresponding to various playing techniques (or articulations) with rich controllability. It is an object of the present invention to provide a waveform generating method and apparatus capable of connecting rendition style modules without unnaturalness in that case. .
[0005]
[Means for Solving the Problems]
In the waveform generation method according to the present invention, a rendition style module is specified. Playing technique Events data Supplying in time order; and supplying in time order. Playing technique Events data At some point according to Playing technique Events data , When processing one or more subsequent events Playing technique Events Data first Performing the step of obtaining Playing technique Events data And said obtained earlier Playing technique Events data Based on the Playing technique Events data Generating control data corresponding to a rendition style module specified by at least one of: Specified by the performance event data at the certain point in time Synthesizing waveform data corresponding to the rendition style module.
[0006]
Supplied in chronological order Playing technique Events data At some point according to Playing technique Events data , When processing one or more subsequent events Playing technique Events Data Get ahead and get these Playing technique Events data Based on Playing technique Events data The control data corresponding to the rendition style module specified by at least one of the above is generated, so that it is temporally consecutive. Playing technique Events data The control data can be generated in consideration of the interrelation of the performance style modules based on. For example, before and after Playing technique Events data Appropriate for the control data so that the playing style waveforms based on the playing style module based on Fix Can be applied.
[0007]
The invention can be constructed and implemented not only as a method invention, but also as an apparatus invention. Further, the present invention can be implemented in the form of a program of a computer or a processor such as a DSP, or can be implemented in the form of a storage medium storing such a program.
[0008]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
[Example of hardware configuration]
FIG. 1 is a block diagram showing an example of a hardware configuration of a device usable in an embodiment of the present invention. The hardware configuration example shown here is configured using a computer. In the waveform generation process, the computer executes a predetermined program (software) that implements the waveform generation process according to the present invention. It is implemented by. Of course, this waveform generation processing is not limited to the form of computer software, but can also be implemented in the form of a microprogram processed by a DSP (Digital Signal Processor), and is not limited to this type of program. The present invention may be embodied in the form of a dedicated hardware device including a discrete circuit or an integrated circuit or a large-scale integrated circuit. Further, the waveform generating device may take any product application form such as an electronic musical instrument, a karaoke device, an electronic game device, another multimedia device, or a personal computer.
[0009]
In the example of the hardware configuration shown in FIG. 1, a read-only memory (ROM) 102 and a random access memory (ROM) are provided to a
[0010]
The
[0011]
The
[0012]
The
[0013]
[Schematic explanation of playing style module]
In the rendition style waveform database configured using the above-described
[0014]
The rendition style modules can be roughly classified into several types based on the rendition style features or the temporal portion or section of the performance. The following five types can be given as examples.
1) “Normal Entrance” (abbreviation NE): A playing style module that handles the rising portion (that is, the “attack” portion) of a sound (from a silence state).
2) "Normal Finish" (abbreviated as "NF"): A playing style module that handles the falling part of the sound (to the silence state) (that is, the "release" part).
3) “Normal joint” (abbreviated as NJ): a playing style module that handles a part that connects two sounds (without going through a silent state) (that is, a “joint” part).
4) “Normal Short Body” (abbreviated as NSB): A playing style module that does not apply vibrato and covers the short part of the part from the start of sound to before the fall (that is, the “body” part).
5) “Vibrato Long Body” (abbreviated VLB): A playing style module that covers the portion of the vibrato from after the rise of the sound until before the fall (that is, the “body” portion).
The above-mentioned five classification methods are merely examples for the description in the specification, and other classification methods may be adopted, and more types may exist. Of course, the playing style modules are also classified according to original sound sources such as musical instrument types.
[0015]
In this embodiment, data of one rendition style waveform corresponding to one rendition style module is not stored in the database as it is, but is stored in the database as a set of a plurality of waveform components. This waveform component is hereinafter referred to as a “vector”. The following are examples of the types of vectors corresponding to one rendition style module. The harmonic component and the non-harmonic component are defined by separating the target original rendition style waveform into a waveform composed of a pitch harmonic component and the remaining waveform components.
1) Harmonic component waveform (Timbre) vector: A feature in which only the waveform shape obtained by normalizing the pitch and amplitude is extracted from the harmonic component waveform components.
2) Amplitude vector of harmonic component: An amplitude envelope characteristic extracted from waveform components of the harmonic component.
3) Pitch (Pitch) Vector of Harmonic Component: A pitch component extracted from the waveform components of the harmonic component (for example, a component exhibiting a temporal pitch fluctuation characteristic based on a certain reference pitch).
4) Waveform (Timbre) vector of non-harmonic component: A waveform component of the non-harmonic component, which is obtained by extracting features of only a waveform shape (noise-like waveform) whose amplitude is normalized.
5) Amplitude vector of non-harmonic component: A waveform component of the non-harmonic component, which is obtained by extracting an amplitude envelope characteristic.
In addition to the above, other types of vectors (for example, a time vector indicating the progress of the time axis of the waveform) may be included, but the description thereof will be omitted in this embodiment for convenience.
[0016]
When synthesizing the rendition style waveforms, the vector data is appropriately processed according to the control data and arranged on the time axis, so that the waveform or envelope corresponding to each component of the rendition style waveforms is played. A rendition style waveform is generated by constructing each along the sound reproduction time axis and performing a predetermined waveform synthesis process based on each vector data arranged on the time axis in this way. For example, by adding a pitch corresponding to the harmonic pitch vector and its time change characteristic to the harmonic waveform vector and adding an amplitude corresponding to the harmonic amplitude vector and its time change characteristic to synthesize a harmonic component waveform, a non-harmonic waveform By adding the amplitude according to the non-harmonic amplitude vector and its time change characteristic to the vector, the waveform of the non-harmonic component is synthesized, and the waveform of the harmonic component and the waveform of the non-harmonic component are added and synthesized, so that the final It is possible to generate a performance sound waveform, that is, a performance style waveform indicating a predetermined performance characteristic.
[0017]
An example of the data format of the performance style module will be described with reference to FIG. As an example, one rendition style module is specified by a hierarchical data structure as shown in FIG. In the first hierarchy, one performance style module is specified by a combination of “performance style ID” (performance style identification information) and “performance parameter”. The “rendition style ID” is information for identifying the rendition style module. The “rendition style ID” identifies each rendition style module, and can function as one of information for reading necessary vector data from the database. The “performance style ID” can be classified by, for example, a combination of “instrument information” and “module part name”. The musical instrument information is information indicating a musical instrument name (violin, alto sax, piano, or the like) to which the playing style module is applied. The “module part name” is information (for example, “normal entrance”, “bend entrance”, etc.) indicating the type of the performance style module along with its character. Such information of “instrument information” and “module part name” may be included in the information of “performance style ID”. Alternatively, information of these "instrument information" and "module part name" may be added to the "reproduction style ID" so that a certain "reproduction style ID" relates to a rendition style module of a certain characteristic. May be obtained from the information of the "instrument information" and the "module part name".
[0018]
The “performance parameter” is a parameter for controlling the time and level of the waveform related to the performance module. The “performance parameters” may include one or more types of parameters that are appropriately different depending on the characteristics of each performance module. For example, in the case of a predetermined module that can be specified by a combination of instrument information called Violin [NormalEntrance] and a module part name, types of performance parameters such as an absolute pitch immediately after the Entrance and a volume immediately after the Entrance may be included. In the case of another predetermined module that can be specified by a combination of the instrument information Violin [BendUpEntrance] and the module part name, the absolute pitch at the end of the BendUpEntrance, the initial value of the Bend depth at the BendUpEntrance, the start of the BendUpEntrance ( Note-on timing)-time from end to end, volume immediately after Entrance, or time curve expansion / contraction of default curve during BendUpEntrance Performance parameters may be included. Further, in the case of another predetermined module that can be specified by a combination of instrument information called Violin [NormalShortBody] and a module part name, the absolute pitch of the module, the end time of the NormalShortBody-the start time, and the dynamics at the start of the NormalShortBody , NormalShortBody, and dynamics at the end of the normal ShortBody. The “performance parameter” may be stored in advance in a memory or the like together with the performance ID, or may be input by a user's input operation, or an existing parameter may be appropriately changed by the user's operation. You may be. In addition, when a rendition style waveform is reproduced and only a rendition style ID is given and a rendition style parameter is not given, a standard rendition style parameter for the rendition style ID may be automatically added. Further, in the course of the processing, an appropriate parameter may be automatically generated and added.
[0019]
The data of the second hierarchy is composed of data such as a vector ID specified by the rendition style ID. The database of performance style waveforms includes a table or memory section called a “performance style table”, and in this performance style table, a plurality of waveform configurations for configuring a performance style module related to the performance style ID corresponding to each performance style ID. The element, that is, the identification information of each of the above-mentioned vectors (that is, the vector ID) is stored. That is, by reading out the rendition style table according to the rendition style ID, it is possible to acquire data such as these vector IDs. The data of the second hierarchy stored in the rendition style table is not limited to the data of the vector ID, and may include other necessary data. For example, representative point value sequence data (data indicating representative sample points for correction in a plurality of sample sequences) may be included. For example, envelope waveform data such as an amplitude vector and a pitch vector can be reproduced if it has several representative point value data, so the envelope waveform data can be stored as a template. Instead, it may be stored as representative point value sequence data. Hereinafter, the representative point value sequence data is also referred to as “shape” data. Further, information such as the start time position and end time position of vector data (waveform element, pitch element (pitch envelope), amplitude element (amplitude envelope)) for each component element may be stored in the rendition style table. . Alternatively, all or a part of the data such as the time position may be included in the “performance parameter”. In other words, a part of the “performance parameter” may be stored in the performance table together with the vector ID.
[0020]
The data of the third hierarchy is composed of individual vector data specified by each vector ID. The rendition style waveform database includes a memory unit called a “codebook”. In the codebook, corresponding to each vector ID, specific vector data related to the vector ID (for example, a template of a Timbre waveform). Is stored. That is, specific vector data can be read from the “code book” according to the vector ID.
[0021]
An example of specific various data for one rendition style module including data such as “vector ID” and “shape” (representative point value sequence) stored in the rendition style table will be described below. .
Data 1: Sample length of playing style module.
Data 2: Note-on timing position.
Data 3: Vector ID of a harmonic component (Amplitude) element and a representative point value sequence.
Data 4: Harmonic component pitch ID (Pitch) element vector ID and representative point value sequence.
Data 5: Vector ID of harmonic (Timbre) element of harmonic component.
Data 6: A vector ID of a non-harmonic component (Amplitude) element and a representative point value sequence. Data 7: Vector ID of waveform (Timbre) element of nonharmonic component.
Data 8: Start position of the block of the harmonic component waveform (Timbre) element.
Data 9: the end position of the block of the harmonic component waveform (Timbre) element (the start position of the loop portion of the harmonic component waveform (Timbre) element).
Data 10: Starting position of the lump of the waveform (Timbre) element of the nonharmonic component.
Data 11: the end position of the block of the waveform (Timbre) element of the non-harmonic component (the start position of the loop portion of the waveform (Timbre) element of the non-harmonic component).
Data 12: end position of loop part of waveform (Timbre) element of nonharmonic component.
[0022]
The
FIG. 3 is a diagram schematically illustrating an example of each component and element constituting an actual waveform section corresponding to the rendition style module. The amplitude (Amplitude) element of the harmonic component and the pitch of the harmonic component ( 7 shows an example of a Pitch element, a harmonic component waveform (Timbre) element, a non-harmonic component amplitude (Amplitude) element, and a non-harmonic component waveform (Timbre) element. It is to be noted that the numbers shown in the figure are attached so as to correspond to the numbers of the respective data.
[0023]
1 is a sample length (waveform section length) of a waveform corresponding to the performance style module. For example, it corresponds to the entire time length of the original waveform data on which the performance style module is based.
[0024]
[0025]
Numeral 10 is the start position of the block of the waveform of the non-harmonic component waveform (Timbre) element.
[0026]
In the above example, for ease of explanation, one rendition style module includes all elements (waveform, pitch, amplitude) of harmonic components and all elements (waveform, amplitude) of nonharmonic components. However, the present invention is not limited to this, and the rendition style module may include one of each element (waveform, pitch, amplitude) of the harmonic component and one of each element (waveform, amplitude) of the non-harmonic component. Of course. For example, the rendition style module includes a harmonic component waveform (Timbre) element, a harmonic component pitch (Pitch) element, a harmonic component amplitude (Amplitude) element, a non-harmonic component waveform (Timbre) element, and a non-harmonic component amplitude (Amplitude). It may consist of any one of the elements. This is preferable because the rendition style modules can be freely combined and used for each component.
[0027]
[Description of an example of performance data]
In this embodiment, the automatic performance data (song file) of the desired music includes performance event data for reproducing the rendition style waveform, and the performance event data read out as the automatic performance sequence proceeds. A rendition style waveform is generated based on the rendition style waveform. The automatic performance data (song file) is basically in the SMF (Standard MIDI File) format, and includes normal MIDI data, AEM (articulation element modeling) performance event data (in other words, performance style event data). Consists of performance data in which For example, the automatic performance data of one song is composed of performance data of a plurality of tracks, one or more of which are tracks of an AEM performance sequence including an AEM performance event (performance technique event), and the other tracks are ordinary MIDI performance data. This is the track of the sequence. Also, MIDI data and AEM performance event (performance style event) data may be mixed in one track. In that case, the AEM performance event (reproduction style event) data is basically described in the MIDI format, and one or more of the MIDI channels are allocated for the AEM performance data. Even when the entire track is allocated for AEM performance data, the data may basically be described in the MIDID format. That is, an identifier indicating an AEM performance event (performance style event) may be added in the MIDI format. Of course, a data format other than MIDI may be used. The performance data of each track constitutes performance data of a separate performance part. Also, since performance data of a plurality of MIDI channels can be mixed in the performance data of one track, the performance data of a separate performance part can be constituted for each MIDI channel even in the performance data of one track. For example, performance sounds of one or a plurality of performance parts are reproduced by rendition style waveform synthesis based on AEM performance data. For example, a plurality of performance parts, such as a violin part and a piano part, can perform a rendition style waveform synthesis based on AEM performance data.
[0028]
FIG. 4A shows an example of the overall configuration of the automatic performance data of one music piece, which is composed of a header and a performance data string for each of the
One rendition style event includes the data of the first hierarchy shown in FIG. 2, that is, a “reproduction style ID” indicating a “reproduction style module” to be reproduced corresponding to the event, and a “reproduction style parameter” related thereto. Including. As described above, all or some of the “performance parameters” may not be included at this stage.
[0029]
In the example of FIG. 4B, the “reproduction style event (1)” includes a “reproduction style ID” indicating a “reproduction style module” of an attack part (entrance part). The "note-on event" to be instructed is arranged. The sounding start point of the rendition style waveform of the attack section (entrance section) specified by the “reproduction style event (1)” is specified by a “note-on event” given in combination therewith. The “response style event (1)” of the attack part and the corresponding “note-on event” are processed as the same event. Therefore, the arrival time of the “performance style event (1)” corresponding to the attack part (entrance part) merely indicates that preparation for generating a performance style waveform of the attack part (entrance part) should be started. It does not indicate the pronunciation start time. As will be described later, the performance style of the attack portion (entrance portion) is designed so that the generation of the waveform can be started before the sound is started, and the performance style of the generated attack portion (entrance portion). The sound generation can be started not from the beginning of the waveform but from a point in time corresponding to the point of occurrence of the note-on event that forms a pair with the note-on event. This simulates a situation in which, depending on the type of instrument, at the beginning of a performance operation (for example, when a violin bow is rubbed), the vibration corresponding to the operation is not generated as a vibration sound that can be heard by human ears. To help you. Even in such a case, it is useful to increase the degree of freedom and controllability of waveform generation.
[0030]
Further, in the example of FIG. 4B, the “reproduction style event (2)” includes the “reproduction style ID” indicating the “reproduction style module” of the body part, and the “reproduction style event (3)” includes the “reproduction style module” of the joint part. The "reproduction style event (4)" includes a "reproduction style ID" that indicates a "reproduction style module" of another body. The "playing style module" of the joint section is used to connect the sound of the preceding sound to the sound of the succeeding sound without muting the sound of the preceding sound (for example, when playing a tie or slur). It is. Therefore, similarly to the rendition style event (1) of the attack part, the “reproduction style event (3)” of the joint part is paired with the “note-on event” (which indicates the sound generation start timing of the subsequent sound). As shown in the figure, a “note-on event” occurs after the “performance style event (3)”. The “playing style event (3)” of the joint portion and the corresponding “note-on event” are also processed as the same event. "Reproduction style event (4)" indicates a performance style module of the body part of the succeeding sound connected via the joint. The “reproduction style event (5)” includes a “reproduction style ID” indicating a “reproduction style module” of a release part (finish part), and is paired with the “reproduction style ID” to specify a mute start (release). Is arranged. The “performance style event (5)” of the release section and the corresponding “note-off event” are also processed as the same event. As in the case of the note-on event, the rendition style waveform in the release section (finish section) is designed so that waveform generation can be started before the mute processing (note-off event) is started. The mute processing can be started not at the beginning of the rendition style waveform of the part (finish part) but at a point in time corresponding to the point of occurrence of the note-off event that forms a pair with the waveform. This is also for the same reason as described above, and it is useful for simulating the situation at the end of the performance operation depending on the type of musical instrument, and even if not, it is useful for increasing the degree of freedom and controllability of waveform generation.
[0031]
[Description of performance waveform generation processing]
In the waveform generating apparatus shown in FIG. 1, the synthesis of the normal musical tone waveform and the rendition style waveform is performed by executing a normal tone generator program and a predetermined program for realizing the rendition style waveform generation process according to the present embodiment. You. As shown in FIG. 5, the rough processing blocks constituting the performance style waveform generation process include an
[0032]
(1)
The
A
[0033]
As described above, the
[0034]
As described above, the
[0035]
・ Function to supplement required information that has been omitted:
Further, one of the functions performed by the
[0036]
A predetermined time is previously secured as a processing time of the blocks 301 and 302 to be consumed by the
[0037]
(2) Performance style sequence section 21
The rendition style sequence section 21 buffers a rendition style event string object with a time stamp provided from the easy player section 20 (that is, a rendition style event data string), and sequentially reads out the repetition style according to the time of the time stamp, that is, the reproduction time. This sequential reading is performed in a batch process for each time ε corresponding to the arbitrarily set “sending frequency”. FIG. 6 illustrates the interval of the time ε.
・ Part management:
Since the synthesis of the performance style waveforms is performed in parallel for each performance part, the first task of the performance style sequence unit 21 is to determine in advance how many AEM performance parts are present in the current music performance (before receiving the sequence playback start instruction). ) Interpreting and instructing the opening of the
[0038]
・ Other pre-processing:
As a pre-process other than the part management, the rendition style sequence unit 21 performs a process according to a time parameter in consideration of various operation time delays. These types of time parameters include:
"Time ε of sending frequency in rendition style sequence section"... This is data for setting how often the rendition style sequence section 21 sends the performance event data to the processing of the
[0039]
"Advance time γ in rendition style sequence section" ... This is a time for setting how far ahead the information is to be processed by the rendition style sequence section 21.
“Sound generation latency (latency) β”... This is a time corresponding to the operation delay time at the start of reproduction. The operation start time in the
[0040]
“Prefetch time α in codebook data access” is based on how far ahead the
“Output latency time to audio device (latency) δ” —This is the time for setting how far before the time of the output audio device the synthesizing process is performed by the
Each of the above time parameters may be fixed to a predetermined value, or may be variably set by a user. When the user sets the time parameter, this is performed by the setting process in the
[0041]
-Look-ahead processing for future events:
It is assumed that a rendition style event sequence object of a certain part buffered in the memory handled by the rendition style sequence unit 21 is as shown in FIG. .. Indicate each event, and Ts1, Ts2,... Indicate corresponding time stamps. It is assumed that the initial value of the read pointer of this memory corresponds to the initial time point t0.
FIG. 7B is a timing chart schematically showing the timing of event processing by the rendition style sequence section 21. The first event processing timing comes when a sequence playback start instruction is given from the
[0042]
In this embodiment, in addition to the reading of the current performance style event, one or more performance style events (future events) existing next to the current performance style event are also read. In the example of FIG. 7B, the next rendition style event EV3 is read out together with the current rendition style event (EV1, EV2). In this way, the read current and future performance style events EV1, EV2, EV3 are passed to the
[0043]
In this manner, not only the current performance event but also the future (future) performance event is acquired and given to the
[0044]
In the example of FIG. 7, when the next processing time point t1 arrives, the processing of the rendition style sequence section 21 is restarted. If no event exists, nothing is processed. When the processing of the rendition style sequence section 21 is restarted after the processing time tn arrives, if the rendition style event EV3 exists in the current time zone at the processing time tn, the rendition style event EV3 exists in the time zone of the time ε (current time zone). The process reads out the event (current event) to be performed and prefetches the next existing event (future event). Since the received event is stored in the
6,
[0045]
(3)
The
・ Rehearsal processing:
The “rehearsal” process means that the actual playing style is such that the time and level values at the starting point and the ending point of each waveform component (Timbre, Amplitude, Pitch, etc.) after the playing style synthesis are connected smoothly. Before synthesis, the vector ID, representative point value example, and other parameters corresponding to the performance style event are read out by rehearsal, and a simulated performance style synthesis is performed based thereon, and the time and level of the start point and end point of each performance style module are calculated. This is processing for appropriately setting parameters for controlling values. By using the parameters set based on this "rehearsal" process, the rendition
[0046]
In the rehearsal processing, necessary processing is performed according to the type or character of the performance style module to be processed. Although the rehearsal processing is mainly performed on rendition style events, the occurrence times of note-on events and note-off events are also taken into consideration. For reference, FIG. 8 shows an example of a combination state of the rendition style modules from the start to the end of sounding. The order of the events in FIG. 8 includes (1) a rendition style event EV1 specifying an attack (entrance) module, (2) a note-on event EV2, (3) a rendition style event EV3 specifying a body module, and (4) a joint module. (5) Note-on event EV5, (6) Rendition style event EV6 specifying a body module, (7) Rendition style event EV7 specifying a release (finish) module, (8) Note-off event EV8 is there.
[0047]
In the example of FIG. 8, when synthesizing a rendition style waveform according to the rendition style module of the attack section (entrance section) specified by the rendition style event EV1 and the note-on event EV2, which are the current events, the next rendition style event EV3 as described above. Is given in advance as a future event, and in the rehearsal processing, necessary parameters are determined so that both are connected smoothly. Next, thereafter, when the rendition style event EV3 is set as the current event and a rendition style waveform according to the rendition style module of the body part designated thereby is synthesized, the rendition style event EV4 of the next joint part and the note-on event EV5 paired with the rendition style event EV5 are paired. It is given in advance as a future event, and in the rehearsal process, necessary parameters are determined so that both are connected smoothly. Similarly, when the rendition style event EV4 and the note-on event EV5 are used as the current event to synthesize a rendition style waveform according to the rendition style module specified by the joint, the next rendition style event EV6 is read ahead as a future event as described above. In the rehearsal processing, necessary parameters are determined so that the two are connected smoothly. In this example, the sound generated at the first note-on event EV2 and the sound generated at the next note-on event EV5 are connected using the rendition style waveform of the joint. Similarly, when a rendition style waveform according to the rendition style module of the body part designated by the next rendition style event EV6 as a current event is synthesized, a rendition style event EV7 of the next release section and a note-off event paired with the rendition style event EV7 EV8 is given in advance as a future event, and in the rehearsal process, necessary parameters are determined so that both are connected smoothly. Further, when a rendition style waveform according to the rendition style module of the release section (finish section) designated by the rendition style event EV7 and the note-off event EV8 as the current event is synthesized, the repetition style waveform ends with mute, so that Since there is no need to consider the connection, the rehearsal process is not performed in consideration of the next rendition style event.
[0048]
Next, specific examples of the “rehearsal” processing for several types of performance style modules will be described.
<Attack (entrance) section module>
FIG. 9A is a flowchart illustrating an example of a procedure of a rehearsal process when the current event is a rendition style module of an attack (entrance) section.
In step S1a, the rendition style event (current event) (EV1, EV2 in the example of FIG. 8) to be processed this time is passed to the rendition
[0049]
In step S2a, the next rendition style event (future event obtained by prefetching) (EV3 in the example of FIG. 8) is passed to the rendition
In step S3a, a process of determining predetermined data (level and time) for the rendition style module related to the current rendition style event is performed based on the acquired data on the current and next rendition style events. In the previous steps S1a and S2a, data necessary for the processing here may be read from the rendition style table. To describe an example of the content of the rehearsal process, reference is made to FIGS. 10 (a), (b), (c), and (d).
[0050]
FIG. 10A shows an example of each vector for the harmonic component in the attack playing style module, where “HA” is a representative point value sequence of the harmonic component amplitude vector (for example, composed of three
[0051]
Of the parameters defining the end time of the harmonic component in the attack playing style module, “postBlockTimeE” is a parameter that defines the difference between the actual sounding start time and the end time of the main waveform of the harmonic component of the attack waveform, and “fadeTimeE” Is a parameter that defines the crossfade time width at the end of the attack waveform. Therefore, the end time “endTimeH” of the harmonic component in the attack playing style module including the trailing crossfade portion is obtained as “noteOnTime + (postBlockTimeE + fadeTimeE)”. The end time “endTimeH” is returned to the rendition
[0052]
FIG. 10B shows an example of each vector for the non-harmonic component in the attack playing style module, where “NHA” is a representative point value sequence of the non-harmonic component amplitude vector (composed of two
[0053]
The parameter “postTimeNH” that defines the end time of the non-harmonic component in the attack playing style module is a parameter that defines the difference between the actual sounding start time and the end time of the non-harmonic component of the attack waveform. The end time “endTimeNH” of the non-harmonic component in the attack playing style module is obtained as “noteOnTime + postTimeNH”. The end time “endTimeNH” is returned to the rendition
[0054]
In the rehearsal process for the level, the level (amplitude value) of the end point of the amplitude vector (two positions of the HA in FIG. 10A) and the end point of the pitch vector (FIG. 10A ) Is the level (pitch value) of the starting point (
FIG. 10C shows an example of each vector for the harmonic component in the rendition style module of the body portion, where “HA” is a representative point value sequence of the harmonic component amplitude vector (for example, composed of two
[0055]
In step S2a of FIG. 9A, the harmonic component amplitude vector is set at the start point of the harmonic component amplitude vector HA of the rendition style module of the body part relating to the next rendition style event (0 position of HA in FIG. 10C). Obtain level data from the rendition style table. Then, in the next step S3a, the actual level of the starting point of the harmonic component amplitude vector HA of the performance style module of the body part is calculated by adding the velocity value and the volume setting value to the level data obtained from the performance style table. Is set as the level (amplitude value) of the end point (two positions of the HA in FIG. 10A) of the harmonic component amplitude vector of the attack part playing style module relating to the current playing style event.
Similarly, for the harmonic component pitch vector, the pitch value data of the start point of the harmonic component pitch vector HP of the rendition style module of the body part relating to the next rendition style event (
[0056]
FIG. 10D shows an example of each vector for the non-harmonic component in the rendition style module of the body part, and “NHA” is a representative point value sequence of the non-harmonic component amplitude vector (for example, two
In step S2a in FIG. 9A, the start point of the non-harmonic component amplitude vector NHA of the rendition style module of the body part relating to the next rendition style event (0 position of NHA in FIG. ) Level data is obtained from the rendition style table. Then, in the next step S3a, the actual level of the starting point of the non-harmonic component amplitude vector NHA of the rendition style module of the body part is calculated by adding the velocity value and the volume setting value to the level data acquired from the rendition style table, This is set as the level (amplitude value) of the end point (one position of the NHA in FIG. 10B) of the non-harmonic component amplitude vector of the attack part playing style module relating to the current playing style event.
[0057]
When the above processing is completed, in step S4a of FIG. 9A, an instruction to start synthesis of the attack part performance style module relating to the current performance style event is given to the performance
[0058]
<Body module>
FIG. 9B is a flowchart illustrating an example of a procedure of a rehearsal process when the current event is a rendition style module of a body part.
In step S1b, a rendition style event (current event) (eg, EV3 or EV6 in FIG. 8) to be processed this time is passed to the rendition
[0059]
In step S2b, the next rendition style event (future event obtained by pre-reading) is passed to the rendition
In steps S3b and S5b, a process of determining or adjusting predetermined data (time and level) for the rendition style module related to the current rendition style event is performed based on the acquired data on the current and next rendition style events. In step S4b, an instruction to start synthesizing the body part rendition style module relating to the current rendition style event is given to the rendition
[0060]
Basically, the start time of the rendition style module in the body part is set to the end time of the rendition style module preceding it, and the end time is set to the start time of the rendition style module following it. The level of each start point and the end point of each amplitude vector of the external component and the pitch vector of the harmonic component use those of the body part playing style module. That is, the rehearsal process is performed so that the level of the end point of the preceding rendition style module is adjusted to the level of the start point of the body part rendition style module, and the level of the start point of the subsequent rendition style module is adjusted to the level of the end point of the body part rendition style module.
Since the start times of the harmonic component and the non-harmonic component of the body part playing style module have already been determined by the rehearsal processing in the preceding playing style event (for example, the event of the attack part playing style module described above), it is necessary to obtain them here. There is no.
In order to determine the end time of each of the harmony component and the non-harmonic component of the rendition style module of the body part, the next rendition style module (release or joint) is rehearsed in step S2b, and each of the harmony component and the non-harmony component is determined. Find the start time. Then, in step S3b, the start times of the harmony component and the non-harmonic component of the next rendition style module (release part or joint part) obtained above are set to the end of the harmony component and the non-harmony component of the rendition style module of the current body part. Determined as time.
[0061]
The details of such time determination processing may be performed in a manner similar to the manner already described in relation to the attack part playing style module.
For reference, FIG. 11A shows an example of each vector for a harmonic component in the joint part playing style module that can be the next rendition style module, and FIG. It is shown in b). Symbols such as HA, HP, HT, NHA, and NHT have the same meanings as those in FIG. In FIG. 11A, the parameter “preTimeH” that defines the start time of the harmonic component is the time when the note-on event occurs at the joint (EV5 in the example of FIG. 8) and the time when the waveform of the harmonic component starts to be generated at the joint. The deviation is defined. By this rehearsal, the time stamp of the next event, the note-on event (EV5 in the example of FIG. 8) is acquired, and the actual sounding start time (“noteOnTime” in FIG. 11A) is grasped. The difference “noteOnTime−preTimeH” between this and “preTimeH” is set as the joint part playing style module start time of the harmonic component. In this way, the start time of the joint part rendition style module of the harmonic component set in the rehearsal is determined as the end time of the harmonic component of the rendition style module of the body part. Similarly, the rehearsal processing is performed on the parameter “preTimeNH” defining the start time of the non-harmonic component in FIG. 11B, thereby setting the joint-part rendition style module start time of the non-harmonic component, and adjusting the rendition style module of the body part. It is determined as the end time of the external component.
[0062]
Also, the level of each starting point in the amplitude vector and the pitch vector of the harmonic component of the harmony component and the nonharmonic component of the rendition style module of the body part is set to the harmony of the rendition style module of the preceding rendition style event (for example, the attack style rendition style module described above). The setting as the level of each end point in the amplitude vector of the component and the pitch vector of the harmonic component has already been performed by the rehearsal process in the previous rendition style event.
Therefore, here, the level of each end point in the harmonic vector and the pitch vector of the harmonic component of the harmonic component and the non-harmonic component of the rendition style module of the body part is set to the harmonic component of the rendition style module related to the next rendition style event (future event). The level is determined as the level of each starting point in each of the amplitude vector of the non-harmonic component and the pitch vector of the harmonic component (step S5b).
[0063]
The details of the level determination processing may be performed in a manner similar to the manner already described in relation to the attack part playing style module. As for the harmonic component amplitude vector, the level data of the end point (two positions of the HA in FIG. 10C) of the harmonic component amplitude vector HA of the rendition style module of the body part relating to the current rendition style event is acquired from the rendition style table. Then, the actual level of the end point of the harmonic component amplitude vector HA of the rendition style module of the body part is calculated by adding the velocity value and the volume setting value to the level data obtained from the rendition style table. Is set as the level (amplitude value) of the starting point (
Similarly, for the non-harmonic component amplitude vector, the level data of the end point (one position of the HA in FIG. 10D) of the non-harmonic component amplitude vector NHA of the rendition style module of the body related to the current rendition style event is acquired from the rendition style table. Then, the actual level of the end point of the non-harmonic component amplitude vector HA of the rendition style module of the body part is calculated by adding the velocity value and the volume setting value to the obtained level data, and this is calculated as the next rendition style event. Is set as the level (amplitude value) of the start point (0 position of NHA in FIG. 11B) of the nonharmonic component amplitude vector of the rendition style module according to.
[0064]
<Joint module>
FIG. 9C is a flowchart illustrating an example of a procedure of a rehearsal process when the current event is a rendition style module of a joint unit.
In step S1c, the rendition style event (current event) (eg, EV4, EV5 in FIG. 8) to be processed this time is passed to the rendition
[0065]
In step S2c, the next rendition style event (future event obtained by pre-reading) is passed to the rendition
In steps S3c and S5c, a process of determining or adjusting predetermined data (time and level) for the rendition style module related to the current rendition style event is performed based on the acquired data on the current and next rendition style events. In step S4c, an instruction to start synthesizing the joint part rendition style module relating to the current rendition style event is given to the rendition
[0066]
Regarding the rendition style module of the joint part, basically, the level of each start point in the amplitude vector of the harmonic component and the pitch vector of the harmonic component is determined by the level of the preceding body part rendition module (eg, EV3 in FIG. 8). The level of the end point in the amplitude vector of the harmonic component and the non-harmonic component and the level of the pitch vector of the harmonic component are set to the level of the start point of the succeeding body part playing module (for example, EV6 in FIG. 8). Perform rehearsal processing so that they match.
The data of the level of each starting point in the amplitude vector of the harmonic component and the non-harmonic component of the rendition style module of the joint portion and the pitch vector of the harmonic component have already been obtained by the rehearsal processing of the previous rendition style event (step S5b in FIG. 9B). Use it because it has been decided. Therefore, in step S3c, the following body part rendition style module (for example, EV6 in FIG. 8) mainly determines the level of each end point in the amplitude vector of the harmonic component and the nonharmonic component of the rendition style module of the joint part and the pitch vector of the harmonic component. The processing is performed using the rehearsal result of the next body part rendition style module acquired in step S2c so as to determine the value corresponding to the level of each starting point of (1). This may be performed by a method similar to the processing in step S3a in FIG. 9A, and a detailed description thereof will be omitted.
[0067]
As for the start time of the rendition style module of the joint part, as described above with reference to FIG. 11A, the time stamp of the next event, the note-on event (EV5 in the example of FIG. 8) is acquired, and The sound generation start time (“noteOnTime” in FIG. 11A) is grasped, and the difference “noteOnTime−preTimeH” between this and “preTimeH” is set as the joint part playing style module start time of the harmonic component. The joint part playing style module start time of the non-harmonic component is also obtained by the method described above with reference to FIG. These may be obtained at the time of rehearsal in step S1c.
As for the end time of the rendition style module of the joint section, as shown in FIG. 11A, the parameter “postTimeH” defining the end time of the harmonic component is set at the time of occurrence of the note-on event in the joint section (the example in FIG. 8). In this example, the deviation between EV5) and the end point of the waveform generation of the harmonic component of the joint portion is defined, and this is added to the next event, the note-on event (EV5 in the example of FIG. 8) time "noteOnTime". Then, “noteOnTime + postTimeH” is determined as the end time of the joint part playing style module of the harmonic component. In step S5c, the end time of the joint part rendition style module of the harmonic component set in the rehearsal is set as the start time of the harmonic component of the rendition style module of the next body part. Similarly, the rehearsal processing is performed on the parameter “postTimeNH” defining the end time of the non-harmonic component in FIG. Is set as the start time of the non-harmonic component of.
[0068]
<Release (finish) part module>
FIG. 9D is a flowchart illustrating an example of a procedure of a rehearsal process when the current event is a rendition style module of a release (finish) part.
In step S1d, the rendition style event (current event) (eg, EV7, EV8 in FIG. 8) to be processed this time is passed to the rendition
[0069]
For reference, FIG. 11C shows an example of each vector for a harmonic component in the release section playing style module, and FIG. 11D shows an example of each vector for the non-harmonic component in the playing section module. Signs such as HA, HP, HT, NHA, and NHT have the same meaning as in FIG. In FIG. 11C, among the parameters defining the start time of the harmonic component, “fadeTimeF” indicates a time for performing a cross-fade synthesis of the end waveform of the previous rendition style module and the start waveform of the release portion, and “preBlockTimeF” "" Indicates the time difference from the end of the crossfade to the point of occurrence of the next event, the note-off event (EV8 in the example of FIG. 8). The start time of the harmony component of the release part playing style module is determined by “noteOffTime− (fadeTimeF + preBlockTimeF)” with reference to the note-off event occurrence time “noteOffTime”. The start time of the non-harmonic component of the release part playing style module is determined by “noteOffTime-preTimeNH”. Since these start times have already been obtained in the rehearsal processing of the body part rendition style module (steps S2b and S3b in FIG. 9B), which is the previous rendition style event, they can be used.
Also, the level of each start point in the amplitude vector of the harmonic component and the non-harmonic component of the release performance module of the release and the pitch vector of the harmonic component match the level of each end point of the preceding body part performance module (eg, EV6 in FIG. 8). . This can also be used because it has already been obtained in the rehearsal process of the body part performance module (step S5b in FIG. 9B), which is the previous performance event.
[0070]
As described above, since the necessary rehearsal has been completed for the release (finish) part, which is a rendition style module for terminating the pronunciation, the rehearsal in step S1d is not actually necessary. In step S4d, an instruction to start the synthesis of the release part performance style module relating to the current performance style event is given to the performance
9 (a), (b), and (c) are not performed by the rehearsal processing by the
[0071]
(4) Performance
In FIG. 5, the rendition
[0072]
(5)
In FIG. 5, the
[0073]
In the above embodiment, the reading of the current rendition style event and the pre-reading of the future rendition style event corresponding to the current rendition style event are performed at every predetermined time ε. However, the present invention is not limited thereto, and may be performed at any time.
[0074]
【The invention's effect】
As described above, according to the present invention, when processing the performance event information at a certain point in time in accordance with the performance event information supplied in chronological order, the performance event information for one or more subsequent events is compared with the chronological order. Since control data such as time and level corresponding to the performance style module specified by at least one of the performance event information is obtained based on the performance event information acquired in advance, The control data can be generated in consideration of the interrelationship of the performance style modules based on the successive performance event information. For example, appropriate processing can be applied to the control data so that the rendition style waveforms based on the rendition style modules based on successive performance event information are connected smoothly.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an example of a hardware configuration of a device that can be used in an embodiment of the present invention.
FIG. 2 is a view for explaining an example of a data format of a rendition style module.
FIG. 3 is a diagram schematically showing an example of each component and element constituting an actual waveform section corresponding to a certain rendition style module.
FIG. 4 is a view for explaining a configuration example of automatic performance data (music file) of one music.
FIG. 5 is an exemplary flowchart showing a rough procedure of a rendition style waveform generation process according to the embodiment.
FIG. 6 is an exemplary timing chart schematically showing a time relationship of processing performed by each processing block constituting the rendition style waveform generation process according to the embodiment;
FIG. 7A is a diagram illustrating an example of a performance style event string object, and FIG. 7B is a timing chart for explaining a relationship between processing timing of a current performance style event and prefetching a performance style event subsequent thereto.
FIG. 8 is a timing chart showing an example of a state of combination of rendition style modules from the start to the end of sound generation.
FIG. 9 is a flowchart illustrating an example of rehearsal processing corresponding to various performance style modules.
FIGS. 10 (a) and (b) are diagrams showing examples of vectors for a harmonic component and a non-harmonic component in a rendition style module of an attack part, and FIGS. 10 (c) and (d) are diagrams showing harmonic components and The figure which shows each vector example for out-of-harmonic components.
FIGS. 11A and 11B are diagrams showing examples of vectors for a harmonic component and a non-harmonic component in a rendition style module of a joint portion, and FIGS. 11C and 11D are diagrams illustrating harmonic components and rendition of a rendition style module of a release portion; The figure which shows each vector example for out-of-harmonic components.
[Explanation of symbols]
101 CPU
102 ROM
103 RAM
104 Panel switch
105 Panel display
108
109 Hard Disk
20
21 rendition style sequence part
22 Part
23 Performance synthesis section
24 Waveform synthesis unit
Claims (5)
前記時間順に供給される奏法イベントデータに従って或る時点での奏法イベントデータを処理するとき、それに続く1又は複数のイベントについての奏法イベントデータを先行して取得するステップと、
前記或る時点での奏法イベントデータ及び前記先行して取得された奏法イベントデータに基づき、前記奏法イベントデータの少なくともいずれか1つにより指定される奏法モジュールに対応する制御データを生成するステップと、
前記制御データに基づき前記或る時点での奏法イベントデータにより指定される奏法モジュールに対応する波形データを合成するステップと
を具える波形生成方法。Supplying performance style event data specifying a performance style module in chronological order;
When processing rendition style event data at some point in accordance with rendition style event data supplied sequentially the time, acquiring it by previously rows rendition style event data for subsequent one or more events,
Generating a control data based on said rendition style event data and rendition style event data acquired the previous to at some point, corresponding to the rendition style modules designated by at least one of the rendition style event data,
Synthesizing waveform data corresponding to a rendition style module specified by the rendition style event data at a certain time point based on the control data.
前記時間順に供給される奏法イベントデータに従って或る時点での奏法イベントデータを処理するとき、それに続く1又は複数のイベントについての奏法イベントデータを先行して取得する手段と、
前記或る時点での奏法イベントデータ及び前記先行して取得された奏法イベントデータに基づき、前記奏法イベントデータの少なくともいずれか1つにより指定される奏法モジュールに対応する制御データを生成する手段と、
前記制御データに基づき前記或る時点での奏法イベントデータにより指定される奏法モジュールに対応する波形データを合成する手段と
を具える波形生成装置。Means for supplying performance style event data specifying a performance style module in chronological order;
When processing rendition style event data at some point in accordance with rendition style event data supplied sequentially the time, means for obtaining it by previously rows rendition style event data for subsequent one or more events,
Means for generating control data based on said rendition style event data and rendition style event data acquired the previous to at some point, corresponding to the rendition style modules designated by at least one of the rendition style event data,
Means for synthesizing waveform data corresponding to a rendition style module specified by the rendition style event data at a certain time point based on the control data.
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001091186A JP3552675B2 (en) | 2001-03-27 | 2001-03-27 | Waveform generation method and apparatus |
EP02006823A EP1258864A3 (en) | 2001-03-27 | 2002-03-25 | Waveform production method and apparatus |
SG200201698A SG118122A1 (en) | 2001-03-27 | 2002-03-25 | Waveform production method and apparatus |
US10/107,865 US7259315B2 (en) | 2001-03-27 | 2002-03-26 | Waveform production method and apparatus |
TW091105912A TWI243355B (en) | 2001-03-27 | 2002-03-26 | Waveform production method and apparatus |
CNB021081018A CN1194336C (en) | 2001-03-27 | 2002-03-26 | Waveform generating method and appts. thereof |
HK02109425.4A HK1048012A1 (en) | 2001-03-27 | 2002-12-31 | Waveform production method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001091186A JP3552675B2 (en) | 2001-03-27 | 2001-03-27 | Waveform generation method and apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002287759A JP2002287759A (en) | 2002-10-04 |
JP3552675B2 true JP3552675B2 (en) | 2004-08-11 |
Family
ID=18945854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001091186A Expired - Fee Related JP3552675B2 (en) | 2001-03-27 | 2001-03-27 | Waveform generation method and apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3552675B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4561636B2 (en) * | 2006-01-10 | 2010-10-13 | ヤマハ株式会社 | Musical sound synthesizer and program |
JP4802857B2 (en) * | 2006-05-25 | 2011-10-26 | ヤマハ株式会社 | Musical sound synthesizer and program |
JP6531432B2 (en) * | 2015-03-09 | 2019-06-19 | ヤマハ株式会社 | Program, sound source device and acoustic signal generation device |
-
2001
- 2001-03-27 JP JP2001091186A patent/JP3552675B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002287759A (en) | 2002-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3975772B2 (en) | Waveform generating apparatus and method | |
US7259315B2 (en) | Waveform production method and apparatus | |
US6687674B2 (en) | Waveform forming device and method | |
JP2001100760A (en) | Method and device for waveform generation | |
JP3601371B2 (en) | Waveform generation method and apparatus | |
JP2007293013A (en) | Musical synthesizer and program | |
JP3654083B2 (en) | Waveform generation method and apparatus | |
JP3654079B2 (en) | Waveform generation method and apparatus | |
US7816599B2 (en) | Tone synthesis apparatus and method | |
JP3915807B2 (en) | Automatic performance determination device and program | |
JP4561636B2 (en) | Musical sound synthesizer and program | |
JP3654080B2 (en) | Waveform generation method and apparatus | |
JP3654082B2 (en) | Waveform generation method and apparatus | |
JP3829780B2 (en) | Performance method determining device and program | |
JP3654084B2 (en) | Waveform generation method and apparatus | |
JP4407473B2 (en) | Performance method determining device and program | |
JP3552675B2 (en) | Waveform generation method and apparatus | |
JP3613191B2 (en) | Waveform generation method and apparatus | |
JP3552676B2 (en) | Waveform generation method and apparatus | |
JP3876896B2 (en) | Waveform generation method and apparatus | |
JP3933162B2 (en) | Waveform generation method and apparatus | |
JP4007374B2 (en) | Waveform generation method and apparatus | |
JP3674527B2 (en) | Waveform generation method and apparatus | |
JP3933161B2 (en) | Waveform generation method and apparatus | |
JP3829707B2 (en) | Waveform generating apparatus and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20031224 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040223 |
|
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: 20040413 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040426 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090514 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100514 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110514 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130514 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140514 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |