JP3397082B2 - 楽音発生装置および方法 - Google Patents

楽音発生装置および方法

Info

Publication number
JP3397082B2
JP3397082B2 JP13039497A JP13039497A JP3397082B2 JP 3397082 B2 JP3397082 B2 JP 3397082B2 JP 13039497 A JP13039497 A JP 13039497A JP 13039497 A JP13039497 A JP 13039497A JP 3397082 B2 JP3397082 B2 JP 3397082B2
Authority
JP
Japan
Prior art keywords
waveform
waveform data
read
pitch
section
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP13039497A
Other languages
English (en)
Other versions
JPH10307586A (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 JP13039497A priority Critical patent/JP3397082B2/ja
Priority to SG1998000189A priority patent/SG65729A1/en
Priority to CNB981069169A priority patent/CN1192351C/zh
Priority to US09/014,417 priority patent/US6169240B1/en
Priority to DE69804518T priority patent/DE69804518T2/de
Priority to EP98101423A priority patent/EP0856830B1/en
Priority to KR10-1998-0002627A priority patent/KR100484240B1/ko
Publication of JPH10307586A publication Critical patent/JPH10307586A/ja
Application granted granted Critical
Publication of JP3397082B2 publication Critical patent/JP3397082B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、波形メモリ音源
において、発生する波形データの音高(ピッチ)の制御
とは独立に、当該波形データの時間軸上の長さ(再生時
間)を部分的に又は全体的に任意に伸張又は圧縮制御
し、時間軸方向の楽音表現力と制御性を向上させた楽音
発生装置及び方法に関し、電子楽器に限らず、ゲーム機
やパーソナルコンピュータその他マルチ・メディア機器
等、各種の用途の楽音又はサウンド発生機器における音
源装置及び方法として広範囲に応用できるものである。
【0002】
【従来の技術】従来より、電子楽器などに用いられてい
る波形メモリ読み出し方式(PCM:パルス符号変調方
式)の音源では、波形メモリからの波形データ(波形サ
ンプル)の読み出し速度を調整することにより、発生す
る楽音波形の音高(ピッチ)を制御していた。具体的に
は、いわゆるFナンバ(周波数ナンバ:音高周波数に比
例する定数)を累算することによって形成した読み出し
アドレスで波形データを順次読み出していく際、そのF
ナンバを大きい値にすればピッチは高くなり、Fナンバ
を小さい値にすればピッチは低くなる。この場合、限ら
れたデータ量からなる波形データを読み出す場合、その
再生時間長は、波形メモリからの波形データ(波形サン
プル)の読み出し速度すなわち再生音のピッチに連動し
て変動してしまう。すなわち、ピッチが高いほど再生時
間長は短くなる。このように、従来のPCM音源では、
波形メモリから読み出す波形データの時間長、すなわち
再生時間を、音高(ピッチ)とは独立に、自由に圧縮し
たり伸張したりする制御を行うことはできなかった。
【0003】この種のPCM音源において、メモリに記
憶した波形を単にそのまま読み出したものを楽音として
発生するだけではなく、何らかの変更を加えて、発生楽
音に表現力を持たせようとする場合、音高、音量、音色
という3つのカテゴリの楽音要素に関して制御を行うこ
とが従来より為されている。音高に関しては、読み出し
速度を適宜変調することにより、ビブラートやアタック
ピッチ等のピッチ変調効果を付与することが為される。
音量に関しては、読み出した波形データに対して所要の
エンベロープ波形に従う音量振幅エンベロープを付与す
ることや、読み出した波形データの音量振幅を周期的に
変調制御することによりトレモロ効果等を付与すること
などが為される。また、音色に関しては、読み出した波
形データをフィルタ処理することにより、適当な音色制
御がなされる。このように、発生楽音に表現力をつける
ための楽音制御法は、従来では、音高、音量、音色とい
う3つのカテゴリの楽音要素に関して何らかの制御を施
すことからなっていた。しかしながら、発生楽音の波形
データを時間軸で制御することにより、発生楽音に表現
力をつけ、楽音表現力と制御性を豊かにすることは、従
来、まったく考えられていなかった。
【0004】また、PCM音源における3つのカテゴリ
の楽音要素の制御法として、上記のように、読み出し速
度を変えたり、読み出し出力の音量振幅を制御したり、
音色をフィルタ制御する、といったような外的制御で
は、自然楽器音の音質に近づけることは困難であったた
め、PCM音源による発生楽音の音質の向上のために、
ビブラートやトレモロ等の各種変調効果の付与済の複数
周期波形を予めそっくり波形メモリに記憶しておき、こ
れを読み出すことにより、これらの変調効果の付与され
た楽音を、自然楽器音と同等の高品質な音質で発生する
ことが行われている。しかし、予め変調効果の付与され
た楽音の波形データをメモリにそっくり記憶したものを
読み出す場合、メモリの読み出し速度を変えると、その
変調周期や変調時間等もそれに連動して変わってしま
い、変調周期や変調時間等をメモリの読み出し速度つま
り発音のピッチとは独立に制御することができなかっ
た。変調効果の付与に限らず、PCM音源においては、
メモリに記憶する波形データそれ自体を、自然楽器から
サンプリングすることにより、所望の楽音効果や楽音特
性に応じた高品質なものとすることができても、それを
ピッチ制御して(メモリの読み出し速度を変化して)読
み出した場合に、メモリの読み出し速度の変化に連動し
て発生楽音の時間軸が動いてしまう、という不都合があ
る。このような不都合を回避するためには、メモリの読
み出し速度を変化しないようにすればよいのであるが、
しかし、楽器音のように再生ピッチがセント単位で多数
有るものにあっては、各種の効果等の特性を予め付与し
た多種類の複数周期波形データを各ピッチ毎に記憶して
おくとなると、メモリ容量が極めて膨大なものとなって
しまうので、非現実的である。従って、その点が解決さ
れるべき課題となっている。
【0005】一方、音声処理の分野では、話速変換技術
としてPICOLA方式が知られている。PICOLA
方式は、例えば、5周期分の波形ブロックA,B,C,
D,Eをこの順に所定の再生サンプリング周波数で読み
出して音声波形を出力するものにおいて、第1周期目と
してブロックAをフェードアウトする波形とブロックB
をフェードインする波形を加算した波形を用い、引き続
く第2〜第4周期目としてC,D,Eを出力するような
方式である。これにより、5周期分の時間長さがあった
波形を、所定の再生サンプリング周波数を変えずに、4
周期分の時間長さに圧縮して出力できる。時間的に伸張
する場合は、例えば、3周期分の波形ブロックA,B,
Cをこの順に所定の再生サンプリング周波数で読み出し
て音声波形を出力するものにおいて、第1周期目として
ブロックAの波形を用い、第2周期目としてブロックA
をフェードアウトする波形とブロックBをフェードイン
する波形を加算した波形を用い、引き続く第3、4周期
目としてB,Cを出力するようにする。これにより3周
期分の時間長さの波形を、所定の再生サンプリング周波
数を変えずに、4周期分に伸張して出力できる。しか
し、この話速変換技術においては、記録した音声信号を
単純に所定の再生サンプリング周波数で読み出すだけで
あり、これを任意のピッチ(音高)で可変的に読み出
す、という発想がなく、そのための対応策はまったく考
えられていない。すなわち、上記の課題に対する解決策
を示していない。
【0006】
【発明が解決しようとする課題】以上のように、従来の
電子楽器の波形メモリ音源では、読み出された波形デー
タの時間長は、読み出し速度に応じて一意的に決定さ
れ、自由に伸縮することはできないという不都合があっ
た。また、従来の音声処理技術では、電子楽器のような
セント単位の精密なピッチ制御は考えられていない。し
たがって、これをそのまま波形メモリ音源に適用するの
は難しい。この発明は上述の点に鑑みてなされたもの
で、波形メモリ読み出し方式の音源において、その読み
出し速度(ピッチ)を任意に可変制御する一方で、その
読み出し速度(ピッチ)とは独立に、読み出す波形デー
タを時間軸上で任意に伸張及び圧縮制御することができ
るようにすることを目的とする。また、この発明は、波
形メモリ読み出し方式の音源において、楽音制御要素と
して波形データの時間軸方向の伸張及び圧縮制御を導入
することにより、メモリ容量を増すことのない簡単な構
成で、発生楽音に表現力をつけることができるように
し、楽音表現力と制御性を豊かにすることを目的とす
る。
【0007】さらに、この発明は、任意の奏法に対応し
た高品質な複数周期波形の波形データをメモリに記憶
し、これを読み出して楽音を再生する場合に、読み出し
速度を可変制御して任意の音高(ピッチ)で楽音を再生
することで、複数の音高(ピッチ)について記憶波形デ
ータの共用化を図ってメモリ容量を節約する一方で、読
み出し速度の制御(発生楽音の音高制御)とは独立に、
波形データの読み出し位置を時間軸で伸縮制御すること
により、その奏法に関する楽音制御パラメータとして新
しい時間軸制御パラメータを提供し、従来に無い、表現
力と制御性に富んだ形態で該奏法に従う楽音発生・制御
を行うことができる装置及び方法を提供することを目的
とする。波形メモリに記憶する任意の奏法に対応した波
形データとしては、ビブラートやトレモロ等の変調が付
与された波形データ、ベンド等のピッチ変調が付与され
た波形データ、スラーの付与された波形データ、あるい
は経過音や装飾音のような経過的なピッチ変動が付与さ
れた波形データ、など様々な奏法に対応するものがあ
る。
【0008】さらに、この発明は、複数周期波形の波形
データをメモリに記憶し、これを読み出して楽音を再生
する場合に、読み出し速度を可変制御して任意の音高
(ピッチ)で楽音を再生することで、複数の音高(ピッ
チ)について記憶波形データの共用化を図ってメモリ容
量を節約する一方で、読み出し速度の制御(発生楽音の
音高制御)とは独立に、発音の任意の部分(全体又は一
部の区間)で、波形データの読み出し位置を時間軸で伸
縮制御することにより、所望部分の発音時間長を任意に
制御することにより、発生楽音波形の多様な変化を実現
し、従来に無い、表現力と制御性に富んだ形態で楽音発
生・制御を行うことができる装置及び方法を提供するこ
とを目的とする。すなわち、音の立上り部分又は立下り
部分等の発音時間長を自由に可変制御することにより、
発生楽音波形の多様な変化を実現し、表現力と制御性に
富んだ形態で楽音発生・制御を行うことができる装置及
び方法を提供することを目的とする。また、波形データ
の時間軸制御によって、発生楽音の全体の時間長を可変
制御することにより、音符長等に合わせて自由に発音時
間長を制御し得るようにした楽音発生装置及び方法を提
供することを目的とする。
【0009】また、時間的に変化する特性からなる時間
軸伸縮制御パラメータを、音色等の指定情報に応じて、
異なる特性で選択的に発生し、指定音色等に応じた発生
楽音波形の多様な変化を実現し、1種類の複数周期波形
の記憶データから多様なバリエーションの波形を時間軸
制御によって形成し得るようにした楽音発生装置及び方
法を提供することを目的とする。また、波形メモリから
同じ部分の波形データを繰り返し読み出し(ループ読み
出し)する場合において、波形データの読み出し位置を
時間軸で伸縮制御することにより、所望部分の発音時間
長を任意に制御することにより、発生楽音波形の多様な
変化を実現し、ループ読み出し部分の単調さを改善した
楽音発生・制御を行うことができる装置及び方法を提供
することを目的とする。また、ループ読み出し部に限ら
ず、楽音の任意の部分に対して、ゆらぎ波形等の任意の
制御信号によって、波形データの読み出し位置を時間軸
で伸縮制御することにより、楽音のゆらぎ等の制御を積
極的に付与し、発生楽音波形の多様な変化を実現した装
置及び方法を提供することを目的とする。
【0010】さらに、1つの楽音波形の再生途中におい
ても、ダイナミックに変化する時間軸上の圧縮率および
伸張率にリアルタイムに応答して、波形データの時間軸
上の伸縮制御を行なうことができるようにした楽音発生
装置及び方法を提供することを目的とする。さらに、こ
の発明は、波形データの読み出し位置を時間軸で伸縮制
御する際に、クロスフェード合成によって、波形の滑ら
かな変化を伴う時間軸伸縮制御を実現するようにした楽
音楽音発生装置及び方法を提供することを目的とする。
さらに、この発明は、上記に伴って、波形データのクロ
スフェード合成法に関する様々な改良を提案することを
目的とする。
【0011】
【課題を解決するための手段】この発明に係る楽音発生
装置は、複数周期波形の波形データを記憶した波形メモ
リと、発生しようとする楽音の音高を指定する手段と、
前記波形メモリから読み出すべき波形データのアドレス
位置を時間の関数で指示する制御データを発生する手段
と、指定された音高に応じた速さで進行する読出アドレ
スを発生するアドレス発生手段と、前記制御データが指
示するアドレス位置と前記アドレス発生手段から発生し
た読出アドレスの位置とを比較し、その比較結果に応じ
て前記アドレス発生手段が発生する読出アドレスをシフ
トする制御手段と、前記読出アドレスに基づいて前記波
形メモリから波形データを読み出す手段とを備える。
【0012】制御データにより、メモリから読み出すべ
き波形データのアドレス位置が時間の関数で示される。
一方、読出アドレスの進行の速さ(つまり傾き)は、ア
ドレス発生手段から発生される読出アドレスによって指
示される。制御手段によって、制御データが示すアドレ
ス位置(いわば、目標若しくは仮想の読み出し位置)と
アドレス発生手段から発生した読出アドレスの位置(実
際の読み出し位置)とを比較し、その比較結果に応じて
アドレス発生手段が発生する読出アドレスをシフトす
る。これにより、読出アドレスの進行の速さ(つまり傾
き)は、発生すべき楽音の所望の音高に対応して制御さ
れ、波形データの読み出し位置と時間との関係は、制御
データによって制御される。従って、所望の音高の楽音
に対応する波形データを、読み出し速度の制御(発生楽
音の音高制御)とは独立に、この制御データの内容に従
って時間軸上で自由に伸張したり圧縮制御した状態で、
波形メモリから読み出すことができる。
【0013】後述する実施例によれば、波形メモリから
読み出すべき波形データのアドレス位置を時間の関数で
指示する制御データは、仮想読出アドレスとして示され
ている。また、指定された音高に応じた速さで進行する
読出アドレスは、実読出アドレスとして示されている。
また、後述する実施例によれば、波形メモリに記憶され
た波形データは、複数の区間に分けられ、各区間の先頭
の波形データの位相がほぼ合うように管理されており、
前記制御データが指示するアドレス位置と前記アドレス
発生手段から発生した読出アドレスの位置とが所定値以
上かい離したとき、前記区間を単位として前記アドレス
発生手段が発生する読出アドレスをシフトするようにし
てよい。波形データの読み出し位置が時間軸上で伸張又
は圧縮されるとき、読み出し位置の不連続が起こるが、
先頭の波形データの位相がほぼ合うように管理された区
間を単位として、読出アドレスをシフトする構成を採用
していることにより、伸張又は圧縮によって不連続な波
形区間が接続される場合であっても、波形のつながりを
滑らかにすることができる。更に、後述する実施例によ
れば、前記制御手段によって前記読出アドレスのシフト
を行うとき、シフト前の読出アドレスの進行に基づき前
記波形メモリから読み出した波形データとシフト後の読
出アドレスの進行に基づき前記波形メモリから読み出し
た波形データをクロスフェード合成するクロスフェード
手段を更に備えていてよい。この場合も、波形データの
読み出し位置を時間軸上で伸張又は圧縮することによっ
て不連続な波形データを接続するとき、波形のつながり
を滑らかにすることができる。
【0014】 この発明に係る楽音発生方法は、複数周
期波形の波形データを記憶した波形メモリからの波形デ
ータの読み出しに基づいて楽音を発生する方法であっ
て、発生しようとする楽音の音高を指定するステップ
と、波形データの時間軸を制御する制御情報を発生する
ステップと、前記波形メモリから読み出すべき波形デー
タの区間を、時間経過に伴い、かつ前記制御情報に応じ
波形データの時間軸を伸張又は圧縮すべく、指定する
ステップと、前記指定された区間の波形データを、指定
された音高に応じた速さで前記波形メモリから読み出す
ステップとを備え、前記指定された音高を持ち、かつ、
前記制御情報に応じて時間軸伸張又は圧縮制御され
形データからなる楽音を発生することを特徴とする。
上記の3番目のステップにおいて波形メモリから読み出
すべき波形データの区間が指定される一方で、指定され
区間からの波形データの各サンプルの順次読み出し、
すなわち、波形メモリからの実際の読み出しアドレスの
指定は、上記の4番目のステップにおいて、指定された
音高に応じた速さで行われる。こうして、波形メモリか
らの波形データの読み出しは、指定された区間から、
定された音高に応じた速さで行われる。これにより、読
み出される波形データの音高(ピッチ)は、指定された
音高に応じて制御され、これとは独立に、波形メモリか
ら読み出すべき波形データの区間は、制御情報に応じて
波形データの時間軸を伸張又は圧縮すべく、指定され
る。従って、波形メモリから読み出す波形データの時間
軸位置を、その読み出し速度(ピッチ)とは独立に、任
意に伸張及び圧縮制御することができる。なお、この場
合、読み出した波形のピッチ感と1波の波形の音色的特
徴を損なわないようにするには、上記区間は少なくとも
1波(1周期)の波形データを含む間隔または区間若し
くは範囲であることが好ましい。さらに、この発明に係
る、コンピュータによって読み取り可能な記録媒体は、
上述したような楽音発生方法の手順を実行するコンピュ
ータプログラムを記憶してなるものである。
【0015】 この発明に係る楽音発生装置は、変調の
付与された複数周期波形の波形データを記憶した波形メ
モリと、発生しようとする楽音の音高を指定する手段
と、変調の周期を制御する制御情報を発生する手段と、
前記波形メモリから読み出すべき波形データの区間を、
時間経過に伴い、かつ前記制御情報に応じて波形データ
の時間軸を伸張又は圧縮すべく、指定する制御手段と、
前記指定された区間の波形データを、指定された音高に
応じた速さで前記波形メモリから読み出す読出手段とを
備えたものである。これによれば、ビブラートやトレモ
ロ等の変調が付与された高品質な複数周期波形の波形デ
ータを波形メモリに記憶し、これを読み出して楽音を再
生する場合に、読み出し速度を可変制御して任意の音高
(ピッチ)で楽音を再生することで、複数の音高(ピッ
チ)について記憶波形データの共用化を図ってメモリ容
量を節約する一方で、読み出し速度の制御(発生楽音の
音高制御)とは独立に、時間軸上の変調周期を可変制御
することにより、従来に無い表現力と制御性に富んだ楽
音発生装置を提供することができる。
【0016】 この発明に係る楽音発生装置は、複数周
期波形の波形データを記憶した波形メモリと、発生しよ
うとする楽音の音高を指定する手段と、繰り返し読み出
しを行うべき前記波形データの所定の部分において波形
データの時間軸を制御する制御情報を発生する手段と、
前記波形メモリから読み出すべき波形データの区間を、
時間経過に伴い、かつ前記制御情報に応じて波形データ
の時間軸を伸張又は圧縮すべく、指定する制御手段と、
指定された音高に応じた速さで前記波形メモリから波形
データを読み出すものであり、前記所定の部分を繰り返
し読み出すときに、前記指定された区間の波形データ
を、前記指定された音高に応じた速さで前記波形メモリ
から読み出す読出手段とを備える。これによれば、波形
メモリから同じ部分の波形データを繰り返し読み出し
(ループ読み出し)する場合において、波形データの読
み出し位置を時間軸で伸縮制御することにより、所望部
分の発音時間長を任意に制御することにより、発生楽音
波形の多様な変化を実現し、ループ読み出し部分の単調
さを改善することができる。
【0017】 この発明に係る楽音発生装置は、複数周
期波形の波形データを記憶した波形メモリと、発生しよ
うとする楽音の音高を指定する手段と、時間的に変化す
る制御情報を発生する手段と、前記波形メモリから読み
出すべき波形データの区間を、時間経過に伴い、かつ前
記制御情報に応じて波形データの時間軸を伸張又は圧縮
すべく、指定する制御手段と、前記指定された区間の波
形データを、指定された音高に応じた速さで前記波形メ
モリから読み出す読出手段とを備える。これによれば、
楽音の任意の部分に対して、時間的に変化する制御情報
(例えばゆらぎ波形等)によって、波形データの読み出
し位置を時間軸で伸縮制御することにより、楽音にゆら
ぎをもたせる等、の微妙な時間的制御を発生楽音に対し
て積極的に付与することができ、発生楽音波形の多様な
変化を実現することができる。
【0018】 この発明に係る楽音発生装置は、所定の
奏法による所定期間にわたる楽音特性変化が付与された
複数周期波形の波形データを記憶した波形メモリと、発
生しようとする楽音の音高を指定する手段と、前記所定
の奏法に従う楽音発生期間を制御する制御情報を発生す
る手段と、前記波形メモリから読み出すべき波形データ
区間を、時間経過に伴い、かつ前記制御情報に応じて
波形データの時間軸を伸張又は圧縮すべく、指定する制
御手段と、前記指定された区間の波形データを、指定さ
れた音高に応じた速さで前記波形メモリから読み出す読
出手段とを備える。これによれば、所定の奏法による所
定期間にわたる楽音特性変化が付与された複数周期波形
の波形データ(例えば、ベンド等の経過的ピッチ変調が
付与された波形データ、スラーの付与された波形デー
タ、あるいは経過音や装飾音のような経過的なピッチ変
動が付与された波形データ、など)を波形メモリに記憶
し、これを読み出して再生発音することにより、所定の
奏法による楽音を高品質で発生することができると共
に、その波形データの時間軸上での伸縮制御によって、
節約した容量のメモリを使用しながら、発生楽音の音高
とは独立に、その奏法に従う時間長を任意に可変制御す
ることができる、という優れた効果を奏する。従って、
奏法に関する楽音制御パラメータとして新しい時間軸制
御パラメータを提供し、従来に無い、表現力と制御性に
富んだ形態で該奏法に従う楽音発生・制御を行うことが
できる。この場合、前記波形メモリに記憶する波形デー
タに付与された経過的な楽音特性変化は、ベンド等の音
高変化にかぎらず、音色又は音量の経過的な変化であっ
てもよい。
【0019】 上記のような経過的な波形制御における
別の例として、この発明に係る楽音発生装置は、第1の
波形データ、第2の波形データ、及び該第1及び第2の
波形をつなぐための所定の楽音特性変化が付与された複
数周期波形からなる第3の波形データを記憶した波形メ
モリと、発生しようとする楽音の音高を指定する手段
と、前記第1の波形から前記第2の波形へ移行すること
が指示されたとき、その間に前記第3の波形を挿入して
読み出すよう前記波形メモリの読み出しを制御する手段
と、前記第3の波形を使用する時間を制御する制御情報
を発生する手段と、前記波形メモリから読み出すべき第
3の波形データの少なくとも一部分の区間を、時間経過
に伴い、かつ前記制御情報に応じて波形データの時間軸
伸張又は圧縮すべく、指定する制御手段と、指定され
た音高に応じた速さで前記波形メモリから波形データを
読み出すものであり、前記第3の波形データを読み出す
ときに、前記指定された区間の波形データを、前記指定
された音高に応じた速さで前記波形メモリから読み出す
読出手段とを備える。
【0020】 この発明に係る楽音発生装置は、複数周
期波形の波形データを記憶した波形メモリと、発生しよ
うとする楽音の音高を指定する手段と、所定の楽音発生
期間において波形データの時間軸を制御する制御情報を
発生する手段と、前記波形メモリから読み出すべき波形
データの区間を、時間経過に伴い、かつ前記制御情報に
応じて波形データの時間軸を伸張又は圧縮すべく、指定
する制御手段と、前記指定された区間の波形データを、
指定された音高に応じた速さで前記波形メモリから読み
出す読出手段とを備える。これによれば、読み出し速度
の制御(発生楽音の音高制御)とは独立に、発音の任意
の部分(全体又は一部の区間)で、波形データの読み出
し位置を時間軸で伸縮制御することにより、所望部分の
発音時間長を任意に制御することにより、発生楽音波形
の多様な変化を実現し、従来に無い、表現力と制御性に
富んだ形態で楽音発生・制御を行うことができる。例え
ば、所定の楽音発生期間として、音の立上り部分又は立
下り部分等を選べば、音の立上り部分又は立下り部分等
の発音時間長を自由に可変制御することにより、発生楽
音波形の多様な変化を実現し、表現力と制御性に富んだ
形態で楽音発生・制御を行うことができる。制御情報と
して、楽音を発生する全体の時間長を制御する情報を使
用すれば、楽音の発音時間長を、発生音高とは独立に、
可変制御することができ、例えば、音符長に合わせて自
由に発音時間長を制御し得るようになる。
【0021】 この発明に係る楽音発生装置は、複数周
期波形の波形データを記憶した波形メモリと、発生しよ
うとする楽音の音高を指定する手段と、音色を指定する
手段と、楽音の発生開始からの時間経過に伴い、指定さ
れた音色に対応する態様で変化する制御情報を発生する
手段と、前記波形メモリから読み出すべき波形データの
区間を、時間経過に伴い、かつ前記制御情報に応じて
形データの時間軸を伸張又は圧縮すべく、指定する制御
手段と、指定された音色に対応した複数周期の波形デー
タを指定された音高に応じた速さで前記波形メモリから
読み出すものであって、前記指定された区間の波形デー
タを、前記指定された音高に応じた速さで前記波形メモ
リから読み出す読出手段とを備え、前記波形メモリに記
憶される複数周期波形の波形データが少なくとも2つの
異なる音色で共用され、この少なくとも2つの異なる音
色に関する前記制御情報の態様が異なっていることを特
徴とする。これによれば、時間的に変化する特性からな
る時間軸伸縮制御の制御情報を、音色等の指定情報に応
じて、異なる特性で選択的に発生し、指定音色等に応じ
た発生楽音波形の多様な変化を実現し、1種類の複数周
期波形の記憶データから多様なバリエーションの波形を
時間軸制御によって形成することができるようになる。
【0022】 この発明に係る楽音発生装置は、複数周
期波形の波形データを記憶した波形メモリと、発生しよ
うとする楽音の音高を指定する手段と、楽音の発生中に
おいてリアルタイムで制御情報を発生するリアルタイム
制御情報発生手段と、前記波形メモリから読み出すべき
波形データの区間を、時間経過に伴い、かつ前記制御情
報に応じて波形データの時間軸を伸張又は圧縮すべく
指定する制御手段と、前記指定された区間の波形データ
を、前記指定された音高に応じた速さで前記波形メモリ
から読み出す読出手段とを備える。これによれば、1つ
の楽音波形の再生途中においても、リアルタイムでダイ
ナミックに変化する制御情報に応じて、波形データの時
間軸での伸張および圧縮制御がリアルタイムで行われ、
演奏表現力を増すことができる。
【0023】 この発明に係る楽音発生装置は、複数周
期波形の波形データを複数種類記憶した波形メモリと、
発生しようとする楽音の音高を指定する手段と、前記複
数種類の波形データの1つを時間的に切り換えて指定す
る波形指定手段と、波形データの時間軸を制御する制御
情報を発生する手段と、前記波形指定手段によって指定
された波形データにおいて、前記波形メモリから読み出
すべき該波形データの区間を、時間経過に伴い、かつ前
記制御情報に応じて波形データの時間軸を伸張又は圧縮
すべく、指定する制御手段と、前記指定された区間の波
形データを、前記指定された音高に応じた速さで前記波
形メモリから読み出す読出手段とを備える。これによっ
て、更に多様な楽音制御を、波形データの時間軸での伸
張および圧縮制御に基づき行うことができる。
【0024】
【0025】 この発明に係る楽音発生装置は、複数周
期波形の波形データを記憶した波形メモリと、発生しよ
うとする楽音の音高を指定する手段と、前記波形メモリ
から読み出すべき波形データの区間時間経過に伴
かつ波形データの時間軸を伸張又は圧縮すべく指定
し、現時点の第1の波形データと伸張又は圧縮する場合
に現時点よりも前又は後の時点の第2の波形データ
指示する波形指示手段と、前記指示された第1及び第2
の波形データを、指定された音高に応じた速さで前記波
形メモリからそれぞれ読み出し、第1及び第2の系列で
それぞれ出力する読出手段と、常に前記第1の系列の波
形データから第2の系列の波形データに移行するように
クロスフェード合成を行うクロスフェード合成手段と、
クロスフェードの終了後に、前記波形指示手段により
たな区間の波形データを指示するとき、それまで第2の
系列で発生していた前記第2の波形データを第1の系列
で出力するように指示し、第2の系列では該新たな区間
の波形データを出力するよう指示する制御手段とを備え
る。これによれば、波形データの読み出し位置を時間軸
で伸縮制御する際に、クロスフェード合成によって、波
形の滑らかな変化を伴う時間軸伸縮制御を実現すること
ができると共に、クロスフェードの方向を各系列毎に固
定することによりクロスフェード用の係数の関数波形を
各系列毎に固定することができ、該関数波形の形成が容
易となる。
【0026】 この発明に係る楽音発生装置は、複数周
期波形の波形データを記憶した波形メモリと、発生しよ
うとする楽音の音高を指定する手段と、前記波形メモリ
から読み出すべき波形データの区間時間経過に伴
かつ波形データの時間軸を伸張又は圧縮すべく指定
し、現時点の第1の波形データと伸張又は圧縮する場合
に現時点よりも前又は後の時点の第2の波形データ
指示する波形指示手段と、前記指示された第1及び第2
の波形データを、指定された音高に応じた速さで前記波
形メモリからそれぞれ読み出し、第1及び第2の系列で
それぞれ出力する読出手段と、前記第1及び第2の系列
の一方の波形データから他方の波形データに移行するよ
うにクロスフェード合成を行うクロスフェード合成手段
と、クロスフェードの終了後に、前記波形指示手段によ
新たな区間の波形データを指示するとき、該第2の波
形データの出力をそれまでと同じ系列で継続し、その他
の系列では該新たな区間の波形データを出力するよう指
示し、かつ、前記クロスフェード合成手段におけるクロ
スフェードの方向を切り換える制御手段とを備える。こ
れによれば、波形データの読み出し位置を時間軸で伸縮
制御する際に、クロスフェード合成によって、波形の滑
らかな変化を伴う時間軸伸縮制御を実現することができ
る。
【0027】 この発明に係る楽音発生装置は、複数周
期波形の波形データを記憶した波形メモリと、発生しよ
うとする楽音の音高を指定する手段と、前記波形メモリ
から読み出すべき波形データの区間を、時間経過に伴
い、かつ波形データの時間軸を伸張又は圧縮すべく、指
定する制御手段と、前記制御手段による指定に応じて、
伸張する場合は現時点の第1の波形データとこれよりも
の時点に位置する第2の波形データとを指示し、圧縮
する場合は現時点の第1の波形データとこれよりも
時点に位置する第2の波形データとを指示し、伸張も圧
縮も施さない場合は現時点の第1の波形データとこれと
同じものを第2の波形データとして指示する波形指示手
段と、前記指示された第1及び第2の波形データを、指
定された音高に応じた速さで前記波形メモリからそれぞ
れ読み出す読出手段と、前記第1の波形データから第2
の波形データに移行するようにクロスフェード合成を行
うクロスフェード合成手段とを備える。これによれば、
波形データの読み出し位置を時間軸で伸縮制御する際
に、クロスフェード合成によって、波形の滑らかな変化
を伴う時間軸伸縮制御を実現することができると共に、
時間軸伸張又は圧縮が施されない場合であっても同じ波
形をクロスフェード合成することにより波形データの時
間軸伸張及び圧縮が起こらないようにしているので、見
掛け上絶えずクロスフェード合成を行う構成を採用して
いることにより、時間軸伸縮制御パラメータに応じてク
ロスフェード合成の要否を制御する必要がなくなり、制
御及び構成を簡略化することができる。
【0028】
【発明の実施の形態】以下、添付図面を参照してこの発
明の実施の形態につき詳細に説明する。 〔TSC制御の全体的説明〕この発明においては、再生
する楽音のピッチ制御とは独立に、波形メモリに記憶し
た波形データの時間軸上の長さを、任意の範囲で、伸張
又は圧縮した状態で読み出す制御(これをTime Stretch
& Compress 制御と称し、“TSC制御”と略称する)
を行い、これによって発生する楽音の特徴を自由かつ多
様に制御するようにしている。図1は、そのようなTS
C制御に従う本発明に係る楽音発生技術を適用した電子
楽器の全体構成を示す。この電子楽器は、鍵盤101
A、その他の演奏操作子群101B、設定操作子群10
0、制御部102、音源部103、ディジタル・アナロ
グ変換器(DAC)104、およびサウンドシステム1
05などを備えている。音源部103は、波形発生部1
11、音量制御部112、制御レジスタ113、および
チャンネル累算部114を備えている。音源部103
は、所定のサンプリング周期ごとに、時分割動作で複数
の各チャンネル毎の楽音波形信号を生成し、それらを累
算した楽音波形データをDAC104に出力する。
【0029】鍵盤101Aは、発生する楽音の音高を指
定するための複数の鍵を備えるもので、通常知られた典
型的な鍵盤に限らず、MIDIギターなどその他のMI
DI形式で音高指定データを発生する装置を用いてもよ
い。その他の演奏操作子群101Bは、ホイール操作
子、ペダル操作子、ジョイスティック等の各種演奏操作
子からなる。鍵盤101A及び演奏操作子群101Bに
おける演奏操作に応じて、リアルタイムで演奏情報が発
生され、これが制御部102に与えられる。なお、これ
らの演奏情報は、必ずしもリアルタイムの演奏操作に応
じて与えられることを要せず、例えば、シーケンサ等の
自動演奏装置からMIDI形式で自動的に与えられるよ
うになっていてもよい。設定操作子群100は、パネル
スイッチ、スライダー、ジョグダイヤル等の各種のデー
タ設定用操作子と表示器等を含み、楽音特性の設定及び
制御に関連するデータやその他のデータの設定を行うた
めのものである。
【0030】制御部102は、鍵盤101A及び演奏操
作子群101Bから与えられる演奏情報及び設定操作子
群100から与えられる各種の設定情報に従って音源部
103に楽音発生の指示を出す。例えば、制御部102
は、CPU、ROM、RAM及びその他周辺回路を含
み、所定のプログラムに従う処理を実行することによ
り、前記演奏情報及び設定情報に応じた楽音発生指示を
行う。具体的には、入力した演奏情報及び設定情報に応
じて、発音割り当てや楽音パラメータの作成を行ない、
発音割り当てしたチャンネルに対応して各種の楽音パラ
メータを制御レジスタ113に対して設定する。音源部
103では、各チャンネルに対応して制御レジスタ11
3に設定された各種楽音パラメータに基づいて、波形発
生部111で複数チャンネル分の楽音波形を時分割で発
生し、発生した楽音波形に音量制御部112で各チャン
ネル別に音量制御(音量エンベロープ制御を含む)を施
し、チャンネル累算部114で、音量制御された複数チ
ャンネル分の楽音波形を累算して累算結果をDAC10
4に出力する。DAC104は、チャンネル累算部11
4から出力されたディジタル楽音波形データをアナログ
楽音信号に変換する。該アナログ信号に基づいて、実際
の楽音がサウンドシステム105により放音される。
【0031】図2は、図1の波形発生部111の詳細図
を示す。波形発生部111は、波形メモリ10を具備し
ている。波形メモリ10は、1つの音に関して複数周期
波形の波形データを記憶しており、そのような波形デー
タを複数の音色及び楽音特性(音高又は音域に応じた特
性や、ビブラート、スラー等の変調特性)に対応して記
憶している。発生すべき楽音の音高又は音域を示すキー
コードKCと音色を示す音色情報TC等が、制御レジス
タ113経由で、波形発生部111に入力され、該波形
発生部111内の各部に与えられる。例えば、波形区間
情報メモリ15において、波形メモリ10に記憶してい
る各波形データの先頭アドレス等の情報が記憶されてお
り、これらの情報KC,TCをパラメータとして所要の
先頭アドレス情報を読み出すことにより、所要の楽音特
性を持つ複数周期波形の波形データを該波形メモリ10
で選択する。すなわち、波形区間情報メモリ15から読
み出された先頭アドレス情報が実読出アドレス演算器1
6に与えられ、該演算器16が生成する実読出アドレス
RADの初期値として設定されることにより、所要の楽
音特性を持つ複数周期波形の波形データが選択される。
実読出アドレス演算器16から発生される実読出アドレ
スRADに従って該波形メモリ10から波形データが読
み出される。なお、波形メモリ10から読み出すべき波
形データを選択するためのパラメータは、キーコードK
Cと音色情報TCに限らず、適宜の演奏情報又は設定情
報に基づく情報INFでもよい。
【0032】実読出アドレス演算器16は、楽音発生
(すなわち波形発生)を指示するノートオン信号と、発
生すべき楽音の音高を示すピッチ情報、及びその他のデ
ータを前記制御レジスタ113経由で、制御部102か
ら受け取る。ピッチ情報は、発生すべき楽音の音高周波
数に対応するデータであり、例えば、周波数ナンバとし
て周知の情報を用いてもよいし、その他の情報を用いて
もよい。基本的には、実読出アドレス演算器16は、こ
のピッチ情報を演算して、該ピッチ情報に従うレート
(ピッチ)で変化する実読出アドレスRADのデータを
生成する。従って、波形メモリ10に記憶した波形デー
タのサンプルを、この実読出アドレスRADに従って読
み出すことにより、該ピッチ情報に対応する音高の楽音
再生が行える。
【0033】この実施例においては、上記“TSC制
御”のために、仮想読出アドレス演算器17が設けられ
ている。仮想読出アドレス演算器17は、波形データの
時間軸上の長さの所望の伸張又は圧縮制御した状態を想
定し、所望の時間軸伸張又は圧縮を達成するためには、
現時点でどのアドレス位置から波形データを読み出すべ
きかを指示するアドレスデータを、仮想読出アドレスV
ADとして、生成する。そのために、所望の伸張又は圧
縮比を指示する伸縮比データSCRと、前記ピッチ情報
とを仮想読出アドレス演算器17に入力し、該ピッチ情
報に従う傾きを伸縮比データSCRによって修正した傾
きで変化するアドレスデータを、仮想読出アドレスVA
Dとして出力する。なお、伸縮比データSCRは、演奏
情報又は設定情報に基づく変調情報MS及び/又はその
他の情報を変換部18に入力し、必要に応じてキーコー
ドKCや音色情報TC等のパラメータによってその値を
変換したものを用いる。この仮想読出アドレスVAD
は、波形メモリ10における絶対アドレスを考慮しない
相対アドレスとしてもよいが、説明の簡略化のために、
波形メモリ10における絶対アドレスに対応しているも
のとする。そのために、実読出アドレス演算器16から
必要な絶対アドレスデータ(前記先頭アドレス情報な
ど)が仮想読出アドレス演算器17に与えられるように
なっていてよい。従って、切替制御回路14において実
読出アドレスRADと仮想読出アドレスVADをそのま
ま比較するようにしてよい。なお、仮想読出アドレスV
ADを相対アドレス(例えば先頭アドレスを0とするも
の)とした場合は、切替制御回路14に入力する実読出
アドレスRADは、相対アドレス部分のみ(例えば先頭
アドレスを0とするもの)とすればよい。
【0034】切替制御回路14は、実読出アドレスRA
Dと仮想読出アドレスVADとを比較し、実読出アドレ
スRADの仮想読出アドレスVADからのかい離幅が所
定幅を越えたとき、実読出アドレス演算器16に対して
実読出アドレスRADの切替を指示する。実読出アドレ
ス演算器16では、この切替指示に従って、実読出アド
レスRADの仮想読出アドレスVADに対するかい離を
解消するよう、適宜アドレス数だけ数値シフト制御す
る。この切替制御の詳細例については追って詳しく説明
する。実読出アドレス演算器16に付属して図示された
レジスタ群19〜22は、この切替制御のために利用さ
れる制御用の変数データi,j,Aijや読出ポインタp
をストアするものである。
【0035】波形メモリ10の出力側に設けられたクロ
スフェード合成部13は、上記切替制御の際に実読出ア
ドレスRADの急激な変化(シフト)による読出波形の
変動の影響を軽減して滑らかな波形切替を実現するため
に、2系列の波形データをクロスフェード合成するため
のものである。そのために、波形メモリ10から2系列
の波形データを読み出し、これらを補間回路11,12
を経由してクロスフェード合成部13に入力するように
している。具体的なクロスフェード合成のやり方として
は、種々の手法が考えられる。この実施例においては、
切替変化後の実読出アドレスRADを演算器16から発
生する一方で、切替変化していない実読出アドレスをク
ロスフェード副系列用実読出アドレスRAD2として演
算器16から発生し、両アドレスRAD,RAD2によ
って波形メモリ10から2系列の波形データW1,W2
をそれぞれ読み出し、各補間回路11,12を経由して
クロスフェード合成部13に入力するようにしている。
この場合、実読出アドレスRADによって読み出される
波形データW1の系列をクロスフェード主系列とし、例
えば、この系列の波形データW1の振幅レベルを係数0
から1まで小数値で順次増加変化するクロスフェード係
数によってスケーリングし(フェードイン)、他方、ク
ロスフェード副系列用実読出アドレスRAD2によって
読み出される波形データW2の振幅レベルを係数1から
0まで小数値で順次減少変化するクロスフェード係数に
よってスケーリングし(フェードアウト)、両者を加算
合成する。勿論、クロスフェード合成の手法(例えばフ
ェードインとアウトの関係など)はこれに限らず、種々
変更可能である。また、2系列の波形データW1,W2
は、波形メモリ10から時分割的に読み出されるように
してよい。
【0036】なお、補間回路11及び12は、波形メモ
リ10から読み出された各波形データW1及びW2のサ
ンプル間での補間演算をそれぞれ行う。そのために、各
実読出アドレスRAD,RAD2の整数部が波形メモリ
10にアドレス入力され、小数部が補間回路11及び1
2に補間パラメータとして入力される。勿論、この補間
回路11,12は必須ではない。レジスタ19,21,
22における各変数データi,j,Aijは、クロスフェ
ードの主系列と副系列に対応してそれぞれストアされ
る。レジスタ20にストアする読出ポインタpは、両系
列で共通に使用される。
【0037】更に詳細な説明に先立ち、図2に示された
波形発生部111に従うTSC制御の基本的概念につい
て図3及び図4によって例示的に説明する。図3は、時
間を横軸、波形メモリのアドレスをたて軸にとり、TS
C制御に従って圧縮制御を行う場合における、時間的な
アドレス進行の状態を例示したものである。なお、たて
軸の原点は、選択された波形データの先頭アドレスであ
る。一点鎖線は、ピッチ情報に従う本来のアドレス進行
を例示する。太い破線は、仮想読出アドレスVADのア
ドレス進行を例示する。伸縮比データSCRが1であれ
ば、仮想読出アドレスVADのアドレス進行は、一点鎖
線の本来のアドレス進行に一致し、時間軸の変化はな
い。時間軸を圧縮する場合、伸縮比データSCRは1以
上の適宜の値をとり、図示のように、仮想読出アドレス
VADのアドレス進行の傾きが相対的に大きくなる。太
い実線は、実読出アドレスRADのアドレス進行を例示
する。この実読出アドレスRADのアドレス進行の傾き
は、一点鎖線で示したピッチ情報に従う本来のアドレス
進行の傾きに一致している。この場合、仮想読出アドレ
スVADのアドレス進行の傾きが相対的に大きいが故
に、時間経過に従って次第に実読出アドレスRADのア
ドレス進行が仮想読出アドレスVADのアドレス進行よ
りも遅れてくる。そして、そのかい離幅が所定以上にな
ったとき、前記切替制御回路14から切替指示(図中、
矢印で示す)が出され、図示のように、該かい離を解消
する方向に、実読出アドレスRADが適量シフトされ
る。これによって、実読出アドレスRADのアドレス進
行は、ピッチ情報に従う傾きを維持しつつ、仮想読出ア
ドレスVADのアドレス進行に沿って変化し、時間軸方
向に圧縮された特性を示す。従って、このような実読出
アドレスRADに従って波形メモリ10から波形データ
W1を読み出すことにより、再生する楽音のピッチは変
更せずに、時間軸方向に波形を圧縮した波形信号を得る
ことができる。
【0038】なお、前記かい離を解消する方向への実読
出アドレスRADのシフトは、このシフトによって、シ
フト直前に読み出していた波形データと、シフト直後に
読み出す波形データとが滑らかにつながるようにするこ
とが好ましい。そのための一例として、記憶されている
波形データの基本波成分の位相が同じであるポイント間
を接続するようにシフトを行うようにしてよく、また、
別の例として、記憶されている波形データの1周期のサ
ンプル数の整数倍の長さ分だけシフトするようにしても
よいし、更に別の例として、ほぼ同じ値で、かつ、ほぼ
同じ傾きのポイント間を接続するようにシフトを行うよ
うにしてもよい。
【0039】図4は、TSC制御に従って伸張制御を行
う場合における、時間的なアドレス進行の状態を例示し
たものである。この場合、伸縮比データSCRは1未満
であり、太い破線にて示す仮想読出アドレスVADのア
ドレス進行の傾きは相対的に小さい。従って、時間経過
に伴い次第に実読出アドレスRADのアドレス進行が仮
想読出アドレスVADのアドレス進行よりも進んでき
て、そのかい離幅が所定以上になったとき、前記切替制
御回路14から切替指示(図中、矢印で示す)が出さ
れ、図示のように、該かい離を解消する方向に、実読出
アドレスRADが適量シフトされる。これによって、実
読出アドレスRADのアドレス進行は、ピッチ情報に従
う傾きを維持しつつ、仮想読出アドレスVADのアドレ
ス進行に沿って変化し、時間軸方向に伸張された特性を
示す。従って、このような実読出アドレスRADに従っ
て波形メモリ10から波形データW1を読み出すことに
より、再生する楽音のピッチは変更せずに、時間軸方向
に波形を伸張した波形信号を得ることができる。
【0040】図3及び図4において、波線は、クロスフ
ェード副系列用実読出アドレスRAD2のアドレス進行
を示す。このクロスフェード副系列用実読出アドレスR
AD2は、図示の通り、上記切替指示が出されたとき、
シフト前の実読出アドレスRADのアドレス進行の延長
上に、実読出アドレスRADと同じレート(つまり傾
き)で生成される。適宜のクロスフェード期間におい
て、副系列用実読出アドレスRAD2に対応して読み出
される波形データW2から主系列用実読出アドレスRA
Dに対応して読み出される波形データW1まで滑らかに
波形が移行するようにクロスフェード合成がなされる。
この例の場合、少なくとも所要のクロスフェード期間の
間でのみ副系列用実読出アドレスRAD2を生成するよ
うにすればよい。
【0041】なお、このようなクロスフェード合成を行
うことは非常に好ましいことであるが、必ずしも必須で
はない。例えば、実読出アドレスRADがシフトする直
前の波形データの位相と、シフトした直後の波形データ
の位相とが合うような箇所で、切替指示を出すことによ
り、実読出アドレスRADのシフト前後の読出波形デー
タW1のつながりを滑らかにすることができるし、ま
た、その他の適宜の波形処理も為し得るので、本発明に
おいては、クロスフェード合成を行わずに、1つの実読
出アドレスRADのみで1系列の波形データW1を読み
出すようにする方式も採用し得る。また、クロスフェー
ド合成を行う場合も、クロスフェードの主系列と副系列
の関係を図3,図4に示す例とは逆にしても一向に差し
支えない。つまり、クロスフェード期間において、それ
までの実読出アドレスRADの延長上にあるアドレス進
行をそのまま主系列実読出アドレスRADとして維持
し、シフトされた実読出アドレスを副系列実読出アドレ
スRAD2としてもよい。その場合は、クロスフェード
が終了したとき副系列実読出アドレスRAD2を主系列
実読出アドレスRADに変更し、その延長上に実読出ア
ドレスRADが進行するようにする。その方が、切替指
示があったときに、主系列の実読出アドレスRADはそ
のままに進行させておき、シフトされた実読出アドレス
を副系列実読出アドレスRAD2としてセットする処理
を行うだけで済むので、簡便である。後述する具体例で
は、こちらの方法を採用している。
【0042】なお、説明の簡略化のために図3及び図4
では、波形メモリ10に記憶した波形データの所要の範
囲を繰返し読み出す制御を行う場合については特に示し
ていないが、その場合も、同様に本発明に従うTSC制
御を適用しうる。すなわち、本発明に従うTSC制御
は、波形メモリに記憶した複数周期波形データを1回読
み出すことにより1つの音を再生するものに限らず、所
要の範囲の波形データを繰返し読み出すことにより1つ
の音を再生するものにおいても、同様に適用しうるもの
である。そのためには、図2の実読出アドレス演算器1
6と仮想読出アドレス演算器17の双方で、実読出アド
レスRAD及び仮想読出アドレスVADのループ制御
(繰返し制御)を行うようにしてもよいし、仮想読出ア
ドレス演算器17でのみ仮想読出アドレスVADのルー
プ制御(繰返し制御)を行うようにしてもよい。後者の
制御法でもよい理由は、仮想読出アドレスVADがルー
プ制御されれば、実読出アドレスRADの方は特段のル
ープ制御がなされなくても、かい離の発生に応じて仮想
読出アドレスVADのループに追従して実読出アドレス
RADがループされることになるからである。
【0043】次に、本実施例に従うTSC制御によって
実現できる波形の時間軸上での伸張及び圧縮の様子のい
くつかの例について図5及び図6によって説明する。図
5及び図6において、それぞれの最上段で、黒く塗りつ
ぶした図形1401及び1501は、波形メモリ10に
記憶されている元の波形(例えば、或るオリジナルピッ
チを持つ音の複数周期波形を所定のサンプリング周期で
録音つまりサンプリングしたもの)を模擬的に示す。な
お、図5および図6において、黒く塗りつぶした各図形
は、同様に、複数周期波形を、その包絡線内を黒く塗り
つぶして模擬的に図示するものであり、横方向が再生時
間、縦方向が振幅を表わす。
【0044】図5は、ピッチ情報に従うピッチ制御と本
実施例に従うTSC制御との相互作用によって、元波形
(元の記憶波形)1401の全体の絶対的時間長が伸縮
される状態を例示しているものである。中段の波形図形
1402,1403は、ピッチ情報のみに従って読み出
された波形(つまり伸縮比SCRが1のときの読出波
形)を例示しているもので、波形図形1402は元波形
1401のピッチよりもピッチアップした(音高を高く
する)ときの読出波形例であり、波形図形1403は元
波形1401のピッチよりもピッチダウンした(音高を
低くする)ときの読出波形例である。ピッチアップする
というのは元波形1401を大きなストライドで読み出
しアドレスを速く進めて読むということであるから波形
の時間軸上の長さは短くなり、ピッチダウンするという
のは元波形1401を小さなストライドで読み出しアド
レスを遅く進めて読むということであるから波形の時間
軸上の長さは長くなる。故に、図5では、ピッチアップ
した波形1402の時間長さ(再生時間)は元波形14
01の時間長さ(標準の再生時間)より短くなり、ピッ
チダウンした波形1403の時間長さは元波形1401
の時間長さより長くなっている。
【0045】図5の下段の各波形図形1404,140
5,1406は、上記のようにピッチ制御された波形1
402,1403をTSC制御によって任意に伸縮する
状態を例示している。波形図形1404は、ピッチアッ
プした波形1402やピッチダウンした波形1403の
時間長さを元波形の絶対的時間長より縮めた例を示す。
波形図形1405は、波形1402や波形1403の時
間長さを元波形の絶対的時間長に戻した例を示す。波形
図形1406は、波形1402や波形1403の時間長
さを元波形の絶対的時間長より伸ばした例を示す。この
ように再生時間を伸縮する制御は、前記伸縮比SCRを
適切に与えることにより行なうことができる。
【0046】図6は、TSC制御を再生波形の全体では
なく局所的あるいは部分的に施すことにより、様々な波
形制御を行うようにした例を示す。波形1502は元波
形1501の立ち上がり部(アタック部)のみの時間長
さを縮めた例、波形1503は元波形1501の定常部
(サステイン部)のみの時間長さを縮めた例、波形15
04は元波形1501の立ち下がり部(リリース部)の
みの時間長さを縮めた例、波形1505は元波形150
1の立ち上がり部のみの時間長さを伸ばした例、波形1
506は元波形1501の定常部のみの時間長さを伸ば
した例、波形1507は元波形1501の立ち下がり部
のみの時間長さを伸ばした例を、それぞれ示す。このよ
うな部分的な時間長さの変更制御も、本実施例のTSC
制御によって、ピッチ制御とは独立に、行なうことがで
きる。例えば、伸縮比SCRを制御するための演奏情報
又は設定情報を、楽音発生中においてリアルタイムで与
え、かつリアルタイムで変更することにより、そのよう
な局所的あるいは部分的なTSC制御を行うことができ
る。
【0047】この発明で提案するTSC制御は、波形メ
モリを音源として使用する楽音発生装置において、各種
奏法若しくは楽音効果等の時間軸表現力を向上させる新
規な制御パラメータとして活用することができる。すな
わち、各種奏法若しくは楽音効果等の制御にあたって、
時間軸制御パラメータとして活用することができる。そ
のいくつかの具体例を例示すると次のようなものがあ
る。 (1)ビブラートやトレモロのような周期的変調効果の
周期を制御する。 (2)ピッチベンドのような経過的ピッチ変調効果の時
間を制御する。 (3)アタック、ディケイ等の音の立上りや立下りの時
間を制御する。 (4)楽音に“ゆらぎ”を積極的かつ自在に付与する。 (5)ループ制御(持続音形成のためのループ読出制御
又はビブラートのループ的制御を含む)の単調性を解消
する。 (6)音と音をつなげる制御(スラー等)の時間(つな
ぎ時間)を制御する。 (7)装飾音の長さを制御する。 (8)記憶された元波形を異なるピッチで読み出したと
きの発音時間長の変化を補償する。 (9)記憶された元波形を局所的あるいは部分的に時間
軸制御して読み出すことにより、該元波形から様々なバ
リエーションの音を作り出す。 (10)記憶された元波形の全体の発音時間長を任意に
可変制御して読み出すことにより、該元波形に基づく音
の再生時の発音時間長を任意に制御する(例えば、自動
演奏情報にて与えられた楽譜の音符長に合わせる)。 etc.
【0048】従って、波形発生部111の構成、特に、
波形メモリ10に記憶する波形データの内容は、このT
SC制御を活用しようとする目的又はニーズに合わせ
て、任意に構成するものとする。例えば、波形メモリ1
0においては、複数周期波形からなる楽音の波形データ
を、各音色に対応して少なくとも1種類記憶するのは勿
論のこと、各音色毎に、音高または音域に対応して、あ
るいはタッチ(ベロシティ)の強さに対応して、あるい
は上記したような様々な奏法または効果(ビブラート、
トレモロ、ピッチベンド、スラーなど)に対応して、複
数種類記憶しておく。また、必ずしも各音色毎に異なる
記憶波形データを使用しなければならないわけではな
く、異なる音色間で共通の記憶波形データを使用するよ
うにすることもできる。共通の記憶波形データを使用す
る場合、このTSC制御に従って、および適宜他の波形
制御技術を組み合わせて、波形を適宜変更することがで
きる。1つの楽音に対応して記憶する複数周期の波形デ
ータは、音の立上りから立下り(消音)までの全波形で
あってもよいし、所定のループ範囲の波形であってもよ
い。周知のように、ループ範囲の複数周期波形を記憶す
る場合は、発音時間が持続している間、該ループ範囲の
波形データを繰り返し読み出す。また、記憶する複数周
期波形は、オリジナル波形の音量エンベロープをそのま
ま具備しているものであってもよいし、あるいは、音量
エンベロープを一定レベルに規格化したものであっても
よい。勿論、トレモロのような音量エンベロープの変化
を含む効果を付与された楽音波形をオリジナル波形とし
て記憶する場合は、音量エンベロープを一定レベルに規
格化することなく、オリジナルの音量エンベロープのま
まに(もしくは適宜に加工して)波形データを記憶す
る。また、記憶する複数周期波形は、外部からサンプリ
ングした波形そのものに限らず、適宜の波形加工処理
(クロスフェード合成やフィルタ処理等)を施したもの
であってもよい。
【0049】TSC制御における前記切替制御のポイン
トでスムーズな波形の接続を容易にするために、波形の
つながりを意識した記憶波形の管理を行うとよい。その
ために、波形メモリ10に記憶する波形データをあらか
じめ複数の「区間」に分けて管理するとよい。すなわ
ち、複数周期から成る1つの音の波形を、それぞれ適当
なサイズからなる複数の「区間」に分けて管理し、この
「区間」を単位にしてTSC制御における前記切替制御
のポイントを設定する。その場合、波形メモリ10に記
憶した1つの音の複数周期の波形データをあらかじめ分
析し、複数周期のなかで位相が互いに略同じになるポイ
ント(同位相ポイント)が各区間のスタート位置として
決定する。すなわち、そのような同位相ポイントを幾つ
か見つけ、その位置で区切って複数の「区間」を定義す
る。1つの「区間」中に、複数周期の波形データが含ま
れていてよい。要するに、「区間」の境界位置は上記の
同位相ポイントであり、どの「区間」も別の「区間」に
滑らかにつなげることができるように各「区間」を定義
すればよい。上記同位相ポイントとは、波形振幅値が一
致し、その位置での波形の傾き方向が一致するポイント
である。例えば、典型的には波形振幅が負から正へゼロ
クロスする位相角0度のポイントを例示することができ
るが、その他の位相角のポイントであってもよい。勿
論、厳密な位相角に対応している必要はなく、波形が比
較的滑らかにつながるような大体の位置であればよい。
なお、各「区間」は、波形データの基本ピッチに対応し
たピッチ周期とは必ずしも一致しない。あるいは、一致
させなくてよい。また、各「区間」のサイズ(その区間
の時間的長さ)は、共通している必要はなく、適宜異な
っていてもよい。なお、各「区間」の分割位置は、波形
メモリ10の1アドレスに相当する位相角よりも細かな
分解能で決定することが好ましい。何故ならば、その方
が同位相ポイントを高精度で定義することができるから
である。
【0050】波形メモリ10に記憶する波形データを上
記のような複数の「区間」に分けて管理することによ
り、切替制御回路14(図2)から切替指示が出された
とき、実読出アドレス演算器16では、現在の実読出ア
ドレスRADがそのアドレスが属する「区間」の終わり
まで進行したとき、所要の別の「区間」の始まりのアド
レスに該実読出アドレスRADをシフトさせるように制
御し、「区間」を単位として波形切替制御を行うように
することができる。上述のように、どの「区間」も別の
「区間」に滑らかにつなげることができるように各「区
間」を定義するようにしているので、このように「区
間」単位で読出アドレスを切替制御することは、このT
SC制御に従って実読出アドレスRADをシフトした場
合に、略一致した位相で異なる「区間」の波形をつなげ
ることを可能にし、伸張又は圧縮制御によって断片的に
(区間を単位とする断片で)接続される波形のつながり
をスムーズにすることができる。
【0051】なお、「区間単位での読出アドレスの切替
制御」とは、必ずしも、切替前の波形の読出しが当該区
間の終わりまで到達することを待って、切替先の波形の
区間の始まりから読み出すことのみを意味するのではな
い。すなわち、切替前の波形の読出しが当該区間の途中
であっても、切替指示が与えられれば、切替先の波形の
区間の対応する途中位置から読み出すように切り替える
ことをも含む。その場合でも、区間の途中の相対的位置
関係が対応しているので、位相のつながりがよいことが
期待される。しかも、好ましい実施例のようにクロスフ
ェード合成を行うのであれば、そのような区間途中での
切替制御であっても、十分に好ましい滑らかな接続を実
現することができる。後述する具体例では、そのような
区間途中の位置は読出ポインタpによって指定されるの
で、どの区間についても区間途中の対応する相対的アド
レス位置を指示することができる。
【0052】図7及び図8は、上述した記憶波形データ
の作成及び事前管理の手順をフロー図にて略示したもの
である。図7は、所望の波形データを外部からサンプリ
ング(録音)して波形メモリ10内に取り込む処理の手
順を示す。まず、波形メモリ10において、必要な記憶
領域を確保する(ステップS1)。それから、入力波形
(外部からサンプリングした波形そのものや適宜の加工
処理を経由した波形)の波形データを、該確保した記憶
領域に1ファイルの波形データとして書き込む(ステッ
プS2)。そして、該記憶領域に記憶した波形データに
ついての必要な管理データ(ファイル名と記憶領域を示
すデータなど)を所定の管理データ記憶領域に書き込む
(ステップS3)。また、当該記憶領域に記憶した波形
データについての伸縮イネーブルフラグSCENとして
“0”を書き込む(ステップS4)。この伸縮イネーブ
ルフラグSCENは、本実施例に従うTSC制御を行っ
てよいか否かを示すフラグであり、“0”のときTSC
制御を行わないことを示し、“1”のときTSC制御を
行ってよいことを示す。この実施例では、上述の「区
間」管理を行った上でTSC制御を行うようにしている
ので、記憶した波形データについて上述の「区間」の定
義を行わない限りTSC制御を行うことができない。従
って、単に波形データをメモリ10に書き込んだだけの
段階では、TSC制御を行うことができないので、伸縮
イネーブルフラグSCENを“0”にセットしておく。
このフラグSCENは、例えば各ファイル毎に上記管理
データに付属して記憶しておけばよい。
【0053】図9は、波形メモリ10の記憶フォーマッ
トを、参考的に略示するものである。図9で、「波形デ
ータファイル1」と記載した部分は、1つの音について
の複数周期の波形データを記憶した領域である。また、
「波形データファイル2」と記載した部分は、別の1つ
の音についての複数周期の波形データを記憶した領域で
ある。このような記憶領域が、波形メモリ10において
多数確保され、多数の音についての複数周期波形データ
が各記憶領域に記憶される。なお、1ファイルとして記
憶する波形データは、必ずしも外部から取り込んだ1つ
の音の波形データのすべてである必要はなく、所望の部
分であってもよい。従って、1つの音を再生するため
に、1つの波形データファイルしか使用しない場合もあ
れば、複数の波形データファイルを使用する場合もあ
る。
【0054】図8の「マーク処理」とは、上記「区間」
の定義(マーキング)を行う処理である。まず、「区
間」の定義(マーキング)を行うべき所望の1ファイル
の波形データを指定し、これを波形メモリ10から読み
出して、紙又はディスプレイ等にて適宜表示する(ステ
ップS5)。次に、この表示された波形データのリスト
から、上述の「同位相ポイント」を複数選定し、これに
基づき該波形データを複数の上記「区間」に分割し、こ
うして、該波形データにつき上記各「区間」を決定する
(ステップS6)。次に、各「区間」のサイズTをそれ
ぞれ算出し、該波形データのファイル名に対応づけて波
形区間情報メモリ15(図2)に書き込む(S7)。次
に、当該波形データファイルについての伸縮イネーブル
フラグSCENを“1”にセットし、TSC制御が可能
であることを示す。なお、各「区間」のサイズTのデー
タは、波形メモリ10内の「管理データ記憶領域」に記
憶するようにしてもよい。すなわち、波形区間情報メモ
リ15の記憶内容は、図9の「管理データ記憶領域」の
中に含まれていてもよい。以下では、波形メモリ10に
記憶した各波形データファイルの先頭アドレスを示す絶
対アドレスデータや各「区間」のサイズTを示すデータ
は、波形区間情報メモリ15に記憶されているとして説
明する。前述の通り、各「区間」の分割位置は、波形メ
モリ10の1アドレスに相当する位相角よりも細かな分
解能で定義(マーキング)することが好ましい。従っ
て、各「区間」のサイズTのデータは、波形メモリ10
のアドレス数の整数値のみからなるものではなく、小数
値を含むものである。
【0055】次に、TSC制御のいくつかの応用例につ
いて具体的に説明する。 〔周期的楽音変調制御への応用〕まず、ビブラートやト
レモロのような周期的変調効果をこの実施例のTSC制
御に従って制御する具体例について説明する。この目的
のために、まず、事前処理として、弦楽器や管楽器等の
種々の自然楽器によって、所定の基準音高で(若しくは
様々な音高又は音域に対応して)、実際にビブラート奏
法やトレモロ奏法などで演奏を行い、その演奏音を録音
(サンプリング)して、上述の要領で、その波形データ
を波形メモリ10に記憶すると共に、必要な情報を区間
情報メモリ15に記憶する。なお、所定の音色(自然楽
器音色)について、所定の変調奏法(例えばビブラー
ト)無しの演奏音の波形データと、該所定変調奏法(例
えばビブラート)有りの演奏音の波形データを記憶する
とよい。また、何段階かの変調の度合い(深さ)に対応
する各演奏音の波形データをそれぞれ記憶するようにす
るとよい。なお、その場合、TSC制御の制御パラメー
タの利き具合の共通性を確保するために、変調の度合い
(深さ)のみを異ならせ、変調周期はできるだけ同程度
になるように演奏し、勿論、楽音のピッチは同一になる
ように演奏するとよい。
【0056】図10は、波形メモリ10における波形デ
ータの記憶例と、該波形データの区間分割例を模擬的に
示す図である。この例では、音の立上りの複数周期波形
からなるアタック部波形と、その後の持続部における複
数周期波形からなるループ部波形とを記憶する。そし
て、ループ部波形については、変調無しの波形(図10
(b))と、中程度の変調が付与された波形(図10
(c))と、大きな変調が付与された波形(図10
(d))とを記憶する例を示している。一方、アタック
部波形(図10(a))については、変調の有無及び度
合いに無関係に共通の波形を使用する例を示している。
なお、これは、説明のための一例にすぎず、どのような
形態で波形を用意し、記憶するようにしてもよい。例え
ば、変調の有無及び度合いに対応して、複数のアタック
部波形を用意してもよい。図において、右横向きの矢印
は、波形メモリ10におけるアドレス増加方向を示す。
図10(a)は、アタック部波形が、m個(mは任意の
自然数)の「区間」に分割されていることを示してい
る。説明の便宜上、各区間を変数jを用いて区別する。
ここで、j=0,1,2,…m―1の順序数である。A
0,A1,A2,…は、各区間のスタートアドレスであ
り、一般化してAjで表す。T0,T1,T2,…は、各
区間のサイズであり、一般化してTjで表す。このサイ
ズTjは、例えば、当該区間に含まれるアドレス数(波
形サンプル数)を示すデータであり、前述の通り整数部
のみならず小数部をも含むデータである。
【0057】図10(b),(c),(d)は、ループ
部波形が、n+2個(nは任意の自然数)の「区間」に
分割されていることを示している。この例では、変調の
度合いを変数iを用いて区別し、各区間を上記と同様に
変数jを用いて区別する。ここで、i=0,1,2の順
序数であり、i=0は変調無し(図10(b))に対応
し、i=1は中程度の変調(図10(c))に対応し、
i=2は大きな変調(図10(d))に対応する。ま
た、j=−2,−1,0,1,2,…n―1の順序数で
ある。A0―2,A00,A01,…,A1―2,A10,A11,
…,A2―2,A20,A21,…は、ループ部波形の各区間
のスタートアドレスであり、一般化してAijで表す。同
様に、ループ部波形の各区間のサイズを、一般化してT
ijで表す。このサイズTijは、上記同様、当該区間に含
まれるアドレス数(波形サンプル数)を示す。
【0058】なお、それぞれのループ部波形において、
その始まりの2区間(jが−2及び−1の区間)は、ア
タック部波形とのスムーズな接続を確保するために用意
した「接続用波形」に相当するものであり、ループ制御
つまり繰返し読出しの対象とはしない。ループ制御つま
り繰返し読出しの対象となる「ループ用波形」は、j=
0,1,2,…n―1のn個の区間からなる波形であ
る。それぞれの「接続用波形」は、アタック部波形の最
後とスムーズにつながる或る第1の波形と当該「ループ
用波形」の始まりにスムーズにつながる或る第2の波形
とをクロスフェード合成してなる加工波形であり、アタ
ック部波形の最後から「ループ用波形」の始まりに滑ら
かにつながるようにするものである。これにより、楽音
再生時において、アタック部波形からどのループ部波形
に接続する場合でも滑らかに接続することができる。な
お、ループ部波形における「ループ用波形」としては、
該当する変調効果の特徴がよく出でいる範囲をオリジナ
ル波形から選定するとよい。その場合、ループ読出しに
よる変調周期の不自然さが出ないようにするために、変
調周期の略1/2倍あるいは略整数倍の範囲を選定する
とよい。
【0059】図10の例において、基本的には、再生時
の波形読出方法は、TSC制御に関連する部分を除い
て、通常知られたループ読出技術を用いてよい。すなわ
ち、発音開始指示が与えられると、まず、アタック部波
形(図10(a))のスタートアドレスASからエンド
アドレスAEまでの波形データを一通り読み出し、次に
ループ部波形(図10(b)〜(d)のいずれか)の
「接続用波形」を読み出し、続いて該ループ部波形の
「ループ用波形」を読み出し、以後、該「ループ用波
形」を繰返し読み出す。このようなループ読出制御は、
前述の通り、実読出アドレス演算器16と仮想読出アド
レス演算器17の双方で行うようにしてもよいし、仮想
読出アドレス演算器17でのみ行うようにしてもよい。
勿論、楽音再生の途中で、変調深さがリアルタイムで変
更されたときは、ループ部波形を切り替えて読み出しを
行う。例えば、大きな変調深さで図10(d)のループ
部波形の或る区間(例えばj=1)の読み出しを行って
いるときに、中程度の変調深さに変更されたならば、図
10(c)のループ部波形の同じ区間(例えばj=1)
に切り替えて読み出しを行う。なお、特に図示していな
いが、用意された変調深さの中間の深さに制御したい場
合は、異なる変調深さの2以上の波形(例えば図10の
(c)と(d)の波形)を読み出して、それらを望みの
中間的深さに応じて補間合成することが公知であるか
ら、そのような公知技術を適宜採用してよい。
【0060】波形区間情報メモリ15における記憶情報
例について図10を参照して説明する。例えば、図10
(a)〜(d)の波形の波形データが、或る1つの音色
に対応する波形として管理される。その音色に対応する
区間情報等として、波形区間情報メモリ15には、次の
ような情報を記憶させておく。 アタック部波形の最初の区間のスタートアドレスA0
(絶対アドレス) アタック部波形の各区間毎のサイズTjをそれぞれ示す
データ(j=0,1,2,…m―1) 変調度合いの異なる各ループ部波形毎の最初の区間のス
タートアドレスA0―2,A1―2,A2―2(それぞれ絶対
アドレス) 変調度合いの異なる各ループ部波形の各区間毎のサイズ
Tijをそれぞれ示すデータ(i=0,1,2; j=−
2,−1,0,1,2,…n―1) これに限らず、波形区間情報メモリ15において、各区
間ごとのスタートアドレスの絶対アドレス値を記憶して
おくようにしてもよいが、絶対アドレス値はビット数が
多いため、データ記憶量が増してしまう。その点、サイ
ズTのデータは、ビット数が比較的少なくて済む。従っ
て、上記のように区間情報等を記憶することは、波形区
間情報メモリ15の記憶量を節約する意味で有利であ
る。
【0061】各区間のサイズTj又はTijは、隣接する
区間のスタートアドレスの差に相当するから次のような
関係にある。 Tj=Aj+1−Aj Tij=Aij+1−Aij これにより、各区間のスタートアドレスAjまたはAij
は、以下の式で算出される。 Aj=A0+ΣT ここで、ΣTはTjをj=0,1,2,…j―1の範囲で
累算したものである。 Aij=Ai―2+ΣTi ここで、ΣTiはTijをj=−2,−1,0,1,2,
…j―1の範囲で累算したものである。なお、前述の通
り、各区間のサイズTj及びTijは、波形メモリ10の
アドレスに対応する整数部のみならず、小数部をも含む
値であるから、これに基づいて演算される各区間のスタ
ートアドレスAj及びAijも、波形メモリ10のアドレ
スに対応する整数部とそれ未満の小数部とも含む値であ
る。
【0062】前述の通り、TSC制御においては、読出
アドレスのシフトは区間を単位にして行われるので、シ
フト先の区間のスタートアドレスAj又はAijは、上記
の演算式によって算出すればよい。図2のレジスタ21
には、そのような演算によって求めた現在読出中の区間
のスタートアドレスAj又はAijをストアする。なお、
本実施例のTSC制御は、ループ部波形の再生時のみな
らず、アタック部波形の再生時にも適用可能である。図
2のレジスタ21には例示的にAijのみが記載されてい
るが、アタック部波形を読み出しているときは、ここに
Ajがストアされる。図2のレジスタ19には現在読出
中の区間を示す前記変数jをストアし、レジスタ22に
は現在読出中のループ部波形の変調度合いを示す前記変
数iをストアする。クロスフェード合成を行うために、
これらのレジスタ19,21,22には、主系列及び副
系列毎の各現在読出中の区間等を示すデータj,Aij,
iがそれぞれストアされる。
【0063】図2のレジスタ20は、実読出アドレスR
ADのための読出ポインタpをストアするものである。
読出ポインタpは、各区間毎にその始まりで所定の初期
値に設定され、ピッチ情報に対応する変化レート(増分
値又は減分値)で所定のサンプリング周期毎に規則的に
順次増加(または減少であってもよい)する値を持つデ
ータ、いわば相対的なプログレシブ位相(読出アドレ
ス)データである。この読出ポインタpに対して当該区
間のスタートアドレスAj又はAijを加算することによ
り絶対アドレス値からなる実読出アドレスRADを生成
する。波形メモリ10におけるアドレスを整数部の位と
すると、周知のように、ピッチ情報は小数部を含む値で
ある。従って、読出ポインタpは小数部を含む値であ
る。従って、或る第1の区間から次の第2の区間の移行
するとき、読出ポインタpの現在値(小数部を含む)か
ら第1の区間のサイズTj又はTij(小数部を含む)を
引き算し、その差(小数部を含む)を第2の区間の読出
ポインタpの初期値として、該第2の区間のスタートア
ドレスAj又はAijとの加算に繰り入れるようにする。
これも、所望のピッチ周波数を正確に実現するための公
知の手法であるから、詳しく説明しない。この読出ポイ
ンタpは、クロスフェード合成に際にし、主系列と副系
列の双方に共通に使用される。
【0064】なお、レジスタ19,20,21,22と
同様のレジスタは仮想読出アドレス演算器17に付属し
ても設けられるが、図示を省略してある。仮想読出アド
レス演算器17ではクロスフェード用の副系列は不要で
あるから、各変数i,jと、現在の区間のスタートアド
レスAij(またはAj)は、1系列分のみストアすれ
ばよい。なお、読出ポインタpの内容は、当然、実読出
アドレス演算器16と仮想読出アドレス演算器17とは
異なってくる。すなわち、実読出アドレス演算器16の
読出ポインタpは「ピッチ情報」のみに対応する傾きで
インクリメントされるが、仮想読出アドレス演算器17
の読出ポインタpは「ピッチ情報」を伸縮比SCRで可
変制御した値に対応する傾きでインクリメントされる。
なお、上記では、変調を例にして説明したので、変数i
が変調の度合いに対応するものとしているが、これに限
らない。すなわち、変数iは、要するに、波形のバリエ
ーションを指定するものであり、任意の波形変更要因を
パラメータとしてよい。例えば、音色の明るさを示す変
数、演奏強度(ベロシティ)を示す変数、発音開始時か
らの時間経過を示す変数、あるいは単なる乱数など、任
意の波形変更要因を変数iにとって、本発明を実施する
ことができる。
【0065】次に、楽音再生時の具体的処理例について
説明する。図11は、図1の構成において、制御部10
2が実行する処理プログラムのメインルーチンを略示す
るものである。装置の電源投入に応じてメインルーチン
がスタートし、所定の初期設定処理(ステップS11)
を行なった後、鍵スイッチ処理(ステップS12)、演
奏操作子処理(ステップS13)、設定操作子処理(ス
テップS14)を含むルーチンを繰り返す。鍵スイッチ
処理では、鍵盤101Aでのキーのオン/オフに応じた
処理を行なう。この鍵スイッチ処理において、キーオン
イベント(つまり発音指示)があった場合は、図12の
キーオンイベント処理を行なう。演奏操作子処理では、
その他演奏操作子群101Bでの各演奏操作子の操作に
応じた処理を行なう。この演奏操作子処理の一例は図1
3に示されている。設定操作子処理では、設定操作子群
100での各設定操作子の操作に応じた処理を行なう。
なお、鍵盤101A及びその他演奏操作子群101Bを
直接に接続せずに、その代わりにMIDIインタフェー
ス回路を設け、キーオン/オフの演奏情報やその他の演
奏情報をMIDI情報として該MIDIインタフェース
回路を介して制御部102に取り込む構成を採用する場
合であっても、入力されたMIDI情報の内容をチェッ
クして、図11〜図13と同様の処理を採用し得る。
【0066】図12について説明すると、キーオンイベ
ントがあると、そのキーオンイベントに係る音(つまり
発音指示された音)の音高を示す情報(例えばキーコー
ドKC)をノートナンバレジスタNNにストアし、その
キーオンイベントに係る音のイニシャルタッチ強度を示
す情報(つまりベロシティデータ)をベロシティレジス
タVELにストアする(ステップS15)。次に、その
キーオンイベントに係る音の楽音発生処理を行なう音源
チャンネル(ch)として、複数のチャンネルのうちい
ずれかを選択して割り当てる処理を行ない、割り当てた
チャンネルの番号を割当チャンネルレジスタASRにス
トアする(ステップS16)。次に、割当チャンネルレ
ジスタASRにストアしたチャンネル番号によって指示
される制御レジスタ113(図1)に、現在選択されて
いる音色に対応する波形選択情報やエンベロープ情報な
ど、楽音発生に必要な各種の情報を設定する(ステップ
S17)。この波形選択情報とは、そのチャンネルの楽
音発生に使用する波形データを特定する情報であり、波
形メモリ10に記憶されている複数の波形データの中か
ら、例えば、図10の(a)〜(d)に示されたような
4つの波形を指定する情報である。また、エンベロープ
情報とは、音量等の制御用の折線状エンベロープを形成
・発生するための、各折線後との目標値データや変化レ
ート(折線の傾き)などを示す情報である。
【0067】例えば、図2に示されたキーコードKC,
音色コードTC,その他の情報INFの中の或るもの、
などが制御レジスタ113に設定される情報に相当す
る。また、割当チャンネルレジスタASRの内容に対応
して、ノートナンバレジスタNNの記憶内容に基づき当
該チャンネルに割り当てられた音の音高周波数に対応す
る「ピッチ情報」なども制御レジスタ113に設定され
る。また、変調深さを指示する変調深さ情報MLの所定
の初期値や、変調スピード(若しくは変調周期)を指示
する変調スピード情報MSの所定の初期値なども、割当
チャンネルレジスタASRの内容に対応して制御レジス
タ113に設定される。更に、エンベロープ形成用の各
目標レベルデータや変化レートデータなども、割当チャ
ンネルレジスタASRの内容に対応して制御レジスタ1
13に設定される。チャンネル別に楽音信号を発生する
ために具体的にどのような情報を使用するかは公知であ
るから、これらの情報類については特に詳しく説明しな
いが、どのような設計仕様であってもよい。このように
制御レジスタ113に設定された各チャンネル毎の各種
のデータ/情報が波形発生部111と音量制御部112
に与えられる。最後に、割当チャンネルレジスタASR
の内容に対応して発音を指示する「ノートオン」信号
を、制御レジスタ113を経由して波形発生部111と
音量制御部112に与える(ステップS18)。波形発
生部111と音量制御部112では、この「ノートオ
ン」信号に応じて波形の読出し処理と音量エンベロープ
の形成・発生処理をスタートする。波形発生部111と
音量制御部112におけるこれらの処理は各チャンネル
毎に時分割で行なわれる。
【0068】図13の演奏操作子処理では、所定のタイ
ミング毎に各演奏操作子の状態を取り込むために、ま
ず、所定の検出時刻が到来したかを判定する(ステップ
S19)。YESであれば、各演奏操作子の操作データ
(又は演奏情報)を制御レジスタ113内の対応するレ
ジスタにストアする(ステップS20)。例えば、アフ
タタッチデータをレジスタATにストアし、ホイール操
作子の操作データをレジスタMHにストアする。これら
の操作データ(又は演奏情報)を制御パラメータとして
発生楽音のリアルタイム制御がなされる。続くステップ
S21,S22は、変調制御に関連する制御パラメータ
形成処理を抜き出して示したもので、レジスタATのア
フタタッチデータに応じて変調深さ情報MLを設定し、
レジスタMHのホイールデータに応じて変調スピード情
報MSを設定する例が示されている。勿論、これらの情
報ML,MSの内容は、更にその他のファクターによっ
て可変設定されるようになっていてよい。
【0069】なお、変調スピード情報MSは、図2の変
換部18で適宜処理され、伸縮比SCRのデータを生成
する基とすることができる。例えば、変調スピード情報
MSが所定の中立値の場合、伸縮比SCRを1として、
記憶波形データを時間軸で伸縮せずにオリジナルの変調
周期(変調スピード)となるようにすることができる。
また、変調スピード情報MSが所定の中立値よりも大ま
たは小の場合は、伸縮比SCRを1以上または1以下と
して、この実施例のTSC制御に従って記憶波形データ
を時間軸上で圧縮または伸張したものを再生し、オリジ
ナルの変調周期(変調スピード)よりも速くしたり、遅
くしたりする制御を、発生楽音のピッチに影響を与えず
に、行なうことができる。なお、このTSC制御を変調
以外の目的に応用する場合は、変調スピード情報MSに
代えて、その目的に沿う制御データを変換部18に入力
するようにすればよい。図2の変換部18では、キーコ
ードKCや音色コードTCなどの制御パラメータに応じ
て、変調スピード情報MSやその他の入力情報を伸縮比
SCRのデータに変換する形態(つまり変換関数)を適
宜可変制御できる。
【0070】次に、「ノートオン」信号が与えられた後
の波形発生部111の動作について図2,図3,図4,
図10等を参照しつつ説明する。まず、音色コードTC
やキーコードKCなどの波形選択情報に従って、波形区
間情報メモリ15から所要のアタック部波形の最初の区
間のスタートアドレスA0が読み出され、これが実読出
アドレス演算器16と仮想読出アドレス演算器17に与
えられ、夫々の現区間スタートアドレスレジスタ21に
対してスタートアドレスAjとして下記のようにセット
される。 Aj←A0 また、区間の順序を示す変数jとして0が、実読出アド
レス演算器16と仮想読出アドレス演算器17の対応す
るレジスタ19にそれぞれセットされる。この変数j=
0に応じて最初の区間のサイズT0を示すデータも波形
区間情報メモリ15から読み出され、これも適宜の内部
レジスタに、 Tj←T0 としてセットされる。なお、アタック部波形の区間数m
やループ用波形の区間数nは種々の波形によって異なっ
てくるので、これらの区間数m,nを示すデータも、音
色コードTCやキーコードKCなどの波形選択情報に従
って、波形区間情報メモリ15から適宜読み出され、制
御に利用されるものとする。
【0071】「ノートオン」信号の入力に応じて、実読
出アドレス演算器16と仮想読出アドレス演算器17と
では、それぞれ、スタートアドレスA0を初期値とし
て、実読出アドレスRADと仮想読出アドレスVADの
生成演算処理を開始する。この読出アドレスの生成演算
処理の手順は、実読出アドレス演算器16も仮想読出ア
ドレス演算器17も大体同じであるので、以下、実読出
アドレス演算器16における演算処理について主に言及
することとし、仮想読出アドレス演算器17については
同様の処理であると理解されたい。なお、両者で異なる
点は、概ね、前述の通り、読出ポインタpのインクリメ
ント変化幅(変化レート)を決定するデータとして、
「ピッチ情報」のみを用いる(実読出アドレス演算器1
6)か、「ピッチ情報」を伸縮比SCRで制御した値を
用いる(仮想読出アドレス演算器17)か、の点と、ク
ロスフェード合成のための演算処理は実読出アドレス演
算器16でのみ行なう点、である。なお、実読出アドレ
ス演算器16に付属するレジスタ19,21,22は、
クロスフェードの主系列用と副系列の2つ有ることを前
述したが、特にことわりのない限り、主系列用のレジス
タの方を指しているものとする。
【0072】読出ポインタpは、「ノートオン」信号に
応じて0にリセットされ、以後、前述の通り、実読出ア
ドレス演算器16では「ピッチ情報」に応じた変化幅
(変化レート)で規則的にインクリメントされ、仮想読
出アドレス演算器17では「ピッチ情報」を伸縮比SC
Rで制御した値に応じた変化幅(変化レート)で規則的
にインクリメントされる。これによって、図3及び図4
に示したような実読出アドレスRADと仮想読出アドレ
スVADのアドレス進行の傾きの違いが生じ得る。実読
出アドレスRADは、その現区間スタートアドレスAj
に下記のように読出ポインタpを加算することにより得
られる。 RAD=Aj+p 仮想読出アドレスVADも同様であり、参考のために、
その現区間スタートアドレスをAj’で示し、その読出
ポインタをp’で示すと、下記のようになる。 VAD=Aj’+p’ なお、実読出アドレスRADと仮想読出アドレスVAD
とでは、それぞれ独立にアドレス形成処理されるので、
スタートアドレス(Aj)等も、それぞれ独立に有して
いる。このようにして実読出アドレス演算器16から発
生される実読出アドレスRADに応じて波形メモリ10
からアタック部波形のサンプルデータ(波形データW
1)が順次読み出される。前述の通り、実読出アドレス
RADは整数部と小数部とからなり、その整数部に従っ
て波形メモリ10から波形データW1が読み出され、そ
の小数部に従って補間回路11で波形データW1のサン
プル間補間がなされる。
【0073】やがて、読出ポインタpが、下記のよう
に、現区間サイズTjよりも大となると、 p>Tj 現区間の波形読出しが終了したことを示すので、次の区
間に移行するための更新処理を行なう。すなわち、下記
のように、pとTjの差を、新たな読出ポインタ値とし
てレジスタ20にセットし、現区間スタートアドレスA
jに現区間サイズTjを加算したものを次の区間のスタ
ートアドレスAjとしてレジスタ21にセットする。 p←p−Tj Aj←Aj+Tj その後、下記のように、レジスタ19の変数jを1だけ
増加する。 j←j+1 以後、同様に、読出ポインタpの値を「ピッチ情報」に
応じた変化レートでインクリメントしながら、波形デー
タW1を波形メモリ10から読出し、かつ区間を順次切
り替えてゆく。
【0074】やがて、アタック部波形の最後の区間の読
出しが終了すると、今度は、ループ部波形の読出しに移
行する。なお、読出ポインタpについては、継続性を保
つために、上記と同様に、 p←p−Tj なる更新を行なう。この場合、Tjは、アタック部波形
の最後の区間のサイズTm―1である。ループ部波形の読
出しにあたっては、まず、変調深さ情報MLを参照し
て、変調深さに対応するループ部波形を選択するための
変数iの値を確定し、レジスタ22に設定する。また、
区間の順序を示す変数jとして、ループ部波形の最初の
区間を指示する「−2」を、レジスタ19に設定する。
そして、この2つの変数i,jに応じて、波形区間情報
メモリ15から所要のループ部波形の最初の区間のスタ
ートアドレスAi―2を読み出し、現区間スタートアドレ
スレジスタ21に対してスタートアドレスAijとして下
記のようにセットする。 Aij←Ai―2 また、この2つの変数i,jに応じて、ループ部波形の
最初の区間のサイズTi―2を示すデータも波形区間情報
メモリ15から読み出され、これも適宜の内部レジスタ
に、 Tij←Ti―2 としてセットされる。
【0075】前述と同様に、実読出アドレスRADは、
その現区間スタートアドレスAijに下記のように読出ポ
インタpを加算することにより得られる。 RAD=Aij+p また、読出ポインタpは、前述と同様に、実読出アドレ
ス演算器16では「ピッチ情報」に応じた変化幅(変化
レート)で規則的にインクリメントされる。こうして、
実読出アドレスRADに従って、波形メモリ10からル
ープ部波形の波形データW1が順次読み出される。ま
た、前述と同様に、やがて、読出ポインタpが、下記の
ように、現区間サイズTijよりも大となると、 p>Tij 下記のように、pの更新処理を行なうと共に、次の区間
のスタートアドレスAijの設定と、区間指定変数jの更
新を行なう。 p←p−Tij Aij←Aij+Tij j←j+1 以後、同様に、読出ポインタpの値を「ピッチ情報」に
応じた変化レートでインクリメントしながら、波形デー
タW1を(さらにはW2も)波形メモリ10から読出
し、かつ区間を順次切り替えてゆく。
【0076】やがて、ループ部波形の最後の区間の読出
しが終了すると、今度は、「ループ用波形」(図10)
の先頭の区間に戻って読出しを行ない、以後、n個の区
間からなる「ループ用波形」を繰り返し読み出すように
なる。ループ部波形の最後の区間の読出しが終了したこ
とは、前記と同様に、 p>Tij が成立したことによって判る。ただし、このとき、j=
n−1である。「ループ用波形」の先頭の区間に戻るに
際しては、下記のように、pの更新処理を行なうと共
に、ループ用波形の先頭の区間のスタートアドレスAi0
を次の区間のスタートアドレスAijとして設定し、区間
指定変数jを0に設定する。 p←p−Tij Aij←Ai0 j←0 ここで、ループ処理に際しては、実読出アドレスRAD
と仮想読出アドレスVADが一緒にループ処理されるよ
うにするのは勿論である。そのために、例えば、実読出
アドレスRADがループ用波形の先頭の区間に戻ると
き、同時に、仮想読出アドレスVADは実読出アドレス
RADとの距離を保持したまま、ループ用波形の先頭近
傍に戻すようにするとよい。あるいは、逆に、仮想読出
アドレスVADを生成する側でループ用波形の先頭の最
後の区間が終了することを検出して、仮想読出アドレス
VADをループ用波形の先頭の区間に戻し、同時に、実
読出アドレスRADは仮想読出アドレスRADとの距離
を保持したまま、ループ用波形の先頭近傍に戻すように
してもよい。
【0077】以上のような処理に基づき、実読出アドレ
ス演算器16と仮想読出アドレス演算器17から、それ
ぞれ、実読出アドレスRADと仮想読出アドレスVAD
が発生され、波形メモリ10からの波形データの読出し
は実読出アドレスRADに従って行なわれる。前述の通
り、伸縮比SCRが1であれば、実読出アドレス演算器
16と仮想読出アドレス演算器17の読出ポインタpは
同じであるから、実読出アドレスRADと仮想読出アド
レスVADは同じである。しかし、読出波形を時間軸上
で伸縮制御するために、伸縮比SCRが制御されると、
図3又は図4に示したように、実読出アドレスRADと
仮想読出アドレスVADのアドレス進行の傾きの違いが
生じてくる。前述のとおり、このTSC制御において
は、実読出アドレスRADの傾きを所望のピッチに対応
するものに維持しつつ、実読出アドレスRADのアドレ
ス進行の傾向が仮想読出アドレスVADのアドレス進行
の傾向に概ね追従するように制御する。以下、この点に
ついて、詳しく説明する。
【0078】図2において、切替制御回路14は、実読
出アドレスRADの仮想読出アドレスVADに対する差
を絶えず監視し、両者のかい離幅(つまり差)が所定の
基準幅以上となったとき、切替指示を実読出アドレス演
算器16に与える。この判定の基準幅は、適宜に設定し
てよいが、例えば、現区間のサイズTj又はTijの何割
か(例えば1/2)の値とするとよい。そのために、現
区間のサイズTj又はTijを示すデータが切替制御回路
14に与えられる。切替制御回路14は、かい離の方
向、つまり、RADがVADよりも大きくなっているの
か(図4の例)、又は小さくなっているのか(図3の
例)、に応じてそれを区別する情報を伴って切替指示を
実読出アドレス演算器16に与える。この切替指示が与
えられたときの実読出アドレス演算器16における処理
内容は次の通りである。
【0079】実読出アドレス演算器16では、切替制御
回路14からの切替指示に応じて、実読出アドレスをシ
フトすべき区間を算出し、そのシフト先区間の順位番号
jを副系列用のレジスタ19にストアする。便宜上、こ
のシフト先区間をj(new)で表わすことにする。例え
ば、このj(new)は、現区間jに対して、+1または−
1した区間である。つまり、RADがVADよりも大き
くなる方向にかい離している場合(図4の例)は、 j(new)=j−1 とし、RADがVADよりも小さくなる方向にかい離し
ている場合(図3の例)は、 j(new)=j+1 とする。
【0080】そして、このj(new)に応じてシフト先の
区間のスタートアドレスAij(またはAj)を区間情報
メモリ15から読出し、これを副系列用のスタートアド
レスレジスタ21にストアする。この副系列用のスター
トアドレスレジスタ21にストアするスタートアドレス
Aij(またはAj)を、便宜上、Aij(new)で表わす。
読出ポインタpは主系列と同じものを使用し、副系列用
の実読出アドレスRAD2を下記のように算出する。 RAD2=Aij(new)+p こうして、切替指示が出される直前の主系列用の実読出
アドレスRADを区間単位でシフトした新たな実読出ア
ドレスが作成され、副系列用の実読出アドレスRAD2
として出力される。これは、読出ポインタpの変化に応
じて変化していく。一方、主系列用の実読出アドレスR
ADは、読出ポインタpの変化に応じた変化を下記のよ
うに継続する。 RAD=Aij+p
【0081】これによって、波形メモリ10からは、主
系列用の実読出アドレスRADに応じた波形データW1
と、副系列用の実読出アドレスRAD2に応じた波形デ
ータW2とがそれぞれ読み出され、各補間回路11,1
2を経由してクロスフェード合成部13に入力される。
クロスフェード合成部13では、切替制御回路14から
の切替指示を受けて、主副両系列の波形データW1,W
2をクロスフェード合成する。すなわち、シフト先(目
標)である副系列の波形データW2を係数0から係数1
に向かって徐々に立ち上がる係数関数(小数点以下の値
を持つ係数の関数)でスケーリングし、主系列の波形デ
ータW1を係数1から係数0に向かって徐々に立ち下が
る係数関数(小数点以下の値を持つ係数の関数)でスケ
ーリングし、両者を加算合成する。なお、この例は、図
3,図4に示した主副系列の関係と逆であるが、行なっ
ているクロスフェード合成の内容は同じである。
【0082】やがて、クロスフェード合成が終了した
ら、シフト先の実読出アドレスRAD2を主系列の実読
出アドレスRADに変更するために、レジスタ19,2
1の主副の関係を入れ替える。すなわち、 j←j(new) Aij←Aij(new) とする。そして、クロスフェード合成が終了したら、副
系列の実読出アドレスRAD2は発生を停止する。これ
によって、クロスフェード合成に際しては、波形データ
W1の系列を常に立下り特性でスケーリングし、波形デ
ータW2の系列を常に立上り特性でスケーリングするよ
うに、一定の特性で処理でき、また、切替制御回路14
に入力する実読出アドレスRADを切替る必要がないの
で、面倒がなく、便利である。しかし、これに限らず、
クロスフェード合成が終了しても、上記のような主副の
入れ替えを行なわないようにしてもよい。その場合は、
クロスフェード合成に際しては、波形データW1,W2
の各系列のスケーリングの立上り/立下り特性を交互に
変更し、かつ、切替制御回路14に入力する実読出アド
レスをRADとRAD2とで交互に切替る必要がある。
【0083】なお、クロスフェード合成が終了するまで
に、区間の切替が起こった場合は、シフト先区間j(ne
w)の読出を行っている方の系列の動作に基づいて、主副
両列の区間の切替を制御すればよい。すなわち、読出ポ
インタpがシフト先区間のサイズTij(new)より大とな
ったら、次のように、その差を読出ポインタpの新たな
値として設定する。 p←p−Tij(new) そして、主副両系列のスタートアドレスAijをそれぞ
れ、次のように、共通のサイズデータTij(new)によっ
て更新する。 Aij←Aij+Tij(new) また、j(new)とjをそれぞれインクリメントする。 j(new)←j(new)+1 j←j+1 あるいは、クロスフェードを行っている最中に区間の切
替が起こらないようにクロスフェードの開始タイミング
を制御してもよい。
【0084】なお、クロスフェード合成の最中であって
も、仮想読出アドレスVADの生成は継続して実行され
る。クロスフェード合成の最中は、切替制御回路14に
おけるRADとVADの比較処理を適宜中断するものと
してよい。なお、クロスフェード合成の際の主副系列の
関係を図3,図4に示したものと同じにするには、切替
制御回路14から切替指示が与えられたときに、レジス
タ19,21の主系列のデータj,Aijを副系列に移
し、シフト先の区間に関するデータj(new),Aij(new)
を主系列に設定するようにすればよい。その場合は、波
形データW1が目標値になるため、クロスフェード合成
に際しては、波形データW1の系列を常に立上り特性で
スケーリングし、波形データW2の系列を常に立下り特
性でスケーリングするようにする。
【0085】なお、クロスフェード合成を行なわない場
合は、切替指示が出されたとき、現区間のデータj,A
ijを、シフト先の区間を指示するデータj(new)とその
スタートアドレスAij(new)によって即座に変更するよ
うにしてよい。その場合、実読出アドレスRADが、図
3又は図4の太い実線で示すように区間単位でシフトさ
れる。その場合、現区間の波形読出しが最後のアドレス
まで到達したときに、切替制御回路14から切替指示を
出すようにしてもよく、そうすれば、現区間の最後の波
形からシフト先の区間の先頭の波形に接続する際に、確
実に同位相ポイントで滑らかに接続することができる。
【0086】以上の構成により、変調スピード情報MS
に応じて伸縮比SCRが設定され、この伸縮比SCRに
応じて傾き制御された仮想読出アドレスVADが図3又
は図4のように発生され、一方、実読出アドレスRAD
はピッチ情報に従う本来の楽音ピッチに対応する傾きを
維持しながら仮想読出アドレスVADの変化に沿うよう
に時間軸上で断続的に伸張又は圧縮制御されて図3又は
図4のように発生され、これに対応して時間軸上で伸張
又は圧縮制御された状態で波形データが波形メモリ10
から読み出されることになる。従って、波形メモリ10
に記憶されている変調効果の付与された高品質の複数周
期波形データを読み出すに際して、その再生楽音ピッチ
に影響を及ぼすことなく、変調スピード情報MSに応じ
てその変調周期(変調スピード)、つまり時間軸上の位
置、を自由に可変制御することができることとなり、高
品質な制御性に富んだ変調効果を得ることができる。な
お、楽音発生中に変調スピード情報MSがリアルタイム
で変化されれば、これに伴って伸縮比SCRも変化し、
従って、仮想読出アドレスVADの傾きも変化し、再生
読出し波形の時間軸上での伸張又は圧縮状態が時間的に
可変制御される。
【0087】なお、クロスフェード合成部13は、変調
深さを切替えたときにも動作させることができる。すな
わち、変調深さ情報MLの値が変化して、レジスタ22
の変数iを変更する必要が生じた場合、現在のiに対し
て、変更後のiをi(new)で表わし、これに対応する区
間のスタートアドレスをAi(new)jで表わすと、副系列
用のレジスタ21,22にAi(new)j,i(new)をセット
する。読出ポインタpは主系列と同じものを使用し、副
系列用の実読出アドレスRAD2を下記のように算出す
る。 RAD2=Ai(new)j+p こうして、変調深さ切替後の新しい波形を指示する実読
出アドレスが作成され、副系列用の実読出アドレスRA
D2として出力される。これは、読出ポインタpの変化
に応じて変化していく。一方、変調深さ切替前の古い波
形を指示する実読出アドレスは主系列用の実読出アドレ
スRADとして、読出ポインタpの変化に応じた変化を
下記のように継続する。 RAD=Aij+p
【0088】これによって、波形メモリ10からは、主
系列用の実読出アドレスRADに応じた波形データW1
と、副系列用の実読出アドレスRAD2に応じた波形デ
ータW2とがそれぞれ読み出され、各補間回路11,1
2を経由してクロスフェード合成部13に入力される。
クロスフェード合成部13では、変調深さ切替指示を実
読出アドレス演算器16から受けて、主副両系列の波形
データW1,W2をクロスフェード合成する。すなわ
ち、目標である副系列の波形データW2を係数0から係
数1に向かって徐々に立ち上がる係数関数(小数点以下
の値を持つ係数の関数)でスケーリングし(フェードイ
ン)、主系列の波形データW1を係数1から係数0に向
かって徐々に立ち下がる係数関数(小数点以下の値を持
つ係数の関数)でスケーリングし(フェードアウト)、
両者を加算合成する。
【0089】前述と同様に、クロスフェード合成が終了
したら、目標の実読出アドレスRAD2を主系列の実読
出アドレスRADに変更するために、レジスタ21,2
2の主副の関係を入れ替える。すなわち、 Aij←Ai(new)j i←i(new) とする。こうして、変調深さ切替前の古い波形から変調
深さ切替後の新しい波形に滑らかにクロスフェードさせ
て波形切替を行なうことができる。なお、この場合も、
クロスフェード合成が終了するまでに、区間の切替が起
こった場合は、上記と同様に、シフト先区間i(new)の
読出を行っている方の系列の動作に基づいて、主副両列
の区間の切替を制御すればよいし、あるいは、クロスフ
ェードを行っている最中に区間の切替が起こらないよう
にクロスフェードの開始タイミングを制御してもよい。
【0090】以上の説明は一例にすぎず、以下に例示す
るほか、様々な変形が可能である。図10に示したよう
な波形データを、1つの音色について複数の音域毎にそ
れぞれ記憶しておくようにしてもよい。その場合、アタ
ック部波形の全体の長さ及び各ループ部波形の全体の長
さは、各音域毎に異なっていてもよいし、共通になるよ
うにしてもよい。また、それぞれの「ループ用波形」の
長さも、各音域毎に異なっていてもよいし、共通になる
ようにしてもよい。また、「接続用波形」を特に用意し
なくてもよい。変調効果の付与された波形データとして
は、図10では2段階の深さに対応するものをそれぞれ
記憶しているが、1つのみであってもよいし、3以上で
あってもよい。また、異なる変調深さの変調効果の付与
された波形データは、ピッチ及び変調周期共にできるだ
け共通しているものを記憶しておくことが好ましいと述
べたが、これに限らない。記憶波形のピッチや変調周期
が異なっていても、例えば、実読出アドレスRAD及び
仮想読出アドレスVADの生成処理の際にそれらが共通
性を持つように、ピッチ情報と伸縮比SCR等を適宜制
御することにより、調整することができる。また、波形
メモリ10に記憶する波形は、必ずしも周期的な変調効
果が付与されたものであることを要せず、どのようなタ
イプの変調が付与された波形データを記憶しておいても
よい。変調対象の楽音要素も、周波数又は音量に限ら
ず、音色等であってもよい。
【0091】波形メモリ10において、アタック部波形
を記憶せずに、ループ部波形のみを記憶しておくように
してもよい。あるいは、楽音立下り特性を持つ立下り部
波形をも記憶しておき、例えば、キーオフ後は、ループ
部波形に代えて、この立下り部波形を読み出すことによ
り、消音されるようにしてもよい。また、1つの音に対
応するループ部波形は1つだけでなく、複数記憶してお
き、例えば第1のループ部波形を複数回繰返し読出した
後、第2のループ部波形を複数回繰返し読出す、という
ように、時間的に切り替え読み出すようにしてもよい。
また、発音開始から終了までの全波形の波形データを記
憶するようにしてもよい。さらに、波形メモリ10に記
憶した波形データの或るものを、必要に応じて、異音色
間で、あるいは同一音色の異音域間で、あるいはその他
の適宜のケース間で、共通利用するようにしてもよい。
さらに、波形メモリ10に記憶した波形データの1つの
区間に含まれる周波数対応周期数は、複数周期であって
もよいし1周期であってもよく、また、整数倍の周期数
に限らず、非整数倍の周期数であってもよい。また、各
区間の始まりを同位相ポイントに設定することに限ら
ず、2系列の波形を滑らかに接続することができるので
あれば他の任意の方法を採用してよい。さらに、波形メ
モリ10に記憶した波形データを必ずしも区間分けして
管理する必要はない。すなわち、区間分け管理していな
い波形データに関しても、この発明のTSC制御を適応
することができる。
【0092】また、上記では、読み出す区間毎に読出ポ
インタpとスタートアドレスAij(又はAj)を更新
するようにしているが、これに限らず、読出開始した区
間の読出ポインタpとスタートアドレスAij(又はA
j)を継続的に使用して複数の区間を次々と読み出して
いくようにしてもよい。その場合は、クロスフェードす
る2つの系列につき独立の読出ポインタpをそれぞれ備
える必要がある。例えば、切替制御回路14から切替指
示が出されたとき、現在、波形データの読み出しに使用
されていない方の系列に、シフト先の区間のスタートア
ドレスAij(new)(又はAj(new))と読出ポインタpの
初期値を設定し、2系列でクロスフェードを行うように
すればよい。勿論、上述した各変形例は、このTSC制
御を変調効果付き記憶波形の読出しに応用する場合に限
らず、このTSC制御を他の如何なる目的に応用する場
合においても、適宜適用し得る。
【0093】〔TSC制御における制御法の変形例〕図
14及び図15は、仮想読出アドレスVADを非線形的
特性で発生するようにした例を示す。図14は仮想読出
アドレスVADを指数関数特性で発生する例を示し、図
15は仮想読出アドレスVADを対数関数特性で発生す
る例を示す。このためには、図2の波形発生部111の
構成をそのまま使用することができるが、ただし、変換
部18の構成を適宜変形し、例えば、指数関数発生器ま
たは対数関数発生器を含んで構成し、「ノートオン」信
号に応答して発音開始時からの時間経過に従って指数関
数特性で又は対数関数特性で変化する伸縮比SCRデー
タを発生するようにすればよい。その場合も、本実施例
のTSC制御に従って、実読出アドレスRADは、図示
の通り、所望のピッチに対応する一定の傾きを維持しつ
つ、非線形的な仮想読出アドレスVADのアドレス進行
に沿うように、発生制御される。勿論、クロスフェード
合成のための副系列用実読出アドレスRAD2を適宜発
生し、クロスフェード合成するようにしてよい点は、前
述と同様である。これによって、波形メモリ10に記憶
した波形データを、時間軸上で非線形的に伸張又は圧縮
して再生読出しすることができる。
【0094】このような非線形的な仮想読出アドレスV
ADに基づくTSC制御は、上述の変調効果付与制御に
対しても適用することができるのは勿論のこと、他の用
途でこのTSC制御を応用する場合においても適用でき
る。図示した非線形的な仮想読出アドレスVADは、発
音開始時(図14,図15の時間軸の原点が発音開始時
に相当する)から或る程度の間は、ピッチ情報に従う本
来のアドレス進行に沿っているので、この間では実質的
に時間軸の伸縮が行われないことになる。従って、例え
ば、アタック部については時間軸の伸縮を行わないよう
にする制御が容易に行える。すなわち、変調効果付与制
御を例にとると、変調スピード情報MSの値がアタック
時から或る程度の値を示していたとしても、この非線形
変換処理によってアタック部については実読出アドレス
RADと仮想読出アドレスVADのかい離があまり生じ
ないようにすることができる。なお、このような非線形
的な仮想読出アドレスVADの例については、追って、
図41,図42を参照しても説明されている。
【0095】図16及び図17は、上述の各例とは反対
に、再生楽音のピッチがどんなに変更されても、全体の
楽音再生時間は楽音ピッチにかかわりなくほぼ一定に保
つ制御ができるように、このTSC制御を働かせる例を
示している。図において、一点鎖線は「ピッチ情報」に
従う本来のアドレス進行を示しているが、図16の例の
方が図17の例よりも、該アドレス進行の傾きが大き
く、楽音再生ピッチが高いことを示している。これに対
して、太い破線で示した仮想読出アドレスAVDの傾き
は両例とも同じである。図3等の例と同様に、実線は実
読出アドレスRADの進行を示し、波線はクロスフェー
ド合成のために使用される副系列用の実読出アドレスR
AD2の進行を示す。このためには、図2の波形発生部
111の構成をそのまま使用することができるが、ただ
し、仮想読出アドレス演算器17で使用する読出しポイ
ンタpを発生楽音の「ピッチ情報」に応じて変化させず
に、発生楽音のピッチにかかわりなく、一定のピッチレ
ートデータに基づく変化レートで変化させるように、そ
の構成を一部変形すればよい。つまり、仮想読出アドレ
ス演算器17には、発生楽音の「ピッチ情報」を入力せ
ずに、一定の「ピッチ情報」を入力する。勿論、実読出
アドレス演算器16で使用する読出しポインタpは発生
楽音の「ピッチ情報」に応じて変化させるものとする。
この場合も、伸縮比SCRの値に応じて仮想読出アドレ
スVADの傾きを可変制御することができ、再生波形デ
ータの時間軸上での伸縮制御が可能である。
【0096】このような楽音ピッチに連動しない仮想読
出アドレスVADを用いたTSC制御は、上述の変調効
果付与制御に対しても適用することができるのは勿論の
こと、他の用途でこのTSC制御を応用する場合におい
ても適用できる。この制御法によれば、共通の記憶波形
を異なる楽音ピッチでそれぞれ読み出す場合において、
相対的に高いピッチについては見かけ上その時間位置を
引き延ばし、相対的に低いピッチについては見かけ上そ
の時間位置を圧縮することにより、全体の再生時間をほ
ぼ同じにすることができる。例えば、変調効果付与制御
に適用した場合は、楽音ピッチが変化しても、その変調
効果の周期は変化しないように制御できる。TSC制御
による制御法のいくつかを図3,図4,図14〜図17
によって例示したが、これを部分的に又は全体的に適宜
組み合わせることにより、図5,図6に例示したような
波形の時間軸伸縮制御が行えることが理解できるであろ
う。
【0097】〔TSC制御による積極的な変調制御〕こ
の実施例に従うTSC制御によって、再生楽音波形に対
して周期的な若しくは不規則的な変調制御を積極的に施
すことができる。そのような制御は、例えば、記憶波形
のループ読出し(繰返し読出し)を行う場合に、同じル
ープ波形の繰返しによる単調さを改善するために応用す
ることができる。図18は、この目的に従い、TSC制
御による周期的な若しくは不規則的な変調制御を行う場
合の仮想読出アドレスVADと実読出アドレスRADの
進行状態を例示するものであり、他の同様の図3等と同
様の図示法を用いている。この場合、仮想読出アドレス
VADが図示のように周期的に変化され(若しくは不規
則的にゆらぐ)、これに応じて、実読出アドレスRAD
が再生楽音の「ピッチ情報」に従う本来のアドレス進行
の傾きを維持しつつ、該仮想読出アドレスVADの「ゆ
らぎ」に追従するように、データシフト若しくはジャン
プを繰り返す。このためには、図2の波形発生部111
の構成をそのまま使用することができるが、ただし、変
換部18から発生される伸縮比SCRのデータが基準の
数値「1」を中心にして周期的に若しくは不規則的に振
れるようにすればよい。そのためには、制御レジスタ1
13(図1)から変換部18に与えられる「その他情
報」として、適当な変調波形信号を用いればよい。この
変調波形信号に応じて変換部18から、その値が「1」
を中心にして周期的に若しくは不規則的に振れる伸縮比
SCRのデータが発生され、これに応じて仮想読出アド
レス演算器17から図18のように変化する仮想読出ア
ドレスVADを発生させることができる。なお、ループ
読出しの単調さを改善する目的でこの制御を利用する場
合は、図18のアドレスの原点は、ループスタートアド
レスとしてよい。つまり、楽音のアタック部について
は、図18の制御の対象としないようにしてもよい。
【0098】この例の場合、TSC制御によって再生楽
音に変調をかけるので、波形メモリ10に記憶する波形
は、特に予め変調が付加されたものでなくてもよい。図
19は、波形メモリ10に記憶する或る1つの音につい
ての複数周期波形データの一例を、図10と同様の図法
によって示す。1つの音に対応して、アタック部波形と
ループ部波形を記憶しており、前述と同様の手法で、複
数の区間に分割して管理される。この場合、アタック部
波形とループ部波形が1対1で対応しているので、図1
0の例のような「接続用波形」をループ部波形の始まり
で必ずしも具備していなくてもよい。すなわち、オリジ
ナル波形においてアタック部波形とループ部波形が元々
連続しているものであればよい。図19のループ部波形
はn個の区間からなっていて、その全部の区間がループ
する。すなわち、ループ部波形の最初の区間のスタート
アドレスA00が、ループスタートアドレスLSに相当す
る。勿論、オリジナル波形においてアタック部波形と元
々連続していない部分をループ部波形として切り出した
場合は、ループ部波形の始まり部分において図10と同
様な「接続用波形」を具備してもよい。
【0099】なお、図19の波形は、例えば、自然楽器
等で通常の奏法で演奏した音をサンプリングしたものを
用いて作成するようにしてよく、上記実施例のような変
調効果の付与された波形である必要はない。また、ルー
プ部波形については、ループ読出しの際にその終端部分
波形と先端部分波形が滑らかにつながるよう適宜に波形
加工したものを記憶するとよい。例えば、ループ用にオ
リジナル波形から切り出した波形の終端部分の波形と先
端部分の波形をクロスフェード合成して接続用の波形を
作成し、これをループ部波形の終端部分の波形として記
憶するようにしてもよい。また、アタック部波形は、オ
リジナルのアタック部の波形全部でなくてもよく、中間
をカットしてクロスフェード合成することにより長さを
短縮した波形であってもよい。勿論、図19のようなア
タック部波形とループ部波形からなる波形を、音域毎に
用意して、それぞれ波形メモリ10に記憶させるように
してもよいことは既に述べた通りである。その場合、各
音域についての記憶容量は同程度にしてもよいし、適宜
異ならせてもよい。例えば、各音域についての記憶容量
を同程度にした場合は、低音域ほど1周期のサンプル数
が多くなるので、記憶される波形データの周期数は少な
くなる。
【0100】この応用例の制御を行う場合、制御部10
2(図1)が実行する処理プログラムは、メインルーチ
ンとキーオンイベント処理については図11,図12と
同様のものを用いてよい。上記変調波形信号は、メイン
ルーチンの演奏操作子処理においてその発生処理を行う
ようにしてよく、そのための演奏操作子処理の例は図2
0に示すようなものを使用してよい。図20の演奏操作
子処理においては、所定の制御時刻毎に変調波形信号の
サンプル値を発生するために、まず、所定の制御時刻が
到来したかを判定する(ステップS30)。YESであ
れば、変調波形信号の今回のサンプル値データを発生す
る(ステップS31)。このためには、例えば所望の変
調波形を記憶したメモリの読出しアドレスを1インクリ
メントして、該読出しアドレスに従って1つのサンプル
値データを読み出すようにすればよい。この場合、メモ
リに記憶する変調波形の形状は任意であってよく、例え
ば規則的な正弦波等に限らず、不規則的なゆらぎ波形で
あってもよい。あるいは、変調波形発生用の低周波発振
器(LFO)を使用してもよい。あるいは、乱数発生器
を使用して、発生した乱数データをそのまま又は適宜加
工して変調波形信号の今回のサンプル値データとしても
よい。その場合は、このTSC制御によってランダム変
調制御が行われることになる。次のステップS32で
は、発生した変調波形信号のサンプル値に応じて伸縮比
設定情報を発生する。この伸縮比設定情報は、制御レジ
スタ113(図1)を経由して波形発生部111に入力
され、伸縮比SCRのデータとして仮想読出アドレス演
算器17(図2)に直接に又は変換部18(図2)を経
由して入力される。ステップS32を省略して、変調波
形信号のサンプル値データを変換部18に入力し、該変
調波形信号に対応する伸縮比SCRのデータを変換部1
8から発生するようにしてもよい。
【0101】仮想読出アドレス演算器17では、上記の
ように変調波形信号に対応して変化する伸縮比SCRデ
ータによって「ピッチ情報」を変調し、こうして変調し
た「ピッチ情報」に応じたレートで変化する仮想読出ア
ドレスVADを発生する。この仮想読出アドレスVAD
は例えば図18に示されたように周期的に又は不規則的
にゆらぎ変調されたものである。そして、TSC制御に
よって仮想読出アドレスVADのゆらぎに対応して断続
的に数値シフトされる実読出アドレスRADが「ピッ
チ」情報に対応する傾きを維持しつつ図18に例示する
ように実読出アドレス演算器16から発生される。これ
によって、波形メモリ10に記憶した波形データの時間
軸位置を前後方向に行きつ戻りつのジャンプをしつつ、
楽音ピッチに対応する一定レートで、読み出すことによ
り、該記憶波形の時間軸の伸張および圧縮を繰り返すよ
うな、特殊な変調制御を施した波形を再生することがで
きる。従って、このような特殊な変調制御を例えばルー
プ部波形の繰返し読出し時に適用すれば、同じループ部
波形を繰返し読出す場合であっても実際に再生読出され
る波形はTSC制御による変化をつけたものとすること
ができ、繰返しによる単調さを解消することができる。
勿論、この変調制御は、ループ部波形を読出す際の単調
さの解消を目的とする場合に限らず、他の場合にも適宜
応用しうる。例えば、発生音に対して積極的にかつ自在
に“ゆらぎ”を付与して、特殊な楽音効果を実現しよう
とする場合に応用することができる。
【0102】〔様々な特殊奏法へのTSC制御の応用〕
このTSC制御を実現する電子楽器は、鍵盤101Aや
演奏操作子群101Bを具備せずに、MIDIインタフ
ェース装置を具備し、必要な演奏情報をMIDI情報の
形で外部から受け取って、これに基づき楽音波形を発生
するタイプのものであっても勿論よい。その場合、図1
の電子楽器の構成は図21のように変更してよい。図2
1では、鍵盤101Aや演奏操作子群101Bの代わり
に、MIDIインタフェース装置101を具備してお
り、このMIDIインタフェース装置101を介して受
け取った演奏情報に基づき、制御部102および音源部
103等によってTSC制御に基づく楽音再生処理を行
う。この場合、ビブラート、トレモロ、スラー、ピッチ
ベンド等の各種奏法を指示する情報もMIDI情報にて
与えられる。そして、波形発生部111内の波形メモリ
10(図2)には、前述の通り、TSC制御に適合する
ように区間分割管理した状態で、これらの各奏法に対応
する複数周期波形データをそれぞれ記憶しておく。勿
論、鍵盤101Aや演奏操作子群101Bと共にMID
Iインタフェース装置101を具備していてもよい。
【0103】なお、現在のMIDIの標準規格では、
「各種奏法を指示する情報」をMIDI情報に含むよう
にはなっていないので、MIDIのエクスクルーシブメ
ッセージとして「各種奏法を指示する情報」を与えるよ
うにすればよい。エクスクルーシブメッセージとは、各
メーカーに固有の機能の情報を伝送するためにMIDI
規格で決められたデータである。図21の構成において
は、制御部102が実行する処理プログラムのメインル
ーチンにおいて、MIDIインタフェース装置101を
介してMIDI情報が入力されたか否かをチェックする
処理を含んでおり、MIDI情報が入力されたとき、図
22のようなMIDI入力イベント処理を実行する。
【0104】図22のMIDI入力イベント処理におい
ては、まず、入力されたMIDI情報を取り込み(ステ
ップS40)、この入力されたMIDI情報の内容が何
であるかを判定する(ステップS41)。入力されたM
IDI情報が「ノートオンイベント」であれば、ステッ
プS42に行き、奏法に応じた「ノートオン処理」を行
う。つまり、図25の割込み処理によって判定された奏
法に適した波形を使用して「ノートオン処理」を行う。
このステップS42における「ノートオン処理」の一例
は図23に示されている。入力されたMIDI情報が
「プログラムチェンジ(PC)」であれば、ステップS
43に行き、該「プログラムチェンジ」の情報の内容に
応じたプログラムチェンジ処理を行う。
【0105】また、入力されたMIDI情報が、発音中
の楽音をリアルタイム制御するデータに係るものであれ
ば、ステップS44に行き、該「リアルタイム制御デー
タ」の内容に応じた「リアルタイム制御データ受信処
理」を行う。例えば、入力されたMIDI情報が「コン
トロールチェンジ」情報であれば、このステップS44
に行き、該「コントロールチェンジ」の情報の内容に応
じた「リアルタイム制御データ受信処理」を、奏法に応
じて行う。このステップS44では、図25の割込み処
理によって判定された奏法に適した波形を使用して「リ
アルタイム制御データ受信処理」を行う。また、「コン
トロールチェンジ」情報に限らず、その他のMIDIメ
ッセージに関する処理でも、発音中の楽音をリアルタイ
ム制御する制御データを受信した場合の処理として、こ
のステップS44の処理を行なう。例えば、通常のMI
DI規格では「ピッチベンド」は「ボイスメッセージ」
に含まれているので、受信したMIDIメッセージが
「ボイスメッセージ」であっても、「ピッチベンド」の
ように楽音をリアルタイム制御する制御データを含んで
いる場合は、ステップS44の処理を行う。このステッ
プS44における「リアルタイム制御データ受信処理」
は、一例として図24に示すような処理ルーチンを使用
することができる。入力されたMIDI情報がその他の
情報であれば、ステップS45に行き、その情報に適し
たそれぞれの処理を行う。
【0106】図23に示す「ノートオン処理」は、図1
2の「キーオンイベント」処理とほぼ同様の処理からな
る。すなわち、まず、そのノートオンイベントに係る音
(つまり発音指示された音)の音高を示す情報(例えば
キーコードKC)をノートナンバレジスタNNにストア
し、そのノートオンイベントに係る音のイニシャルタッ
チ強度を示す情報(つまりベロシティデータ)をベロシ
ティレジスタVELにストアする(ステップS46)。
次に、そのノートオンイベントに係る音の楽音発生処理
を行なう音源チャンネル(ch)として、複数のチャン
ネルのうちいずれかを選択して割り当てる処理を行な
い、割り当てたチャンネルの番号を割当チャンネルレジ
スタASRにストアする(ステップS47)。次に、割
当チャンネルレジスタASRにストアしたチャンネル番
号によって指示される制御レジスタ113(図21)
に、現在選択されている音色及び奏法等に対応する波形
選択情報やエンベロープ情報など、楽音発生に必要な各
種の情報を設定する(ステップS48)。
【0107】この波形選択情報とは、前述の通り、その
チャンネルの楽音発生に使用する波形データを特定する
情報であり、波形メモリ10に記憶されている複数の波
形データの中から所要の波形を指定する情報である。ま
た、エンベロープ情報とは、前述の通り、音量等の制御
用の折線状エンベロープを形成・発生するための、各折
線後との目標値データや変化レート(折線の傾き)など
を示す情報である。例えば、図2に示されたキーコード
KC,音色コードTC,その他の情報INFの中の或る
もの、などが制御レジスタ113に設定される情報に相
当する。また、割当チャンネルレジスタASRの内容に
対応して、ノートナンバレジスタNNの記憶内容に基づ
き当該チャンネルに割り当てられた音の音高周波数に対
応する「ピッチ情報」なども制御レジスタ113に設定
される。更に、エンベロープ形成用の各目標レベルデー
タや変化レートデータなども、割当チャンネルレジスタ
ASRの内容に対応して制御レジスタ113に設定され
る。チャンネル別に楽音信号を発生するために具体的に
どのような情報を使用するかは公知であるから、これら
の情報類については特に詳しく説明しないが、どのよう
な設計仕様であってもよい。このように制御レジスタ1
13に設定された各チャンネル毎の各種のデータ/情報
が波形発生部111と音量制御部112に与えられる。
【0108】このステップS48では、図25の割込み
処理によって判定された奏法に基づき、所要の処理を行
う。すなわち、判定された奏法に対応する専用の波形を
選択するための上記波形選択情報を発生し、これを上記
のように対応するチャンネルの制御レジスタ113に設
定する。例えば、判定された奏法が特殊奏法ではない場
合は、波形選択情報として所定のノーマル波形(特殊奏
法に対応していない通常の波形)を選択するものを設定
する。また、判定された奏法がビブラート又はトレモロ
等の場合は、波形選択情報として所定の変調効果(ビブ
ラート又はトレモロ等)が付与されている波形を選択す
るものを設定する。また、判定された奏法がピッチベン
ドの場合は、波形選択情報として所定のピッチベンドが
付与されている波形を選択するものを設定する。また、
判定された奏法がスラーの場合は、波形選択情報として
所定のスラーが付与されている波形を選択するものを設
定する。また、判定された奏法がその他の奏法の場合
は、波形選択情報として該その他の奏法に対応する所要
の波形を選択するものを設定する。最後に、割当チャン
ネルレジスタASRの内容に対応して発音を指示する
「ノートオン」信号を、制御レジスタ113を経由して
波形発生部111と音量制御部112に与える(ステッ
プS49)。波形発生部111と音量制御部112で
は、この「ノートオン」信号に応じて波形の読出し処理
と音量エンベロープの発生処理をスタートする。波形発
生部111と音量制御部112におけるこれらの処理は
各チャンネル毎に時分割で行なわれる。
【0109】図24は、図22のステップS44の「リ
アルタイム制御データ受信処理」の一例を示すものであ
り、発音中の楽音をリアルタイム制御するデータを受心
した場合にこの処理が行なわれる。図24において、ま
ず、当該受信した制御データを取り込み(ステップS5
0)、当該制御データが「ピッチベンド」データである
かを調べる(ステップS51)。この「ピッチベンド」
データとは、ノートナンバレジスタNNにストアされた
楽音の指定音高からのピッチずれ量を指定するデータで
ある。ステップS51がYESであれば、ステップS5
2に行き、ノーマル波形(ピッチ変動制御が予め付与さ
れていない、通常の波形)を使用して該「ピッチベン
ド」データに基づくピッチ変動制御を行うか否かをチェ
ックする。ピッチ変動制御が予め付与されている専用の
波形(例えば、ビブラート付与済波形や、スラー付与済
波形、ピッチベンド付与済波形など)を使用する場合
は、ステップS52はNOであり、ステップS53に行
き、現在判定されている奏法(例えば、ビブラート奏
法、スラー奏法、ピッチベンド奏法など)に専用のピッ
チ変動付与済波形を選択する波形選択情報を制御レジス
タ113に設定し、発音中の楽音の波形を、「ピッチベ
ンド」データに応じた該ピッチ変動付与済波形中の任意
の位置の波形に差し替えるための処理を行う。すなわ
ち、ピッチ変動付与済波形の記憶波形データにおいては
その時間軸位置に応じて所要のピッチ変動が付与されて
いるため、現在の「ピッチベンド」データが指示するピ
ッチずれ量に応じて、ピッチ変動付与済波形の記憶波形
データにおける所要の位置(仮想読出アドレス)をリア
ルタイムで指定することにより、該ピッチずれ量に対応
するピッチ変動が付与された波形データを読み出す(つ
まり、各波形データの時間軸上で該ピッチずれ量に応じ
たピッチを有する波形部分を選択的に指定して読み出
す)ことができる。一方、ピッチ変動付与済波形を使用
せずに、ノーマル波形を読み出す場合は、ステップS5
2はYESであり、ステップS54に行く。ステップS
54では、「ピッチベンド」データが指定するピッチず
れ量に応じて、発音中の楽音のピッチ情報を変調して、
読み出しアドレスそのものをピッチ変調することによ
り、ピッチ変動制御された波形データを読み出す。
【0110】受信した制御データが「ピッチベンド」デ
ータでない場合は、ステップS51のNOからステップ
S55に行き、発音中の楽音をリアルタイム制御するた
めの、その他の処理を行う。例えば、当該制御データが
「トレモロ」用の制御データであれば、トレモロについ
ての前記ステップS52,S53,S54と同様若しく
は類似の処理を行なう。すなわち、当該「トレモロ」制
御データに対応する専用の「トレモロ付与済波形」を選
択し、かつ該「トレモロ」制御データが示すトレモロ制
御量に対応する波形データ記憶位置の波形に差し替える
等の処理を行なう。さらにその他の制御データとして
は、MIDIの「ボイスメッセージ」に含まれる「アフ
タータッチ」があり、「コントロールチェンジ」に含ま
れる「モジュレーションディプス」、「ブレスデー
タ」、「エクスプレッション」等があり、これらも制御
対象となる。なお、これらのその他制御データの受信に
基づく処理においては、それに応じて波形の差し替えを
行うようにしてもよいし、また、必ずしも波形差し替え
を行わなくてもよい。
【0111】図25に示す割込み処理によって、奏法の
判定を行い、判定した奏法に適した所要の波形が選択さ
れる。なお、この図25の割込み処理は、他の処理に比
べて低い優先度で行うようにしてよい。まず、現在まで
に入力されたMIDI情報に基づき、どのような奏法で
再生演奏を行うべきかを判定する(ステップS60)。
そして、今回判定した奏法が現在の奏法と相違している
か否かをチェックする(ステップS61)。奏法に変化
がなければ、割込み処理を終了する。奏法に変化があれ
ば、新たな奏法が何であるかを判断し(ステップS6
2)、それに応じた波形選択処理を行う(ステップS6
3〜S67)。ここで、ステップS60での判定例につ
いて説明する。入力された複数のMIDI情報の時間的
なつながりを分析することにより、どんな奏法で演奏し
ているか若しくはすべきかを、はっきりと若しくは或る
程度判別することができる。現在までに入力されたMI
DI情報とは、それまでに入力された所定期間分若しく
は所定個数分のMIDI情報である。あるいは、入力し
たMIDI情報を所定時間分遅延させて遅延後のMID
I情報で楽音制御するようにすれば、過去と未来の所定
期間分若しくは過去と未来の所定個数分のMIDI情報
から奏法を判定するようにすることもできる。
【0112】ステップS62で新たな奏法が特殊奏法で
はないと判断された場合は、ステップS63に行き、制
御レジスタ113(図21)内に設定する波形選択情報
として所定のノーマル波形(特殊奏法に対応していない
通常の波形)を選択するものに設定し、これにより、発
音中の楽音の波形を該ノーマル波形に戻すようにする。
新たな奏法がビブラート又はトレモロ等の場合はステッ
プS64に行き、波形選択情報として所定の変調効果
(ビブラート又はトレモロ等)が付与されている波形を
選択するものに設定し、これにより、発音中の楽音の波
形を該変調付与済波形に設定するようにする。新たな奏
法がピッチベンドの場合はステップS65に行き、波形
選択情報として所定のピッチベンドが付与されている波
形を選択するものに設定し、これにより、発音中の楽音
の波形を該ピッチベンド付与済波形に設定するようにす
る。新たな奏法がスラーの場合はステップS66に行
き、波形選択情報として所定のスラーが付与されている
波形を選択するものに設定し、これにより、発音中の楽
音の波形を該スラー付与済波形に設定するようにする。
新たな奏法がその他の奏法の場合はステップS67に行
き、波形選択情報として該その他の奏法の付与されてい
る所要の波形を選択するものに設定し、これにより、発
音中の楽音の波形を該その他の奏法付与済波形に設定す
るようにする。なお、図25の各ステップの処理は、各
チャンネル毎にそれぞれ行われる。
【0113】なお、ステップS61で変化有りと判定さ
れた奏法は、その後にステップS61で更に変化有りと
判定されるまで、継続される。1つの奏法の継続期間中
に入力したノートオンによる発音では、前述の図23の
ノーオン処理のステップS48の処理により、その奏法
に応じた波形データが楽音生成用の波形データとして指
定される。楽音の発音開始後、奏法に変化があった場合
は、ステップS62〜S67の処理により、発生途中の
楽音に使用する波形データを新たな奏法に応じた波形デ
ータに変更する。発音中の楽音の生成に使用する波形デ
ータを変更する場合にも、主副2系列での波形データ読
み出しとクロスフェード合成部とを使用したクロスフェ
ード合成を適用することができる。その場合、一方の系
列で過去に使用していた波形データを読み出しつつ、他
方の系列で新たな奏法に応じた波形データの読み出しを
開始し、クロスフェード合成部によりクロスフェード合
成を行えば、変更の前後の波形データを滑らかに接続す
ることができる。
【0114】次に、いくつかの奏法に対応する波形デー
タの記憶例及び再生例について説明する。図26の
(a)は或る音高Aに対応する波形データの記憶例、
(b)は或る音高Bに対応する波形データの記憶例を示
し、それぞれ、例えば図19の例と同様に、アタック部
波形とループ部波形とを有している。(c)は音高Aか
ら音高Bへのスラー変化に対応する波形、すなわち、音
高AからBにスラー変化するときの経過的な変化部分の
スラー付与済波形、の記憶例を示す。(d)は音高Aに
対応するピッチベンド変化用の波形の記憶例を示す。こ
れは、ピッチがベンドしていく部分に対応するベンド変
化波形と、ベンドされたピッチを維持する部分に対応す
るループ用波形とを含んでいる。さらに、点線で示した
ように、元のピッチに戻るときに使用する戻り専用のベ
ンド変化波形を含んでいてもよい。戻り専用のベンド変
化波形を持たない場合は、ループ用波形を読し出ながら
元のピッチに戻すベンド制御を行えばよい。
【0115】図27はスラー奏法が行われる場合の波形
読出例を示す。(a)は、まず音高Aのノートオン指示
に応じて、波形メモリ10から音高Aに対応する波形デ
ータのアタック部波形を読み出し、それからそのループ
部波形を繰返し読み出し、その最中に、音高Bにスラー
奏法で変化させる指示がなされた場合の波形読出例を示
している。このスラー指示に応じて所定のスラー変化波
形(図26(c))に切り替えて波形メモリ10から読
み出し、このスラー変化波形の読み出しが終了したら、
音高Bのループ部波形に切り替えて波形メモリ10から
読み出す。(b)は、スラー変化波形の読出しの際にT
SC制御による時間軸伸縮が無しの場合の読出例を示し
ている。(c)は、スラー変化波形の読出しの際にTS
C制御による時間軸の圧縮を行う場合の読出例を示して
いる。(d)は、スラー変化波形の読出しの際にTSC
制御による時間軸の伸張を行う場合の読出例を示してい
る。このTSC制御を採用することにより、スラー期間
でのピッチ変化の範囲(音高AからBまでのピッチ変
化)は変更せずに、その時間のみを可変制御することが
できる。
【0116】図28はピッチベンド奏法が行われる場合
の波形読出例を示す。(a)は、まず音高Aのノートオ
ン指示に応じて、波形メモリ10から音高Aに対応する
波形データのアタック部波形を読み出し、それからその
ループ部波形を繰返し読み出し、その最中に、ピッチベ
ンドが指示された場合の波形読出例を示している。この
ピッチベンド指示に応じて所定のベンド変化波形(図2
6(d))に切り替えて波形メモリ10から読み出し、
このベンド変化波形の読み出しが終了したら、ループ用
波形に切り替えて読み出し、さらに戻り用のベンド変化
波形に切り替えて読み出す。戻りベンドが終わると、元
の音高Aのループ部波形の読出しに戻る。(b)は、ピ
ッチベンド用の各波形の読出しの際にTSC制御による
時間軸伸縮が無しの場合の読出例を示している。(c)
は、ピッチベンド用の各波形の読出しの際にTSC制御
による時間軸の伸張や圧縮を適宜の範囲でそれぞれ行う
例を示している。このTSC制御を採用することによ
り、ピッチベンド期間でのピッチ変化の範囲(音高Aか
ら所定ピッチずれまでのピッチ変化)は変更せずに、そ
の時間のみを可変制御することができる。
【0117】〔仮想読出アドレスによるTSC制御の変
形例〕図2において、仮想読出アドレス演算器17から
は仮想読出アドレスVADそのものを出力せずに、現在
の仮想読出アドレスVADの属する区間j(これをj’
で表す)を示すデータを出力するようにし、切替制御回
路14においては、実読出アドレスRADと仮想読出ア
ドレスVADとを比較することに代えて、現在の実読出
アドレスRADの区間jと仮想読出アドレスVADの区
間j’とを比較し、この比較結果に基づき切替指示を発
生するようにしてもよい。つまり、切替制御回路14に
おいてはアドレス単位ではなく区間単位での比較を行
う。この場合は、実読出区間jと仮想読出区間j’の差
つまりかい離幅が所定区間数を越えた場合、切替指示を
出すようにする。例えば、1区間以上の差つまりかい離
が生じた場合は切替指示を出すようにする。例えば、図
3のように仮想読出アドレスVADの傾きが実読出アド
レスRADの傾きよりも大の場合は、J’≧j+1とな
ったとき、切替指示を実読出アドレス演算器16に与
え、実読出アドレス演算器16では、この切替指示に基
づいて、区間jを次の区間に切替るときに、j←j+
1、と1増加する更新を行うのではなく、仮想読出区間
j’を用いて j←j’+1 とセットし、実読出区間jをより進める方向にシフト
(ジャンプ)するように制御する。同様に、図4のよう
に仮想読出アドレスVADの傾きが実読出アドレスRA
Dの傾きよりも小の場合は、J’≦j−1となったと
き、切替指示を実読出アドレス演算器16に与え、実読
出アドレス演算器16では、この切替指示に基づいて、
区間jを次の区間に切替るときに、j←j−1、と1減
少する更新を行うのではなく、仮想読出区間j’を用い
て j←j’−1 とセットし、実読出区間jを遅らせる方向にシフト(ジ
ャンプ)するように制御する。勿論、これに限らず、そ
の他の制御の仕方も可能である。
【0118】〔TSC制御の他の実施例〕この発明に係
るTSC制御は、上述したような仮想読出アドレスを使
用する方式に限らず、以下述べるように、パターン化し
たいくつかのクロスフェード法を「標準の再生時間に対
する伸縮比」に応じて選択的に組合せて使用する方式に
よっても実施できる。以下で説明する実施例において、
電子楽器の全体構成例は図1又は図21のどちらの構成
を用いてもよい。波形発生部111は、図29のような
概略構成のものに変更する。図29において、波形発生
部111は、波形メモリ読み出し部(タイム伸縮機能付
き)201、およびCRate発生部202を備えてい
る。波形発生部111は、制御レジスタ113(図1又
は図21)経由で、波形発生指示である「ノートオン」
信号と発生すべき楽音の音高を示す「ピッチ情報」を入
力するとともに、その他データとして音色情報など(図
2の例と同様に、KC,TC,INFなど)を入力し、
それらの入力した情報に基づいて波形データを発生す
る。
【0119】波形発生部111には、「標準の再生時間
に対する伸縮比」を指示するパラメータが入力する。こ
のパラメータは「標準の再生時間」に対する伸縮比を指
定するが、実際にタイム伸縮機能を実現する波形メモリ
読み出し部201では、指定されたピッチで読み出した
場合の時間長さ(所望ピッチに応じて図5の波形140
2,1403のように時間長さが変化する)を基準とし
た伸縮比(時間圧縮比)CRateに基づいてタイム伸
縮制御を行なうので、パラメータを変換するためのCR
ate発生部202が設けられている。すなわち、CR
ate発生部202は、「ピッチ」および「標準の再生
時間に対する伸縮比」を入力し、ピッチに応じて変化す
る再生時間を基準とした時間圧縮比CRateを算出し
て波形メモリ読み出し部201に出力する。
【0120】図30は、図29の波形メモリ読み出し部
201の詳細を示す。波形メモリ読み出し部201を説
明する前に、本実施の形態におけるタイム伸縮機能つま
りTSC制御の基本概念を説明する。まず、上述の時間
圧縮比CRateについて説明する。時間圧縮比CRa
teは、タイム伸縮機能を実現するために新たに導入し
たパラメータである。時間圧縮比CRateは、「出力
波形の再生時間(時間長さ)を、元の波形(ピッチ制御
されたもの)の再生時間(時間長さ)の1/CRate
とすること」を意味するパラメータである。もちろん、
CRateは一定値とは限らず、波形読み出しの途中
(生成する楽音の立ち上がりから立ち下がりの途中)で
もリアルタイムに変更可能であるので、局所的に見て上
記の意味があるということである。出力波形は、CRa
te=1.0なら等倍、CRate>1.0なら圧縮、
CRate<1.0なら伸張されることになる。
【0121】次に、波形メモリ読み出し部201内の波
形メモリ301(図30)に記憶されている波形データ
について説明する。この波形メモリ301は、前述した
図2の波形メモリ10と同様に、各種の楽音特性に対応
してそれぞれ複数周期からなる波形データを記憶するも
のであり、記憶された各波形データはあらかじめ複数の
「区間」に分割して管理されるようになっている。前述
と同様に、複数周期の波形データはあらかじめ分析さ
れ、複数周期のなかで位相が互いに同じになるポイント
(同位相ポイント)が各区間のスタート位置として決定
されている。逆に言えば、そのような同位相ポイントを
幾つか見つけ、その位置で区切って複数の「区間」を定
義する。1つの「区間」中に、波形データの複数の周期
が含まれていてよい。要するに、「区間」の境界位置は
上記の同位相ポイントであり、どの「区間」も別の「区
間」に滑らかにつなげることができるように「区間」を
定義すればよい。上記同位相ポイントとは、波形振幅値
が一致し、その位置での傾きが一致するポイントであ
る。なお、区間は、波形データの基本ピッチに対応した
ピッチ周期とは必ずしも一致しない。あるいは、一致さ
せなくてよい。
【0122】具体的に説明する。上記同位相ポイントの
アドレスをAi(整数部(Integer)+小数部(Fraction)か
らなる)とする。iは区間の番号、Aiはi番目の区間
のスタートポイントのアドレスである。後述するインデ
ックスカウントICは、この区間の番号iをカウントし
ている。各ポイントは互いに位相が同じであるため、1
つの区間を終わりのポイントまで読み出し、引き続きそ
れとは別のポイントから始まる任意の区間の読み出しを
行なったとしても、波形が比較的滑らかにつながる。こ
の発明の実施の形態では、後述するように、2つの区間
をつなげるのに、さらにクロスフェードを行なうので、
波形間の接続が大変スムーズである。
【0123】さらに、波形メモリには、区間のサイズデ
ータとして、Ti=Ai+1−Aiを記憶する。すなわち、
i+1番目の区間のスタートポイントから、i番目の区
間のスタートポイントを減算した値がTiである。この
ようにしてサイズを記憶すれば、Aiをそのまま記憶す
るのに比べ、記憶容量を削減することができる。区間の
サイズは、上述のTiで表されるから、当然にサンプル
数単位(ただし、整数部+小数部で表される)で示され
ることになる。各区間のスタート位置のアドレスAi
は、以下の式で算出される。 Ai=A0+ΣT ここで、A0は波形データのスタートアドレス(0番目
の区間のスタートポイントのアドレス)、ΣTはTjを
j=0,1,2,…,i―1について累算したものであ
る。
【0124】この実施例におけるタイム伸縮制御すなわ
ちTSC制御の基本を簡単に説明する。この実施例にお
いて、タイム伸縮の処理の時間的な単位となるのは「再
生周期」である。この「再生周期」とは、1区間につい
ての再生処理に要する時間に相当する概念である。「再
生周期」は、波形メモリ上の波形データのタイム伸縮処
理の時間単位長であり、サンプル数では表されない。タ
イム伸縮制御の基本は、時間圧縮比CRateの値によ
る理想的な読み出しポイントと実際の読み出しポイント
の差分を演算し、その差分量にしたがい、再生周期ごと
に所定の処理を実行し、逐次追従させるということであ
る。所定の処理とは、集約すると、再生時間を伸ばすた
めのストレッチ処理(以下、S処理と呼ぶ)、再生時間
をそのままとするノーマル処理(以下、N処理と呼
ぶ)、再生時間を圧縮するコンプレス処理(以下、C処
理と呼ぶ)のうちのどれかを行なうかを決定し、各再生
周期でその決定した処理を行なっていくものである。こ
のようなタイム伸縮制御(以下、TSC制御と呼ぶ)の
詳細は後述する。なお、周期性の無い部分のデータにつ
いてはTSC制御を無効化するのが有効であるので、T
SC制御のイネーブル(Enable)/ディスエーブ
ル(Disable)をコントロールできるようにする
とよい。
【0125】図31は、この実施例に係るTSC制御の
基本概念を説明するための図である。411は波形メモ
リに記憶されている波形データの一例を示し、412〜
416はその読み出し例を示す。波形データ411は、
A〜Fの6つの区間からなる。縦に何本か引かれた点線
401は、所定のピッチで再生したとした場合の各再生
周期の区切れ目を示す。したがって、横軸は、サンプル
長ではなく、伸縮処理の時間経過を示ているが、しか
し、絶対的な時間を示すものではない。波形データ41
1の各区間A〜Fの下に付された数字は、所定の再生順
序を示す番号である。なお図31では、各再生周期の区
切れ目を示す点線401が等間隔に並べてあるが、これ
は説明の便宜のためであり、各再生周期の時間長さは各
区間のサイズに応じて種々に相違し得る。また、各読出
し例412〜416についても、便宜上、各再生周期が
等間隔であるかのように図示しているが、それぞれの実
際の時間長は互いに(横軸方向にも、たて軸方向にも)
相違し得る。
【0126】412〜416の各ブロックは、時間軸伸
縮の処理の単位であり、各ブロック(再生周期)ごとに
S処理、N処理、C処理の何れかを実行する。412〜
416は、6区間の波形データ411を時間圧縮比CR
ateに応じて圧縮伸張した例である。図31の各再生
周期では、波形メモリ301に記憶されている波形デー
タ(例えば、6区間の波形データ411)から、クロス
フェード合成のために2系列につきそれぞれ所定の区間
の波形を読み出すようにしている。2系列でそれぞれ読
み出す区間は、同じであってもよいし、異なっていても
よい。このように、本例では、各再生周期において、S
処理、N処理、C処理の何れが実行されるかにかかわら
ず絶えず2系列(以下、第1系列および第2系列と呼
ぶ)のクロスフェードにより出力波形を生成する。圧縮
伸張した各波形412〜416の各再生周期を示す矩形
図形中に右上がりの対角線を記載し、その対角線で分け
られた3角形の領域に区間を示すA〜Fの記号を記載し
たが、これはその2つの区間を用いて2系列のクロスフ
ェードを行なうことを示している。特に、対角線の上側
3角形内に記載した区間(第1系列)はフェードアウト
し、対角線の下側3角形内に記載した区間(第2系列)
はフェードインすることを示す。また、各周期の矩形の
上側に記載した「S」、「N」、「C」の記号は、その
周期でS処理、N処理、C処理を、それぞれ行なうこと
を示す。第1系列のフェードアウト、第2系列のフェー
ドインによるクロスフェードは、各再生周期の中で終了
する。
【0127】読出し例412はCRate=2.0の圧
縮の場合である。第1周期目は、圧縮のためのC処理、
すなわち第1系列で区間Aを読み出し、第2系列で区間
Bを読み出し、これらをクロスフェードして出力波形を
生成する処理を行なう。第2周期目は、第1系列で区間
Cを読み出し、第2系列で区間Dを読み出し、これらを
クロスフェードして出力波形を生成するC処理を行な
う。第3周期目は、第1系列で区間Eを読み出し、第2
系列で区間Fを読み出し、これらをクロスフェードして
出力波形を生成するC処理を行なう。なお、クロスフェ
ードする再生周期の時間長さは、第2系列の区間が読み
出される時間(つまりフェードイン側の読出し時間)と
している。したがって、読出し例412では、区間B,
D,Fの波形データが所望のピッチで読み出される時間
長さがそれぞれの再生周期の長さになる。従って、例え
ば各区間は同程度の長さになるように設定されていると
すると、或る所望のピッチで読み出される生成出力波形
412の再生時間は、同じピッチで元の波形(記憶波
形)411を時間軸伸縮制御せずに読み出したときの再
生時間の、ほぼ1/CRate、すなわちほぼ1/2倍
になる。なお、上記読出し例412、および後述の読出
し例413〜416の例では、直前の再生周期で第2系
列によって読み出されてフェードインした区間に続く区
間が、次の再生周期で第1系列によって読み出されてフ
ェードアウトするようになっている。例えば、読出し例
412の第1周期目で、第2系列により区間Bがフェー
ドインし、次の第2周期目で、それに続く区間Cが第1
系列によりフェードアウトしている。これにより、区間
BからCへと、滑らかな波形接続が実現される。
【0128】読出し例413はCRate=1.5の圧
縮の場合である。第1周期目は、元の再生時間をそのま
まとするN処理、すなわち第1系列で区間Aを読み出
し、第2系列でも同じ区間Aを読み出し、これらをクロ
スフェードして出力波形を生成する処理を行なう。第2
周期目は、第1系列で区間Bを読み出し、第2系列で区
間Cを読み出し、これらをクロスフェードして出力波形
を生成するC処理を行なう。第3周期目は区間Dを用い
たN処理、第4周期目は区間E,Fを用いたC処理を行
なう。以上により、或る所望のピッチで読み出される生
成出力波形413の再生時間は、同じピッチで元の波形
(記憶波形)411を時間軸伸縮制御せずに読み出した
ときの再生時間のほぼ1/CRate、すなわちほぼ1
/1.5=2/3倍になる。
【0129】読出し例414はCRate=1.0の等
倍の場合である。第1周期目〜第6周期目のそれぞれで
区間A〜Fを用いたN処理を行なう。これにより、或る
所望のピッチで読み出される生成出力波形414の再生
時間は、同じピッチで元の波形(記憶波形)411を時
間軸伸縮制御せずに読み出したときの再生時間の1/C
Rate、すなわち1/1=等倍になる。このように、
CRate=1.0の等倍の場合は、時間軸伸縮制御し
ない場合に相当しているが、その場合であって、読出し
例414に示すように同じ区間同士でクロスフェード合
成処理を行なうようにしていることにより、常にクロス
フェード合成処理を行なうようにシステムを構成するこ
とができ、クロスフェード合成処理を行なうべきか否か
の切替制御を行なう必要がなくなる、という利点があ
る。
【0130】読出し例415はCRate=0.75の
伸張の場合である。第1,2,4,5,6,8周期目
は、それぞれ、区間A,B,C,D,E,Fを用いたN
処理を行なう。第3周期目は、伸張のためのS処理、す
なわち第1系列で区間Cを読み出し、第2系列で区間B
を読み出し、これらをクロスフェードして出力波形を生
成する処理を行なう。第7周期目は、第1系列で区間F
を読み出し、第2系列で区間Eを読み出し、これらをク
ロスフェードして出力波形を生成するS処理を行なう。
以上により、或る所望のピッチで読み出される生成出力
波形415の再生時間は、同じピッチで元の波形(記憶
波形)411を時間軸伸縮制御せずに読み出したときの
再生時間のほぼ1/CRate、すなわちほぼ1/0.
75=1.333倍になる。読出し例416はCRat
e=0.5の伸張の場合である。第1,3,5,7,
9,11周期目では、それぞれ、区間A,B,C,D,
E,Fを用いたN処理を行なう。第2,4,6,8,1
0,12周期目では、それぞれ、区間BとA,CとB,
DとC,EとD,FとE,GとF(GはFの次に続く周
期とする)を用いたS処理を行なう。これにより、或る
所望のピッチで読み出される生成出力波形416の再生
時間は、同じピッチで元の波形(記憶波形)411を時
間軸伸縮制御せずに読み出したときの再生時間の1/C
Rate、すなわち1/0.5=2倍になる。
【0131】図32は、図31における各再生周期の処
理を詳細に説明するための図である。501は、波形メ
モリ301に格納されている3区間分の連続する区間
Z,A,Bを示す。区間Z,A,Bのサイズは、それぞ
れ、TZ,TA,TBとする。いま、第1系列目で読み出
される区間をAとする。このとき第2系列で読み出す区
間は、S処理、N処理、およびC処理の各場合で異な
る。例511は1つの再生周期で伸張のためのS処理を
行なう場合の例を示す。例511に示すように、第1系
列で区間Aを読み出すとすると、第2系列ではその区間
Aの1つ前の区間Zを読み出すことになる。すなわち、
例521に示すように、第1系列では矢印531のよう
に区間Aを読み出し、第2系列では矢印532のように
区間Zを読み出し、クロスフェードする。例512は1
つの再生周期で再生時間を変えないN処理を行なう場合
の例を示す。例512に示すように、第1系列で区間A
を読み出すとすると、第2系列でも同じ区間Aを読み出
すことになる。すなわち、例522に示すように、第1
系列および第2系列ともに矢印541のように区間Aを
読み出し、クロスフェードする。例513は1つの再生
周期で圧縮のためのC処理を行なう場合の例を示す。例
513に示すように、第1系列で区間Aを読み出すとす
ると、第2系列ではその区間Aの次の区間Bを読み出す
ことになる。すなわち、例523に示すように、第1系
列では矢印551のように区間Aを読み出し、第2系列
では矢印552のように区間Bを読み出し、クロスフェ
ードする。
【0132】上述の2つの系列では、所定のサンプリン
グ周波数に基づいて、パラメータで指定されたピッチに
対応する「ピッチ情報」(Fナンバ)を累算したアドレ
スで読み出しを行なう。したがって、発生する波形のピ
ッチは指定されたとおりのものとなる。一方、図29と
図31で概要を説明したように、周期単位のタイムスト
レッチ制御処理によりその周期でS処理、N処理、およ
びC処理の何れかを選択して(選択の仕方は後述する)
実行することにより、図31の例412〜416に例示
したように再生時間を伸縮できる。図32において、r
pは、各再生周期において、第1系列目で読み出す区間
の先頭アドレスを示す読み出しポインタ(図34で詳述
する)である。rp_nowは図32の各処理を行なう再生
周期における現rpの値を表し、rp_nextは該再生周
期の次の再生周期におけるrpの値を表す。各再生周期
の終了時点で第2系列目が読み出しているアドレスが、
その次の再生周期における第1系列目の読み出す区間の
先頭アドレスになるようにしている。これは再生周期が
切り替わるところでは、連続する区間に移行するように
するためである。例えば、図31の伸縮例412〜41
6の各再生周期が切り替わる部分を参照すると分かるよ
うに、周期の切り替わるところでは区間がA→B、B→
C、…というように連続する区間に切り替わるようにな
っている。図32に示すように、現在の再生周期のrp
の値から、次の再生周期のrpの値が求められる。すな
わち、S処理の場合は現rpの値がrp_nextとなり、
N処理の場合は現rpにTAを加算したrp+TAがrp
_nextとなり、C処理の場合は現rpにTA+TBを加算
したrp+TA+TBがrp_nextとなる。
【0133】図33は、アタック部およびループ部を有
する波形データの例である。波形データ601は、5つ
の区間A〜Eからなる。インデックスカウント(Ind
exCount)は区間の波形メモリ上の位置(順番)
を示す。サイクルレングス(Cycle Lengt
h)は各区間のサイズTA〜TEを示す。アタック部とル
ープ部との境界が区間の切れ目になるようにするものと
する。波形データ601では、波形先頭位置からTLpst
の位置までの区間、すなわち区間A,Bが、アタック部
である。また、TLpstの位置がループ部のスタートポイ
ントであり、この位置からTLpendの位置までの区間、
すなわち区間C,D,Eが、ループ部である。このよう
なアタック部およびループ部を有する波形データの場合
は、例602に示すような波形データであるものとして
処理する。すなわち、ループ部のエンドポイントまで読
み出したら、次には再びループ部のスタートポイントに
戻ってループ部読み出しを繰り返す。なお、処理の基本
が1再生周期単位であるため、ループ部のスタートポイ
ントおよびエンドポイントは制限が必要である。すなわ
ち、通常の波形メモリ音源のループ部と同じく、ループ
エンドポイント(区間Eの最後アドレス)の補間サンプ
ル値と、ループスタートポイント(区間Cの先頭アドレ
ス)の補間サンプル値が同じ値になるように、両ポイン
トの位置を設定する必要がある。
【0134】次に図30を参照して、波形メモリ読み出
し部201の構成および動作(特にTSC制御動作)を
詳しく説明する。図30において、波形メモリ読み出し
部201は、波形メモリ301、演算部302、サイク
ル内カウンタ303、インデックスカウンタ304、区
間サイズ格納レジスタ305,306、累積差分格納レ
ジスタ307、読み出しレジスタ(以下、rpレジスタ
と呼ぶ)308、ピッチ補間部309,310、乗算器
311,312、補正部313、および加算器314を
備えている。以下、各構成要素について説明する。波形
メモリ301は、上述したように、複数の区間に分割し
て管理される複数周期の波形データを、複数の音に対応
して記憶するとともに、各波形データ毎にその各区間の
サイズ情報Tを記憶している。波形データは、演算部3
02からのアドレスで2系列独立に読み出される。区間
サイズ情報T(Integer(整数部)+Fract
ion(小数部)からなる)は、インデックスカウンタ
304の値であるインデックスカウントICをアドレス
として読み出される。
【0135】インデックスカウンタ304が保持するイ
ンデックスカウントICは、現在読み出している第1系
列の区間が何番目の区間であるかを示す順序数番号であ
る。このインデックスカウントICを読み出しアドレス
(相対アドレス)として、波形メモリ301から第1系
列の区間のサイズ情報Tを読み出し、T1レジスタ30
5に記憶させる。T1レジスタ305は、第1系列で読
み出す区間のサイズ情報Tを記憶する。同時に、T2レ
ジスタ306に、第2系列目で読み出されている区間の
サイズ情報Tを記憶する。第1系列の現区間の番号であ
るインデックスカウントICと、現在実行しているのが
S処理、N処理、C処理の何れであるかに基づいて、T
2レジスタ306に記憶すべき区間サイズ情報が、第1
系列で読み出すべき現区間の前の区間のサイズ情報か、
第1系列で読み出すべき現区間のサイズ情報か、第1系
列で読み出すべき現区間の次の区間の区間サイズ情報か
が、分かる。なお、インデックスカウントICを相対ア
ドレスにしたのは、複数の複数周期波形データを記憶す
る場合に対応するためである。すなわち、相対アドレス
としておけば、ベースアドレスを変えることにより、複
数組の区間サイズデータから読み出す波形データに対応
する組を選択し、インデックスカウントICに基づいて
その中から各区間サイズデータを読み出すことができ
る。
【0136】演算部302は、波形発生を開始するとき
インデックスカウンタ304の値を0に初期化する。そ
の後、1区間の再生周期が終わるごとに演算部302か
らトリガ信号(区間更新情報)が出力され、インデック
スカウンタ304はこのトリガ信号を受けて更新され
る。具体的には、いま終わった再生周期で行なったのが
S処理のときは、いま終わった再生周期の第1系列で読
み出していた区間を次の再生周期の第1系列で読み出す
ことになるはずだから、インデックスカウンタ304の
値はそのままとする。いま終わった再生周期で行なった
のがN処理のときは、いま終わった再生周期の第1系列
で読み出していた区間の次の区間を次の再生周期の第1
系列で読み出すことになるはずだから、インデックスカ
ウンタ304の値を1カウントアップする。いま終わっ
た再生周期で行なったのがC処理のときは、いま終わっ
た再生周期の第1系列で読み出していた区間の次の次の
区間を次の再生周期の第1系列で読み出すことになるは
ずだから、インデックスカウンタ304の値を2カウン
トアップする。
【0137】rpレジスタ308は、図32で簡単に説
明したように、波形メモリ301からの波形データの2
系列読み出しのうち、第1系列目の読み出しが行なわれ
ている区間の先頭アドレスrpを保持するレジスタであ
る。サイクル内カウンタ303は、波形発生部111の
出力する波形データのサンプリング周期ごとに、再生ピ
ッチ情報Δph(Fナンバ)を累算するカウンタであ
る。サイクル内カウンタ303は、rpポインタ308
の指す波形データの区間の中の、各波形サンプル値を読
み出すための位相CC(サイクルカウント:整数部+小
数部からなる)を発生する。サイクル内カウンタ303
で発生したサイクルカウントCCは演算部302に入力
する。演算部302は、先頭アドレスrpとサイクルカ
ウントCCとを用いて、第1および第2系列の読み出し
アドレスを算出し波形メモリ301に出力する。具体的
には、(rp+CC)が第1系列目の読み出しアドレス
となり、(rp+CC+OFST)が第2系列目の読み
出しアドレスとなる。OFSTは、現在の再生周期にお
いて実行しているのがS処理であるときは、第1系列で
読み出している現区間の前の区間を第2系列で読み出す
ということであるから、OFST=−「第1系列で読み
出している現区間の前の区間の区間サイズ」(この値は
T2レジスタ306に読み出されている)となる。いま
実行しているのがN処理であるときは、第1系列で読み
出している現区間を第2系列でも読み出すということで
あるから、OFST=0となる。いま実行しているのが
C処理であるときは、第1系列で読み出している現区間
の次の区間を第2系列で読み出すということであるか
ら、OFST=「第1系列で読み出している現区間のサ
イズ」(この値はT1レジスタ306に読み出されてい
る)となる。
【0138】また、演算部302は、サイクルカウント
(Cycle Count)CCとサイクルレングス
(Cycle Length)CLとを、Cycle
Count>Cycle Lengthの条件にて常時
比較している。比較に用いるサイクルレングスCLは、
現処理がS処理なら第1系列で読み出している現区間の
前の区間のサイズ、現処理がN処理なら第1系列で読み
出している現区間のサイズ、現処理がC処理なら第1系
列で読み出している現区間の次の区間のサイズである。
すなわち、サイクルレングスCLは第2系列で読み出し
ている区間の区間サイズと同じであり、該区間サイズを
基準として現在の再生周期の終わりを判別するようにな
っている(CCがCLを超えたときが現在の再生周期の
終わりである)。現在の再生周期の終わりに至ったと
き、演算部302からトリガ信号(周期更新情報)が出
力され、インデックスカウンタ304はこのトリガ信号
を受けて更新される。すなわち、サイクルカウントCC
の累算値は、第2系列目で読み出されている区間の区間
サイズ情報Tを越えたら(CC−T)の値に戻されると
ともに、同タイミングで演算部302は前記トリガ信号
を発生する。
【0139】第1系列目の読み出しアドレス(rp+C
C)、第2系列目の読み出しアドレス(rp+CC+O
FST)とも、ピッチ非同期(すなわち、サンプリング
周波数が一定)動作で正確な楽音ピッチを実現するた
め、アドレス小数部に応じたサンプル間補間をする必要
がある。そのため、図2の補間回路11,12と同様
に、図30でも、各系列ごとにピッチ補間部309,3
10が設けられており、上記第1系列目、第2系列目で
異なる小数部に応じて独立に直線補間が行なわれる。乗
算器311,312、補正部313、および加算器31
4は、クロスフェード合成回路を構成している。このク
ロスフェード合成回路は、各再生周期で、S処理、N処
理、C処理の何れが行なわれるかにかかわらず、第1系
列目の読み出し波形データから第2系列目の読み出し波
形データへのクロスフェードを実行する。演算部302
は、第2系列目の重み係数(サイクルカウント値CC÷
サイクルレングスCL)を発生し、補正部313は、該
係数の補数(1−CC÷CL)を発生する。クロスフェ
ードは、第2系列目で読み出される区間のサイズT2の
時間をかけて行なう。
【0140】差分(dif)レジスタ307は、理想ポ
イント(仮想アドレス)と実ポイント(実アドレス)と
の累積差分を記憶するレジスタである。理想ポイントと
は、時間圧縮情報CRateにしたがって再生時間の伸
縮を行なったとしたときの読み出しポインタの値に相当
する。ある再生周期の処理が終わった時点で、その再生
周期における理想ポイントの進み分は、基準となる第2
系列の区間サイズT2に時間圧縮比CRateを乗算し
た値(T2×CRate)となる。一方、ある再生周期
の処理が終わった時点で、その再生周期における実アド
レスの進み分(すなわちrpレジスタの進み分)は、い
ま終わったのがS処理なら0、N処理ならT1、C処理
ならT1+T2となる。この「実アドレスの進み分」
は、再生周期の終わりの時点における第2系列目の読み
出しアドレスとrpとの差分である。なぜなら、該第2
系列目のアドレスが、次の再生周期におけるrpとなる
からである。当該再生周期における「理想ポイント(仮
想アドレス)の進み分」と「実アドレスの進み分」との
差分をΔdifとすると、いま終わった処理がS処理
か、N処理か、C処理かの別で、以下のようにΔdif
が演算部302によって算出される。 ・S処理のとき: Δdif=(T2×CRate) ・N処理のとき: Δdif=(T2×CRate)−T1 ・C処理のとき: Δdif=(T2×CRate)−(T1+T2) 演算部302では、このように算出したΔdifを現d
ifに加算して、いま終わった再生周期の終了時点(す
なわち、次の再生周期の先頭)におけるdifを求め
る。
【0141】さらに、演算部302では、上記のように
再生周期の終了時に算出された累積差分difに基づい
て、次の再生周期でS処理、N処理、C処理のどれを行
なうかを決定する。具体的には、以下の条件(1)
(2)に基づいて決定する。なお、累積差分difに基
づく次の再生周期の処理判定時には、次の再生周期で第
1系列の区間サイズを、前もってレジスタT1に読み出
しておく。このとき、レジスタT2には直前の再生周期
における記憶値がそのまま保持されている。
【0142】(1)dif≧0(difが正値)なら
ば、T1(次の再生周期で第1系列において読み出され
る区間のサイズ)とdifとを比較し、(1−1)|d
if|/T1≧0.5(言い替えると、区間サイズT1
の半分よりも累積差分difが大きいとき)なら、C処
理とし、(1−2)そうでないなら(言い替えると、区
間サイズT1の半分よりも累積差分difが大きくない
とき)、N処理とする。 (2)dif<0(difが負値)ならば、T2(いま
終了した再生周期で第2系列において読み出されていた
区間のサイズ)とdifとを比較し、(2−1)|di
f|/T2≧0.5(言い替えると、区間サイズT2の
半分よりも累積差分difが大きいとき)なら、S処理
とし、(2−2)そうでないなら(言い替えると、区間
サイズT2の半分よりも累積差分difが大きくないと
き)、N処理とする。
【0143】上記の条件(1)は、要するに、所望の再
生時間にするために現時点で読んでいるべき理想的な位
置に対し、実際に読んでいる位置が遅れているので、そ
の遅れ量が前記区間サイズT1の半分より大きいなら圧
縮を行なうということである。また、上記の条件(2)
は、要するに、所望の再生時間にするために現時点で読
んでいるべき理想的な位置に対し、実際に読んでいる位
置が進みすぎているので、その進み過ぎている量が前記
区間サイズT2の半分より大きいなら伸張を行なうとい
うことである。
【0144】図34は、上記の演算部302の処理内容
をS処理、N処理、C処理別にまとめた表702を示
す。701は、波形メモリに格納されている波形データ
についての3つの連続する区間Z,A,Bを示し、いま
第1系列目で読み出される現区間をAとする。区間Z,
A,Bのサイズは、それぞれ、Tbefore,Tnow,Tnex
tとする。このとき第2系列で読み出す区間は、現再生
周期の処理がS処理ならZ、N処理ならA、C処理なら
Bである。rp_nowは、現再生周期におけるrpレジス
タの値である。現再生周期において適用されるサイクル
レングスCLを「適用されるCycle Lengt
h」の欄に示す。現再生周期において適用される第2系
列のOFSTを「2系列目のOFST」の欄に示す。第
1系列で(rp)を先頭アドレスとする区間が読み出さ
れ、第2系列で(rp+OFST)を先頭アドレスとす
る区間の読み出しが行なわれる。「rpの更新」の欄
は、現再生周期の処理が終わった時点で、rpの値は第
2系列の区間の読み出しを継続する読み出しアドレスに
更新され、次の再生周期において第1系列で読み出す区
間の先頭アドレスとなることを示している。「difの
更新」の欄は、現再生周期の処理が終わった時点のdi
fの値を示している。このdifは、演算部302が、
次の再生周期において、S処理、N処理、C処理の何れ
を行なうかを決定するのに使用される。「Index
Counterの更新」の欄は、インデックスカウンタ
が第2系列で読み出される区間の次の区間の番号に更新
されることを示している。これは、次の再生周期におい
て第1系列で読み出す区間の番号である。適用されるサ
イクルレングスCLは、第2系列で読み出している区間
のサイズ情報T2の値となっており、その再生周期にお
いてサイクルレングスCLの時間にわたりクロスフェー
ドが実行される。
【0145】図35は、上述の演算部302によるS処
理、N処理、およびC処理の選択決定の仕方を示す説明
図である。801の各矩形図形は区間を示す。図35の
横軸方向は、「時間」ではなく「アドレス」である。
(a)は第1系列の読み出し例、(b)は第2系列の読
み出し例を示す。S処理の例において、831が前回の
理想ポインタ(仮想アドレス)の位置であり、811が
実ポインタ(rpレジスタ)の位置とする。このとき、
difは矢印821に示すdif_oldになるから、上記
の条件(2−1)が成立し、次の再生周期ではS処理を
行なうと決定する。このS処理では、第1系列はフェー
ドアウトする波形を示す3角形801のように読み出し
を行ない(図35(a))、第2系列はフェードインす
る波形を示す3角形804のように読み出しを行なう
(図35(b))。
【0146】N処理の例において、832が前回の理想
ポインタの位置であり、812が実ポインタの位置とす
る。このとき、difは矢印822に示すdif_oldに
なるから、上記の条件(2−2)が成立し、次の周期で
はN処理を行なうと決定する。このN処理では、第1系
列はフェードアウトする波形を示す3角形802のよう
に読み出しを行ない(図35(a))、第2系列はフェ
ードインする波形を示す3角形804のように読み出し
を行なう(図35(b))。C処理の例において、83
3が前回の理想ポインタの位置であり、813が実ポイ
ンタの位置とする。このとき、difは矢印823に示
すdif_oldになるから、上記の条件(1−1)が成立
し、次の周期ではC処理を行なうと決定する。このC処
理では、第1系列はフェードアウトする波形を示す3角
形803のように読み出しを行ない(図35(a))、
第2系列はフェードインする波形を示す3角形804の
ように読み出しを行なう(図35(b))。
【0147】図35(c)は、次の再生周期の読出しの
ための判定処理例を示す。前再生周期における理想ポイ
ンタ(仮想アドレス)の位置851から矢印852だけ
仮想アドレスが進んだとすると、difは矢印853に
示すようになるので、条件(2−1)が成立し、S処理
を選択決定する。前再生周期における理想ポインタの位
置851から矢印854だけ仮想アドレスが進んだとす
ると、difは矢印855に示すようになるので、条件
(2−2)が成立し、N処理を選択決定する。前再生周
期における理想ポインタの位置851から矢印856だ
け仮想アドレスが進んだとすると、difは矢印857
に示すようになるので、条件(1−1)が成立し、C処
理を選択決定する。
【0148】図35では、連続した波形の周期を一つ戻
る処理(S処理)、そのまま進む処理(N処理)、一つ
飛び越して先に進む処理(C処理)の3つの処理から1
つを選択するようになっていた。しかしながら、2つ以
上前に戻ったり、2つ以上先に飛び越すことができるよ
うにしてもよい。図36は、前に2つ飛び越して進む場
合を示している。以下、図36の説明をする。この例で
は、直前の再生周期の終わり時点における理想ポインタ
の位置が、次の再生周期において第2系列の読み出す区
間を決定する。具体的には、理想ポインタの位置に最も
近いスタートポイントを持つ区間が、次の再生周期にお
いて第2系列で読み出す区間として選択される。
【0149】例えば、図36のように、前々回の再生周
期において、理想ポインタ(仮想アドレス)が902の
位置にあったとすると、その位置は領域905の範囲内
であり、前回の再生周期では第2系列でフェードインす
る波形909が読み出されていた。そのため、現再生周
期では、rpは907の位置にあり、第1系列ではフェ
ードアウトする波形910が読み出される。一方、前回
の再生周期において、理想ポインタはT2_old×CRa
teだけ進み、904の位置に来ている。このとき、d
ifは矢印912の示すdif_old1であり、理想ポイ
ンタが領域906の範囲内にあるため、現再生周期では
第2系列でフェードインする波形911が読み出され
る。結局、現再生周期において、第1系列の波形910
と第2系列の波形911によるクロスフェードが行なわ
れ、その再生周期で907の位置にあった読み出しポイ
ンタrpは2周期分飛び越した位置908のrp_next
まで進行する。各再生周期において仮想アドレスの進む
量は、CRateの設定により図36の例より大きくも
小さくもでき、また、値を負にすれば逆方向に進行させ
ることもできる。上記例の方法にしたがえば、その進行
する仮想アドレスに応じて、各再生周期で第2系列にお
いて読み出す区間を正方向あるいは逆方向に自由にジャ
ンプさせることができる。
【0150】図37は、CRate=1.5のとき(図
31の読出し例413の場合)の制御例を示す。100
1は第1系列の読み出しアドレスの進み方を示す。横軸
が時間であり、再生周期ごとにN処理、C処理、N処
理、C処理という順で処理する。縦軸は読出しアドレス
を示す。6つの区間A〜Fのどの辺りをポイントするか
が分かるように縦軸に並べて波形データを示す線分10
05をおいてある。1002は第2系列の読み出しアド
レスの進み方を示す。1003は読み出しポインタrp
の値の変化を示し、1004はサイクルカウントCCの
値の変化を示す。サイクルカウントCCは、各再生周期
ごとに、累算により徐々に増加していくように変化す
る。rpは上述したようにA,B,D,Eをポイントす
るように進む。rpとCCとを加算して第1系列のアド
レスが1001に示すように生成される。第2系列のア
ドレスは、1002に示すようにA,C,D,Fを読み
出すように進む。このようなアドレスでそれぞれ読み出
された波形がクロスフェードされる。これにより、4周
期分の再生時間で、指定されたピッチで、楽音波形が出
力される。図38は等倍(CR=1.0)のときの例、
図39は伸張(CR=0.75)のときの例を示す。
【0151】上述した図29,図30に従う波形発生部
111を使用する実施例においても、図2に従う波形発
生部111を使用する実施例と同様に、前述した様々な
応用目的に適用することができる。例えば、ビブラー
ト、トレモロ等の奏法により演奏された楽器音を、その
変調周期の長さ分録音し、波形メモリ301に記憶して
おく。発音指示に応じて、録音された変調付与済み波形
データを読み出す。その際、実読み出しポインタは指示
された所望の楽音ピッチに応じた速度で進め、仮想読み
出しポインタは元の変調周期と指示された所望の変調周
期との比に基づく速度で進めれば、1つの変調付与済み
波形データから、所望のピッチと所望の変調周期を有す
る楽音を生成することができる。また、ギター等のピッ
チベンド奏法に基づく波形を1つ録音し、波形メモリ3
01に記憶する。記憶されたベンド付与済み波形データ
の読み出し時、所望のピッチに応じて実読み出しポイン
タの速度を制御し、かつ所望のベンド速度で仮想読み出
しポインタの速度を制御すれば、1つのベンド付与済み
波形データから、任意のピッチで任意のベンド速度のベ
ンド波形が再生される。
【0152】また、録音された発音開始から終了までの
波形データの、立ち上がり部の長さ、立ち下がり部の長
さを、それぞれ独立に、しかも楽音再生ピッチに関係な
く、制御できる。図40の(a)は、立ち上がり部や立
ち下がり部のみの再生時間を伸縮するために用いる伸縮
比パラメータの変化の一例を示す。仮想読み出しポイン
タの変化をノイズ、カオス波形などの揺らぎ波形により
制御すれば、PCM音源の波形音色に時間軸伸縮変調に
よる変化を付けることもできる。図40の(b)は、伸
縮比を時間的に揺らぎ変調し、音色等の変化を得る例で
ある。また、前述と同様に、このような揺らぎ変調波形
によりTSC制御を行なうことにより、波形メモリ30
1に記憶した波形データのループ部を繰返し読出すこと
による音色の単調性を回避できる(図18の例)。ま
た、管楽器、ギター等におけるスラー演奏の波形を録音
し、波形メモリ301に記憶しておき、その読出し時に
TSC制御を適用すれば、スラー波形データの再生時、
前の音高から次の音高に移動する長さ(スラー時間)
を、楽音ピッチに関係なく自由に制御することができ
る。
【0153】また、弦楽器、管楽器などの前打音(又は
装飾音)を伴う演奏音の波形を録音し、波形メモリ30
1に記憶しておき、その読出し時にTSC制御を適用す
れば、その前打音付き波形データの再生時、前打音の時
間長を楽音ピッチに関係なく制御できる。また、PCM
音源において、このTSC制御を適用することにより、
共通の複数周期波形データを異なる再生ピッチに応じて
それぞれ読み出す場合でも、それぞれの楽音再生時間を
一定にすることができる(図16,図17の例)。勿
論、再生ピッチと独立にこれらの楽音再生時間を制御す
ることもできる。また、PCM音源において、このTS
C制御を適用することにより、共通の複数周期波形デー
タから、再生時間の異なる複数の音色波形を作成するこ
ともできる。また、PCM音源において、このTSC制
御を適用することにより、波形メモリ(301)に記憶
した1つの複数周期波形データの再生時間長を、指定さ
れた音符長に応じて可変制御して読み出すことができ、
該音符長に応じた再生時間長に揃えることもできる。ル
ープ読出による再生時間長では、ループ部で音色が単調
になるが、本発明によれば、前記揺らぎ変調波形の例に
よらずとも、任意に伸縮比を制御することにより、ルー
プ部で適宜音色を変化させることができるので、その単
調性を回避できる。このほかにも、TSC制御を広く応
用できる。
【0154】なお、リサンプリング技術を使用して、予
め、複数周期波形の各区間のサイズを所定長に加工して
波形メモリに書き込むようにしても良い。上記実施の形
態では「N処理(ノーマル処理)」の場合にもクロスフ
ェードを行なっているが、N処理の場合にはクロスフェ
ードの必要が無いことは自明であるので、そのように作
り変えても良い。しかし、N処理の場合にも見かけ上ク
ロスフェード合成を行うようにした構成は、時間軸の伸
縮制御パラメータの内容を考慮してクロスフェード合成
の要否を判定することなく、一律にクロスフェード合成
するように構成できるので、制御及び構成を簡略化する
ことができる。前述と同様に、1つの区間に含まれる波
形の周期数は1周期でもよいし、複数周期でもよい。ま
た、各区間毎に、異なる周期数の波形データが含まれる
ようになっていても良い。上記実施の形態では、1再生
周期ごとに仮想アドレスと実アドレスによる進行制御を
行なっていたが、該進行制御をもっと短い周期、あるい
は長い周期で行なうようにしても良い。さらに、1波形
の再生の途中において、比較制御を行う再生周期を変更
するようにしても良い。
【0155】上記実施の形態では、累積差分difを波
形メモリのアドレスと同じ単位上で扱っていたが、区間
を単位とするように変更することもできる。その場合の
条件式は、次のようになる。 dif= dif+Δdif S処理、N処理、C処理の選択 ・dif≧ 0.5(周期の半分より差が大きい) C処理 ・dif≦−0.5(周期の半分より差が大きい) S処理 その他 (周期の半分より差が小さい) N処理 Δdif演算 ・S処理 Δdif=CR ・N処理 Δdif=CR−1 ・C処理 Δdif=CR−2
【0156】なお、上記の発明の実施の形態では、各区
間のスタート位置が1種類の位相値(振幅値と傾き)で
同位相となるようにしているが、これに限らず、2種類
(あるいはそれ以上)の位相値で同位相となるポイント
で区切ってもよい。この場合、再生周期の終了時点で、
何れかの位相値のポイントで次の区間につなげていけば
よい。また、上記実施例では、クロスフェード合成の際
のフェードインとフェードアウトの系列を固定している
が、これに限らず、交互に切り替えるようにしてもよ
い。
【0157】〔TSC制御パラメータの時間変化態様の
パターン化〕この発明に係るTSC制御の制御パラメー
タは、前述の通り、リアルタイムの演奏操作に応じて可
変設定することもできるし、各種の音色や効果等に対応
させて予め設定しておいてもよいものである。TSC制
御における時間軸伸縮変化制御パラメータを、所望の時
間的変化態様でパターン化しておけば、望みのTSC制
御の時間変化を容易に実現でき、また、所定の楽音発生
期間(例えば音の立上りや立下り等の任意の部分的期
間、あるいは全体の発音期間)で時間軸伸張及び圧縮制
御するようにプログラムすることができるので、好まし
い。そのようなTSC制御パラメータの時間変化パター
ンの一例を図41及び図42に示す。図41の(a),
(b),(c)は、伸縮比CRateを使用してTSC
制御を行なう方式(つまり、図29及び図30のような
例からなる波形発生部111を用いてTSC制御を行な
う方式)において採用するTSC制御用の制御パラメー
タ(すなわちCRate)のパターン化の例を示す。横
軸の時間の原点は例えば発音開始時点である。(a)
は、伸縮比CRateの値が時間変化せずに一定である
例を示す。(b)は、伸縮比CRateの値がアタック
部において小さな値から徐々に増加し、その後のサステ
イン部においては時間変化せずにほぼ一定となるように
した例を示す。このようなパターンを用いれば、音の出
始めで時間軸伸張が最も大きく、その後徐々に元の時間
軸位置まで戻るような制御が行なわれる。(c)は、伸
縮比CRateの値がアタック部において大きな値から
徐々に減少し、その後のサステイン部においては時間変
化せずにほぼ一定となるようにした例を示す。このよう
なパターンを用いれば、音の出始めで時間軸圧縮が最も
大きく、その後徐々に元の時間軸位置まで戻るような制
御が行なわれる。
【0158】図41の(d),(e),(f)は、仮想
読出アドレスVADを使用してTSC制御を行なう方式
(つまり、図2のような例からなる波形発生部111を
用いてTSC制御を行なう方式)において採用するTS
C制御用の制御パラメータ(すなわちVAD)のパター
ン化の例を示す。(d)は(a)と同様、(e)は
(b)と同様、(f)は(c)と同様、のTSC制御パ
ターン例にそれぞれ相当している。図41に示したよう
なパターンで変化する制御パラメータ(CRate又は
VAD)を、テーブル形式でメモリ等に各種記憶してお
くとよい。なお、図41の(d),(e),(f)に示
すように仮想読出アドレスVADそれ自体の時間変化パ
ターンを記憶した場合は、図2の仮想読出アドレス演算
器17では、「ピッチ情報」をサンプリング周期で累算
せずに、テーブルから読み出される仮想読出アドレスV
ADの時間関数に「ピッチ情報」を乗算するような構成
であってもよい。勿論、図41の(d),(e),
(f)に示すような仮想読出アドレスVADそれ自体の
時間変化パターンを直接記憶せずに、伸縮比SCR(図
2)の時間変化パターンを図41の(a),(b),
(c)と同様の形態で記憶するようにしてもよい。
【0159】図42は、図41と同様のTSC制御用の
制御パラメータの時間変化パターンをエンベロープ発生
器のような演算器を用いて折線グラフ的に発生する例を
示している。すなわち、図42の各(a)〜(f)は、
テーブル等の記憶装置を用いずに、リアルタイムの演算
によって、図41の各(a)〜(f)と同様のTSC制
御用の制御パラメータの時間変化パターンを実現する例
を示している。図41,図42はあくまでも一例にすぎ
ず、その他の様々なパターンを記憶しておいたり、演算
によって作成したりするようにしてよい。図43は、図
41,図42に例示されたようなTSC制御用の制御パ
ラメータの時間変化パターンを利用した音色制御法の一
例を示すもので、1つの音色に対応する各種の制御情報
テーブルの構成例を示している。
【0160】図43の(a)は、或る音色名“A”に対
応する各種の制御情報の一例を示し、TSC制御は図2
9,図30のような波形発生部111を使用して行なう
ケースに該当する。この場合、波形データファイル指定
情報として「波形データファイル1」を指定し、TSC
制御パラメータのパターン指定情報として「CRate
変化態様2」を指定する例が示されている。このテーブ
ルには、その他、音量EG(エンベロープ)設定情報や
その他の各種設定情報も含まれている。なお、「CRa
te変化態様2」とは、図41(a)〜(c)又は図4
2(a)〜(c)のような時間変化パターンのうちの所
定のものを指定する情報であるとする。すなわち、この
場合、音色名“A”に対応する楽音波形として、「波形
データファイル1」の複数周期波形データを波形メモリ
301(図30)から読み出すことを指定し、かつ、
「CRate変化態様2」に従う時間変化形態でTSC
制御を行なうことにより、所望の波形形成が行なわれ
る。ここで、別の音色名に対応して、同じ「波形データ
ファイル1」を指定し、「CRate変化態様」は別の
変化態様を指定するような利用形態もあり得る。すなわ
ち、同じ「波形データファイル」を使用して、「CRa
te変化態様」を異ならせることにより、音色変化(音
作り)のバリエーションを豊富にすることができる。
【0161】図43の(b)は、或る音色名“B”に対
応する各種の制御情報の一例を示し、TSC制御は図2
のような波形発生部111を使用して行なうケースに該
当する。この場合、波形データファイル指定情報として
「波形データファイル2」を指定し、TSC制御パラメ
ータのパターン指定情報として「VAD変化態様3」を
指定する例が示されている。このテーブルには、その
他、音量EG(エンベロープ)設定情報やその他の各種
設定情報も含まれている。なお、「VAD変化態様3」
とは、図41(d)〜(f)又は図42(d)〜(f)
のような時間変化パターンのうちの所定のものを指定す
る情報であるとする。すなわち、この場合、音色名
“B”に対応する楽音波形として、「波形データファイ
ル2」の複数周期波形データを波形メモリ10(図2)
から読み出すことを指定し、かつ、「VAD変化態様
3」に従う時間変化形態でTSC制御を行なうことによ
り、所望の波形形成が行なわれる。この場合も、別の音
色名に対応して、同じ「波形データファイル2」を指定
し、「VAD変化態様」は別の変化態様を指定するよう
な利用形態もあり、同じ「波形データファイル」を使用
して、「VAD変化態様」を異ならせることにより、音
色変化(音作り)のバリエーションを豊富にすることが
できる。
【0162】〔ソフトウェア音源を使用したTSC制御
の実施〕上記各実施例において、波形発生部111を含
む音源部103の構成は専用のハードウェア装置からな
るものとして説明してきたが、これに限らず、ソフトウ
ェア音源によって構成してもよい。図2乃至図43を参
照してこれまで説明してきたこの発明に係るTSC制御
の様々な実施の形態のうち、所望の実施の形態を実現す
るように、ソフトウェアシステム(いわば“TSC制
御”プログラム)を構築すると共に、メモリ装置に所要
の複数周期波形データを記憶する。そして、このソフト
ウェアシステム(TSC制御プログラム)の働きによっ
て、上述したTSC制御に従う形態で、メモリ装置から
波形データを読み出すように構成する。図44は、コン
ピュータソフトウェアを用いた音源システムの実施に使
用するハードウェア構成例を示す全体ブロック図であ
る。このようなハードウェア構成は、パーソナルコンピ
ュータを使用して実現できる。
【0163】この音源システムでは、メイン制御部とし
てパーソナルコンピュータのCPU(中央処理部)31
を使用し、このCPU31の制御の下で、図1の音源部
103が実行するのと同等のTSC制御を行なう“TS
C制御プログラム”を実行し、かつ、図1の制御部10
2が実行するのと同等の処理プログラム、更にはその他
の適宜のプログラムも、並行して実行することができ
る。CPU31には、ROM(リードオンリーメモリ)
32,RAM(ランダムアクセスメモリ)33,ネット
ワークI/O(入出力装置)34,タイマ35,マウス
36,キーボード37,ディスプレイ38,ハードディ
スク39,DMAC(ダイレクトメモリアクセスコント
ローラ)40,サウンドI/O(入出力装置)41,サ
ンプリングクロック発生回路42,外部メモリドライブ
43、MIDIインタフェース48等が、データ及びア
ドレスバス44を介して接続されている。
【0164】サウンドI/O41は、CODECと呼ば
れるサウンド入出力装置であって、その内部にはディジ
タル/アナログ変換器(DAC)、アナログ/ディジタ
ル変換器(ADC)、ADCに接続された入力用のFI
FO(先入れ先出しバッファ)、DACに接続された出
力用のFIFOなどを含んでいる。このサウンドI/O
41内の前記ADCには外部オーディオ信号入力端子4
5からアナログオーディオ信号が入力され、サンプリン
グクロック発生回路42から発生される所定の周波数
(例えば48kHz)のサンプリングクロックFsに応
じてこれをA/D変換し、このA/D変換したオーディ
オ信号を前記入力用のFIFOに取り込む。この入力用
FIFOにデータが存在するとき、録音処理を要求する
信号をDMAC40に出力するように動作する。DMA
C40では、サウンドI/O41からの録音処理要求に
従って入力用FIFOの波形データを取り込み、バス4
4を介して、内部メモリ例えばRAM33に記憶する。
RAM33に記憶した波形データは、前述した事前処理
を適宜施して、TSC制御に従って読み出すことができ
るように調整され、複数区間に分割して管理し得る状態
とされる。このようなTSC制御用の波形データは、ハ
ードディスク39に多種類蓄積しておくようにしてよ
い。また、ROM32内に記憶していてもよい。従っ
て、ROM32,RAM33あるいはハードディスク3
9などが、図2又は図30の波形メモリ10又は301
に相当する。
【0165】“TSC制御プログラム”は、ROM3
2,RAM33あるいはハードディスク39のいずれに
記憶しておいてもよい。外部メモリドライブ43は、フ
ロッピーディスクあるいはCD−ROM(コンパクトデ
ィスク−リードオンリーメモリ)やMO(光磁気ディス
ク)などの外部記録媒体46を着脱自在に装着して、該
外部記録媒体46に対するデータの読み書きを行うもの
である。外部記録媒体46は、上記“TSC制御プログ
ラム”やその他のプログラムを格納するために使用して
もよいし、波形データや自動演奏シーケンスデータ等を
格納するために使用してもよい。また、ネットワークI
/O34を介して通信ネットワークに接続し、外部のサ
ーバコンピュータ(図示せず)から、上記“TSC制御
プログラム”やその他のプログラム及び/又は波形デー
タ等を受け取って、図44のコンピュータの内部のRA
M33又はハードディスク39又は外部記録媒体46に
格納するようにしてもよい。
【0166】CPU31は、例えばRAM33に記憶さ
れている“TSC制御プログラム”を実行して、上述し
た各実施例と同様のTSC制御を行い、波形メモリ(3
2,33または39)から、TSC制御された波形デー
タを読み出し、これをRAM33内の出力バッファに一
旦書き込む。DMAC40は、TSC制御された状態で
読み出されて出力バッファに書き込まれた波形データ
を、サウンドI/O41からの再生サンプリングクロッ
クに同期して1サンプルずつダイレクトメモリアクセス
方式で該出力バッファから読み出してサウンドI/O4
1に送る。サウンドI/O41では、その内部に設けら
れている出力用のFIFOに上記TSC制御済の波形デ
ータを書き込み、かつ、これをサンプリングクロックF
sに従って該出力用FIFOから読み出し、DACに与
えてD/A変換する。D/A変換された波形データはサ
ウンドシステム47に与えられ、空間的に発音される。
【0167】なお、音源部103の機能のすべてをソフ
トウェア音源によって構成せずに、ソフトウェア音源と
ハードウェア音源のハイブリッドタイプとしてもよい。
例えば、TSC制御に従う波形メモリ読み出しをソフト
ウェア処理によって行い、クロスフェード合成は専用ハ
ードウェア回路によって行うなど、種々の変形が可能で
ある。
【0168】
【発明の効果】以上の通り、この発明によれば、波形メ
モリ読み出し方式の音源において、その読み出し速度を
可変制御して任意の音高(ピッチ)で楽音を再生する一
方で、その読み出し速度とは独立に、読み出す波形デー
タを時間軸上で任意に伸張及び圧縮制御することができ
るので、独立の楽音制御要素として波形データの時間軸
方向の伸張及び圧縮制御を導入することができ、複数の
音高(ピッチ)について記憶波形データの共用化を図っ
てメモリ容量を節約することのできる簡単な構成であり
ながら、発生楽音に表現力をつけることができ、楽音表
現力と制御性を豊かにすることができる、という優れた
効果を奏する。また、この発明によれば、ビブラートや
トレモロ等の変調が付与された波形データ、ベンド等の
ピッチ変調が付与された波形データ、スラーの付与され
た波形データ、あるいは経過音や装飾音のような経過的
なピッチ変動が付与された波形データ、など任意の奏法
に対応した高品質な複数周期波形の波形データをメモリ
に記憶し、これを読み出して楽音を再生する場合に、読
み出し速度の制御(発生楽音の音高制御)とは独立に、
波形データの読み出し位置を時間軸で伸縮制御すること
ができるので、その奏法に関する楽音制御パラメータと
して新しい時間軸制御パラメータを提供し、従来に無
い、表現力と制御性に富んだ形態で該奏法に従う楽音発
生・制御を行うことができる、という優れた効果を奏す
る。
【0169】さらに、この発明によれば、読み出し速度
の制御(発生楽音の音高制御)とは独立に、発音の任意
の部分(全体又は一部の区間)で、波形データの読み出
し位置を時間軸で伸縮制御することにより、所望部分の
発音時間長を任意に制御することにより、発生楽音波形
の多様な変化を実現し、従来に無い、表現力と制御性に
富んだ形態で楽音発生・制御を行うことができる、とい
う優れた効果を奏する。たとえば、発生楽音の音高を所
望音高に維持しつつ、音の立上り部分又は立下り部分等
の発音時間長を自由に可変制御することができる。ある
いは、発生楽音の音高を所望音高に維持しつつ、発生楽
音全体の時間長を可変制御することにより、音符長等に
合わせて自由に発音時間長を制御することもできる。さ
らに、この発明によれば、時間的に変化する特性からな
る時間軸伸縮制御用の制御情報を、音色等の指定情報に
応じて、異なる特性で選択的に発生することにより、指
定音色等に応じた発生楽音波形の多様な変化を、波形デ
ータの時間軸伸縮制御によって実現することができ、1
種類の複数周期波形の記憶データから多様なバリエーシ
ョンの波形を形成することができる、という優れた効果
を奏する。
【0170】さらに、この発明によれば、波形メモリか
ら同じ部分の波形データを繰り返し読み出し(ループ読
み出し)する場合において、波形データの読み出し位置
を時間軸で伸縮制御することにより、所望部分の発音時
間長を任意に制御することにより、発生楽音波形の多様
な変化を実現し、ループ読み出し部分の単調さを改善す
ることができる、という優れた効果を奏する。さらに、
この発明によれば、楽音の任意の部分に対して、ゆらぎ
波形等の任意の制御信号によって、波形データの読み出
し位置を時間軸で伸縮制御することにより、楽音のゆら
ぎ等の制御を積極的に付与し、発生楽音波形の多様な変
化を実現することができる、という優れた効果を奏す
る。さらに、この発明によれば、1つの楽音波形の再生
途中においても、ダイナミックに変化する時間軸上の圧
縮率および伸張率にリアルタイムに応答して、波形デー
タの時間軸上の伸縮制御を行なうことができ、発生楽音
波形の多様な変化をリアルタイム制御によって実現する
ことができる、という優れた効果を奏する。さらに、こ
の発明によれば、複数種類の波形データの1つを時間的
に切り換えて指定し、それぞれについて時間軸伸縮制御
を行うことにより、更に多様な楽音制御を、波形データ
の時間軸での伸張および圧縮制御に基づき行うことがで
きる、という優れた効果を奏する。
【0171】さらに、この発明によれば、波形データの
読み出し位置を時間軸で伸縮制御する際に、クロスフェ
ード合成によって、波形の滑らかな変化を伴う時間軸伸
縮制御を実現することができる、という優れた効果を奏
する。また、この発明によれば、クロスフェード合成の
対象となる波形が順次に切り替わっていく場合におい
て、常に、第1の系列の波形データから第2の系列の波
形データに移行するようにクロスフェード合成を行うよ
う、クロスフェードの方向(フェードインとフェードア
ウト)を各系列毎に固定するようにしたことにより、ク
ロスフェード用の係数の関数波形を各系列毎に固定する
ことができ、該関数波形の形成が容易となる、という優
れた効果を奏する。さらに、この発明によれば、波形デ
ータの読み出し位置を時間軸で伸縮制御する際に、クロ
スフェード合成によって、波形の滑らかな変化を伴う時
間軸伸縮制御を実現することができると共に、時間軸伸
張又は圧縮が施されない場合においては同じ波形をクロ
スフェード合成することにより波形データの時間軸伸張
及び圧縮が起こらないようにすることにより、見掛け上
絶えずクロスフェード合成を行う構成を採用してなり、
これによって、時間軸伸縮制御パラメータに応じてクロ
スフェード合成の要否を制御する必要がなくなり、制御
及び構成を簡略化することができる、という優れた効果
を奏する。
【図面の簡単な説明】
【図1】 この発明に係る楽音発生装置及び方法を適用
した電子楽器の一実施例を示す全体構成ブロック図。
【図2】 図1に示された波形発生部の詳細例を示すブ
ロック図。
【図3】 この発明に従う波形データの時間軸伸張及び
圧縮制御(TSC制御)によって圧縮制御を行う場合に
おける、波形メモリ読出アドレスの時間的進行状態の一
例を示すグラフ。
【図4】 同TSC制御によって伸張制御を行う場合に
おける、波形メモリ読出アドレスの時間的進行状態の一
例を示すグラフ。
【図5】 同TSC制御によって実現できる波形の時間
軸上での伸張及び圧縮の様子のいくつかの例を示す概念
図。
【図6】 同TSC制御によって実現できる波形の時間
軸上での伸張及び圧縮の様子の別のいくつかの例を示す
概念図。
【図7】 図2に示された波形メモリに記憶すべき波形
データの作成手順の一例を示すフロー図。
【図8】 該波形メモリに記憶すべき波形データについ
て、事前にマーク処理を施す手順の一例を示すフロー
図。
【図9】 該波形メモリの記憶フォーマットを略示する
図。
【図10】 該波形メモリにおける波形データの記憶例
と、該波形データの区間分割例を模擬的に示す図。
【図11】 図1に示された制御部が実行する処理プロ
グラムのメインルーチンを例示するフロー図。
【図12】 図11における鍵スイッチ処理において行
われるキーオンイベント処理を例示するフロー図。
【図13】 図11における演奏操作子処理の一例を示
すフロー図。
【図14】 TSC制御における制御法の変形例とし
て、図2に示された仮想読出アドレス演算器から発生す
る仮想読出アドレスが非線形的特性を示す例を示すもの
であり、圧縮制御を行う場合についての波形メモリ読出
アドレスの時間的進行状態の一例を示すグラフ。
【図15】 TSC制御における制御法の変形例とし
て、図2に示された仮想読出アドレス演算器から発生す
る仮想読出アドレスが非線形的特性を示す例を示すもの
であり、伸張制御を行う場合についての波形メモリ読出
アドレスの時間的進行状態の一例を示すグラフ。
【図16】 TSC制御における制御法の別の変形例と
して、発生楽音の音高が相対的に高い場合は伸張制御を
行うことにより一定の発音時間長を保つことができるよ
うにした制御例を示すものであり、その場合の波形メモ
リ読出アドレスの時間的進行状態の一例を示すグラフ。
【図17】 TSC制御における制御法の別の変形例と
して、発生楽音の音高が相対的に低い場合は圧縮制御を
行うことにより一定の発音時間長を保つことができるよ
うにした制御例を示すものであり、その場合の波形メモ
リ読出アドレスの時間的進行状態の一例を示すグラフ。
【図18】 TSC制御における制御法の更に別の変形
例として、時間的に変化するTSC制御例を示すもので
あり、その場合の波形メモリ読出アドレスの時間的進行
状態の一例を示すグラフ。
【図19】 波形メモリにおける波形データの別の記憶
例を模擬的に示す図。
【図20】 演奏操作子処理の別の例を示すフロー図。
【図21】 図1に示した電子楽器の構成の変更例を示
す全体構成ブロック図。
【図22】 図21に示された制御部によって実行され
るMIDI入力イベント処理の一例を示すフロー図。
【図23】 図21に示された制御部によって実行され
るノートオン処理の一例を示すフロー図。
【図24】 図21に示された制御部によって実行され
るリアルタイム制御データ受信処理の一例を示すフロー
図。
【図25】 図21に示された制御部によって実行され
る奏法判定に関連する割込み処理の一例を示すフロー
図。
【図26】 奏法に対応して記憶する波形データの波形
データ例を模擬的に示す図。
【図27】 スラー奏法が行われる場合の波形読出例を
示す図。
【図28】 ピッチベンド奏法が行われる場合の波形読
出例を示す図。
【図29】 TSC制御の別の実施例として、パターン
化したいくつかのクロスフェード法を「標準の再生時間
に対する伸縮比」に応じて選択的に組合せて使用する方
式を採用する場合の、図1又は図21に示された波形発
生部の概略構成を例示するブロック図。
【図30】 図29における波形メモリ読み出し部の詳
細例を示すブロック図。
【図31】 図30の詳細例に従うTSC制御の基本概
念を説明するための図。
【図32】 図30の詳細例に従うTSC制御におい
て、第1系列目で読み出す波形区間と第2系列目で読み
出す波形区間のクロスフェードの様子を示す図。
【図33】 図30の詳細例に従うTSC制御におい
て、アタック部およびループ部を有する波形データの記
憶例及びその読出例を示す図。
【図34】 図30に示された演算部の処理内容を3種
類の異なる処理(S処理、N処理およびC処理)別にま
とめて一覧する説明図。
【図35】 上記3種類の異なる処理(S処理、N処理
およびC処理)の選択決定の仕方を示す説明図。
【図36】 図35をさらに一般化して示す説明図。
【図37】 図30の詳細例に従うTSC制御におい
て、CRate=1.5のときの制御例を示す図。
【図38】 図30の詳細例に従うTSC制御におい
て、CRate=1のときの制御例を示す図。
【図39】 図30の詳細例に従うTSC制御におい
て、CRate=0.75のときの制御例を示す図。
【図40】 図30の詳細例に従うTSC制御における
伸縮比の変化例を示す図。
【図41】 この発明に係るTSC制御で使用する制御
パラメータを、任意の時間変化態様でパターン化してテ
ーブル等に記憶しておく例を示すグラフ。
【図42】 この発明に係るTSC制御で使用する制御
パラメータを、任意の時間変化態様でパターン化し、折
線グラフ的に発生する例を示す図。
【図43】 図41及び図42に例示されたようなTS
C制御用の制御パラメータの時間変化パターンを利用し
た音色制御法の一例を示すもので、1つの音色に対応す
る各種の制御情報テーブルの構成例を示す図。
【図44】 この発明に従うTSC制御を適用すること
ができる、コンピュータソフトウェアを用いた音源シス
テムの実施に使用するハードウェア構成例を示す全体ブ
ロック図。
【符号の説明】
100 設定操作子 101A 鍵盤 101B その他演奏操作子 101 MIDIインターフェース 102 制御部 103 音源部 104 ディジタル・アナログ変換器(DAC) 105 サウンドシステム 111 波形発生部 112 音量制御部 113 制御レジスタ 114 チャンネル累算部 10,301 波形メモリ 13 クロスフェード合成部 14 切替制御回路 16 実読出アドレス演算器 17 仮想読出アドレス演算器 302 演算部 303 サイクル内カウンタ 304 インデックスカウンタ 305,306 周期長格納レジスタ 307 累積差分格納レジスタ 308 読み出しレジスタ(rpレジスタ) 309,310 ピッチ補間部 311,312 乗算器 313 補正部 314 加算器
フロントページの続き (56)参考文献 特開 平7−219597(JP,A) 特開 平2−1000(JP,A) 特開 平4−86796(JP,A) 特開 平8−292764(JP,A) 特開 平5−297891(JP,A) 特開 平9−114458(JP,A) 特開 平7−129179(JP,A) (58)調査した分野(Int.Cl.7,DB名) G10H 1/00 - 7/12 G10L 21/04

Claims (21)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数周期波形の波形データを記憶した波
    形メモリと、 発生しようとする楽音の音高を指定する手段と、 前記波形メモリから読み出すべき波形データのアドレス
    位置を時間の関数で指示する制御データを発生する手段
    と、 指定された音高に応じた速さで進行する読出アドレスを
    発生するアドレス発生手段と、 前記制御データが指示するアドレス位置と前記アドレス
    発生手段から発生した読出アドレスの位置とを比較し、
    その比較結果に応じて前記アドレス発生手段が発生する
    読出アドレスをシフトする制御手段と、 前記読出アドレスに基づいて前記波形メモリから波形デ
    ータを読み出す手段とを備えた楽音発生装置。
  2. 【請求項2】 前記波形メモリに記憶された波形データ
    は、複数の区間に分けられ、各区間の先頭の波形データ
    の位相がほぼ合うように管理されており、 前記制御手段は、前記制御データが指示するアドレス位
    置と前記アドレス発生手段から発生した読出アドレスの
    位置とが所定値以上かい離したとき、前記区間を単位と
    して前記アドレス発生手段が発生する読出アドレスをシ
    フトするものである請求項1に記載の楽音発生装置。
  3. 【請求項3】 前記制御手段によって前記読出アドレス
    のシフトを行うとき、シフト前の読出アドレスの進行に
    基づき前記波形メモリから読み出した波形データとシフ
    ト後の読出アドレスの進行に基づき前記波形メモリから
    読み出した波形データをクロスフェード合成するクロス
    フェード手段を更に備えた請求項1又は2に記載の楽音
    発生装置。
  4. 【請求項4】 変調の付与された複数周期波形の波形デ
    ータを記憶した波形メモリと、 発生しようとする楽音の音高を指定する手段と、 変調の周期を制御する制御情報を発生する手段と、 前記波形メモリから読み出すべき波形データの区間を、
    時間経過に伴い、かつ前記制御情報に応じて波形データ
    の時間軸を伸張又は圧縮すべく、指定する制御手段と、 前記指定された区間の波形データを、指定された音高に
    応じた速さで前記波形メモリから読み出す読出手段とを
    備えた楽音発生装置。
  5. 【請求項5】 複数周期波形の波形データを記憶した波
    形メモリと、 発生しようとする楽音の音高を指定する手段と、 繰り返し読み出しを行うべき前記波形データの所定の部
    分において波形データの時間軸を制御する制御情報を発
    生する手段と、 前記波形メモリから読み出すべき波形データの区間を、
    時間経過に伴い、かつ前記制御情報に応じて波形データ
    の時間軸を伸張又は圧縮すべく、指定する制御手段と、 指定された音高に応じた速さで前記波形メモリから波形
    データを読み出すものであり、前記所定の部分を繰り返
    し読み出すときに、前記指定された区間の波形データ
    を、前記指定された音高に応じた速さで前記波形メモリ
    から読み出す読出手段とを備えた楽音発生装置。
  6. 【請求項6】 複数周期波形の波形データを記憶した波
    形メモリと、 発生しようとする楽音の音高を指定する手段と、 時間的に変化する制御情報を発生する手段と、 前記波形メモリから読み出すべき波形データの区間を、
    時間経過に伴い、かつ前記制御情報に応じて波形データ
    の時間軸を伸張又は圧縮すべく、指定する制御手段と、 前記指定された区間の波形データを、指定された音高に
    応じた速さで前記波形メモリから読み出す読出手段とを
    備えた楽音発生装置。
  7. 【請求項7】 所定の奏法による所定期間にわたる楽音
    特性変化が付与された複数周期波形の波形データを記憶
    した波形メモリと、 発生しようとする楽音の音高を指定する手段と、 前記所定の奏法に従う楽音発生期間を制御する制御情報
    を発生する手段と、 前記波形メモリから読み出すべき波形データの区間を、
    時間経過に伴い、かつ前記制御情報に応じて波形データ
    の時間軸を伸張又は圧縮すべく、指定する制御手段と、 前記指定された区間の波形データを、指定された音高に
    応じた速さで前記波形メモリから読み出す読出手段とを
    備えた楽音発生装置。
  8. 【請求項8】 前記波形メモリに記憶する波形データに
    付与された楽音特性変化は、音高、音色、音量のうちの
    少なくとも一つの変化である請求項7に記載の楽音発生
    装置。
  9. 【請求項9】 前記制御情報は、前記所定の奏法に従う
    楽音発生期間の開始時点と終了時点を指定するか、若し
    くはその一方と変化時間を指定するものである請求項7
    又は8に記載の楽音発生装置。
  10. 【請求項10】 前記制御情報は、前記所定の奏法に従
    う楽音発生期間の開始時点と終了時点の一方と変化速度
    を指定するものである請求項7又は8に記載の楽音発生
    装置。
  11. 【請求項11】 第1の波形データ、第2の波形デー
    タ、及び該第1及び第2の波形をつなぐための所定の楽
    音特性変化が付与された複数周期波形からなる第3の波
    形データを記憶した波形メモリと、 発生しようとする楽音の音高を指定する手段と、 前記第1の波形から前記第2の波形へ移行することが指
    示されたとき、その間に前記第3の波形を挿入して読み
    出すよう前記波形メモリの読み出しを制御する手段と、 前記第3の波形を使用する時間を制御する制御情報を発
    生する手段と、 前記波形メモリから読み出すべき第3の波形データの少
    なくとも一部分の区間を、時間経過に伴い、かつ前記制
    御情報に応じて波形データの時間軸を伸張又は圧縮すべ
    、指定する制御手段と、 指定された音高に応じた速さで前記波形メモリから波形
    データを読み出すものであり、前記第3の波形データを
    読み出すときに、前記指定された区間の波形データを、
    前記指定された音高に応じた速さで前記波形メモリから
    読み出す読出手段とを備えた楽音発生装置。
  12. 【請求項12】 複数周期波形の波形データを記憶した
    波形メモリと、発生しようとする楽音の音高を指定する
    手段と、 所定の楽音発生期間において波形データの時間軸を制御
    する制御情報を発生する手段と、 前記波形メモリから読み出すべき波形データの区間を、
    時間経過に伴い、かつ前記制御情報に応じて波形データ
    の時間軸を伸張又は圧縮すべく、指定する制御手段と、 前記指定された区間の波形データを、指定された音高に
    応じた速さで前記波形メモリから読み出す読出手段とを
    備えた楽音発生装置。
  13. 【請求項13】 複数周期波形の波形データを記憶した
    波形メモリと、 発生しようとする楽音の音高を指定する手段と、 音色を指定する手段と、 楽音の発生開始からの時間経過に伴い、指定された音色
    に対応する態様で変化する制御情報を発生する手段と、 前記波形メモリから読み出すべき波形データの区間を、
    時間経過に伴い、かつ前記制御情報に応じて波形データ
    の時間軸を伸張又は圧縮すべく、指定する制御手段と、 指定された音色に対応した複数周期の波形データを指定
    された音高に応じた速さで前記波形メモリから読み出す
    ものであって、前記指定された区間の波形データを、前
    記指定された音高に応じた速さで前記波形メモリから読
    み出す読出手段とを備え、前記波形メモリに記憶される
    複数周期波形の波形データが少なくとも2つの異なる音
    色で共用され、この少なくとも2つの異なる音色に関す
    る前記制御情報の態様が異なっていることを特徴とする
    楽音発生装置。
  14. 【請求項14】 複数周期波形の波形データを記憶した
    波形メモリと、 発生しようとする楽音の音高を指定する手段と、 楽音の発生中においてリアルタイムで制御情報を発生す
    るリアルタイム制御情報発生手段と、 前記波形メモリから読み出すべき波形データの区間を、
    時間経過に伴い、かつ前記制御情報に応じて波形データ
    の時間軸を伸張又は圧縮すべく、指定する制御手段と、 前記指定された区間の波形データを、前記指定された音
    高に応じた速さで前記波形メモリから読み出す読出手段
    とを備えた楽音発生装置。
  15. 【請求項15】 複数周期波形の波形データを複数種類
    記憶した波形メモリと、 発生しようとする楽音の音高を指定する手段と、 前記複数種類の波形データの1つを時間的に切り換えて
    指定する波形指定手段と、波形データの時間軸を制御する 制御情報を発生する手段
    と、 前記波形指定手段によって指定された波形データにおい
    て、前記波形メモリから読み出すべき該波形データの
    を、時間経過に伴い、かつ前記制御情報に応じて波形
    データの時間軸を伸張又は圧縮すべく、指定する制御手
    段と、 前記指定された区間の波形データを、前記指定された音
    高に応じた速さで前記波形メモリから読み出す読出手段
    とを備えた楽音発生装置。
  16. 【請求項16】 複数周期波形の波形データを記憶した
    波形メモリと、 発生しようとする楽音の音高を指定する手段と、 楽音を発生する時間長を制御する制御情報を発生する手
    段と、 前記波形メモリから読み出すべき波形データの区間を、
    時間経過に伴い、かつ前記制御情報に応じて波形データ
    の時間軸を伸張又は圧縮すべく、指定する制御手段と、 前記指定された区間の波形データを、指定された音高に
    応じた速さで前記波形メモリから読み出す読出手段とを
    備えた楽音発生装置。
  17. 【請求項17】 複数周期波形の波形データを記憶した
    波形メモリからの波形データの読み出しに基づいて楽音
    を発生する方法であって、 発生しようとする楽音の音高を指定するステップと、波形データの時間軸を制御する 制御情報を発生するステ
    ップと、 前記波形メモリから読み出すべき波形データの区間を、
    時間経過に伴い、かつ前記制御情報に応じて波形データ
    の時間軸を伸張又は圧縮すべく、指定するステップと、 前記指定された区間の波形データを、指定された音高に
    応じた速さで前記波形メモリから読み出すステップとを
    備え、前記指定された音高を持ち、かつ、前記制御情報
    に応じて時間軸伸張又は圧縮制御された波形データか
    らなる楽音を発生することを特徴とする楽音発生方法。
  18. 【請求項18】 複数周期波形の波形データを記憶した
    波形メモリからの波形データの読み出しに基づいて楽音
    を発生するために、 発生しようとする楽音の音高を指定するステップと、波形データの時間軸を制御する 制御情報を発生するステ
    ップと、 前記波形メモリから読み出すべき波形データの区間を、
    時間経過に伴い、かつ前記制御情報に応じて波形データ
    の時間軸を伸張又は圧縮すべく、指定するステップと、 前記指定された区間の波形データを、指定された音高に
    応じた速さで前記波形メモリから読み出すステップとを
    含む手順を実行するコンピュータプログラムを記憶して
    なる、コンピュータによって読み取り可能な記録媒体。
  19. 【請求項19】 複数周期波形の波形データを記憶した
    波形メモリと、 発生しようとする楽音の音高を指定する手段と、 前記波形メモリから読み出すべき波形データの区間
    時間経過に伴いかつ波形データの時間軸を伸張又は圧
    すべく指定し、現時点の第1の波形データと伸張又は
    圧縮する場合に現時点よりも前又は後の時点の第2の波
    形データを指示する波形指示手段と、 前記指示された第1及び第2の波形データを、指定され
    た音高に応じた速さで前記波形メモリからそれぞれ読み
    出し、第1及び第2の系列でそれぞれ出力する読出手段
    と、 常に前記第1の系列の波形データから第2の系列の波形
    データに移行するようにクロスフェード合成を行うクロ
    スフェード合成手段と、 クロスフェードの終了後に、前記波形指示手段により
    たな区間の波形データを指示するとき、それまで第2の
    系列で発生していた前記第2の波形データを第1の系列
    で出力するように指示し、第2の系列では該新たな区間
    の波形データを出力するよう指示する制御手段とを備え
    た楽音発生装置。
  20. 【請求項20】 複数周期波形の波形データを記憶した
    波形メモリと、 発生しようとする楽音の音高を指定する手段と、 前記波形メモリから読み出すべき波形データの区間
    時間経過に伴いかつ波形データの時間軸を伸張又は圧
    すべく指定し、現時点の第1の波形データと伸張又は
    圧縮する場合に現時点よりも前又は後の時点の第2の波
    形データを指示する波形指示手段と、 前記指示された第1及び第2の波形データを、指定され
    た音高に応じた速さで前記波形メモリからそれぞれ読み
    出し、第1及び第2の系列でそれぞれ出力する読出手段
    と、 前記第1及び第2の系列の一方の波形データから他方の
    波形データに移行するようにクロスフェード合成を行う
    クロスフェード合成手段と、 クロスフェードの終了後に、前記波形指示手段により
    たな区間の波形データを指示するとき、該第2の波形デ
    ータの出力をそれまでと同じ系列で継続し、その他の系
    列では該新たな区間の波形データを出力するよう指示
    し、かつ、前記クロスフェード合成手段におけるクロス
    フェードの方向を切り換える制御手段とを備えた楽音発
    生装置。
  21. 【請求項21】 複数周期波形の波形データを記憶した
    波形メモリと、 発生しようとする楽音の音高を指定する手段と、 前記波形メモリから読み出すべき波形データの区間を、
    時間経過に伴い、かつ波形データの時間軸を伸張又は圧
    すべく、指定する制御手段と、 前記制御手段による指定に応じて、伸張する場合は現時
    点の第1の波形データとこれよりもの時点に位置する
    第2の波形データとを指示し、圧縮する場合は現時点の
    第1の波形データとこれよりもの時点に位置する第2
    の波形データとを指示し、伸張も圧縮も施さない場合は
    現時点の第1の波形データとこれと同じものを第2の波
    形データとして指示する波形指示手段と、 前記指示された第1及び第2の波形データを、指定され
    た音高に応じた速さで前記波形メモリからそれぞれ読み
    出す読出手段と、 前記第1の波形データから第2の波形データに移行する
    ようにクロスフェード合成を行うクロスフェード合成手
    段とを備えた楽音発生装置。
JP13039497A 1997-01-31 1997-05-02 楽音発生装置および方法 Expired - Fee Related JP3397082B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP13039497A JP3397082B2 (ja) 1997-05-02 1997-05-02 楽音発生装置および方法
SG1998000189A SG65729A1 (en) 1997-01-31 1998-01-24 Tone generating device and method using a time stretch/compression control technique
CNB981069169A CN1192351C (zh) 1997-01-31 1998-01-26 采用时间扩展/压缩控制技术的音发生装置及方法
US09/014,417 US6169240B1 (en) 1997-01-31 1998-01-27 Tone generating device and method using a time stretch/compression control technique
DE69804518T DE69804518T2 (de) 1997-01-31 1998-01-28 Vorrichtung und Verfahren zur Erzeugung von Tönen durch Zeitstrecken- und Kompressionstechnik
EP98101423A EP0856830B1 (en) 1997-01-31 1998-01-28 Tone generating device and method using a time stretch/compression control technique
KR10-1998-0002627A KR100484240B1 (ko) 1997-01-31 1998-01-31 악음발생장치및방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13039497A JP3397082B2 (ja) 1997-05-02 1997-05-02 楽音発生装置および方法

Publications (2)

Publication Number Publication Date
JPH10307586A JPH10307586A (ja) 1998-11-17
JP3397082B2 true JP3397082B2 (ja) 2003-04-14

Family

ID=15033269

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13039497A Expired - Fee Related JP3397082B2 (ja) 1997-01-31 1997-05-02 楽音発生装置および方法

Country Status (1)

Country Link
JP (1) JP3397082B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2565870A1 (en) 2011-08-31 2013-03-06 Yamaha Corporation Accompaniment data generating apparatus

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4685298B2 (ja) * 2001-09-28 2011-05-18 ローランド株式会社 波形発生装置
JP4612254B2 (ja) * 2001-09-28 2011-01-12 ローランド株式会社 波形再生装置
KR100486734B1 (ko) * 2003-02-25 2005-05-03 삼성전자주식회사 음성 합성 방법 및 장치
JP5141688B2 (ja) * 2007-09-06 2013-02-13 富士通株式会社 音信号生成方法、音信号生成装置及びコンピュータプログラム
JP6090204B2 (ja) * 2014-02-21 2017-03-08 ヤマハ株式会社 音響信号発生装置
JP6350693B2 (ja) * 2017-02-08 2018-07-04 ヤマハ株式会社 音響信号発生装置
JP6350692B2 (ja) * 2017-02-08 2018-07-04 ヤマハ株式会社 音響信号発生装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2565870A1 (en) 2011-08-31 2013-03-06 Yamaha Corporation Accompaniment data generating apparatus
US8791350B2 (en) 2011-08-31 2014-07-29 Yamaha Corporation Accompaniment data generating apparatus

Also Published As

Publication number Publication date
JPH10307586A (ja) 1998-11-17

Similar Documents

Publication Publication Date Title
KR100484240B1 (ko) 악음발생장치및방법
US6255576B1 (en) Device and method for forming waveform based on a combination of unit waveforms including loop waveform segments
JP3644263B2 (ja) 波形形成装置及び方法
US7396992B2 (en) Tone synthesis apparatus and method
US7432435B2 (en) Tone synthesis apparatus and method
EP1742200A1 (en) Tone synthesis apparatus and method
US5831193A (en) Method and device for forming a tone waveform by combined use of different waveform sample forming resolutions
US6326537B1 (en) Method and apparatus for generating musical tone waveforms by user input of sample waveform frequency
EP1087373B1 (en) Method and apparatus for producing a waveform exhibiting rendition style characteristics
JP3397082B2 (ja) 楽音発生装置および方法
JP3008922B2 (ja) 楽音発生装置および楽音発生方法
EP1087369B1 (en) Method and apparatus for producing a waveform using a packet stream
JP3675184B2 (ja) 波形形成装置及び方法
JP3095018B2 (ja) 楽音発生装置
JP3520781B2 (ja) 波形生成装置及び方法
JP3873268B2 (ja) 波形再生装置
JP3395560B2 (ja) 波形再生装置および波形データのクロスフェード方法
JPH096364A (ja) 楽音発生方法
JP3486938B2 (ja) レガート演奏可能な電子楽器
JP2970438B2 (ja) 波形メモリ型楽音発生装置
JP4826276B2 (ja) 楽音合成装置及びプログラム
JP3726765B2 (ja) 波形形成装置及び方法
JPS6352399B2 (ja)
JPH11282467A (ja) 楽音発生方法及び装置
JP2003108143A (ja) 波形再生装置

Legal Events

Date Code Title Description
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: 20080214

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090214

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090214

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100214

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110214

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120214

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130214

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20140214

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees