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

波形形成装置及び方法

Info

Publication number
JP2002287763A
JP2002287763A JP2002079135A JP2002079135A JP2002287763A JP 2002287763 A JP2002287763 A JP 2002287763A JP 2002079135 A JP2002079135 A JP 2002079135A JP 2002079135 A JP2002079135 A JP 2002079135A JP 2002287763 A JP2002287763 A JP 2002287763A
Authority
JP
Japan
Prior art keywords
waveform
time
loop
data
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.)
Granted
Application number
JP2002079135A
Other languages
English (en)
Other versions
JP3726765B2 (ja
Inventor
Hideo Suzuki
秀雄 鈴木
Masao Sakama
真雄 坂間
Yasuyuki Umeyama
康之 梅山
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

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【課題】 波形信号やエンベロープ信号等楽音の時間軸
の伸張又は圧縮制御技術の改良。 【解決手段】 楽音制御パラメータの1つとして時間制
御情報(タイムベクトルTV)が与えられ、これに応じ
て楽音の時間軸を伸縮制御するための時間軸伸縮制御情
報(CRate)が発生される。この時間軸伸縮制御情
報に基づきバーチャル時間データ(vt)を演算生成す
る(S21)。このバーチャル時間とは時間軸伸縮制御
情報に応じて実時間を伸縮制御した仮想的な時間を示す
ものである。このバーチャル時間データ(vt)を引き
数として、時間の関数である各種楽音特性制御情報(P
V(vt),AV(vt),TV(vt),ADi,A
Di−1)を発生する(S22,S24,S25,S2
9,S33〜S38)。これらの楽音特性制御情報に基
づき、制御された楽音が生成される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、メモリに記憶し
た波形データを読み出すことに基づき、楽音あるいは音
声若しくはその他任意の音の波形を形成する技術分野に
関し、特に、楽音の時間軸を伸縮制御する楽音制御装置
及び方法に関する。この発明は、電子楽器は勿論のこ
と、自動演奏装置、コンピュータ、電子ゲーム装置その
他マルチメディア機器等、楽音あるいは音声若しくはそ
の他任意の音を発生する機能を有する汎ゆる分野の機器
若しくは装置または方法において広範囲に応用できるも
のである。なお、この明細書において、楽音波形という
場合、音楽的な音の波形に限るものではなく、音声ある
いはその他任意の音の波形を含んでいてもよい意味合い
で用いるものとする。
【0002】
【従来の技術】波形メモリにおいて、PCM(パルス符
号変調)あるいはDPCM(差分PCM)又はADPC
M(適応差分PCM)等の任意の符号化方式で符号化し
た波形データ(つまり波形サンプルデータ)を記憶して
おき、これを所望の楽音ピッチに対応して読み出すこと
により、楽音波形を形成するようにした、いわゆる「波
形メモリ読み出し」技術は、既に公知であり、また、様
々なタイプの「波形メモリ読み出し」技術が知られてい
る。従来知られた「波形メモリ読み出し」技術のほとん
どは、発音開始から終了までの1つの音の波形を発生す
るためのものである。一例として、発音開始から終了ま
での1音の全波形の波形データを記憶する方式がある。
また、別の例として、変化の複雑なアタック部について
はその全波形の波形データを記憶し、変化のあまりない
サステイン部については所定のループ波形を記憶する方
式がある(例えば特開昭59−188697号)。後者
の方式では、ループ波形を記憶する構成であることによ
り波形データ記憶量を簡素化することができると共に、
ループ波形を繰り返し読み出すことにより、音の持続時
間を任意に調節することができる。なお、本明細書にお
いて、「ループ波形」とは、繰り返し読み出し(ループ
読み出し)される波形という意味で用いるものとし、
「ループ再生波形」とは、「ループ波形」を繰り返し読
み出し(ループ読み出し)することで得られた(再生さ
れた)波形という意味で用いるものとする。
【0003】また、1つの音の発生のために、複数のル
ープ波形を使用し、各ループ波形を特定のシーケンスに
従って順次切り替えて読み出し、相前後するループ波形
のループ読出出力データ(つまり「ループ再生波形」)
をクロスフェード合成することで、各ループ再生波形が
滑らかに接続されるようにした技術も知られている(例
えば特開昭62−14696号)。この場合、クロスフ
ェード合成は、所定のクロスフェード区間において行な
われるようになっており、上述した単純な1つのループ
波形の繰り返し読み出し技術とは異なり、個々のクロス
フェード区間の時間長を任意に可変調節することについ
ては示されていない。また、クロスフェード合成の対象
となる波形は位相が合っている(あるいは少なくとも大
きくずれていない)ことが必要であり、予め位相合わせ
したループ波形の波形データを記憶しておく必要があっ
た。
【0004】一方、従来の電子楽器の波形メモリ音源で
は、読み出された波形データの時間長は、読み出し速度
に応じて一意的に決定され、自由に伸縮することはでき
ないという不都合があったことに鑑み、特開平10−3
07586号公報においては、波形メモリ読み出し方式
の音源において、その読み出し速度(ピッチ)を任意に
可変制御する一方で、その読み出し速度(ピッチ)とは
独立に、読み出す波形データを時間軸上で任意に伸張及
び圧縮制御することができるようにした技術が示されて
いる。この場合、実アドレスデータと仮想アドレスデー
タとの比較に基づきアドレスシフト量を決定し、シフト
制御された実アドレスデータで波形データを読み出すこ
とにより、時間軸の伸張又は圧縮制御を行うようにして
いる。
【0005】
【発明が解決しようとする課題】上述したような従来の
時間軸の伸張又は圧縮制御技術は、実アドレスデータと
仮想アドレスデータとの比較に基づきアドレスシフト量
を決定し、シフト制御された実アドレスデータで波形デ
ータを読み出すことにより、時間軸の伸張又は圧縮制御
を行うようにしていたので、仮想アドレス算出処理と比
較処理とシフト処理が要求され、面倒であった。この発
明は上述の点に鑑みてなされたもので、時間軸の伸張又
は圧縮制御技術の改良を図るものである。
【0006】
【課題を解決するための手段】この発明に係る楽音制御
装置は、楽音の時間軸を伸縮制御するための時間軸伸縮
制御情報を発生する手段と、前記時間軸伸縮制御情報に
基づきバーチャル時間データを生成する手段であって、
前記バーチャル時間とは前記時間軸伸縮制御情報に応じ
て実時間を伸縮制御した時間を示すものであるものと、
時間の関数である楽音特性制御情報を発生する手段であ
って、前記バーチャル時間データを引き数として該楽音
特性制御情報を前記バーチャル時間に従って発生させる
ものとを具える。
【0007】この発明に係る楽音制御方法は、楽音の時
間軸を伸縮制御するための時間軸伸縮制御情報を発生す
るステップと、前記時間軸伸縮制御情報に基づきバーチ
ャル時間データを生成するステップであって、前記バー
チャル時間とは前記時間軸伸縮制御情報に応じて実時間
を伸縮制御した時間を示すものであるものと、時間の関
数である楽音特性制御情報を発生するステップであっ
て、前記バーチャル時間データを引き数として該楽音特
性制御情報を前記バーチャル時間に従って発生させるも
のとを具える。
【0008】この発明によれば、楽音の時間軸を伸縮制
御するための時間軸伸縮制御情報に基づき、実時間を伸
縮制御した時間を示すバーチャル時間データを生成し、
該生成したバーチャル時間データを引き数として、時間
の関数である楽音特性制御情報を該バーチャル時間に従
って発生させるようにしたので、所望の楽音特性制御情
報を時間軸伸張又は圧縮制御することを容易に行うこと
ができるようになる。
【0009】以下説明する実施例との対応を示すと、例
えば図7に示されるように楽音制御パラメータの1つと
してタイムベクトルTV(時間制御情報)が与えられ、
これに応じて楽音の時間軸を伸縮制御するための時間伸
縮制御データCRate(時間軸伸縮制御情報)が発生
される。図9のステップS21では、この時間伸縮制御
データCRateに基づきバーチャルタイムvt(バー
チャル時間データ)を演算生成する。図9のステップS
22,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におけるキーボ
ードとして、所望の楽音ピッチを選択・指定するための
演奏キーボードを含んでいる。一方、この波形形成装置
が楽器以外の製品応用形態をとっている場合は、MID
Iインタフェース110にMIDIキーボードモジュー
ルを接続し、これにより所望の楽音ピッチを選択・指定
することができる。また、所望の楽音ピッチを選択・指
定は、自動演奏データの形態で与えるようにしてもよ
い。自動演奏データは、ROM101、RAM102、
ハードディスク装置103、リムーバブルディスク装置
104等のいずれかの記憶装置に記憶されているものを
読み出すことにより与えられるようになっていてもよい
し、MIDIインタフェース110を介して外部から与
えられるようにしてもよい。特に詳しく説明しないが、
電子楽器の分野では通常知られているように、入力操作
装置106においては、各種音色や楽音効果、音量等、
各種楽音要素の選択・設定等を行うためのスイッチや操
作子類が適宜設けられている。また、これらの各種楽音
要素の選択・設定は、上記と同様に自動演奏データの形
態で与えるようになっていてもよい。
【0016】波形データを記憶する波形メモリWMの機
能は、どのタイプのデータ記憶装置が受け持ってもよ
い。すなわち、ROM101、RAM102、ハードデ
ィスク装置103、リムーバブルディスク装置104の
いずれを波形メモリWMとして機能させてもよい。一般
的には、大容量の記憶装置であるハードディスク装置1
03における適宜の記憶領域あるいはリムーバブルディ
スク装置104に着脱可能なCD−ROMやMO等のリ
ムーバブルな記録媒体を、波形データベースとしてつま
り波形メモリWMとして、機能させればよい。あるい
は、外部のホスト又はサーバコンピュータに具備されて
いる波形データベースに対して、通信インタフェース1
09及び通信回線を介してアクセスし、必要な波形デー
タをハードディスク装置103あるいはRAM102等
にダウンロードするようにしてもよい。CPU100の
制御の下で、この発明に係る波形形成処理を実行するソ
フトウェアプログラムは、ROM101又はRAM10
2あるいはハードディスク装置103のいずれに記憶し
ておくようにしてもよい。また、このプログラムは、リ
ムーバブルディスク装置104に着脱可能なCD−RO
MやMO等のリムーバブルな記録媒体に記録されていて
もよく、また、外部のホスト又はサーバコンピュータか
ら通信回線及び通信インタフェース109を介して該プ
ログラムを受信し、ハードディスク装置103あるいは
RAM102等にダウンロードするようにしてもよい。
【0017】波形メモリWMにおいては、多数の単位波
形の波形データが記憶されている。単位波形とは、それ
を一つの単位として選択することが可能な波形の一単位
を指す。単位波形には、複数のタイプがあり、そのタイ
プは、音楽的若しくは感性的な意味と、データ読み出し
の仕方に基づく技術的意味の、両面から分類するように
してよい。技術的意味に基づく分類は、その波形データ
を繰り返し読み出しするか否かによる分類であり、便宜
上、波形データが繰り返し読み出しされるものを「ルー
プ波形」といい、波形データが繰り返し読み出しされな
いものを「ノンループ波形」という。一方、音楽的若し
くは感性的な意味に基づく分類は、その波形が、音のど
のような部分若しくは区間で使用されるのに相応しい
か、ということに基づく分類である。例えば、音の立ち
上がり部分(アタック部)で使用されるのに相応しい単
位波形を「アタック部波形」、音の立ち下げ部分(リリ
ース部)で使用されるのに相応しい単位波形を「リリー
ス部波形」、音の持続部分(サステイン部)で使用され
るのに相応しい単位波形を「サステイン部波形」、スラ
ー等の特定の奏法に従う音と音のつながり部分で使用さ
れるのに相応しい単位波形を「つなぎ奏法波形」、ある
いは、ビブラートやトレモロ等の特定の奏法に従って音
の持続部で使用されるのに相応しい単位波形を「中間奏
法波形」、等のように、適宜に分類し、適切に名付ける
ことができる。
【0018】概して、微妙なアーティキュレーション
(奏法)が要求される部分で使用されるのに相応しい単
位波形としては、そのアーティキュレーション(奏法)
の特徴を色濃く表現することができる「ノンループ波
形」を含んで使用するのがよい。「ノンループ波形」
は、通常、そのアーティキュレーション(奏法)の特徴
を表現するのに必要十分な複数周期分の波形からなる。
一方、比較的単調な音の部分では、「ループ波形」を使
用するのが、波形データ記憶容量の節約の点で都合がよ
い。「ループ波形」は、通常、1周期または適当な複数
周期分の波形からなる。「ループ波形」は、それ単独
で、比較的単調な音部分の単位波形として、例えば「サ
ステイン部波形」の単位波形として、使用することがで
きる。その場合に、複数の「ループ波形」を適宜順次組
み合わせることにより、つまり、複数の単位波形を順次
組み合わせることにより、一連の音の持続部分の波形を
形成するようにしてもよく、それは音の品質を上げるこ
とができる点で有利である。また、単位波形同士の接続
をクロスフェード合成によって滑らかに行うために、そ
の接続箇所部分で、「ループ波形」を使用するのも有利
である。しかして、「ノンループ波形」を含む単位波形
にあっても、他の単位波形との接続箇所となる始端又は
終端において予め「ループ波形」を含むことが、好まし
い一実施の形態として考えられる。一方、勿論、「ノン
ループ波形」のみで構成される単位波形があってもよ
く、その場合は、他の単位波形との接続は、接続点にお
ける適切な位相合わせ処理によって、滑らかに行うこと
ができる。
【0019】図2は、波形メモリWMに記憶されるいく
つかの単位波形の典型例を示す概略図である。図示の簡
略化のために、実際の波形図形は一部のみ図示し、波形
の所在の概要のみ四角枠で囲って図示している。なお、
この図示例では、波形データの振幅ピークレベルを一定
値に規格化して記憶しておき、読出・再生時に、所要の
振幅エンベロープを付与するようにしている。勿論、こ
れに限らず、記憶する波形データの振幅ピークレベルを
規格化せずに、任意の振幅エンベロープが付与された状
態のまま記憶しておくようにしてもよい。図で横軸はメ
モリのアドレスである。なお、波形メモリWMに記憶す
る各単位波形の波形データは、典型的には、PCM化さ
れた波形サンプルデータであるものとする。しかし、波
形データのコード化フォームは、PCMに限らず、DP
CMあるいはADPCM等であってもよい。
【0020】図2(a)はアタック部波形の一例であ
り、このアタック部波形は先行するノンループ波形NL
Wと後続するループ波形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は、該ループ波形L
Wの長さをアドレス数によって示すデータであり、「L
S+LL」によってループエンドアドレス(ループ読み
出しの終わりのアドレス)を特定することができる。よ
って、当該ループ波形LWの繰り返し読み出しつまりル
ープ読み出しは、ループスタートアドレスLSからルー
プエンドアドレス「LS+LL」までの波形データを繰
り返し読み出すことにより行われる。
【0022】ループ波数データWNは、当該ループ波形
LWを構成している波形の波数つまり周期数を示すデー
タである。前述のとおり、ループ波形LWは、1波つま
り1周期に限らず、複数波つまり複数周期からなってい
てもよい。この実施例においては、各ループ波形LWの
波数(WN)及びアドレス数(LL)は任意であってよ
いものとしているので、波数(WN)及びアドレス数
(LL)が適宜に異なるループ波形同士をクロスフェー
ド合成するときに、後述するように、これらのデータW
N,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)の例はS
P=0、(c)の例はSP=ΔP2−ΔP1、と表現さ
れる。図において、ゼロ位相アドレスZPは、当該ルー
プ波形における0位相(所定の基準位相)の波形サンプ
ルデータが所在するアドレスを示す。図から明らかなよ
うに、このようなゼロ位相アドレスZPによってループ
波形の初期位相を表現できる。このゼロ位相アドレスZ
Pは、ループスタートアドレスLSに対する相対値で表
されていてよい。位相管理情報は、その他適宜の表現が
可能である。
【0025】図4(a)は、波形メモリWMにおける記
憶フォーマットを略示する図であり、波形メモリWMは
管理データ領域と波形データ領域とからなる。波形デー
タ領域は、上述したような様々なタイプの多数の単位波
形の波形データ(具体的な波形サンプルデータ)をそれ
ぞれ個別に記憶する領域である。管理データ領域は、波
形データ領域に記憶している個々の波形データについて
必要な各種の管理情報を記憶している領域である。
【0026】図4(b)〜(d)は、管理データ領域に
記憶される各波形データ毎の管理データの具体的な記憶
フォーマットを、いくつかのタイプの単位波形につい
て、例示するものである。(b)はノンループ波形NL
Wとループ波形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】同様の目的のために、ノンループ波形NL
Wにおいても、当該波形における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ナンバを再生サンプリング周波数f
sに従う周期で「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に応じた
アドレスオフセット処理を行なっていない。 ADi-1 =LSi-1 + MOD.LLi-1{ΣFi-1(N)} …(8) ADi=LSi + MOD.LLi{ΣFi(N) −(SPi−SPi-1)×WLi/2π} …(9)
【0039】上記式(9)において、「−(SPi−S
Pi-1)×WLi/2π」の項は、初期位相SPiとS
Pi-1とSPiの位相差を、後続するループ波形の波長
データWLiを1周期(=2π)とするアドレス数に換
算したものである。これにより、一方の読出アドレスA
Diが、他方の読出アドレスADi-1 に対して、両者の
初期位相SPの位相差「SPi−SPi-1」に対応する
アドレス数分だけオフセットされ、両者の実際の波形デ
ータの読出位相が合うことになる。つまり、読出アドレ
スADi-1 によりその初期位相SPi-1 のアドレス0か
ら波形データを読み出すとき、読出アドレスADiのア
ドレスはその初期位相SPiから「SPi−SPi-1」
の位相差だけオフセットされたアドレス、つまり、SP
i−(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) と表すことができ、これが両ループ波形の初期位相SP
i-1,SPiの位相差ΔSPに対応している。つまり、 ΔSP=SPi−SPi-1 =2π(ΔT/T) なる関係が成り立つ。図示のように、この初期位相差Δ
SPに対応するアドレスのずれを保持しつつ、各アドレ
ス信号ADi-1,ADiがループする。
【0041】ところで、クロスフェード区間が切り替わ
るときは、それまでの後続ループ波形が先行ループ波形
に切り換わり、その次のループ波形が後続ループ波形と
なる。後続ループ波形から先行ループ波形に切り替わっ
た読出アドレスADiの進展を滑らかにするには、クロ
スフェード区間の最後で、後続ループ波形の読出アドレ
スADiがそのループ波形の終了点アドレス(つまりL
S+LL)に達したときに波形を切り替えるようにする
とよい。そうすれば、上記式(9)に従ってアドレスオ
フセットしつつループしていた後続ループ波形の読出ア
ドレスADiが次にとるべきアドレスはループスタート
アドレスLSであることになり、クロスフェード区間の
切り替えによって、次のサンプリング周期において、こ
れが先行ループ波形切り替わって、その読出アドレスA
Di-1 が上記式(8)に従って算出されることとなった
としても、所定のループスタートアドレスLSを読出ア
ドレスとして指定することとなり、問題のない制御が行
なえる。
【0042】クロスフェード合成する2つの読出アドレ
スADi-1,ADiの計算式は、上記式(8)、(9)
に限らず、適宜変更可能である。例えば、下記式のよう
に、夫々の初期位相SPi-1,SPiに相当するアドレ
ス数分だけオフセットするようにしてもよい。 ADi-1 =LSi-1 + MOD.LLi-1{ΣFi-1(N) −SPi-1×WLi-1/2π} …(10) ADi=LSi + MOD.LLi{ΣFi(N)−SPi×WLi /2π}…(11) この場合も、両読出アドレスADi-1,ADiのループ
タイミングの時間差は、両者の初期位相SPの位相差
「SPi−SPi-1」=ΔSPに対応するものとなり、
両者の実際の波形データの読出位相が合うことになる。
【0043】なお、上述したような、初期位相SPの位
相差「SPi−SPi-1」を考慮して各読出アドレスA
Di-1,ADiのループタイミングに時間差を設定して
それぞれループ読出制御することにより、初期位相の異
なる2つのループ波形の各ループ再生波形の絶対位相を
実質的に合わせるようにした処理は、クロスフェード合
成の場合に限らず、適宜のミキシング比で2系列または
それ以上の系列のループ波形をミキシング合成(若しく
は補間合成)するような場合にも適用することができ
る。また、必ずしも、初期位相情報SPを管理データ領
域に予め記憶させておかなくてもよい。すなわち、任意
の初期位相からなる2つのループ波形を合成しようとす
る段階になってから、両ループ波形を分析して両者の初
期位相の差を求め、この位相差に応じて両ループ波形の
読出アドレスのループタイミングをずらすことで、初期
位相の異なる2つのループ波形の各ループ再生波形の絶
対位相を実質的に合わせるようにすることができる。位
相差の分析は、例えば、2つのループ波形の相互相関関
数が最も大きくなる位相差を求めることで可能である。
【0044】次に、一連の音の波形を形成する処理につ
いて説明する。基本的には、一連の音の波形は、複数の
単位波形を所望の順序で選択して、その波形データを波
形メモリWMから読み出し、これらを相互に接続するこ
とにより、形成される。一例として、予め設定された波
形シーケンスデータによって、単位波形の選択順序と読
み出し手順等が指定される。図4(e)は、そのような
波形シーケンスデータの一例を示すものである。この波
形シーケンスデータは、ROM101,RAM102,
ハードディスク装置103,リムーバブルディスク装置
104等の適宜のデータ記憶装置において予め記憶され
ているものであってよく、また、そのデータ内容の書き
替え等の編集操作を適宜行なうことができるものであ
る。図4(e)に示した波形シーケンスデータは、図7
(a)に示すような態様で、複数の単位波形を組み合わ
せるようにした例に対応するものである。図4(e)に
おいて、まず、時間データt0と共に特定の単位波形A
tk5を指定する波形選択データが記憶されている。時
間データt0は、波形形成スタートタイミングを示すデ
ータである。波形選択データによる指定値「Atk5」
をインデックスとして、波形メモリWMから「Atk
5」の識別データIDを持つ単位波形の管理データを読
み出し、これに基づき該単位波形Atk5の波形データ
を所定の手順で読み出す。例えば、この単位波形Atk
5のタイプは、図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)。次に、ステートS
Tを「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の波形データを波形メモリW
Mの波形データ領域から読み出すことを開始する準備を
する。次に、ステートSTが「2」になったかどうかを
チェックし(ステップS6)、NOであれば、ステート
STが「2」になるまで待機する。
【0055】図9は、再生サンプリング周波数fsの1
周期毎に規則的に行なわれる割込み処理の一例を示す。
1サンプル当たりの波形データの読み出し及び形成処理
は、この1回の割込み処理において行なわれる。従っ
て、図8の処理がステップS6で待機している間、図9
の割込み処理が繰り返し実行されて、波形データの読み
出し及び形成処理が行なわれる。この割込み処理では、
まず、ステートSTが「0」かどうかをチェックし(ス
テップS20)、「0」であれば割込みを直ちに終了す
る。「0」でなければ次のステップS21に行き、バー
チャルタイムvtを計算する。この計算は、タイムベク
トルTVによって指定される時間伸縮制御データCRa
teの現在値を累算することによって行なう。次に、求
めたバーチャルタイムvtに応じて、該タイムベクトル
TVに対応するテンプレートに基づく時間伸縮制御デー
タTV(vt)(つまりCRateの新たな現在値に相
当するものであり、以下、これを単に「タイムベクトル
値TV(vt)」という)及びピッチベクトルに対応す
るテンプレートに基づくピッチ変動エンベロープ関数の
現在値PV(vt)(以下、これを単に「ピッチベクト
ル値PV(vt)」という)を発生する(ステップS2
2)。つまり、今回求めたバーチャルタイム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を発生するが、ステートS
Tが「2」(波形切り替えの過渡的状態に対応してい
る)のときはループ波形LW(アタック部又はリリース
部波形におけるノンループ波形)を読み出すための読出
アドレスADiを発生する。なお、ノンループ波形部分
での時間軸伸縮制御を行なう場合は、このステップS2
5において、タイムベクトル値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に基づき取得できる。読出アドレスA
Diがアタック部波形のノンループ波形のエンドアドレ
スANendにまだ達していなければ(つまりノンルー
プ波形の読み出し中)、ステップS27はNOであり、
ステップS28に行く。ステップS28では、ステート
STが「4」でかつリリース部波形のエンドアドレスE
A(図2(c)参照)に達したかをチェックする。読出
アドレスADiがリリース部波形のエンドアドレスEA
にまだ達していなければ、ステップS28はNOであ
り、ステップS29に行く。
【0059】ステップS29では、バーチャルタイムv
tに応じて振幅ベクトル値AV(vt)を発生する。つ
まり、今回求めたバーチャルタイムvtの値を時間変数
として、図7(c)に示すような振幅ベクトルAVに基
づく振幅エンベロープの瞬時値を読み出す(若しくは演
算等によって生成する)。そして、上記ステップS26
で生成された波形サンプルデータの振幅を該振幅ベクト
ル値AV(vt)によって制御し(ステップS30)、
振幅制御された波形サンプルデータを、バス111を介
して波形インターフェース107のディジタル/アナロ
グ変換器(DAC)に対して出力する(ステップS3
1)。なお、複数チャンネル分の波形データを同時並行
的に形成する場合は、上述したステップS20〜S30
の処理をそれぞれ各チャンネルに対応して複数回実行
し、ステップS30の次にチャンネル合成ステップを設
け、各チャンネルの波形サンプルデータを合計してステ
ップS31で出力する。
【0060】このように、再生サンプリング周波数fs
の1周期毎に、図9の割込み処理が実行され、1サンプ
ル分の波形データが生成される。これにより、最初の単
位波形であるアタック部波形のノンループ波形NLWと
それに続くループ波形LWが順次読み出される。ループ
波形LWの1回の読み出しが終了して、読出アドレスA
Diがアタック部波形のノンループ波形部分のエンドア
ドレスANendに到達すると、ステップS27がYE
Sとなり、ステップS32に行き、ステートSTを
「2」にセットする。その後、ステップS29〜S31
に行く。
【0061】図8に戻ると、ステップS6でステートS
Tが「2」となったことを検出すると、ステップS7に
行き、次の波形を読み出す準備をする。すなわち、波形
シーケンスにおける次のステップの内容を読み出して
(図4(e))、次に読み出すべき波形データの情報を
取得し、それに応じて必要な準備処理を行なう。図4
(e)の例の場合、Atk5を読み出したシーケンスス
テップの次として、クロスフェード区間長データXF5
とそれに続くループ波形Lp10を選択する波形選択デ
ータを、波形シーケンスデータメモリ部から読み出す。
次のステップS8では、次の単位波形のタイプが何であ
るかを判定する。ループ波形であれば、ステップS9に
行き、ステートSTを「3」にセットすると共に、序数
iを1増加する。そして、ステップS6に行き、ステー
トSTが「2」になるまで待機する。なお、ステップS
8では、リリース部波形のように先頭にループ波形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を適用し、クロスフェード係数の現在値X
F(vt)を発生する。例えば、クロスフェード関数X
Fが直線状の1次関数である場合は、バーチャルタイム
vtの値にデータXF5の値を掛けることで、クロスフ
ェード係数の現在値XF(vt)を得ることができる。
すなわち、時間伸縮比が1の場合は、バーチャルタイム
vtは実時間に対応しており、1サンプリング周期毎に
1増加する時間関数であるから、これに、データXF5
を掛けることにより、該データXF5の値に応じた傾き
を持つ1次関数を作成することができ、これをクロスフ
ェード関数XF(vt)とすることができる。これを式
で示すと、 XF(vt)=XF5×vt+C と表せる。ただし、Cは任意の定数である。タイムベク
トルTVの変化によってバーチャルタイムvtの増減率
(つまり傾き)が変化すると、これにデータXF5を掛
けることにより得られるクロスフェード関数XF(v
t)の傾きも変化する。このことは、逆に言えば、クロ
スフェード区間長データXF5によって定まる傾き特性
を持つクロスフェードカーブの傾きを、タイムベクトル
TVの現在値に応じて可変制御していることと同じであ
る。こうして、タイムベクトルTVに応じて時間軸伸縮
制御がなされたクロスフェード関数XF(vt)を発生
することができる。一般化して示すと、クロスフェード
関数XFが変数xについての算術関数f(x)若しくは
テンプレートtbl(x)で表されているとすると、変
数x=vtとして、FX=f(vt)又はtbl(v
t)で表すことができる。なお、具体的には、クロスフ
ェード関数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であり、ステップS
38に行き、クロスフェード関数XF(vt)の値に応
じて各ループ波形の読出波形データ(ループ再生波形)
をクロスフェード合成する。その後、ステップS29〜
S31に行く。
【0065】再生サンプリング周波数fsの1周期毎
に、図9の割込み処理が実行され、ステップS33〜S
38のルーチンが繰り返し実行され、各ループ波形の繰
り返し読み出しと、その読出出力波形データ(ループ再
生波形)のクロスフェード合成とが行なわれる。やがて
クロスフェード終了点XFendに達すると、ステップ
S37がYESとなり、ステップS39に行き、ステー
トSTを「2」にセットする。こうして、1つのクロス
フェード区間についてのクロスフェード合成処理が完了
する。
【0066】図8に戻ると、ステップS6でステートS
Tが「2」となったことを検出すると、ステップS7に
行き、次の波形を読み出す準備をする。図4(e)の例
の場合、Lp10を読み出したシーケンスステップの次
として、クロスフェード区間長データXF1とそれに続
くループ波形Lp12を選択する波形選択データを、波
形シーケンスデータメモリ部から読み出す。こうして、
前述と同様の、ループ読み出し処理とクロスフェード合
成処理とが、今度は異なるループ波形について行なわれ
ることになる。すなわち、今回の例の場合、先行するル
ープ波形は、前回後続ループ波形であったループ波形L
p10であり、後続するループ波形は、新たに選択され
た上記ループ波形Lp12である。
【0067】こうして、所定の波形シーケンスに従っ
て、順次に、ループ波形を切り替えながら、ループ読み
出し処理とクロスフェード合成処理とが行なわれ、音の
部分的な区間を構成する波形が、滑らかなつながりをも
って、次々に形成される。やがて、図8のステップS7
の処理により、最後のループ波形Lp7の次の波形シー
ケンスステップとして、クロスフェード区間長データX
F16とリリース部波形Relを選択する波形選択デー
タが読み出されると(図4(e))、次に読み出すべき
波形データの情報としてリリース部波形Relの始端に
あるループ波形LWのデータを取得し、それに応じて必
要な準備処理を行なう。そして、その次のステップS8
では、次の波形のタイプがループ波形であると判定し
て、ステップS9に行き、ステートSTを「3」にセッ
トする。そして、ステップS6に行き、ステートSTが
「2」になるまで待機する。こうして、図9の割込み処
理によって、最後のループ波形Lp7とリリース部波形
Relの始端にあるループ波形LWとのループ読み出し
処理とクロスフェード合成処理とが、データXF16に
対応するクロスフェード区間長で、行なわれるようにな
る。この最後のクロスフェード区間が終了すると、図9
のステップS39でステートSTが「2」にセットされ
る。
【0068】それから、図8のステップS7では、次に
読み出すべき波形データの情報としてリリース部波形R
elのノンループ波形NLWのデータを取得し、それに
応じて必要な準備処理を行なう。そして、その次のステ
ップS8では、次の波形のタイプがリリース部波形Re
lのノンループ波形NLWであると判定して、ステップ
S10に行き、ステートSTを「4」にセットする。次
に、ステップS11では、ステートSTが「0」になる
まで待機する。一方、図9では、ステップS23のNO
から、ノンループ波形読出用のルーチンに分岐し、ステ
ップS25,S26の処理によって、リリース部波形R
elのノンループ波形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】なお、上記の例では、過渡的なステートS
T=「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 波形メモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 梅山 康之 静岡県浜松市中沢町10番1号 ヤマハ株式 会社内 Fターム(参考) 5D378 AD12 AD42

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 楽音の時間軸を伸縮制御するための時間
    軸伸縮制御情報を発生する手段と、 前記時間軸伸縮制御情報に基づきバーチャル時間データ
    を生成する手段であって、前記バーチャル時間とは前記
    時間軸伸縮制御情報に応じて実時間を伸縮制御した時間
    を示すものであるものと、 時間の関数である楽音特性制御情報を発生する手段であ
    って、前記バーチャル時間データを引き数として該楽音
    特性制御情報を前記バーチャル時間に従って発生させる
    ものとを具える楽音制御装置。
  2. 【請求項2】 前記楽音特性制御情報は、所定の楽音特
    性を制御するために使用されるものである請求項1に記
    載の楽音制御装置。
  3. 【請求項3】 前記所定の楽音特性とは、波形、ピッチ
    及び振幅の少なくとも1つの楽音要素に対応する特性で
    ある請求項2に記載の楽音制御装置。
  4. 【請求項4】 波形、ピッチ及び振幅のような所定の複
    数の楽音要素のそれぞれに対応して前記楽音特性制御情
    報を夫々発生する請求項1に記載の楽音制御装置。
  5. 【請求項5】 前記時間軸伸縮制御情報は時間の関数か
    らなるものであり、前記時間軸伸縮制御情報を発生する
    手段では、前記バーチャル時間データを引き数として該
    時間軸伸縮制御情報を前記バーチャル時間に従って発生
    させる請求項1乃至4のいずれかに記載の楽音制御装
    置。
  6. 【請求項6】 楽音の時間軸を伸縮制御するための時間
    軸伸縮制御情報を発生するステップと、 前記時間軸伸縮制御情報に基づきバーチャル時間データ
    を生成するステップであって、前記バーチャル時間とは
    前記時間軸伸縮制御情報に応じて実時間を伸縮制御した
    時間を示すものであるものと、 時間の関数である楽音特性制御情報を発生するステップ
    であって、前記バーチャル時間データを引き数として該
    楽音特性制御情報を前記バーチャル時間に従って発生さ
    せるものとを具える楽音制御方法。
  7. 【請求項7】 前記楽音特性制御情報は、所定の楽音特
    性を制御するために使用されるものである請求項6に記
    載の楽音制御方法。
  8. 【請求項8】 前記時間軸伸縮制御情報は時間の関数か
    らなるものであり、前記時間軸伸縮制御情報を発生する
    ステップでは、前記バーチャル時間データを引き数とし
    て該時間軸伸縮制御情報を前記バーチャル時間に従って
    発生させる請求項6又は7に記載の楽音制御方法。
  9. 【請求項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 true JP2002287763A (ja) 2002-10-04
JP3726765B2 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
JP3726765B2 (ja) 2005-12-14

Similar Documents

Publication Publication Date Title
JP3644263B2 (ja) 波形形成装置及び方法
JP3744216B2 (ja) 波形形成装置及び方法
JP6011064B2 (ja) 自動演奏装置及びプログラム
WO2014003072A1 (ja) オーディオ波形データを使用する自動演奏技術
JP2007011217A (ja) 楽音合成装置及びプログラム
JP3601371B2 (ja) 波形生成方法及び装置
JP3654079B2 (ja) 波形生成方法及び装置
JP3654083B2 (ja) 波形生成方法及び装置
JP4802857B2 (ja) 楽音合成装置及びプログラム
JP3008922B2 (ja) 楽音発生装置および楽音発生方法
JP3675184B2 (ja) 波形形成装置及び方法
JP3654080B2 (ja) 波形生成方法及び装置
JP3654082B2 (ja) 波形生成方法及び装置
JP3654084B2 (ja) 波形生成方法及び装置
JP3904012B2 (ja) 波形生成装置及び方法
JP3726765B2 (ja) 波形形成装置及び方法
JP3520781B2 (ja) 波形生成装置及び方法
JP3095018B2 (ja) 楽音発生装置
JP3613191B2 (ja) 波形生成方法及び装置
JP4816441B2 (ja) 楽音合成装置及びプログラム
JP3744247B2 (ja) 波形圧縮方法及び波形生成方法
JP4037973B2 (ja) 波形再生装置
JP3788096B2 (ja) 波形圧縮方法及び波形生成方法
JP3778036B2 (ja) 波形生成装置及び方法
JP3933162B2 (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