JP3726765B2 - 波形形成装置及び方法 - Google Patents

波形形成装置及び方法 Download PDF

Info

Publication number
JP3726765B2
JP3726765B2 JP2002079135A JP2002079135A JP3726765B2 JP 3726765 B2 JP3726765 B2 JP 3726765B2 JP 2002079135 A JP2002079135 A JP 2002079135A JP 2002079135 A JP2002079135 A JP 2002079135A JP 3726765 B2 JP3726765 B2 JP 3726765B2
Authority
JP
Japan
Prior art keywords
waveform
loop
data
time
control information
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 - Lifetime
Application number
JP2002079135A
Other languages
English (en)
Other versions
JP2002287763A (ja
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 JP2002079135A priority Critical patent/JP3726765B2/ja
Publication of JP2002287763A publication Critical patent/JP2002287763A/ja
Application granted granted Critical
Publication of JP3726765B2 publication Critical patent/JP3726765B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
この発明は、メモリに記憶した波形データを読み出すことに基づき、楽音あるいは音声若しくはその他任意の音の波形を形成する技術分野に関し、特に、楽音の時間軸を伸縮制御する楽音制御装置及び方法に関する。この発明は、電子楽器は勿論のこと、自動演奏装置、コンピュータ、電子ゲーム装置その他マルチメディア機器等、楽音あるいは音声若しくはその他任意の音を発生する機能を有する汎ゆる分野の機器若しくは装置または方法において広範囲に応用できるものである。なお、この明細書において、楽音波形という場合、音楽的な音の波形に限るものではなく、音声あるいはその他任意の音の波形を含んでいてもよい意味合いで用いるものとする。
【0002】
【従来の技術】
波形メモリにおいて、PCM(パルス符号変調)あるいはDPCM(差分PCM)又はADPCM(適応差分PCM)等の任意の符号化方式で符号化した波形データ(つまり波形サンプルデータ)を記憶しておき、これを所望の楽音ピッチに対応して読み出すことにより、楽音波形を形成するようにした、いわゆる「波形メモリ読み出し」技術は、既に公知であり、また、様々なタイプの「波形メモリ読み出し」技術が知られている。従来知られた「波形メモリ読み出し」技術のほとんどは、発音開始から終了までの1つの音の波形を発生するためのものである。一例として、発音開始から終了までの1音の全波形の波形データを記憶する方式がある。また、別の例として、変化の複雑なアタック部についてはその全波形の波形データを記憶し、変化のあまりないサステイン部については所定のループ波形を記憶する方式がある(例えば特開昭59−188697号)。後者の方式では、ループ波形を記憶する構成であることにより波形データ記憶量を簡素化することができると共に、ループ波形を繰り返し読み出すことにより、音の持続時間を任意に調節することができる。なお、本明細書において、「ループ波形」とは、繰り返し読み出し(ループ読み出し)される波形という意味で用いるものとし、「ループ再生波形」とは、「ループ波形」を繰り返し読み出し(ループ読み出し)することで得られた(再生された)波形という意味で用いるものとする。
【0003】
また、1つの音の発生のために、複数のループ波形を使用し、各ループ波形を特定のシーケンスに従って順次切り替えて読み出し、相前後するループ波形のループ読出出力データ(つまり「ループ再生波形」)をクロスフェード合成することで、各ループ再生波形が滑らかに接続されるようにした技術も知られている(例えば特開昭62−14696号)。この場合、クロスフェード合成は、所定のクロスフェード区間において行なわれるようになっており、上述した単純な1つのループ波形の繰り返し読み出し技術とは異なり、個々のクロスフェード区間の時間長を任意に可変調節することについては示されていない。また、クロスフェード合成の対象となる波形は位相が合っている(あるいは少なくとも大きくずれていない)ことが必要であり、予め位相合わせしたループ波形の波形データを記憶しておく必要があった。
【0004】
一方、従来の電子楽器の波形メモリ音源では、読み出された波形データの時間長は、読み出し速度に応じて一意的に決定され、自由に伸縮することはできないという不都合があったことに鑑み、特開平10−307586号公報においては、波形メモリ読み出し方式の音源において、その読み出し速度(ピッチ)を任意に可変制御する一方で、その読み出し速度(ピッチ)とは独立に、読み出す波形データを時間軸上で任意に伸張及び圧縮制御することができるようにした技術が示されている。この場合、実アドレスデータと仮想アドレスデータとの比較に基づきアドレスシフト量を決定し、シフト制御された実アドレスデータで波形データを読み出すことにより、時間軸の伸張又は圧縮制御を行うようにしている。
【0005】
【発明が解決しようとする課題】
上述したような従来の時間軸の伸張又は圧縮制御技術は、実アドレスデータと仮想アドレスデータとの比較に基づきアドレスシフト量を決定し、シフト制御された実アドレスデータで波形データを読み出すことにより、時間軸の伸張又は圧縮制御を行うようにしていたので、仮想アドレス算出処理と比較処理とシフト処理が要求され、面倒であった。
この発明は上述の点に鑑みてなされたもので、時間軸の伸張又は圧縮制御技術の改良を図るものである。
【0006】
【課題を解決するための手段】
この発明に係る楽音制御装置は、楽音の時間軸を伸縮制御するための時間軸伸縮制御情報を発生する手段と、前記時間軸伸縮制御情報に基づきバーチャル時間データを生成する手段であって、前記バーチャル時間とは前記時間軸伸縮制御情報に応じて実時間を伸縮制御した時間を示すものであるものと、時間の関数である楽音特性制御情報を発生する手段であって、前記バーチャル時間データを引き数として該楽音特性制御情報を前記バーチャル時間に従って発生させるものとを具える。
【0007】
この発明に係る楽音制御方法は、プログラムに従って動作する中央処理部に、楽音の時間軸を伸縮制御するための時間軸伸縮制御情報を発生するステップと、前記時間軸伸縮制御情報を累算することによりバーチャル時間データを生成するステップであって、前記バーチャル時間とは前記時間軸伸縮制御情報に応じて実時間を伸縮制御した時間を示すものであるものと、時間の関数である楽音特性制御情報を発生するステップであって、前記バーチャル時間データを引き数として該楽音特性制御情報を前記バーチャル時間に従って発生させるものとを実行させることからなる。
【0008】
この発明によれば、楽音の時間軸を伸縮制御するための時間軸伸縮制御情報に基づき、実時間を伸縮制御した時間を示すバーチャル時間データを生成し、該生成したバーチャル時間データを引き数として、時間の関数である楽音特性制御情報を該バーチャル時間に従って発生させるようにしたので、所望の楽音特性制御情報を時間軸伸張又は圧縮制御することを容易に行うことができるようになる。
【0009】
以下説明する実施例との対応を示すと、例えば図7に示されるように楽音制御パラメータの1つとしてタイムベクトルTV(時間制御情報)が与えられ、これに応じて楽音の時間軸を伸縮制御するための時間伸縮制御データCRate(時間軸伸縮制御情報)が発生される。図9のステップS21では、この時間伸縮制御データCRateに基づきバーチャルタイムvt(バーチャル時間データ)を演算生成する。図9のステップS22,S24,S25,S29,S33〜S38等では、このバーチャルタイムvtを引き数として、時間の関数である各種楽音特性制御情報、すなわちピッチベクトル値PV(vt),振幅ベクトル値AV(vt),タイムベクトル値TV(vt),波形読み出し用のアドレスADi,ADi−1など、を発生する。これらの楽音特性制御情報に基づき楽音が生成され且つ制御される。
【0010】
一実施態様として、前記楽音特性制御情報は、所定の楽音特性を制御するために使用されるものであってよい。ここで、前記所定の楽音特性とは、波形、ピッチ及び振幅の少なくとも1つの楽音要素に対応する特性でってよい。
一実施態様として、波形、ピッチ及び振幅のような所定の複数の楽音要素のそれぞれに対応して前記楽音特性制御情報を夫々発生してよい。
【0011】
前記時間軸伸縮制御情報は時間の関数からなるものであり、前記時間軸伸縮制御情報を発生するために、前記バーチャル時間データを引き数として該時間軸伸縮制御情報を前記バーチャル時間に従って発生させるようにしてよい。
【0012】
この発明は、装置発明として構成し、実施することができるのみならず、方法発明として構成し、実施することもできる。また、この発明は、コンピュータプログラムの形態で実施することができるし、そのようなコンピュータプログラムを記憶した記録媒体の形態で実施することもできる。更に、この発明は、新規なデータ構造からなる波形データを記憶した記録媒体の形態で実施することもできる。
【0013】
【発明の実施の形態】
以下、添付図面を参照してこの発明の実施の形態を詳細に説明しよう。
図1は、この発明の一実施例に係る楽音制御方法を適用した波形形成装置のハードウェア構成例を示すブロック図である。ここに示されたハードウェア構成例はコンピュータを用いて構成されており、そこにおいて、波形形成処理は、コンピュータがこの発明に係る波形形成処理を実現する所定のプログラム(ソフトウェア)を実行することにより実施される。勿論、この波形形成処理は、コンピュータソフトウェアの形態に限らず、DSP(ディジタル・シグナル・プロセッサ)によって処理されるマイクロプログラムの形態でも実施可能であり、また、この種のプログラムの形態に限らず、ディスクリート回路又は集積回路若しくは大規模集積回路等を含んで構成された専用ハードウェア装置の形態で実施してもよい。また、この波形形成装置は、電子楽器あるいはカラオケ装置又は電子ゲーム装置又はその他のマルチメディア機器又はパーソナルコンピュータ等、任意の製品応用形態をとっていてよい。
【0014】
図1に示されたハードウェア構成例においては、コンピュータのメイン制御部としてのCPU(中央処理部)100に、ROM(リードオンリーメモリ)101、RAM(ランダムアクセスメモリ)102、ハードディスク装置103、リムーバブルディスク装置(例えばCD−ROMドライブ若しくはMOドライブなど)104,表示器105,キーボード及びマウス等の入力操作装置106,波形インタフェース107,タイマ108、通信インタフェース109,MIDIインタフェース110等が、バス111を介して接続されている。波形インタフェース107は、外部からアナログ波形信号(オーディオ信号)を入力してディジタル信号に変換してバス111に送り出す機能と、このコンピュータにより実行した波形形成処理によって形成されたディジタル波形データをバス111を介して受け取り、アナログ変換してスピーカシステム等に出力する機能等を有するものである。もちろん、形成されたディジタル波形データをディジタルデータのまま外部に転送出力することも可能である。
【0015】
この波形形成装置が楽器の製品応用形態をとっている場合は、入力操作装置106におけるキーボードとして、所望の楽音ピッチを選択・指定するための演奏キーボードを含んでいる。一方、この波形形成装置が楽器以外の製品応用形態をとっている場合は、MIDIインタフェース110にMIDIキーボードモジュールを接続し、これにより所望の楽音ピッチを選択・指定することができる。また、所望の楽音ピッチを選択・指定は、自動演奏データの形態で与えるようにしてもよい。自動演奏データは、ROM101、RAM102、ハードディスク装置103、リムーバブルディスク装置104等のいずれかの記憶装置に記憶されているものを読み出すことにより与えられるようになっていてもよいし、MIDIインタフェース110を介して外部から与えられるようにしてもよい。特に詳しく説明しないが、電子楽器の分野では通常知られているように、入力操作装置106においては、各種音色や楽音効果、音量等、各種楽音要素の選択・設定等を行うためのスイッチや操作子類が適宜設けられている。また、これらの各種楽音要素の選択・設定は、上記と同様に自動演奏データの形態で与えるようになっていてもよい。
【0016】
波形データを記憶する波形メモリWMの機能は、どのタイプのデータ記憶装置が受け持ってもよい。すなわち、ROM101、RAM102、ハードディスク装置103、リムーバブルディスク装置104のいずれを波形メモリWMとして機能させてもよい。一般的には、大容量の記憶装置であるハードディスク装置103における適宜の記憶領域あるいはリムーバブルディスク装置104に着脱可能なCD−ROMやMO等のリムーバブルな記録媒体を、波形データベースとしてつまり波形メモリWMとして、機能させればよい。あるいは、外部のホスト又はサーバコンピュータに具備されている波形データベースに対して、通信インタフェース109及び通信回線を介してアクセスし、必要な波形データをハードディスク装置103あるいはRAM102等にダウンロードするようにしてもよい。
CPU100の制御の下で、この発明に係る波形形成処理を実行するソフトウェアプログラムは、ROM101又はRAM102あるいはハードディスク装置103のいずれに記憶しておくようにしてもよい。また、このプログラムは、リムーバブルディスク装置104に着脱可能なCD−ROMやMO等のリムーバブルな記録媒体に記録されていてもよく、また、外部のホスト又はサーバコンピュータから通信回線及び通信インタフェース109を介して該プログラムを受信し、ハードディスク装置103あるいはRAM102等にダウンロードするようにしてもよい。
【0017】
波形メモリWMにおいては、多数の単位波形の波形データが記憶されている。単位波形とは、それを一つの単位として選択することが可能な波形の一単位を指す。単位波形には、複数のタイプがあり、そのタイプは、音楽的若しくは感性的な意味と、データ読み出しの仕方に基づく技術的意味の、両面から分類するようにしてよい。技術的意味に基づく分類は、その波形データを繰り返し読み出しするか否かによる分類であり、便宜上、波形データが繰り返し読み出しされるものを「ループ波形」といい、波形データが繰り返し読み出しされないものを「ノンループ波形」という。一方、音楽的若しくは感性的な意味に基づく分類は、その波形が、音のどのような部分若しくは区間で使用されるのに相応しいか、ということに基づく分類である。例えば、音の立ち上がり部分(アタック部)で使用されるのに相応しい単位波形を「アタック部波形」、音の立ち下げ部分(リリース部)で使用されるのに相応しい単位波形を「リリース部波形」、音の持続部分(サステイン部)で使用されるのに相応しい単位波形を「サステイン部波形」、スラー等の特定の奏法に従う音と音のつながり部分で使用されるのに相応しい単位波形を「つなぎ奏法波形」、あるいは、ビブラートやトレモロ等の特定の奏法に従って音の持続部で使用されるのに相応しい単位波形を「中間奏法波形」、等のように、適宜に分類し、適切に名付けることができる。
【0018】
概して、微妙なアーティキュレーション(奏法)が要求される部分で使用されるのに相応しい単位波形としては、そのアーティキュレーション(奏法)の特徴を色濃く表現することができる「ノンループ波形」を含んで使用するのがよい。「ノンループ波形」は、通常、そのアーティキュレーション(奏法)の特徴を表現するのに必要十分な複数周期分の波形からなる。一方、比較的単調な音の部分では、「ループ波形」を使用するのが、波形データ記憶容量の節約の点で都合がよい。「ループ波形」は、通常、1周期または適当な複数周期分の波形からなる。「ループ波形」は、それ単独で、比較的単調な音部分の単位波形として、例えば「サステイン部波形」の単位波形として、使用することができる。その場合に、複数の「ループ波形」を適宜順次組み合わせることにより、つまり、複数の単位波形を順次組み合わせることにより、一連の音の持続部分の波形を形成するようにしてもよく、それは音の品質を上げることができる点で有利である。また、単位波形同士の接続をクロスフェード合成によって滑らかに行うために、その接続箇所部分で、「ループ波形」を使用するのも有利である。しかして、「ノンループ波形」を含む単位波形にあっても、他の単位波形との接続箇所となる始端又は終端において予め「ループ波形」を含むことが、好ましい一実施の形態として考えられる。一方、勿論、「ノンループ波形」のみで構成される単位波形があってもよく、その場合は、他の単位波形との接続は、接続点における適切な位相合わせ処理によって、滑らかに行うことができる。
【0019】
図2は、波形メモリWMに記憶されるいくつかの単位波形の典型例を示す概略図である。図示の簡略化のために、実際の波形図形は一部のみ図示し、波形の所在の概要のみ四角枠で囲って図示している。なお、この図示例では、波形データの振幅ピークレベルを一定値に規格化して記憶しておき、読出・再生時に、所要の振幅エンベロープを付与するようにしている。勿論、これに限らず、記憶する波形データの振幅ピークレベルを規格化せずに、任意の振幅エンベロープが付与された状態のまま記憶しておくようにしてもよい。図で横軸はメモリのアドレスである。なお、波形メモリWMに記憶する各単位波形の波形データは、典型的には、PCM化された波形サンプルデータであるものとする。しかし、波形データのコード化フォームは、PCMに限らず、DPCMあるいはADPCM等であってもよい。
【0020】
図2(a)はアタック部波形の一例であり、このアタック部波形は先行するノンループ波形NLWと後続するループ波形LWとからなっている。波形メモリWMにおけるこのアタック部波形の開始点は、特定のスタートアドレスSAによって特定される。また、ループ波形LWの開始点は、特定のループスタートアドレスLSによって特定される。
図2(b)はサステイン部波形のような中間波形に該当する単位波形の一例であり、この中間波形は、1つのループ波形LWからなっている。この場合も、波形メモリWMにおけるこの中間波形の開始点、つまりループ波形LWの開始点は、特定のループスタートアドレスLSによって特定される。なお、中間波形に該当する単位波形の形態は、これに限らず、ノンループ波形を含んでいてもよい。例えば、所定のノンループ波形の前後にループ波形をそれぞれ配置して1つの単位波形を構成してもよい。
図2(c)はリリース部波形の一例であり、このリリース部波形は先行するループ波形LWと後続するノンループ波形NLWとからなっている。波形メモリWMにおけるこのリリース部波形の開始点、つまりループ波形LWの開始点は、特定のループスタートアドレスLSによって特定される。また、リリース部波形の終了点は、特定のエンドアドレスEAによって特定される。なお、前述のとおり、アタック部波形又はリリース部波形は、ループ波形LWを含まずに、ノンループ波形NLWのみからなっていてもよい。
【0021】
図2においては、個々のループ波形LWを管理するための個別の各種管理情報LS,LL,WN,SPについても示されている。ループスタートアドレスLSは前述の通りループ波形LWの開始点のアドレスであり、繰り返し読み出しつまりループ読み出しの開始アドレスを示す。ループ長データLLは、該ループ波形LWの長さをアドレス数によって示すデータであり、「LS+LL」によってループエンドアドレス(ループ読み出しの終わりのアドレス)を特定することができる。よって、当該ループ波形LWの繰り返し読み出しつまりループ読み出しは、ループスタートアドレスLSからループエンドアドレス「LS+LL」までの波形データを繰り返し読み出すことにより行われる。
【0022】
ループ波数データWNは、当該ループ波形LWを構成している波形の波数つまり周期数を示すデータである。前述のとおり、ループ波形LWは、1波つまり1周期に限らず、複数波つまり複数周期からなっていてもよい。この実施例においては、各ループ波形LWの波数(WN)及びアドレス数(LL)は任意であってよいものとしているので、波数(WN)及びアドレス数(LL)が適宜に異なるループ波形同士をクロスフェード合成するときに、後述するように、これらのデータWN,LLを利用して各ループ波形の読み出しレートの調整を行い、各ループ再生波形のピッチを合わせるようにしている。このように、波数(WN)及びアドレス数(LL)が適宜に異なるループ波形同士をクロスフェード合成できるようにした構成は、ループ波形同士の自由な組合せを容易に可能にし促進するものであるので、波形形成処理の際の制御性と編集性を高めることができる。
【0023】
初期位相情報SPは、ループスタートアドレスLSに対応して記憶されている当該ループ波形LWの先頭の波形サンプルデータの位相を絶対位相表現で示す情報である。すなわち、この実施例によれば、各ループ波形LWの初期位相を予め位相合わせして波形データを記憶させておく必要がなく、その代わりに、当該ループ波形LWの初期位相を示す初期位相情報SPを、当該ループ波形LWの波形データに対応づけて、波形メモリWMに記憶しておき、該初期位相情報SPを利用して必要な位相調整等の管理を行うことにより、ループ波形同士の組み合わせ(接続若しくはクロスフェード合成)の際に、適切な位相合わせを行うことができるようにしている。これにより、各ループ波形LWの初期位相を予め位相合わせしておかねばならないという面倒がなくなり、これに伴い、ループ波形LWの汎用性、異なる波形データベース間での相互利用可能性を高めることができるので、極めて有利である。なお、初期位相情報SPに限らず、その他の位相管理情報を、当該ループ波形LWの波形データに対応づけて、波形メモリWMに記憶しておくようにしてもよい。例えば、ループ波形LWの終了点(ループエンドアドレス「LS+LL」に対応する波形サンプルデータ)の位相を示す情報(終端位相情報)を、位相管理情報として使用してもよい。また、初期位相情報SP又は終端位相情報等の位相管理情報は、絶対位相に限らず、相対位相で表現してもよい。例えば、任意の位相値を基準位相として、該基準位相に対する初期位相(若しくは終端位相)の位相差つまり相対位相で表すようにしてもよい。また、初期位相情報SP又は終端位相情報等の位相管理情報のデータ表現は、この実施例ではラジアン表現を用いるものとするが、それに限らず、角度表現あるいは、アドレス数による間接的位相表現等であってもよい。更に、位相管理情報は、ループ波形LWの初期位相や終端位相を示すものに限らず、例えば、当該ループ波形LWにおける所定の基準位相(例えば0位相)の波形サンプルデータが所在するアドレスを示す情報等であってもよい。
【0024】
図3はいくつかのループ波形の具体例を拡大して示す図であり、(a)に示すループ波形例1は初期位相情報SPが0である例、(b)に示すループ波形例2は初期位相情報SPがΔP1である例、(c)に示すループ波形例3は初期位相情報SPがΔP2である例、を示している。図で黒点で示した箇所が0位相(絶対位相の位相値0)に該当している。また、図の各例ではWN=1としている。この例では初期位相情報SPを絶対位相で表しているため、(a)のように初期位相が0位相である場合はSP=0、(b)のように初期位相がΔP1である場合はSP=ΔP1、(c)のように初期位相がΔP2である場合はSP=ΔP2、と表現される。これに対して、例えば絶対位相の位相値ΔP1を基準とする相対位相で初期位相情報SPを表現した場合は、(a)の例はSP=2π−ΔP1、(b)の例はSP=0、(c)の例はSP=ΔP2−ΔP1、と表現される。図において、ゼロ位相アドレスZPは、当該ループ波形における0位相(所定の基準位相)の波形サンプルデータが所在するアドレスを示す。図から明らかなように、このようなゼロ位相アドレスZPによってループ波形の初期位相を表現できる。このゼロ位相アドレスZPは、ループスタートアドレスLSに対する相対値で表されていてよい。位相管理情報は、その他適宜の表現が可能である。
【0025】
図4(a)は、波形メモリWMにおける記憶フォーマットを略示する図であり、波形メモリWMは管理データ領域と波形データ領域とからなる。波形データ領域は、上述したような様々なタイプの多数の単位波形の波形データ(具体的な波形サンプルデータ)をそれぞれ個別に記憶する領域である。管理データ領域は、波形データ領域に記憶している個々の波形データについて必要な各種の管理情報を記憶している領域である。
【0026】
図4(b)〜(d)は、管理データ領域に記憶される各波形データ毎の管理データの具体的な記憶フォーマットを、いくつかのタイプの単位波形について、例示するものである。(b)はノンループ波形NLWとループ波形LWからなるアタック部波形についての管理データの一例、(c)はループ波形LWのみからなる中間波形についての管理データの一例、(d)はループ波形NLとノンループ波形NLWからなるリリース部波形についての管理データの一例、を示す。図示の管理データフォーマットにおいて、タイプデータTYPEは、その単位波形がいかなるタイプのものであるかを示すデータである。例えば、(b)の場合は「ノンループ波形NLWとループ波形LWからなるアタック部波形」ということがタイプデータTYPEによって示され、(c)の場合は「ループ波形LWのみからなる中間波形」ということがタイプデータTYPEによって示され、(d)の場合は「ループ波形NLとノンループ波形NLWからなるリリース部波形」ということがタイプデータTYPEによって示される。その他、タイプデータTYPEは、上述した各種のタイプに応じて、当該タイプを示すことができるような情報からなる。識別データIDは、個々の波形データを識別するデータ(例えば個別波形データのファイル名)である。
【0027】
また、管理データは、当該単位波形の波形データを波形データ領域から読み出すために必要なアドレスデータやその他のデータを含んでいる。(b)の例では、スタートアドレスSA、ループスタートアドレスLS、ループ長さデータLL、ループ波数データWN、ループ波形の初期位相情報SPなどである。(c)の例では、ループスタートアドレスLS、ループ長さデータLL、ループ波数データWN、ループ波形の初期位相情報SPなどである。(c)の例では、ループスタートアドレスLS、ループ長さデータLL、ループ波数データWN、ループ波形の初期位相情報SP、エンドアドレスEAなどである。
【0028】
ところで、ループ波形LWにおいては、ループ長さデータLLとループ波数データWNとによって、1波つまり1周期波形当りのアドレス数(サンプル数)が判明する。この1波つまり1周期波形当りのアドレス数(サンプル数)を示すデータを波長データWLということにする。波長データWLは、下記の式(1)によって求まる。
WL=LL/WN …(1)
前述の通り、これらのデータ(つまり波長データWL)を用いて読み出しレートを調整することによって、所望の楽音ピッチに従う読み出しが可能となる。これによって、記録時のサンプリング周波数の違いやオリジナル音のピッチの相違などを考慮に入れた波形データ読み出し制御が可能となるので、所望の再生ピッチを保ちながら、記録時のサンプリング周波数やオリジナル音のピッチが異なる単位波形同士を接続したり、クロスフェード合成したりすることが容易に行えるようになる。
【0029】
同様の目的のために、ノンループ波形NLWにおいても、当該波形における1波つまり1周期波形当りのアドレス数(サンプル数)の代表値を示すデータ(波長データWL)を、管理データの中に含んで記憶しておくものとする。その場合、代表的な波長データWLは、一般的に、「記録時のサンプリング周波数」÷「オリジナル音のピッチ周波数」の式から得ることができる。なお、この種の波長データWLは、ノンループ波形NLWのみからなる単位波形の管理データにおいて記憶しておくようにし、ノンループ波形NLWとループ波形LWを含んでいる単位波形の管理データにおいては、ループ波形LWについて上記式(1)から得られる波長データWLをノンループ波形NLWにも流用するようにしてよい。
【0030】
次に、所望の楽音再生ピッチに従って波形メモリWMから波形データを読み出すための基本的な原理について説明する。
所望の楽音再生ピッチの周波数に比例する定数である「周波数ナンバ」(以下、Fナンバと略称する)を、所定の再生サンプリング周波数に対応する規則的時間間隔で繰り返し加算若しくは減算(つまり累算)し、その累算値の整数部をメモリ読出用アドレスとして、波形データの読み出しを行う波形読出原理は既に周知である。当実施例では、この波形読出原理に従うものとする。所望の楽音再生ピッチの周波数をfnとし、所定の再生サンプリング周波数をfsとすると、その標準的なFナンバ(これを標準FナンバFst(N)と表す)は、下記式(2)で求まる。
Fst(N)=fn/fs …(2)
標準FナンバFst(N)は、小数値からなり、適宜のFナンバテーブルに記憶されており、再生すべき楽音のピッチが、押鍵操作あるいはキーコード若しくはノートナンバ等の情報によって指定されたとき、該Fナンバテーブルから読み出される。
【0031】
上記の標準FナンバFst(N)は、所望の楽音再生ピッチの周波数fnの1周期に対応するアドレス数を1としたときのFナンバに相当する。つまり、Fst(N)を「fs/fn」回累算したときに、その累算結果が「1」になるような値である。しかし、実際のFナンバは、該Fナンバを再生サンプリング周波数fsに従う周期で「fs/fn」回累算したときに、その累算結果が波長データWLに相当するアドレス数(1周期分のアドレス数)になるような値であるべきなので、実際のFナンバ(これをF(N)とする)は、上記標準FナンバFst(N)と上記式(1)で求めた波長データWLを用いて下記式(3)に従って算出する。
F(N)=Fst(N)×WL …(3)
【0032】
更に、後述するように、再生楽音のピッチを時間的に変動制御するピッチ制御関数PV(vt)(ピッチベクトル)を使用して、再生ピッチを時変動制御する場合は、実際のFナンバF(N)は、下記式(4)に従って算出される。ただし、ピッチ変動なしのとき、PV(vt)=1である。
F(N)=Fst(N)×WL×PV(vt) …(4)
上記式(4)で求まるFナンバF(N)を、再生サンプリング周波数fsに従う周期で規則的に累算し、その累算値の整数部を読出アドレス(スタートアドレスSA又はLSに対する相対アドレス)として波形データを読み出すことにより、所望の楽音再生ピッチに対応する周波数fnを持つ波形を、ピッチ制御関数PV(vt)に従うピッチ時変動制御を行いつつ、再生読み出しすることができる。この場合の読出アドレスをADで示すと、ループ波形LWの波形データを読み出す場合は、下記式(5)のように表せる。
AD=LS + MOD.LL{ΣF(N)} …(5)
ここで、ΣF(N)は、FナンバF(N)を再生サンプリング周波数fsに従う周期で規則的に累算した値を示し、MOD.LL{ΣF(N)}は、該累算値ΣF(N)を、当該ループ波形LWのループ長さデータLLに対応する値をモジュロ数とする余り値、つまりΣF(N)をLLで割った商の余り値である。これにより、ループスタートアドレスLSから始まって、ループ長さデータLLの範囲のアドレス範囲で繰り返される(ループする)読出アドレスADが生成され、この読出アドレスADに従ってループ波形LWの波形データを繰り返し読み出し(ループ読み出し)することができる。
【0033】
なお、図2(a)のようなアタック部波形のノンループ波形NLWを読み出す場合は、読出アドレスADを下記式(6)に従って生成すればよく、これに従って該ノンループ波形NLWを1回だけ読み出す。
AD=SA + ΣF(N) …(6)
また、図2(c)のようなリリース部波形のノンループ波形NLWを読み出す場合は、読出アドレスADを下記式(7)に従って生成すればよく、これに従って該ノンループ波形NLWを1回だけ読み出す。
AD=LS+LL+ ΣF(N) …(7)
なお、「LS+LL」はリリース部波形のノンループ波形NLWのスタートアドレスを示している。
【0034】
なお、FナンバF(N)の累算値ΣF(N)の小数部の値を用いて、通常知られているように、波形データのサンプル値の補間演算を行い、記憶された波形データの分解能よりも精密な分解能で波形データを生成することができる。ところで、上記式(4)でFナンバF(N)を算出する場合、あるいは累算値ΣF(N)の演算過程において、演算のビット数(桁数)に限界があるため、下位ビットの丸め込み処理が行われる。その結果、誤差が生じることになるが、適当な周期で所定の誤差補正演算を行うようにすればよい。特に、後述するように、2つのループ波形をクロスフェード合成する場合に、両波形の初期位相のずれに応じた位相差を保持して両ループ波形の読出アドレスADの生成を行うことにより、結果的に両者のループ再生波形の位相合わせを行うようにしているので、上記の丸め誤差が両者の読出アドレスADの位相差に誤差をもたらし、ループ再生波形の位相合わせに誤差をもたらすことになる。そのようなクロスフェード合成に際しての各読出アドレスADの所定の位相差を狂わせる丸め誤差の影響を補正するために、両読出アドレスADの差が所定の位相差を保つように、適当な周期で強制的に誤差補正演算を行えばよい。例えば、512サンプルの波形データを再生する毎に(再生サンプリング周波数fsが48kHzの場合は約10ミリ秒毎)、あるいは4096サンプルの波形データを再生する毎に(約100ミリ秒毎)、といういうように、所定の時間間隔で、両ループ波形の読出アドレスADの差が、両者の初期位相SPの差を保つように、累算値ΣF(N)を修正すればよい。
【0035】
次に、ループ波形同士を接続する処理の基本例について説明する。
図5の(a)は、先行するループ波形Aと後続するループ波形Bを単純接続する例を示す。この場合は、先行するループ波形Aを所定回数だけループ読出した後、後続するループ波形Bのループ読出を行うように、切り換えることにより、接続を行う。その場合に、両者の初期位相情報SPを考慮して、接続点における先行するループ波形Aの終端と後続するループ波形Bの始まりの位相が合うように、後続するループ波形Bの読出開始アドレスを調整すればよい。例えば、図3(b)のループ波形例2が先行するループ波形Aであり、(c)のループ波形例3が後続するループ波形Bであるとすると、先行するループ波形Aのループ読出の最後においてその読出アドレスがゼロ位相アドレスZPまで到達したとき、後続するループ波形Bの読出に切換え、該ループ波形Bをそのゼロ位相アドレスZPから読出開始するようにすればよい。このように、単純接続する場合においても、両者の初期位相情報SPを利用して滑らかに接続できるよう位相調整処理を行うことができる。この場合、各ループ再生波形の持続時間つまりループ区間は、それぞれ独自の時間制御情報によって可変制御するようにすることができる。
【0036】
図5の(b)は、先行するループ波形Aと後続するループ波形Bをクロスフェード合成する例を示す。この場合は、クロスフェード区間1において、先行するループ波形Aをループ読み出しすると同時に、後続するループ波形Bもループ読み出しし、先行するループ波形Aのループ再生波形を図で点線で示すようなフェードアウト(立ち下がり)特性のエンベロープで振幅制御し、後続するループ波形Bのループ再生波形を図で点線で示すようなフェードイン(立ち上がり)特性のエンベロープで振幅制御し、両者を加算合成して、1つのループ再生波形を合成する。クロスフェード合成されたループ再生波形は、ループ波形Aからループ波形Bへと滑らかに変化することになる。その次のクロスフェード区間2においては、ループ波形Bをループ読み出しすると同時に、後続するループ波形Cもループ読み出し、両者を上述と同様にクロスフェード合成する。この場合も、各クロスフェード区間におけるループ再生波形の持続時間は、それぞれ独自の時間制御情報によって可変制御するようにすることができる。例えば、時間制御情報に応じて当該クロスフェード区間のクロスフェードカーブの傾き(フェードアウト及びインのエンベロープの傾き)を変えることで、各クロスフェード区間の時間長をそれぞれ独立に可変制御することができる。以下、さらに詳細に説明する例においては、クロスフェード合成によってループ波形同士の接続処理を行うものとする。
【0037】
2つのループ波形の読み出し出力をクロスフェード合成する場合、両者の位相が合っていないと、波形の打消が起こるので、好ましくない。そこで、クロスフェード合成する2つのループ波形の読み出し出力(つまりループ再生波形)の位相が合うように適切に位相調整してやる必要がある。そのために、各ループ波形の初期位相情報SPを使用し、両者の読出アドレスADを適切に位相調整することにより、両ループ再生波形の位相が合うように制御する。なお、「位相を合わせる」とは、必ずしも厳密に位相を合わせることのみを意味するのではなく、波形の打消が起こらない範囲で適切に位相調整を行なうことも含む。つまり「ゆるい位相合わせ」であってもよい。
【0038】
そのための一例として、クロスフェード合成する2つのループ波形の読出アドレスADi,ADi-1 を下記式(8)及び(9)に従って算出すればよい。これらの式における各変数AD,LS,LL,ΣF(N)の意味は、上記式(5)と同じであり、各変数に付された添字i-1 は、先行するループ波形についての変数であることを示し、添字iは、後続するループ波形についての変数であることを示す。すなわち、ADi-1 は先行するループ波形の読出アドレス、ADiは後続するループ波形の読出アドレスである。また、SPi-1 は先行するループ波形の初期位相情報SP(ラジアン表現)、SPiは後続するループ波形の初期位相情報SP(ラジアン表現)である。この例の場合、式(8)は上記式(5)と同じであり、先行するループ波形の読出アドレスADi-1 については、初期位相情報SPに応じたアドレスオフセット処理を行なっていない。
Figure 0003726765
【0039】
上記式(9)において、「−(SPi−SPi-1)×WLi/2π」の項は、初期位相SPiとSPi-1とSPiの位相差を、後続するループ波形の波長データWLiを1周期(=2π)とするアドレス数に換算したものである。これにより、一方の読出アドレスADiが、他方の読出アドレスADi-1 に対して、両者の初期位相SPの位相差「SPi−SPi-1」に対応するアドレス数分だけオフセットされ、両者の実際の波形データの読出位相が合うことになる。つまり、読出アドレスADi-1 によりその初期位相SPi-1 のアドレス0から波形データを読み出すとき、読出アドレスADiのアドレスはその初期位相SPiから「SPi−SPi-1」の位相差だけオフセットされたアドレス、つまり、SPi−(SPi−SPi-1)=SPi-1 の位相に対応するアドレスから波形データを読み出すこととなり、両者の読出波形データの絶対位相が合うことになる。
【0040】
図6は、上記2系列の読出アドレスADi-1,ADiが、両者の初期位相SPの位相差「SPi−SPi-1」に対応するアドレス数分だけオフセットした状態を保ちつつ、ループする状態を示したグラフである。縦軸がアドレス、横軸が時間である。それぞれのループ長さデータLLi-1,LLiに対応するアドレス範囲でループしている。この図から明らかなように、読出アドレス形成処理は、或る第1のループ波形の波形データを読み出すための第1のアドレス信号ADiと或る第2のループ波形の波形データを読み出すための第2のアドレス信号ADi-1 とを、該第1及び第2のループ波形の初期位相の差「SPi−SPi-1 」に応じた異なる態様でループさせてなるものであり、これにより、該第1及び第2のアドレス信号ADi,ADi-1 に従って前記第1及び第2のループ波形の波形データをそれぞれ繰返し読み出しすることでそれぞれに対応して形成される第1及び第2のループ再生波形の位相調整つまり位相合わせが行なわれるようになっている。なお、図6の例では、2つのループ波形のループ波数が「1」で、それぞれのループ周期Ti-1,Tiが再生ピッチの1周期Tに対応しているものとしている。そうすると、両アドレス信号ADi-1,ADiのループタイミングの時間差ΔTは、再生ピッチの1周期Tを2πとするラジアン表現に換算すると、
2π(ΔT/T)
と表すことができ、これが両ループ波形の初期位相SPi-1,SPiの位相差ΔSPに対応している。つまり、
ΔSP=SPi−SPi-1 =2π(ΔT/T)
なる関係が成り立つ。図示のように、この初期位相差ΔSPに対応するアドレスのずれを保持しつつ、各アドレス信号ADi-1,ADiがループする。
【0041】
ところで、クロスフェード区間が切り替わるときは、それまでの後続ループ波形が先行ループ波形に切り換わり、その次のループ波形が後続ループ波形となる。後続ループ波形から先行ループ波形に切り替わった読出アドレスADiの進展を滑らかにするには、クロスフェード区間の最後で、後続ループ波形の読出アドレスADiがそのループ波形の終了点アドレス(つまりLS+LL)に達したときに波形を切り替えるようにするとよい。そうすれば、上記式(9)に従ってアドレスオフセットしつつループしていた後続ループ波形の読出アドレスADiが次にとるべきアドレスはループスタートアドレスLSであることになり、クロスフェード区間の切り替えによって、次のサンプリング周期において、これが先行ループ波形切り替わって、その読出アドレスADi-1 が上記式(8)に従って算出されることとなったとしても、所定のループスタートアドレスLSを読出アドレスとして指定することとなり、問題のない制御が行なえる。
【0042】
クロスフェード合成する2つの読出アドレスADi-1,ADiの計算式は、上記式(8)、(9)に限らず、適宜変更可能である。例えば、下記式のように、夫々の初期位相SPi-1,SPiに相当するアドレス数分だけオフセットするようにしてもよい。
Figure 0003726765
この場合も、両読出アドレスADi-1,ADiのループタイミングの時間差は、両者の初期位相SPの位相差「SPi−SPi-1」=ΔSPに対応するものとなり、両者の実際の波形データの読出位相が合うことになる。
【0043】
なお、上述したような、初期位相SPの位相差「SPi−SPi-1」を考慮して各読出アドレスADi-1,ADiのループタイミングに時間差を設定してそれぞれループ読出制御することにより、初期位相の異なる2つのループ波形の各ループ再生波形の絶対位相を実質的に合わせるようにした処理は、クロスフェード合成の場合に限らず、適宜のミキシング比で2系列またはそれ以上の系列のループ波形をミキシング合成(若しくは補間合成)するような場合にも適用することができる。また、必ずしも、初期位相情報SPを管理データ領域に予め記憶させておかなくてもよい。すなわち、任意の初期位相からなる2つのループ波形を合成しようとする段階になってから、両ループ波形を分析して両者の初期位相の差を求め、この位相差に応じて両ループ波形の読出アドレスのループタイミングをずらすことで、初期位相の異なる2つのループ波形の各ループ再生波形の絶対位相を実質的に合わせるようにすることができる。位相差の分析は、例えば、2つのループ波形の相互相関関数が最も大きくなる位相差を求めることで可能である。
【0044】
次に、一連の音の波形を形成する処理について説明する。
基本的には、一連の音の波形は、複数の単位波形を所望の順序で選択して、その波形データを波形メモリWMから読み出し、これらを相互に接続することにより、形成される。一例として、予め設定された波形シーケンスデータによって、単位波形の選択順序と読み出し手順等が指定される。図4(e)は、そのような波形シーケンスデータの一例を示すものである。この波形シーケンスデータは、ROM101,RAM102,ハードディスク装置103,リムーバブルディスク装置104等の適宜のデータ記憶装置において予め記憶されているものであってよく、また、そのデータ内容の書き替え等の編集操作を適宜行なうことができるものである。
図4(e)に示した波形シーケンスデータは、図7(a)に示すような態様で、複数の単位波形を組み合わせるようにした例に対応するものである。図4(e)において、まず、時間データt0と共に特定の単位波形Atk5を指定する波形選択データが記憶されている。時間データt0は、波形形成スタートタイミングを示すデータである。波形選択データによる指定値「Atk5」をインデックスとして、波形メモリWMから「Atk5」の識別データIDを持つ単位波形の管理データを読み出し、これに基づき該単位波形Atk5の波形データを所定の手順で読み出す。例えば、この単位波形Atk5のタイプは、図2(a)に示すようなノンループ波形NLWとループ波形LWとからなるアタック部波形である。次のデータXF5は、クロスフェード区間長データであり、特定のクロスフェード区間長(時間長)を指示している。クロスフェード区間長は、クロスフェードカーブの傾きに対応している。すなわち、クロスフェードカーブは、係数値0から1まで(または1から0まで)の範囲で直線的に変化する関数からなり、その傾きがそのまま0から1まで(または1から0まで)の変化に要する時間つまりクロスフェード区間長に対応している。次のデータLp10は、ループ波形のみからなる特定の単位波形Lp10を指定する波形選択データである。よって、上記データXF5は、単位波形Atk5の終端部分にあるループ波形と次のループ波形Lp10とをクロスフェード合成する際のクロスフェード区間長を指示している。
【0045】
図7の例では、以後、ループ波形のみからなる単位波形Lp12,Lp8,Lp7を順次接続し、それぞれのクロスフェード区間長をXF1,XF10,XF7,XF16のように順次設定することが示されている。よって、図4(e)のデータも、それに対応するシーケンスが得られるように、記憶されている。最後の単位波形Rel5は、図2(c)に示すようなループ波形LWとノンループ波形NLWとからなるリリース部波形である。データXF16によって区間長が指示されたクロスフェード区間ではループ波形Lp7とリリース部波形Rel5の始まり部分にあるループ波形との間でクロスフェード合成がなされる。
【0046】
図7(a)において、時点t1〜t6は、それぞれ使用する単位波形を切り替える時点を示している。これらの切り替え時点は、ノンループ波形の固有のデータ長やデータXFによって指定される各クロスフェード区間長によってそれぞれ決まってくるが、後述する波形データの時間軸伸縮制御に伴って適宜可変制御される。なお、図7(a)に示された序数iは、波形シーケンスにおける単位波形の切り替えステップを示す序数であり、1,2,3,…と順に変化する。また、図7(a)に示されたステート情報STは、シーケンスの進展に伴って変化するシーケンス管理情報であり、例えば、0のとき発音停止ステートを示し、1のときアタックステートを示し、2のとき単位波形を切り替える準備を行なう過渡的ステートを示し、3のときループ波形のクロスフェード合成を行なうクロスフェードステートを示し、4のときリリースステートを示す。
【0047】
上述したような波形シーケンスに従って、所定の単位波形が順次読み出され、その際、ループ波形にあっては適宜ループ読み出しされ、かつ、単位波形同士の接続はループ波形同士のクロスフェード合成によって滑らかに行なわれ、全体として、一連の音の波形が形成される。この一連の音とは、1つの音若しくは音符を構成するものに限らず、複数の音若しくは音符(つまりフレーズ)を構成するものであってもよい。なお、その際、ループ波形同士のクロスフェード合成に際しては、前述の通り、それぞれの初期位相情報SPを使用して位相合わせを行ないつつ、ループ読み出しが行なわれる。なお、所望の一連の音の波形を形成するための波形シーケンスデータは、メモリに予め記憶されたものを使用する場合に限らず、演奏者のリアルタイムの選択・設定操作に応じてリアルタイムで作成したり、変更したりできるようにしてよい。
【0048】
更に、この実施例においては、上記のような波形シーケンスに従って生成する波形の様々な楽音要素を、各種のパラメータによって可変制御するようにしている。制御対象となる楽音要素の代表例は、ピッチ、音色、振幅、時間等である。それぞれの楽音要素についての制御量は、時間的に可変のエンベロープデータの形で与えられる。図7(b)〜(d)は、いくつかの楽音要素制御データの一例を示したものであり、(b)は時間要素を制御するデータ(時間制御情報)の一例、(c)は振幅要素を制御するデータの一例、(d)はピッチ要素を制御するデータの一例、である。このような各種の制御データの時間変化のパターンつまりエンベロープ形状は、テンプレートとして予め準備されていてよいし、または所望のテンプレートをユーザーが自由に作成できるようにしてもよい。なお、各テンプレートは、適宜のメモリ又はテーブル等に予め記憶しておくようにしてもよいし、また、必ずしもメモリ又はテーブル等に予め記憶しておくことなく、適宜演算等によって形成するようにしてもよい。
【0049】
個々の波形シーケンスに対応して、これらの各種楽音要素制御データの所定のテンプレートを指定するデータを、ベクトルデータとして、用意しておく。図7(b)のような時間要素制御データ(時間制御情報)を特定するベクトルデータを、タイムベクトルTVということにする。このタイムベクトルTVによって、所定のエンベロープ状の(つまり時間変化しうる)時間要素制御データ(時間制御情報)のテンプレートを特定し、発生することができる。図7(c)のような振幅要素制御データを特定するベクトルデータを、振幅ベクトルAVということにする。この振幅ベクトルAVによって、所定の振幅エンベロープのテンプレートを特定し、該振幅エンベロープを発生することができる。図7(d)のようなピッチ要素制御データを特定するベクトルデータを、ピッチベクトルPVということにする。このピッチベクトルPVによって、所定のピッチ変動エンベロープのテンプレートを特定し、該ピッチ変動エンベロープを発生することができる。ピッチベクトルPVに基づくピッチ変動エンベロープ値は、Fナンバに対する比率で表されており、ピッチ変化させない場合は「1」、ピッチをアップする場合は「1」以上の値、ピッチをダウンする場合は「1」未満の値、である。
【0050】
タイムベクトルTVに基づき行なわれる時間要素の制御とは、波形データが時間軸で存在する長さ(つまり持続時間長)を伸張したり圧縮したりする制御(以下、これを時間軸伸縮制御、略してTSC制御、という)である。この種の時間軸伸縮制御すなわちTSC制御は、楽音再生ピッチとは独立に波形データの存在時間長を制御できるようにすることが望ましい。そのためのタイムベクトルTVに基づく時間軸伸縮制御情報は、時間軸伸縮比を示すデータ(これをCRateという)として表され、例えば、時間軸伸縮を行なわない場合「1」、時間軸伸張を行なう場合「1」未満の値、時間軸圧縮を行なう場合「1」以上の値、で表される。
【0051】
更に時間軸伸縮制御すなわちTSC制御について説明する。ループ波形の場合は、基本的には、ループ回数を可変することによって、比較的簡単に、楽音再生ピッチとは独立に、ループ再生波形全体の時間長を可変制御することができる。つまり、クロスフェード区間長データXFによって特定のクロスフェードカーブが特定されると、それに伴ってクロスフェード区間長(時間長若しくはループ回数)が決まってくる。ここで、このクロスフェードカーブの傾きをタイムベクトルTVが示す時間軸伸縮比によって可変制御することにより、クロスフェードの速さが可変制御され、結局、クロスフェード区間の時間長が可変制御される。その間、楽音再生ピッチには影響を与えないので、結局、ループ回数が可変制御されることで当該クロスフェード区間の時間長が可変制御される。
【0052】
一方、ノンループ波形の場合は、楽音再生ピッチとは独立に、時間軸上におけるその存在時間長を可変制御することはそれほど簡単ではない。しかし、本出願人が既に出願済みの新技術である「波形データの時間軸伸縮制御」技術を用いることで、ノンループ波形の時間軸伸縮制御も可能である。すなわち、簡単に要約すれば、一定の波形データ量からなるノンループ波形を、一定の再生サンプリング周波数と所定の再生ピッチを維持しつつ、その時間軸上の波形データ存在時間長を伸縮するために、圧縮する場合は、波形データの適宜の部分を飛び越して読み出しを行ない、伸張する場合は、波形データの適宜の部分を繰り返し読み出しするようにし、そして、飛び越し若しくは部分的繰り返し読み出しによる波形データの不連続性を除去するためにクロスフェード合成を行なうようにする。この手法を、本実施例におけるノンループ波形部分でのTSC制御においても適用することができるが、本明細書では詳しくは説明しない。なお、ノンループ波形部分での時間軸伸縮制御を行なわずに、ループ波形の部分でのみ時間軸伸縮制御を行なうようにしてもよい。
【0053】
ところで、図7(b)〜(d)の横軸は時間軸であるが、この変数は実際の時間ではなく、図7(b)に示すようなタイムベクトルTVに基づく時間軸伸縮比データCRateに応じて伸縮制御された時間軸(これをバーチャルタイムvtという)である。すなわち、図7(a)に示すような再生波形データは、その時間軸での存在時間が、図7(b)に示すタイムベクトルTVに応じて伸縮制御されるので、この伸縮制御にあわせて、図7(b)〜(d)に示す各ベクトルに基づく制御データの時間軸も伸縮してやる必要がある、つまり、各楽音要素の制御データの時間軸上の存在時間も、再生波形データの時間軸伸縮に同期させて、伸縮してやる必要があるからである。この理由により、前記式(4)におけるピッチ制御関数PV(vt)の時間変数としてバーチャルタイムvtを用いている。また、振幅エンベロープ関数AV(vt)及びピッチ変動エンベロープ関数PV(vt)の時間変数としてもバーチャルタイムvtが用いられる。
【0054】
次に、図4(e)あるいは図7(a)に示したような波形シーケンスにしたがって、図1におけるコンピュータによって波形形成処理を行なう場合の処理プログラムの一例を図8〜図10によって説明する。
図8は、波形再生のために波形シーケンスを進行する処理の概略を示す。まず、再生しようとする波形シーケンスデータを指定する(ステップS1)。次に、ステートSTを「0」にセットし、波形再生を開始する準備をする(ステップS2)。次のステップS3では、ストップイベントSTOPの有無をチェックする。ストップイベントSTOPが与えられていない場合は、時間データt0によって示された波形形成スタートタイミングが到来したかどうかをチェックする(ステップS4)。NOであれば、ステップS3に戻り、ステップS3,S4を繰り返す。波形形成スタートタイミングが到来し、ステップS4でYESと判断されたら、ステートSTを「1」にセットすると共に序数iを「1」にセットし、最初の単位波形つまりアタック部波形を再生する準備をする(ステップS5)。すなわち、波形メモリWMの管理データ領域から該当するアタック部波形(例えば図4(e)及び図7(a)のAtk5)の各管理データを読み出し、該アタック部波形Atk5の波形データを波形メモリWMの波形データ領域から読み出すことを開始する準備をする。次に、ステートSTが「2」になったかどうかをチェックし(ステップS6)、NOであれば、ステートSTが「2」になるまで待機する。
【0055】
図9は、再生サンプリング周波数fsの1周期毎に規則的に行なわれる割込み処理の一例を示す。1サンプル当たりの波形データの読み出し及び形成処理は、この1回の割込み処理において行なわれる。従って、図8の処理がステップS6で待機している間、図9の割込み処理が繰り返し実行されて、波形データの読み出し及び形成処理が行なわれる。この割込み処理では、まず、ステートSTが「0」かどうかをチェックし(ステップS20)、「0」であれば割込みを直ちに終了する。「0」でなければ次のステップS21に行き、バーチャルタイムvtを計算する。この計算は、タイムベクトルTVによって指定される時間伸縮制御データCRateの現在値を累算することによって行なう。次に、求めたバーチャルタイムvtに応じて、該タイムベクトルTVに対応するテンプレートに基づく時間伸縮制御データTV(vt)(つまりCRateの新たな現在値に相当するものであり、以下、これを単に「タイムベクトル値TV(vt)」という)及びピッチベクトルに対応するテンプレートに基づくピッチ変動エンベロープ関数の現在値PV(vt)(以下、これを単に「ピッチベクトル値PV(vt)」という)を発生する(ステップS22)。つまり、今回求めたバーチャルタイムvtの値を時間変数として、図7(b),(d)に示すような時間伸縮制御データCRateの瞬時値とピッチ変動エンベロープの瞬時値を読み出す(若しくは演算等によって生成する)。
【0056】
次に、ステートSTが「3」になっているか否かをチェックする(ステップS23)。ループ波形の読み出しステートでないならば、NOであり、ステップS24に行き、Fナンバ生成処理を行なう。このFナンバ生成処理では、前記式(4)に従って、ノンループ波形を読み出すためのFナンバF(N)を生成する。つまり、再生しようとする楽音のピッチに対応する標準FナンバFst(N)と、波長データWLと、ピッチベクトル値PV(vt)とに基づき、波形読出アドレス演算に使用する、ピッチ制御済みのFナンバF(N)を求める。
【0057】
次に、ステップS25では、FナンバF(N)をサンプリング周期毎に累算することにより、基本的には、前記式(6)又は式(7)に示すような、ノンループ波形を読み出すための読出アドレスADiを発生する。ただし、この読出アドレスADiの発生はステートSTを考慮して行なうものとし、ステートSTが「1」又は「4」のときはノンループ波形NLW(アタック部又はリリース部波形のノンループ波形)を読み出すための読出アドレスADiを発生するが、ステートSTが「2」(波形切り替えの過渡的状態に対応している)のときはループ波形LW(アタック部又はリリース部波形におけるノンループ波形)を読み出すための読出アドレスADiを発生する。なお、ノンループ波形部分での時間軸伸縮制御を行なう場合は、このステップS25において、タイムベクトル値TV(vt)つまり時間軸伸縮比CRateに応じて、読出アドレスADiの発生を更に適宜制御する。
次に、ステップS26では、読出アドレスADiに基づいて波形メモリWMの波形データ領域から波形データを読み出す。その際に、前述のように、FナンバF(N)の累算値の小数部(つまり読出アドレスADiの小数部)に応じて波形サンプル間の補間演算を行なうようにするとよい。
【0058】
次のステップS27では、ステートSTが「1」でかつアタック部波形のノンループ波形部分のエンドアドレスANendに達したかをチェックする。このアタック部波形のノンループ波形NLWの部分のエンドアドレスANendは、アタック部波形のループスタートアドレスLS(図2(a)参照)の1つ前のアドレス「LS−1」であり、管理データにおけるループスタートアドレスLSに基づき取得できる。読出アドレスADiがアタック部波形のノンループ波形のエンドアドレスANendにまだ達していなければ(つまりノンループ波形の読み出し中)、ステップS27はNOであり、ステップS28に行く。
ステップS28では、ステートSTが「4」でかつリリース部波形のエンドアドレスEA(図2(c)参照)に達したかをチェックする。読出アドレスADiがリリース部波形のエンドアドレスEAにまだ達していなければ、ステップS28はNOであり、ステップS29に行く。
【0059】
ステップS29では、バーチャルタイムvtに応じて振幅ベクトル値AV(vt)を発生する。つまり、今回求めたバーチャルタイムvtの値を時間変数として、図7(c)に示すような振幅ベクトルAVに基づく振幅エンベロープの瞬時値を読み出す(若しくは演算等によって生成する)。そして、上記ステップS26で生成された波形サンプルデータの振幅を該振幅ベクトル値AV(vt)によって制御し(ステップS30)、振幅制御された波形サンプルデータを、バス111を介して波形インターフェース107のディジタル/アナログ変換器(DAC)に対して出力する(ステップS31)。なお、複数チャンネル分の波形データを同時並行的に形成する場合は、上述したステップS20〜S30の処理をそれぞれ各チャンネルに対応して複数回実行し、ステップS30の次にチャンネル合成ステップを設け、各チャンネルの波形サンプルデータを合計してステップS31で出力する。
【0060】
このように、再生サンプリング周波数fsの1周期毎に、図9の割込み処理が実行され、1サンプル分の波形データが生成される。これにより、最初の単位波形であるアタック部波形のノンループ波形NLWとそれに続くループ波形LWが順次読み出される。ループ波形LWの1回の読み出しが終了して、読出アドレスADiがアタック部波形のノンループ波形部分のエンドアドレスANendに到達すると、ステップS27がYESとなり、ステップS32に行き、ステートSTを「2」にセットする。その後、ステップS29〜S31に行く。
【0061】
図8に戻ると、ステップS6でステートSTが「2」となったことを検出すると、ステップS7に行き、次の波形を読み出す準備をする。すなわち、波形シーケンスにおける次のステップの内容を読み出して(図4(e))、次に読み出すべき波形データの情報を取得し、それに応じて必要な準備処理を行なう。図4(e)の例の場合、Atk5を読み出したシーケンスステップの次として、クロスフェード区間長データXF5とそれに続くループ波形Lp10を選択する波形選択データを、波形シーケンスデータメモリ部から読み出す。
次のステップS8では、次の単位波形のタイプが何であるかを判定する。ループ波形であれば、ステップS9に行き、ステートSTを「3」にセットすると共に、序数iを1増加する。そして、ステップS6に行き、ステートSTが「2」になるまで待機する。なお、ステップS8では、リリース部波形のように先頭にループ波形LWを持つものについても、その先頭のループ波形LWの読出がまだ行なわれていない場合は、ループ波形と判定して、ステップS9に行く。また、過渡的ステートであるステートST=「2」をループ波形のループエンドまで続けてから、ステートSTを「3」に切り替えるために、ステップS9では、読出アドレスがループエンド(LS+LL)に達したことを確認してから、ステートSTを「3」に切り替えると共に序数iを1増加するようにするとよい。
【0062】
一方、図9では、ステートSTが「3」にセットされると、ステップS23がYESに分岐し、ループ読出制御を行なうルーチンに行く。ステップS33は前記ステップS24と同様の「Fナンバ生成処理」であるが、クロスフェード合成のために、先行するループ波形のFナンバFi-1(N)と、後続するループ波形のFナンバFi(N)とを、前記式(4)に従って、それぞれ別々に生成する。各ループ波形の波長データWL(1波当たりのアドレス数)は任意であるため、夫々の波長データWLi-1,WLiを用いて前記式(4)の演算を行ない、各ループ波形毎のFナンバFi-1(N),Fi(N)を求めてやる必要がある。なお、今の例の場合、先行するループ波形は、アタック部波形の終端に付加されたループ波形であり、後続するループ波形は、新たに選択された上記ループ波形Lp10である。
次のステップS34は、前記ステップS25と同様に読出アドレスADを生成する処理であるが、ループ読み出し及びクロスフェード合成のために、先行するループ波形の読出アドレスADi-1 は前記式(8)に従って算出し、後続するループ波形の読出アドレスADiは前記式(9)に従って算出する。次のステップS35では、各読出アドレスADi-1,ADiに従って、対応する各ループ波形の波形データをそれぞれ読み出すと共にサンプル間補間演算をそれぞれ行なう。
【0063】
次のステップS36では、クロスフェード区間長データXF5によって定まる傾き特性を持つクロスフェード関数XFの時間変数として、現在のバーチャルタイムvtを適用し、クロスフェード係数の現在値XF(vt)を発生する。例えば、クロスフェード関数XFが直線状の1次関数である場合は、バーチャルタイムvtの値にデータXF5の値を掛けることで、クロスフェード係数の現在値XF(vt)を得ることができる。すなわち、時間伸縮比が1の場合は、バーチャルタイムvtは実時間に対応しており、1サンプリング周期毎に1増加する時間関数であるから、これに、データXF5を掛けることにより、該データXF5の値に応じた傾きを持つ1次関数を作成することができ、これをクロスフェード関数XF(vt)とすることができる。これを式で示すと、
XF(vt)=XF5×vt+C
と表せる。ただし、Cは任意の定数である。タイムベクトルTVの変化によってバーチャルタイムvtの増減率(つまり傾き)が変化すると、これにデータXF5を掛けることにより得られるクロスフェード関数XF(vt)の傾きも変化する。このことは、逆に言えば、クロスフェード区間長データXF5によって定まる傾き特性を持つクロスフェードカーブの傾きを、タイムベクトルTVの現在値に応じて可変制御していることと同じである。こうして、タイムベクトルTVに応じて時間軸伸縮制御がなされたクロスフェード関数XF(vt)を発生することができる。一般化して示すと、クロスフェード関数XFが変数xについての算術関数f(x)若しくはテンプレートtbl(x)で表されているとすると、変数x=vtとして、FX=f(vt)又はtbl(vt)で表すことができる。なお、具体的には、クロスフェード関数XF(vt)が0から1まで変化する小数値からなるものであるとすると、フェードイン用のクロスフェード係数としてXF(vt)を使用し、フェードアウト用のクロスフェード係数は「1−XF(vt)」を使用する。
【0064】
次のステップS37では、所定のクロスフェード終了点XFendに達したかをチェックする。クロスフェード終了点XFendとは、クロスフェード区間の終了時点を示すものである。すなわち、クロスフェード関数XF(vt)の値つまりフェードイン側(後続波形側)のクロスフェード係数値が最大値「1」に達したら、そのまま「1」を保持するようになっており、このクロスフェード係数値が最大値「1」になった後、フェードイン側(後続波形側)の読出アドレスADiが当該ループ波形の最終点のアドレス(つまりLS+LL)に達したときを、クロスフェード終了点XFendと判定する。クロスフェード終了点XFendにまだ達していなければ、ステップS37はNOであり、ステップS38に行き、クロスフェード関数XF(vt)の値に応じて各ループ波形の読出波形データ(ループ再生波形)をクロスフェード合成する。その後、ステップS29〜S31に行く。
【0065】
再生サンプリング周波数fsの1周期毎に、図9の割込み処理が実行され、ステップS33〜S38のルーチンが繰り返し実行され、各ループ波形の繰り返し読み出しと、その読出出力波形データ(ループ再生波形)のクロスフェード合成とが行なわれる。やがてクロスフェード終了点XFendに達すると、ステップS37がYESとなり、ステップS39に行き、ステートSTを「2」にセットする。こうして、1つのクロスフェード区間についてのクロスフェード合成処理が完了する。
【0066】
図8に戻ると、ステップS6でステートSTが「2」となったことを検出すると、ステップS7に行き、次の波形を読み出す準備をする。図4(e)の例の場合、Lp10を読み出したシーケンスステップの次として、クロスフェード区間長データXF1とそれに続くループ波形Lp12を選択する波形選択データを、波形シーケンスデータメモリ部から読み出す。こうして、前述と同様の、ループ読み出し処理とクロスフェード合成処理とが、今度は異なるループ波形について行なわれることになる。すなわち、今回の例の場合、先行するループ波形は、前回後続ループ波形であったループ波形Lp10であり、後続するループ波形は、新たに選択された上記ループ波形Lp12である。
【0067】
こうして、所定の波形シーケンスに従って、順次に、ループ波形を切り替えながら、ループ読み出し処理とクロスフェード合成処理とが行なわれ、音の部分的な区間を構成する波形が、滑らかなつながりをもって、次々に形成される。
やがて、図8のステップS7の処理により、最後のループ波形Lp7の次の波形シーケンスステップとして、クロスフェード区間長データXF16とリリース部波形Relを選択する波形選択データが読み出されると(図4(e))、次に読み出すべき波形データの情報としてリリース部波形Relの始端にあるループ波形LWのデータを取得し、それに応じて必要な準備処理を行なう。そして、その次のステップS8では、次の波形のタイプがループ波形であると判定して、ステップS9に行き、ステートSTを「3」にセットする。そして、ステップS6に行き、ステートSTが「2」になるまで待機する。こうして、図9の割込み処理によって、最後のループ波形Lp7とリリース部波形Relの始端にあるループ波形LWとのループ読み出し処理とクロスフェード合成処理とが、データXF16に対応するクロスフェード区間長で、行なわれるようになる。この最後のクロスフェード区間が終了すると、図9のステップS39でステートSTが「2」にセットされる。
【0068】
それから、図8のステップS7では、次に読み出すべき波形データの情報としてリリース部波形Relのノンループ波形NLWのデータを取得し、それに応じて必要な準備処理を行なう。そして、その次のステップS8では、次の波形のタイプがリリース部波形Relのノンループ波形NLWであると判定して、ステップS10に行き、ステートSTを「4」にセットする。次に、ステップS11では、ステートSTが「0」になるまで待機する。一方、図9では、ステップS23のNOから、ノンループ波形読出用のルーチンに分岐し、ステップS25,S26の処理によって、リリース部波形Relのノンループ波形NLWを読み出すためのアドレスADiを生成し、その波形データを順次読み出し、かつ、サンプル間補間等を行なう。やがて、読出アドレスADiが、リリース部波形RelのエンドアドレスEAに達すると、ステップS28がYESとなり、ステップS40に行って、ステートSTを「0」にセットする。こうして、発音終了状態となる。図8のステップS11では、ステートSTが「0」になったことを確認すると、ステップS3に戻り、ステップS3,S4のループを繰り返す。波形シーケンスにおける次の音を発生すべきタイミングが到来すると、前述のようにステップS4がYESとなり、前述と同様の処理が開始される。他方、ストップイベントSTOPが、シーケンスデータに基づき又は手動操作等に応じて、発生されると、図8の処理を終了する。すなわち、1つの波形シーケンスにおいて複数の音を断続的に発生するように、波形シーケンスを組むことができる。つまり、1つの波形シーケンスによって、1つの音符に対応する楽音波形を記述することができるのみならず、複数の音符(フレーズ)に対応する楽音波形を記述することができる。
【0069】
なお、上記の例では、過渡的なステートST=「2」をループ波形のループエンドまで続けてからステートST=「3」に切り替えるように説明した。これによってクロスフェード区間の始まりが先行ループ波形のループスタートアドレスLSに一致するようになる。しかし、これに限らず、ステートST=「2」をループ波形のループエンドまで続けずに、図8のステップ9において、即座にステートST=「3」に切り替えるようにしてもよい。その場合は、クロスフェード区間が先行ループ波形の任意のアドレスから始まるが、そのクロスフェード開始アドレス分だけ後続ループ波形の読出アドレスADiの開始値をオフセットする(初期位相差に対応するオフセット分よりさらにオフセットする)ようにすればよい。
なお、複数の波形シーケンスを組み合わせることにより、楽曲の自動演奏を行なうことができる。そのために、楽譜の音符列に対応するノートシーケンスを用いるようにするとよい。ノートシーケンスは、MIDIの自動演奏シーケンスデータと同様のものであってよく、例えば、イベントデータで、ノートつまり再生すべき楽音のピッチと発音タイミングを指定するとともに該ノートの発生のために使用すべき波形シーケンスや各ベクトルを指定すればよい。または、自動演奏シーケンスに応じて、ノートを指定するイベントデータ、波形シーケンスを指定するイベントデータ、各ベクトルを指定するイベントデータを、それぞれ別個に発生したり、あるいは、ノートを指定するイベントデータに応じて他のイベントデータを発生するようにしてもよい。
【0070】
各波形シーケンスの内容や、各波形シーケンスに対応するベクトルデータTV,AV,PVの内容等は、ユーザーによって自由に編集することが可能である。図10(a)はベクトルエディット処理のフローチャート例を示す。まず、ユーザーの操作によって、所望の波形シーケンスを選択して当該波形シーケンスに対応する各種楽音要素のどの楽音要素のベクトルを変更しようとするのかを指定する(ステップS41)。次に、ユーザーの操作に応じて、指定した楽音要素のベクトルデータを変更することにより別のテンプレートに差し替えたり、該ベクトルデータの変更はせずに、それに対応するテンプレートの内容つまり当該ベクトルデータによって指定される具体的な時変動制御データの内容を適宜変更する、等の処理を行なう(ステップS42)。
図10(b)は波形シーケンスエディット処理のフローチャート例を示す。まず、ユーザーの操作によって、所望の波形シーケンスを選択して当該波形シーケンスにおけるどの位置の単位波形を編集したいかを指定する(ステップS43)。次に、ユーザーの操作に応じて、指定された位置に任意の単位波形を追加挿入したり、指定された位置にある単位波形を削除したり、指定された位置にある単位波形を別の単位波形に変更したり、指定された位置におけるクロスフェード区間長データXFの値を変更する、等の処理を行なう(ステップS44)。
【0071】
上記実施例では、図9に示す割込み処理によって波形サンプルデータを形成する処理が行なわれるようになっており、再生サンプリング周波数fsの1周期毎の割込み処理として当該サンプリング周期における1サンプル分の波形サンプルデータが形成される。しかし、これに限らず、本出願人が既に提案済みのソフトウェア音源技術で知られているように、1フレーム区間に該当する多数のサンプル数分の波形サンプルデータを短時間で一括して形成し、これを出力バッファに蓄えておき、出力バッファからの波形サンプルデータの読み出しを再生サンプリング周波数fsの1周期毎に行なうようにしてもよい。また、ソフトウェアプログラムに基づく波形形成処理に限らず、上記実施例と同様の波形形成処理用のマイクロプログラムで動作するように構成されたDSP装置によって本発明に従う波形形成処理を行なうようにしてもよいし、あるいは、LSI回路やディスクリート回路によって上記実施例と同様の波形形成処理を行なうように専用ハードウェア回路を構成してもよい。
【0072】
【発明の効果】
以上の通り、この発明によれば、楽音の時間軸を伸縮制御するための時間軸伸縮制御情報に基づき、実時間を伸縮制御した時間を示すバーチャル時間データを生成し、該生成したバーチャル時間データを引き数として、時間の関数である楽音特性制御情報を該バーチャル時間に従って発生させるようにしたので、所望の楽音特性制御情報を時間軸伸張又は圧縮制御することを容易に行うことができるようになる。
【図面の簡単な説明】
【図1】 この発明に係る波形形成装置の一実施例のハードウェア構成を略示するブロック図。
【図2】 波形メモリに記憶する単位波形のいくつかの例を概念的に示す図。
【図3】 任意の初期位相を持つループ波形のいくつかの具体例を示す波形図。
【図4】 波形メモリの記憶フォーマットの一例及び波形シーケンスデータの一例を示す概念図。
【図5】 ループ波形同士の接続例を単純接続とクロスフェード合成について示す概念図。
【図6】 クロスフェード合成する2つのループ波形をそれぞれ読み出すための読出アドレスを、両者の初期位相の差に応じてずらしてループ制御する例を示す図。
【図7】 波形シーケンスの一例とそれに対応する楽音要素制御用のベクトルデータ例とを示す概念図。
【図8】 波形シーケンス処理の一例を示すフローチャート。
【図9】 割込み処理として実行される波形サンプルデータ形成処理の一例を示すフローチャート。
【図10】 (a)はベクトルエディット処理の一例を示し、(b)は波形シーケンスエディット処理の一例を示すフローチャート。
【符号の説明】
100 CPU
101 ROM
102 RAM
103 ハードディスク装置
104 リムーバブルディスク装置
105 表示器
106 入力操作装置
107 波形インタフェース
108 タイマ
109 通信インタフェース
110 MIDIインタフェース
111 バス
WM 波形メモリ

Claims (9)

  1. 楽音の時間軸を伸縮制御するための時間軸伸縮制御情報を発生する手段と、
    前記時間軸伸縮制御情報を累算することによりバーチャル時間データを生成する手段であって、前記バーチャル時間とは前記時間軸伸縮制御情報に応じて実時間を伸縮制御した時間を示すものであるものと、
    時間の関数である楽音特性制御情報を発生する手段であって、前記バーチャル時間データを引き数として該楽音特性制御情報を前記バーチャル時間に従って発生させるものと
    を具える楽音制御装置。
  2. 前記楽音特性制御情報は、所定の楽音特性を制御するために使用されるものである請求項1に記載の楽音制御装置。
  3. 前記所定の楽音特性とは、波形、ピッチ及び振幅の少なくとも1つの楽音要素に対応する特性である請求項2に記載の楽音制御装置。
  4. 波形、ピッチ及び振幅のような所定の複数の楽音要素のそれぞれに対応して前記楽音特性制御情報を夫々発生する請求項1に記載の楽音制御装置。
  5. 前記時間軸伸縮制御情報は時間の関数からなるものであり、前記時間軸伸縮制御情報を発生する手段では、前記バーチャル時間データを引き数として該時間軸伸縮制御情報を前記バーチャル時間に従って発生させる請求項1乃至4のいずれかに記載の楽音制御装置。
  6. プログラムに従って動作する中央処理部に、
    楽音の時間軸を伸縮制御するための時間軸伸縮制御情報を発生するステップと、
    前記時間軸伸縮制御情報を累算することによりバーチャル時間データを生成するステップであって、前記バーチャル時間とは前記時間軸伸縮制御情報に応じて実時間を伸縮制御した時間を示すものであるものと、
    時間の関数である楽音特性制御情報を発生するステップであって、前記バーチャル時間データを引き数として該楽音特性制御情報を前記バーチャル時間に従って発生させるものと
    を実行させることからなる楽音制御方法。
  7. 前記楽音特性制御情報は、所定の楽音特性を制御するために使用されるものである請求項6に記載の楽音制御方法。
  8. 前記時間軸伸縮制御情報は時間の関数からなるものであり、前記時間軸伸縮制御情報を発生するステップでは、前記バーチャル時間データを引き数として該時間軸伸縮制御情報を前記バーチャル時間に従って発生させる請求項6又は7に記載の楽音制御方法。
  9. 請求項6乃至8のいずれかに記載の楽音制御方法における各ステップをコンピュータに実行させるための命令群で構成されるコンピュータプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
JP2002079135A 2002-03-20 2002-03-20 波形形成装置及び方法 Expired - Lifetime JP3726765B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002079135A JP3726765B2 (ja) 2002-03-20 2002-03-20 波形形成装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002079135A JP3726765B2 (ja) 2002-03-20 2002-03-20 波形形成装置及び方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP21827798A Division JP3644263B2 (ja) 1998-07-31 1998-07-31 波形形成装置及び方法

Publications (2)

Publication Number Publication Date
JP2002287763A JP2002287763A (ja) 2002-10-04
JP3726765B2 true JP3726765B2 (ja) 2005-12-14

Family

ID=19193323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002079135A Expired - Lifetime JP3726765B2 (ja) 2002-03-20 2002-03-20 波形形成装置及び方法

Country Status (1)

Country Link
JP (1) JP3726765B2 (ja)

Also Published As

Publication number Publication date
JP2002287763A (ja) 2002-10-04

Similar Documents

Publication Publication Date Title
JP3644263B2 (ja) 波形形成装置及び方法
JP3744216B2 (ja) 波形形成装置及び方法
JP2007011217A (ja) 楽音合成装置及びプログラム
JP4702160B2 (ja) 楽音合成装置及びプログラム
JP3601371B2 (ja) 波形生成方法及び装置
JP3654083B2 (ja) 波形生成方法及び装置
JP3654079B2 (ja) 波形生成方法及び装置
JP3675184B2 (ja) 波形形成装置及び方法
JP3008922B2 (ja) 楽音発生装置および楽音発生方法
JP2007316269A (ja) 楽音合成装置及びプログラム
JP3654080B2 (ja) 波形生成方法及び装置
JP3654082B2 (ja) 波形生成方法及び装置
JP3654084B2 (ja) 波形生成方法及び装置
JP2004078095A (ja) 奏法決定装置及びプログラム
JP3726765B2 (ja) 波形形成装置及び方法
JP3904012B2 (ja) 波形生成装置及び方法
JP3520781B2 (ja) 波形生成装置及び方法
JP3724222B2 (ja) 楽音データ作成方法及び楽音合成装置並びに記録媒体
JP4816441B2 (ja) 楽音合成装置及びプログラム
JP3613191B2 (ja) 波形生成方法及び装置
JP3095018B2 (ja) 楽音発生装置
JP4826276B2 (ja) 楽音合成装置及びプログラム
JP4821558B2 (ja) 楽音合成装置及びプログラム
JP3933162B2 (ja) 波形生成方法及び装置
JP3873985B2 (ja) 楽音データの編集方法及び装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20050412

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050613

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050919

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101007

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101007

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111007

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111007

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121007

Year of fee payment: 7