JP3613191B2 - Waveform generation method and apparatus - Google Patents

Waveform generation method and apparatus Download PDF

Info

Publication number
JP3613191B2
JP3613191B2 JP2001091187A JP2001091187A JP3613191B2 JP 3613191 B2 JP3613191 B2 JP 3613191B2 JP 2001091187 A JP2001091187 A JP 2001091187A JP 2001091187 A JP2001091187 A JP 2001091187A JP 3613191 B2 JP3613191 B2 JP 3613191B2
Authority
JP
Japan
Prior art keywords
rendition style
waveform
performance
event
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001091187A
Other languages
Japanese (ja)
Other versions
JP2002287760A (en
Inventor
元一 田邑
康之 梅山
英之 増田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2001091187A priority Critical patent/JP3613191B2/en
Priority to EP02006823A priority patent/EP1258864A3/en
Priority to SG200201698A priority patent/SG118122A1/en
Priority to CNB021081018A priority patent/CN1194336C/en
Priority to TW091105912A priority patent/TWI243355B/en
Priority to US10/107,865 priority patent/US7259315B2/en
Publication of JP2002287760A publication Critical patent/JP2002287760A/en
Priority to HK02109425.4A priority patent/HK1048012A1/en
Application granted granted Critical
Publication of JP3613191B2 publication Critical patent/JP3613191B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、波形メモリ等からの波形データの読み出し等に基づき、楽音あるいは音声若しくはその他任意の音の波形を生成する方法及び装置に関し、特に、自然楽器固有の各種奏法若しくはアーティキュレーションによる音色変化を忠実に表現した波形を生成することができるものに関する。この発明は、電子楽器は勿論のこと、自動演奏装置、コンピュータ、電子ゲーム装置その他のマルチメディア機器等、楽音あるいは音声若しくはその他任意の音を発生する機能を有するあらゆる分野の機器若しくは装置または方法において広範囲に応用できるものである。なお、この明細書において、楽音波形という場合、音楽的な音の波形に限るものではなく、音声あるいはその他任意の音の波形を含んでいてもよい意味合いで用いるものとする。
【0002】
【従来の技術】
波形メモリにおいて、PCM(パルス符号変調)あるいはDPCM(差分PCM)又はADPCM(適応差分PCM)等の任意の符号化方式で符号化した波形データ(つまり波形サンプルデータ)を記憶しておき、これを所望の音楽ピッチに対応して読み出すことにより、楽音波形を形成するようにした、いわゆる「波形メモリ読み出し」技術は既に公知であり、また、様々なタイプの「波形メモリ読み出し方式」技術が知られている。従来知られた「波形メモリ読み出し方式」技術のほとんどは、発音開始から終了までの1つの音の波形を発生するためのものである。一例として、発音開始から終了までの1音の全波形の波形データを記憶する方式がある。また、別の例として、変化の複雑なアタック部などについてはその全波形の波形データを記憶し、変化のあまりないサステイン部などについては所定のループ波形を記憶する方式がある。なお、本明細書において、「ループ波形」とは繰り返し読出し(ループ読出し)される波形という意味で用いるものとする。
【0003】
ところで、従来の発音開始から終了までの1音の全波形の波形データを記憶する方式やアタック部などの波形の一部において全波形の波形データを記憶する方式の「波形メモリ読み出し方式」技術においては、各種奏法(若しくはアーティキュレーション)に対応する様々な波形データを多数記憶しておかなければならず、この多数の波形データを記憶するために大きな記憶容量が必要であった。
また、上述の全波形の波形データを記憶する方式では、自然楽器固有の各種奏法(若しくはアーティキュレーション)による音色変化を忠実に表現することが可能であるが、記憶した波形データの通りしか楽音を再生することができないので、制御性に乏しく、また、編集性にも乏しかった。例えば、所望の奏法(若しくはアーティキュレーション)に対応する波形データを演奏データに応じた時間軸制御等の特性制御を行うことが非常に困難であった。
【0004】
【発明が解決しようとする課題】
これらの点に鑑みて、自然楽器固有の各種奏法(すなわちアーティキュレーション)のリアルな再現とその制御を容易にした技術が、SAEM(Sound Articulation Element Modeling)技術と称して、特開2000−122665号公報その他に示されている。そのようなSAEM技術においては、複数の奏法波形モジュールを時系列的に組み合わせて接続することで一連の音波形を作成する場合に、不自然さを伴うことなく奏法波形モジュール同士の接続を行うことが望まれる。
本発明は上述の点に鑑みてなされたもので、様々な奏法(若しくはアーティキュレーション)に対応する高品質な波形データを容易かつ簡便にまた制御性豊かに生成することのできる波形生成方法及び装置を提供しようとするものであり、更には、その場合に、不自然さを伴うことなく奏法モジュール同士の接続を行うことができるようにした波形生成方法及び装置を提供しようとするものである。
【0005】
【課題を解決するための手段】
本発明に係る波形生成方法は、調和成分の要素と調和外成分の要素とを含む奏法モジュールを順次指定するステップと、前記指定に従い、先行する奏法モジュールの少なくとも終端特性に関する終端情報と後続する奏法モジュールの少なくとも先端特性に関する先端情報とを、調和成分及び調和外成分の各要素毎に、取得するステップと、取得した終端情報と先端情報に基づいて、前記先行する奏法モジュールと後続する奏法モジュールの少なくとも一方の特性を、前記調和成分及び調和外成分の各要素毎に、修正するステップであって、当該修正の方法は、前記先行する奏法モジュールの種類と前記後続する奏法モジュールの種類とに応じて定められているものと、前記指定された奏法モジュールに対応する波形を前記修正に従う特性で合成するステップとを具える。
【0006】
本発明によれば、先行する奏法モジュールに対応する波形を実際に合成する前に、該先行する奏法モジュールの少なくとも終端特性に関する終端情報とそれに後続する奏法モジュールの少なくとも先端特性に関する先端情報とを取得する(リハーサルによる取得)。こうしてリハーサルとして取得した先行する奏法モジュールの少なくとも終端情報と後続する奏法モジュールの少なくとも先端情報の関係から両者が滑らかに接続されるように、少なくとも一方の特性を、該奏法モジュールに含まれる調和成分及び調和外成分の各要素毎に修正し、修正した特性をパラメータ若しくは制御データとして保持する。このように修正された特性に従い、奏法モジュールに対応する波形を実際に合成する。従って、相前後する奏法モジュールに基づく奏法波形同士が円滑に、かつ、調和成分及び調和外成分の各要素毎に独立に、接続されるようにすることができる。
【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】この発明の一実施例において利用可能な装置のハードウエア構成例を示すブロック図。
【図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]
BACKGROUND OF THE INVENTION
The present invention relates to a method and an apparatus for generating a waveform of a musical tone or a voice or any other sound based on reading of waveform data from a waveform memory or the like, and in particular, timbre changes due to various performance methods or articulations specific to natural instruments. It is related with what can generate | occur | produce the waveform which expressed faithfully. The present invention is not limited to electronic musical instruments, but also in devices, apparatuses or methods in all fields having a function of generating musical sounds, voices, or other arbitrary sounds, such as automatic performance apparatuses, computers, electronic game apparatuses and other multimedia devices. It can be applied in a wide range. In this specification, the term “musical sound waveform” is not limited to a musical sound waveform, but is used in a sense that may include a sound waveform or any other sound waveform.
[0002]
[Prior art]
In the waveform memory, waveform data (that is, 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. The so-called “waveform memory readout” technology that forms a musical sound waveform by reading out in accordance with a desired music pitch is already known, and various types of “waveform memory readout method” technologies 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 sound generation. As an example, there is a method of storing waveform data of all waveforms of one sound from the start to the end of sound generation. As another example, there is a method of storing waveform data of all waveforms for an attack portion having a complicated change, and storing a predetermined loop waveform for a sustain portion having little change. In this specification, “loop waveform” is used to mean a waveform that is repeatedly read (loop read).
[0003]
By the way, in the conventional “waveform memory reading method” technique of storing waveform data of all waveforms of one sound from the start to the end of sound generation, or storing waveform data of all waveforms in a part of the waveform such as an attack part. Therefore, a large number of various waveform data corresponding to various performance methods (or articulations) must be stored, and a large storage capacity is required to store the large number of waveform data.
In addition, the above-described method for storing waveform data of all waveforms can faithfully express timbre changes by various performance methods (or articulations) unique to natural instruments. Cannot be reproduced, so the controllability is poor and the editability is poor. For example, it has been very difficult to perform characteristic control such as time axis control according to performance data on waveform data corresponding to a desired performance (or articulation).
[0004]
[Problems to be solved by the invention]
In view of these points, a technique that facilitates realistic reproduction and control of various performance methods (that is, articulation) unique to natural instruments is referred to as SAEM (Sound Articulation Element Modeling) technology, and Japanese Patent Application Laid-Open No. 2000-122665. No. Gazette and others. In such SAEM technology, when creating a series of sound waveforms by connecting a plurality of rendition style waveform modules in time series, the rendition style waveform modules are connected without any unnaturalness. Is desired.
The present invention has been made in view of the above points, and a waveform generation method capable of easily and easily generating high-quality waveform data corresponding to various performance methods (or articulations) with a high degree of controllability and It is an object of the present invention to provide an apparatus, and further to provide a waveform generation method and apparatus capable of connecting rendition style modules without unnaturalness in that case. .
[0005]
[Means for Solving the Problems]
The waveform generation method according to the present invention includes a step of sequentially designating a rendition style module including elements of harmonic components and non-harmonic components, and following the designation, termination information on at least termination characteristics of the preceding rendition style module and subsequent rendition style The step of acquiring at least the tip information on the tip characteristic of the module for each element of the harmonic component and the non-harmonic component, and based on the acquired termination information and tip information, the preceding rendition style module and the following rendition style module Modifying at least one characteristic for each element of the harmonic component and the non-harmonic component The correction method is determined in accordance with the type of the preceding rendition style module and the type of the subsequent rendition style module. And synthesizing a waveform corresponding to the designated rendition style module with characteristics according to the correction.
[0006]
According to the present invention, before actually synthesizing the waveform corresponding to the preceding rendition style module, the end information on at least the end characteristic of the preceding rendition style module and the front end information on at least the front end characteristic of the rendition style module are acquired. (Acquired by rehearsal). In this way, at least one characteristic is set so that the two are smoothly connected from the relationship between at least the end information of the preceding rendition style module acquired as a rehearsal and at least the front end information of the subsequent rendition style module. , For each element of the harmonic component and the non-harmonic component included in the rendition style module Modify and retain the modified characteristics as parameters or control data. The waveform corresponding to the rendition style module is actually synthesized according to the characteristics thus corrected. Therefore, performance style waveforms based on successive performance style modules And independently for each element of the harmonic component and the non-harmonic component, Can be connected.
[0007]
The present 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 processor such as a computer or a DSP, or can be implemented in the form of a storage medium storing such a program.
[0008]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below in detail with reference to the accompanying drawings.
[Hardware configuration example]
FIG. 1 is a block diagram showing an example of the hardware configuration of an apparatus that can be used in one embodiment of the present invention. The hardware configuration example shown here is configured by using a computer, and in the waveform generation process, the computer executes a predetermined program (software) for realizing the waveform generation process according to the present invention. Is implemented. Of course, this waveform generation processing is not limited to the form of computer software, but can be implemented in the form of a microprogram processed by a DSP (digital signal processor), and is not limited to this form of program. You may implement in the form of the dedicated hardware apparatus comprised including the discrete circuit or the integrated circuit or the large-scale integrated circuit. The waveform generation 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 hardware configuration example shown in FIG. 1, a read only memory (ROM) 102, a random access memory (through a bus line BL (data or address bus, etc.), a random access memory (a RAM) 103, panel switch 104, panel display 105, drive 106, waveform capture unit 107, waveform output unit 108, hard disk 109, and communication interface 111 are connected to each other. The CPU 101 executes various processes such as rendition style waveform generation processing and normal musical tone synthesis (software sound source) based on a predetermined program. These programs are supplied from a network via the communication interface 111 or an external storage medium 106 A such as a CD or MO attached to the drive 106 and stored in the hard disk 109. Then, it is loaded from the hard disk 109 to the RAM 103 at the time of execution. Alternatively, the program may be recorded in the ROM 102. The ROM 102 stores various programs executed by or referred to by the CPU 101, various data, and the like. The ROM 103 is used as a working memory that temporarily stores various information related to performance and various data generated when the CPU 101 executes the program, or as a memory that stores a program currently being executed and related data. A predetermined address area of the RAM 103 is assigned to each function and used as a register, flag, table, memory, or the like. The panel switch 104 includes various operators for inputting setting information such as various performance conditions and waveform generation conditions, editing waveform data, and inputting various information. For example, a numeric keypad for inputting numeric data, a keyboard for inputting character data, or a panel switch. In addition to these, various operators for selecting, setting, and controlling the pitch, timbre, effect, and the like may be included. The panel display 105 is a display such as a liquid crystal display panel (LCD) or a CRT that displays various information input by the panel switch 104, sampled waveform data, and the like.
[0010]
The waveform capturing unit 107 includes an A / D converter, converts (samples) an analog musical tone signal input from an external waveform (for example, input from a microphone) into digital data, and stores the digital waveform in the RAM 103 or the hard disk 109. It is captured as data. A rendition style waveform database can be created based on the acquired waveform data, but detailed description thereof is omitted. Further, the waveform data generated by the waveform generation processing by the CPU 101 is given to the waveform output unit 108 via the bus line BL and stored in a buffer as appropriate. The waveform output unit 108 outputs the waveform data stored in the buffer in accordance with a predetermined output sampling frequency, D / A converts this, and sends it to the sound system 108A. Thus, the musical tone signal output from the waveform output unit 108 is sounded via the sound system 108A. The hard disk 109 has a plurality of types of performance-related data such as data for synthesizing waveforms in accordance with performance styles (data such as performance style tables and codebooks described later), normal waveform data, and timbre data composed of various timbre parameters. It functions as a database that stores data and stores data related to control of various programs executed by the CPU 101.
[0011]
The drive 106 relates to a performance such as data for synthesizing a waveform according to a performance style (various data such as a performance style table and a code book, which will be described later), normal waveform data, and timbre data composed of various timbre parameters. It drives a removable disk (external storage medium 106A) for storing a plurality of types of data and storing data relating to control of various programs executed by the CPU 101. The external storage medium 106A driven by the drive 106 is an abbreviation of a compact disk (CD-ROM / CD-RAM), a magneto-optical disk (MO), or a DVD (Digital Versatile Disk) in addition to a floppy disk (FD). ) And other removable storage media in various forms. The external storage medium 106 </ b> A storing the control program may be set in the drive 106, and the contents (control program) may be directly loaded into the RAM 103 without being dropped on the hard disk 109. Note that the method of providing the control program using the external storage medium 106A or via the network is advantageous because the control program can be easily added or upgraded.
[0012]
The communication interface 111 is connected to a communication network (not shown) such as a LAN, the Internet, or a telephone line, and is connected to a server computer or the like (not shown) via the communication network. The control program, various data, performance information, and the like are taken into the waveform generation device side. That is, when the control program and various data are not stored in the ROM 102 and the hard disk 109, it is used for downloading the control program and various data from the server computer. The waveform generation device serving as a client transmits a command requesting download of a control program and various data to the server computer via the communication interface 111. Upon receiving this command, the server computer stores the requested control program and data in the hard disk 109 via the communication interface 111, thereby completing the download. Further, of course, a MIDI interface may be included to receive MIDI performance information. Needless to say, a performance keyboard may be connected to the bus line BL and performance information may be supplied by real-time performance. Of course, the performance information may be supplied by using the external storage medium 106A that stores the performance information of a desired music piece.
[0013]
[Overview of rendition style module]
In the rendition style waveform database configured by using the above-mentioned hard disk 109 or other appropriate storage medium, a large number of module data (this is referred to as “this”) for reproducing waveforms corresponding to various rendition style (ie, articulation) elements. The rendition style module ”and related data groups are stored. One “rendition style module” is a unit of a rendition style waveform that can be processed as one lump in the rendition style waveform synthesis system. In other words, the “performance style module” is a unit of a performance style waveform that can be processed as one event. For example, some rendition style modules are defined corresponding to partial sections of the sound, such as attack, body, or release, depending on the rendition characteristics of the performance sound. Some of them are defined corresponding to a section (joint portion) between sound and sound, and some are defined corresponding to a special performance portion of sound such as vibrato. Moreover, there may be a phrase defined corresponding to a plurality of notes.
[0014]
The rendition style modules can be roughly classified into several types based on the characteristics of the rendition style or the time part or interval of the performance. For example, the following five types can be mentioned.
1) “Normal entrance” (abbreviated as NE): A rendition style module responsible for the rising part of the sound (from the silence) (ie, the “attack” part).
2) “Normal finish” (abbreviation: NF): A rendition style module that handles the falling part of the sound (to the silence) (ie, the “release” part).
3) “Normal joint” (abbreviated as NJ): A rendition style module that handles the part that connects two sounds (without going through the silence) (ie, the “joint” part).
4) “Normal Short Body” (abbreviated as NSB): A rendition style module that does not have vibrato and handles a short part from the beginning of the sound to the end of the sound (ie, the “body” part).
5) “Vibrato Long Body” (abbreviated as VLB): A rendition style module that handles vibrato from the beginning to the end of the sound (ie, the “body” portion).
The above five types of classification methods are merely examples for the description in the specification, and other classification methods may be adopted, and many more types may exist. Of course, the rendition style modules are also categorized by original sound source such as instrument type.
[0015]
In this embodiment, the 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”. Examples of vector types corresponding to one rendition style module include the following. The harmonic component and the non-harmonic component are defined by separating a target original performance waveform into a waveform composed of a pitch harmonic component and other remaining waveform components.
1) Harmonic component waveform (Timbre) vector: A characteristic of only the waveform shape with normalized pitch and amplitude among the harmonic component waveform components.
2) Amplitude vector of harmonic component: An amplitude envelope characteristic extracted from the harmonic component waveform components.
3) Pitch vector of harmonic component: Among the harmonic component waveform components, a pitch characteristic is extracted (for example, a temporal pitch fluctuation characteristic based on a certain reference pitch).
4) Waveform (timbre) vector of out-of-harmonic component: Among the waveform components of out-of-harmonic components, the feature of only the waveform shape (noise waveform) with normalized amplitude is extracted.
5) Amplitude vector of out-of-harmonic component: An amplitude envelope characteristic extracted from waveform components of out-of-harmonic components.
In addition to the above, another type of vector (for example, a time vector indicating the progress of the time axis of the waveform) may be included, but the description thereof is omitted in this embodiment for convenience.
[0016]
When synthesizing rendition style waveforms, the vector data is appropriately processed according to the control data and placed on the time axis, so that the waveform or envelope corresponding to each component of the rendition style waveform 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, the harmonic waveform vector is provided with a pitch according to the harmonic pitch vector and its time change characteristic, and with the amplitude according to the harmonic amplitude vector and its time change characteristic, thereby synthesizing the harmonic component waveform, By combining the vector with the amplitude corresponding to the non-harmonic amplitude vector and its time-varying characteristic, 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, resulting in a final It is possible to generate a performance sound waveform, that is, a rendition style waveform exhibiting a predetermined rendition style characteristic.
[0017]
An example of the data format of the rendition 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 layer, one rendition style module is specified by a combination of “rendition style ID” (playing style identification information) and “rendition style parameters”. “Rendition style ID” is information for identifying the rendition style module, thereby identifying each rendition style module, and can function as one piece of information for reading necessary vector data from the database. The “performance style ID” can be classified by a combination of “musical instrument information” and “module part name”, for example. The musical instrument information is information indicating the name of a musical instrument (violin, alto saxophone, piano, etc.) to which the performance module is applied. The “module part name” is information (for example, “normal entrance”, “bend entrance”, etc.) indicating the type of performance module together with its character. Such “musical instrument information” and “module part name” information may be included in the “playing style ID” information. Alternatively, the “musical instrument information” and “module part name” information are added to the “performance style ID”, and what kind of performance style module is associated with the “performance style ID”. May be known by the user from the information of the “musical instrument information” and “module part name”.
[0018]
The “performance style parameter” is a parameter for controlling the time and level of the waveform related to the performance style module. “Performance method parameters” may include one or more types of parameters that are appropriately different depending on the characteristics of each performance method module. For example, in the case of a predetermined module that can be specified by a combination of instrument information called “Violine [NormalEntraance]” and a module part name, performance parameters of various types such as absolute pitch immediately after the Entrance and volume after the Entrance may be included. In the case of another predetermined module that can be specified by a combination of instrument information and module part name called Violin [BendUpTransence], the absolute pitch at the end of BendUpTranslation, the initial value of the Bend depth at the time of BendUpTranslation, and BendUpEntrance start ( Note on timing)-time to end, volume just after the Entrance, or time expansion / contraction of the default curve during BendUpTranslation Performance parameters may be included. Further, in the case of another predetermined module that can be specified by a combination of instrument information and module part name such as Violin [Normal ShortBody], the absolute pitch of the module, the normal short body end time-start time, and the dynamics at the time of normal short body start , Performance parameters such as the dynamics at the time of normal short body termination may be included. This “performance method parameter” may be stored in advance together with the performance method ID in a memory or the like, or may be input by a user's input operation, or existing parameters can be appropriately changed by a user's operation. It may be. In addition, when a performance style waveform is reproduced, if only a performance style ID is given and no performance style parameters are given, a standard performance style parameter may be automatically added to the performance style ID. Further, an appropriate parameter may be automatically generated and added during the process.
[0019]
The data of the second layer is composed of data such as a vector ID specified by the rendition style ID. The rendition style waveform database includes a table or memory unit referred to as a “representation style table”. In this rendition style table, a plurality of waveform configurations for configuring a rendition style module related to the rendition style ID corresponding to each rendition style ID Element, that is, identification information (that is, vector ID) of each vector described above is stored. That is, data such as these vector IDs can be acquired by reading the performance style table according to the performance style ID. Note that the second layer data stored in the rendition style table is not limited to the vector ID data, but may include other necessary data. For example, representative point value sequence data (data indicating a representative sample point for correction in a plurality of sample sequences) may be included. For example, envelope waveform shape data such as amplitude vector and pitch vector can be reproduced as long as they have some representative point value data, so the envelope waveform shape data is stored as a template. It is only necessary to store the data as representative point value string data. Hereinafter, the representative point value sequence data is also referred to as “shape” data. Furthermore, 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 “playing style parameter”. In other words, a part of the “playing style parameter” may be stored in the playing style table together with the vector ID.
[0020]
The data of the third hierarchy is made up of individual vector data specified by each vector ID. The rendition style waveform database includes a memory unit called “code book”. In this code book, specific vector data (for example, a template of a Timbre waveform) related to the vector ID corresponding to each vector ID. Is remembered. That is, specific vector data can be read from the “code book” according to the vector ID.
[0021]
An example of various specific 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 as follows. .
Data 1: Sample length of rendition style module.
Data 2: Note-on timing position.
Data 3: Vector ID and representative point value sequence of amplitude components of harmonic components.
Data 4: Vector ID and representative point value string of harmonic component pitch elements.
Data 5: Vector ID of harmonic component waveform (timbre) element.
Data 6: Vector ID and representative point value string of amplitude element of out-of-harmonic component. Data 7: Vector ID of waveform (timbre) element of non-harmonic component.
Data 8: Start position of a lump of harmonic component waveform (timbre) elements.
Data 9: End position of the lump portion of the harmonic component waveform (timbre) element (start position of the loop portion of the harmonic component waveform (timbre) element).
Data 10: Start position of a lump of a non-harmonic component waveform (timbre) element.
Data 11: End position of the lump portion of the waveform (Timbre) element of the non-harmonic component (start position of the loop portion of the waveform (Timbre) element of the non-harmonic component).
Data 12: End position of the loop portion of the waveform (timbre) element of the non-harmonic component.
[0022]
The data 1 to 12 will be described with reference to FIG.
FIG. 3 is a diagram schematically showing an example of each component and element constituting the actual waveform section corresponding to the rendition style module. From the top, the harmonic component amplitude (Amplitude) element and the harmonic component pitch ( An example of a Pitch) element, a harmonic component waveform (Timbre) element, an out-of-harmonic component amplitude (Amplitude) element, and a non-harmonic component waveform (Timbre) element are shown. The numbers shown in the figure are attached so as to correspond to the numbers of the respective data.
[0023]
1 is the sample length (waveform section length) of the waveform corresponding to the rendition style module. For example, it corresponds to the entire time length of the original waveform data that is the basis of the rendition style module. 2 is a note-on timing position, which can be variably set at any time position of the rendition style module. In principle, sounding of the performance sound according to the waveform starts from the position of the note-on timing, but depending on the playing method such as bend attack, the rise start time of the waveform component may precede the note-on timing. is there. For example, since violin begins to rub a string with a bow before the sound actually comes out, it is suitable for accurately simulating the beginning of the performance style waveform before the start of sounding. Reference numeral 3 denotes a vector ID and a representative point value sequence for indicating vector data of amplitude components of harmonic components stored in the codebook (in the figure, two points indicated by black squares represent representative points) ). Reference numeral 4 denotes a vector ID and a representative point value string for indicating vector data of a pitch component of the harmonic component.
[0024]
Reference numeral 6 denotes a vector ID and a representative point value string for indicating vector data of an amplitude element of an out-of-harmonic component. The representative point value sequence data is data for changing and controlling vector data (consisting of a plurality of sample sequences) indicated by the vector ID, and indicates (specifies) some representative sample points. By changing or correcting the time position (horizontal axis) and level axis (vertical axis) for the identified representative sample point, other remaining sample points are also changed in conjunction with each other, thereby changing the vector shape. . For example, it is data indicating a smaller number of distributed samples than the number of samples. However, the present invention is not limited to this, and the representative point value sequence data may be data at an intermediate position between samples, or a predetermined value. May be data over a range (sequential multiple samples). Further, not the sample value itself but data such as a difference and a multiplier may be used. By moving the representative point along the horizontal axis and / or the vertical axis (time axis), the shape of each vector data can be changed. That is, the shape of the envelope waveform can be changed. Reference numeral 5 denotes a vector ID for indicating the vector data of the harmonic component waveform (timbre) element. Reference numeral 7 denotes a vector ID for indicating the vector data of the waveform (timbre) element of the non-harmonic component. Reference numeral 8 denotes the start position of the waveform lump of the harmonic component waveform (timbre) element. 9 is the end position of the waveform block of the harmonic component waveform (timbre) element (or the start position of the loop portion of the waveform of the harmonic component waveform (timbre) element). That is, a triangle starting from 8 indicates a non-loop waveform portion in which characteristic waveform shapes are continuously stored, and a subsequent rectangle starting from 9 indicates a loop waveform portion that can be repeatedly read. The non-loop waveform is a high-quality waveform having characteristics such as performance style (or articulation). The loop waveform is a unit waveform of a relatively monotonous sound portion composed of a waveform for one period or a plurality of suitable periods.
[0025]
Reference numeral 10 denotes the start position of the waveform block of the waveform (timbre) element of the non-harmonic component. 11 is the end position of the waveform lump portion of the waveform (Timbre) element of the non-harmonic component (or the start position of the loop portion of the waveform (Timbre) element of the non-harmonic component). Reference numeral 12 denotes an end position of the loop portion of the waveform of the waveform (timbre) element of the non-harmonic component. The data 3 to data 7 are identification information data for indicating the vector data stored in the code book for each component element, and the data 2 and data 8 to data 12 are the original (before separation) from the vector data. (B) Time information data for assembling the waveform. In this way, the rendition style module data is composed of data for indicating vector data and time information data. By using the rendition style module data stored in such a rendition style table, the waveform can be freely assembled using the waveform material (vector data) stored in the codebook. That is, the rendition style module is data representing the behavior of the waveform generated according to the rendition style (or articulation). The type and number of performance style module data may be different for each performance style module. In addition to the data described above, other information may be provided. For example, it may have data for expanding / compressing the time axis of the waveform.
[0026]
In the above example, in order to make the explanation easy to understand, one rendition style module has all the elements of the harmonic component (waveform, pitch, amplitude) and each element of the non-harmonic component (waveform, amplitude). However, the present invention is not limited to this, and the rendition style module may consist of one of the harmonic components (waveform, pitch, amplitude) or one of the nonharmonic components (waveform, amplitude). 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, an out-of-harmonic component waveform (Timbre) element, and an out-of-harmonic component amplitude (Amplitude). It may consist of any one element. In this case, it is preferable that the rendition style modules can be freely combined and used for each component.
[0027]
[Description of example of performance data]
In this embodiment, performance event data for playing a performance style waveform is included in the automatic performance data (music file) of a desired song, and the performance event data read as the automatic performance sequence progresses is included in the performance event data. Based on this, a rendition style waveform is generated. Automatic performance data (song file) basically consists of SMF (standard MIDI file) format, normal MIDI data and AEM (articulation element modeling) performance event data (in other words, performance event data) Consists of performance data. For example, the automatic performance data of one song consists of performance data of a plurality of tracks, one or more of the tracks are AEM performance sequence tracks including AEM performance events (performance style events), and the other tracks are normal MIDI performances. This is a sequence track. Also, MIDI data and AEM performance event (performance style event) data may be mixed in one track. In that case, the AEM performance event (performance style event) data is basically described in the MIDI format, and any one or more of the MIDI channels are allocated for the AEM performance data. Even if 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 event) may be added in the MIDI format. Of course, a data format other than MIDI may be used. The performance data for each track constitutes performance data for separate performance parts. In addition, since performance data of a plurality of MIDI channels can be mixed in the performance data of one track, performance data of separate performance parts can be configured for each MIDI channel in the performance data of one track. For example, performance sounds of a certain performance part or a plurality of performance parts are reproduced by rendition style waveform synthesis based on AEM performance data. For example, rendition style waveform synthesis based on AEM performance data can be performed on a plurality of performance parts such as a violin part and a piano part.
[0028]
FIG. 4 (a) shows an example of the overall configuration of automatic performance data for one piece of music, comprising a header and a performance data string for each track 1, 2, 3,. FIG. 4B shows an example of a performance data string in a track (for example, track 2) including AEM performance data. As is well known in normal performance sequence data, this performance data string is composed of time difference data (duration data) and event data, and the event data is arranged in time order. As is well known, the time difference data (duration data) indicates the time difference from the previous event time point to the next event time point.
One rendition style event includes the data of the first layer shown in FIG. 2, that is, “rendition style ID” indicating “rendition style module” to be reproduced corresponding to the event, and “rendition style parameters” related thereto. Including. As described above, all or part of the “playing style parameters” may not be included at this stage.
[0029]
In the example shown in FIG. 4B, the “performance style event (1)” includes a “performance style ID” that indicates the “performance style module” of the attack section (entrance section). A “note on event” to be instructed is arranged. The sounding start point of the performance style waveform of the attack section (entrance section) indicated by the “performance style event (1)” is designated by a “note-on event” given as a pair. The “playing style event (1)” in the attack portion and the “note-on event” corresponding thereto are processed as a combined event. Therefore, the arrival time of the “performance style event (1)” corresponding to the attack section (entrance section) only indicates that preparation for generating a performance style waveform of the attack section (entrance section) should be started. It does not indicate the pronunciation start time. As will be described later, the rendition style of the attack section (entrance section) has a specification such that waveform generation can be started before the sounding starts, and the rendition style of the generated attack section (entrance section) The sound generation can be started not from the beginning of the waveform but from the middle of the time corresponding to the time of occurrence of the note-on event that makes a pair with the waveform. This simulates a situation where depending on the type of instrument, at the beginning of a performance operation (for example, the beginning of rubbing a violin bow), the vibration corresponding to the operation is not generated as a vibration sound that can be heard by human ears. It is useful for Even if this is not the case, it helps to increase the degree of freedom and controllability of waveform generation.
[0030]
Further, in the example of FIG. 4B, “performance style event (2)” includes “performance style ID” indicating “performance style module” of the body part, and “performance style event (3)” is “performance style module” of the joint part. “Performance event (4)” includes “Performance ID” that indicates “Performance module” of another body part. The “playing style module” in the joint section is a “connecting” playing style waveform used to connect the sound of the preceding sound to the sound of the succeeding sound without muting (for example, when playing a tie or slur). It is. Therefore, the “playing style event (3)” of this joint part is also paired with the “note-on event” (which indicates the start timing of the subsequent sound), similarly to the playing style event (1) of the attack part. As shown in the figure, a “note-on event” occurs after the “performance style event (3)”. The “playing style event (3)” of the joint part and the “note-on event” corresponding thereto are also processed as the same event. “Performance event (4)” indicates the performance module of the body part of the subsequent sound connected through the joint part. “Performance event (5)” includes a “Performance ID” that indicates the “Performance module” of the release part (finishing part), and in combination with this, a “Note-off event that indicates the start of mute (release)” Is arranged. The “playing style event (5)” of the release part and the corresponding “note-off event” are also processed as the same event. As in the case of the note-on event, the performance waveform of the release part (finish part) is designed so that waveform generation can be started before the mute process (note-off event) starts, and the generated release The mute processing can be started not from the beginning of the performance waveform of the part (finishing part) but from the middle of the time corresponding to the time of occurrence of the note-off event paired therewith. This is also the same reason as described above, which is useful for simulating the situation at the end of the performance operation depending on the type of instrument, and even if not, it is useful for increasing the degree of freedom and controllability of waveform generation.
[0031]
[Description of rendition style waveform generation processing]
In the waveform generator shown in FIG. 1, the synthesis of the normal musical sound waveform and the rendition style waveform is performed by the computer executing a normal sound source program and a predetermined program for realizing the rendition style waveform generation process according to the present embodiment. The As shown in FIG. 5, the rough processing blocks constituting the rendition style waveform generation process include an easy player section 20, a rendition style sequence section 21, a part section 22, a rendition style synthesis section 23, and a waveform synthesis section 24. FIG. 6 is a schematic timing chart roughly showing the time relationship of the processing that each processing block constituting this rendition style waveform generation process takes charge. The blocks 30, 31, 32, 33, and 34 shown in parallel in FIG. 6 are processing blocks in the rendition style waveform generation process (easy player section 20, rendition style sequence section 21, part section 22, rendition style composition section 23). The waveform synthesizing unit 24) roughly indicates a time period during which the operation performed by itself is executed. In FIG. 6, the blocks 30, 31, 32, 33, 34 are illustrated in parallel, which means that the processing of each block is performed in parallel.
[0032]
(1) Easy player section 20
The easy player unit 20 has a function of reading the automatic performance data (music file) from a storage medium storing automatic performance data (music file) of an arbitrary music to be reproduced, and an input operation relating to the music to be reproduced, etc. Functions for receiving various setting operations (transposition amount setting, volume adjustment, etc.) and instruction operations (playback start instruction, playback stop instruction, etc.) via the child, and various displays including playback position (time) display during playback The function to control, the necessary information supplement function mentioned later, etc. are performed.
A time block 30 in FIG. 6 schematically shows a time zone in which processing by the easy player unit 20 is performed. The easy player unit 20 operates from the time when the automatic performance playback program is started until it is finished. When the reproduction start instruction “PLAY” is given, the easy player unit 20 reads the automatic performance data (music file) of the music to be reproduced at the timing shown by the block 301 in FIG. 6 and interprets it. . Of course, before a “PLAY” instruction, reading of automatic performance data (song file) of a song to be reproduced may be started when a desired song file is selected.
[0033]
As described above, the easy player unit 20 is configured to handle automatic performance data in which normal MIDI data and AEM performance data are mixed between a plurality of tracks or within one track. Further, the easy player unit 20 performs basic interpretation on the AEM performance data included in the read automatic performance data (music file), and reconstructs each performance style event data as a performance style event string object with a time stamp. This basic interpretation includes, for example, accumulating time difference data existing between events and creating a time stamp (absolute time information in a series of songs) for each event based on the accumulated data. The reconstructed rendition style event string object with a time stamp is sent to the rendition style sequence section 21 (that is, written in the memory handled by the rendition style sequence section 21). The performance data interpretation and the reconfiguration process of the rendition style event sequence object based on the performance data interpretation are performed until the time period of the blocks 301 and 302 in FIG. 6 ends.
[0034]
As described above, the easy player unit 20 basically easily handles the AEM performance data (as shown in FIG. 4) having a similar structure to the existing automatic performance sequence data by the rendition style sequence unit 21. Is converted into a data string suitable for. The normal MIDI performance data is processed by a known MIDI performance sequencer (MIDI player) included in the easy player unit 20, but this point is a known technique and will not be described in detail. Incidentally, while there is a corresponding delay time in the processing of the rendition style waveform generation process based on the AEM performance data, there is no substantial time delay in the processing of the normal MIDI performance data by the MIDI player. Therefore, the normal MIDI performance data processing by the MIDI player is appropriately delayed according to the delay time in the performance style waveform generation process based on the AEM performance data, so that the reproduced sounds of both are accurately synchronized. ing.
[0035]
・ Function to supplement required information that is omitted:
Further, as one of the functions performed by the easy player unit 20, when the necessary performance method parameters are not included in the AEM performance event data (performance method event) in the read automatic performance data (music file), There is a function to replenish. For example, if the type of rendition style ID of a certain rendition style event is “vibrato long body”, it is impossible to know how much vibrato can synthesize a rendition waveform unless a control parameter such as vibrato depth is set. There is an inconvenience. For this reason, depending on the type of rendition style module, there are some rendition style events that must be accompanied by not only the rendition style ID but also necessary parameters. Therefore, the easy player unit 20 checks whether or not such necessary parameters are included in each performance style event in the read automatic performance data, and if not included, the necessary parameters are automatically set. To replenish. This information supplement function is executed at the timing of block 302 in FIG. The rendition style event sequence object sent from the easy player section 20 to the rendition style sequence section 21 includes parameters supplemented in this way. As a method for automatically replenishing necessary parameters, predetermined default values (standard values) for various parameters are prepared for each type of rendition style module, and these default values may be used. As a method for determining the default value, a predetermined fixed value may be prepared in advance, or the value used last time (immediately used value) for the parameter may be buffered, and the buffered immediately used value may be determined. It may be used as a default value, and other appropriate means may be adopted.
[0036]
A predetermined time is secured in advance as the processing time of the blocks 301 and 302 spent in the easy player unit 20, and the processing of these blocks 301 and 302 is performed within the predetermined time from when the “PLAY” instruction is given. Is called. The user can set various kinds of processing time information in the rendition style waveform generation process and perform other various setting operations before giving the “PLAY” instruction, but the description thereof will be omitted. The easy player unit 20 gives a sequence reproduction start instruction to the rendition style sequence unit 21 at the end of the time block 302. After the actual performance is started, the easy player unit 20 receives information indicating the current time (current playback position) of the playback performance from the waveform synthesis unit 24, and displays the current time of the playback performance. Blocks 303a, 303b, 303c,... In FIG. 6 indicate the timing of display change processing (processing for displaying the current time of the playback performance) that is executed as periodic interrupt processing.
[0037]
(2) Performance method sequence part 21
The rendition style sequence unit 21 buffers a rendition style event sequence object (that is, a rendition style event data sequence) with a time stamp provided from the easy player unit 20, and sequentially reads out this according to the time of the time stamp, that is, the reproduction time. This sequential reading is performed by batch processing every time ε corresponding to an arbitrarily set “delivery frequency”. In FIG. 6, the interval of time ε is illustrated.
・ Part management:
Since the rendition style waveform synthesis is performed in parallel for each performance part, the first task of the rendition style sequence unit 21 is to determine in advance how many AEM performance parts are present in this performance (before accepting the sequence playback start instruction). ) Interpreting and instructing to open the part 22 to set the required number of playback parts for the AEM performance. Then, the rendition style event sequence object with time stamp (that is, the rendition style event data sequence) given from the easy player unit 20 is interpreted and set (buffered) for each part. Therefore, the performance style event sequence object (that is, the performance style event data sequence) is sequentially read out for each part after receiving the sequence reproduction start instruction. Therefore, in the following description, in the case of “prefetching the next event after a certain event”, before and after the event is discussed with respect to the rendition style event data string in the same part. Hereinafter, it is simply referred to as “part”, but this is “AEM performance part”.
[0038]
・ Other pre-processing:
As pre-processing other than the above part management, the rendition style sequence unit 21 performs processing according to time parameters taking into account various operating time delays. Such time parameters include the following:
“Time epsilon of sending frequency in rendition style sequence part” This is data for setting how often the rendition style sequence part 21 sends performance event data to the process after the part part 22 as described above. That is, at a certain sending time point (current time), performance event data existing within this time ε is sent to the next stage in a lump. In this embodiment, the rendition style sequence unit 21 includes not only the performance event at the current time (specifically, an event existing within the range of the time ε to be processed currently), but also one or more (future) ahead of it. The performance event is also read in advance and given to the part unit 22. This will be described in detail later. In the processing after the part 22, processing necessary for performance style waveform reproduction is performed based on the performance event data given every time ε.
[0039]
“Pasting time γ in rendition style sequence part”... This is a time for setting how far the rendition style sequence part 21 processes in advance.
“Late pronunciation time β”... This is a time commensurate with the operation delay time at the start of reproduction. The operation start time in the waveform synthesizer 24 is apparently set (that is, the reproduction start sequence position is delayed) before this reproduction start sequence position by this pronunciation latency time β. At the start of playback, it is necessary to perform rendition style waveform synthesis processing not only for performance events corresponding to the width ε of the sending frequency but also for performance events corresponding to the advance time γ. The delay time corresponding to this is set as the pronunciation latency time β, and an offset is set at the start of playback to adjust the operation delay at the start of playback.
[0040]
“Prefetch time α in code book data access”: This is how much the waveform synthesis unit 24 reads data from the hard disk (the code book therein) into the RAM (prefetch) ). The rendition style sequence unit 21 sets the data of the prefetch time α in the waveform synthesis unit 24.
“Output Latency Time δ to Audio Device”... This is a time for setting how long the waveform synthesis unit 24 performs the synthesis process from the time of the output audio device. The rendition style sequence unit 21 sets the data of the output latency time δ in the waveform synthesis unit 24. For example, the waveform synthesizer 24 controls the synthesized waveform data to be written in the output buffer used at the previous time for the output latency time.
Each of the 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 a setting process in the easy player unit 20.
[0041]
-Future event look-ahead processing:
Assume that a certain part of the rendition style event sequence object buffered in the memory handled by the rendition style sequence unit 21 is as shown in FIG. EV1, EV2,... Indicate each event, and Ts1, Ts2,. It is assumed that the initial value of the memory read pointer corresponds to the initial time point t0.
FIG. 7B is a timing chart schematically showing the event processing timing by the rendition style sequence unit 21. The first event processing timing comes when the sequence player start instruction is given from the easy player unit 20. This is the initial time t0. Subsequent event processing timing arrives every time the delivery frequency time ε elapses. These are time points t1, t2,. In the process at the initial time point t0, basically, an event (current event) existing in a time zone (current time zone) of time ε is read from the memory in FIG. 7A together with its time stamp. Of course, as described above, one event includes a rendition style ID, rendition style parameters, and the like, so that all of these data for the event is read in one set. In the example of FIG. 7B, an example is shown in which the first event (EV1, EV2) exists in the time zone for the first time ε. The first event is usually an attack performance event (EV1), which is processed together with the note-on event (EV2) as described above. Of course, there may be no event in the current time zone. The time positions where the events EV1, EV2,... Exist are determined from the respective time stamps Ts1, Ts2,.
[0042]
In this embodiment, in addition to reading out the current rendition style event, one or more rendition style events (future events) existing next are also read out. In the example of FIG. 7B, the next performance style event EV3 is read together when the current performance style event (EV1, EV2) is read. Thus, the read current and future performance style events EV1, EV2, EV3 are respectively transferred to the next part section 22 with time stamps. This process is performed for each part. When these processes are completed, the rendition style sequence unit 21 enters a standby state.
[0043]
Thus, not only the current rendition style event but also the (future) rendition style event ahead is acquired and given to the part part 22 so that the current rendition style event can be handled in the processing after the part part 22 When performing the waveform synthesis of the rendition style modules to be performed, the waveform synthesis can be performed in consideration of the reciprocal relationship of the rendition style modules based on the performance events that are temporally succeeding each other. For example, appropriate processing can be performed so that performance style waveforms based on performance style modules based on successive performance events are smoothly connected.
[0044]
In the example of FIG. 7, when the next processing time t1 arrives, the processing of the rendition style sequence unit 21 is resumed. If there is no event, nothing is processed. When the processing time tn arrives and the processing of the rendition style sequence unit 21 is resumed, if a rendition style event EV3 exists in the current time zone at the processing time tn, it exists in the time zone (current time zone) of time ε. The event to be read (current event) is read and the next existing event (future event) is prefetched. Since the received event is stored in the part unit 22 and stored until the event processing is performed, it is not necessary to read the already read event. For example, in the example of FIG. 7B, the event EV3 exists in the current time zone at the processing time tn. However, since this is read as a future event at the time of previous reading, it may not be read anymore. On the other hand, if the next event EV4 is necessary for processing the event EV3 (current event) that precedes it, this is read together with the time stamp and supplied to the part unit 22. In this case, the part unit 22 adjusts the interconnection relations between the rendition style modules corresponding to the current event EV3 already received and the future event EV4 received this time.
In FIG. 6, blocks 311a, 311b, 311c,... Exemplify the timing at which the above-described event reading process (including reading of the current event and future event) by the rendition style sequence unit 21 is executed.
[0045]
(3) Part 22
The part unit 22 stores the rendition style event (with time stamp) sent from the rendition style sequence unit 21, performs a predetermined “rehearsal” process based on this, and manages the process in the next stage rendition style synthesis unit 23. These processes are also performed for each part. In FIG. 6, blocks 321 a, 321 b, 321 c... Exemplify timing at which “rehearsal” processing or the like is executed in the part unit 22.
・ Rehearsal processing:
“Rehearsal” processing refers to the actual rendition style so that the time and level values for the start and end points of each waveform component (Timbre, Amplitude, Pitch, etc.) that are temporally related to each other after the rendition synthesis are smoothly connected. Before synthesis, the vector ID, representative point value examples, and other parameters corresponding to the rendition style event are read out by rehearsal, and based on this, the rendition style is synthesized, and the time and level of the start and end points of each rendition style module This is a process for appropriately setting a parameter for controlling the value. By using the parameters set based on this “rehearsal” process, the rendition style synthesis unit 23 performs the rendition style synthesis process, so that the rendition style waveforms that are temporally adjacent to each other (Timbre, Amplitude, Pitch, etc.) Will be connected smoothly. That is, instead of adjusting and controlling the rendition style waveforms or waveform components that have already been synthesized so that the performance style waveforms or waveform components are smoothly connected to each other, the individual performance style waveforms or waveform components are synthesized. Performs the process of synthesizing rendition waveforms or waveform components by the "rehearsal" process immediately before, and sets the optimal parameters for time and level such as the start point and end point, and uses these optimal parameters to perform the rendition By synthesizing the waveforms or waveform components, the performance style waveforms or waveform components are connected smoothly as a result.
[0046]
In the rehearsal process, a necessary process is performed according to the type or character of the performance style module to be processed. Note that the rehearsal processing target is mainly a rendition style event, but the occurrence time of a note-on event or a note-off event is also considered. For reference, FIG. 8 shows an example of a combination of performance style modules from the start to the end of sound generation. The sequence of events in FIG. 8 is as follows: (1) a rendition style event EV1 designating an attack (entrance) module, (2) a note-on event EV2, (3) a rendition style event EV3 designating a body module, and (4) a joint module. A rendition style event EV4 to specify, (5) note-on event EV5, (6) rendition style event EV6 to specify a body module, (7) rendition style event EV7 to specify a release (finish) module, (8) note-off event EV8 is there.
[0047]
In the example of FIG. 8, when the rendition style waveform according to the rendition style module of the attack part (entrance part) designated by the rendition style event EV1 and the note-on event EV2 which are the current events is synthesized, the next rendition style event EV3 as described above. Are prefetched as future events, and in the rehearsal process, necessary parameters are determined so that the two are smoothly connected. Next, when a rendition style waveform according to the rendition style module of the body part specified by the rendition style event EV3 as the current event is synthesized, the next rendition style event EV4 of the joint part and the note-on event EV5 paired therewith are generated. It is given in advance as a future event, and in the rehearsal process, necessary parameters are determined so that the two are smoothly connected. Similarly, when the rendition style event EV4 and the note-on event EV5 are used as current events and a rendition style waveform according to the rendition style module of the joint portion specified thereby is synthesized, the next rendition style event EV6 is prefetched as a future event as described above. In the rehearsal process, necessary parameters are determined so that the two are smoothly connected. In this example, the sound produced by the first note-on event EV2 and the sound produced by the next note-on event EV5 are connected using the rendition style waveform of the joint portion. 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 the current event is synthesized, a rendition style event EV7 of the next release part and a note-off event paired therewith EV8 is prefetched as a future event, and in the rehearsal process, necessary parameters are determined so that both are smoothly connected. Furthermore, when a rendition style waveform according to the rendition style module of the release part (finish part) specified by the rendition style event EV7 and note-off event EV8 as the current event is synthesized, the rendition style waveform ends with mute. Since it is not necessary to consider connection, rehearsal processing that considers the next performance style event is not performed.
[0048]
Next, specific examples of the “rehearsal” process for several types of rendition style modules will be described.
<Attack (entrance) module>
FIG. 9A is a flowchart showing an example of a procedure of rehearsal processing when the current event is a performance style module of an attack (entrance) section.
In step S1a, the rendition style event (current event) to be processed this time (EV1, EV2 in the example of FIG. 8) is passed to the rendition style synthesis unit 23, and the vector ID corresponding to the rendition style ID (indicating a specific attack style module) And the representative point value sequence (Shape) and other parameters are read out as rehearsals from the rendition style table by the processing of the rendition style synthesis unit 23, and these are received by the part unit 22, and based on this, the level, time, etc. are read as follows. Processing for determining or adjusting parameters (control data) is performed.
[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 style synthesis unit 23, and according to the rendition style ID (indicating a rendition style module of a specific body part) The vector ID, the representative point value sequence (Shape), and other parameters are read out as rehearsals from the rendition style table by the processing of the rendition style synthesis unit 23, and these are received by the part unit 22, and based on this, the level and time are as follows: A process for determining or adjusting parameters (control data) is performed.
In step S3a, processing for determining predetermined data (level and time) for the rendition style module relating to the current rendition style event is performed based on the acquired data about the current rendition style event and the next rendition style event. In the previous steps S1a and S2a, data necessary for the processing here may be read from the rendition style table. In order to describe an example of the content of the rehearsal process here, FIGS. 10A, 10B, 10C, and 10D are referred to.
[0050]
FIG. 10A shows examples of vectors for harmonic components in the attack performance module, where “HA” is a representative point value sequence of harmonic component amplitude vectors (consisting of three points 0, 1, 2 as an example), “ “HP” is a representative point value sequence of harmonic component pitch vectors (consisting of three points of 0, 1, and 2 as an example), and “HT” is an example of harmonic component waveform vectors (however, the waveform is schematically shown only by its envelope). Indicates. Incidentally, the harmonic component waveform vector HT basically consists of sample data of all waveforms at the rising edge of the sound, and includes a loop waveform at the last part. This loop waveform is read out for the purpose of cross-fading when connecting to the subsequent waveform. The parameter “preBlockTimeE” that defines the start time of the harmonic component in the attack performance module is a parameter that defines the difference between the actual sounding start time and the waveform generation start time of the harmonic component of the attack waveform. The start time is set by acquiring a time stamp of a note-on event (EV2 in the example of FIG. 8) that is paired with the start time, grasping an actual sounding start time (“noteOnTime” in FIG. 10), The difference “noteOnTime−preBlockTimeE” from “preBlockTimeE” is set as the harmonic component attack performance module start time “startTimeH”.
[0051]
Of the parameters that define the end time of the harmonic component in the attack performance module, “postBlockTimeE” is a parameter that defines the difference between the actual sounding start time and the main waveform end time 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. Accordingly, the end time “endTimeH” of the harmonic component in the attack performance module including the last crossfade portion is obtained as “noteOnTime + (postBlockTimeE + fadeTimeE)”. This end time “endTimeH” is returned to the rendition style composition unit 23 as data defining the module start time of the harmonic component of the next rendition style event (EV3 in the example of FIG. 8). In this way, the rehearsal process for setting the harmonic component start time of the next rendition style module in accordance with the harmonic component end time “endTimeH” is performed.
[0052]
FIG. 10B shows examples of vectors for non-harmonic components in the attack performance module, where “NHA” is a representative point value sequence of non-harmonic component amplitude vectors (consisting of two points of 0 and 1 as an example), “ “NHT” indicates an example of a non-harmonic component waveform vector (however, the waveform is schematically shown only by its envelope). The parameter “preTimeNH” that defines the start time of the non-harmonic component in the attack performance module is a parameter that defines the difference between the actual sounding start time and the waveform generation start time of the non-harmonic component of the attack waveform. Similarly to the case of the harmonic component described above, the start time of the non-harmonic component is set by acquiring the time stamp of the note-on event (EV2 in the example of FIG. 8) that forms a pair with the actual sound generation start time (see FIG. 10), and the difference between this and “preTimeNH” “noteOnTime-preTimeNH” is set as the attack performance module start time “startTimeNH” of the non-harmonic component.
[0053]
The parameter “postTimeNH” that defines the end time of the non-harmonic component in the attack performance 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 performance module is obtained as “noteOnTime + postTimeNH”. This end time “endTimeNH” is returned to the rendition style composition unit 23 as data defining the module start time of the non-harmonic component of the next rendition style event (EV3 in the example of FIG. 8). In this way, the rehearsal process for setting the start time of the non-harmonic component of the next rendition style module in accordance with the end time “endTimeNH” of the non-harmonic component is performed. As described above, the time adjustment of the non-harmonic component is performed independently of the harmonic component.
[0054]
The rehearsal processing for the level is performed by determining the level (amplitude value) of the amplitude vector end point (2 positions of HA in FIG. 10A) and the end point of the pitch vector (FIG. 10A ) HP 2 position) level (pitch value) and the level (amplitude value) of the amplitude vector start point (HA position 0 in FIG. 10C) of the body part performance module related to the next performance event The pitch vector is adjusted to the level (pitch value) of the starting point of the pitch vector (HP 0 position in FIG. 10C).
FIG. 10C shows examples of vectors for harmonic components in the rendition style module of the body part, where “HA” is a representative point value sequence of harmonic component amplitude vectors (consisting of two points of 0 and 1 as an example), “ “HP” is a representative point value sequence of harmonic component pitch vectors (consisting of two points of 0 and 1 as an example), and “HT” is an example of harmonic component waveform vectors (however, the waveform is schematically shown by a black rectangle). Show. The harmonic component waveform vector HT of the body portion is composed of N loop waveforms respectively corresponding to the N rectangular portions (0, 1,..., N−1) painted black in the figure. A body part waveform having a predetermined time length is generated by sequentially switching and connecting while sequentially reading loops. When it is desired to slightly shorten or extend the time length of the body part, the loop time of each loop part may be shortened / extended. If it is desired to shorten the time length of the body portion beyond that, any one or more of the N loop waveforms may be thinned out and read out appropriately. On the other hand, when it is desired to extend the time length of the body part beyond that, any plural number of the N loop waveforms may be inserted between the N loop waveforms in a predetermined order or randomly.
[0055]
In step S2a of FIG. 9A, for the harmonic component amplitude vector, the starting point of the harmonic component amplitude vector HA of the rendition style module of the body part related to the next rendition style event (0 position of HA in FIG. 10C). Get the level data from the rendition style table. In the next step S3a, the actual level of the starting 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 acquired from the rendition style table. Is set as the level (amplitude value) of the end point (two positions of HA in FIG. 10A) of the harmonic component amplitude vector of the attack part performance method module related to the current performance method event.
Similarly, with respect to the harmonic component pitch vector, the pitch value data of the starting point of the harmonic component pitch vector HP (0 position of HP in FIG. 10C) of the rendition style module of the body part related to the next rendition style event is acquired from the rendition style table. To do. Then, a pitch control value is added to the pitch value data acquired from the rendition style table to calculate the actual pitch of the harmonic component pitch vector HP of the rendition style module of the body part, and this is used as an attack related to the current rendition style event. It is set as the level (pitch value) of the end point (two HP positions in FIG. 10A) of the harmonic component pitch vector of the part performance module.
[0056]
FIG. 10D shows examples of vectors for non-harmonic components in the rendition style module of the body part, and “NHA” is a representative point value string of non-harmonic component amplitude vectors (consisting of two points of 0 and 1 as an example). , “NHT” is an abbreviated example of an out-of-harmonic component waveform vector. The non-harmonic component waveform vector NHT is composed of three blocks, the first block is composed of all non-harmonic component waveforms for a predetermined period “NHBlockTime0”, and the second block is a non-harmonic component waveform (Loop) for a loop. ), And the third block is composed of all the non-harmonic component waveforms for a predetermined period “NHBlockTime1”. The time length of the non-harmonic component waveform corresponding to the self-sensing of the body part is adjusted by adjusting the time length for loop reproduction of the non-harmonic component waveform (Loop) for the loop of the second block.
In step S2a of FIG. 9A, for the out-of-harmonic component amplitude vector, the start point of the out-of-harmonic component amplitude vector NHA of the rendition style module of the body part related to the next rendition style event (the NHA 0 position in FIG. 10D) ) Level data is obtained from the rendition style table. In the next step S3a, the actual value 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 NHA in FIG. 10B) of the non-harmonic component amplitude vector of the attack part rendition style module related to the current rendition 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 method module related to the current performance style event is given to the performance style synthesis unit 23. In the next step Sa5, the end times “endTimeH” and “endTimeNH” of the harmonic component and the nonharmonic component of the current rendition style event (EV1 in the example of FIG. 8) determined as described above are used as the next rendition style event ( In the example of FIG. 8, EV3) harmonic component and non-harmonic component module start times are set as data defining the module start time. When the rehearsal process ends, the flow in FIG. 5 proceeds to the process of the rendition style synthesis unit 23. The processing of the rendition style synthesis unit 23 will be described later, and next, rehearsal processing for another module will be described.
[0058]
<Body module>
FIG. 9B is a flowchart showing an example of a procedure for rehearsal processing when the current event is a rendition style module for the body part.
In step S1b, a rendition style event (current event) to be processed this time (for example, EV3 or EV6 in FIG. 8) is passed to the rendition style synthesis unit 23, and a vector corresponding to the rendition style ID (indicating a rendition style module of a specific body part) The ID, representative point value sequence (Shape), and other parameters are read out as rehearsals from the rendition style table by the processing of the rendition style synthesis unit 23, and these are received by the part unit 22 and based on this, the level, time, etc. are as follows: To determine or adjust the parameters (control data). It should be noted that the parameters that have already been adjusted / changed during the rehearsal process for the last performance style event are those that have been adjusted / changed.
[0059]
In step S2b, the next rendition style event (future event obtained by prefetching) is passed to the rendition style synthesis unit 23, and the vector ID, representative point value sequence (Shape) and other parameters corresponding to the rendition style ID are stored in the rendition style synthesis unit 23. Through the processing, the part section 22 receives these from the rendition style table, and determines or adjusts parameters (control data) such as level and time based on this. The next performance event for the body part is either the release part performance event or the joint part performance event. In FIG. 8, the body performance method event EV3 is followed by the joint performance method event EV4 and a note-on event EV5 that is paired therewith, and the body performance method event EV6 is followed by the release performance method event EV7 and the note that is paired therewith. Off event EV8 is coming.
In steps S3b and S5b, a process for 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 about the current rendition style event and the next rendition style event. In step S <b> 4 b, an instruction to start synthesis of the body part performance method module related to the current performance style event is given to the performance style synthesis unit 23.
[0060]
For the rendition style module of the body part, the start time is basically matched with the end time of the performance style module that precedes it, and the end time is matched with the start time of the performance style module that follows it. The body part performance module uses the levels of the start point and the end point in the amplitude vector of the outer component and the pitch vector of the harmonic component. That is, the rehearsal process is performed so that the end point level of the preceding rendition style module matches the start point level of the body part rendition style module, and the start point level of the subsequent rendition style module matches the end point level of the body part rendition style module.
Since the start time of the harmonic component and the non-harmonic component of the rendition style module of the body part has already been determined by the rehearsal processing at the previous rendition style event (for example, the event of the attack part rendition style module described above), it is necessary to obtain it here There is no.
In order to determine the end time of the harmonic component and the non-harmonic component of the rendition style module of the body part, the next rendition style module (release part or joint part) is rehearsed in step S2b, and each of the harmonic component and the non-harmonic component is determined. Find the start time. In step S3b, the start times of the harmonic component and the non-harmonic component of the next rendition style module (release part or joint part) obtained above are used as the end times of the harmonic component and the non-harmonic component of the rendition style module of the current body part. Determine as time.
[0061]
The details of such time determination processing may be performed in a manner according to the manner already described in relation to the attack part performance module.
For reference, each vector example for the harmonic component in the joint performance module that can be the next performance module is shown in FIG. 11A, and each vector example for the non-harmonic component in the joint performance module is shown in FIG. Shown in b). The meanings of symbols such as HA, HP, HT, NHA, and NHT are the same as those in FIG. In FIG. 11A, the parameter “preTimeH” that defines the start time of the harmonic component is a note-on event occurrence time at the joint portion (EV5 in the example of FIG. 8) and a waveform generation start time of the harmonic component at the joint portion. The deviation is defined. Through this rehearsal, the time stamp of the note-on event that is the next event (EV5 in the example of FIG. 8) is acquired, and the actual pronunciation start time (“noteOnTime” in FIG. 11A) is grasped. The difference between this and “preTimeH” “noteOnTime−preTimeH” is set as the joint part performance module start time of the harmonic component. In this way, the joint part performance method module start time of the harmonic component set in the rehearsal is determined as the end time of the harmonic component of the performance module of the body part. The parameter “preTimeNH” that defines the start time of the non-harmonic component in FIG. 11B is similarly rehearsed to set the joint performance method module start time of the non-harmonic component and harmonize the performance module of the body part. It is determined as the end time of the external component.
[0062]
In addition, the level of each starting point in the harmonic vector and the harmonic vector of the harmonic component and the harmonic component of the rendition component module of the body part and the pitch vector of the harmonic component is harmonized with the performance module of the previous performance method event (for example, the attack unit performance module described above). The setting of the respective end point levels in the amplitude vector of the component and the non-harmonic component and the pitch vector of the harmonic component has already been completed by the rehearsal process in the previous rendition style event.
Therefore, here, the level of each end point in the amplitude vector of the harmonic component and the non-harmonic component of the rendition style module of the body part and the pitch vector of the harmonic component, the harmonic component of the rendition style module related to the next rendition style event (future event), and It determines as the level of each starting point in each amplitude vector of a non-harmonic component, and the pitch vector of a harmonic component (step S5b).
[0063]
The details of such level determination processing may also be performed in a manner according to the manner already described in relation to the attack part performance module. For the harmonic component amplitude vector, the level data of the end point of the harmonic component amplitude vector HA (two positions of HA in FIG. 10C) of the rendition style module of the body part related 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 acquired from the rendition style table, and this is used as the next rendition style event. Is set as the level (amplitude value) of the starting point of the harmonic component amplitude vector of the rendition style module according to (0 position of HA in FIG. 11A). Similarly, for the harmonic component pitch vector, the pitch value data of the end point (two positions of HP in FIG. 10C) of the harmonic component pitch vector HP of the rendition style module of the body part related to the current rendition style event is obtained. Get from. Then, the actual pitch at the end point of the harmonic component pitch vector HP of the rendition style module of the body part is calculated by adding the pitch control value to the pitch value data acquired from the rendition style table, and this is used as the rendition style related to the next rendition style event. It is set as the level (pitch value) of the starting point of the harmonic component pitch vector of the module (0 position of HP in FIG. 11A).
Similarly, for the non-harmonic component amplitude vector, the level data of the end point of the non-harmonic component amplitude vector NHA (1 position of HA in FIG. 10D) of the rendition style module of the body part related to the current rendition style event is acquired from the rendition style table. The actual level of the end point of the non-harmonic component amplitude vector V HA of the rendition style module of the body part is calculated by adding the velocity value and the volume setting value to the acquired level data, and this is used as the next rendition style event. Is set as the level (amplitude value) of the starting point of the non-harmonic component amplitude vector of the rendition style module according to (0 position of NHA in FIG. 11B).
[0064]
<Joint module>
FIG. 9C is a flowchart showing an example of a procedure for rehearsal processing when the current event is a rendition style module of a joint part.
In step S1c, a rendition style event (current event) to be processed this time (for example, EV4 and EV5 in FIG. 8) is passed to the rendition style synthesis unit 23, and a vector corresponding to the rendition style ID (indicating a rendition style module of a specific joint part) The ID, representative point value sequence (Shape), and other parameters are read out as rehearsals from the rendition style table by the processing of the rendition style synthesis unit 23, and these are received by the part unit 22 and based on this, the level, time, etc. are as follows: To determine or adjust the parameters (control data). It should be noted that the parameters that have already been adjusted / changed during the rehearsal process for the last performance style event are those that have been adjusted / changed.
[0065]
In step S2c, the next rendition style event (future event obtained by prefetching) is passed to the rendition style synthesis unit 23, and the vector ID, representative point value sequence (Shape) and other parameters corresponding to the rendition style ID are stored in the rendition style synthesis unit 23. Through the processing, the part section 22 receives these from the rendition style table, and determines or adjusts parameters (control data) such as level and time based on this. The next rendition style event of the joint part is the rendition style event of the second body part (for example, EV6 in FIG. 8).
In steps S3c and S5c, processing for 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 about the current rendition style event and the next rendition style event. In step S <b> 4 c, an instruction to start synthesizing the joint part rendition style module related to the current rendition style event is given to the rendition style synthesis unit 23.
[0066]
As for the rendition style module of the joint part, basically, the level of each starting point in the amplitude vector of the harmonic component and the non-harmonic component and the pitch vector of the harmonic component is the level of each of the preceding body part rendition style modules (for example, EV3 in FIG. 8). The level of each end point in the amplitude vector of the harmonic component and the non-harmonic component and the pitch vector of the harmonic component is adjusted to the level of the end point, and the level of each start point of the subsequent body part performance module (for example, EV6 in FIG. 8). Rehearsal processing is performed to match.
The data of the level of each start point in the amplitude vector of the harmonic component and the non-harmonic component of the rendition style module of the joint unit and the pitch vector of the harmonic component is already obtained by rehearsal processing of the previous rendition style event (step S5b in FIG. 9B). Since it has been decided, use it. Therefore, in step S3c, the following body part performance module (for example, EV6 in FIG. 8) is mainly used as the level of each end point in the harmonic vector and the non-harmonic component amplitude vector and the harmonic component pitch vector of the joint part performance module. ) Is performed using the rehearsal result of the next body part performance module obtained in step S2c so as to determine a value corresponding to the level of each starting point. Specifically, this may be performed by a method similar to the processing in step S3a in FIG. 9A, and thus detailed description thereof is omitted.
[0067]
As to 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 note-on event (EV5 in the example of FIG. 8), which is the next event, is obtained. 11 is acquired, and the difference between this and “preTimeH” “noteOnTime-preTimeH” is set as the harmonic component joint part performance module start time. The joint part performance method module start time of the non-harmonic component is also obtained by the method as described above with reference to FIG. These may be obtained during the rehearsal in step S1c.
As for the end time of the rendition style module of the joint part, as shown in FIG. 11A, the parameter “postTimeH” that defines the end time of the harmonic component is the time when the note-on event occurs in the joint part (example in FIG. 8). Since the deviation between EV5) and the end of waveform generation of the harmonic component of the joint is defined, this is added to the note-on event (EV5 in the example of FIG. 8), which is the next event, “noteOnTime”. Then, “noteOnTime + postTimeH” is determined as the harmonic component joint part performance module end time. In step S5c, the joint component rendition style module end time of the harmonic component set in the rehearsal is set as the start time of the harmonic component of the next body part rendition style module. The parameter “postTimeNH” that defines the end time of the non-harmonic component in FIG. 11B is similarly rehearsed to determine the joint part performance module end time of the non-harmonic component, and the next body part rendition style module Is set as the start time of the non-harmonic component.
[0068]
<Release (finish) module>
FIG. 9D is a flowchart showing an example of a procedure of rehearsal processing when the current event is a rendition style performance module.
In step S1d, a rendition style event (current event) to be processed this time (for example, EV7 and EV8 in FIG. 8) is passed to the rendition style composition unit 23, and a vector corresponding to the rendition style ID (indicating a rendition style module of a specific joint part) The ID, representative point value sequence (Shape), and other parameters are read out as rehearsals from the rendition style table by the processing of the rendition style synthesis unit 23, and these are received by the part unit 22 and based on this, the level, time, etc. are as follows: To determine or adjust the parameters (control data). It should be noted that the parameters that have already been adjusted / changed during the rehearsal process for the last performance style event are those that have been adjusted / changed. Usually, at the previous rendition style event, the data necessary for the rendition style event to be processed this time has already been rehearsed, so this step S1d can actually be omitted.
[0069]
For reference, FIG. 11C shows examples of vectors for harmonic components in the release part performance module, and FIG. 11D shows examples of vectors for out-of-harmonic components in the performance module. The meanings of symbols such as HA, HP, HT, NHA, and NHT are the same as those in FIG. In FIG. 11C, among the parameters that define the start time of the harmonic component, “fadeTimeF” indicates the time for cross-fading the end waveform of the previous rendition style module and the start waveform of the release part, and “preBlockTimeF” "" Indicates the time difference from the end of the crossfade to the time of occurrence of the note-off event, which is the next event (EV8 in the example of FIG. 8). The start time of the harmonic component of the release part rendition style module is determined by “noteOffTime− (fadeTimeF + preBlockTimeF)” with reference to the occurrence time “noteOffTime” of the note-off event. In addition, the start time of the non-harmonic component of the release part performance module is determined by “noteOffTime-preTimeNH”. Since these start times have already been obtained in the rehearsal processing (steps S2b and S3b in FIG. 9B) of the body part rendition style module which is the previous rendition style event, it can be used.
In addition, the level of each start point in the amplitude vector of the harmonic component and the non-harmonic component of the rendition style module and the pitch vector of the harmonic component matches the level of each end point of the preceding body part performance module (for example, EV6 in FIG. 8). . This is already obtained in the rehearsal process (step S5b in FIG. 9B) of the body part performance module, which is the previous rendition style event, so that it can be used.
[0070]
As described above, the rehearsal in step S1d is actually unnecessary because the release part (finishing part), which is a rendition style module that ends the pronunciation, should have been rehearsed before that time. In step S4d, an instruction to start synthesizing the release part rendition style module related to the current rendition style event is given to the rendition style synthesis unit 23.
9A, 9B, and 9C are not performed by the rehearsal process by the part unit 22, and the rendition style synthesis unit 23 actually performs the rendition style synthesis. You may make it carry out.
[0071]
(4) Performance style synthesis unit 23
In FIG. 5, a rendition style composition unit 23 receives a rendition style event (with time stamp) and rehearsal result data sent from the part part 22 and performs a predetermined rendition style synthesis process. In this rendition style synthesis process, according to a predetermined rendition style algorithm, the rendition style event ID and parameters or control data are interpreted and processed, and based on this, each vector ID, representative point value sequence, and various parameters are read from the rendition style table. Modify or modify if Each of these vector IDs corresponding to a rendition style event, a representative point value sequence, various parameters, etc., and parameters (control data) such as time and level determined by the rehearsal are packetized and output as stream data in time order. To do. In FIG. 6, blocks 331a, 331b, 331c,... Exemplify timing at which the rendition style synthesis unit 23 executes rendition style synthesis processing and the like. 6 illustrates the output processing portion of the packetized stream data, and blocks 330a, 330b, 330c,... Of the above illustrate the output timing of each stream data.
[0072]
(5) Waveform synthesis unit 24
In FIG. 5, the waveform synthesizer 24 receives the above-mentioned packetized stream data such as each vector ID and a representative point value sequence from the rendition style synthesizer 23, and the vector ID at a time preceding the current time by the prefetch time α. The waveform template data and the like are read out from the code book in the waveform database according to the above, and the amplitude vector and the pitch vector based on the representative point value sequence and the parameters etc. at the time before the output latency time δ from the current time. Are generated, and a harmonic component waveform and an out-of-harmonic component waveform of the rendition style waveform are formed based on these shapes. Then, the harmonic component waveform and the non-harmonic component waveform of the rendition style waveform are pasted at predetermined time positions according to the respective time data, and finally these are added and synthesized to synthesize the rendition style waveform. The reproduction time (that is, current time) data established here is given to the easy player unit 20 and used for real-time display of the reproduction position (time). In FIG. 6, blocks 341, 342, 343,... Exemplify the prefetch timing for the code book in the waveform database in the waveform synthesizer 24. As a technique for generating performance style waveform data based on the waveform template data and the envelope waveform shape of the amplitude vector and the pitch vector in the waveform synthesis unit 24, for example, a technique known as “software sound source” may be appropriately employed. it can. The rendition style waveform data synthesized by the waveform synthesis unit 24 is applied to an output buffer (included in the waveform output unit 108 in FIG. 1). The rendition style waveform data stored in the output buffer is read out at a predetermined reproduction sampling period, and is spatially generated via the sound system 108A (FIG. 1).
[0073]
In the above embodiment, the current performance style event is read and the future performance style event corresponding to the current performance style event is read every predetermined time ε. However, the present invention is not limited to this, and may be performed as needed.
[0074]
【The invention's effect】
As described above, according to the present invention, before actually synthesizing the waveform corresponding to the designated rendition style module, the end information on at least the end characteristic of the preceding rendition style module and the front end information on at least the front end characteristic of the subsequent rendition style module By acquiring (rehearsing), it is possible to modify at least one of the characteristics so that the two are smoothly connected from the relationship between the acquired end information and tip information. By synthesizing the waveforms corresponding to the rendition style modules in accordance with the characteristics thus corrected, it is possible to smoothly connect the rendition style waveforms based on the successive rendition style modules.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a hardware configuration example of an apparatus that can be used in an embodiment of the present invention.
FIG. 2 is a diagram 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 diagram for explaining a configuration example of automatic performance data (song file) of one song.
FIG. 5 is a flowchart showing a rough procedure of a rendition style waveform generation process according to the embodiment.
FIG. 6 is a schematic timing chart roughly 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 showing an example of a rendition style event sequence object, and FIG. 7B is a relationship between a sending frequency that defines the processing timing of the current rendition style event and a prepaid time for prefetching and sending the subsequent rendition style event. The timing chart which illustrates this.
FIG. 8 is a timing chart illustrating an example of a combination state of performance style modules from the start to the end of sound generation.
FIG. 9 is a flowchart showing an example of rehearsal processing corresponding to various performance style modules.
FIGS. 10A and 10B are diagrams showing examples of vectors for harmonic components and out-of-harmonic components in the rendition style module of the attack part, and FIGS. 10C and 10D are harmonic components in the rendition style module of the body part. The figure which shows each vector example for a non-harmonic component.
FIGS. 11A and 11B are diagrams showing examples of vectors for harmonic components and out-of-harmonic components in the rendition style module of the joint section, and FIGS. 11C and 11D are harmonic components in the rendition style module of the release section and FIG. The figure which shows each vector example for a non-harmonic component.
[Explanation of symbols]
101 CPU
102 ROM
103 RAM
104 Panel switch
105 Panel display
108 Waveform output unit 108
109 hard disk
20 Easy Player 20
21 Performance sequence section
22 Part
23 Performance Composition Department
24 Waveform synthesis unit

Claims (5)

調和成分の要素と調和外成分の要素とを含む奏法モジュールを順次指定するステップと、
前記指定に従い、先行する奏法モジュールの少なくとも終端特性に関する終端情報と後続する奏法モジュールの少なくとも先端特性に関する先端情報とを、調和成分及び調和外成分の各要素毎に、取得するステップと、
取得した終端情報と先端情報に基づいて、前記先行する奏法モジュールと後続する奏法モジュールの少なくとも一方の特性を、前記調和成分及び調和外成分の各要素毎に、修正するステップであって、当該修正の方法は、前記先行する奏法モジュールの種類と前記後続する奏法モジュールの種類とに応じて定められているものと、
前記指定された奏法モジュールに対応する波形を前記修正に従う特性で合成するステップと
を具える波形生成方法。
Sequentially specifying rendition style modules including elements of harmonic components and elements of non-harmonic components;
In accordance with the above specification, the step of acquiring, for each element of the harmonic component and the non-harmonic component, termination information regarding at least the termination characteristic of the preceding rendition style module and tip information regarding at least the leading end characteristic of the subsequent rendition style module;
Correcting at least one characteristic of the preceding rendition style module and the subsequent rendition style module for each element of the harmonic component and the non-harmonic component based on the acquired end information and front end information , the correction The method is determined according to the type of the preceding rendition style module and the type of the subsequent rendition style module ;
Synthesizing a waveform corresponding to the designated rendition style module with characteristics according to the correction.
前記終端情報と先端情報は、時刻情報とレベル情報の少なくとも一方を含む請求項1に記載の波形生成方法。The waveform generation method according to claim 1, wherein the end information and the tip information include at least one of time information and level information. 請求項1又は2に記載の波形生成方法をコンピュータに実行させるためのプログラム。A program for causing a computer to execute the waveform generation method according to claim 1. 請求項3に記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。A computer-readable storage medium storing the program according to claim 3. 調和成分の要素と調和外成分の要素とを含む奏法モジュールを順次指定する手段と、
前記指定に従い、先行する奏法モジュールの少なくとも終端特性に関する終端情報と後続する奏法モジュールの少なくとも先端特性に関する先端情報とを、調和成分及び調和外成分の各要素毎に、取得する手段と、
取得した終端情報と先端情報に基づいて、前記先行する奏法モジュールと後続する奏法モジュールの少なくとも一方の特性を、前記調和成分及び調和外成分の各要素毎に、修正する手段であって、当該修正の方法は、前記先行する奏法モジュールの種類と前記後続する奏法モジュールの種類とに応じて定められているものと、
前記指定された奏法モジュールに対応する波形を前記修正に従う特性で合成する手段と
を具える波形生成装置。
Means for sequentially specifying rendition style modules including elements of harmonic components and elements of non-harmonic components;
In accordance with the specification, means for acquiring the end information on at least the end characteristic of the preceding rendition style module and the front end information on at least the front end characteristic of the subsequent rendition style module for each element of the harmonic component and the non-harmonic component;
Based on the acquired end information and leading edge information, the means for correcting at least one characteristic of the preceding rendition style module and the subsequent rendition style module for each element of the harmonic component and the non-harmonic component , the correction The method is determined according to the type of the preceding rendition style module and the type of the subsequent rendition style module ;
A waveform generating apparatus comprising means for synthesizing a waveform corresponding to the designated rendition style module with characteristics according to the correction.
JP2001091187A 2001-03-27 2001-03-27 Waveform generation method and apparatus Expired - Fee Related JP3613191B2 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2001091187A JP3613191B2 (en) 2001-03-27 2001-03-27 Waveform generation method and apparatus
SG200201698A SG118122A1 (en) 2001-03-27 2002-03-25 Waveform production method and apparatus
EP02006823A EP1258864A3 (en) 2001-03-27 2002-03-25 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
US10/107,865 US7259315B2 (en) 2001-03-27 2002-03-26 Waveform production method and apparatus
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
JP2001091187A JP3613191B2 (en) 2001-03-27 2001-03-27 Waveform generation method and apparatus

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2004174691A Division JP3876896B2 (en) 2004-06-11 2004-06-11 Waveform generation method and apparatus

Publications (2)

Publication Number Publication Date
JP2002287760A JP2002287760A (en) 2002-10-04
JP3613191B2 true JP3613191B2 (en) 2005-01-26

Family

ID=18945855

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001091187A Expired - Fee Related JP3613191B2 (en) 2001-03-27 2001-03-27 Waveform generation method and apparatus

Country Status (1)

Country Link
JP (1) JP3613191B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5242325B2 (en) * 2008-10-03 2013-07-24 株式会社河合楽器製作所 Tablature input device, tablature input method and program
CN111326131B (en) * 2020-03-03 2023-06-02 北京香侬慧语科技有限责任公司 Song conversion method, device, equipment and medium

Also Published As

Publication number Publication date
JP2002287760A (en) 2002-10-04

Similar Documents

Publication Publication Date Title
US7259315B2 (en) Waveform production method and apparatus
JP3975772B2 (en) Waveform generating apparatus and method
US6687674B2 (en) Waveform forming device and method
US7432435B2 (en) Tone synthesis apparatus and method
JP3601371B2 (en) Waveform generation method and apparatus
JP3654079B2 (en) Waveform generation method and apparatus
JP3654083B2 (en) Waveform generation method and apparatus
US7816599B2 (en) Tone synthesis apparatus and method
JP4561636B2 (en) Musical sound synthesizer and program
JP3915807B2 (en) Automatic performance determination device 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
JP3876896B2 (en) Waveform generation method and apparatus
JP3552676B2 (en) Waveform generation method and apparatus
JP3933162B2 (en) Waveform generation method and apparatus
JP3674527B2 (en) Waveform generation method and apparatus
JP3933161B2 (en) Waveform generation method and apparatus
JP4007374B2 (en) Waveform generation method and apparatus
JP3829707B2 (en) Waveform generating apparatus and method
JP2008158214A (en) Musical sound synthesizer and program

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040413

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040611

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041018

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081105

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20081105

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091105

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101105

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101105

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111105

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111105

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121105

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121105

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees