JP3200940B2 - 楽音制御装置 - Google Patents

楽音制御装置

Info

Publication number
JP3200940B2
JP3200940B2 JP08728292A JP8728292A JP3200940B2 JP 3200940 B2 JP3200940 B2 JP 3200940B2 JP 08728292 A JP08728292 A JP 08728292A JP 8728292 A JP8728292 A JP 8728292A JP 3200940 B2 JP3200940 B2 JP 3200940B2
Authority
JP
Japan
Prior art keywords
input
output
tone signal
latch
tone
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP08728292A
Other languages
English (en)
Other versions
JPH05143066A (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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP08728292A priority Critical patent/JP3200940B2/ja
Priority to US07/934,101 priority patent/US5283386A/en
Publication of JPH05143066A publication Critical patent/JPH05143066A/ja
Application granted granted Critical
Publication of JP3200940B2 publication Critical patent/JP3200940B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、楽音信号に対してノイ
ズシェーピング処理などの遅延処理を含む楽音制御処理
を実行する楽音制御装置に関する。
【0002】
【従来の技術】近年のディジタル信号処理技術の発達に
より、楽音信号をディジタル信号処理により生成するこ
とが可能となり、さらに、生成された楽音信号をディジ
タル的に加工する楽音制御処理も容易に行えるようにな
ってきている。
【0003】このような楽音制御処理において、楽音信
号の遅延処理を含む処理は、ノイズシェーピング処理に
おけるフィルタリング処理の一種である高域周波数成分
の強調処理や、ローパスフィルタリング処理、ハイパス
フィルタリング処理、バンドパスフィルタリング処理な
どの様々なフィルタリング処理などに適用される。
【0004】そして、ディジタル信号処理における上述
の楽音信号の遅延処理は、現在のサンプリングタイミン
グにおける楽音信号をラッチなどのバッファ回路に保持
し、それを次回以降のサンプリングタイミングで読み出
す処理として実現される。
【0005】
【発明が解決しようとする課題】以上のような楽音信号
の遅延処理を含む楽音制御処理においては、過去のサン
プリングタイミングにおける楽音信号がバッファ回路で
遅延され、現在のサンプリングタイミングにおいて使用
される。
【0006】ここで、例えば入力される楽音信号の振幅
が0になった場合には楽音制御処理の出力も0になるの
が望ましいが、上述の従来例においては入力される楽音
信号の振幅が0になっても、バッファ回路に残存してい
る過去の信号成分に基づいて不要な雑音成分が出力され
てしまう可能性があるという問題点を有している。
【0007】本発明の課題は、楽音信号が消音状態にな
った場合に、不要な雑音成分が出力されないようにする
ことにある。
【0008】
【課題を解決するための手段】本発明は、入力楽音信号
の遅延処理を含むノイズシェーピング処理などの楽音制
御処理を実行する楽音制御装置を前提とする。
【0009】そして、本発明の第1の態様として、つぎ
のような構成を有する。まず、楽音制御処理への入力楽
音信号が消音状態に収束したことを判別する入力側消音
状態判別手段を有する。この入力側消音状態判別手段
は、例えば入力楽音信号の振幅エンベロープ値が0にな
ったことを判別する。または、入力楽音信号の振幅値が
所定時間以上0になったことを判別する。あるいは、入
力楽音信号の振幅値の差分値が0になったことを判別す
る。なお、差分値が所定時間以上0になったことを判別
してもよい。
【0010】そして、入力側消音状態判別手段が前記入
力楽音信号の消音状態を判別してから遅延処理にて遅延
される時間が経過した後に、楽音信号の遅延処理を行う
遅延部の内容を強制的にリセットするリセット手段を有
する。あるいは、入力側消音状態判別手段が入力楽音信
号の消音状態を、遅延処理にて遅延される時間が経過す
るまで連続して判別した場合に、楽音信号の遅延処理を
行う遅延部の内容を強制的にリセットするリセット手段
を有する。
【0011】本発明の第2の態様として、つぎのような
構成を有する。まず、本発明の第1の態様と同様の入力
側消音状態判別手段を有する。つぎに、楽音制御処理か
らの出力楽音信号が消音状態に収束したことを判別する
出力側消音状態判別手段を有する。
【0012】また、楽音制御処理からの出力楽音信号が
消音状態に収束したことを判別する出力側消音状態判別
手段を有する。この出力側消音状態判別手段は、例えば
出力楽音信号の振幅エンベロープ値が0になったことを
判別する。または、出力楽音信号の振幅値が所定時間以
上0になったことを判別する。あるいは、出力楽音信号
の振幅値の差分値が0になったことを判別する。なお、
差分値が所定時間以上0になったことを判別してもよ
い。
【0013】そして、入力側消音状態判別手段が前記入
力楽音信号の消音状態を判別してから遅延処理にて遅延
される時間が経過した後、出力側消音状態判別手段が出
力楽音信号の消音状態を判別した場合に、楽音信号の遅
延処理を行う遅延部の内容を強制的にリセットするリセ
ット手段を有する。
【0014】
【作用】本発明の第1の態様では、ノイズシェーピング
処理などにおける入力楽音信号が消音状態に収束したこ
とを入力側消音状態判別手段が判別してから遅延処理に
て遅延される時間が経過した場合、リセット手段が、楽
音信号の遅延処理を行うラッチなどの遅延部の内容を強
制的にリセットする。 あるいは、入力側消音状態判別
手段が入力楽音信号の消音状態を、遅延処理にて遅延さ
れる時間が経過するまで連続して判別した場合に、遅延
部の内容を強制的にリセットする。従って、遅延部に残
存している過去の楽音信号に基づいて不要な雑音成分が
出力されてしまうことを抑制することができる。
【0015】本発明の第2の態様では、ノイズシェーピ
ング処理などにおける入力楽音信号が消音状態に収束し
たことを入力側消音状態判別手段が判別してから遅延処
理にて遅延される時間が経過した後、出力側楽音信号が
消音状態に収束したことを出力側消音状態判別手段が判
別した場合、リセット手段が、楽音信号の遅延処理を行
うラッチなどの遅延部の内容を強制的にリセットする。
従って出力信号が減衰しきる前に遅延部の内容がリセッ
トされてしまうことによるノイズの発生を抑制すること
ができる。
【0016】ここで、本発明の第1または第2の態様に
おいて、入力側消音状態判別手段または出力側消音状態
判別手段は、入力、出力楽音信号の振幅エンベロープ値
が0になることを判別することにより、または、入力、
出力楽音信号の振幅値が一定時間以上0になることを判
別することにより、入力、出力楽音信号が消音状態に収
束したことを判別することができる。
【0017】また、入力側消音状態判別手段または出力
側消音状態判別手段は、入力、出力楽音信号の振幅値の
差分値が0になることを判別することにより、入力、出
力楽音信号が消音状態に収束したことを判別することが
できる。この場合には、入力、出力楽音信号の振幅値が
0以外の振幅の小さな直流値に収束してしまった場合で
も、遅延部の内容をリセットできる。
【0018】
【実施例】以下、図面を参照しながら本発明の実施例を
説明する。実施例の全体構成 図1は、本発明の第1実施例の全体構成図である。図1
において、まず、装置全体は大きく分けて、ソフトウエ
ア処理を実行することによって楽音信号を生成するCP
U104と、それ以外の処理を実行する処理回路105
とを組み合わせて構成されている。
【0019】鍵盤102と機能スイッチ103とからな
るスイッチ部101は楽器の操作入力部であり、スイッ
チ部101から入力された演奏情報は、CPU104お
よび処理回路105で処理される。
【0020】処理回路105を経て生成された楽音信号
は、D/A変換部106でアナログ信号に変換されたあ
と、ローパスフィルタ(図示していない)で平滑化さ
れ、サウンドシステム107により放音される。
【0021】つぎに、図2はCPU104の内部構成を
示すブロック図である。制御データ兼波形用ROM21
2には、後述するエンベロープ値の目標値等の楽音制御
パラメータ、ADPCM(アダプティブ差分パルス符号
変調)方式における楽音差分波形データ、および量子化
データが記憶されている。そして、オペレーション解析
部207は、制御用ROM201のプログラムの内容を
順次解析しながら、制御データ兼波形用ROM212上
に、上記各データをアクセスして、ソフトウエアによる
音源処理を行う。
【0022】制御用ROM201には、後述する楽音制
御用のプログラムが記憶されており、ROMアドレス制
御部205からROMアドレスデコーダ202を介して
指定されたアドレスのプログラム語(命令)を順次出力
する。具体的には、各プログラム語の語長は、例えば2
8ビットであり、プログラム語の一部がつぎに読み出さ
れるべきアドレスの下位部(ページ内アドレス)として
ROMアドレス制御部205に入力されるネクストアド
レス方式となっている。なお、通常のプログラムカウン
タ方式のCPUで構成してもよい。
【0023】オペレーション解析部207は、制御用R
OM201から出力される命令のオペコードを解析し、
指定されたオペレーションを実行するために、回路の各
部に制御信号を送る。
【0024】RAMアドレス制御部204は、制御用R
OM201からの命令のオペランドがレジスタを指定し
ている場合に、RAM206内の対応するレジスタのア
ドレスを指定する。RAM206には、図7等として後
述する各種楽音制御データが8チャネル分記憶されるほ
か、後述する各種バッフア等が記憶され、後述の音源処
理に用いられる。
【0025】ALU部208および乗算器209は、制
御用ROM201からの命令が演算命令の場合に、オペ
レーション解析部207からの指示に基づいて前者は加
減算と論理演算、後者は乗算を実行する。
【0026】クロック発生部203は、内部の特には図
示しないハードタイマに基づいて、一定時間毎に、RO
Mアドレス制御部205、および後述する処理回路10
5内の演算回路2305の入力ラッチ(図26の260
1)にインタラプト信号INTを供給する。
【0027】入力ポート210および出力ポート211
には、図1のスイッチ104が接続される。制御用RO
M201またはRAM206から読み出される各種デー
タは、バスを介してROMアドレス制御部205、AL
U部208、乗算器209、制御データ兼波形用ROM
212、累算波高値出力ラッチ213、エンベロープ値
出力ラッチ214、入力ポート210および出力ポート
211に供給される。また、ALU部208、乗算器2
05および制御データ兼波形用ROM212の各出力
は、バスを介してRAM206に供給される。
【0028】音源処理によって作成された楽音の1サン
プルの累算波高値およびエンベロープ値は、それぞれ、
データバスを介して、累算波高値出力ラッチ213およ
びエンベロープ値出力ラッチ214に入力される。そし
て、累算波高値出力ラッチ213およびエンベロープ値
出力ラッチ214の各クロック入力にオペレーション解
析部207から音源処理終了信号が入力されると、RA
M206からデータバス上に1サンプルの楽音信号の累
算波高値およびエンベロープ値が順次読み出され、累算
波高値出力ラッチ213およびエンベロープ値出力ラッ
チ214に順次ラッチされる。CPU104の動作 <CPU104の全体動作>つぎに、図1のCPU10
4の全体動作を説明する。
【0029】本実施例では、CPU104は、図3のメ
インフローチャートに示すように、S302 〜S310 の一
連の処理を繰り返し行うことにより、楽音データを生成
する音源処理を行っている。
【0030】ここで、実際の音源処理は割り込み(イン
タラプト)処理によって行われる。具体的には、ある一
定時間毎に、図3のメインフローチャートとして実行さ
れているプログラムに割り込みが掛かり、それに基づい
て8チャンネルの楽音信号を生成する音源処理のプログ
ラムが実行される。その処理が終わると、8チャネル分
の楽音信号が累算され、出力楽音信号として図2の累算
波高値出力ラッチ213に出力される。その後に、割り
込み状態からメインフローに戻る。なお、上述した割り
込みは、図2のクロック発生部203内のハードタイマ
に基づき、周期的に行われる。この周期は、楽音出力時
のサンプリング周期に等しい。
【0031】以上が、CPU104の動作の概略であ
る。次に、図3〜図5を用いて詳細にCPU104の全
体動作を説明する。図3のメインフローチャートは、ク
ロック発生部203から割り込みが掛からない状態にお
いてCPU104で実行される、音源処理以外の処理の
流れを示している。
【0032】まず、電源が投入され、CPU104内の
RAM206(図2参照)の内容等の初期設定が行われ
る(S301 )。つぎに、CPU104の外部に接続され
る機能キー103(図1参照)の各スイッチが走査され
(S302 )、各スイッチの状態が入力ポート210から
RAM206内のキーバッファエリアに取り込まれる。
その走査の結果、状態の変化した機能キーが識別され、
対応する機能の処理がなされる(S303 )。例えば、楽
音番号のセット、エンベロープ番号のセット、また、付
加機能にリズム演奏がついていれば、リズム番号のセッ
ト等が行われる。
【0033】その後、図1の鍵盤102において押鍵さ
れている鍵盤キーの状態が上記機能キーの場合と同様に
取り込まれ(S304 )、変化した鍵が識別されることに
よりキーアサイン処理が行われる(S305 )。
【0034】つぎに、機能キー103(図1)で特には
図示しないデモ演奏キーが押されたときは、図2の制御
データ兼波形用ROM212からデモ演奏データ(シー
ケンサデータ)が順次読み出されて、キーアサイン処理
などが行われる(S306 )。また、リズムスタートキー
が押されたときは、リズムデータが制御データ兼波形用
ROM212から順次読み出され、キーアサイン処理な
どが行われる(S307 )。
【0035】その後に、以下に述べるタイマー処理が行
われる(S308 )。すなわち、後述するインタラプトタ
イマー処理(S402 )でインクリメントされている時間
データの時間値が判別され、デモ演奏制御用に順次読み
出される時間制御用のシーケンサデータ又はリズム演奏
制御用に読み出される時間制御用のリズムデータと比較
されることにより、S306 のデモ演奏又はS307 のリズ
ム演奏を行う場合の時間制御が行われる。
【0036】さらに、発音処理S309 では、発音処理さ
れるべき楽音のピッチにエンベロープを付加し、対応す
る発音チャネルにピッチデータを設定するというピッチ
エンベロープ処理等が行われる。
【0037】さらに、フロー1周準備処理が実行される
(S310 )。この処理では、S305 の鍵盤キー処理にお
いて押鍵開始となったノート番号の発音チャネルの状態
を押鍵中に変えたり、離鍵となったノート番号の発音チ
ャネルの状態を消音中に変える等の処理が行われる。
【0038】つぎに、図4のインタラプト処理につき説
明する。図2のクロック発生部203により、図3のメ
インフローに対応するプログラムに割り込みが掛かる
と、同プログラムの処理が中断され、図4のインタラプ
ト処理プログラムの実行が開始される。この場合、イン
タラプト処理のプログラムにおいて、図3のメインフロ
ーのプログラムで書き込みが行われるレジスタ等につい
ては、内容の書き換えが行われないように制御される。
従って、通常のインタラプト処理の開始時と終了時に行
われるレジスタの退避と復帰の処理は不要となる。これ
により、図3のメインフローチャートの処理とインタラ
プト処理との間の移行が迅速に行われる。
【0039】つづいて、インタラプト処理において音源
処理が開始される(S401 )。この音源処理は図5に示
される。この結果、8発音チャネル分が累算された楽音
信号データが、図2のRAM206内の後述するバッフ
ァBに得られる。
【0040】さらに、S402 では、インタラプトタイマ
ー処理が行われる。ここでは、図4のインタラプト処理
が一定のサンプリング周期毎に実行されることを利用し
て、RAM206(図2)上の特には図示しない時間デ
ータの値がインクリメントされる。すなわち、この時間
データの値を見れば時間経過がわかる。このようにして
得られる時間データは、前述したように、図3のメイン
フローのタイマー処理S308 における時間制御に用いら
れる。
【0041】そして、S403 において、上記バッファ領
域の累算波高値が図2の累算波高値出力ラッチ213に
ラッチされる。つぎに、図5のフローチャートを用い
て、インタラプト処理のステップS401 で実行される音
源処理の動作を説明する。
【0042】まず、RAM206の波形データ加算用の
領域がクリアされる(S501 )。次に、発音チャネルの
1チャネル毎に音源処理が行われ(S502 〜S509 )、
最後に8チャネル目の音源処理が終了した時点で所定の
バッファ領域Bに8チャネル分が加算された波形データ
が得られる。これらの詳細な処理については後述する。
【0043】つぎに図6は、前述の図3、図4のフロー
チャートの処理の関係を概念的に示した流れ図である。
まず、ある処理A(以下、B、C、・・・、Fも同じ)
が行われる(S601 )。この「処理」は、図3のメイン
フローチャートの、例えば「機能キー処理」、や「鍵盤
キー処理」などに対応する。その後、インタラプト処理
に入り、音源処理が開始される(S602 ) 。これによ
り、1サンプル分の8発音チャネルをまとめた楽音信号
が得られ、累算波高値出力ラッチ213に出力される。
その後、メインフローチャートの何らかの処理Bに戻
る。以上のような動作が、8つの全ての発音チャネルに
対する音源処理が行われながら繰り返される(S604
611 )。そして、この繰り返し処理は楽音の発音中続
けられる。 <音源処理におけるデータ構成>つぎに、図4のS401
で実行される音源処理の具体例について説明する。
【0044】本実施例では、CPU104が、8発音チ
ャネル分の音源処理を行うことは前述した。この8チャ
ネル分の音源処理用のデータは、図7に示すようなデー
タフォーマットで、図2のRAM206内の発音チャネ
ル毎の領域に設定される。
【0045】また、このRAM206に、図8に示すよ
うな波形累算用のバッファBが確保されている。この場
合、図9の各発音チャネル領域には、ADPCM方式に
基づく音源処理用の各種制御データが格納される。図9
で、Aは、音源処理時に適応量子化差分データ(後述す
る)が読み出される場合に指定されるアドレスを表し、
I が現在アドレスの整数部で、制御データ兼波形用R
OM212(図2)の適応量子化差分データが格納され
ているアドレスに直接対応する。また、AF は現在アド
レスの小数部で、上記ROM412から読み出され逆量
子化された差分値の補間に用いられる。つぎのPI はピ
ッチデータの整数部、PF はピッチデータの小数部を表
す。例を示すと、PI =1、PF =0は原音のピッチ
を、PI=2、PF =0は1オクターブ上のピッチを、
また、PI =0、PF =0.5は、1オクターブ下のピ
ッチをそれぞれ表す。その他の種々の制御データについ
ては、後述のADPCM方式の説明の際に詳述する。
【0046】CPU104の処理では、図3のメインフ
ローが実行される場合に、音源処理に必要な制御デー
タ、例えばピッチデータ、エンベロープデータ等が、対
応する発音チャネル領域に設定される。そして、図4の
インタラプト処理での音源処理として実行される図5の
各チャネル対応の音源処理において、上記発音チャネル
領域に設定されている各種制御データが使用されなが
ら、楽音の生成処理が実行される。このようにメインフ
ローのプログラムと音源処理プログラムとの間のデータ
の通信は、RAM206上の発音チャネル領域の制御デ
ータ(楽音生成データ)を介して行われ、各プログラム
における発音チャネル領域に対するアクセスは相手のプ
ログラムの実行状態に一切関わりなく行えばよいため、
実質的に両プログラムを独立したモジュール構成とする
ことができ、簡単かつ効率的なプログラム構造とするこ
とができる。
【0047】さらに、制御データ兼波形用ROM212
には、特には図示しないデータフォーマットで適応量子
化差分データ(後述する)が記憶されると共に、図9に
示されるフォーマットで後述する量子化データが記憶さ
れる。この量子化データは、後述するように、制御デー
タ兼波形量ROM212から読み出された適応量子化差
分データの逆量子化を行うための制御データである。こ
のほか、同ROM212には、各音色に対応する楽音生
成用の制御データが記憶されており、演奏者により或る
音色が設定された場合に、同ROM212からRAM2
06の前述の各発音チャネル領域に上記制御データが転
送、設定される。 <ADPCM方式による音源処理の原理>以下、このよ
うなデータ構成を用いて実行される、図5の1チャネル
毎の各音源処理(S502 〜S509 のいずれか)であるA
DPCM方式の音源処理について説明する。なお、この
音源処理は、CPU104のオペレーション解析部20
7が、制御用ROM201に格納されている音源処理用
のプログラムを解釈・実行することにより実現される。
以下、特に言及しないかぎり、この前提のもとで処理が
行われるものとする。
【0048】始めに、ADPCM方式の動作原理の概略
を説明する。まず、図10において、制御データ兼波形
用ROM212(図2)のアドレスAI に対応するサン
プルデータXP は、アドレスAI の1つ前の、特には図
示しないアドレス(AI −1)に対応するサンプルデー
タとの差分値から求めた値である。
【0049】制御データ兼波形用ROM212のアドレ
スAI には、つぎのサンプルデータとの差分値Dを求め
るための適応量子化差分データが書き込まれており、こ
のデータから差分値Dが求まる。従って、つぎのアドレ
スのサンプルデータはXP +Dで求まり、これが新たな
サンプルデータXP としておきかわる。
【0050】この場合、現在アドレスを同図に示すよう
にAF とすれば、現在アドレスAF に対応するサンプル
データは、XP +D×AF で求まる。このように、AD
PCM方式では、現在のアドレスと、つぎのアドレスに
対応するサンプルデータ間の差分値Dを求めるための適
応量子化差分データが制御データ兼波形用ROM212
(図2)から読み出され、それに基づいて差分値Dが計
算され、現在のサンプルデータに加算されて、つぎのサ
ンプルデータが求められることにより、順次波形データ
が作成される。
【0051】このようなADPCM方式を採用すると、
隣接する標本間の差分値が一般に小さい音声や楽音等の
ような波形を量子化する場合、通常のPCM方式に比較
して、少ないビット数で量子化を行えることは明らかで
ある。
【0052】さらに、ADPCM方式においては、以下
のような巧妙な適応量子化の原理が採用されている。い
ま、例えば楽音信号の差分値をメモリに記憶させる場
合、一定のS/Nを確保しながら最大±Eの振幅値(例
えば電圧値)をとり得る差分値を量子化するために、n
ビットの量子化ビット数が必要であるとする。これに対
して、メモリ容量の制約等から1サンプルデータあたり
nビットより少ないmビットのデータ量しか割り当てら
れない場合、差分値を1サンプルあたりなんとかmビッ
トで量子化しなければならない。
【0053】そのために通常は、±Eの振幅値の範囲を
m 分割することになるが、これでは量子化幅が広がっ
てS/Nが劣化してしまう。そこで、ADPCM方式に
おいては、楽音信号等の差分値をメモリに記憶等させる
場合に、一定のS/Nを確保できて、かつ、mビットで
表現できる振幅値の絶対値が|±E|より小さい|±e
|の範囲を定める。そして、振幅値の絶対値が|±e|
より大きな差分値は、1以上の正規化係数で除算してそ
の範囲内に入るように圧縮し、その後にmビットで量子
化し、メモリに記憶等させる。これにより、一定のS/
Nを確保したまま1サンプルデータあたりの量子化ビッ
ト数を減らすことができ、メモリ容量を減らすことがで
きる。このような操作を適応量子化と呼ぶ。
【0054】ここで、上述のように適応量子化された差
分データから元の差分値を再現するためには、各サンプ
ルデータの適応量子化を行った時の上記正規化係数もい
っしょに記憶させておき、適応量子化された差分データ
をメモリから読み出すときに、それに対応する正規化係
数も同時に読み出し、適応量子化された差分データに乗
算して元の差分値を再生しなければならない。この操作
を逆量子化と呼ぶ。
【0055】しかし、1サンプルデータごとに上記正規
化係数を記憶させたのでは、結局、振幅値が±Eの範囲
の差分値をnビットで量子化したのと同程度の記憶容量
が必要になってしまい、データ圧縮は実現できない。
【0056】そこで、記憶容量の増加を抑えることので
きるADPCM方式による音源処理の具体的な動作につ
き、以下に順次説明する。 <ADPCM方式による音源処理の具体的動作>以下の
音源処理では、楽音信号の差分値の振幅が連続する8サ
ンプル程度の時間範囲では急激には変化しないことを利
用して、差分値をメモリに記憶させる際に、連続する8
サンプルの差分値は同じ正規化係数で適応量子化して記
憶させることとする。そして、正規化係数の値自体もそ
れほど細かくない一定のステップで変化するようにし、
そのような正規化係数を数ビットで量子化する。
【0057】具体的には、正規化係数の値が8段階に変
化するようにし、それを3ビットで表現する。これによ
り、正規化係数は8サンプル毎に3ビットのデータで量
子化してメモリに記憶すればよいため、データ圧縮が実
現できる。なお以下の説明では、上述の正規化係数を量
子化データと呼ぶことにする。
【0058】上述の原理を図11で説明する。同図で
は、上述の±Eは±64、±eは±8であり、量子化幅
は1である。これにより、±8の範囲が16レベルで量
子化されるため、差分値が適応量子化されるときの量子
化ビット数は4ビットとなり、また、量子化データは3
ビットである。そして、適応量子化時には、元の差分値
がこの量子化データに対応する係数で除算されることに
より、すべて±8の範囲に圧縮される。
【0059】図11では、元の差分値が±8以内の場合
には量子化データ「001」によって指示される係数1
で除算され(すなわち、圧縮は行われない)、元の差分
値が±8より大きく±16以内の場合には量子化データ
「010」によって指示される係数2で除算され、以下
同様にして、元の差分値が±32より大きく±64以内
の最大範囲の場合には量子化データ「111」によって
指示される係数8で除算される。そして、このようにし
て圧縮され4ビットで量子化された差分データが制御デ
ータ兼波形用ROM212(図2)に記憶され、同時
に、このときの3ビットの量子化データが、差分値8サ
ンプルに対して1データずつ、図11の如く上記ROM
212に記憶される。
【0060】以上のADPCM方式による音源処理の具
体的な動作を、図12〜図15の動作フローチャートを
用いて説明する。フロー中の各変数は、図2のCPU1
04内のRAM206上の対応する発音チャネル領域に
図7のデータフォーマットで確保されている。
【0061】図12〜図15に基づく音源処理は、大き
く分けてエンベロープ処理(S1201〜S1207)と、波形
処理(S1208〜S1232)から構成される。
【0062】まず、図10及び図11のADPCM方式
の原理に基づく波形処理の前に、エンベロープ処理につ
いて説明する。図16は、エンベロープ処理で生成され
るエンベロープを示した図である。図12のS1201〜S
1207の処理により生成されるエンベロープ値Eは、後述
するステップS1231において楽音信号出力Oに乗算され
ることにより、楽音信号の各サンプルデータにエンベロ
ープが付加される。
【0063】各楽音信号データに付加されるエンベロー
プは、時間的にいくつかのステップ(セグメント)から
構成されている。図16には、4ステップの例が示され
ている。図中のΔxはエンベロープのサンプリング周期
であり、Δyはエンベロープ値の変化幅である。
【0064】エンベロープ処理S1201〜S1207では、サ
ンプリングタイミング毎のエンベロープ値Eの計算と、
その値が現在のステップの目標エンベロープ値OEに達
したか否かのチェックが行われる。そして、EがOEに
達したときには、図3のメインフローにおけるS309
発音処理においてそれが検知されて、次のステップのエ
ンベロープのためのデータ(Δx、Δy及び目標エンベ
ロープ値OE)が、図2の制御データ兼波形用ROM2
12から読み出されて、RAM206(図2)上の対応
する発音チャネル領域(図7参照)にセットされてい
る。
【0065】具体的には、S1201で、エンベロープの演
算周期Δxと比較するためのタイマ値Δxt が、インタ
ラプトタイミング毎にインクリメントされる。つぎに、
1202で、ΔxがΔxt と一致したか否かが判定され
る。
【0066】一致しなければエンベロープ処理は行われ
ない。S1202で、ΔxがΔxt と一致したと判定された
場合、S1203で、エンベロープ値の変化幅Δyの符号ビ
ットが判別される。
【0067】符号ビットが正でS1203の判定がYESの
場合、すなわち、エンベロープが上昇中の場合には、ス
テップS1204において、現在エンベロープ値Eに変化幅
Δyが加算される。
【0068】逆に、符号ビットが負でS1203の判定がN
Oの場合、すなわち、エンベロープが下降中の場合に
は、ステップS1205において、現在エンベロープ値Eか
ら変化幅Δyが減算される。
【0069】その後、S1206において、現在エンベロー
プ値Eが目標エンベロープ値OE以上となったか否かが
判別される。EがOE以上となった場合には、現在エン
ベロープ値Eが目標エンベロープ値OEで置き換えられ
る。
【0070】これが、前述の如く図3のメインフローに
おけるS309 の発音処理で検知されて、次のステップの
エンベロープのためのデータがRAM206上にセット
される。なお、発音処理で現在エンベロープ値Eとして
0が検出された場合には、発音の終了として処理され
る。
【0071】つぎに、図10及び図11のADPCM方
式の原理に基づく、S1208〜S1232の波形処理について
説明する。制御データ兼波形用ROM212(図2)上
の適応量子化差分データが記憶されているアドレスのう
ち、現在の処理の対象とされるデータが記憶されている
アドレスを図7の(AI,F )とする。
【0072】まず、現在アドレス(AI,F )にピッチ
データ(PI,F )が加算される(S1208)。このピッ
チデータは、図1の鍵盤102において押鍵操作された
鍵番号に対応している。
【0073】そして、加算されたアドレスの整数部AI
に変化があるか否かが判定される(S1209)。判定がN
Oならば、図10のアドレスAI における差分値Dを用
いて、D×AF なる演算処理により、アドレスの小数部
F に対応する補間データ値Oが演算される
(S1229)。なお、差分値Dは、今回以前のインタラプ
トタイミングにおける音源処理により求まっている(後
述するS1218又S1221参照)。
【0074】つぎに、上記補間データ値Oにアドレスの
整数部AI に対応するサンプルデータXP が加算され、
現在アドレス(AI,F )に対応する新しいサンプルデ
ータO(図10のXQ に対応)が得られる(S1230)。
【0075】この後、このサンプルデータに、前述のエ
ンベロープ処理で求まっているエンベロープ値Eが乗算
され(S1231)、得られたOの内容がRAM206(図
2)内の波形データバッフアB(図8参照)に累算され
る(S1232)。このバッファBには、他の発音チャネル
に対する音源処理(図5S502 〜S509 )で生成された
楽音信号出力が累算され、最終的に8チャネル分が累算
されたデータとして、1サンプル分の楽音信号データが
生成される。
【0076】その後、図3のメインフローに戻り、つぎ
のサンプリング周期でインタラプトが掛かって、図12
〜図15の音源処理の動作フローチャートがふたたび実
行されて、現在アドレス(AI,F )にピッチデータ
(PI,F )が加算される(S 1208)。
【0077】以上の動作が、アドレスの整数部AI に変
化が生ずるまで繰り返される。 この間、サンプルデー
タXP 及び差分値Dは更新されず、補間データOのみが
アドレスAF に応じて更新され、その都度新たなサンプ
ルデータXQ が得られる。
【0078】 つぎに、S1208で現在アドレス(AI,
F )にピッチデータ(PI,F )が加算された結果、現
在アドレスの整数部AI が変化したならば(S1209)、
アドレスAI がエンドアドレスAE に達しているか又は
越えているか否かが判定される(S1210)。
【0079】判定がNOの場合、以下のS1211〜S1218
のループ処理により、現在アドレスの整数部AI に対応
するサンプルデータが計算される。すなわち、まず、旧
I という変数(図7参照)には、現在アドレスの整数
部AI が変化する前の値が格納されている。これは、後
述するS1213又はS1224の処理の繰り返しにより実現さ
れる。
【0080】この旧AI の値がS1213で順次インクリメ
ントされながら、S1218において、旧AI により指示さ
れる制御データ兼波形用ROM212(図2)上の適応
量子化差分データが読み出され、逆量子化の処理により
差分値Dが演算される。この逆量子化は、前述した如
く、適応量子化差分波形データに量子化データを乗算す
ることで実現されるが、このときの量子化データは、量
子化データ現在アドレスADRで指示される制御データ
兼波形用ROM212上のデータとして読み出される
(図11参照)。
【0081】この場合の量子化データは、すでに説明し
たように差分値の8サンプル毎に1データずつが対応し
ている。そこで、ブロック内カウンタBKという変数が
用意され(図7参照)、S1214において上記カウンタB
Kが初期値0から順次インクリメントされ、S1213にお
いてそのカウンタBKの値が7を越えたか否かが判別さ
れることにより、8サンプル進んだか否かが判別され
る。そして、BKの値が7を越えたら再びBKの値を初
期値0に戻し(S1216)、量子化データ現在アドレスA
DRの値を1だけ進める(S1217)。
【0082】このようにして、適切な量子化データ現在
アドレスADRによって読み出される適切な量子化デー
タに基づいて、S1218で差分値Dが演算される。そし
て、この差分値Dが、S1212において順次サンプルデー
タXP に累算される。
【0083】以上の動作が繰り返される結果、旧AI
値が変化後の現在アドレスの整数部AI に等しくなった
時点で、サンプルデータXP の値は変化後の現在アドレ
スの整数部AI に対応する値となる。
【0084】このようにして、現在アドレスの整数部A
I に対応するサンプルデータXP が求まると、S1211
判定がYESとなり、前述の補間値の演算処理
(S1229)に移る。
【0085】上述の音源処理が各インタラプトタイミン
グ毎に繰り返され、S1210の判定がYESに変化した
ら、つぎのループ処理に入る。まず、エンドアドレスA
E を越えた分のアドレス(AI −AE )がループアドレ
スAL に加算され、得られたアドレスが新たな現在アド
レスの整数部AI とされる(S1219)。
【0086】以下、ループアドレスAL からどれだけア
ドレスが進んだかによって、差分値Dが演算され累算さ
れる操作が何回か繰り返されることにより、新たな現在
アドレスの整数部AI に対応するサンプルデータXP
計算される。
【0087】すなわち、まず、初期設定としてサンプル
データXP が予め設定されているループアドレスAL
のサンプルデータXPL(図7参照)の値とされ、旧AI
がループアドレスAL の値とされる。
【0088】更に、量子化データ現在アドレスADR及
びブロック内カウンタBKの各値が、ループアドレスA
L において対応する値ADRL 及びBKL とされる(S
1220)。
【0089】AL 、XPL、ADRL 及びBKL の各値
は、予め制御データ兼波形用ROM212からRAM2
06の各発音チャネル領域(図7参照)に読み出されて
いる。なお、これらは演奏者が特には図示しない手段に
より設定できるようにしてもよい。
【0090】つづいて、以下のS1221〜S1228の処理が
繰り返される。すなわち、旧AI の値がS1224で順次イ
ンクリメントされながら、S1221において、旧AI によ
り指示される制御データ兼波形用ROM212(図2)
上の適応量子化差分データが読み出され、逆量子化の処
理によって差分値Dが演算される。
【0091】このとき、S1218の場合と同様に、量子化
データ現在アドレスADRで指示される制御データ兼波
形用ROM212上のアドレスから量子化データが読み
出され、適応量子化差分データに乗算されることによ
り、差分値Dが演算される。
【0092】このときの量子化データ現在アドレスAD
Rは、前述のS1214〜S1217の処理と同様のS1225〜S
1228の処理によって更新される。そして、この差分値D
が、S1223において順次サンプルデータXP に累算され
る。
【0093】以上の動作が繰り返される結果、旧AI
値が変化後の現在アドレスの整数部AI に等しくなった
時点で、サンプルデータXP の値はループ処理後の新た
な現在アドレスの整数部AI に対応する値となる。
【0094】このようにして、新たな現在アドレスの整
数部AI に対応するサンプルデータXP が求まると、S
1222における判定がYESとなり、前述の補間値の演算
処理(S1229)に移る。
【0095】以上のようにして、1発音チャネル分のA
DPCM方式による波形データが、RAM206(図
2)上の各発音チャネル領域の出力O(図7参照)とし
て得られ、前述したようにその出力OがステップS1232
において波形データバッフアB(図8参照)に累算され
る。このバッファBには、前述したように他の発音チャ
ネルに対する音源処理(図5S502 〜S509 )で生成さ
れた楽音信号出力が累算され、最終的に8チャネル分が
累算されたデータとして、1サンプル分の楽音信号デー
タが生成される。
【0096】ここで、上述の1発音チャネル分のADP
CM方式による音源処理により出力Oとして得られる楽
音データは、本実施例の場合、15ビットの精度を有す
る。従って、波形データバッフアBに得られる8チャネ
ル分が累算された楽音データは、15ビットの8倍の1
8ビットの精度を有する。そして、上述の波形データバ
ッフアBの累算波高値は、前述したように、図4のイン
タラプト処理の最後のステップS403 において、図2の
累算波高値出力ラッチ213にラッチされる。この結
果、累算波高値出力ラッチ213は、18ビットの楽音
サンプルデータを出力することになる。処理回路105の動作原理 次に、図1の処理回路105について説明する。ここで
は、オーバーサンプリング、ノイズシェーピング、ディ
ザなどの信号処理が行われる。以下、処理回路105の
具体的な構成および動作について説明する前に、上記各
信号処理の動作原理について説明する。 <オーバーサンプリング処理の原理>まず、オーバーサ
ンプリング処理の原理について説明する。
【0097】例えば周波数帯域が20KHz である音響信号
が44.1KHz のサンプリング周波数(=fs )でサンプリ
ングされると、図17に示すように音響信号成分の他
に、音響信号のイメージ成分が、fs 、2fs 、3fs
、4fs 、・・・に相当する各周波数44.1KHz 、88.2K
Hz 、132.3 、176.4KHzに発生する。この場合、音響信
号のイメージ成分の下限の周波数24.1KHz と音響信号の
上限の周波数20KHz との間は、わずか4.1KHzしか離れて
いない。
【0098】復調の段階では、この狭い帯域内にカット
オフを有するローパスフィルタリングを行って、周波数
20KHz 以下の目的とする音響信号成分のみを抽出するこ
とにより、周波数20KHz 以上のイメージ成分が上記音響
信号成分に折り返しノイズとして重畳されないように処
理されなければならない。そして、上記信号成分の抽出
に際しては、周波数20KHz 以下は可能な限り一様な振幅
特性を有し、24.1KHz以上の信号遮断域では目標とする
S/N比以上の減衰量を保ことが必要である。さらに音
質上大切な要素として、20KHz 以下の通過帯域内での位
相特性が線型、つまり群遅延特性が平坦である必要があ
る。
【0099】以上のような仕様を通常のアナログフィル
タで実現するには、上述の厳しい特性を満足させるため
に、かなり高次のフィルタが必要になる。実際には9〜
13次のチェビシェフ形のアクティブフィルタが用いら
れるが、帯域内の群遅延特性を平坦にすることは困難で
ある。
【0100】オーバーサンプリングは、上述の問題を解
決する技術である。その動作原理を4倍オーバーサンプ
リングの場合を例に説明する。まず、元のサンプル列の
各サンプル間に新たに3つの適当なサンプルが挿入され
て全体のサンプル数が4倍にされる。ここで、サンプリ
ング周波数を元の44.1KHz の4倍の176.4KHzに定義する
と、上述のサンプル数が4倍にされた信号においては、
図17の斜線部で示される元の音響信号の周波数成分が
そのまま保存されるとともに、周波数20KHz 以上の周波
数を有する高調波成分が重畳される。
【0101】つぎに、上述のサンプル数が4倍にされた
信号に対して、カットオフ周波数が20KHz であるディジ
タルローパスフィルタリング処理が実行される。この処
理により、上記信号から周波数20KHz 以上の高調波成分
が除去される。
【0102】そして、上述のディジタルフィルタリング
処理の出力が、オーバーサンプリング周波数176.4KHzで
D/A変換される。この結果、D/A変換出力におい
て、元の音響信号の周波数成分が現れるとともに、オー
バーサンプリング周波数4fsの整数倍の各周波数4fs
、8fs 、12fs 、・・・を中心とする±20KHz の
各周波数帯域に、音響信号のイメージ成分が現れる。そ
して、これらイメージ成分の周波数は、図18に示され
るように、最も低い周波数でも156.4KHzとなり、元の音
響信号の周波数から遠く離される。
【0103】上述のような周波数特性を有するD/A変
換出力を、図18の点線で示されるような緩やかな遮断
特性を有するアナログフィルタに通すことにより、図1
8の斜線部で示される目的とする音響信号成分のみを得
ることができる。このような緩やかな遮断特性を有する
アナログフィルタは、次数の低い安価なもので実現する
ことができ、かつ、群遅延特性が優れたフィルタも容易
に実現できるという特徴を有する。
【0104】すなわち、オーバーサンプリング処理にお
いては、特性の良いアナログフィルタを用いるよりは、
ディジタルローパスフィルタリング処理とサンプリング
周波数の高いD/A変換器と安価なアナログローパスフ
ィルタを組み合わせた方が、安価でかつ特性の優れた音
響信号の再生システムを実現することができる。
【0105】ここで、ディジタル信号処理装置に余裕が
あれば、信号処理装置は、上述したディジタルローパス
フィルタリング処理を直接実行すればよい。しかし、前
述したサンプル数を増加させる処理とディジタルローパ
スフィルタリング処理を、図19に示すような直線補間
処理で近似的に置き換えることにより、オーバーサンプ
リングのためのディジタル信号処理を大幅に簡略化する
ことができる。
【0106】図19において、本来のサンプル値をD
1、D2、D3、・・・とし、例えば隣接するサンプル
値D1とD2の間の差分値をΔとすると、その差分値の
1/4の値Δ/4が、オーバーサンプリング周期1/
(4fs )ごとにサンプル値D1に順次加算されること
によって、上記各オーバーサンプリング周期のタイミン
グごとに直線補間値i1、i2、i3が得られる。
【0107】このようにしてサンプル数が4倍にされた
信号においては、カットオフ周波数が20KHz であるディ
ジタルローパスフィルタリング処理が実行された場合と
同様に、周波数20KHz 以上の高調波成分がほぼ除去され
る。従って、直線補間処理だけで、前述したサンプル数
を増加させる処理とディジタルローパスフィルタリング
処理に近似した処理を同時に実現することができる。
【0108】図1の処理回路105は、後に詳述するよ
うにして、上述した直線補間処理によるオーバーサンプ
リング処理を実行する。 <ノイズシェーピング処理の原理>つぎに、ノイズシェ
ーピング処理の原理について説明する。
【0109】図1の処理回路105では、後に詳述する
ようにして、図20の機能ブロック図に対応するノイズ
シェーピング処理が上述したオーバーサンプリング処理
と組み合わされて実行されることにより、量子化ノイズ
が軽減される。
【0110】本実施例では、図1のCPU104内の累
算波高値出力ラッチ213(図2)から出力される楽音
サンプルデータは前述したように18ビットの精度を有
するが、図1のD/A変換器106は16ビット精度の
ものが使用される。このため、図1の処理回路105
は、CPU104からの18ビットの楽音サンプルデー
タを16ビットのデータに再量子化し、D/A変換器1
06に出力する。
【0111】この場合、下位3ビットで表現されていた
楽音信号の振幅の小さい信号成分が切り捨てられ、その
切り捨て処理に起因して量子化ノイズが発生する。この
量子化ノイズは、ノイズシェーピングを施さない場合
は、図21に示されるように、オーバーサンプリング周
波数の1/2の周波数帯域の全体にわたって一様に分布
し、音響信号成分が存在する周波数20kHz 以下の帯域に
も一様に分布する。従って、このような量子化ノイズを
含む信号がD/A変換されると、音響信号とともに、聴
感上耳ざわりなホワイトノイズが聞こえることになる。
【0112】ここでもし、量子化ノイズ成分のみに関し
て、ノイズ全体のエネルギーは変えずに、周波数分布を
図22に示されるように周波数20kHz 以上の可聴帯域外
に偏らせることができれば、D/A変換後に、周波数20
kHz 以上の信号成分が、前述したオーバーサンプリング
時のアナログフィルタで抑制されることにより、聴感上
のノイズを減少させることができる。
【0113】このようなノイズシェーピング処理は、図
20に示される機能構成により実現できる。すなわち、
ラッチ部2005は、例えば18ビットの入力データか
ら例えば上位16ビットのみを取り出し、それを16ビ
ットの出力データとして出力する。この場合に切り捨て
られる下位3ビットは、1サンプル遅延部2006と2
008、乗算部2007と2009、および加算部20
01と2003からなる一種の高域強調フィルタ部に入
力されて、18ビットの入力データにフィードバックさ
れる。これにより、入力データの下位3ビットが切り捨
てられることに起因して出力データに重畳される量子化
ノイズの周波数特性を、図22に示されるような特性に
することができる。
【0114】ここで、上記高域強調フィルタ部の内部で
は、演算精度を上げるために18ビットの入力データに
対して、19ビットの精度で演算が実行される。また、
リミット部2004は、上記高域強調フィルタ部におけ
る演算結果がオーバーフローしその極性が反転してスパ
イクノイズが発生するのを防ぐために、演算結果を所定
の上限値又は下限値でクリップする回路である。
【0115】ディザ付加部(Dz)2002については
後述する。図1の処理回路105は、後に詳述するよう
にして、図20の機能構成に対応するノイズシェーピン
グ処理を実行する。 <ディザ処理の原理>図20の機能構成において、ディ
ザ付加部(Dz)2002は、加算部2001を介して
18ビットの入力データにランダムに変化する微小雑音
を付加する。これにより、前述した19ビットから16
ビットへの再量子化の段階において、カットされる下位
3ビットに含まれる微小な楽音信号の成分が16ビット
の出力データにわずかに含まれることになり、聴感上、
その微小な楽音信号成分をある程度再生することが可能
となる。
【0116】図1の処理回路105は、後に詳述するよ
うにして、図20の機能構成の一部として、上記ディザ
処理を実行する。処理回路105の具体的説明 次に、上述したオーバーサンプリング処理、ノイズシェ
ーピング処理、およびディザ処理を実行する処理回路1
05の具体的な構成および動作について説明する。 <処理回路105の全体的な構成と動作>図23は、図
1の処理回路105の全体構成図である。
【0117】まず、分周回路2301は、CPU104
(図1)内のクロック発生部203(図2参照)から出
力されるマスタークロック出力CK1、CK2の共通の
周波数を1/16分周し、図24に示されるように、位
相が異なる同じ周波数の4個のクロックNSCK0、N
SCK1、NSCK2、NSCK3を得る。
【0118】つぎに、64進カウンタ2302は、上記
クロックNSCK1に従って64カウントの計数動作を
行う。その6桁の各出力は、クロックNSCK1のパル
スの後に到来するクロックNSCK0のパルスにより、
カウンタラッチ2303(図23)にラッチされ、デコ
ーダ回路2304に出力される。
【0119】デコーダ回路2304は、64進カウンタ
2302の出力に従って、図23に示されるような各種
制御クロックを生成する。これらの制御クロックは、演
算回路2305を制御する。
【0120】演算回路2305は、分周回路2301か
らのクロックNSCK0、NSCK2、NSCK3、お
よびCPU104(図1)のクロック発生部203(図
2)からのインタラプト信号INTによって制御され
る。さらに、演算回路2305には、CPU104の累
算波高値出力ラッチ213(図2)を介して、18ビッ
トの楽音サンプルデータが入力される。そして、演算回
路2305は、前述したオーバーサンプリング処理、ノ
イズシェーピング処理、およびディザ処理を実行し、そ
の結果得られる16ビットの楽音信号データをD/A変
換器106(図1)に出力する。
【0121】ここで、64進カウンタ2302のカウン
ト値が00(H)(「(H)」は16進表現を示す)か
ら3F(H)まで1周して、その値が00(H)になる
ごとに、CPU104(図1)内のクロック発生部20
3(図2参照)から、インタラプト信号INTのパルス
が図25に示されるように1個出力される。そして、こ
のインタラプト信号INTの周期はサンプリング周期1
/fsに等しい。
【0122】さらに、各インタラプト周期(すなわち、
各サンプリング周期)の間に、64進カウンタ2302
が16カウントを計数し、そのカウント値が0B
(H)、1B(H)、2B(H)または3B(H)にな
るごとに、図25のように、演算回路2305内の出力
ラッチO(後述する)が、図1のD/A変換器106に
新たな楽音信号データを出力する。従って、この出力周
期は1/(4fs )となり、これが4倍オーバーサンプ
リング周期となる。
【0123】このように、本来のサンプリング周波数の
4倍のサンプリング周波数でオーバーサンプリング処理
が行われるが、本実施例ではこのオーバーサンプリング
処理として、図19を用いて説明したように、本来の隣
接するサンプル値の間をそれらの差分値に基づく3個の
補間値で直線補間する処理が、演算回路2305で行わ
れる。
【0124】すなわち、64進カウンタ2302が16
カウントを計数するごとに、演算回路2305において
1個の補間値が計算され、それが楽音信号としてD/A
変換器106に出力される。また、64進カウンタ23
02が64カウントを計数してそのカウント値が1周す
るごとに、CPU104(図1)の累算波高値出力ラッ
チ213(図2参照)から演算回路2305に新たなサ
ンプル値が入力され、演算回路2305において、その
新たなサンプルに基づく上述の直線補間処理が続けられ
る。
【0125】また、演算回路2305において、上述の
補間値が計算されるごとに、前述したノイズシェーピン
グ処理とディザ処理が実行される。 <演算回路の構成>次に、演算回路2305の具体的な
構成および動作について順次説明する。
【0126】図26および図27は、処理回路105
(図1)内の演算回路2305(図23)の回路構成図
である。まず、入力ラッチ2601は、CPU104
(図1)内の累算波高値出力ラッチ213から出力され
る18ビットの楽音サンプルデータをラッチする。この
入力ラッチ2601は、図1のCPU104の動作と処
理回路105の動作との同期をとる重要な機能を有す
る。
【0127】いま、図2の構成を有するCPU104の
音源処理に要する時間は、音源処理用のソフトウエア
(例えば図12〜図15に対応するプログラム)の実行
条件により変化するため、音源処理が終了して累算波高
値出力ラッチ213(図2)に楽音のサンプルデータが
ラッチされるタイミングは、図28に示されるように一
定でない。従って、累算波高値出力ラッチ213の出力
がそのまま次の処理回路105に出力されると、CPU
104の動作と処理回路105の動作とが同期しなくな
ってしまう。
【0128】そこで、本実施例では、累算波高値出力ラ
ッチ213の出力が、図26の入力ラッチ2601(図
26参照)に入力され、図2のクロック発生部203か
ら出力されるサンプリングクロックと等しい間隔を有す
るインタラプト信号INTにより、楽音サンプルデータ
が入力ラッチ2601にラッチさせられる。これによ
り、CPU104から出力される楽音サンプルデータ
は、図28に示されるように、インタラプト信号INT
に同期した一定時間間隔で処理回路105に入力される
ことになる。
【0129】以上のようにして、CPU104と処理回
路105との間の同期をとることができる。つぎに、図
26の入力ラッチ2601の電源投入時の動作につき説
明する。
【0130】図1の構成を有する電子楽器の電源が投入
されると、CPU104のオペレーション解析部207
(図2)は、前述した図3のメインフローチャートに従
ったプログラムの実行を開始する。そして、まず、前述
した図3のステップS301 のパワーオンイニシャル処理
が実行される。このソフトウエア処理においては、前述
したように、図2のRAM206の内容の初期化、累算
波高値出力ラッチ213の内容の初期化が行われる。
【0131】ここで、電源が投入されてから、図3のメ
インフローチャートに対応するプログラムの実行が開始
されるまでには、所定の時間を要する。そのため、上述
のソフト的な初期化処理が実行されるまでにも若干の時
間が必要である。
【0132】一方、CPU104の外部にある処理回路
105は、電源の投入と同時にCPU104からは独立
して動作を開始するため、上述の累算波高値出力ラッチ
213の内容がリセットされる前の僅かな時間の間に、
処理回路105内の入力ラッチ2601にラッチされて
いるデータの内容は保証されない。
【0133】その結果、入力ラッチ2601の内容が処
理回路105において処理されてしまい、その処理結果
がD/A変換器106(図1)に雑音として出力されて
しまう恐れがある。
【0134】そこで、本実施例では、このような雑音の
発生を防ぐために、電源の投入と同時に、処理回路10
5内の図26の入力ラッチ2601が、強制的にハード
リセットされる。 <演算回路の構成(全体動作)>つぎに、図23のカウ
ンタラッチ2303の示す各タイミングで、図26およ
び図27の構成を有する演算回路2305において実行
される各処理について、図29を用いて説明する。
【0135】まず、図29において、「機能」は後述す
る各処理において行われるラッチ間の転送や演算の内容
を示し、それぞれの「機能」には、図29のそれぞれの
「処理」で示される処理番号が対応している。
【0136】つぎに、図29において、「カウンタラッ
チ」は、それぞれの「機能」が実行されるタイミングを
示すカウンタラッチ2303(図23)の値である。こ
の値に基づいて、デコーダ回路2304(図23)が、
以下に示す各制御クロックを生成する。
【0137】ここで、図29のそれぞれの「機能」に対
応して、各ラッチ(例えばT1 ラッチ2610)の出力
は、処理B以外は、全て加減算器(FAS)2628の
入力端子AまたはB(以後、FAS−A、FAS−Bと
呼ぶ)を通過させられる。そのために、図26または図
27の各ラッチの出力ゲート(例えばT1 ラッチ261
0の出力ゲート2612)が開かれる必要があるととも
に、FAS2628の入力ゲート2624、2626の
いずれか一方または両方が、図29の「機能」の内容に
応じて開かれる必要がある。
【0138】各ラッチの出力ゲート(例えばT1 ラッチ
2610の出力ゲート2612)は、デコーダ回路23
04(図23)から出力される制御クロックがハイレベ
ルのときに、クロックNSCK0のタイミング(図24
参照)で、出力ゲートを制御するアンドゲート(例えば
2613)がオンとなるため、開かれる。この制御クロ
ックが、図29に示される「FAS−A入力ゲートクロ
ック」と「FAS−B入力ゲートクロック」である。
【0139】また、FAS2628の入力ゲート262
4、2626は、デコーダ回路2304(図23)から
出力される各制御クロックがローレベル“0”でアンド
ゲート2625または2627がオフのときに開いて、
各制御クロックがハイレベル“1”でアンドゲート26
25または2627がオンのときに閉じる。これら入力
ゲート2624および2626を制御する各制御クロッ
クが、図29に示される「ZNSA」と「ZNSB」で
ある。
【0140】FAS2628は、デコーダ回路2304
から出力される制御クロックがローレベル“0”かハイ
レベル“1”かにより、加算または減算のいずれかの演
算を行う。この制御クロックが、図29における「NS
SUB(減算)」である。
【0141】FAS2628での演算結果は、リミット
回路2629およびT3 ラッチ2630を介して、図2
6、図27の各ラッチ(例えばT1 ラッチ2610)に
戻される。このとき、デコーダ回路2304(図23)
から出力される制御クロックがハイレベルのときに、ク
ロックNSCK3のタイミング(図24参照)で、該当
するラッチの入力を制御するアンドゲート(例えば26
33)がオンとなる。この制御クロックが、図29にお
ける「ラッチクロック」である。
【0142】なお、リミット回路2629は、図20の
リミット部2004と同じ機能を有し、FAS2628
の出力が19ビットよりオーバーフローしないように、
その出力を必要に応じてクリップする回路である。 <演算回路の構成(処理1〜処理6の全体説明)>以
下、図29に基づいて、図26、図27の構成を有する
演算回路2305の具体的な動作について順次説明す
る。
【0143】図23の64進カウンタ2302は、図3
0に示されるように、CPU104からのインタラプト
信号INTの1周期毎に、00(H)〜3F(H)の計
数を繰り返すが、カウント値00(H)と01(H)で
は、処理はなにも行われない。つぎに、カウント値02
(H)〜06(H)では、図30に示されるように、オ
ーバーサンプリング処理、ノイズシェーピング処理およ
びディザ処理のための前処理が行われる。
【0144】この前処理は、図29に処理1〜処理6と
して示されている。CPU104からの18ビットの楽
音サンプルデータは、図26、図27の演算回路230
5内を、入力ラッチ2601→Σラッチ2602→Σ-1
ラッチ2620→T1 ラッチ2610およびT2 ラッチ
2614の順に移動する。ここで、入力ラッチ2601
の機能については前述した。また、Σラッチ2602と
Σ-1ラッチ2620は、直線補間の差分値を演算するた
めに、それぞれ入力ラッチ2601からの現在の楽音サ
ンプルデータと1サンプリングタイミング(=インタラ
プトタイミング)前の楽音サンプルデータを保持する。
1 ラッチ2610は、オーバーサンプリング処理であ
る直線補間処理における補間値を保持する。また、T2
ラッチ2614は、ノイズシェーピング処理とディザ処
理における中間データを保持する。 <演算回路の構成(処理1の説明)>まず、カウンタラ
ッチ2303(図23)がカウント値02(H)を示す
タイミングで、Σラッチ2602にラッチされている前
回のサンプリングタイミング(=インタラプトタイミン
グ)の楽音サンプルデータが、Σ-1ラッチ2620に移
される(図29の処理1)。すなわち、Σラッチ260
2の出力は、出力ゲート2604、FAS2628、リ
ミット回路2629、T3 ラッチ2630を順次通っ
て、Σ-1ラッチ2620に入力される。
【0145】以下、この具体的な動作を示す。なお、図
24のタイミングチャートと、図29のカウンタラッチ
が02(H)の欄を、随時参照するものとする。まず、
デコーダ2304からFAS−A入力ゲートクロックと
してSIGGTが入力し、クロックNSCK0の入力タ
イミングで、Σラッチ2602の出力ゲート2604が
オンになる。
【0146】また、デコーダ2304から制御クロック
ZNSAとして“0”が入力するためアンドゲート26
25の出力がローレベルとなり、FAS2628の入力
ゲート2624はオンになる。一方、デコーダ2304
から制御クロックZNSBとして“1”が入力するた
め、クロックNSCK0の入力タイミングでアンドゲー
ト2627の出力がハイレベルとなり、FAS2628
の入力ゲート2626はオフになる。さらに、デコーダ
2304からFAS2628へ入力される制御クロック
NSSUBは0であるため、FAS2628は加算演算
を実行する。
【0147】この結果、FAS2628においては、F
AS−Aの入力値にFAS−Bの入力値“0”が加算さ
れ、従って、FAS−Aから入力されたΣラッチ260
2の出力がそのままFAS2628の出力端子に出力さ
れる。
【0148】その後、上記出力はリミット回路2629
を通って、クロックNSCK2の入力タイミングでT3
ラッチ2630を通過する。ここで、デコーダ2304
からはラッチクロックとしてSIG1CKが入力してい
る。従って、クロックNSCK3の入力タイミングでア
ンドゲート2621がオンとなり、T3 ラッチ2630
の出力がΣ-1ラッチ2620にラッチされる。
【0149】以上の処理で、Σラッチ2602の内容が
Σ-1ラッチ2620に移される。 <演算回路の構成(処理2の説明)>次に、カウンタラ
ッチ2303(図23)がカウント値03(H)を示す
タイミングで、入力ラッチ2601にラッチされている
楽音サンプルデータが、Σラッチ2602に移される
(図29処理2)。ここで、入力ラッチ2601には、
前述したように、インタラプト信号INTの入力タイミ
ングで(図24参照)、CPU104(図1)内の累算
波高値出力ラッチ213(図2参照)から楽音サンプル
データがラッチされている。
【0150】ここで、図29のカウンタラッチが03
(H)である欄を参照すると理解されるように、デコー
ダ回路2304からラッチクロックとしてSIGCKが
入力し、クロックNSCK3の入力タイミングでアンド
ゲート2603がオンになることによって、上述の処理
が実行される。 <演算回路の構成(処理3の説明)>つづいて、カウン
タラッチ2303(図23)がカウント値04(H)を
示すタイミングで、Σ-1ラッチ2620にラッチされた
前回のサンプリングタイミング(=インタラプトタイミ
ング)における楽音サンプルデータに、Dzラッチ26
06に保持されているディザ値が加算されて、その加算
値がT2 ラッチ2614に移される(図29の処理
3)。この処理は、前述した図20のディザ付加部(D
z)2002と加算部2001の機能に対応し、このT
2 ラッチ2614の内容に対して、後述するノイズシェ
ーピング処理が実行される。
【0151】以下、この具体的な動作を示す。なお、図
24のタイミングチャートと、図29のカウンタラッチ
が04(H)の欄を、随時参照するものとする。まず、
デコーダ2304からFAS−B入力ゲートクロックと
してSIG1GTが入力し、クロックNSCK0の入力
タイミングで、Σ-1ラッチ2620の出力ゲート262
2がオンになる。また、デコーダ2304から制御クロ
ックZNSBとして“0”が入力するためアンドゲート
2627の出力がローレベルとなり、FAS2628の
入力ゲート2626はオンになる。その結果、前述した
処理1でΣ-1ラッチ2620に保持された前回のサンプ
リングタイミングの楽音サンプルデータが、FAS−B
からFAS2628に入力される。
【0152】一方、デコーダ2304からFAS−A入
力ゲートクロックとしてDZGTが入力し、クロックN
SCK0の入力タイミングで、Dzラッチ2606の出
力ゲート2608がオンになる。また、デコーダ230
4から制御クロックZNSAとして“0”が入力するた
めアンドゲート2625の出力がローレベルとなり、F
AS2628の入力ゲート2624はオンになる。その
結果、乱数発生回路2653により発生され後述する図
29の処理10においてDzラッチ2606に保持され
ているディザ値が、FAS−AからFAS2628に入
力される。
【0153】そして、デコーダ2304からFAS26
28へ入力される制御クロックNSSUBは0であるた
め、FAS2628では、FAS−Bから入力されたΣ
-1ラッチ2620の出力に、FAS−Aから入力された
Dzラッチ2606からのディザ値が加算される。
【0154】上記加算結果は、リミット回路2629を
通って、クロックNSCK2の入力タイミングでT3
ッチ2630を通過する。ここで、デコーダ2304か
らはラッチクロックとしてTM2CKが入力している。
従って、クロックNSCK3の入力タイミングでアンド
ゲート2615がオンとなり、T3 ラッチ2630の出
力がT2 ラッチ2614にラッチされる。
【0155】以上の処理で、Σ-1ラッチ2620にラッ
チされた前回のサンプリングタイミング(=インタラプ
トタイミング)における楽音サンプルデータにディザ値
が加算されて、T2 ラッチ2614に移される。 <演算回路の構成(処理4の説明)>つぎに、カウンタ
ラッチ2303(図23)がカウント値05(H)を示
すタイミングで、後述するオーバーサンプリング処理で
ある直線補間処理に使用される歩進値Δ/4の計算処理
が行われる(図29の処理4)。この歩進値は、図19
で前述したように、現在のサンプル値の前回のサンプル
値に対する差分値Δが1/4された値である。すなわ
ち、このタイミングでは、前述した処理2(図29参
照)でΣラッチ2602に保持された今回のサンプリン
グタイミング(=インタラプトタイミング)の楽音サン
プルデータから、前述した処理1(図29参照)でΣ-1
ラッチ2620に保持された前回のサンプリングタイミ
ングの楽音サンプルデータが減算されることにより差分
値が計算され、その値が1/4されることによって歩進
値Δ/4が計算され、この値がΔ/4ラッチ2632に
ラッチされる。
【0156】以下、この具体的な動作を示す。なお、図
24のタイミングチャートと、図29のカウンタラッチ
が05(H)の欄を随時参照するものとする。まず、デ
コーダ2304からFAS−A入力ゲートクロックとし
てSIGGTが入力し、クロックNSCK0の入力タイ
ミングで、Σラッチ2602の出力ゲート2604がオ
ンになる。また、デコーダ2304から制御クロックZ
NSAとして“0”が入力するためアンドゲート262
5の出力がローレベルとなり、FAS2628の入力ゲ
ート2624はオンになる。その結果、Σラッチ260
2に保持されている今回のサンプリングタイミングの楽
音サンプルデータが、FAS−AからFAS2628に
入力される。
【0157】一方、デコーダ2304からFAS−B入
力ゲートクロックとしてSIG1GTが入力し、クロッ
クNSCK0の入力タイミングで、Σ-1ラッチ2620
の出力ゲート2622がオンになる。また、デコーダ2
304から制御クロックZNSBとして“0”が入力す
るためアンドゲート2627の出力がローレベルとな
り、FAS2628の入力ゲート2626はオンにな
る。その結果、Σ-1ラッチ2620に保持されている前
回のサンプリングタイミングの楽音サンプルデータが、
FAS−BからFAS2628に入力される。
【0158】そして、デコーダ2304からFAS26
28へ入力される制御クロックNSSUBは1であるた
め、FAS2628では、FAS−Aから入力されたΣ
ラッチ2602の出力から、FAS−Bから入力された
Σ-1ラッチ2620の出力が減算される。
【0159】上記減算結果は、リミット回路2629を
通って、クロックNSCK2の入力タイミングでT3
ッチ2630を通過する。ここで、デコーダ2304か
らはラッチクロックとしてDEFCKが入力している。
従って、クロックNSCK3の入力タイミングでアンド
ゲート2633がオンとなり、T3 ラッチ2630の出
力が除算器2631で1/4され、その結果として得ら
れる歩進値Δ/4が、Δ/4ラッチ2614にラッチさ
れる。ここで、除算器2631は、FAS2628から
リミット回路2629およびT3ラッチ2630を介し
て入力する19ビットのパラレルデータに対して、2ビ
ットの算術右シフト演算を実行する回路である。
【0160】以上のようにして、直線補間処理のための
歩進値Δ/4がΔ/4ラッチ2614にラッチされる。 <演算回路の構成(処理5の説明)>つぎに、カウンタ
ラッチ2303(図23)がカウント値06(H)を示
すタイミングで、前述した処理1(図29参照)でΣ-1
ラッチ2620に保持された前回のサンプリングタイミ
ング(=インタラプトタイミング)の楽音サンプルデー
タがT1 ラッチ2610に移される(図29の処理
5)。このT1 ラッチ2610の内容に対して、後述す
るオーバーサンプリング処理である直線補間処理が実行
される。
【0161】以下、この具体的な動作を示す。なお、図
24のタイミングチャートと、図29のカウンタラッチ
が06(H)の欄を随時参照するものとする。まず、デ
コーダ2304からFAS−B入力ゲートクロックとし
てSIG1GTが入力し、クロックNSCK0の入力タ
イミングで、Σ-1ラッチ2620の出力ゲート2622
がオンになる。
【0162】また、デコーダ2304から制御クロック
ZNSBとして“0”が入力するためアンドゲート26
27の出力がローレベルとなり、FAS2628の入力
ゲート2626はオンになる。一方、デコーダ2304
から制御クロックZNSAとして“1”が入力するた
め、クロックNSCK0の入力タイミングでアンドゲー
ト2625の出力がハイレベルとなり、FAS2628
の入力ゲート2624はオフになる。さらに、デコーダ
2304からFAS2628へ入力される制御クロック
NSSUBは0であるため、FAS2628は加算演算
を実行する。
【0163】この結果、FAS2628においては、F
AS−Aの入力値“0”にFAS−Bの入力値が加算さ
れ、従って、FAS−Bから入力されたΣ-1ラッチ26
20の出力がそのままFAS2628の出力端子に出力
される。
【0164】その後、上記出力はリミット回路2629
を通って、クロックNSCK2の入力タイミングでT3
ラッチ2630を通過する。ここで、デコーダ2304
からはラッチクロックとしてTM1CKが入力してい
る。従って、クロックNSCK3の入力タイミングでア
ンドゲート2611がオンとなり、T3 ラッチ2630
の出力がT1 ラッチ2610にラッチされる。
【0165】以上の処理でΣ-1ラッチ2620の内容が
1 ラッチ2610に移される。以上、図29の処理1
〜処理5によって、オーバーサンプリング処理、ノイズ
シェーピング処理およびディザ処理のための前処理が終
了する。 <演算回路の構成(処理6〜処理12の全体説明)>つ
づいて、ノイズシェーピング処理、オーバーサンプリン
グ処理である直線補間処理、およびディザ処理のそれぞ
れが実行される。
【0166】これらの処理は、カウンタラッチ2303
のカウント値(=64進カウンタ2302のカウント
値)がインタラプト信号INTの1周期で1周する間
に、図30に示されるように、同カウント値が、08
(H)〜0E(H)、18(H)〜1E(H)、28
(H)〜2E(H)、および38(H)〜3E(H)と
なる各区間でそれぞれ1回ずつ繰り返される。すなわ
ち、1インタラプト周期の1/4周期ごとに一連の演算
が実行され、これが4倍オーバーサンプリング周期に対
応することになる。
【0167】上述の一連の処理は、図29においてカウ
ンタラッチ2303のカウント値が“−8”〜“−E”
(“−”は、0、1、2、または3のいずれかの値を示
す)となる処理6〜処理12として示される。 <演算回路の構成(処理6の説明)>まず、図29の処
理6〜処理9は、ノイズシェーピング処理であって、前
述した図20の機能構成に対応する。
【0168】始めに、カウンタラッチ2303(図2
3)がカウント値“−8”(H)を示すタイミングで実
行される図29の処理6においては、T2 ラッチ261
4の内容からZ-2ラッチ2636の内容が減算され、そ
の減算結果が新たにT2 ラッチ2614にラッチされ
る。
【0169】ここで、T2 ラッチ2614には、後述す
る図29の処理10〜処理12、または前述した図29
の処理3により、ディザ処理が施されたされたオーバー
サンプリングデータが保持されている。また、Z-2ラッ
チ2636には、後述する図29の処理8と処理9によ
って、ノイズシェーピング処理された19ビットの楽音
サンプルデータから切り捨てられた下位3ビットの信号
成分をZ-1ラッチ2640を介して2オーバーサンプリ
ングタイミング分遅延させた信号が保持されている。
【0170】従って、T2 ラッチ2614は図20のラ
ッチ部2005に対応し、図29の処理6は、図20の
遅延部2006、2008、乗算部2009、および加
算部2001の処理に対応することになる。
【0171】以下、この具体的な動作を示す。なお、図
24のタイミングチャートと、図29のカウンタラッチ
が“−8”(H)の欄を、随時参照するものとする。ま
ず、デコーダ2304からFAS−A入力ゲートクロッ
クとしてTM2AGTが入力し、クロックNSCK0の
入力タイミングで、T2 ラッチ2614の出力ゲート2
616がオンになる。また、デコーダ2304から制御
クロックZNSAとして“0”が入力するためアンドゲ
ート2625の出力がローレベルとなり、FAS262
8の入力ゲート2624はオンになる。その結果、T2
ラッチ2614に保持されているディザ処理が施された
オーバーサンプリングデータが、FAS−AからFAS
2628に入力される。
【0172】一方、デコーダ2304からFAS−B入
力ゲートクロックとしてZ2GTが入力し、クロックN
SCK0の入力タイミングで、Z-2ラッチ2636の出
力ゲート2638がオンになる。また、デコーダ230
4から制御クロックZNSBとして“0”が入力するた
めアンドゲート2627の出力がローレベルとなり、F
AS2628の入力ゲート2626はオンになる。その
結果、Z-2ラッチ2636に保持されている遅延サンプ
ルデータが、FAS−BからFAS2628に入力され
る。
【0173】そして、デコーダ2304からFAS26
28へ入力される制御クロックNSSUBは1であるた
め、FAS2628では、FAS−Aから入力されたT
2 ラッチ2614の出力から、FAS−Bから入力され
たZ-2ラッチ2636の出力が減算される。
【0174】上記減算結果は、リミット回路2629を
通って、クロックNSCK2の入力タイミングでT3
ッチ2630を通過する。ここで、デコーダ2304か
らはラッチクロックとしてTM2CKが入力している。
従って、クロックNSCK3の入力タイミングでアンド
ゲート2633がオンとなり、T3 ラッチ2630の出
力がT2 ラッチ2614に新たにラッチされる。 <演算回路の構成(処理7の説明)>つぎに、カウンタ
ラッチ2303(図23)がカウント値“−9”(H)
を示すタイミングで実行される図29の処理7において
は、T2 ラッチ2614の内容に、Z-1ラッチ2640
の内容を2倍した値が加算され、その加算結果が新たに
2 ラッチ2614にラッチされる。
【0175】ここで、T2 ラッチ2614には、図29
の処理6の場合と同様、後述する図29の処理10〜処
理12、または前述した図29の処理3により、ディザ
処理が施されたされたオーバーサンプリングデータが保
持されている。また、Z-1ラッチ2640には、後述す
る図29の処理9により、ノイズシェーピング処理され
た19ビットの楽音サンプルデータから切り捨てられた
下位3ビットの信号成分を1オーバーサンプリングタイ
ミング分遅延させた信号が保持されている。
【0176】従って、図29の処理7は、図20の遅延
部2006、乗算部2007、および加算部2003の
処理に対応することになる。以下、この具体的な動作を
示す。なお、図24のタイミングチャートと、図29の
カウンタラッチが“−9”(H)の欄を、随時参照する
ものとする。
【0177】まず、デコーダ2304からFAS−A入
力ゲートクロックとしてTM2AGTが入力し、クロッ
クNSCK0の入力タイミングで、T2 ラッチ2614
の出力ゲート2616がオンになる。また、デコーダ2
304から制御クロックZNSAとして“0”が入力す
るためアンドゲート2625の出力がローレベルとな
り、FAS2628の入力ゲート2624はオンにな
る。その結果、T2 ラッチ2614に保持されているデ
ィザ処理が施されたオーバーサンプリングデータが、F
AS−AからFAS2628に入力される。
【0178】一方、デコーダ2304からFAS−B入
力ゲートクロックとしてZ12GTが入力し、クロック
NSCK0の入力タイミングで、Z-1ラッチ2640の
出力ゲート2645がオンになる。また、デコーダ23
04から制御クロックZNSBとして“0”が入力する
ためアンドゲート2627の出力がローレベルとなり、
FAS2628の入力ゲート2626はオンになる。そ
の結果、Z-1ラッチ2640に保持されている遅延サン
プルデータが、乗算器2644で2倍された後に、FA
S−BからFAS2628に入力される。ここで、乗算
器2644は、1ビットの算術左シフト演算を実行する
回路である。
【0179】そして、デコーダ2304からFAS26
28へ入力される制御クロックNSSUBは0であるた
め、FAS2628においては、FAS−Aから入力さ
れたT2 ラッチ2614の出力に、FAS−Bから入力
されたZ-1ラッチ2640の内容が2倍された値が加算
される。
【0180】上記加算結果は、リミット回路2629を
通って、クロックNSCK2の入力タイミングでT3
ッチ2630を通過する。ここで、デコーダ2304か
らはラッチクロックとしてTM2CKが入力している。
従って、クロックNSCK3の入力タイミングでアンド
ゲート2633がオンとなり、T3 ラッチ2630の出
力がT2 ラッチ2614に新たにラッチされる。 <演算回路の構成(処理8の説明)>つぎに、カウンタ
ラッチ2303(図23)がカウント値“−A”(H)
を示すタイミングで実行される図29の処理8において
は、Z-1ラッチ2640の内容がZ-2ラッチ2636に
移される。
【0181】ここで、Z-1ラッチ2640には、後述す
る図29の処理9によって、ノイズシェーピング処理さ
れた19ビットの楽音サンプルデータから切り捨てられ
た下位3ビットの信号成分を1サンプルタイミング分遅
延させた信号が保持されている。
【0182】従って、図29の処理8は、図20の遅延
部2006の内容を遅延部2008でさらに1オーバー
サンプリングタイミング分遅延させる処理に対応するこ
とになる。
【0183】以下、この具体的な動作を示す。なお、図
24のタイミングチャートと、図29のカウンタラッチ
が“−A”(H)の欄を、随時参照するものとする。ま
ず、デコーダ2304からFAS−B入力ゲートクロッ
クとしてZ11GTが入力し、クロックNSCK0の入
力タイミングで、Z-1ラッチ2640の出力ゲート26
22がオンになる。
【0184】また、デコーダ2304から制御クロック
ZNSBとして“0”が入力するためアンドゲート26
27の出力がローレベルとなり、FAS2628の入力
ゲート2626はオンになる。一方、デコーダ2304
から制御クロックZNSAとして“1”が入力するた
め、クロックNSCK0の入力タイミングでアンドゲー
ト2625の出力がハイレベルとなり、FAS2628
の入力ゲート2624はオフになる。さらに、デコーダ
2304からFAS2628へ入力される制御クロック
NSSUBは0であるため、FAS2628は加算演算
を実行する。
【0185】この結果、FAS2628においては、F
AS−Aの入力値“0”にFAS−Bの入力値が加算さ
れ、従って、FAS−Bから入力されたZ-1ラッチ26
40の出力がそのままFAS2628の出力端子に出力
される。
【0186】その後、上記出力はリミット回路2629
を通って、クロックNSCK2の入力タイミングでT3
ラッチ2630を通過する。ここで、デコーダ2304
からはラッチクロックとしてZ2CKが入力している。
従って、クロックNSCK3の入力タイミングでアンド
ゲート2637がオンとなり、T3 ラッチ2630の出
力がZ-2ラッチ2636にラッチされる。
【0187】以上の処理により、Z-1ラッチ2640の
内容がZ-2ラッチ2636に移される。ところで、Z-1
ラッチ2640とZ-2ラッチ2636には、ノイズシェ
ーピング処理において、19ビットの出力信号の下位3
ビットのデータがフィードバックされる際に、1オーバ
ーサンプリングおよび2オーバーサンプリング前のデー
タ、つまり過去のデータが記憶されている。
【0188】そのため、図1のCPU104の出力が0
になると、図1の処理回路105の楽音信号の出力も0
にされるべきである。ところが、Z-1ラッチ2640と
-2ラッチ2636には、CPU104の出力が0にな
る前の値が残っている。その結果、ノイズシェーピング
処理の過程で上記各ラッチ内に残っている信号成分がD
/A変換器106(図1)に出力されてしまいノイズと
なる可能性がある。
【0189】このような現象が起きないようにするた
め、本実施例では、CPU104の出力が0になると、
図27の破線部のノイズシェーピング処理のリセット回
路2652によって、つぎのようにしてZ-1ラッチ26
40とZ-2ラッチ2636が強制的にリセットされる。
【0190】すなわち、図27において、CPU104
内のエンベロープ値出力ラッチ214(図2参照)から
出力される18ビットのエンベロープ値が、ナンドゲー
ト2649に入力されている。そして、ナンドゲート2
649の出力は、Aラッチ2650、Bラッチ2651
を介して、Z-1ラッチ2640とZ-2ラッチ2636の
各リセット端子に入力される。また、Bラッチ2651
の出力は、ディザ値を出力するDzラッチ2606のリ
セット端子にも入力される。
【0191】以上のような構成において、CPU104
からの18ビットのエンベロープ値がすべて0になる
と、ナンドゲート2649の出力がハイレベルになる。
そして、この出力がAラッチ2650およびBラッチ2
651により2サンプリングタイミング(=インタラプ
トタイミング)分遅延された後、このハイレベル信号に
よってZ-1ラッチ2640とZ-2ラッチ2636が強制
的にリセットされる。なお、上記リセット動作以後は、
前述したディザ処理によってディザ値も出力されないよ
うにするために、上記ハイレベル信号によって、ディザ
値を出力するDzラッチ2606も強制的にリセットさ
れる。
【0192】ここで、ナンドゲート2649の出力が2
サンプリングタイミング分遅延されるのは、CPU10
4からの楽音サンプルデータが演算回路2305に入力
し、同回路2305から上記楽音サンプルデータに対応
する楽音信号が出力されるまでに、2サンプリングタイ
ミング分の時間を要するため、上記リセットのタイミン
グを演算回路2305の処理タイミングに合わせるため
である。 <演算回路の構成(処理9の説明)>つぎに、カウンタ
ラッチ2303(図23)がカウント値“−B”(H)
を示すタイミングで実行される図29の処理9において
は、前述した図29の処理7でT2 ラッチ2614に得
られた19ビットの楽音サンプルデータのうち、上位1
6ビットをD/A変換器106(図1)に出力される出
力楽音サンプルデータとしてOラッチ2647にセット
し、切り捨てられる下位3ビットをZ-1ラッチ2640
にセットする処理である。
【0193】以下、この具体的な動作を示す。なお、図
24のタイミングチャートと、図29のカウンタラッチ
が“−B”(H)の欄を、随時参照するものとする。ま
ず、デコーダ2304からFAS−A入力ゲートクロッ
クとしてTM2AGTが入力し、クロックNSCK0の
入力タイミングで、T2 ラッチ2614の出力ゲート2
616がオンになる。
【0194】また、デコーダ2304から制御クロック
ZNSAとして“0”が入力するためアンドゲート26
25の出力がローレベルとなり、FAS2628の入力
ゲート2624はオンになる。一方、デコーダ2304
から制御クロックZNSBとして“1”が入力するた
め、クロックNSCK0の入力タイミングでアンドゲー
ト2627の出力がハイレベルとなり、FAS2628
の入力ゲート2626はオフになる。さらに、デコーダ
2304からFAS2628へ入力される制御クロック
NSSUBは0であるため、FAS2628は加算演算
を実行する。
【0195】この結果、FAS2628においては、F
AS−Aの入力値にFAS−Bの入力値“0”が加算さ
れ、従って、FAS−Aから入力されたT2ラッチ26
14の出力がそのままFAS2628の出力端子に出力
される。
【0196】その後、上記出力はリミット回路2629
を通って、クロックNSCK2の入力タイミングでT3
ラッチ2630を通過する。ここで、デコーダ2304
からはラッチクロックとしてDACKおよびZ1CKが
入力している。従って、クロックNSCK3の入力タイ
ミングでアンドゲート2648がオンとなる。
【0197】ここで、Oラッチ2647は、T3 ラッチ
2630からの19ビットの出力のうち上位16ビット
のみを取り込み、その16ビットのデータをそのまま出
力するように物理的に構成されている。また、Z-1ラッ
チ2640は、T3 ラッチ2630からの19ビットの
出力のうち下位3ビットのみを取り込み、上位16ビッ
トに0を挿入して、19ビットのデータとして出力する
ように物理的に構成されている。
【0198】このようにして、T2 ラッチ2614に得
られている19ビットの楽音サンプルデータのうち、上
位16ビットがOラッチ2647にラッチされ、下位3
ビットがZ-1ラッチ2640にラッチされる。
【0199】以上説明した図29の処理6〜処理9によ
って、図20の機能構成に対応するノイズシェーピング
処理が実行される。 <演算回路の構成(処理10の説明)>つぎに、カウン
タラッチ2303(図23)がカウント値“−C”
(H)を示すタイミングで実行される図29の処理10
は、オーバーサンプリング処理であって、前述した図1
9の直線補間処理である。
【0200】すなわち、処理10では、T1 ラッチ26
10にラッチされたデータに、前述した図29の処理4
でΔ/4ラッチ2632にラッチされた歩進値Δ/4が
加算されることによって、新たな直線補間値(図19参
照)が演算され、T1 ラッチ2610にラッチされる。
【0201】なお、演算前のT1 ラッチ2610には、
カウンタラッチ2303(図23)がカウント値“1
C”(H)、“2C”(H)、または“3C”(H)を
示すタイミングでは、前回のオーバーサンプリングタイ
ミングにおいて同じ処理10でラッチされた前回の直線
補間値が保持されており、同じく“0C”(H)を示す
タイミングでは、前述した図29の処理5により、直線
補間値ではなくて新たな楽音サンプルデータ(図19の
D1などに対応する)が保持されている。
【0202】以下、この具体的な動作を示す。なお、図
24のタイミングチャートと、図29のカウンタラッチ
が“−C”(H)の欄を、随時参照するものとする。ま
ず、デコーダ2304からFAS−A入力ゲートクロッ
クとしてTM1GTが入力し、クロックNSCK0の入
力タイミングで、T1 ラッチ2610の出力ゲート26
12がオンになる。また、デコーダ2304から制御ク
ロックZNSAとして“0”が入力するためアンドゲー
ト2625の出力がローレベルとなり、FAS2628
の入力ゲート2624はオンになる。その結果、T1
ッチ2610の内容がFAS−AからFAS2628に
入力される。
【0203】一方、デコーダ2304からFAS−B入
力ゲートクロックとしてDEFGTが入力し、クロック
NSCK0の入力タイミングで、Δ/4ラッチ2632
の出力ゲート2634がオンになる。また、デコーダ2
304から制御クロックZNSBとして“0”が入力す
るためアンドゲート2627の出力がローレベルとな
り、FAS2628の入力ゲート2626はオンにな
る。その結果、Δ/4ラッチ2632に保持されている
歩進値Δ/4が、FAS−BからFAS2628に入力
される。
【0204】そして、デコーダ2304からFAS26
28へ入力される制御クロックNSSUBは0であるた
め、FAS2628では、FAS−Aから入力されたT
1 ラッチ2610の出力に、FAS−Bから入力された
Δ/4ラッチ2632からの歩進値Δ/4が加算され
る。
【0205】上記加算結果は、リミット回路2629を
通って、クロックNSCK2の入力タイミングでT3
ッチ2630を通過する。ここで、デコーダ2304か
らはラッチクロックとしてTM1CKが入力している。
従って、クロックNSCK3の入力タイミングでアンド
ゲート2611がオンとなり、T3 ラッチ2630の出
力がT1 ラッチ2610にラッチされる。
【0206】以上の処理により、直線補間処理が実行さ
れる。なお、直線補間処理とは関係ないが、デコーダ2
304からはラッチクロックとしてDZCKが入力して
いる。従って、クロックNSCK3の入力タイミングで
アンドゲート2607がオンとなり、乱数発生回路26
53から出力する乱数値が、後述する図29の処理12
で処理される新たなディザ値としてDzラッチ2606
にラッチされる。 <演算回路の構成(処理11の説明)>つぎに、カウン
タラッチ2303(図23)がカウント値“−D”
(H)を示すタイミングで実行される図29の処理11
は、上述の処理10でT1 ラッチ2610に得られた新
たな直線補間値を、後述する処理12でのディザ処理、
および次回のオーバーサンプリングタイミングにおける
前述した処理6〜処理9のノイズシェーピング処理のた
めに、T2 ラッチ2614に移す処理である。これによ
り、オーバーサンプリング処理である直線補間処理とデ
ィザ処理およびノイズシェーピング処理がカスケードに
接続されることになる。
【0207】以下、この具体的な動作を示す。なお、図
24のタイミングチャートと、図29のカウンタラッチ
が“−D”(H)の欄を、随時参照するものとする。ま
ず、デコーダ2304からFAS−A入力ゲートクロッ
クとしてTM1GTが入力し、クロックNSCK0の入
力タイミングで、T1 ラッチ2610の出力ゲート26
12がオンになる。
【0208】また、デコーダ2304から制御クロック
ZNSAとして“0”が入力するためアンドゲート26
25の出力がローレベルとなり、FAS2628の入力
ゲート2624はオンになる。一方、デコーダ2304
から制御クロックZNSBとして“1”が入力するた
め、クロックNSCK0の入力タイミングでアンドゲー
ト2627の出力がハイレベルとなり、FAS2628
の入力ゲート2626はオフになる。さらに、デコーダ
2304からFAS2628へ入力される制御クロック
NSSUBは0であるため、FAS2628は加算演算
を実行する。
【0209】この結果、FAS2628においては、F
AS−Aの入力値にFAS−Bの入力値“0”が加算さ
れ、従って、FAS−Aから入力されたT1ラッチ26
10の出力がそのままFAS2628の出力端子に出力
される。
【0210】その後、上記出力はリミット回路2629
を通って、クロックNSCK2の入力タイミングでT3
ラッチ2630を通過する。ここで、デコーダ2304
からはラッチクロックとしてTM2CKが入力してい
る。従って、クロックNSCK3の入力タイミングでア
ンドゲート2615がオンとなり、T3 ラッチ2630
の出力がT2 ラッチ2614にラッチされる。
【0211】以上の処理により、T1 ラッチ2610の
内容がT2 ラッチ2614に移される。 <演算回路の構成(処理12の説明)>最後に、カウン
タラッチ2303(図23)がカウント値“−E”
(H)を示すタイミングで実行される図29の処理12
においては、上述の処理11でT2 ラッチ2614に移
し替えられた新たな直線補間値に、Dzラッチ2606
に保持されているディザ値が加算され、その加算値がT
2 ラッチ2614に新たにラッチされる。この処理は、
前述した図29の処理3と同様、前述した図20のディ
ザ付加部(Dz)2002と加算部2001の機能に対
応し、このT2 ラッチ2614の内容に対して、次回の
オーバーサンプリングタイミングにおいて、前述した処
理6〜処理9のノイズシェーピング処理が実行されるこ
とになる。
【0212】以下、この具体的な動作を示す。なお、図
24のタイミングチャートと、図29のカウンタラッチ
が“−E”(H)の欄を、随時参照するものとする。ま
ず、デコーダ2304からFAS−B入力ゲートクロッ
クとしてTM2BGTが入力し、クロックNSCK0の
入力タイミングで、T2 ラッチ2614の出力ゲート2
619がオンになる。また、デコーダ2304から制御
クロックZNSBとして“0”が入力するためアンドゲ
ート2627の出力がローレベルとなり、FAS262
8の入力ゲート2626はオンになる。その結果、T2
ラッチ2614の内容が、FAS−BからFAS262
8に入力される。
【0213】一方、デコーダ2304からFAS−A入
力ゲートクロックとしてDZGTが入力し、クロックN
SCK0の入力タイミングで、Dzラッチ2606の出
力ゲート2608がオンになる。また、デコーダ230
4から制御クロックZNSAとして“0”が入力するた
めアンドゲート2625の出力がローレベルとなり、F
AS2628の入力ゲート2624はオンになる。その
結果、Dzラッチ2606内の乱数発生器2653によ
り発生され同ラッチに保持されているディザ値が、FA
S−AからFAS2628に入力される。
【0214】そして、デコーダ2304からFAS26
28へ入力される制御クロックNSSUBは0であるた
め、FAS2628では、FAS−Bから入力されたT
2 ラッチ2614の出力に、FAS−Aから入力された
Dzラッチ2606からのディザ値が加算される。
【0215】上記加算結果は、リミット回路2629を
通って、クロックNSCK2の入力タイミングでT3
ッチ2630を通過する。ここで、デコーダ2304か
らはラッチクロックとしてTM2CKが入力している。
従って、クロックNSCK3の入力タイミングでアンド
ゲート2615がオンとなり、T3 ラッチ2630の出
力がT2 ラッチ2614にラッチされる。
【0216】以上説明した実施例により、図1のCPU
104の制御によるソフトウエ処理に基づく楽音信号の
生成処理と、図1の外付けの処理回路105による楽音
信号に対する各種制御処理とを、正確に同期させて実行
することができる。ノイズシェーピング処理のリセット回路の第2の実施例 つぎに、図31は、図27のノイズシェーピング処理の
リセット回路2652の第2の実施例の構成図である。
【0217】前述した実施例では、ノイズシェーピング
処理のためのZ-1ラッチ2640とZ-2ラッチ263
6、およびディザ処理のためのDzラッチ2606は、
CPU104内のエンベロープ値出力ラッチ214(図
2参照)から出力される18ビットのエンベロープ値が
すべて0になることによってリセットされていた。
【0218】これに対して、図31の第2の実施例で
は、上記各ラッチは、CPU104内の累算波高値出力
ラッチ213(図2参照)から出力される18ビットの
累算波高値がすべて0になる状態が一定時間続いた場合
にリセットされる。
【0219】すなわち、まず、ゼロ入力値判別回路31
01は、CPU104内の累算波高値出力ラッチ213
から出力される18ビットの累算波高値がすべて0にな
った状態を検出する回路であり、その検出時にハイレベ
ルの判別信号を出力する。この回路は、前述した図27
のナンドゲート2649と同様の回路によって実現でき
る。
【0220】つぎに、DFF3102、3103は、非
同期クリア端子(CLR)付きのD−フリップフロップ
回路であり、ゼロ入力値判別回路3101からの判別出
力がローレベル(“L”)となるタイミング、すなわ
ち、ゼロ入力値判別回路3101が累算波高値のオール
0を検出しないタイミングで、各出力Qをローレベル
(“L”)にクリアする。
【0221】一方、DFF3102、3103は、CP
U104内のクロック発生部203(図2)からクロッ
ク端子(CK)にインタラプト信号INTが入力される
毎に、入力Dの論理を出力Qに伝達する。
【0222】そして、DFF3102の入力Dはハイレ
ベルにプルアップされ、アンド回路3104の第1の入
力および第2の入力にはDFF3102、3103の各
出力Qが入力され、アンド回路3104の出力は、図2
7のノイズシェーピング処理のためのZ-1ラッチ264
0とZ-2ラッチ2636、および図26のディザ処理の
ためのDzラッチ2606の各リセット端子に入力され
る。
【0223】上述した第2の実施例の構成において、C
PU104内の累算波高値出力ラッチ213から出力さ
れる18ビットの累算波高値がすべて0になる状態でな
ければ、DFF3102、3103は常にクリアされ
る。従って、アンド回路3104の出力がローレベルと
なり、図27のノイズシェーピング処理のためのZ-1
ッチ2640とZ-2ラッチ2636、および図26のデ
ィザ処理のためのDzラッチ2606はリセットされ
ず、前述したノイズシェーピング処理およびディザ処理
が実行される。
【0224】一方、CPU104内の累算波高値出力ラ
ッチ213から出力される18ビットの累算波高値がす
べて0になると、そのタイミング以後に最初に入力され
るインタラプト信号INTのパルスによってDFF31
02の入力Dのハイレベル状態がDFF3102の出力
Qに現われ、つぎに入力されるインタラプト信号INT
のパルスによってDFF3103の出力Qがハイレベル
になる。この結果、アンド回路3104の第1の入力お
よび第2の入力がともにハイレベルとなって、アンド回
路3104の出力がハイレベルとなり、Z-1ラッチ26
40とZ-2ラッチ2636、およびDzラッチ2606
がリセットされる。従って、図1の処理回路105の楽
音信号の出力が0になり、ノイズの発生が抑制される。
【0225】上述の状態において、CPU104内の累
算波高値出力ラッチ213から出力される18ビットの
累算波高値がオール0以外の値に復帰すると、ゼロ入力
値判別回路3101の出力がローレベルになり、DFF
3102、3103がクリアされる。従って、アンド回
路3104の出力がローレベルに戻り、Z-1ラッチ26
40とZ-2ラッチ2636、およびDzラッチ2606
のリセット状態が解消され、前述したノイズシェーピン
グ処理およびディザ処理が再開される。
【0226】ここで、前述したように、インタラプト信
号INTのパルスの入力周期は楽音信号のサンプリング
周期に等しい。従って、CPU104内の累算波高値出
力ラッチ213から出力される18ビットの累算波高値
がすべて0になる状態が2サンプリングタイミング分続
いた場合に、上記各ラッチのリセットが行なわれること
になる。
【0227】楽音信号の波形が0に収束していない状態
においても、累算波高値がすべて0になる状態は発生し
得るが、その状態が2サンプリングタイミング分続いて
発生することはほとんどあり得ない。従って、上述のよ
うに累算波高値がすべて0になる状態が一定時間(2サ
ンプリングタイミング分)続くことを検出することによ
り、楽音信号の波形が0に収束したことを検出すること
ができ、その検出タイミングで上記各ラッチのリセット
が行なわれる。
【0228】なお、上述の2サンプリングタイミング分
の遅延処理は、CPU104からの楽音サンプルデータ
が演算回路2305に入力し、同回路2305から上記
楽音サンプルデータに対応する楽音信号が出力されるま
でに、2サンプリングタイミング分の時間を要するた
め、上記リセットのタイミングを演算回路2305の処
理タイミングに合わせるための遅延処理も兼ねている。ノイズシェーピング処理のリセット回路の第3の実施例 図32は、図27のノイズシェーピング処理のリセット
回路2652の第3の実施例の構成図である。
【0229】上述した図31の第2の実施例では、ノイ
ズシェーピング処理のためのZ-1ラッチ2640とZ-2
ラッチ2636、およびディザ処理のためのDzラッチ
2606は、CPU104内の累算波高値出力ラッチ2
13(図2参照)から出力される18ビットの累算波高
値がすべて0になる状態が一定時間続いた場合にリセッ
トされるように構成された。
【0230】これに対して、図32の第3の実施例で
は、上記各ラッチは、累算波高値がすべて0になる状態
が一定時間続いた後に、さらに演算回路2305内のO
ラッチ2647(図26参照)の出力値がすべて0にな
る状態が一定時間続いた場合にリセットされる。
【0231】すなわち、まず、ゼロ入力値判別回路32
01、DFF3202、3203、およびアンド回路3
204の第1の入力および第2の入力の部分の構成は、
図31の3101〜3104の各構成部分と同じ構成で
ある。
【0232】つぎに、ゼロ出力値判別回路3205は、
演算回路2305内のOラッチ2647から出力される
16ビットの出力値がすべて0になった状態を検出する
回路であり、その検出時にハイレベルの判別信号を出力
する。この回路は、前述した図27のナンドゲート26
49と同様の回路によって実現できる。この回路が出力
する判別信号は、アンド回路3204の第3の入力に入
力される。
【0233】つぎに、DFF3206、3207は、D
FF3202、3203と同様、非同期クリア端子(C
LR)付きのD−フリップフロップ回路であり、アンド
回路3204からの判別出力がローレベル(“L”)と
なるタイミングで、各出力Qをローレベル(“L”)に
クリアする。
【0234】一方、DFF3206、3207は、CP
U104内のクロック発生部203(図2)からクロッ
ク端子(CK)にインタラプト信号INTが入力される
毎に、入力Dの論理を出力Qに伝達する。
【0235】そして、DFF3206の入力Dはハイレ
ベルにプルアップされ、アンド回路3208の第1の入
力および第2の入力にはDFF3206、3207の各
出力Qが入力され、アンド回路3208の出力は、図2
7のノイズシェーピング処理のためのZ-1ラッチ264
0とZ-2ラッチ2636、および図26のディザ処理の
ためのDzラッチ2606の各リセット端子に入力され
る。
【0236】上述した第2の実施例の構成において、C
PU104内の累算波高値出力ラッチ213から出力さ
れる18ビットの累算波高値がすべて0になる状態でな
ければ、DFF3202、3203は常にクリアされ、
アンド回路3204の出力がローレベルとなる。従っ
て、DFF3206、3207も常にクリアされ、アン
ド回路3208の出力がローレベルとなる。この結果、
図27のノイズシェーピング処理のためのZ-1ラッチ2
640とZ-2ラッチ2636、および図26のディザ処
理のためのDzラッチ2606はリセットされず、前述
したノイズシェーピング処理およびディザ処理が実行さ
れる。
【0237】一方、CPU104内の累算波高値出力ラ
ッチ213から出力される18ビットの累算波高値がす
べて0になる状態が2サンプリングタイミング分続く
と、前述した図31の第2の実施例の場合と同様の動作
により、アンド回路3204の第1の入力および第2の
入力がともにハイレベルとなる。
【0238】この状態において、演算回路2305内の
Oラッチ2647(図26参照)の出力値がすべて0に
なると、アンド回路3204の第3の入力がハイレベル
となり、アンド回路3204の出力がハイレベルとな
る。従って、そのタイミング以後に最初に入力されるイ
ンタラプト信号INTのパルスによってDFF3206
の入力Dのハイレベル状態がDFF3207の出力Qに
現われ、つぎに入力されるインタラプト信号INTのパ
ルスによってDFF3207の出力Qがハイレベルにな
る。この結果、アンド回路3208の第1の入力および
第2の入力がともにハイレベルとなって、アンド回路3
208の出力がハイレベルとなり、Z-1ラッチ2640
とZ-2ラッチ2636、およびDzラッチ2606がリ
セットされて、ノイズの発生が抑制される。
【0239】累算波高値がすべて0になる状態が2サン
プリングタイミング分続き、さらにOラッチ2647の
出力値もすべて0になった状態において、上記出力値が
オール0以外の値に復帰すると、ゼロ出力値判別回路3
205の出力がローレベルになり、アンド回路3204
の出力がローレベルになって、DFF3206、320
7がクリアされる。この結果、アンド回路3208の出
力がローレベルに戻り、Z-1ラッチ2640とZ-2ラッ
チ2636、およびDzラッチ2606のリセット状態
が解消され、前述したノイズシェーピング処理およびデ
ィザ処理が再開される。
【0240】従って、CPU104内の累算波高値出力
ラッチ213から出力される18ビットの累算波高値が
すべて0になる状態が2サンプリングタイミング分以上
続き、その状態において、Oラッチ2647から出力さ
れる16ビットの出力値もすべて0になる状態がさらに
2サンプリングタイミング分以上続いた場合に、上記各
ラッチのリセットが行なわれることになる。
【0241】以上説明した第3の実施例では、出力値が
減衰しきる前にリセットが行なわれてしまうことによる
ノイズの発生を抑制することができる。ノイズシェーピング処理のリセット回路の第4の実施例 図32は、図27のノイズシェーピング処理のリセット
回路2652の第4の実施例の構成図である。
【0242】前述した図31の第2の実施例では、ノイ
ズシェーピング処理のためのZ-1ラッチ2640とZ-2
ラッチ2636、およびディザ処理のためのDzラッチ
2606は、CPU104内の累算波高値出力ラッチ2
13(図2参照)から出力される18ビットの累算波高
値がすべて0になる状態が一定時間続いた場合にリセッ
トされるように構成された。
【0243】これに対して、図33の第4の実施例で
は、上記各ラッチは、上記累算波高値の差分値が0にな
る状態が一定時間続いた場合にリセットされる。すなわ
ち、まず、ゼロ差分値判別回路3301は、CPU10
4内の累算波高値出力ラッチ213から出力される18
ビットの累算波高値の差分値を計算し、その差分値が0
になった状態を検出する回路であり、その検出時にハイ
レベルの判別信号を出力する。
【0244】つぎに、DFF3302、3303、およ
びアンド回路3304の構成は、図31の3102〜3
104の各構成部分と同じ構成である。上述した第4の
実施例の構成において、CPU104内の累算波高値出
力ラッチ213から出力される18ビットの累算波高値
の差分値が0にならなければ、DFF3302、330
3は常にクリアされ、アンド回路3304の出力がロー
レベルとなる。従って、図27のノイズシェーピング処
理のためのZ-1ラッチ2640とZ-2ラッチ2636、
および図26のディザ処理のためのDzラッチ2606
はリセットされず、前述したノイズシェーピング処理お
よびディザ処理が実行される。
【0245】一方、CPU104内の累算波高値出力ラ
ッチ213から出力される18ビットの累算波高値の差
分値が0になる状態が2サンプリングタイミング分続く
と、前述した図31の第2の実施例の場合と同様の動作
により、アンド回路3304の出力がハイレベルとな
り、Z-1ラッチ2640とZ-2ラッチ2636、および
Dzラッチ2606がリセットされて、ノイズの発生が
抑制される。
【0246】上述の状態において、上記差分値が0以外
の値に復帰すると、ゼロ差分値判別回路3301の出力
がローレベルになり、DFF3302、3303がクリ
アされる。この結果、アンド回路3304の出力がロー
レベルに戻り、Z-1ラッチ2640とZ-2ラッチ263
6、およびDzラッチ2606のリセット状態が解消さ
れ、前述したノイズシェーピング処理およびディザ処理
が再開される。
【0247】この第4の実施例では、累算波高値が0以
外の振幅の小さな直流値に収束してしまった場合でも、
ノイズシェーピング処理およびディザ処理をリセットす
ることができる。ノイズシェーピング処理のリセット回路の他の実施例 以上説明した図27のノイズシェーピング処理のリセッ
ト回路2652の各実施例により、ノイズシェーピング
処理およびディザ処理のための各ラッチのリセットを、
以下のいずれかの状態を検出することによって行なっ
た。
【0248】1)処理回路105(図1)へ入力する累算
波高値のエンベロープ値が0になったこと。 2)処理回路105へ入力する累算波高値が一定時間以上
0になったこと。
【0249】3)処理回路105へ入力する累算波高値が
一定時間以上0になり、その後さらに処理回路105の
出力値が一定時間以上0になったこと。 4)処理回路105へ入力する累算波高値の差分値が一定
時間以上0になったこと。
【0250】本発明は、上述の4つの場合に基づいて、
このほかにも例えば以下のような状態を検出することに
よって、各ラッチのリセットを行なうようにしてもよ
い。 5)処理回路105へ入力する累算波高値が一定時間以上
0になり、その後さらに処理回路105の出力値のエン
ベロープ値が0になったこと 。
【0251】6)処理回路105へ入力する累算波高値が
一定時間以上0になり、その後さらに処理回路105の
出力値の差分値が一定時間以上0になったこと。 7)処理回路105へ入力する累算波高値のエンベロープ
値が0になり、その後さらに処理回路105の出力値が
一定時間以上0になったこと。
【0252】8)処理回路105へ入力する累算波高値の
エンベロープ値が0になり、その後さらに処理回路10
5の出力値のエンベロープ値が0になったこと。 9)処理回路105へ入力する累算波高値のエンベロープ
値が0になり、その後さらに処理回路105の出力値の
差分値が一定時間以上0になったこと。
【0253】10)処理回路105へ入力する累算波高値
の差分値が一定時間以上0になり、その後さらに処理回
路105の出力値が一定時間以上0になったこと。 11)処理回路105へ入力する累算波高値の差分値が一
定時間以上0になり、その後さらに処理回路105の出
力値のエンベロープ値が0になったこと。
【0254】12)処理回路105へ入力する累算波高値
の差分値が一定時間以上0になり、その後さらに処理回
路105の出力値の差分値が一定時間以上0になったこ
と。
【0255】なお、差分値については、必ずしもそれが
一定時間以上0であることを検出する必要はなく、差分
値が1回でも0になったことを検出するものであっても
よい。他の実施例の説明 以上説明した実施例において、図1の処理回路105
は、オーバーサンプリング処理として、図26、図27
の構成で示される図23の演算回路2305により、図
19の原理に基づく図29の処理4および処理10など
の直線補間処理として実現した。これに対し、より精度
の高いオーバーサンプリング処理を行うには、図17、
図18などの説明において前述したように、元の音響信
号の周波数帯域以上の帯域に存在する高調波成分をカッ
トする例えば図34のような機能構成を有するディジタ
ルローパスフィルタリング処理を、DSPなどによるデ
ィジタル信号処理として直接実行してもよい。
【0256】また、上述した実施例では、図1の処理回
路105は、オーバーサンプリング処理、ノイズシェー
ピング処理、およびディザ処理を実行する回路として説
明されたが、本発明はこれらに限られることなく、例え
ばリバーブやトレモロなどの効果付加処理を実行する回
路であってもよい。
【0257】さらに、上述した実施例では、図1のCP
U104は楽音信号をモノラルで生成し、処理回路10
5はそのモノラルの楽音信号を処理してD/A変換器1
06に出力している。これに対して、CPU104、処
理回路105およびD/A変換器106などが、楽音信
号の生成、制御および出力をステレオで実行するように
構成されてもよい。この場合、例えば、演算回路230
5(図23)内の入力ラッチ2601(図26参照)
は、CPU104からのステレオの楽音サンプルデータ
に対応して2個設けられ、演算回路2305の構成は、
これらの入力ラッチの各楽音サンプルデータに対して、
時分割処理によってオーバーサンプリング処理などを実
行するハードウエア構成とすればよい。
【0258】
【発明の効果】本発明の第1の態様によれば、入力楽音
信号が消音状態に収束したことを判別してから楽音信号
に対して行う遅延処理にて遅延される時間が経過した
後、遅延処理を行う遅延部の内容が強制的にリセットさ
れるため、遅延部に残存している過去のサンプルデータ
に基づいて不要な雑音成分が出力されてしまうことを抑
制することが可能となる。
【0259】本発明の第2の態様によれば、入力楽音信
号が消音状態に収束したことを判別してから楽音信号に
対して行う遅延処理にて遅延される時間が経過した後、
さらに出力楽音信号が消音状態に収束した場合に、遅延
部の内容が強制的にリセットされるため、出力楽音信号
が減衰しきる前に遅延部の内容がリセットされてしまう
ことによるノイズの発生を抑制することが可能となる。
【0260】ここで、本発明の第1または第2の態様に
おいて、入力側消音状態判別手段または出力側消音状態
判別手段は、入力、出力楽音信号の振幅エンベロープ値
が0になることを判別することにより、または、入力、
出力楽音信号の振幅値が一定時間以上0になることを判
別することにより、入力、出力楽音信号が消音状態に収
束したことを判別することが可能となる。
【0261】また、入力側消音状態判別手段または出力
側消音状態判別手段は、入力、出力楽音信号の振幅値の
差分値が0になることを判別することにより、入力、出
力楽音信号が消音状態に収束したことを判別することが
可能となる。この場合には、入力、出力楽音信号の振幅
値が0以外の振幅の小さな直流値に収束してしまった場
合でも、遅延部の内容をリセットすることが可能とな
る。
【図面の簡単な説明】
【図1】本発明の実施例の全体構成図である。
【図2】CPUの内部構成図である。
【図3】CPUのメインフローチャートである。
【図4】インタラプト処理の動作フローチャートであ
る。
【図5】音源処理の動作フローチャートである。
【図6】メイン動作フローチャートとインタラプト処理
との関係を示す概念図である。
【図7】RAM上の発音チャネル毎の記憶領域を示す図
である。
【図8】RAM上のバッフア領域を示す図である。
【図9】制御データ兼波形用ROM上の量子化データの
データフォーマットを示す図である。
【図10】ADPCM方式において差分値Dと現在アド
レスAF を用いて補間値XQ を求める場合の原理説明図
である。
【図11】適応量子化の原理説明図である。
【図12】ADPCM方式による音源処理の動作フロー
チャート(その1)である。
【図13】ADPCM方式による音源処理の動作フロー
チャート(その2)である。
【図14】ADPCM方式による音源処理の動作フロー
チャート(その3)である。
【図15】ADPCM方式による音源処理の動作フロー
チャート(その4)である。
【図16】エンベロープ特性の説明図である。
【図17】D/A変換器から出力される信号の周波数ス
ペクトル図(その1)である。
【図18】D/A変換器から出力される信号の周波数ス
ペクトル図(その2)である。
【図19】直線補間を説明する図である。
【図20】ノイズシェーピングの原理構成図である。
【図21】ノイズシェーピングの効果を示す図(その
1)である。
【図22】ノイズシェーピングの効果を示す図(その
2)である。
【図23】処理回路の内部構成図である。
【図24】クロック関係のタイミング・チャート(その
1)である。
【図25】クロック関係のタイミング・チャート(その
2)である。
【図26】演算回路の内部構成図(その1)である。
【図27】演算回路の内部構成図(その2)である。
【図28】CPUと処理回路の同期動作の説明図であ
る。
【図29】演算回路における各処理に用いられる制御ク
ロックを示す図である。
【図30】演算回路における各処理のタイミングチャー
トである。
【図31】ノイズシェーピング処理のリセット回路の第
2の実施例の構成図である。
【図32】ノイズシェーピング処理のリセット回路の第
3の実施例の構成図である。
【図33】ノイズシェーピング処理のリセット回路の第
4の実施例の構成図である。
【図34】他の実施例におけるディジタルローパスフィ
ルタリング処理の機能構成図である。
【符号の説明】
101 スイッチ部 102 鍵盤 103 機能キー 104 CPU 105 処理回路 106 D/A変換器 107 サウンドシステム 201 制御用ROM 202 ROMアドレスデコーダ 203 クロック発生部 204 RAMアドレス制御部 205 ROMアドレス制御部 206 RAM 207 オペレーション解析部 208 加減算器及び論理演算部 209 乗算器 210 入力ポート 211 出力ポート 212 制御データ兼波形ROM 213 累算波高値出力ラッチ 214 エンベロープ値出力ラッチ 2301 分周回路 2302 64進カウンタ 2303 カウンタラッチ 2304 デコーダ回路 2305 演算回路 2606 Dzラッチ 2636 Z-2ラッチ 2640 Z-1ラッチ 2649 ナンドゲート 2650 Aラッチ 2651 Bラッチ 2652 ノイズシェーピング処理のリセット回路 3101、3201 ゼロ入力値判別回路 3102、3103、3202、3203、3302、
3303 D−フリップフロップ(DFF)、 3104、3204、3208、3304 アンド
回路 3205 ゼロ出力値判別回路 3301 ゼロ差分値判別回路
フロントページの続き (56)参考文献 特開 平2−25116(JP,A) 特開 平2−20934(JP,A) 特開 平2−116897(JP,A) 特開 平4−189032(JP,A) 特開 平1−254023(JP,A) 特開 昭62−239711(JP,A) 特開 平2−50508(JP,A) (58)調査した分野(Int.Cl.7,DB名) G10H 1/12 G10K 15/12 H03H 17/04 641 H03M 7/36

Claims (15)

    (57)【特許請求の範囲】
  1. 【請求項1】 楽音信号の遅延処理を含む楽音制御処理
    を実行する楽音制御装置において、 前記楽音制御処理への入力楽音信号が消音状態に収束し
    たことを判別する入力側消音状態判別手段と、 該入力側消音状態判別手段が前記入力楽音信号の消音状
    態を判別してから前記遅延処理にて遅延される時間が経
    過した後に、前記楽音信号の遅延処理を行う遅延部の内
    容を強制的にリセットするリセット手段を有する、 ことを特徴とする楽音制御装置。
  2. 【請求項2】 前記入力側消音状態判別手段は、前記入
    力楽音信号の振幅エンベロープ値が0になったことを判
    別することにより、前記入力楽音信号が消音状態に収束
    したことを判別する、 ことを特徴とする請求項1に記載の楽音制御装置。
  3. 【請求項3】 楽音信号の遅延処理を含む楽音制御処理
    を実行する楽音制御装置において、 前記楽音制御処理への入力楽音信号が消音状態に収束し
    たことを判別する入力側消音状態判別手段と、 該入力側消音状態判別手段が前記入力楽音信号の消音状
    態を、前記遅延処理にて遅延される時間が経過するまで
    連続して判別した場合に、前記楽音信号の遅延処理を行
    う遅延部の内容を強制的にリセットするリセット手段を
    有する、 ことを特徴とする楽音制御装置。
  4. 【請求項4】 前記入力側消音状態判別手段は、前記入
    力楽音信号の振幅値が0になったことを判別することに
    より、前記入力楽音信号が消音状態に収束したことを判
    別する請求項3に記載の楽音制御装置。
  5. 【請求項5】 前記入力側消音状態判別手段は、前記入
    力楽音信号の振幅値の差分値が0になったことを判別す
    ることにより、前記入力楽音信号が消音状態に収束した
    ことを判別する請求項3に記載の楽音制御装置。
  6. 【請求項6】 楽音信号の遅延処理を含む楽音制御処理
    を実行する楽音制御装置において、 前記楽音制御処理への入力楽音信号が消音状態に収束し
    たことを判別する入力側消音状態判別手段と、 前記楽音制御処理からの出力楽音信号が消音状態に収束
    したことを判別する出力側消音状態判別手段と、 該入力側消音状態判別手段が前記入力楽音信号の消音状
    態を判別してから前記遅延処理にて遅延される時間が経
    過した後、前記出力側消音状態判別手段が前記出力楽音
    信号の消音状態を判別した場合、前記楽音信号の遅延処
    理を行う遅延部の内容を強制的にリセットするリセット
    手段を有する、 ことを特徴とする楽音制御装置。
  7. 【請求項7】 前記入力側消音状態判別手段は、前記入
    力楽音信号の振幅値が所定時間以上0になったことを判
    別することにより、前記入力楽音信号が消音状態に収束
    したことを判別し、 前記出力側消音状態判別手段は、前記出力楽音信号の振
    幅値が所定時間以上0になったことを判別することによ
    り、前記出力楽音信号が消音状態に収束したことを判別
    する、 ことを特徴とする請求項6に記載の楽音制御装置。
  8. 【請求項8】 前記入力側消音状態判別手段は、前記入
    力楽音信号の振幅値が所定時間以上0になったことを判
    別することにより、前記入力楽音信号が消音状態に収束
    したことを判別し、 前記出力側消音状態判別手段は、前記出力楽音信号の振
    幅エンベロープ値が0になったことを判別することによ
    り、前記出力楽音信号が消音状態に収束したことを判別
    する、 ことを特徴とする請求項6に記載の楽音制御装置。
  9. 【請求項9】 前記入力側消音状態判別手段は、前記入
    力楽音信号の振幅値が所定時間以上0になったことを判
    別することにより、前記入力楽音信号が消音状態に収束
    したことを判別し、 前記出力側消音状態判別手段は、前記出力楽音信号の振
    幅値の差分値が0になったことを判別することにより、
    前記出力楽音信号が消音状態に収束したことを判別す
    る、 ことを特徴とする請求項6に記載の楽音制御装置。
  10. 【請求項10】 前記入力側消音状態判別手段は、前記
    入力楽音信号の振幅エンベロープ値が0になったことを
    判別することにより、前記入力楽音信号が消音状態に収
    束したことを判別し、 前記出力側消音状態判別手段は、前記出力楽音信号の振
    幅値が所定時間以上0になったことを判別することによ
    り、前記出力楽音信号が消音状態に収束したことを判別
    する、 ことを特徴とする請求項6に記載の楽音制御装置。
  11. 【請求項11】 前記入力側消音状態判別手段は、前記
    入力楽音信号の振幅エンベロープ値が0になったことを
    判別することにより、前記入力楽音信号が消音状態に収
    束したことを判別し、 前記出力側消音状態判別手段は、前記出力楽音信号の振
    幅エンベロープ値が0になったことを判別することによ
    り、前記出力楽音信号が消音状態に収束したことを判別
    する、 ことを特徴とする請求項6に記載の楽音制御装置。
  12. 【請求項12】 前記入力側消音状態判別手段は、前記
    入力楽音信号の振幅エンベロープ値が0になったことを
    判別することにより、前記入力楽音信号が消音状態に収
    束したことを判別し、 前記出力側消音状態判別手段は、前記出力楽音信号の振
    幅値の差分値が0になったことを判別することにより、
    前記出力楽音信号が消音状態に収束したことを判別す
    る、 ことを特徴とする請求項6に記載の楽音制御装置。
  13. 【請求項13】 前記入力側消音状態判別手段は、前記
    入力楽音信号の振幅値の差分値が0になったことを判別
    することにより、前記入力楽音信号が消音状態に収束し
    たことを判別し、 前記出力側消音状態判別手段は、前記出力楽音信号の振
    幅値が所定時間以上0になったことを判別することによ
    り、前記出力楽音信号が消音状態に収束したことを判別
    する、 ことを特徴とする請求項6に記載の楽音制御装置。
  14. 【請求項14】 前記入力側消音状態判別手段は、前記
    入力楽音信号の振幅値の差分値が0になったことを判別
    することにより、前記入力楽音信号が消音状態に収束し
    たことを判別し、 前記出力側消音状態判別手段は、前記出力楽音信号の振
    幅エンベロープ値が0になったことを判別することによ
    り、前記出力楽音信号が消音状態に収束したことを判別
    する、 ことを特徴とする請求項6に記載の楽音制御装置。
  15. 【請求項15】 前記入力側消音状態判別手段は、前記
    入力楽音信号の振幅値の差分値が0になったことを判別
    することにより、前記入力楽音信号が消音状態に収束し
    たことを判別し、 前記出力側消音状態判別手段は、前記出力楽音信号の振
    幅値の差分値が0になったことを判別することにより、
    前記出力楽音信号が消音状態に収束したことを判別す
    る、 ことを特徴とする請求項6に記載の楽音制御装置。
JP08728292A 1991-08-30 1992-04-08 楽音制御装置 Expired - Lifetime JP3200940B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP08728292A JP3200940B2 (ja) 1991-08-30 1992-04-08 楽音制御装置
US07/934,101 US5283386A (en) 1991-08-30 1992-08-21 Musical-tone signal generating apparatus and musical-tone controlling apparatus including delay means and automatic reset means

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP3-220706 1991-08-30
JP22070691 1991-08-30
JP08728292A JP3200940B2 (ja) 1991-08-30 1992-04-08 楽音制御装置

Publications (2)

Publication Number Publication Date
JPH05143066A JPH05143066A (ja) 1993-06-11
JP3200940B2 true JP3200940B2 (ja) 2001-08-20

Family

ID=26428568

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08728292A Expired - Lifetime JP3200940B2 (ja) 1991-08-30 1992-04-08 楽音制御装置

Country Status (1)

Country Link
JP (1) JP3200940B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5937548B2 (ja) * 2013-06-26 2016-06-22 古野電気株式会社 ディジタルフィルタおよび信号処理装置

Also Published As

Publication number Publication date
JPH05143066A (ja) 1993-06-11

Similar Documents

Publication Publication Date Title
US7612281B2 (en) Reverberation effect adding device
US5369710A (en) Sound field correcting apparatus and method
US7159002B2 (en) Biquad digital filter operating at maximum efficiency
KR20060004695A (ko) 오디오 신호의 대역을 확장하기 위한 방법 및 장치
JPH04181996A (ja) 音源装置
US20060177074A1 (en) Early reflection reproduction apparatus and method of sound field effect reproduction
JPH0562495A (ja) サンプリング周波数変換器
JP3324672B2 (ja) リアルタイム・ディジタル音声残響システム
US7358884B1 (en) Methods and systems for implementing a Digital-to-Analog Converter
US5283386A (en) Musical-tone signal generating apparatus and musical-tone controlling apparatus including delay means and automatic reset means
JP4070835B2 (ja) オーディオ信号のフィルタリングのための方法及び装置
JP3200940B2 (ja) 楽音制御装置
US5903480A (en) Division-free phase-shift for digital-audio special effects
JP3109389B2 (ja) 適応フィルタシステム
JP3147562B2 (ja) 音声速度変換方法
JP3006095B2 (ja) 楽音波形発生装置
JPH0561461A (ja) 楽音信号発生装置
JPH0561460A (ja) 楽音信号発生装置
JP3149459B2 (ja) ディストーション回路
JP3097324B2 (ja) デジタル音響データ出力装置
JPH0535296A (ja) ピツチ抽出装置及びそれを用いた電子楽器
JPH0761190B2 (ja) ハウリング防止機能を備えた音響装置
JP3230270B2 (ja) 信号処理装置
JP2817367B2 (ja) リニア/フロート変換器および該変換器を用いた楽音合成装置
JPH039478B2 (ja)

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010522

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

Free format text: PAYMENT UNTIL: 20080622

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090622

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090622

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100622

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110622

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110622

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120622

Year of fee payment: 11

EXPY Cancellation because of completion of term