JPH0561460A - 楽音信号発生装置 - Google Patents

楽音信号発生装置

Info

Publication number
JPH0561460A
JPH0561460A JP3220704A JP22070491A JPH0561460A JP H0561460 A JPH0561460 A JP H0561460A JP 3220704 A JP3220704 A JP 3220704A JP 22070491 A JP22070491 A JP 22070491A JP H0561460 A JPH0561460 A JP H0561460A
Authority
JP
Japan
Prior art keywords
processing
latch
input
musical tone
output
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.)
Pending
Application number
JP3220704A
Other languages
English (en)
Inventor
Takashi Akutsu
隆 阿久津
Hitotsugu Kato
仁嗣 加藤
Teruo Jinbo
輝雄 神保
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 JP3220704A priority Critical patent/JPH0561460A/ja
Priority to US07/934,101 priority patent/US5283386A/en
Publication of JPH0561460A publication Critical patent/JPH0561460A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 本発明は、楽音信号の生成処理と他の楽音制
御処理を汎用のプロセッサと外付けの処理回路で実行す
る装置に関し、プロセッサでの楽音信号の生成処理と処
理回路での楽音制御処理を正確に同期させることを目的
とする。 【構成】 音源処理を実行するCPUの外部に設けら
れ、CPUからの楽音サンプルデータに対して、オーバ
ーサンプリング処理、ノイズシェーピング処理、ディザ
処理などを実行する演算回路2305において、CPU
から入力する楽音サンプルデータの時間間隔は、CPU
内の音源処理プログラムの実行時間の変化により、サン
プリング間隔に正確には一致しない。そこで、入力ラッ
チ2601は、CPUからの楽音サンプルデータを、サ
ンプリング間隔に同期したインタラプト信号でラッチ
し、後段の回路に入力する。この結果、CPUから出力
される楽音サンプルデータは、サンプリングタイミング
に正確に同期した一定時間間隔で演算回路2305内に
入力されることになる。

Description

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

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 所定時間間隔で音源処理プログラムを実
    行することにより楽音サンプルデータを順次生成するプ
    ロセッサと、該プロセッサの外部に設けられ該プロセッ
    サで生成された前記楽音サンプルデータに対して楽音制
    御処理を実行する処理回路とを有する楽音信号発生装置
    において、 前記プロセッサが前記音源処理プログラムを実行して生
    成した前記楽音サンプルデータを保持し、該保持された
    楽音サンプルデータを前記所定時間間隔に同期した出力
    時間間隔で前記処理回路に入力する同期手段を有する、 ことを特徴とする楽音信号発生装置。
  2. 【請求項2】 所定時間間隔で音源処理プログラムを実
    行することによりステレオの楽音サンプルデータを順次
    生成するプロセッサと、該プロセッサの外部に設けられ
    該プロセッサで生成された前記ステレオの楽音サンプル
    データに対して楽音制御処理を時分割で実行する処理回
    路とを有する楽音信号発生装置において、 前記プロセッサが前記音源処理プログラムを実行して生
    成した前記ステレオの楽音サンプルデータをそれぞれ保
    持し、該保持されたステレオの各楽音サンプルデータを
    前記所定時間間隔に同期した出力時間間隔で前記処理回
    路にそれぞれ入力する同期手段を有する、 ことを特徴とする楽音信号発生装置。
JP3220704A 1991-08-30 1991-08-30 楽音信号発生装置 Pending JPH0561460A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP3220704A JPH0561460A (ja) 1991-08-30 1991-08-30 楽音信号発生装置
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 (1)

Application Number Priority Date Filing Date Title
JP3220704A JPH0561460A (ja) 1991-08-30 1991-08-30 楽音信号発生装置

Publications (1)

Publication Number Publication Date
JPH0561460A true JPH0561460A (ja) 1993-03-12

Family

ID=16755193

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3220704A Pending JPH0561460A (ja) 1991-08-30 1991-08-30 楽音信号発生装置

Country Status (1)

Country Link
JP (1) JPH0561460A (ja)

Similar Documents

Publication Publication Date Title
US5744739A (en) Wavetable synthesizer and operating method using a variable sampling rate approximation
US6096960A (en) Period forcing filter for preprocessing sound samples for usage in a wavetable synthesizer
US5283386A (en) Musical-tone signal generating apparatus and musical-tone controlling apparatus including delay means and automatic reset means
JPH0722957A (ja) 副バンドコーディングシステムの信号処理装置
JP2001508886A (ja) サウンドシンセサイザにおける指数減衰の近似装置および方法
US5288940A (en) Tone generating circuitry for reading out one-shot and sustaining waveforms
US4833963A (en) Electronic musical instrument using addition of independent partials with digital data bit truncation
JPH0561460A (ja) 楽音信号発生装置
JPH0561461A (ja) 楽音信号発生装置
JP3006095B2 (ja) 楽音波形発生装置
JPH05143066A (ja) 楽音制御装置
JP2576616B2 (ja) 処理装置
JPH07325581A (ja) 楽音発生装置
JP3097324B2 (ja) デジタル音響データ出力装置
JP3116381B2 (ja) 楽音波形圧縮方法
JP3065067B2 (ja) Mpegオ―ディオ多チャンネル処理用等間隔サブバンド分析フィルタ及び合成フィルタ
JPH06186976A (ja) 波形データ出力装置
JP2689709B2 (ja) 電子楽器
JPH039478B2 (ja)
JP2944069B2 (ja) 楽音信号発生装置
JPH07219552A (ja) 楽音波形発生装置及び楽音波形圧縮装置
JP2817367B2 (ja) リニア/フロート変換器および該変換器を用いた楽音合成装置
JPS6352399B2 (ja)
JPH02179696A (ja) 処理装置
JPS6073694A (ja) 残響付加装置