JP2002287760A - 波形生成方法及び装置 - Google Patents
波形生成方法及び装置Info
- Publication number
- JP2002287760A JP2002287760A JP2001091187A JP2001091187A JP2002287760A JP 2002287760 A JP2002287760 A JP 2002287760A JP 2001091187 A JP2001091187 A JP 2001091187A JP 2001091187 A JP2001091187 A JP 2001091187A JP 2002287760 A JP2002287760 A JP 2002287760A
- Authority
- JP
- Japan
- Prior art keywords
- waveform
- rendition style
- event
- data
- style
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
応する奏法波形の生成。複数の奏法モジュールを接続す
る場合に、不自然さを伴うことなく奏法モジュール同士
の接続を行う。 【解決手段】 生成すべき奏法モジュールが順次に指定
される。この指定に従い、先行する奏法モジュールを処
理する際に、該先行する奏法モジュールの少なくとも終
端特性に関する終端情報とそれに後続する奏法モジュー
ルの少なくとも先端特性に関する先端情報とを一緒に取
得する。取得した終端情報と先端情報に基づいて、前記
先行する奏法モジュールと後続する奏法モジュールの少
なくとも一方の特性を修正する。指定された奏法モジュ
ールに対応する波形をこの修正に従う特性で合成する。
Description
らの波形データの読み出し等に基づき、楽音あるいは音
声若しくはその他任意の音の波形を生成する方法及び装
置に関し、特に、自然楽器固有の各種奏法若しくはアー
ティキュレーションによる音色変化を忠実に表現した波
形を生成することができるものに関する。この発明は、
電子楽器は勿論のこと、自動演奏装置、コンピュータ、
電子ゲーム装置その他のマルチメディア機器等、楽音あ
るいは音声若しくはその他任意の音を発生する機能を有
するあらゆる分野の機器若しくは装置または方法におい
て広範囲に応用できるものである。なお、この明細書に
おいて、楽音波形という場合、音楽的な音の波形に限る
ものではなく、音声あるいはその他任意の音の波形を含
んでいてもよい意味合いで用いるものとする。
号変調)あるいはDPCM(差分PCM)又はADPC
M(適応差分PCM)等の任意の符号化方式で符号化し
た波形データ(つまり波形サンプルデータ)を記憶して
おき、これを所望の音楽ピッチに対応して読み出すこと
により、楽音波形を形成するようにした、いわゆる「波
形メモリ読み出し」技術は既に公知であり、また、様々
なタイプの「波形メモリ読み出し方式」技術が知られて
いる。従来知られた「波形メモリ読み出し方式」技術の
ほとんどは、発音開始から終了までの1つの音の波形を
発生するためのものである。一例として、発音開始から
終了までの1音の全波形の波形データを記憶する方式が
ある。また、別の例として、変化の複雑なアタック部な
どについてはその全波形の波形データを記憶し、変化の
あまりないサステイン部などについては所定のループ波
形を記憶する方式がある。なお、本明細書において、
「ループ波形」とは繰り返し読出し(ループ読出し)さ
れる波形という意味で用いるものとする。
1音の全波形の波形データを記憶する方式やアタック部
などの波形の一部において全波形の波形データを記憶す
る方式の「波形メモリ読み出し方式」技術においては、
各種奏法(若しくはアーティキュレーション)に対応す
る様々な波形データを多数記憶しておかなければなら
ず、この多数の波形データを記憶するために大きな記憶
容量が必要であった。また、上述の全波形の波形データ
を記憶する方式では、自然楽器固有の各種奏法(若しく
はアーティキュレーション)による音色変化を忠実に表
現することが可能であるが、記憶した波形データの通り
しか楽音を再生することができないので、制御性に乏し
く、また、編集性にも乏しかった。例えば、所望の奏法
(若しくはアーティキュレーション)に対応する波形デ
ータを演奏データに応じた時間軸制御等の特性制御を行
うことが非常に困難であった。
自然楽器固有の各種奏法(すなわちアーティキュレーシ
ョン)のリアルな再現とその制御を容易にした技術が、
SAEM(Sound Articulation Element Modeling)技
術と称して、特開2000−122665号公報その他
に示されている。そのようなSAEM技術においては、
複数の奏法波形モジュールを時系列的に組み合わせて接
続することで一連の音波形を作成する場合に、不自然さ
を伴うことなく奏法波形モジュール同士の接続を行うこ
とが望まれる。本発明は上述の点に鑑みてなされたもの
で、様々な奏法(若しくはアーティキュレーション)に
対応する高品質な波形データを容易かつ簡便にまた制御
性豊かに生成することのできる波形生成方法及び装置を
提供しようとするものであり、更には、その場合に、不
自然さを伴うことなく奏法モジュール同士の接続を行う
ことができるようにした波形生成方法及び装置を提供し
ようとするものである。
法は、奏法モジュールを順次指定するステップと、前記
指定に従い、先行する奏法モジュールの少なくとも終端
特性に関する終端情報と後続する奏法モジュールの少な
くとも先端特性に関する先端情報とを取得するステップ
と、取得した終端情報と先端情報に基づいて、前記先行
する奏法モジュールと後続する奏法モジュールの少なく
とも一方の特性を修正するステップと、前記指定された
奏法モジュールに対応する波形を前記修正に従う特性で
合成するステップとを具える。
に対応する波形を実際に合成する前に、該先行する奏法
モジュールの少なくとも終端特性に関する終端情報とそ
れに後続する奏法モジュールの少なくとも先端特性に関
する先端情報とを取得する(リハーサルによる取得)。
こうしてリハーサルとして取得した先行する奏法モジュ
ールの少なくとも終端情報と後続する奏法モジュールの
少なくとも先端情報の関係から両者が滑らかに接続され
るように、少なくとも一方の特性を修正し、修正した特
性をパラメータ若しくは制御データとして保持する。こ
のように修正された特性に従い、奏法モジュールに対応
する波形を実際に合成する。従って、相前後する奏法モ
ジュールに基づく奏法波形同士が円滑に接続されるよう
にすることができる。
ることができるのみならず、装置の発明として構成し実
施することができる。また、本発明は、コンピュータま
たはDSP等のプロセッサのプログラムの形態で実施す
ることができるし、そのようなプログラムを記憶した記
憶媒体の形態で実施することもできる。
付図面に従って詳細に説明する。 〔ハードウエア構成例〕図1は、この発明の一実施例に
おいて利用可能な装置のハードウエア構成例を示すブロ
ック図である。ここに示されたハードウエア構成例はコ
ンピュータを用いて構成されており、そこにおいて、波
形生成処理は、コンピュータがこの発明に係る波形生成
処理を実現する所定のプログラム(ソフトウエア)を実
行することにより実施される。勿論、この波形生成処理
はコンピュータソフトウエアの形態に限らず、DSP
(ディジタル・シグナル・プロセッサ)によって処理さ
れるマイクロプログラムの形態でも実施可能であり、ま
た、この種のプログラムの形態に限らず、ディスクリー
ト回路又は集積回路若しくは大規模集積回路等を含んで
構成された専用ハードウエア装置の形態で実施してもよ
い。また、この波形生成装置は、電子楽器あるいはカラ
オケ装置又は電子ゲーム装置又はその他のマルチメディ
ア機器又はパーソナルコンピュータ等、任意の製品応用
形態をとっていてよい。
ては、コンピュータのメイン制御部としてのCPU10
1に対して、バスラインBL(データあるいはアドレス
バス等)を介してリードオンリメモリ(ROM)10
2、ランダムアクセスメモリ(RAM)103、パネル
スイッチ104、パネル表示器105、ドライブ10
6、波形取込部107、波形出力部108、ハードディ
スク109、通信インタフェース111がそれぞれ接続
されている。CPU101は、奏法波形生成処理や通常
の楽音合成(ソフトウエア音源)等の各種の処理を、所
定のプログラムに基づいて実行する。これらのプログラ
ムは、通信インタフェース111を介したネットワーク
あるいはドライブ106に装着されたCDやMO等の外
部記憶メディア106A等から供給されてハードディス
ク109に記憶される。そして、実行時にハードディス
ク109からRAM103にロードされる。あるいは、
ROM102にプログラムが記録されていてもよい。R
OM102は、CPU101により実行あるいは参照さ
れる各種プログラムや各種データ等を格納するものであ
る。ROM103は、演奏に関する各種情報やCPU1
01がプログラムを実行する際に発生する各種データを
一時的に記憶するワーキングメモリとして、あるいは現
在実行中のプログラムやそれに関連するデータを記憶す
るメモリとして使用される。RAM103の所定のアド
レス領域がそれぞれの機能に割り当てられ、レジスタや
フラグ、テーブル、メモリなどとして利用される。パネ
ルスイッチ104は、各種の演奏条件や波形生成条件等
の設定情報を入力したり、波形データ等のエディットや
各種情報の入力等を行うための各種の操作子を含んで構
成される。例えば、数値データ入力用のテンキーや文字
データ入力用のキーボード、あるいはパネルスイッチ等
である。この他にも音高、音色、効果等を選択・設定・
制御するための各種操作子を含んでいてよい。パネル表
示器105は、パネルスイッチ104により入力された
各種情報やサンプリングされた波形データ等を表示す
る、例えば液晶表示パネル(LCD)やCRT等のディ
スプレイである。
し、外部波形入力(例えば、マイクロフォンなどからの
入力)されたアナログ楽音信号をデジタルデータに変換
(サンプリング)してRAM103あるいはハードディ
スク109に該デジタル波形データとして取り込むもの
である。取り込んだ波形データを基にして奏法波形デー
タベースの作成を行うことができるが、その詳細説明は
省略する。また、CPU101による波形生成処理によ
って生成された波形データはバスラインBLを介して波
形出力部108に与えられ、適宜バッファ記憶される。
波形出力部108ではバッファ記憶された波形データを
所定の出力サンプリング周波数にしたがって出力し、こ
れをD/A変換してサウンドシステム108Aに送出す
る。こうして、波形出力部108から出力された楽音信
号は、サウンドシステム108Aを介して発音される。
ハードディスク109は、奏法に応じた波形を合成する
ためのデータ(後述する奏法テーブル、コードブック等
のデータ)や通常の波形データ、各種音色パラメータ等
からなる音色データなどのような演奏に関する複数種類
のデータを記憶したり、前記CPU101が実行する各
種プログラム等の制御に関するデータを記憶するデータ
ベースとして機能する。
成するためのデータ(後述する奏法テーブル、コードブ
ック等の各種データ)や通常の波形データ、多種多様な
音色パラメータ等からなる音色データなどのような演奏
に関する複数種類のデータを記憶したり、前記CPU1
01が実行する各種プログラム等の制御に関するデータ
を記憶したりするための着脱可能なディスク(外部記憶
メディア106A)をドライブするものである。なお、
前記ドライブ106によりドライブされる外部記憶メデ
ィア106Aはフロッピー(登録商標)ディスク(F
D)の他に、コンパクトディスク(CD−ROM・CD
−RAM)、光磁気ディスク(MO)、あるいはDVD
(Digital Versatile Diskの
略)等の着脱自在な様々な形態の記憶メディアであって
よい。制御プログラムを記憶した外部記憶メディア10
6Aをドライブ106にセットし、その内容(制御プロ
グラム)をハードディスク109に落とさずに、RAM
103に直接ロードしてもよい。なお、外部記憶メディ
ア106Aを用いて、あるいはネットワークを介して制
御プログラムを提供するやり方は、制御プログラムの追
加やバージョンアップ等を容易に行うことができるので
好都合である。
Nやインターネット、電話回線等の通信ネットワーク
(図示せず)に接続されており、該通信ネットワークを
介して、サーバコンピュータ等(図示せず)と接続さ
れ、当該サーバコンピュータ等から制御プログラムや各
種データあるいは演奏情報などを波形生成装置側に取り
込むためのものである。すなわち、ROM102やハー
ドディスク109に制御プログラムや各種データが記憶
されていない場合に、サーバコンピュータから制御プロ
グラムや各種データをダウンロードするために用いられ
る。クライアントとなる波形生成装置は、通信インター
フェース111を介してサーバコンピュータへと制御プ
ログラムや各種データのダウンロードを要求するコマン
ドを送信する。サーバコンピュータは、このコマンドを
受け、要求された制御プログラムやデータなどを通信イ
ンタフェース111を介してハードディスク109に蓄
積することにより、ダウンロードが完了する。更に、M
IDIインタフェースを含み、MIDIの演奏情報を受
け取るようにしてもよいのは勿論である。また、音楽演
奏用キーボードや演奏操作機器をバスラインBLに接続
し、リアルタイム演奏によって演奏情報を供給するよう
にしてもよいのは言うまでもない。勿論、所望の音楽曲
の演奏情報を記憶した外部記憶メディア106Aを使用
して、演奏情報を供給するようにしてもよい。
ドディスク109あるいはその他適宜の記憶媒体を用い
て構成される奏法波形データベースにおいては、種々の
奏法(すなわちアーティキュレーション)の要素に対応
する波形を再生するための多数のモジュールデータ(こ
れを「奏法モジュール」という)とそれに関連するデー
タ群を記憶している。1つの「奏法モジュール」とは、
奏法波形合成システムにおいて1つのかたまりとして処
理できる奏法波形の単位である。別の言い方をすると、
「奏法モジュール」とは、1つのイベントとして処理で
きる奏法波形の単位である。例えば、種々有る奏法モジ
ュールの中には、演奏音の奏法的特徴に応じて、アタッ
クやボディあるいはリリース等の音の部分的区間に対応
して定義されているものもあれば、また、スラーのよう
な音と音のつなぎの区間(ジョイント部)に対応して定
義されているものもあり、ビブラートのような音の特殊
演奏部分に対応して定義されているものもある。また、
フレーズのように複数音符に対応して定義されているも
のがあってもよい。
奏の時間的部位又は区間等に基づき、大きくいくつかの
種類に分類することができる。その例を示すと、次の5
種類を挙げることができる。 1)「ノーマル・エントランス」(略称NE): (無
音状態からの)音の立ち上がり部分(つまり「アタッ
ク」部分)を受け持つ奏法モジュール。 2)「ノーマル・フィニッシュ」(略称NF): (無
音状態への)音の立ち下がり部分(つまり「リリース」
部分)を受け持つ奏法モジュール。 3)「ノーマル・ジョイント」(略称NJ): 2つの
音を(無音状態を経由せずに)接続する部分(つまり
「ジョイント」部分)を受け持つ奏法モジュール。 4)「ノーマル・ショート・ボディ」(略称NSB):
ビブラートのかからない、音の立ち上がり以降から立
ち下がり以前までの部分(つまり「ボディ」部分)の短
い部分を受け持つ奏法モジュール。 5)「ビブラート・ロング・ボディ」(略称VLB):
ビブラートのかかった、音の立ち上がり以降から立ち
下がり以前までの部分(つまり「ボディ」部分)を受け
持つ奏法モジュール。 上記5種類の分類法は、明細書での説明のための一例に
すぎず、他の分類法を採用してもよいし、更に多くの種
類が存在してよい。また、奏法モジュールは、楽器種類
等のオリジナル音源別にも分類されるのは勿論である。
ルに対応する1つの奏法波形のデータは、そのままデー
タベースに記憶されているのではなく、複数の波形構成
要素の集合からなるものとしてデータベースに記憶され
ている。この波形構成要素を、以下、「ベクトル」とい
う。1つの奏法モジュールに対応するベクトルの種類に
は一例として下記のようなものがある。なお、調和成分
及び調和外成分とは、対象たるオリジナル奏法波形をピ
ッチ調和成分からなる波形ととそれ以外の残りの波形成
分とに分離することで定義されるものである。 1)調和成分の波形(Timbre)ベクトル: 調和成分の
波形構成要素のうち、ピッチと振幅をノーマライズした
波形形状のみの特徴を抽出したもの。 2)調和成分の振幅(Amplitude)ベクトル: 調和成
分の波形構成要素のうち、振幅エンベロープ特性を抽出
したもの。 3)調和成分のピッチ(Pitch)ベクトル: 調和成分
の波形構成要素のうち、ピッチ特性を抽出したもの(例
えば或る基準ピッチを基準にした時間的ピッチ変動特性
を示すもの)。 4)調和外成分の波形(Timbre)ベクトル: 調和外成
分の波形構成要素のうち、振幅をノーマライズした波形
形状(ノイズ的波形)のみの特徴を抽出したもの。 5)調和外成分の振幅(Amplitude)ベクトル: 調和
外成分の波形構成要素のうち、振幅エンベロープ特性を
抽出したもの。 上記のほかに、更に別の種類のベクトル(例えば波形の
時間軸の進行を示す時間ベクトル)が含まれていてもよ
いが、便宜上、本実施例ではその説明を省略する。
のベクトルデータに対して制御データに応じた加工処理
を適宜施して時間軸上に配置することで、奏法波形の各
構成要素に対応する波形若しくはエンベロープを演奏音
の再生時間軸に沿ってそれぞれ構築し、このようにして
時間軸上に配置された各ベクトルデータに基づいて所定
の波形合成処理を行うことで、奏法波形を生成する。例
えば、調和波形ベクトルに調和ピッチベクトルに応じた
ピッチ及びその時間変化特性を付与すると共に調和振幅
ベクトルに応じた振幅及びその時間変化特性を付与する
ことで調和成分の波形を合成し、調和外波形ベクトルに
調和外振幅ベクトルに応じた振幅及びその時間変化特性
を付与することで調和外成分の波形を合成し、調和成分
の波形と調和外成分の波形とを加算合成することで、最
終的な所定の奏法的特徴を示す演奏音波形つまり奏法波
形を生成することができる。
て図2を参照して説明する。一例として、1つの奏法モ
ジュールは図2に示したような階層的なデータ構造によ
って特定される。第1階層では、1つの奏法モジュール
は「奏法ID」(奏法識別情報)と「奏法パラメータ」
の組み合わせによって特定される。「奏法ID」は、当
該奏法モジュールを識別する情報であり、これによって
個々の奏法モジュールを特定するものであり、データベ
ースから必要なベクトルデータを読み出すための情報の
1つとして機能しうる。「奏法ID」は、例えば「楽器
情報」と「モジュールパーツ名」との組み合わせで分類
されることが可能である。楽器情報とは、当該奏法モジ
ュールが適用される楽器名(バイオリン、あるいはアル
ト・サックス、あるいはピアノなど)を示す情報であ
る。「モジュールパーツ名」とは、当該奏法モジュール
の種類をその性格と共に示す情報(例えば「ノーマル・
エントランス」や「ベンド・エントランス」など)であ
る。このような「楽器情報」と「モジュールパーツ名」
の情報を、「奏法ID」の情報の中に含んでいてもよ
い。あるいは、「奏法ID」に付加してこれらの「楽器
情報」と「モジュールパーツ名」の情報を持たせるよう
にし、或る「奏法ID」がどのような性格の奏法モジュ
ールに関わるものであるかを、これらの「楽器情報」と
「モジュールパーツ名」の情報からユーザが知得できる
ようにしてもよい。
ルに係る波形の時間やレベルなどを制御するためのパラ
メータである。「奏法パラメータ」には、各奏法モジュ
ールの性格に応じて適宜異なる1又は複数種類のパラメ
ータが含まれていてよい。例えば、Violin [NormalEntr
ance] という楽器情報とモジュールパーツ名との組み合
わせで特定可能な所定モジュールの場合には、Entrance
直後の絶対音高やEntrance直後の音量などの種類の奏法
パラメータが含まれていてよいし、Violin [BendUpEntr
ance] という楽器情報とモジュールパーツ名との組み合
わせで特定可能な別の所定モジュールの場合には、Bend
UpEntrance終了時の絶対音高、BendUpEntrance時のBend
深さの初期値、BendUpEntrance開始(ノートオンタイミ
ング)〜終了までの時間、Entrance直後の音量、あるい
はBendUpEntrance中のデフォルトのカーブの時間的な伸
縮などの種類の奏法パラメータが含まれていてよい。ま
た、Violin [NormalShortBody] という楽器情報とモジ
ュールパーツ名との組み合わせで特定可能な更に別の所
定モジュールの場合には、当該モジュールの絶対音高、
NormalShortBodyの終了時刻−開始時刻、NormalShortBo
dy開始時のダイナミクス、NormalShortBody終了時のダ
イナミクスなどの種類の奏法パラメータが含まれていて
よい。この「奏法パラメータ」は、奏法IDと共にメモ
リ等によって予め記憶されていてもよいし、あるいはユ
ーザの入力操作によって入力するようにしたり、あるい
は既存のパラメータをはユーザの操作によって適宜変更
できるようになっていたりしてもよい。また、奏法波形
の再生に際して、奏法IDのみが与えられ、奏法パラメ
ータが与えられなかったような場合には、当該奏法ID
にとって標準的な奏法パラメータを自動的に付加するよ
うにしてもよい。また、処理の過程で、適宜のパラメー
タが自動的に生成されて付加されるようになっていても
よい。
定されるベクトルID等のデータからなる。奏法波形の
データベースにおいて「奏法テーブル」と称するテーブ
ル若しくはメモリ部が含まれており、この奏法テーブル
において、各奏法IDに対応して、当該奏法IDに関わ
る奏法モジュールを構成するための複数の波形構成要素
つまり上述の各ベクトルの識別情報(つまりベクトルI
D)が記憶されている。つまり、奏法IDに応じて奏法
テーブルを読み出すことにより、これらのベクトルID
等のデータを取得することができる。なお、奏法テーブ
ルに記憶されている第2階層のデータは、上記ベクトル
IDのデータに限らず、他の必要なデータが含まれてい
てよい。例えば、代表点値列データ(複数サンプル列の
中の補正のための代表的サンプル点を指示するデータ)
が含まれていてもよい。例えば、振幅ベクトルやピッチ
ベクトルのようなエンベロープ波形形状のデータは、い
くつかの代表点値のデータを持っていれば、その形状を
再現可能であるので、エンベロープ波形形状のデータを
テンプレートとしてそっくり記憶しておくことなく、代
表点値列データとして記憶していればよい。以下、代表
点値列データを「シェープ」(Shape)データともい
う。更には、各成分要素毎のベクトルデータ(波形要
素、ピッチ要素(ピッチエンベロープ)、振幅要素(振
幅エンベロープ))の開始時間位置や終了時間位置など
の情報等を奏法テーブルに記憶していてもよい。あるい
は、これらの時間位置等のデータの全部又は一部は、前
記「奏法パラメータ」に含まれていてもよい。換言すれ
ば、「奏法パラメータ」の一部がベクトルIDと共に奏
法テーブルに記憶されていてもよい。
って特定される個々のベクトルデータからなる。奏法波
形のデータベースにおいて「コードブック」と称するメ
モリ部が含まれており、このコードブックにおいて、各
ベクトルIDに対応して、当該ベクトルIDに関わる具
体的なベクトルデータ(例えばTimbre波形のテンプレー
トなど)が記憶されている。つまり、ベクトルIDに応
じて「コードブック」から具体的なベクトルデータを読
み出すことができる。
D」及び「shape」(代表点値列)等のデータを含
む、1つの奏法モジュールのための、具体的な各種デー
タの一例を説明すると、次の通りである。 データ1:奏法モジュールのサンプル長。 データ2:ノートオンタイミングの位置。 データ3:調和成分の振幅(Amplitude)要素のベクト
ルIDと代表点値列。 データ4:調和成分のピッチ(Pitch)要素のベクトル
IDと代表点値列。 データ5:調和成分の波形(Timbre)要素のベクトルI
D。 データ6:調和外成分の振幅(Amplitude)要素のベク
トルIDと代表点値列。 データ7:調和外成分の波形
(Timbre)要素のベクトルID。 データ8:調和成分の波形(Timbre)要素の塊部の開始
位置。 データ9:調和成分の波形(Timbre)要素の塊部の終了
位置(調和成分の波形(Timbre)要素のループ部の開始
位置)。 データ10:調和外成分の波形(Timbre)要素の塊部の
開始位置。 データ11:調和外成分の波形(Timbre)要素の塊部の
終了位置(調和外成分の波形(Timbre)要素のループ部
の開始位置)。 データ12:調和外成分の波形(Timbre)要素のループ
部の終了位置。
して説明する。図3は、当該奏法モジュールに対応する
実波形区間を構成する各成分及び要素の一例を模式的に
示す図であり、上から当該区間における調和成分の振幅
(Amplitude)要素、調和成分のピッチ(Pitch)要素、
調和成分の波形(Timbre)要素、調和外成分の振幅(Am
plitude)要素、調和外成分の波形(Timbre)要素の一
例を示す。なお、図に示している数字は上記各データの
番号に対応するように付してある。
のサンプル長(波形区間長)である。例えば、当該奏法
モジュールの基となったオリジナル波形データの全体の
時間長さに対応している。2はノートオンタイミングの
位置であり、当該奏法モジュールのどの時間位置にも可
変に設定することが可能である。原則的には、このノー
トオンタイミングの位置から当該波形に従った演奏音の
発音が開始されるが、ベンドアタックなどの奏法によっ
てはノートオンタイミングよりも波形成分の立ち上がり
開始時点が先行する場合がある。例えば、バイオリンで
は実際に音が出る前から弓による弦の擦りが始められて
いるので、そのような発音開始前の奏法波形の出始めを
正確にシミュレートすることに適している。3は、コー
ドブックに記憶された調和成分の振幅(Amplitude)要
素のベクトルデータを指し示すためのベクトルID及び
代表点値列を示す(図において、黒く塗りつぶした正方
形で示す2点が代表点を示す)。4は、調和成分のピッ
チ(Pitch)要素のベクトルデータを指し示すためのベ
クトルID及び代表点値列を示す。
素のベクトルデータを指し示すためのベクトルID及び
代表点値列を示す。代表点値列データはベクトルIDに
よって指示されるベクトルデータ(複数サンプル列から
なる)を変更制御するためのデータであり、代表的サン
プル点のいくつかを指示(特定)するものである。特定
された代表的サンプル点に関してその時間位置(横軸)
とレベル軸(縦軸)を変更若しくは補正することによ
り、他の残りのサンプル点も連動して変更し、もってベ
クトルの形状を変更する。例えば、そのサンプル数より
少ない数の分散的サンプルを示すデータであるが、勿論
これに限らず、代表点値列データはサンプルとサンプル
の間の中間位置のデータであってもよいし、あるいは所
定の範囲(連続的な複数サンプル)にわたるデータであ
ってもよい。また、サンプル値そのものでなく、差分や
乗数等のデータであってもよい。この代表点を横軸及び
/又は縦軸(時間軸)に移動することによって、各ベク
トルデータの形状を変えることができる。つまり、エン
ベロープ波形の形状を変えることができる。5は、調和
成分の波形(Timbre)要素のベクトルデータを指し示す
ためのベクトルIDである。7は、調和外成分の波形
(Timbre)要素のベクトルデータを指し示すためのベク
トルIDである。8は、調和成分の波形(Timbre)要素
の波形の塊部の開始位置である。9は、調和成分の波形
(Timbre)要素の波形の塊部の終了位置(あるいは、調
和成分の波形(Timbre)要素の波形のループ部の開始位
置)である。すなわち、8から開始する三角形は特徴の
ある波形形状が連続的に記憶されているノンループ波形
の部分を示し、その後に続く9から開始する長方形は繰
り返し読み出しすることのできるループ波形の部分を示
す。ノンループ波形は、奏法(若しくはアーティキュレ
ーション)等の特徴を有する高品質な波形である。ルー
プ波形は、1周期または適当な複数周期分の波形からな
る比較的単調な音部分の単位波形である。
の波形の塊部の開始位置である。11は、調和外成分の
波形(Timbre)要素の波形の塊部の終了位置(あるい
は、調和外成分の波形(Timbre)要素の波形のループ部
の開始位置)である。12は、調和外成分の波形(Timb
re)要素の波形のループ部の終了位置である。上記デー
タ3〜データ7は各成分要素毎にコードブックに記憶さ
れているベクトルデータを指し示すための識別情報のデ
ータであり、上記データ2及びデータ8〜データ12は
ベクトルデータから元の(分離前の)波形を組み立てる
ための時間情報のデータである。このように、奏法モジ
ュールのデータはベクトルデータを指し示すためのデー
タと時間情報のデータとから構成される。このような奏
法テーブルに記憶されている奏法モジュールのデータを
使用することにより、コードブックに記憶されている波
形の素材(ベクトルデータ)を使って、波形を自由に組
み立てることができることになる。つまり、奏法モジュ
ールは、奏法(若しくはアーティキュレーション)に応
じて生成する波形の挙動を表すデータである。なお、奏
法モジュールのデータの種類や数は各奏法モジュール毎
に異なっていてよい。また、上述したデータ以外にも他
の情報等を具えていてよい。例えば、波形の時間軸を伸
長/圧縮制御するためのデータなどを持っていてもよ
い。
るために、1つの奏法モジュールが調和成分の各要素
(波形、ピッチ、振幅)及び調和外成分の各要素(波
形、振幅)の全てを具備している例について説明した
が、これに限らず、奏法モジュールが調和成分の各要素
(波形、ピッチ、振幅)や調和外成分の各要素(波形、
振幅)の1つからなっていてもよいのは勿論である。例
えば、奏法モジュールが調和成分の波形(Timbre)要
素、調和成分のピッチ(Pitch)要素、調和成分の振幅
(Amplitude)要素、調和外成分の波形(Timbre)要
素、調和外成分の振幅(Amplitude)要素のいずれか1
つの要素からなっていてもよい。こうすると、各成分毎
に奏法モジュールを自由に組み合わせて使用することが
できることになり好ましい。
おいては、所望の曲の自動演奏データ(曲ファイル)の
中に奏法波形を再生するための演奏イベントデータが含
まれており、自動演奏シーケンスの進行に伴って読み出
される演奏イベントデータに基づき奏法波形が生成され
る。自動演奏データ(曲ファイル)は、基本的に、SM
F(スタンダードMIDIファィル)形式からなり、通
常のMIDIデータとAEM(アーティキュレーション
・エレメント・モデリング)演奏イベントデータ(換言
すれば奏法イベントデータ)とが混在する演奏データか
らなる。例えば、1つの曲の自動演奏データが複数トラ
ックの演奏データからなり、そのうちの1又は複数トラ
ックがAEM演奏イベント(奏法イベント)を含むAE
M演奏シーケンスのトラックであり、他のトラックが通
常のMIDI演奏シーケンスのトラックである。また、
1トラック内でMIDIデータとAEM演奏イベント
(奏法イベント)データとが混在していてもよい。その
場合は、AEM演奏イベント(奏法イベント)データ
は、基本的にMIDIフォーマットで記述され、MID
Iチャンネルのいずれか1又は複数がAEM演奏データ
のために割り当てられる。また、1トラック全体がAE
M演奏データのために割り当てられている場合でも、デ
ータは基本的にはMIDIDフォーマットで記述されて
いてよい。つまり、MIDIフォーマットの中で、AE
M演奏イベント(奏法イベント)であることを示す識別
子を付加しておけばよい。勿論、MIDI以外のデータ
フォーマットを使用してもよい。各トラックの演奏デー
タは別々の演奏パートの演奏データを構成する。また、
1つのトラックの演奏データ内に複数のMIDIチャン
ネルの演奏データが混在しうるので、1トラックの演奏
データにおいても各MIDIチャンネル毎に別々の演奏
パートの演奏データを構成しうる。例えば、或る1又は
複数の演奏パートの演奏音が、AEM演奏データに基づ
く奏法波形合成によって、再生される。例えば、バイオ
リンのパートと、ピアノのパート、というように、複数
の演奏パートでそれぞれAEM演奏データに基づく奏法
波形合成を行うことができる。
の全体的構成例を示し、ヘッダと各トラック1,2,
3,……毎の演奏データ列からなる。図4(b)は、A
EM演奏データを含むトラック(例えばトラック2)に
おける演奏データ列の一例を示す。この演奏データ列の
構成は、通常の演奏シーケンスデータにおいてよく知ら
れているように、時間差データ(デュレーションデー
タ)とイベントデータとからなり、時間順にイベントデ
ータを配列してなるものである。公知のように、時間差
データ(デュレーションデータ)は、前のイベント時点
から次のイベント時点までの時間差を示している。1つ
の奏法イベントは、前記図2に示した第1階層のデー
タ、つまり、当該イベントに対応して再生すべき「奏法
モジュール」を示す「奏法ID」と、それに関連する
「奏法パラメータ」とを含む。前述のように、「奏法パ
ラメータ」の全部又は一部がこの段階で含まれていなく
てもよい。
(1)」はアタック部(エントランス部)の「奏法モジ
ュール」を指示する「奏法ID」を含んでおり、これと
対になって、発音開始を指示する「ノートオンイベン
ト」が配置されている。この「奏法イベント(1)」に
よって指示されるアタック部(エントランス部)の奏法
波形の発音開始時点は、それと対で与えられる「ノート
オンイベント」によって指定されるようになっている。
アタック部の「奏法イベント(1)」とそれに対応する
「ノートオンイベント」は一緒のイベントとして処理さ
れる。よって、アタック部(エントランス部)に対応す
る「奏法イベント(1)」の到来時刻は、アタック部
(エントランス部)の奏法波形を生成する準備を開始す
べきことを示しているだけであり、その発音開始時刻を
指示するものではない。なお、後述するように、このア
タック部(エントランス部)の奏法波形は、その発音が
開始される以前から波形生成開始できるような仕様とな
っており、生成されたアタック部(エントランス部)の
奏法波形の先頭からではなく、それと対を成すノートオ
ンイベントの発生時点に対応する途中の時点からその発
音を開始させることができるようになっている。これ
は、楽器の種類によっては演奏操作の始まり(例えばバ
イオリンの弓の擦り始め)では、その操作に応じた振動
が人の耳に聞こえるほどの振動音としては発生されてい
ないような状況をシミュレートすることに役立つ。ま
た、そうでない場合でも、波形生成の自由度と制御性を
高めるのに役立つ。
(2)」はボディ部の「奏法モジュール」を指示する
「奏法ID」を含み、「奏法イベント(3)」はジョイ
ント部の「奏法モジュール」を指示する「奏法ID」を
含み、「奏法イベント(4)」は別のボディ部の「奏法
モジュール」を指示する「奏法ID」を含む。ジョイン
ト部の「奏法モジュール」は、先行する音の発音を消音
させることなく後続する音の発音へとつなげるときに
(例えばタイやスラーの奏法のときに)使用される「つ
なぎ」用の奏法波形である。よって、このジョイント部
の「奏法イベント(3)」も、前記アタック部の奏法イ
ベント(1)と同様に、「ノートオンイベント」(これ
は後続音の発音開始タイミングを示す)と対になって与
えられるようになっており、図示のように、「奏法イベ
ント(3)」の次に「ノートオンイベント」が発生す
る。ジョイント部の「奏法イベント(3)」とそれに対
応する「ノートオンイベント」も一緒のイベントとして
処理される。「奏法イベント(4)」は前記ジョイント
部を介して接続される後続音のボディ部の奏法モジュー
ルを指示するものである。「奏法イベント(5)」はリ
リース部(フィニッシュ部)の「奏法モジュール」を指
示する「奏法ID」を含んでおり、これと対になって、
消音開始(リリース)を指示する「ノートオフイベン
ト」が配置されている。リリース部の「奏法イベント
(5)」とそれに対応する「ノートオフイベント」も一
緒のイベントとして処理される。ノートオンイベントの
場合と同様に、リリース部(フィニッシュ部)の奏法波
形は、その消音処理(ノートオフイベント)が開始され
る以前から波形生成開始できるような仕様となってお
り、生成されたリリース部(フィニッシュ部)の奏法波
形の先頭からではなく、それと対を成すノートオフイベ
ントの発生時点に対応する途中の時点からその消音処理
を開始させることができるようになっている。これも上
記と同じ理由であり、楽器の種類によって演奏操作の終
わりの状況をシミュレートすることに役立ち、また、そ
うでない場合でも、波形生成の自由度と制御性を高める
のに役立つ。
形生成装置において、通常の楽音波形及び奏法波形の合
成は、コンピュータが通常の音源プログラム及び本実施
例に係る奏法波形生成プロセスを実現する所定のプログ
ラム等を実行することにより実施される。この奏法波形
生成プロセスを構成する大まかな処理ブロックは、図5
に示すように、イージー・プレーヤー部20、奏法シー
ケンス部21、パート部22、奏法合成部23、波形合
成部24からなる。図6は、この奏法波形生成プロセス
を構成する各処理ブロックが受け持つ処理の時間関係を
大まかに示す概略タイミングチャートである。図6にお
いて並列的に示されたブロック30,31,32,3
3,34は、奏法波形生成プロセスにおけるそれぞれの
処理ブロック(イージー・プレーヤー部20、奏法シー
ケンス部21、パート部22、奏法合成部23、波形合
成部24)が自己が受け持つ動作を実行する時間帯をお
おまかに示すものである。図6において各ブロック3
0,31,32,33,34が並列的に図示されている
のは、各ブロックの処理が並列的に行われることを意味
する。
の曲の自動演奏データ(曲ファイル)を記憶した記憶媒
体から該自動演奏データ(曲ファイル)を読み込む機
能、該再生しようとする曲等に関する入力操作子を介し
た各種の設定操作(移調量設定、音量調整、その他)及
び指示操作(再生開始指示、再生停止指示、その他)を
受け付ける機能、再生中の再生位置(時間)表示を含む
各種表示を制御する機能、後述する必要情報補充機能、
などを実行する。図6における時間ブロック30がイー
ジー・プレーヤー部20による処理が行われる時間帯を
略示している。自動演奏の再生プログラムが起動された
ときから終了するまでの間、イージー・プレーヤー部2
0が動作する。再生開始指示「PLAY」が与えられる
と、イージー・プレーヤー部20では、図6のブロック
301で示すようなタイミングで、再生しようとする曲
の自動演奏データ(曲ファイル)を読み込み、その解釈
を行う。勿論、「PLAY」指示の以前に、所望の曲フ
ァイルが選択された時点で、再生しようとする曲の自動
演奏データ(曲ファイル)の読み込みが開始されてもよ
い。
おり通常のMIDIデータとAEM演奏データとが複数
トラック間で又は1トラック内で混在している自動演奏
データを取り扱うことができるように構成されている。
更に、イージー・プレーヤー部20では、読み込んだ自
動演奏データ(曲ファイル)に含まれるAEM演奏デー
タに関して基本的な解釈を行い、各奏法イベントデータ
をタイムスタンプ付きの奏法イベント列オブジェクトと
して再構成する。この基本的な解釈とは、例えば、各イ
ベント間に存在する時間差データを累積してこれに基づ
き各イベント毎のタイムスタンプ(一連の曲中の絶対時
間情報)を作成することなどを含む。再構成したタイム
スタンプ付きの奏法イベント列オブジェクトは、奏法シ
ーケンス部21に送付される(つまり奏法シーケンス部
21が取り扱うメモリ内に書き込まれる)。この演奏デ
ータ解釈とこれに基づく奏法イベント列オブジェクトの
再構成処理は、図6におけるブロック301,302の
時間帯が終了するまでに行われる。
は、基本的には、既存の自動演奏シーケンスデータと類
似構成からなる(図4に示したような)AEM演奏デー
タを、奏法シーケンス部21で容易に取り扱うのに適し
たデータ列に変換する。なお、通常のMIDI演奏デー
タは、イージー・プレーヤー部20内に含まれるMID
I用の公知の演奏シーケンサ(MIDIプレーヤー)で
処理されるが、この点については公知技術であるため詳
しく説明しない。なお、AEM演奏データに基づく奏法
波形生成プロセスの処理には相応の遅れ時間があるのに
対して、MIDIプレーヤーによる通常のMIDI演奏
データの処理には実質的な時間遅れは生じない。そこ
で、MIDIプレーヤーによる通常のMIDI演奏デー
タの処理を、AEM演奏データに基づく奏法波形生成プ
ロセスの処理における遅れ時間に合わせて、適宜遅延さ
せることにより、両者の再生音の正確な同期をとるよう
にしている。
能:更に、イージー・プレーヤー部20で行う機能の一
つとして、読み込んだ自動演奏データ(曲ファイル)に
おけるAEM演奏イベントデータ(奏法イベント)の中
に、必要な奏法パラメータが含まれていなかった場合、
これを補充する機能がある。例えば、或る奏法イベント
の奏法IDの種類が「ビブラート・ロング・ボディ」の
場合、ビブラート深さなどの制御パラメータが設定され
ないと、どの程度のビブラートで奏法波形を合成してよ
いのか判らない、という不都合がある。そのため、奏法
モジュールの種類によっては、奏法イベントには奏法I
Dのみならず、必要なパラメータも付属されていなけれ
ばならないものがある。そこで、イージー・プレーヤー
部20では、読み込んだ自動演奏データの中の各奏法イ
ベントにおいてそのような必要なパラメータが含まれて
いるかどうかをチェックし、含まれていない場合は、必
要なパラメータを自動的に補充する。この情報補充機能
は図6におけるブロック302のタイミングで実行され
る。イージー・プレーヤー部20から奏法シーケンス部
21に送付される前記奏法イベント列オブジェクトにお
いては、そのように補充されたパラメータを含む。必要
なパラメータの自動補充の仕方としては、奏法モジュー
ルの各種類毎に、各種のパラメータ毎の所定のデフォル
ト値(標準値)を用意しておき、このデフォルト値を使
用すればよい。デフォルト値の決め方としては、それぞ
れ所定の固定値を予め用意しておいてもよいし、あるい
は、当該パラメータに関する前回使用した値(直前使用
値)をバッファしておき、バッファされた直前使用値を
デフォルト値として使用するようにしてもよく、その
他、適宜の手段を採用してよい。
前記ブロック301,302の処理時間として所定時間
が予め確保されており、「PLAY」指示がなされたと
きから該所定時間内でこれらのブロック301,302
の処理が行われる。ユーザは、「PLAY」指示を行う
前に、奏法波形生成プロセスにおける各種の処理時間情
報を設定したり、その他の種々の設定操作を行うことが
できるが、この点についての説明は省略する。イージー
・プレーヤー部20は、時間ブロック302の最後で、
奏法シーケンス部21に対して、シーケンス再生開始指
示を与える。実際の演奏が開始された後は、波形合成部
24から再生演奏の現在時間(現在の再生位置)を示す
情報をイージー・プレーヤー部20で受け取り、この再
生演奏の現在時間を表示する。図6におけるブロック3
03a,303b,303c,…は、定期的な割込み処
理として実行される表示変更処理(再生演奏の現在時間
を表示する処理)のタイミングを示している。
から与えられるタイムスタンプ付きの奏法イベント列オ
ブジェクト(つまり奏法イベントデータ列)をバッファ
し、これをタイムスタンプの時刻つまり再生時刻に従っ
て、順次に読み出す。この順次読出しは、任意に設定さ
れる「送り出し頻度」に相当する時間ε毎にバッチ処理
で行われる。図6において、時間εの間隔が例示されて
いる。 ・パート管理:奏法波形の合成は演奏パート別に並列的
に行われるので、奏法シーケンス部21の最初の仕事
は、今回の曲演奏においてAEM演奏パートがどれだけ
あるかを事前に(シーケンス再生開始指示の受理前に)
解釈し、必要な数のAEM演奏の再生パート数を設定す
るようパート部22を開設する指示を行うことである。
そして、イージー・プレーヤー部20から与えられるタ
イムスタンプ付きの奏法イベント列オブジェクト(つま
り奏法イベントデータ列)を解釈して、これをパート別
にセット(バッファ)しておく。よって、シーケンス再
生開始指示の受理後の、奏法イベント列オブジェクト
(つまり奏法イベントデータ列)の順次読出しは、各パ
ート毎に行われる。よって、以下の説明で、「或るイベ
ントの次のイベントを先読みする」というような場合、
同じパートにおける奏法イベントデータ列を対象してイ
ベントの前後を論じているのである。以下、単に「パー
ト」という言うが、これは「AEM演奏パート」のこと
である。
前処理として、奏法シーケンス部21においては、各種
の動作時間遅れを考慮した時間パラメータに応じた処理
を行う。この種の時間パラメータには次のようなものが
ある。 「奏法シーケンス部での送り出し頻度の時間ε」…これ
は、前述の通り、奏法シーケンス部21がどの程度の頻
度で演奏イベントデータをパート部22以降の処理に送
り出すかを設定するデータである。すなわち、或る送り
出し時点(現在時刻)において、この時間εの幅内に存
在する演奏イベントデータを一括して次段に送り出す。
なお、この実施例では、奏法シーケンス部21は現在時
刻の演奏イベント(詳しくは現在処理すべき時間εの幅
内に存在するイベント)のみならず、それよりも先の
(未来の)1又は複数の演奏イベントをも先行して読み
出して、パート部22に与えるようになっている。これ
については追って詳しく説明する。パート部22以降の
処理では、この時間ε毎に与えられる演奏イベントデー
タに基づき奏法波形再生に必要な処理を行う。
これは、奏法シーケンス部21がどの程度先の情報まで
先行して処理するかを設定する時間である。 「発音潜伏(latency)時間β」…これは、再生開始時
の動作遅延時間に見合った時間である。再生開始シーケ
ンス位置よりもこの発音潜伏(latency)時間βだけ手
前に、波形合成部24における動作開始時刻をみかけ上
設定する(つまり再生開始シーケンス位置を遅らせ
る)。再生開始時においては、上記送り出し頻度の時間
εの幅分の演奏イベントのみならず上記先送り時間γ分
の演奏イベントについても奏法波形合成処理を一挙に行
う必要があるため、その負荷を考慮して、それに相当す
る遅れ時間を発音潜伏(latency)時間βとして、再生
開始時にオフセット設定することで、再生開始時の動作
遅れを調整する。
ェッチ時間α」…これは、波形合成部24が、現在時刻
よりもどの程度先のデータまでをハードディスク(その
中のコードブック)からRAM内に読み込むか(プリフ
ェッチするか)を設定する時間である。奏法シーケンス
部21では、このプリフェッチ時間αのデータを波形合
成部24にセットする。 「オーディオデバイスへの出力潜伏(latency)時間
δ」…これは、波形合成部24が、出力用オーディオデ
バイスの時刻よりもどれだけ手前の時刻から合成処理を
行うかを設定する時間である。奏法シーケンス部21で
は、この出力潜伏(latency)時間δのデータを波形合
成部24にセットする。例えば、波形合成部24では、
合成した波形データを、この出力潜伏(latency)時間
分だけ先の時刻で使用される出力バッファに書き込むよ
うに制御する。 上記各時間パラメータは、それぞれ所定値に固定されて
いてもよいし、あるいは、ユーザによって可変設定でき
てもよい。ユーザが時間パラメータを設定する場合は、
イージー・プレーヤー部20での設定処理によってこれ
を行う。
ンス部21で取り扱うメモリ内にバッファされた或る1
パートの奏法イベント列オブジェクトが図7の(a)の
ようであるとする。EV1,EV2,…が各イベントを
示し、Ts1,Ts2,…がそれぞれに対応するタイム
スタンプを示す。このメモリの読出しポインタの初期値
は、初期時点t0に対応しているものとする。図7の
(b)は、奏法シーケンス部21によるイベント処理タ
イミングを略示するタイミングチャートである。最初の
イベント処理タイミングは、イージー・プレーヤー部2
0からシーケンス再生開始指示が与えられたとき到来す
る。これを初期時点t0とする。以後のイベント処理タ
イミングは、送り出し頻度の時間εが経過する毎に到来
する。これらを時点t1,t2,…とする。初期時点t0
での処理において、基本的に、時間ε分の時間帯(現在
時間帯)に存在するイベント(現在イベント)をそのタ
イムスタンプと共に図7(a)のメモリから読み出す。
もちろん、前述の通り、1つのイベントには奏法IDと
奏法パラメータ等が含まれているので、当該イベントに
ついてのこれらのデータ全てがワンセットで読み出され
る。図7(b)の例では、最初のイベント(EV1,E
V2)が最初の時間ε分の時間帯に存在している例を示
している。なお、最初のイベントは通常、アタック部の
奏法イベント(EV1)であり、これは前述の通りノー
トオンイベント(EV2)と対になって一緒に処理され
る。もちろん、現在時間帯にイベントが存在しない場合
もありうる。なお、各イベントEV1,EV2,…が存
在する時間位置は、それぞれのタイムスタンプTs1,
Ts2,…から判明する。
ベントの読出しに加えて、その次に存在する1又は複数
の奏法イベント(未来イベント)も読み出す。図7
(b)の例では、次の奏法イベントEV3が現在の奏法
イベント(EV1,EV2)の読み出し時に一緒に読み
出される。こうして、読み出された現在及び未来の奏法
イベントEV1,EV2,EV3が、それぞれタイムス
タンプを伴って、次のパート部22に渡される。この処
理は各パート毎にそれぞれ行われる。これらの処理が終
わると奏法シーケンス部21は待機状態となる。
ず、その先の(未来の)奏法イベントをも取得して、パ
ート部22に与えるようにしたことにより、パート部2
2以降の処理において現在の奏法イベントに対応する奏
法モジュールの波形合成を行うときに、時間的に相前後
する演奏イベントに基づく奏法モジュールの相互関係を
考慮に入れて波形合成を行うことができる。たとえば、
相前後する演奏イベントに基づく奏法モジュールに基づ
く奏法波形同士が円滑に接続されるように適切な加工を
施すことができるようになる。
来すると、奏法シーケンス部21の前記処理が再開され
る。イベントが存在しない場合は何も処理されない。処
理時点tnが到来して奏法シーケンス部21の前記処理
が再開されたとき、該処理時点tnにおける現在時間帯
に奏法イベントEV3が存在する場合、時間ε分の時間
帯(現在時間帯)に存在するイベント(現在イベント)
を読み出すと共にその次に存在するイベント(未来イベ
ント)を先読みする処理を行う。なお、パート部22に
おいて、受け取ったイベントを記憶しておき、そのイベ
ント処理が行なわれるまで保存しておくようにするの
で、既に読み出し済みのイベントはもう読み出さなくて
よい。例えば、図7(b)の例では、処理時点tnにお
ける現在時間帯にはイベントEV3が存在するが、これ
は前回読み出し時において未来イベントとして読み出さ
れているので、もう読み出さなくてもよい。一方、更に
次のイベントEV4がそれに先行するイベントEV3
(現在イベント)の処理にとって必要であれば、これは
タイムスタンプと共に読み出してパート部22に供給す
る。この場合、パート部22では、既に受け取り済みの
現在イベントEV3と今回受け取った未来イベントEV
4とから、それぞれに対応する奏法モジュールの相互接
続関係を調整する。図6において、ブロック311a,
311b,311c…が、奏法シーケンス部21による
上述のイベント読み出し処理(現在イベントと未来イベ
ントの読み出しを含む)が実行されるタイミングを例示
している。
奏法イベント(タイムスタンプ付き)を記憶し、これに
基づき所定の「リハーサル」処理を行うと共に、次段の
奏法合成部23における処理を管理する。これらの処理
も各パート毎にそれぞれ行われる。図6において、ブロ
ック321a,321b,321c…が、パート部22
において「リハーサル」処理等が実行されるタイミング
を例示している。 ・リハーサル処理:「リハーサル」処理とは、奏法合成
後の時間的に相前後する各波形構成要素(Timbre, Ampl
itude, Pitch等)同士の始点や終点についての時刻やレ
ベル値が滑らかにつながるように、実際の奏法合成を行
なう前に、奏法イベントに応じたベクトルIDや代表点
値例やその他パラメータなどをリハーサルで読み出し、
これに基づき模擬的な奏法合成を行い、各奏法モジュー
ルの始点や終点についての時刻やレベル値を制御するパ
ラメータを適切に設定する処理である。この「リハーサ
ル」処理に基づいて設定されたパラメータを用いて、奏
法合成部23で奏法合成処理を行うことにより、時間的
に相前後する奏法波形が各構成要素(Timbre,Amplitud
e, Pitch等)毎に滑らかに接続されることになる。すな
わち、合成済みの奏法波形若しくは波形構成要素を調整
・制御してそれらの奏法波形若しくは波形構成要素同士
が滑らかに接続されるようにするのではなく、個々の奏
法波形若しくは波形構成要素を合成する直前における
「リハーサル」処理によって模擬的に奏法波形若しくは
波形構成要素を合成する処理を行ない、始点や終点等の
時刻やレベルなどについての最適なパラメータを設定
し、これらの最適なパラメータを用いて奏法波形若しく
は波形構成要素の合成を行なうことにより結果的に奏法
波形若しくは波形構成要素同士が滑らかに接続されるよ
うにするのである。
モジュールの種類若しくは性格に応じて必要な処理を行
なう。なお、リハーサル処理の対象となるのは主に奏法
イベントであるが、ノートオンイベントやノートオフイ
ベントの発生時刻も考慮される。参考のために、発音開
始から終了に至るまでの奏法モジュールの組み合わせ状
態の一例を図8に示す。図8におけるイベントの並び順
は、(1)アタック(エントランス)モジュールを指定
する奏法イベントEV1、(2)ノートオンイベントE
V2、(3)ボディモジュールを指定する奏法イベント
EV3、(4)ジョイントモジュールを指定する奏法イ
ベントEV4、(5)ノートオンイベントEV5、
(6)ボディモジュールを指定する奏法イベントEV
6、(7)リリース(フィニッシュ)モジュールを指定
する奏法イベントEV7、(8)ノートオフイベントE
V8、である。
法イベントEV1及びノートオンイベントEV2によっ
て指定されるアタック部(エントランス部)の奏法モジ
ュールに従う奏法波形を合成するときに、前述のように
その次の奏法イベントEV3が未来イベントとして先読
みして与えられ、リハーサル処理では、両者が滑らかに
接続されるように必要なパラメータを決定する。次に、
その後、奏法イベントEV3を現在イベントとしてそれ
によって指定されるボディ部の奏法モジュールに従う奏
法波形を合成するときに、その次のジョイント部の奏法
イベントEV4及びそれと対を成すノートオンイベント
EV5が未来イベントとして先読みして与えられ、リハ
ーサル処理では、両者が滑らかに接続されるように必要
なパラメータを決定する。同様に、奏法イベントEV4
及びノートオンイベントEV5を現在イベントとしてそ
れによって指定されるジョイント部の奏法モジュールに
従う奏法波形を合成するときに、前述のようにその次の
奏法イベントEV6が未来イベントとして先読みして与
えられ、リハーサル処理では、両者が滑らかに接続され
るように必要なパラメータを決定する。なお、この例で
は、最初のノートオンイベントEV2で発音される音と
次のノートオンイベントEV5で発音される音とをジョ
イント部の奏法波形を用いて接続している。同様に、更
にその次の奏法イベントEV6を現在イベントとしてそ
れによって指定されるボディ部の奏法モジュールに従う
奏法波形を合成するときに、その次のリリース部の奏法
イベントEV7及びそれと対を成すノートオフイベント
EV8が未来イベントとして先読みして与えられ、リハ
ーサル処理では、両者が滑らかに接続されるように必要
なパラメータを決定する。更に奏法イベントEV7及び
ノートオフイベントEV8を現在イベントとしてそれに
よって指定されるリリース部(フィニッシュ部)の奏法
モジュールに従う奏法波形を合成するときには、消音で
その奏法波形が終るが故に、次の波形との接続を考慮す
る必要がないので、次の奏法イベントを考慮したリハー
サル処理は行なわれない。
関する「リハーサル」処理の具体例につき説明する。 〈アタック(エントランス)部モジュール〉図9(a)
は、現在イベントがアタック(エントランス)部の奏法
モジュールの場合のリハーサル処理の一手順例を示すフ
ロー図である。ステップS1aでは、今回処理すべき奏
法イベント(現在イベント)(図8の例ではEV1,E
V2)を奏法合成部23に渡し、その奏法ID(特定の
アタック奏法モジュールを指示する)に応じたベクトル
ID及び代表点値列(Shape)及びその他パラメー
タを、奏法合成部23の処理によって、前記奏法テーブ
ルからリハーサルとして読み出して、これらをパート部
22が受け取り、これに基づき次のようにレベルや時刻
等のパラメータ(制御データ)を決定若しくは調整する
処理を行なう。
(先読みによって得た未来イベント)(図8の例ではE
V3)を奏法合成部23に渡し、その奏法ID(特定の
ボディ部の奏法モジュールを指示する)に応じたベクト
ルID及び代表点値列(Shape)及びその他パラメ
ータを、奏法合成部23の処理によって、前記奏法テー
ブルからリハーサルとして読み出して、これらをパート
部22が受け取り、これに基づき次のようにレベルや時
刻等のパラメータ(制御データ)を決定若しくは調整す
る処理を行なう。ステップS3aでは、取得した今回及
び次回の奏法イベントについての各データに基づき、今
回の奏法イベントに係る奏法モジュールについての所定
のデータ(レベルと時刻)を決定する処理を行なう。前
ステップS1a,S2aでは、ここでの処理のために必
要なデータを奏法テーブルから読み出せばよい。ここで
のリハーサル処理の内容例を説明するために、図10
(a),(b),(c),(d)を参照する。
における調和成分用の各ベクトル例を示し、「HA」は
調和成分振幅ベクトルの代表点値列(一例として0,
1,2の3点からなる)、「HP」は調和成分ピッチベ
クトルの代表点値列(一例として0,1,2の3点から
なる)、「HT」は調和成分波形ベクトルの一例(ただ
し波形をそのエンベロープのみで略示している)を示
す。ちなみに、調和成分波形ベクトルHTは、基本的に
は音の立ち上がり部の全波形のサンプルデータからな
り、その最後の部分にループ波形を含んでいる。このル
ープ波形は後続波形と接続するときのクロスフェード合
成のためにループ読み出しされるものである。アタック
奏法モジュールにおける調和成分の開始時刻を定義する
パラメータ“preBlockTimeE”は、実際の発音開始時点
と、アタック波形の調和成分の波形発生開始時点とのず
れを規定するパラメータである。開始時刻の設定は、こ
れと対を成すノートオンイベント(図8の例ではEV
2)のタイムスタンプを取得して、実際の発音開始時刻
(図10における“noteOnTime”)を把握し、これと
“preBlockTimeE”との差“noteOnTime−preBlockTime
E”を調和成分のアタック奏法モジュール開始時刻“st
artTimeH”として設定する。
の終了時刻を定義するパラメータのうち、“postBlockT
imeE”は、実際の発音開始時点とアタック波形の調和
成分の本体波形終了時点とのずれを規定するパラメータ
であり、“fadeTimeE”は、アタック波形の末尾のクロ
スフェード時間幅を規定するパラメータである。従っ
て、末尾のクロスフェード部分を含めたアタック奏法モ
ジュールにおける調和成分の終了時刻“endTimeH”
は、“noteOnTime+(postBlockTimeE+fadeTime
E)”として求まる。この終了時刻“endTimeH”が、
次の奏法イベント(図8の例ではEV3)の調和成分の
モジュール開始時刻を規定するデータとして奏法合成部
23に返される。こうして、調和成分の終了時刻“endT
imeH”に応じて次の奏法モジュールの調和成分の開始
時刻を設定するリハーサル処理が行なわれる。
における調和外成分用の各ベクトル例を示し、「NH
A」は調和外成分振幅ベクトルの代表点値列(一例とし
て0,1の2点からなる)、「NHT」は調和外成分波
形ベクトルの一例(ただし波形をそのエンベロープのみ
で略示している)を示す。アタック奏法モジュールにお
ける調和外成分の開始時刻を定義するパラメータ“preT
imeNH”は、実際の発音開始時点と、アタック波形の
調和外成分の波形発生開始時点とのずれを規定するパラ
メータである。調和外成分の開始時刻の設定も、前述の
調和成分の場合と同様に、それと対を成すノートオンイ
ベント(図8の例ではEV2)のタイムスタンプを取得
して、実際の発音開始時刻(図10における“noteOnTi
me”)を把握し、これと“preTimeNH”との差“noteO
nTime−preTimeNH”を調和外成分のアタック奏法モジ
ュール開始時刻“startTimeNH”として設定する。
分の終了時刻を定義するパラメータ“postTimeNH”
は、実際の発音開始時点とアタック波形の調和外成分の
終了時点とのずれを規定するパラメータである。アタッ
ク奏法モジュールにおける調和外成分の終了時刻“endT
imeNH”は、“noteOnTime+postTimeNH”として求
まる。この終了時刻“endTimeNH”が、次の奏法イベ
ント(図8の例ではEV3)の調和外成分のモジュール
開始時刻を規定するデータとして奏法合成部23に返さ
れる。こうして、調和外成分の終了時刻“endTimeN
H”に応じて次の奏法モジュールの調和外成分の開始時
刻を設定するリハーサル処理が行なわれる。このよう
に、調和外成分の時刻合わせは、調和成分とは独立に行
なわれる。
の奏法イベントに係るアタック部奏法モジュールの振幅
ベクトルの終点(図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個のループ波形の間に
挿入すればよい。
調和成分振幅ベクトルについては、次の奏法イベントに
係るボディ部の奏法モジュールの調和成分振幅ベクトル
HAの始点(図10(c)のHAの0位置)のレベルデ
ータを奏法テーブルから取得する。そして、次のステッ
プS3aにおいて、奏法テーブルから取得したレベルデ
ータにベロシティ値やボリューム設定値などを加味し
て、ボディ部の奏法モジュールの調和成分振幅ベクトル
HAの始点の実際のレベルを算出し、これを、現在の奏
法イベントに係るアタック部奏法モジュールの調和成分
振幅ベクトルの終点(図10(a)のHAの2位置)の
レベル(振幅値)として設定する。同様に、調和成分ピ
ッチベクトルについても、次の奏法イベントに係るボデ
ィ部の奏法モジュールの調和成分ピッチベクトルHPの
始点(図10(c)のHPの0位置)のピッチ値データ
を奏法テーブルから取得する。そして、奏法テーブルか
ら取得したピッチ値データにピッチ制御値を加味して、
ボディ部の奏法モジュールの調和成分ピッチベクトルH
Pの始点の実際のピッチを算出し、これを、現在の奏法
イベントに係るアタック部奏法モジュールの調和成分ピ
ッチベクトルの終点(図10(a)のHPの2位置)の
レベル(ピッチ値)として設定する。
ルにおける調和外成分用の各ベクトル例を示し、「NH
A」は調和外成分振幅ベクトルの代表点値列(一例とし
て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位置)のレベル(振幅値)として設定する。
テップS4aにおいて、現在の奏法イベントに係るアタ
ック部奏法モジュールの合成を開始する指示を、奏法合
成部23に対して与える。次のステップSa5では、上
記のようにして決定された今回の奏法イベント(図8の
例ではEV1)の調和成分及び調和外成分の終了時刻
“endTimeH”、“endTimeNH”を、次の奏法イベント
(図8の例ではEV3)の調和成分及び調和外成分のモ
ジュール開始時刻を規定するデータとして設定する。リ
ハーサル処理が終了すると、図5のフローは奏法合成部
23の処理に移行する。奏法合成部23の処理について
は追って説明することとし、次に、更に別のモジュール
についてのリハーサル処理について説明する。
在イベントがボディ部の奏法モジュールの場合のリハー
サル処理の一手順例を示すフロー図である。ステップS
1bでは、今回処理すべき奏法イベント(現在イベン
ト)(例えば図8のEV3又はEV6)を奏法合成部2
3に渡し、その奏法ID(特定のボディ部の奏法モジュ
ールを指示する)に応じたベクトルID及び代表点値列
(Shape)及びその他パラメータを、奏法合成部2
3の処理によって、前記奏法テーブルからリハーサルと
して読み出して、これらをパート部22が受け取り、こ
れに基づき次のようにレベルや時刻等のパラメータ(制
御データ)を決定若しくは調整する処理を行なう。な
お、前回の奏法イベントのリハーサル処理のときに既に
調整・変更されているパラメータは、調整・変更されて
いるものを用いる。
(先読みによって得た未来イベント)を奏法合成部23
に渡し、その奏法IDに応じたベクトルID及び代表点
値列(Shape)及びその他パラメータを、奏法合成
部23の処理によって、前記奏法テーブルから引き出し
て、これらをパート部22が受け取り、これに基づき次
のようにレベルや時刻等のパラメータ(制御データ)を
決定若しくは調整する処理を行なう。ボディ部の次の来
る奏法イベントは、リリース部の奏法イベントかジョイ
ント部の奏法イベントである。図8では、ボディ部奏法
イベントEV3の次にジョイント部奏法イベントEV4
及びそれと対を成すノートオンイベントEV5が来てお
り、ボディ部奏法イベントEV6の次にリリース部奏法
イベントEV7及びそれと対を成すノートオフイベント
EV8が来ている。ステップS3b、S5bでは、取得
した今回及び次回の奏法イベントについての各データに
基づき、今回の奏法イベントに係る奏法モジュールにつ
いての所定のデータ(時刻とレベル)を決定若しくは調
整する処理を行なう。ステップS4bにおいては、今回
の奏法イベントに係るボディ部奏法モジュールの合成を
開始する指示を、奏法合成部23に対して与える。
本的に、その開始時刻はそれに先行する奏法モジュール
の終了時刻に合わせ、その終了時刻はそれに後続する奏
法モジュールの開始時刻に合わせるようにし、また、調
和成分及び調和外成分の各振幅ベクトル及び調和成分の
ピッチベクトルにおける各始点のレベル及び終点のレベ
ルは、ボディ部奏法モジュールのものを使用する。つま
り、先行する奏法モジュールの終点のレベルをボディ部
奏法モジュールの始点のレベルに合わせ、後続する奏法
モジュールの始点のレベルをボディ部奏法モジュールの
終点のレベルに合わせるように、リハーサル処理を行な
う。ボディ部の奏法モジュールの調和成分及び調和外成
分の各開始時刻は、その前の奏法イベント(例えば前述
したアタック部奏法モジュールのイベント)でのリハー
サル処理によって既に決定されているので、ここでは求
める必要がない。ボディ部の奏法モジュールの調和成分
及び調和外成分の各終了時刻を決定するために、次の奏
法モジュール(リリース部又はジョイント部)をステッ
プS2bでリハーサルして、その調和成分及び調和外成
分の各開始時刻を求める。そして、ステップS3bで
は、上記求めた次の奏法モジュール(リリース部又はジ
ョイント部)の調和成分及び調和外成分の各開始時刻
を、今回のボディ部の奏法モジュールの調和成分及び調
和外成分の各終了時刻として決定する。
ク部奏法モジュールに関連して既に説明したやり方に準
じたやり方で行なえばよい。参考のために、次の奏法モ
ジュールとなりうるジョイント部奏法モジュールにおけ
る調和成分用の各ベクトル例を図11(a)に示し、同
ジョイント部奏法モジュールにおける調和外成分用の各
ベクトル例を図11(b)に示す。HA,HP,HT,
NHA,NHT等の符号の意味は、図10におけるもの
と同様である。図11(a)において、調和成分の開始
時刻を定義するパラメータ“preTimeH”は、ジョイン
ト部でのノートオンイベント発生時点(図8の例ではE
V5)と、ジョイント部の調和成分の波形発生開始時点
とのずれを規定するものである。このリハーサルによっ
て、更にその次のイベントであるノートオンイベント
(図8の例ではEV5)のタイムスタンプを取得して、
実際の発音開始時刻(図11(a)における“noteOnTi
me”)を把握し、これと“preTimeH”との差“noteOnT
ime−preTimeH”を調和成分のジョイント部奏法モジュ
ール開始時刻として設定する。こうして、リハーサルで
設定された調和成分のジョイント部奏法モジュール開始
時刻を、ボディ部の奏法モジュールの調和成分の終了時
刻として決定する。図11(b)における調和外成分の
開始時刻を定義するパラメータ“preTimeNH”につい
ても同様にリハーサル処理することで、調和外成分のジ
ョイント部奏法モジュール開始時刻を設定し、ボディ部
の奏法モジュールの調和外成分の終了時刻として決定す
る。
分及び調和外成分の各振幅ベクトル及び調和成分のピッ
チベクトルにおける各始点のレベルを、その前の奏法イ
ベントの奏法モジュール(例えば前述したアタック部奏
法モジュール)の調和成分及び調和外成分の各振幅ベク
トル及び調和成分のピッチベクトルにおける各終点のレ
ベルとしてそれぞれ設定することは、前の奏法イベント
でのリハーサル処理によって既に済んでいる。よって、
ここでは、ボディ部の奏法モジュールの調和成分及び調
和外成分の各振幅ベクトル及び調和成分のピッチベクト
ルにおける各終点のレベルを、次の奏法イベント(未来
イベント)に係る奏法モジュールの調和成分及び調和外
成分の各振幅ベクトル及び調和成分のピッチベクトルに
おける各始点のレベルとして決定する(ステップS5
b)。
ック部奏法モジュールに関連して既に説明したやり方に
準じたやり方で行なえばよい。調和成分振幅ベクトルに
ついては、現在の奏法イベントに係るボディ部の奏法モ
ジュールの調和成分振幅ベクトルHAの終点(図10
(c)のHAの2位置)のレベルデータを奏法テーブル
から取得する。そして、奏法テーブルから取得したレベ
ルデータにベロシティ値やボリューム設定値などを加味
して、ボディ部の奏法モジュールの調和成分振幅ベクト
ルHAの終点の実際のレベルを算出し、これを、次の奏
法イベントに係る奏法モジュールの調和成分振幅ベクト
ルの始点(図11(a)のHAの0位置)のレベル(振
幅値)として設定する。また、同様に、調和成分ピッチ
ベクトルについても、現在の奏法イベントに係るボディ
部の奏法モジュールの調和成分ピッチベクトルHPの終
点(図10(c)のHPの2位置)のピッチ値データを
奏法テーブルから取得する。そして、奏法テーブルから
取得したピッチ値データにピッチ制御値を加味して、ボ
ディ部の奏法モジュールの調和成分ピッチベクトルHP
の終点の実際のピッチを算出し、これを、次の奏法イベ
ントに係る奏法モジュールの調和成分ピッチベクトルの
始点(図11(a)のHPの0位置)のレベル(ピッチ
値)として設定する。調和外成分振幅ベクトルについて
も同様に、現在の奏法イベントに係るボディ部の奏法モ
ジュールの調和外成分振幅ベクトルNHAの終点(図1
0(d)のHAの1位置)のレベルデータを奏法テーブ
ルから取得し、取得したレベルデータにベロシティ値や
ボリューム設定値などを加味して、ボディ部の奏法モジ
ュールの調和外成分振幅ベクトNルHAの終点の実際の
レベルを算出し、これを、次の奏法イベントに係る奏法
モジュールの調和外成分振幅ベクトルの始点(図11
(b)のNHAの0位置)のレベル(振幅値)として設
定する。
は、現在イベントがジョイント部の奏法モジュールの場
合のリハーサル処理の一手順例を示すフロー図である。
ステップS1cでは、今回処理すべき奏法イベント(現
在イベント)(例えば図8のEV4,EV5)を奏法合
成部23に渡し、その奏法ID(特定のジョイント部の
奏法モジュールを指示する)に応じたベクトルID及び
代表点値列(Shape)及びその他パラメータを、奏
法合成部23の処理によって、前記奏法テーブルからリ
ハーサルとして読み出して、これらをパート部22が受
け取り、これに基づき次のようにレベルや時刻等のパラ
メータ(制御データ)を決定若しくは調整する処理を行
なう。なお、前回の奏法イベントのリハーサル処理のと
きに既に調整・変更されているパラメータは、調整・変
更されているものを用いる。
(先読みによって得た未来イベント)を奏法合成部23
に渡し、その奏法IDに応じたベクトルID及び代表点
値列(Shape)及びその他パラメータを、奏法合成
部23の処理によって、前記奏法テーブルから引き出し
て、これらをパート部22が受け取り、これに基づき次
のようにレベルや時刻等のパラメータ(制御データ)を
決定若しくは調整する処理を行なう。ジョイント部の次
の来る奏法イベントは、2番目のボディ部の奏法イベン
ト(例えば図8のEV6)である。ステップS3c、S
5cでは、取得した今回及び次回の奏法イベントについ
ての各データに基づき、今回の奏法イベントに係る奏法
モジュールについての所定のデータ(時刻とレベル)を
決定若しくは調整する処理を行なう。ステップS4cに
おいては、今回の奏法イベントに係るジョイント部奏法
モジュールの合成を開始する指示を、奏法合成部23に
対して与える。
は、基本的に、調和成分及び調和外成分の各振幅ベクト
ル及び調和成分のピッチベクトルにおける各始点のレベ
ルは、先行するボディ部奏法モジュール(例えば図8の
EV3)の各終点のレベルに合わせるようにし、調和成
分及び調和外成分の各振幅ベクトル及び調和成分のピッ
チベクトルにおける各終点のレベルは、後続するボディ
部奏法モジュール(例えば図8のEV6)の各始点のレ
ベルに合わせるように、リハーサル処理を行なう。ジョ
イント部の奏法モジュールの調和成分及び調和外成分の
各振幅ベクトル及び調和成分のピッチベクトルにおける
各始点のレベルのデータは、前の奏法イベントのリハー
サル処理によって(図9(b)のステップS5b)既に
決定されているので、それを用いる。よって、ステップ
S3cでは、主に、ジョイント部の奏法モジュールの調
和成分及び調和外成分の各振幅ベクトル及び調和成分の
ピッチベクトルにおける各終点のレベルとして、後続す
るボディ部奏法モジュール(例えば図8のEV6)の各
始点のレベルに見合った値に決定するよう、ステップS
2cで取得した次のボディ部奏法モジュールのリハーサ
ル結果を利用して処理を行なう。これは、具体的には、
図9(a)のステップS3aにおける処理と同様の手法
で行なえばよいため、その詳細説明は省略する。
については、図11(a)を参照して前述したように、
次のイベントであるノートオンイベント(図8の例では
EV5)のタイムスタンプを取得して、実際の発音開始
時刻(図11(a)における“noteOnTime”)を把握
し、これと“preTimeH”との差“noteOnTime−preTime
H”を調和成分のジョイント部奏法モジュール開始時刻
として設定する。調和外成分のジョイント部奏法モジュ
ール開始時刻も、図11(b)を参照して前述した通り
の手法で求める。これらは、ステップS1cのリハーサ
ルのときに求めればよい。また、ジョイント部の奏法モ
ジュールの終了時刻については、図11(a)に示すよ
うに、調和成分の終了時刻を定義するパラメータ“post
TimeH”がジョイント部でのノートオンイベント発生時
点(図8の例ではEV5)と、ジョイント部の調和成分
の波形発生終了時点とのずれを規定しているので、その
次のイベントであるノートオンイベント(図8の例では
EV5)時刻“noteOnTime”にこれを加算して、“note
OnTime+postTimeH”を調和成分のジョイント部奏法モ
ジュール終了時刻として決定する。ステップS5cで
は、こうして、リハーサルで設定された調和成分のジョ
イント部奏法モジュール終了時刻を、次のボディ部の奏
法モジュールの調和成分の開始時刻として設定する。図
11(b)における調和外成分の終了時刻を定義するパ
ラメータ“postTimeNH”についても同様にリハーサル
処理することで、調和外成分のジョイント部奏法モジュ
ール終了時刻を決定し、次のボディ部の奏法モジュール
の調和外成分の開始時刻として設定する。
ル〉図9(d)は、現在イベントがリリース(フィニッ
シュ)部の奏法モジュールの場合のリハーサル処理の一
手順例を示すフロー図である。ステップS1dでは、今
回処理すべき奏法イベント(現在イベント)(例えば図
8のEV7,EV8)を奏法合成部23に渡し、その奏
法ID(特定のジョイント部の奏法モジュールを指示す
る)に応じたベクトルID及び代表点値列(Shap
e)及びその他パラメータを、奏法合成部23の処理に
よって、前記奏法テーブルからリハーサルとして読み出
して、これらをパート部22が受け取り、これに基づき
次のようにレベルや時刻等のパラメータ(制御データ)
を決定若しくは調整する処理を行なう。なお、前回の奏
法イベントのリハーサル処理のときに既に調整・変更さ
れているパラメータは、調整・変更されているものを用
いる。通常、前の奏法イベントのときに、既に今回処理
すべき奏法イベントについて必要なデータはリハーサル
済みであるから、このステップS1dは実際には省略可
能である。
における調和成分用の各ベクトル例を図11(c)に示
し、同奏法モジュールにおける調和外成分用の各ベクト
ル例を図11(d)に示す。HA,HP,HT,NH
A,NHT等の符号の意味は、図10と同様である。図
11(c)において、調和成分の開始時刻を定義するパ
ラメータのうち、“fadeTimeF”は前の奏法モジュール
の末尾波形とリリース部の先頭波形とをクロスフェード
合成するための時間を示し、“preBlockTimeF”はクロ
スフェード終了時から次のイベントであるノートオフイ
ベントの発生時点(図8の例ではEV8)との時間差を
示す。リリース部奏法モジュールの調和成分の開始時刻
は、ノートオフイベントの発生時刻“noteOffTime”を
基準にして、“noteOffTime−(fadeTimeF+preBlockT
imeF)”で決定される。また、リリース部奏法モジュ
ールの調和外成分の開始時刻は、“noteOffTime−preTi
meNH”で決定される。これらの開始時刻は、その前の
奏法イベントであるボディ部奏法モジュールのリハーサ
ル処理(図9(b)のステップS2b,S3b)におい
て既に求められているので、それを用いることができ
る。また、リリースの奏法モジュールの調和成分及び調
和外成分の各振幅ベクトル及び調和成分のピッチベクト
ルにおける各始点のレベルは、先行するボディ部奏法モ
ジュール(例えば図8のEV6)の各終点のレベルに合
わせる。これも、その前の奏法イベントであるボディ部
奏法モジュールのリハーサル処理(図9(b)のステッ
プS5b)において既に求められているので、それを用
いることができる。
ールであるリリース(フィニッシュ)部については、そ
れ以前に必要なリハーサルが済んでいる筈であるので、
ステップS1dによるリハーサルは、実際には不要であ
る。ステップS4dでは、今回の奏法イベントに係るリ
リース部奏法モジュールの合成を開始する指示を、奏法
合成部23に対して与える。なお、図9(a)(b)
(c)における各ステップS5a,S5b,S5cの処
理は、パート部22によるリハーサル処理で行なわず
に、次の奏法合成部23で実際に奏法合成を行なうとき
に行なうようにしてもよい。
付された奏法イベント(タイムスタンプ付き)とリハー
サル結果データを受けて所定の奏法合成処理を行なう。
この奏法合成処理では、所定の奏法アルゴリズムに従
い、奏法イベントの奏法ID及びパラメータあるいは制
御データを解釈して処理し、これに基づき奏法テーブル
から各ベクトルIDと代表点値列及び各種パラメータを
読み出し、これらを修飾又は加工もしは変更する。そし
て、奏法イベントに対応するこれらの各ベクトルIDと
代表点値列及び各種パラメータ等と前記リハーサルによ
って決定された時刻及びレベル等のパラメータ(制御デ
ータ)などをパケット化して時間順に従うストリームデ
ータとして出力する。図6において、ブロック331
a,331b,331c…が、奏法合成部23において
奏法合成処理等が実行されるタイミングを例示してい
る。また、図6のブロック330は上記パケット化され
たストリームデータの出力処理部分を例示し、その中の
ブロック330a,330b,330c…が各ストリー
ムデータの出力タイミングを例示している。
表点値列等の上記パケット化されたストリームデータを
奏法合成部23から受け取り、現在時刻より前記プリフ
ェッチ時間αだけ前の時刻に、ベクトルIDに応じて波
形データベース内のコードブックから波形テンプレート
データ等を読み出し、また、現在時刻より前記出力潜伏
(latency)時間δだけ前の時刻に、代表点値列とパラ
メータ等に基づき振幅ベクトル及びピッチベクトルのエ
ンベロープ波形形状を生成し、これらに基づき奏法波形
の調和成分波形と調和外成分波形をそれぞれ形成する。
そして、奏法波形の調和成分波形と調和外成分波形をそ
れぞれの時刻データに応じて所定の時刻位置に貼り付け
て、最終的にこれらを加算合成し、奏法波形の合成を行
なう。ここで確立される再生時刻(つまり現在時刻)デ
ータがイージー・プレーヤー部20に与えられ、再生位
置(時刻)のリアルタイム表示に用いられる。図6にお
いて、ブロック341,342,343,…は、波形合
成部24において波形データベース内のコードブックに
対するプリフェッチのタイミングを例示している。な
お、波形合成部24において前記波形テンプレートデー
タ及び振幅ベクトル及びピッチベクトルのエンベロープ
波形形状等に基づき奏法波形データを生成する手法とし
ては、例えば「ソフトウェア音源」として知られた手法
を適宜採用することができる。波形合成部24で合成さ
れた奏法波形データは、出力バッファ(図1の波形出力
部108に含まれる)に与えられる。該出力バッファに
記憶された奏法波形データが所定の再生サンプリング周
期で読み出されて、サウンドシステム108A(図1)
を経由して空間的に発音される。
トの読み出しとそれに対応する未来の奏法イベントの先
読みを、所定時間ε毎に行っているが、これに限らず、
随時行うようにしてもよい。
れた奏法モジュールに対応する波形を実際に合成する前
に、先行する奏法モジュールの少なくとも終端特性に関
する終端情報と後続する奏法モジュールの少なくとも先
端特性に関する先端情報とを取得する(リハーサルす
る)ことで、取得した終端情報と先端情報の関係から両
者が滑らかに接続されるように、少なくとも一方の特性
を修正することができる。このように修正された特性に
従い、奏法モジュールに対応する波形を合成すること
で、相前後する奏法モジュールに基づく奏法波形同士が
円滑に接続されるようにすることができる。
のハードウエア構成例を示すブロック図。
る図。
構成する各成分及び要素の一例を模式的に示す図。
構成例を説明する図。
かな手順を示すフローチャート。
する各処理ブロックが受け持つ処理の時間関係を大まか
に示す概略タイミングチャート。
を示す図、(b)は現在の奏法イベントの処理タイミン
グを規定する送り出し頻度とそれ後続する奏法イベント
を先読みして送り出す先送り時間との関係を例示するタ
イミングチャート。
ルの組み合わせ状態の一例を示すタイミングチャート。
処理の例を示すフローチャート。
ュールにおける調和成分及び調和外成分用の各ベクトル
例を示す図、(c)及び(d)はボディ部の奏法モジュ
ールにおける調和成分及び調和外成分用の各ベクトル例
を示す図。
ジュールにおける調和成分及び調和外成分用の各ベクト
ル例を示す図、(c)及び(d)はリリース部の奏法モ
ジュールにおける調和成分及び調和外成分用の各ベクト
ル例を示す図。
Claims (5)
- 【請求項1】 奏法モジュールを順次指定するステップ
と、 前記指定に従い、先行する奏法モジュールの少なくとも
終端特性に関する終端情報と後続する奏法モジュールの
少なくとも先端特性に関する先端情報とを取得するステ
ップと、 取得した終端情報と先端情報に基づいて、前記先行する
奏法モジュールと後続する奏法モジュールの少なくとも
一方の特性を修正するステップと、 前記指定された奏法モジュールに対応する波形を前記修
正に従う特性で合成するステップとを具える波形生成方
法。 - 【請求項2】 前記終端情報と先端情報は、時刻情報と
レベル情報の少なくとも一方を含む請求項1に記載の波
形生成方法。 - 【請求項3】 請求項1又は2に記載の波形生成方法を
コンピュータに実行させるためのプログラム。 - 【請求項4】 請求項3に記載のプログラムを記憶した
記憶媒体。 - 【請求項5】 奏法モジュールを順次指定する手段と、 前記指定に従い、先行する奏法モジュールの少なくとも
終端特性に関する終端情報と後続する奏法モジュールの
少なくとも先端特性に関する先端情報とを取得する手段
と、 取得した終端情報と先端情報に基づいて、前記先行する
奏法モジュールと後続する奏法モジュールの少なくとも
一方の特性を修正する手段と、 前記指定された奏法モジュールに対応する波形を前記修
正に従う特性で合成する手段とを具える波形生成装置。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001091187A JP3613191B2 (ja) | 2001-03-27 | 2001-03-27 | 波形生成方法及び装置 |
EP02006823A EP1258864A3 (en) | 2001-03-27 | 2002-03-25 | Waveform production method and apparatus |
SG200201698A SG118122A1 (en) | 2001-03-27 | 2002-03-25 | Waveform production method and apparatus |
CNB021081018A CN1194336C (zh) | 2001-03-27 | 2002-03-26 | 波形产生方法 |
TW091105912A TWI243355B (en) | 2001-03-27 | 2002-03-26 | Waveform production method and apparatus |
US10/107,865 US7259315B2 (en) | 2001-03-27 | 2002-03-26 | Waveform production method and apparatus |
HK02109425.4A HK1048012A1 (zh) | 2001-03-27 | 2002-12-31 | 波形產生方法和裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001091187A JP3613191B2 (ja) | 2001-03-27 | 2001-03-27 | 波形生成方法及び装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004174691A Division JP3876896B2 (ja) | 2004-06-11 | 2004-06-11 | 波形生成方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002287760A true JP2002287760A (ja) | 2002-10-04 |
JP3613191B2 JP3613191B2 (ja) | 2005-01-26 |
Family
ID=18945855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001091187A Expired - Fee Related JP3613191B2 (ja) | 2001-03-27 | 2001-03-27 | 波形生成方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3613191B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010091636A (ja) * | 2008-10-03 | 2010-04-22 | Kawai Musical Instr Mfg Co Ltd | タブ譜入力装置、タブ譜入力方法及びプログラム |
CN111326131A (zh) * | 2020-03-03 | 2020-06-23 | 北京香侬慧语科技有限责任公司 | 一种歌曲转换方法、装置、设备以及介质 |
-
2001
- 2001-03-27 JP JP2001091187A patent/JP3613191B2/ja not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010091636A (ja) * | 2008-10-03 | 2010-04-22 | Kawai Musical Instr Mfg Co Ltd | タブ譜入力装置、タブ譜入力方法及びプログラム |
CN111326131A (zh) * | 2020-03-03 | 2020-06-23 | 北京香侬慧语科技有限责任公司 | 一种歌曲转换方法、装置、设备以及介质 |
CN111326131B (zh) * | 2020-03-03 | 2023-06-02 | 北京香侬慧语科技有限责任公司 | 一种歌曲转换方法、装置、设备以及介质 |
Also Published As
Publication number | Publication date |
---|---|
JP3613191B2 (ja) | 2005-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3975772B2 (ja) | 波形生成装置及び方法 | |
US7259315B2 (en) | Waveform production method and apparatus | |
US6687674B2 (en) | Waveform forming device and method | |
JP4702160B2 (ja) | 楽音合成装置及びプログラム | |
JP2001100760A (ja) | 波形生成方法及び装置 | |
JP3601371B2 (ja) | 波形生成方法及び装置 | |
JP3654083B2 (ja) | 波形生成方法及び装置 | |
JP3654079B2 (ja) | 波形生成方法及び装置 | |
US7816599B2 (en) | Tone synthesis apparatus and method | |
JP4561636B2 (ja) | 楽音合成装置及びプログラム | |
JP3915807B2 (ja) | 奏法自動判定装置及びプログラム | |
JP3654080B2 (ja) | 波形生成方法及び装置 | |
JP3654082B2 (ja) | 波形生成方法及び装置 | |
JP3829780B2 (ja) | 奏法決定装置及びプログラム | |
JP3654084B2 (ja) | 波形生成方法及び装置 | |
JP4407473B2 (ja) | 奏法決定装置及びプログラム | |
JP3552675B2 (ja) | 波形生成方法及び装置 | |
JP3613191B2 (ja) | 波形生成方法及び装置 | |
JP3552676B2 (ja) | 波形生成方法及び装置 | |
JP3876896B2 (ja) | 波形生成方法及び装置 | |
JP2008058796A (ja) | 奏法決定装置及びプログラム | |
JP3933162B2 (ja) | 波形生成方法及び装置 | |
JP3674527B2 (ja) | 波形生成方法及び装置 | |
JP4007374B2 (ja) | 波形生成方法及び装置 | |
JP3933161B2 (ja) | 波形生成方法及び装置 |
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 |