(57)【特許請求の範囲】
【請求項１】
効果付加演算に用いる係数を平滑化処理によって得る効果付加装置であって、
上記効果付加演算に用いる係数の現在値を記憶する第１の記憶手段と、
上記第１の記憶手段に記憶されている係数現在値を用いて効果付加演算を実行する演算手段と、
係数目標値とともに係数毎に平滑化処理の禁止を指示する第１の禁止情報を記憶するものであり、上記第１の記憶手段と同一の語数で構成された第２の記憶手段と、
上記第１の記憶手段に記憶されている係数現在値を上記第２の記憶手段に記憶されている係数目標値に向かって平滑化するものであり、上記演算手段とは別個に設けられた係数平滑化手段と、
上記係数平滑化手段による係数の平滑化処理を禁止する平滑化禁止手段と、
上記平滑化処理の禁止を指示する第２の禁止情報を含むマイクロプログラムによって、上記効果付加演算を制御するとともに、上記第１の記憶手段および第２の記憶手段のアドレス指定がなされるように制御する制御手段とを備え、
上記平滑化禁止手段は、上記第１の禁止情報が禁止を示すアクティブ状態、および上記マイクロプログラムが上記第１の記憶手段および第２の記憶手段にアドレスを指定する際の上記マイクロプログラムの命令に含まれる上記第２の禁止情報が禁止を示すアクティブ状態の少なくとも一方によって、上記係数平滑化手段による係数の平滑化処理を禁止するように構成されることを特徴とする電子楽器の効果付加装置。
【請求項２】
上記第２の記憶手段に記憶される係数目標値の語長は、上記第１の記憶手段に記憶される係数現在値の語長よりも短い語長であることを特徴とする請求項１に記載の電子楽器の効果付加装置。
【請求項３】
上記平滑化禁止手段は、上記係数平滑化手段により係数の平滑化処理が開始されてから所定の時間をおいた後、係数の平滑化処理を禁止するように制御されることを特徴とする請求項１に記載の電子楽器の効果付加装置。
【請求項４】
上記係数の平滑化の許可、平滑化の禁止、および平滑化の許可と禁止との併用の３パターンを係数の種類に応じて使い分けるようにしたことを特徴とする請求項１に記載の電子楽器の効果付加装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は電子楽器の効果付加装置に関し、特に、マイクロプロセッサ（ＣＰＵ）などを用いて、与えられた楽音信号に音響効果を付加する装置に用いて好適なものである。
【０００２】
【従来の技術】
従来、電子楽器においては、リバーブ、コーラスなどの各種音響効果を付加することが、自然楽器と同様に音に厚みと奥行とを与え、音楽性豊かな演奏を行う上で重要な要素となっている。そして、マイクロプロセッサ（ＣＰＵ）が効果付加回路の動作を制御して音響効果を付加するタイプのものは、与えられる楽音信号に対して各種係数を用いて所定の演算を行うことにより、様々な効果を付加するようになっていた。
【０００３】
【発明が解決しようとする課題】
効果付加処理の演算に使われる各種係数は、効果付加回路内の係数メモリに記憶される。これらの係数の中には、電源投入当初からずっと値が変化しないものの他に、楽音信号を処理している最中に、演奏者のパネル操作などに応じてあるいはプログラム等に応じて変更の必要が生じるものがある。このとき、変更すべき係数をいきなり新たな値に変更設定すると、変更前後の出力信号が不連続となることによって切り替わり部分でクリックノイズなどが発生する原因となり、好ましくない。
【０００４】
そこで従来は、例えば、変更すべき係数に対してＣＰＵが平滑化処理を施し、これにより得られる新たな係数値を効果付加回路内の係数メモリに次々に転送するようにしていた。しかしながら、これではＣＰＵの処理負荷が重くなってしまい、ＣＰＵが行う他の処理（鍵盤処理やパネル処理など）を遅らせるなどの支障を来していた。逆に、ＣＰＵの処理負荷を軽減しようとすると、平滑化処理の分解能を粗くせざるを得ず、クリックノイズ発生の原因となる問題があった。
【０００５】
上記問題点を解決すべく、ＣＰＵが平滑化処理を行うのではなく、効果付加回路内の主要な演算回路を利用して係数の平滑化処理を行う場合もあるが、これでは効果付加処理を実行するためのハードウェア資源を平滑化処理のために奪うことになり、効果付加処理の品質を劣化させてしまうという問題があった。
【０００６】
本発明は、このような問題を解決するために成されたものであり、効果付加用係数の平滑化処理を高分解能にて行えるようにする効果付加装置を、ＣＰＵの処理負荷を重くしたり効果付加処理の品質を劣化させたりすることなく、しかも低コストで提供できるようにすることを目的とする。
【０００７】
【課題を解決するための手段】
本発明による電子楽器の効果付加装置は、効果付加演算に用いる係数を平滑化処理によって得る効果付加装置であって、上記効果付加演算に用いる係数の現在値を記憶する第１の記憶手段と、上記第１の記憶手段に記憶されている係数現在値を用いて効果付加演算を実行する演算手段と、係数目標値とともに係数毎に平滑化処理の禁止を指示する第１の禁止情報を記憶するものであり、上記第１の記憶手段と同一の語数で構成された第２の記憶手段と、上記第１の記憶手段に記憶されている係数現在値を上記第２の記憶手段に記憶されている係数目標値に向かって平滑化するものであり、上記演算手段とは別個に設けられた係数平滑化手段と、上記係数平滑化手段による係数の平滑化処理を禁止する平滑化禁止手段と、上記平滑化処理の禁止を指示する第２の禁止情報を含むマイクロプログラムによって、上記効果付加演算を制御するとともに、上記第１の記憶手段および第２の記憶手段のアドレス指定がなされるように制御する制御手段とを備え、上記平滑化禁止手段は、上記第１の禁止情報が禁止を示すアクティブ状態、および上記マイクロプログラムが上記第１の記憶手段および第２の記憶手段にアドレスを指定する際の上記マイクロプログラムの命令に含まれる上記第２の禁止情報が禁止を示すアクティブ状態の少なくとも一方によって、上記係数平滑化手段による係数の平滑化処理を禁止するように構成されることを特徴とする。
【０００８】
本発明の他の特徴とするところは、上記第２の記憶手段に記憶される係数目標値の語長は、上記第１の記憶手段に記憶される係数現在値の語長よりも短い語長であることを特徴とする。
【００１０】
本発明のその他の特徴とするところは、上記平滑化禁止手段は、上記係数平滑化手段により係数の平滑化処理が開始されてから所定の時間をおいた後、係数の平滑化処理を禁止するように制御されることを特徴とする。
【００１１】
本発明のその他の特徴とするところは、上記係数の平滑化の許可、平滑化の禁止、および平滑化の許可と禁止との併用の３パターンを係数の種類に応じて使い分けるようにしたことを特徴とする。
【００１２】
【発明の実施の形態】
以下、本発明の一実施形態を図面に基づいて説明する。
図１は、本発明の一実施形態である効果付加回路の内部構成を示すブロック図であり、図２は、上記効果付加回路を適用した電子楽器の概略構成を示すブロック図である。
【００１３】
まず、図２において、鍵盤回路１、パネル回路２、ＣＰＵ３、ＲＯＭ４、ＲＡＭ５、楽音発生回路６および効果付加回路７は、それぞれデータバス、アドレスバス等のバスライン５０に接続されて、相互にデータの送受信が行われるように構成されている。
【００１４】
鍵盤回路１は、複数の鍵の各々に対応して設けられた２つの鍵スイッチを備えている。各鍵スイッチは、ダイオードを介してマトリクス回路になっている。パネル回路２には、リズム選択スイッチ、音色選択スイッチ、効果選択スイッチ、効果付加量設定スイッチ、音量設定スイッチ等の各種操作子があり、これらのスイッチ群の状態はＣＰＵ３が読み取り、それぞれに対応した処理が行われるようになっている。
【００１５】
ＣＰＵ３は、ＲＯＭ４に格納されたプログラムに従って動作し、電子楽器全体を制御する。例えば、鍵盤回路１の各鍵スイッチのスキャン処理およびパネル回路２の各操作子のスキャン処理を行って、鍵盤回路１の各鍵の操作状態（押鍵、離鍵、操作された鍵のキーナンバ、鍵の操作に関するベロシティ等）およびパネル回路２の各操作子の操作状態を検出し、各鍵または各操作子の操作に応じて後述する各種処理を実行する。
【００１６】
ＲＯＭ４には、ＣＰＵ３の動作を決定するプログラムの他に、楽音発生回路６に設定する音色パラメータや、効果付加回路７の動作制御用のマイクロプログラム等が格納されている。ＲＯＭ４にはまた、効果付加用の係数が効果の種類毎に格納されている。ＲＡＭ５は、ＣＰＵ３の作業用メモリであり、ＣＰＵ３の各種処理の実行過程において処理内容を一時的に記憶したり、各種処理の結果得られた情報を記憶したりするのに使用される。
【００１７】
楽音発生回路６は、ＣＰＵ３によって設定されたパラメータに基づき、ディジタル楽音信号を発生する。すなわち、ＣＰＵ３は、操作された鍵のキーナンバや各操作子による設定等に基づき楽音パラメータを楽音発生回路６に転送する。楽音発生回路６は、この楽音パラメータ等に基づいて楽音波形を発生し、その（振幅）エンベロープを加工してディジタル楽音信号として出力する。このとき楽音発生回路６は、複数チャンネルの楽音信号を時分割で発生し、それらを全チャンネル分累算合成して効果付加回路７に出力する。
【００１８】
効果付加回路７は、上記楽音発生回路６から出力されたディジタル楽音信号に対して、効果付加用の係数を用いてリバーブ、コーラス、フェイザー、ビブラート、トレモロ等の様々な音響効果を付加する。このとき、効果付加のために楽音信号の遅延手段として、効果付加回路７に接続されている遅延ＲＡＭ８を用いる。すなわち、例えば残響音作成などのためには楽音信号を数百〜数万サンプル遅延させる必要があり、遅延ＲＡＭ８はこれを実現するのに使用される。
【００１９】
上記効果付加回路７により効果の付加されたディジタル楽音信号は、Ｄ／Ａコンバータ９に出力され、アナログ信号に変換される。そして、Ｄ／Ａコンバータ９から得られるアナログの楽音信号は、アンプ、スピーカ等により構成されるサウンドシステム１０に与えられ、音響出力される。
【００２０】
次に、図１に示す効果付加回路７の内部構成において、１１はＣＰＵインタフェース回路であり、ＣＰＵ３が効果付加回路７の内部へデータ転送を行う際のインタフェースとして使用される。このＣＰＵインタフェース回路１１は、ＣＰＵ３によるデータ転送動作を効果付加回路７の動作タイミングに同期させるための同期化回路等を備えている。
【００２１】
１２は入力レジスタであり、楽音発生回路６から入力される楽音信号を一時的に記憶する。１３は出力レジスタであり、Ｄ／Ａコンバータ９へ出力する楽音信号を一時的に記憶する。１４は外部メモリアドレス制御回路であり、外部に接続されている遅延ＲＡＭ８へのアクセス（データの読み出し／書き込み）を制御する。すなわち、ＣＰＵインタフェース回路１１を介してＣＰＵ３によって転送・設定されたＦ−ＲＡＭ１５に記憶されているオフセットアドレス情報などに基づいて、外部メモリである遅延ＲＡＭ８へのアドレス信号を生成する。
【００２２】
１６は外部メモリ読出データレジスタであり、外部メモリである遅延ＲＡＭ８から読み出したデータを一時的に記憶する。１７は外部メモリ書込データレジスタであり、外部メモリである遅延ＲＡＭ８に書き込もうとするデータを一時的に記憶する。Ｐ−ＲＡＭ１８は、効果付加回路７の演算動作を制御するためのマイクロプログラムを記憶する。このＰ−ＲＡＭ１８の内容は、ＣＰＵインタフェース回路１１を介してＣＰＵ３によって転送・設定される。
【００２３】
１９は命令デコーダであり、上記Ｐ−ＲＡＭ１８からレジスタ２０を介して読み出されたマイクロプログラムの各インストラクション（命令）をデコードして、効果付加回路７の演算動作を制御する信号を生成する。例えば、効果付加回路７の内部におけるデータパス部分の各種セレクタの選択制御信号、各種パイプラインレジスタへの書込許可信号などを生成する。
【００２４】
Ｂ−ＲＡＭ２１は、効果付加演算途中のデータを一時的に記憶したり、数サンプル程度の遅延を実現したりするのに使用される。２２は正弦関数や指数関数の値などをテーブルとして記憶している関数テーブルＲＯＭであり、効果付加処理における非線形演算を効率的に実行するために使用される。効果付加処理は、以上に説明した各構成の他に、図１の一点鎖線より右側に示す乗算器、バレルシフタ、加減算器、リミッタ、セレクタやパイプラインレジスタなどにより構成される主要な演算回路によって行われる。
【００２５】
Ｇ−ＲＡＭ２３は、図３に示すように、９ビットで成る１語（１ワード）に８ビット表現した係数目標値と１ビットの平滑化禁止フラグＳＤとを複数ワード分（図３の例では１２８ワード。これらはそれぞれ別の効果付加のために使用される）記憶する。このＧ−ＲＡＭ２３の内容は、ＣＰＵ３によりＲＯＭ４から読み出された内容（ただし、１６ビット表現された係数目標値の上位８ビット）等がＣＰＵインタフェース回路１１を介して転送・設定される。
【００２６】
８ビット表現された係数目標値は、後述のＣ−ＲＡＭ２４に記憶されている係数現在値を平滑化処理する際の目標値となるものであり、比較器２５の端子Ａに供給される。また、１ビットの平滑化禁止フラグＳＤは、その値が“１”のときは効果付加用係数の平滑化禁止、“０”のときは平滑化許可を表すものであり、ＯＲゲート２６に供給される。以上のようなＧ−ＲＡＭ２３の構成により、平滑化するか否かは係数目標値毎に設定することが可能である。
【００２７】
先に述べたように、様々な効果付加用係数の中には、電子楽器の電源投入当初からずっと値が変化しないものと、パネル回路２上の効果選択スイッチや効果付加量設定スイッチが操作されたとき、あるいは各種の操作子が操作されたときに値を変更する必要が生じるものとがある。例えば、前者の係数の場合は平滑化禁止フラグＳＤを“１”に設定し、後者の係数の場合は平滑化禁止フラグＳＤを“０”に設定しておけば良い。
【００２８】
上述のＣ−ＲＡＭ２４は、図４に示すように、１６ビット表現された係数現在値を、Ｇ−ＲＡＭ２３と同じ１２８ワード分記憶するものである。平滑化が許可されているときは、比較器２５や＋１／−１加算器２７などによって平滑化された結果がセレクタ２９により選択され、レジスタ３０およびセレクタ２８を介して記憶される。一方、平滑化が禁止されているときは、Ｃ−ＲＡＭ２４に記憶されていた係数現在値がセレクタ２９により選択され、レジスタ３０およびセレクタ２８を介して再び記憶される。
【００２９】
なお、セレクタ２８は、ＣＰＵ３からＣＰＵインタフェース回路１１を介して係数が転送されてきているときは、係数平滑化の許可／禁止には関係なくＣＰＵインタフェース回路１１からの出力を選択する。すなわち、ＣＰＵ３から係数値が転送されてきているときは、レジスタ３０からの出力ではなく、ＣＰＵインタフェース回路１１からの係数値がセレクタ２８により選択されてＣ−ＲＡＭ２４に記憶される。
【００３０】
このＣ−ＲＡＭ２４に記憶された係数現在値は、効果付加演算におけるフィルタ係数や振幅係数などとして使用される。効果付加処理のためにＣ−ＲＡＭ２４の内容を読み出す際のＣ−ＲＡＭ２４のアドレスは、Ｐ−ＲＡＭ１８から読み出されたマイクロプログラムによって指定される。このアドレス指定は、Ｇ−ＲＡＭ２３のアドレスも指定する。すなわち、効果付加処理の際に指定されるアドレスは、Ｇ−ＲＡＭ２３とＣ−ＲＡＭ２４とで同一である。
【００３１】
比較器２５は、Ｃ−ＲＡＭ２４に記憶されている係数現在値をＧ−ＲＡＭ２３に記憶されている係数目標値に向かって平滑化するために、Ｇ−ＲＡＭ２３より端子Ａに入力される８ビットの係数目標値と、Ｃ−ＲＡＭ２４より端子Ｂに入力される１６ビットの係数現在値との大小を比較する。なお、係数目標値は、Ｇ−ＲＡＭ２３の内容の下位に８ビットの“０”が挿入された１６ビットの数値とみなして比較する。
【００３２】
そして、その大小比較の結果に応じて、係数現在値と係数目標値とが一致しているという信号「Ａ＝Ｂ」または、係数目標値の方が係数現在値よりも大きいという信号「Ａ＞Ｂ」を出力する。一致信号「Ａ＝Ｂ」は、ＯＲゲート２６に供給される。また、信号「Ａ＞Ｂ」は、＋１／−１加算器２７に入力され、その動作を制御する。なお、係数目標値の方が係数現在値よりも小さいときには、何れの信号も出力されない（あるいは“０”の信号が出力される）。
【００３３】
上記＋１／−１加算器２７は、比較器２５より信号「Ａ＞Ｂ」が入力されているときは、Ｃ−ＲＡＭ２４から読み出された係数現在値をインクリメント（＋１）してセレクタ２９に出力する。一方、信号「Ａ＞Ｂ」が入力されていないときは、Ｃ−ＲＡＭ２４から読み出された係数現在値をデクリメント（−１）してセレクタ２９に出力する。
【００３４】
また、上記ＯＲゲート２６は、上述した比較器２５からの一致信号「Ａ＝Ｂ」およびＧ−ＲＡＭ２３から読み出された平滑化禁止フラグＳＤの他に、命令デコーダ１９が出力する平滑化禁止信号ＳＤ′（命令デコーダ１９がマイクロプログラムの命令をデコードして作成する）が入力され、それらの入力内容に応じて、係数現在値の処理結果を選択出力するセレクタ２９を制御するための選択制御信号を出力する。
【００３５】
すなわち、ＯＲゲート２６は、入力される３信号のうち少なくとも１つが“１”であれば、“１”の選択制御信号を出力することによって係数の平滑化を禁止する。このとき、セレクタ２９は、Ｃ−ＲＡＭ２４から読み出された係数現在値を何の処理も施さずに出力する。一方、入力される３つの信号が全て“０”のときは、ＯＲゲート２６から“０”の選択制御信号を出力することによって係数の平滑化を許可する。ことのき、セレクタ２９は、＋１／−１加算器２７から供給された平滑化途中のデータを出力する。セレクタ２９より出力された値は、レジスタ３０およびセレクタ２８を介してＣ−ＲＡＭ２４に再び書き込まれる。
【００３６】
以下に、上記のように構成した本実施形態による効果付加回路７の動作を説明する。上述したように、パネル回路２上の効果選択スイッチや効果付加量設定スイッチが操作されたとき、あるいは各種の操作子が操作されたときには、効果付加処理用の係数の幾つかを変更する。
【００３７】
このような場合、ＣＰＵ３は、スイッチの操作量などに応じて、効果付加回路７内の変更すべき係数を新たな値に設定する。すなわち、新たな係数目標値を、ＣＰＵインタフェース回路１１を介してＧ−ＲＡＭ２３内の変更を要する箇所（アドレス）に転送する。このとき、その新たな係数に対応する平滑化禁止フラグＳＤの値を“０”にしておく。また、その係数のＧ−ＲＡＭ２３およびＣ−ＲＡＭ２４上のアドレスを指定するマイクロプログラムの命令においては、平滑化禁止信号ＳＤ′の値を“０”にすることにより係数の平滑化を許可しておく。
【００３８】
これにより、Ｃ−ＲＡＭ２４に記憶されている係数現在値が、比較器２５および＋１／−１加算器２７の動作により１つずつインクリメントあるいはデクリメントされていくことにより、Ｇ−ＲＡＭ２３に記憶されている新たな係数目標値に向かって平滑化されていく。そして、Ｃ−ＲＡＭ２４内の係数現在値がＧ−ＲＡＭ２３内の新たな係数目標値と一致して平滑化が完了した時点で、一致信号「Ａ＝Ｂ」が比較器２５よりＯＲゲート２６に入力され、平滑化が禁止される。
【００３９】
このように、本実施形態では、例えば演奏者のパネル操作などによって効果付加用の係数値を変更する場合に、いきなり新たな値に変更するのではなく、平滑化処理によって徐々に変更するようにしている。その際、係数値を１つずつ増加あるいは減少させていくことによって平滑化の分解能を大きくとっているので、音響効果の切り替わり部分でクリックノイズが全く発生しないようにすることができる。
【００４０】
この場合において、本実施形態では、ＣＰＵ３とは別の効果付加回路７内で平滑化演算を行っているので、ＣＰＵ３の負荷を軽くすることができる。しかも、効果付加回路７内の主要な演算回路とは別個に平滑化回路を設けているので、効果付加処理のためのハードウェア資源が平滑化処理のために奪われることがなく、高品質な効果を付加することができる。
【００４１】
さらに、このように別個に設けた平滑化回路の回路規模は、係数を記憶するためのメモリの規模に大きく依存するが、本実施形態では、係数目標値を記憶するＧ−ＲＡＭ２３の語長を、効果付加処理で使用する係数現在値の語長よりも短くしたので、平滑化のために追加したハードウェア資源が少なくて済み、回路コストを低く抑えることができる。
【００４２】
なお、上記した実施形態とは異なり、係数目標値を記憶するＧ−ＲＡＭ２３のワード数をＣ−ＲＡＭ２４のワード数よりも少なくすることによって回路規模を小さくすることも考えられるが、これでは係数現在値と係数目標値とが１対１に対応せず、調停のための複雑な回路が必要となる。よって、上述のような語長を短くする実施形態を採用するのがより好ましい。なお、短くする語長は、８ビットには限定されない。
【００４３】
係数目標値の語長を短くした場合は、平滑化終了後の係数値は全て目標値の短い語長で精度が決定され、係数精度が不足してしまうが、例えば振幅を制御する係数は、８ビット精度で大抵は十分である。これに対して、フィルタ係数（特にＩＩＲ（Infinite Impulse Response ）フィルタ）では細かい精度を要する場合が多い。このように変更すべき係数の値が１６ビット（９ビット以上の）精度を要する場合には、上述した係数の平滑化と平滑化禁止とを併用する。
【００４４】
すなわち、ＣＰＵ３はまず、スイッチの操作量などに応じて、１６ビット精度の新たな係数目標値に最も近い８ビット精度の係数目標値を、ＣＰＵインタフェース回路１１を介してＧ−ＲＡＭ２３内の変更を要する箇所（アドレス）に転送する。このとき、その新たな８ビット係数目標値に対応する平滑化禁止フラグＳＤの値を“０”にすることにより、平滑化を許可しておく。また、その係数のＧ−ＲＡＭ２３およびＣ−ＲＡＭ２４上のアドレスを指定するマイクロプログラムの命令においても、係数の平滑化を許可しておく。
【００４５】
これにより、Ｃ−ＲＡＭ２４に記憶されている係数現在値が、比較器２５および＋１／−１加算器２７の動作により１つずつインクリメントあるいはデクリメントされていくことにより、Ｇ−ＲＡＭ２３に記憶されている新たな係数目標値に向かって平滑化されていく。その後、その平滑化処理が完了すると予想される時間をおいて、平滑化禁止フラグＳＤの値を“１”にして平滑化を禁止するとともに、Ｃ−ＲＡＭ２４の対応する箇所（アドレス）に、ＣＰＵ３からＣＰＵインタフェース回路１１を介して１６ビット精度の係数値を転送する。
【００４６】
このようにすることにより、最終的な目標値に近い８ビット精度の係数目標値までは平滑化が行われ、その平滑化が完了した後で１６ビット精度の本来の係数目標値に置き換えられる。このとき置き換えられる値の差はそれほど大きくないので、クリックノイズは発生しないか、発生してもほとんど無視できる。したがって、本実施形態によれば、回路規模の小さな平滑化回路を用いて、クリックノイズの発生を有効に防止できるとともに、効果付加用係数を本来必要な１６ビットの高精度で表現することができる。
【００４７】
なお、以上の例では、平滑化禁止フラグＳＤの値によって平滑化の許可と禁止とを制御していたが、Ｇ−ＲＡＭ２３およびＣ−ＲＡＭ２４上のアドレスを指定するマイクロプログラムの命令によって制御するようにしても良いし、両者を併用するようにしても良い。また、フィルタ係数だけでなく、振幅係数を含む値変更の必要な全ての係数に対して係数の平滑化と平滑化禁止とを併用するようにしても良い。
【００４８】
係数のアドレスを指定するマイクロプログラムの命令において平滑化の許可／禁止を制御するようにした場合には、以下のようなメリットも有する。すなわち、効果付加処理用のマイクロプログラムは、２２μｓ程度のサンプリング周期毎に実行されるが、同一の係数のアドレスに対して１サンプリング（周期）期間中にアクセスが複数回行われることがある。
【００４９】
このとき、平滑化禁止フラグＳＤで平滑化を許可していると、アクセスの度に＋１／−１加算が行われることによって１サンプリング期間内に係数値が大きく変わってしまうことがある。つまり、サンプリング期間毎に見ると平滑化処理の分解能が小さく、係数値が一気に変更されてしまうことになる。よって、ある係数を何度もアクセスするような場合、最初のアクセス時にはマイクロプログラムによって平滑化を許可しておき、２回目以降のアクセス時には平滑化を禁止するようにすれば、上述のような不都合はなくすことができる。
【００５０】
次に、値を変更する必要がなく細かい精度を要する係数を設定する場合は、その係数を指定するマイクロプログラムの命令において平滑化禁止信号ＳＤ′の値を“１”にすることによって係数の平滑化を禁止する。この係数の設定変更は、Ｃ−ＲＡＭ２４の該当するアドレスに１６ビット精度の係数値を転送することによって行う。このとき、Ｇ−ＲＡＭ２３は使用しないため、対応するアドレスの内容は何でも良い。
【００５１】
このような係数は、音を出しながら変更することはないということを想定しているので、変更すべき係数をいきなり新たな値に変更してもクリックノイズなどは発生しない。よって、この場合も、クリックノイズを発生することなく効果付加用係数を本来必要な１６ビットの高精度で表現することができる。なお、平滑化の禁止は、対応する係数の平滑化禁止フラグＳＤの値を“１”にすることによって行うようにしても良い。
【００５２】
以上のように、係数の種類によって平滑化、平滑化と平滑化禁止との併用、および平滑化禁止の３パターンを使い分けることによって、どのような種類の係数であっても、本実施形態の回路規模の小さな平滑化回路を用いて、ＣＰＵ３の処理負荷を重くしたり効果付加処理の品質を劣化させたりすることなく効果付加用係数の平滑化処理を高分解能にて行い、本来必要な精度で係数を表現することができる。なお、このような使い分けは、パネル回路２で設定された効果の種類に従ってＣＰＵ３がＣＰＵインタフェース回路１１を介して設定する。
【００５３】
なお、以上に述べた実施形態では、平滑化を禁止するために平滑化禁止フラグＳＤおよび平滑化禁止信号ＳＤ′の２つを用いているが、どちらか一方のみを用いるようにしてもよい。ただし、マイクロプログラムに基づく平滑化禁止信号ＳＤ′によって平滑化を禁止する場合には上述したようなメリットがある。また、平滑化禁止フラグＳＤによって平滑化を禁止する場合には、マイクロプログラムでは行うことが困難な設計変更を比較的容易に行えるというメリットがあるので、両者を併用するのがより好ましい。
【００５４】
【発明の効果】
本発明は上述したように、ＣＰＵとは別の効果付加装置内で平滑化演算を行うように構成したので、ＣＰＵの負荷が軽く、細かい平滑化を実行することができる。しかも、効果付加装置内の主要な演算手段とは別個に係数平滑化手段を設けているので、演算手段は効果付加演算に専念でき、高品質な音響効果を付加することができる。また、係数目標値を記憶する第２の記憶手段の語長を効果付加処理で使用する係数現在値の語長よりも短くすれば、平滑化のために追加するハードウェア資源が少なく経済的である。
【００５５】
また、係数の平滑化処理を禁止する平滑化禁止手段を備えたので、平滑化の禁止が指示されている係数については、係数現在値を記憶する第１の記憶手段に設定された係数値が何の変更も施されずに使用されるので、係数現在値の持っている本来の語長で係数の精度を設定することができる。係数現在値を長い語長で構成すれば、高精度で係数を表現することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態である効果付加回路の構成を示すブロック図である。
【図２】本実施形態の効果付加回路を適用した電子楽器の概略構成を示すブロック図である。
【図３】Ｇ−ＲＡＭの構成を示す概念図である。
【図４】Ｃ−ＲＡＭの構成を示す概念図である。
【符号の説明】
３  ＣＰＵ
４  ＲＯＭ
７  効果付加回路
１９  命令デコーダ
２３  Ｇ−ＲＡＭ
２４  Ｃ−ＲＡＭ
２５  比較器
２６  ＯＲゲート
２７  ＋１／−１加算器
２９  セレクタ
【図１】
0003707908.tif 000002
【図２】
0003707908.tif 000003
【図３】
0003707908.tif 000004
【図４】
0003707908.tif 000005