説明

デジタル信号処理装置

【課題】遅延メモリのアクセスに用いるアドレスデータを記憶するアドレスメモリのデータ容量を縮小する。
【解決手段】遅延メモリ10を具えたDSP6は、遅延メモリ10に対してアクセス可能な全ステップ数よりも少ない数のアドレスデータを記憶するアドレスメモリ13と、所定ステップ数のマイクロコードからなるマイクロプログラムを記憶したマイクロプログラムメモリ11と、各ステップ毎にマイクロコード読出用の第1カウント値を生成するステップカウンタ12と、遅延メモリ10に対するアクセス命令ごとに第2カウント値を生成するアクセスカウンタ14と、遅延メモリアクセス部15を具え、アクセス命令ごとに第2カウント値を用いてアドレスメモリ13からアドレスデータを読み出し、遅延メモリアクセス部15は読み出されたアドレスデータを用いて遅延メモリ10をアクセスする。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、マイクロプログムを用いたデジタル信号処理装置に関し、特に、音響信号を遅延するために用いる遅延メモリを具えたものに関する。
【背景技術】
【0002】
従来、デジタル信号処理用集積回路(デジタル信号処理装置(DSP))により、入力されるデジタル音響信号(波形データ)に対する処理を行うことが知られている。信号処理用集積回路(DSP)は、所定ステップ数のマイクロコードからなるマイクロプログラムを記憶したマイクロプログラムメモリを有しており、音響信号(波形データ)を処理するためのサンプリング周期毎に、入力された音響信号(波形データ)に対して、該所定ステップ数のマイクロコードに基づき、所定ステップ数の信号処理を施す。この種の信号処理装置が実行する信号処理は、例えば、音響信号(波形データ)に対するエフェクト(効果付与)処理、複数チャンネルの音響信号のミキシング処理、あるいは、楽音信号生成処理(音源機能)等である。
【0003】
音響信号に対する効果付与処理等を行うDSPは、さらに、当該DSPの外部又は内部に、処理対象の音響信号を遅延するために用いる遅延メモリを有している。遅延メモリは、例えば、リバーブ効果、エコーないしディレイ効果、コーラス効果などの遅延を必要とする音響効果(エフェクト)を音響信号に付与するときに利用される。遅延メモリを内部メモリとして持つ構成の場合は、マイクロプログラムの全ステップで内部の遅延メモリにアクセス可能だった。遅延メモリを外部メモリとして持つ場合は、遅延メモリのアクセス速度の関係から、所定ステップ数毎、例えば3ステップに1回ずつ、遅延メモリに対するアクセスを可能とする構成だった(例えば、下記特許文献1を参照)。
【特許文献1】特開平11−203129号公報
【0004】
遅延メモリのアクセスに用いるアドレスデータは、アドレスレジスタに記憶されていた。従来のアドレスレジスタは、遅延メモリに実際にアクセスするステップ数に関わらず、「遅延メモリにアクセス可能な全ステップ数分」のアドレスデータに相当するデータ容量を持っており、「遅延メモリにアクセス可能な全ステップ数分」のアドレスデータを記憶していた。
【0005】
しかし、実際に遅延メモリのアクセスに使用されるマイクロプログラムのステップ数は、マイクロプログラムの構成によって異なるが、殆どの場合、サンプリング周期毎で遅延メモリにアクセス可能な全ステップのうちのほんの一部のステップ数に過ぎない。つまり、アドレスレジスタにアクセス可能な全ステップ数分のアドレスデータを記憶していても、実際に使用されるアドレスデータは、そのうちのほんの一部だった(例えば、下記特許文献2の図36〜図38を参照)。
【特許文献2】特開平8−211873号公報
【0006】
上記のような遅延を伴う効果付与処理を行うDSP(波形遅延用の遅延メモリを有するDSP)は、デジタルエフェクタ、電子楽器、或いは、デジタルミキサなど、色々な音楽機器に登載されるものである。従って、それら音楽機器のコスト削減や、或いは、それら音楽機器の低コスト機種における効果付与機能の充実等の観点から、DSPのコスト節減が望まれる。それゆえ、上記の通り、必要以上に多くのデータ容量を有していた従来のアドレスレジスタのサイズを縮小することが望まれるのである。
【発明の開示】
【発明が解決しようとする課題】
【0007】
この発明は、上記の点に鑑みてなされたもので、音響信号に対する効果付与処理等を行うデジタル信号処理装置(DSP)において、遅延メモリのアクセスに用いるアドレスデータを記憶するアドレスレジスタのデータ容量を縮小し、以って、デジタル信号処理装置(DSP)のコストを節減することを目的とする。
【課題を解決するための手段】
【0008】
この発明は、各サンプリング周期毎に、入力された音響信号に対して、所定ステップ数の信号処理を施して出力する信号処理装置であって、前記音響信号を遅延するために用いる遅延メモリと、前記遅延メモリに対するアクセス命令を含む前記所定ステップ数のマイクロコードからなるマイクロプログラムを記憶したマイクロプログラムメモリと、サンプリング周期毎にリセットされ、前記マイクロプログラムの各ステップ毎に歩進する第1カウント値を生成して、各ステップ毎に該生成された第1カウンタ値を用いて前記マイクロプログラムメモリからマイクロコードを読み出して出力する第1読出部と、1サンプリング周期で前記遅延メモリに対してアクセス可能な全ステップ数よりも少ない数のアドレスデータを記憶するアドレスレジスタと、サンプリング周期毎にリセットされ、遅延メモリに対するアクセス命令を含むマイクロコードが前記第1読出部により出力される毎に歩進する第2カウント値を生成し、該生成した第2カウント値を用いて前記アドレスレジスタからアドレスデータを読み出して出力する第2読出部と、前記第1読出部により前記マイクロプログラムメモリから読み出したマイクロコードが遅延メモリに対するアクセス命令であった場合に、前記第2読出部により前記アドレスレジスタから読み出したアドレスデータを用いて前記遅延メモリをアクセスして、前記遅延メモリに対する音響信号の書き込み、又は、前記遅延メモリからの音響信号の読み出しを行う遅延メモリアクセス部とを備えることを特徴とする信号処理装置である。
【0009】
上記構成からなる信号処理装置によれば、アドレスレジスタには1サンプリング周期内で前記遅延メモリに対してアクセス可能な全ステップ数よりも少ない数のアドレスデータを記憶しておき、実行すべきマイクロコードとして遅延メモリに対するアクセス命令が発生したときに、該アクセス命令を含むマイクロコードが前記第1読出部により出力される毎に歩進する第2カウント値を用いてアドレスレジスタからアドレスデータを読み出して、そのアドレスデータを使用して遅延メモリのアクセスを行う。これにより、アクセス可能な全ステップ数分のデータ容量を持っていた従来のアドレスレジスタと比較して、アドレスレジスタのデータ容量を大幅に削減することができる。
【0010】
この発明の好ましい一実施形態として、前記アドレスレジスタは、前記マイクロプログラムメモリに記憶されたマイクロプログラムを構成する所定ステップ数のマイクロコードのうちの遅延メモリに対するアクセス命令のステップ数に対応する数のアドレスデータを記憶するよう構成することができる。
【発明の効果】
【0011】
この発明によれば、アドレスレジスタに、1サンプリング周期で前記遅延メモリに対してアクセス可能な全ステップ数よりも少ない数のアドレスデータを記憶すること、例えばマイクロプログラムを構成する所定ステップ数のマイクロコードのうちの遅延メモリに対するアクセス命令のステップ数に対応する数のアドレスデータを記憶することにより、アクセス可能な全ステップ数分のデータ容量を持っていた従来のアドレスレジスタと比較して、アドレスレジスタのデータ容量を大幅に削減することができる。これにより、デジタル信号処理装置(DSP)のコストを節減することができるという優れた効果を奏する。そして、アドレスレジスタのデータ容量を削減することにより、このように、デジタル信号処理装置(DSP)のコストを節減することができるので、従来の技術ではコストの都合上、例えばコーラス効果など特定種類のエフェクト機能を登載できなかったデジタルエフェクタ、或いは、エフェクト機能を搭載できなかったミキサや電子楽器などその他音楽機器に、例えばコーラス効果など多彩なエフェクタ機能を搭載することができるようになるという優れた効果を奏する。
【発明を実施するための最良の形態】
【0012】
以下、添付図面を参照して、本発明の一実施形態について詳細に説明する。以下に説明する実施例においては、本発明に係るデジタル信号処理装置(DSP)をデジタル音響信号に対する効果付与装置(デジタルエフェクタ)に適用した例について説明するが、本発明の実施形態は、それに限定されるものではない。
【0013】
図1は、本発明に係るデジタル信号処理装置(DSP)の詳細な構成例を示すブロック図であり、図2は、図1のデジタル信号処理装置(DSP)を具えたデジタルエフェクタの全体構成を示すブロック図である。デジタルエフェクタは、入力されたデジタル音響信号(デジタル波形データ又は単に波形データとも言う)に対して効果付与処理(エフェクト処理)を施す装置である。図2において、CPU1、フラッシュメモリ2、およびRAM3は、エフェクタの動作を制御するマイクロコンピュータである。
【0014】
CPU1は、CPUバス(データ及びアドレスバス)1Bを介して、フラッシュメモリ2、RAM3、波形入力部4、波形出力部5、デジタル信号処理装置(DSP)6、操作部7、表示部8、および入出力インターフェース(入出力I/O)9に接続され、それら各部とデータ及びアドレス信号を通信可能である。CPU1は、フラッシュメモリ2に記憶された制御プログラムに基づく処理を実行し、データ及びアドレスバス(CPUバス)1Bを介して接続されたエフェクタの各部の動作を制御する。フラッシュメモリ2には、また、DSP6が実行するマイクロプログラムを含むエフェクトデータが複数記憶される。フラッシュメモリ2に記憶された複数のエフェクトデータの詳細は、図3を参照して後述する。
【0015】
波形入力部4は、図示外の音源装置や楽器等の外部機器から音響信号を取り込み、該取り込んだ音響信号をDSP6に供給するインターフェースである。波形入力部4にはアナログ・デジタル変換器が含まれており、アナログ音響信号を所定のサンプリング周波数のデジタル波形データに変換することができる。波形入力部4からはサンプリング周期毎に波形データが出力され、サンプリング周期毎にDSP6に入力される。
【0016】
DSP6は、サンプリング周期毎に、所定ステップ数のマイクロコードからなるプログラムを実行し、波形入力部4から入力される波形データに対して、該所定ステップ数のマイクロコードに基づく所定ステップ数の信号処理を施して、波形出力部5に出力する。DSP6が実行するマイクロプログラムは、CPU1がフラッシュメモリ2から読み出して該DSP6に設定する。DSP6には、遅延メモリ10が外部メモリとして接続される。遅延メモリ10は、効果付与処理(エフェクト処理)において波形データを遅延するために用いるメモリである。また、波形出力部5は、DSP6からサンプリング周期毎に出力される波形データを外部に出力するインターフェースである。波形出力部5には、デジタル・アナログ変換器が含まれておりデジタル波形データをアナログ音響信号に変換して出力することができる。
【0017】
操作部7は、当該デジタルエフェクタで使用するエフェクトタイプ(エフェクタの種類)を選択するためのスイッチや、各種パラメータの値を調整するためのスイッチなどを含む各種スイッチ群と、それらスイッチ群の操作状態を検出する検出回路を含んで構成される。操作部7は、ユーザによって操作され、その操作状態に応じたデータを、CPUバス1Bを介してCPU1に転送する。表示部8は、例えば液晶パネル等で構成されるディスプレイと、その表示を制御する回路を含んで構成される。表示部8は、CPUバス1Bを介してCPU1から供給される各種データをディスプレイに表示する。また、入出力I/O9は、このデジタルエフェクタと各種外部機器とデータ通信可能に接続するインターフェースであって、例えばMIDI規格の信号を送受信するためのMIDIインターフェースや、USB(Universal Serial Bus)インターフェースや、Ethernet(登録商標)規格の通信インターフェースなど、従来から知られる適宜の規格のデータ入出力インターフェースにより構成される。
【0018】
上記構成からなるデジタルエフェクタによれば、ユーザは、操作部7を操作して複数のエフェクトタイプから所望のエフェクトタイプ(エフェクタの種類)を選択すると共に、その選択したエフェクトタイプについて各種パラメータの値を調整することができる。CPU1は、ユーザによって選択されたエフェクトタイプ(エフェクタの種類)に対応するマイクロプログラムを含む各種データをDSP6に設定する。波形入力部4から波形データが入力されると、DSP6は、該入力された波形データに対して、CPU1により設定された各種データに基づく効果付与処理を実行して、信号処理結果の波形データを、波形出力部5を介して外部に出力する。これにより、ユーザは、当該デジタルエフェクタを通して、ユーザが意図した音響効果を付与した音響信号を得ることができる。
【0019】
次に、図1を参照して、DSP6の内部の詳細な構成例について説明する。図1において、符号11はマイクロプログラムメモリであり、所定ステップ数のマイクロコードからなるマイクロプログラムを格納する。マイクロプログラムメモリ11に格納されるマイクロプログラムは、ユーザによって選択されたエフェクトタイプ(エフェクタの種類)に対応するマイクロプログラムであって、CPU1の制御によりCPUバス1Bを介してフラッシュメモリ2から転送されたものである。
【0020】
マイクロプログラムメモリ11は、ステップクロックΦstepの各クロックサイクル毎に1ステップ分のマイクロコードを読み出し、該読み出されたマイクロコードに基づく処理をDSP6の各構成要素に実行させるように構成されている。図1において、マイクロプログラムメモリ11を示すブロックから複数の矢印が引き出されているのは、各クロックサイクル毎にマイクロコードが読み出されることにより、制御対象となるDSP6の構成要素のそれぞれに該マイクロコードに基づく制御信号が出力されることを表現している。
詳しくは後述するが、前記所定ステップ数のマイクロコードのうちの一部のマイクロコードには、制御信号の1つとして遅延メモリ10に対するアクセス命令が含まれており、遅延メモリ10に対するアクセス命令を含むマイクロコードが読み出されたときには、そこに含まれるアクセス命令がアクセスカウンタ14及び遅延メモリアクセス部15に出力される。
【0021】
なお、この実施例では、マイクロプログラムの一例として、512ステップのマイクロコードからなるマイクロプログラムを想定する。
【0022】
ステップカウンタ12は、サンプリング周期毎のクロックである信号Φfsによって各サンプリング周期Φfs毎にリセットされ、且つ、信号処理のステップ周期毎のクロックである信号Φstepによってッ各ステップ周期毎に1ずつ歩進する第1カウント値を生成し、該生成した第1カウント値をマイクロプログラムメモリ11と係数メモリ25に供給する。ステップクロックΦstepは、1サンプリング周期Φfsでマイクロプログラムの所定ステップ数に対応するクロック数を計時するクロックである。ステップカウンタ12が1サンプリング周期Φfs毎にリセットされるので、ステップクロックΦstep毎に歩進する第1カウント値は、1サンプリング周期Φfs毎にマイクロプログラムのステップ数に対応する値の範囲を循環する値となる。
この実施例では、マイクロプログラムが512ステップのマイクロコードからなるものと想定しているので、ステップクロックΦstepは、1サンプリング周期Φfsで512クロック進行するクロックとし、ステップカウンタ12が生成する第1カウント値は、1サンプリング周期Φfsで「0 〜 511」の範囲で循環する値となる。なお、ステップカウンタ12の第1カウント値の歩進動作は、1サンプリング周期Φfs毎に第1カウント値の値が「0 〜 511」の範囲で循環するのであれば、カウントアップ又はカウントダウンのいずれであってもよい。
【0023】
つまり、ステップカウンタ12では、マイクロプログラムの各ステップ毎に歩進する第1カウンタ値が生成され、各ステップ毎に、生成された第1カウンタ値をアドレス信号として用いて、マイクロプログラムメモリ11からマイクロコードが読み出される。第1カウンタ値は1サンプリング周期Φfs毎にリセットされるので、1サンプリング周期Φfs毎に512ステップのマイクロコードが読み出される。
【0024】
アドレスメモリ13は、遅延メモリ10にアクセスするために用いるアドレスデータを記憶するメモリ(アドレスレジスタ)である。アドレスメモリ13が記憶するアドレスデータは、実行すべきマイクロプログラムに対応してフラッシュメモリ2から転送される。アドレスメモリ13は、1サンプリング周期Φfsで遅延メモリ10に「アクセス可能な全ステップ数」よりも少ない数のアドレスデータを記憶する。
1サンプリング周期Φfsで遅延メモリ10に「アクセス可能な全ステップ数」とは、マイクロプログラムの所定ステップ数(この実施例では512ステップ)のうちで遅延メモリ10に「アクセス可能な全ステップ数」であって、遅延メモリ10が、DSP6の内部RAMにより構成されている場合には、マイクロプログラムの所定ステップ数の全ステップでアクセス可能であり、この実施例のように外部RAMにより構成されている場合には、アクセス速度の都合上、マイクロプログラムの所定ステップ数よりも少ない数(例えば、前記所定ステップ数の三分の一)である。
この発明によれば、アドレスメモリ13には、遅延メモリ10に「アクセス可能な全ステップ数」よりも少ない数のアドレスデータを記憶する。具体的には、マイクロプログラムを構成する512ステップのマイクロコードのうちの遅延メモリ10に対するアクセス命令を含むマイクロコードのステップ数に対応する数のアドレスデータを記憶する、つまり、1サンプリング周期Φfsで実際に遅延メモリ10にアクセスするステップ数分のアドレスデータしか記憶しない。
【0025】
背景技術として説明した通り、マイクロプログラム中の遅延メモリ10に対するアクセス命令を含むマイクロコードのステップ数(実際に遅延メモリ10にアクセスするステップ数)は、遅延メモリ10に「アクセス可能な全ステップ数」よりも少数である。従って、本実施例に係るアドレスメモリ13のように、実際に遅延メモリ10にアクセスするステップ数分のアドレスデータしか記憶しない構成とすることで、遅延メモリ10に「アクセス可能な全ステップ数」のアドレスデータを記憶する従来のアドレスメモリ(アドレスレジスタ)の構成と比較して、アドレスメモリ13のデータ容量を大幅に縮小することができる。具体例として、マイクロプログラムが512ステップのマイクロコードからなるものであるのに対して、アドレスメモリ13のデータ容量は、例えば50ステップ分のデータ容量だけ用意しておけばよい。実際に遅延メモリ10にアクセスするステップ数は50ステップ以下だからである。
【0026】
アクセスカウンタ14は、サンプリング周期Φfs毎にリセットされ、マイクロプログラムメモリ11から遅延メモリ10に対するアクセス命令を含むマイクロコードが読み出される毎に歩進する第2カウント値を生成する。このアクセスカウンタ14が生成した第2カウント値をアドレス信号として用いて、アドレスメモリ13からアドレスデータが読み出される。アクセスカウンタ14が生成する第2カウント値は、サンプリング周期Φfs毎にリセットされ、遅延メモリ10に対するアクセス命令が発生する毎に歩進するものであるから、1サンプリング周期Φfs毎に、マイクロプログラムの所定ステップ数のマイクロコードのうちの遅延メモリ10に対するアクセス命令を含むマイクロコードのステップ数に対応する数値範囲で循環する値となる。なお、アクセスカウンタ14の第2カウント値の歩進動作は、カウントアップ又はカウントダウンのいずれであってもよい。
【0027】
サンプルカウンタ16は、1サンプリング周期Φfs毎にカウントダウンするカウンタである。サンプルカウンタ16のカウント値は、加算器18でアドレスメモリ13の出力値に加算される。サンプルカウンタ16のカウント値は、1サンプリング周期Φfs毎に歩進するので、このカウント値をアドレスメモリ13の出力値に加算することで、アドレスメモリ13から出力されたアドレスデータが示す読み出しアドレス及び書き込みアドレスを、サンプリング周期Φfs毎に、遅延メモリ10の下位アドレス(先頭アドレス側)から上位アドレスの方向へずらすことができる。また、レジスタ17には、主に周波数変調を行うためのレジスタアドレスデータが格納される。これは、例えばコーラス効果に際して利用されるデータであって、レジスタ17から出力されたレジスタアドレスデータを加算器18でアドレスメモリ13の出力値に加算することで、遅延メモリ10に対するアドレス信号を周期的に揺らすことができる。
【0028】
加算器18は、上記アドレスメモリ13、サンプルカウンタ16およびレジスタ17の各出力を加算して、遅延メモリ10に対するアドレス信号(メモリアドレスMA)を生成して、遅延メモリアクセス部15に出力する。また、加算器18と遅延メモリアクセス部15の間に挿入された範囲制御部19は、加算器18から出力されたアドレス信号の値の範囲を制限するもので、具体的には、遅延メモリ10の上位アドレス側を切り捨てて、アドレス信号を先頭アドレス側に戻す制御をする。これにより遅延メモリ10をリングメモリとして使用することができる。
【0029】
遅延メモリアクセス部15は、マイクロプログラムメモリ11から出力されたマイクロプログラムに含まれる遅延メモリ10に対するアクセス命令に基づき、アドレスメモリ13から出力されたアドレスデータに基づき生成されたアドレス信号(メモリアドレスMA)を用いて、遅延メモリ10にアクセスして、遅延メモリ10に対する波形データ(メモリデータMD)の書き込み、又は、遅延メモリ10からの波形データ(メモリデータMD)の読み出しを行う。
【0030】
上記符号11〜符号19で示す各構成要素が、遅延メモリ10にアクセスするためのアドレス信号の生成に関連する処理を行う構成要素である。本発明では、アドレスメモリ13は、実際に遅延メモリ10にアクセスするステップ数に対応する数のアドレスデータしか記憶しておらず、データ容量を削減している。そのアドレスメモリ13からのアドレスデータの読み出しは、アクセスカウンタ14がアクセス命令毎に生成する第2カウント値を用いて行うことができる。そして、アドレスメモリ13から読み出したアドレスデータに基づき、遅延メモリ10にアクセスするためのアドレス信号(メモリアドレスMA)の生成するための構成は、サンプルカウンタ16や加算器18を組み合わせたシンプルな構成で実現される。
【0031】
また、図1において、符号15、及び符号17〜符号31で示す各構成要素が、各構成要素に対するマイクロコード(制御信号)に基づき波形データに対する信号処理を行う構成要素であって、この部分については、従来技術と同様である。これら各構成要素について簡単に説明する。
【0032】
第1セレクタ21は、波形入力部4からDSP6に入力された入力データ(波形データ)とデータバス31上のデータとのいずれかを選択して、選択されたデータを入出力RAM (I/O RAM)22に出力する。入出力RAM22は、第1セレクタ21を通して入力されるデータ、および波形出力部5へ出力するデータが格納される。テンポラリRAM(Temp RAM)23の入力には、データバス31が接続されており、データバス31上に置かれた演算の途中結果などが格納される。第2のセレクタ24は、入出力RAM22の出力、およびテンポラリRAM23の出力がそれぞれ入力され、そのいずれかを選択して乗算部27の一方の入力に供給する。
【0033】
係数メモリ25は、CPUバス1Bに接続されており、CPUバス1Bを介してフラッシュメモリ2から転送された係数データを格納する。マイクロプログラムの各ステップにおいては、ステップ毎に独自の係数(ステップ固有係数) を1個づつ用いることができ、係数メモリ25には、マイクロプログラムの所定ステップ数(この実施例では512ステップ)の全ステップに対応する数の係数データが記憶される。係数メモリ25には、前記ステップカウンタ12におい生成された第1カウント値がアドレス信号として供給され、該第1カウント値を用いて、係数メモリ25からマイクロプログラムの各ステップ毎の係数データが読み出される。補間部26は、係数メモリ25から読み出されたステップ毎の係数データを、例えば操作部7の操作によりパラメータの値がユーザに操作されたときなどに、必要に応じて、補間する。補間部26で係数データを補間することで、ユーザによるパラメータ調整操作が、複数サンプリング周期Φfsかけて、信号処理演算に用いる係数に反映されることとなる。
【0034】
乗算部27は、第2セレクタ24を介して入力されるデータと、補間部26から入力された係数値のデータとを高速に乗算する。第3セレクタ28は、前記入出力RAM22、テンポラリRAM23、およびデータバス31の出力が入力され、それら3つの入力のいずれか1つを選択して加算部29に出力する。加算部29は、セレクタ28の出力と乗算部27の出力とを加算する。シフタ30は、加算部29の出力を必要に応じてシフト処理するものである。シフタ30の出力はデータバス31に接続されている。
【0035】
上記構成からなるDSP6は、サンプリング周期Φfs毎に、以下の処理を行う。まず、直前のサンプリング周期に信号処理され入出力RAM22に書き込まれた波形データを、入出力RAM22から読み出して波形出力部5に出力すると共に、当該サンプリング周期で信号処理すべき波形データを波形入力部4から入力して、セレクタ21を介して入出力RAM22に書き込む。続いて、マイクロプログラムメモリ11に記憶されたマイクロプログラムの所定ステップ数のマイクロコードを実行することにより、入出力RAM22に書き込まれた入力波形データに該所定ステップ数のマイクロコードに基づいて所定ステップ数の信号処理を施して、処理済みの波形データを入出力RAM22に書き込む。この波形データは、次のサンプリング周期の頭に波形出力部5に出力される。DSP6が実行すべき信号処理内容を示すマイクロプログラムは、ユーザのエフェトタイプ選択操作に応じて、図1のフラッシュメモリ2から読み出されて、マイクロプログラムメモリ11に設定されたものである。
【0036】
図3は、図1のフラッシュメモリ2に記憶されるエフェクトデータの構成例を示す図である。フラッシュメモリ2には、複数N個のエフェクトデータ40(EFデータ1,2,3,4…EFデータN)と、複数M個のマイクロプログラムデータ41(μpデータ1,2…μpデータM)とが記憶されている。複数N個のエフェクトデータ40には、それぞれを特定するエフェクト番号が与えられており、CPU1はそのエフェクト番号により個々のエフェクトデータを特定する。また、マイクロプログラムデータ41は、マイクロプログラムの本体となるデータであって、各々に付与されたマイクロプログラム番号で管理される。各マイクロプログラムデータ41は、既に述べた通り、所定ステップ数(この実施例では、512ステップ)のマイクロコードから構成されており、マイクロコードには遅延メモリ10に対するアクセス命令(読み出し命令及び書き込み命令)が含まれる。
【0037】
各エフェクトデータ40は、エフェクト名のデータ42と、マイクロプログラム番号(μプログラム番号)のデータ43と、係数データ44と、アドレスデータ45と、パラメータ制御管理データ46と、その他のデータ47とを含む。エフェクト名のデータ42は、そのエフェクトタイプの名称を示すデータであって、例えば、そのエフェクトタイプが選択されたときに表示部8に名称を表示するとき等に用いる。マイクロプログラム番号のデータ43は、前記複数N個のエフェクトデータ40の中から、そのエフェクトデータで使用するマイクロプログラムを特定するためのデータである。係数データ44は、そのエフェクトデータで使用する係数のデータであって、マイクロプログラムの512ステップの各ステップに対応する512ステップ分の係数からなる。
【0038】
アドレスデータ45には、マイクロプログラムの512ステップのうち、遅延メモリ10に対するアクセス命令(読み出し命令及び書き込み命令)を含むマイクロコードのステップ数分だけ、すなわち、遅延メモリ10に実際にアクセスするステップ数分だけアドレスデータが用意されている。このアドレスデータ45に含まれるアドレスデータの数は、遅延メモリ10に実際にアクセスするステップ数分だけであるから、遅延メモリ10に対するアクセス可能な全ステップ数よりも大幅に少ない数である。また、パラメータ制御管理データ46は、そのエフェクトデータにおいてユーザが値を調整できるパラメータについて、それらパラメータの名前や、設定値の範囲、それらパラメータの値の操作方法や、そのパラメータの値の調整がどのように係数データ44に反映するのか、などを定義したデータである。
【0039】
なお、マイクロプログラムデータ41の数Mは、実際には、エフェクトデータ40の数Nよりも少ない。全てのエフェクト種類の1つずつに対応するマイクロプログラムデータが用意されているのではなく、似た種類の複数のエフェクトタイプで、共通のマイクロプログラムを用いることがあるからである。例えば、リバーブ関連で複数種類のエフェクトデータが用意されていたとすると、それら複数種類のリバーブは、1つの共通のマイクロプログラムを用いて係数データの違いにより実現されるだろう。
【0040】
図4は、CPU1が実行するエフェトタイプ選択イベントの処理手順の一例を示すフローチャートである。この処理は、ユーザが操作部7を操作することにより現在使用するエフェクトタイプ(エフェクタ種類)を新たに選択したときに、起動する処理である。ステップS1において、CPU1は、フラッシュメモリ2に記憶された複数N個のエフェクトデータ40の中から、ユーザにより選択されたエフェクトタイプに対応するエフェクトデータ40を特定して、そのエフェクトデータ40のエフェクタ番号を、エフェクタ番号パラメータENにセットする処理を行う。
【0041】
ステップS2において、CPU1は、波形入力部4及び波形出力部5における波形データ入出力をミュートする制御を行う。これにより、一時的にエフェクタに入出力される音響信号の音量を下げる(ミュートする)。なお、ステップS2の処理は、DSP6への入力波形データとDSP6からの出力波形データの音量をミュートできさえすればよいので、エフェクタの波形入力部4及び波形出力部5でミュート制御を行う構成に限らず、例えば、DSP6側で入出力波形をミュートするなど、その他の適宜の箇所でミュート制御を行う構成であってもよい。
【0042】
ステップS3において、CPU1は、フラッシュメモリ2から、エフェクタ番号パラメータENに対応するエフェクトデータ40のマイクロプログラム番号(μプログラム番号)43に対応するマイクロプログラムデータ41と、エフェクタ番号パラメータENに対応するエフェクトデータ40の係数データ44とを読み出して、該読み出したマイクロプログラムデータ41をDSP6のマイクロプログラムメモリ11に設定し、また、該読み出した係数データ44をDSP6の係数メモリ25に設定する。
【0043】
ステップS4において、CPU1は、フラッシュメモリ2から、エフェクタ番号パラメータENに対応するエフェクトデータ40のアドレスデータ45を読み出して、該読み出したアドレスデータ45をアドレスメモリ13に設定する。前述の通り、アドレスデータ45には、マイクロプログラムの512ステップのうちの遅延メモリ10に対するアクセス命令が含まれるマイクロコードのステップ数分だけ、アドレスデータが入っている。従って、このステップS4の処理により、アドレスメモリ13には、遅延メモリ10に対するアクセス命令が含まれるマイクロコードのステップ数、すなわち、遅延メモリ10に実際にアクセスするステップ数(アクセス数)に対応する数のアドレスデータが設定される。
【0044】
そして、CPU1は、ステップS5において、DSP6に遅延メモリ10をクリアさせる命令を出して、遅延メモリ10中の過去のデータを消去し、ステップS6において、波形入力部4及び波形出力部5における波形データ入出力のミュートを解除する制御を行うことで、エフェクタに入出力される音響信号の発音を再開させる。上記ステップS1〜S6により、使用するエフェクタの種類がユーザにより新たに選択されたものに切り替わる。
【0045】
DSP6は、前記ステップS3においてマイクロプログラムメモリ11に設定されたマイクロプログラムに基づき、該ステップS3において係数メモリ25に設定された係数データと、前記ステップS4においてアドレスメモリ13に設定されたアドレスデータとを使って、波形データに対する効果付与処理を実行する。
【0046】
図5は、マイクロプログラムの記述例を示す図である。図5に示す通り、マイクロプログラムは、第1ステップ(第0アドレス)〜第512ステップ(第511アドレス)までの合計512ステップのマイクロコードから構成される。512ステップのマイクロコードの1つずつは、図1に示したDSP6の各構成要素に対する制御信号で構成される。すなわち、図5において、第1ステップ(第0アドレス)〜第512ステップ(第511アドレス)の各行が、1ステップ分のマイクロコードに対応しており、1ステップ分のマイクロコード行にはDSP6の各構成要素に対する制御信号が示されている。なお、図5では、図示及び説明の便宜上、第1セレクタ21(「セレクタ1」)、第2セレクタ24(「セレクタ2」)、第3セレクタ28(「セレクタ3」)、乗算部27、TempRAM23、シフタ30、及び遅延メモリM10(「外部RAM」)に対する制御信号の列のみが示されており、他の各構成要素に対する制御信号の列が省略されている。
【0047】
遅延メモリ10に対する制御信号とは、遅延メモリ10に対するアクセス命令であって、遅延メモリ10に対するアクセス命令には遅延メモリ10からのデータ読み出し命令と、遅延メモリ10に対するデータ書き込み命令とがある。図5に示す例では、アクセス命令は、2ビットのデータからなり、読み出し命令「01」と、書き込み命令「10」とが有意のデータである。図5のマイクロプログラムの記述例では、第1アドレスに読み出し命令「01」、第3アドレスに書き見込み命令「10」、および第4アドレスに読み出し命令「01」が入っている。従って、図5に示された範囲では、第2ステップ、第4ステップ、および第5ステップにおいて、それぞれ遅延メモリ10に対するアクセスが行われる。
【0048】
上記構成からなるDSP6において、遅延メモリ10のアクセスに用いるアドレス信号の生成動作と、生成したアドレス信号を用いた遅延メモリ10に対するアクセスの動作について説明する。
ステップカウンタ12では、ステップクロックΦstepに同期して、マイクロプログラムの512ステップの各ステップ毎に歩進する第1カウント値を生成して、各ステップ毎に生成された第1カウント値を用いて、マイクロプログラムメモリ11から1ステップずつマイクロコードを読み出す。実行すべきマイクロコードとして遅延メモリ10に対するアクセス命令(読み出し命令「01」又は書き込み命令「10」)が発生する毎に、該クセス命令(読み出し命令「01」又は書き込み命令「10」)がアクセスカウンタ14と遅延メモリアクセス部15とに入力される。
【0049】
アクセスカウンタ14では、アクセス命令(読み出し命令「01」又は書き込み命令「10」)が発生する毎に歩進する第2カウント値が生成され、生成された第2カウント値がアドレスメモリ13に出力される。これにより、アドレスメモリ13からは、該アクセスカウンタ14で生成された第2カウント値が示すアドレスに格納されたアドレスデータが読み出される。
例えば、前記図5のマイクロプログラムの記述例では、第2ステップ、第4ステップ、および第5ステップにおいて、アクセス命令(読み出し命令「01」又は書き込み命令「10」)が発生し、アクセスカウンタ14では、第2ステップ、第4ステップ、および第5ステップで発生した各アクセス命令毎に歩進する第2カウント値を生成して、該生成した第2アドレス値を用いてアドレスメモリ13からアドレスデータが1つずつ読み出される。
【0050】
アクセスカウンタ14は、サンプリング周期Φfs毎にリセットされるので、各サンプリング周期Φfs毎に、マイクロプログラムの512ステップ中に含まれるアクセス命令を含むマイクロコードのステップ数に対応する数値範囲で循環する第2カウント値を生成する。アドレスメモリ13には、該アクセス命令を含むマイクロコードのステップ数の分だけアドレスデータが記憶されているので、第2カウント値を用いてアドレスデータを読み出すことにより、サンプリング周期Φfs毎に、アドレスメモリ13に記憶された各アドレスデータを繰り返し読み出すこととなる。
【0051】
一方、遅延メモリアクセス部15は、アクセス命令(読み出し命令「01」又は書き込み命令「10」)が入力される毎に、前記アドレスメモリ13から読み出されたアドレスデータに基づき生成されたアドレス信号(メモリアドレスMA)を用いて、遅延メモリ10にアクセスして、入力されたアクセス命令に応じた動作、すなわち、メモリアドレスMAが示す遅延メモリ10上のアドレスから波形データを読み出す動作、又は、バス31から取り込んだ波形データをメモリアドレスMAが示す遅延メモリ10上のアドレスに書き込む動作を行う。これを複数サンプリング周期Φfsにわたり繰り返すことで、DSP6は音響信号(波形データ)を遅延させる。
【0052】
遅延メモリアクセス部15でメモリアクセスに用いるアドレス信号(メモリアドレスMA)は、加算器18においてアドレスメモリ13から出力されたアドレスデータにサンプルカウンタ16およびレジスタ17の各出力を加算したものである。サンプルカウンタ16は、サンプリング周期Φfs毎にカウント値をカウントダウンするものであるから、各サンプリング周期Φfs毎にアドレスメモリ13から同じアドレスデータを出力していても、加算器18でアドレスメモリ13の出力信号にサンプルカウンタ16の出力を加算することで、該アドレスデータに対応するアドレス信号(メモリアドレスMA)が示す遅延メモリ10のデータ読み出し位置、又はデータ書き込み位置は、1サンプリング周期Φfs毎に上位アドレス側へ1ずつシフトされる。
例えば、或る時点でアドレスメモリ13から出力されたアドレスデータに基づくアドレス信号(メモリアドレスMA)をデータ読み出しアドレスRとすると、複数サンプリング周期後に、同じアドレスデータに基づくアドレス信号は、複数サンプリング周期分シフトされた別のデータ読み出しアドレスR´を示す。データ書き込みアドレスも同様であり、前記或る時点でアドレスメモリ13から出力されたアドレスデータに基づくアドレス信号(メモリアドレスMA)をデータ書き込みアドレスWとすると、複数サンプリング周期後に、同じアドレスデータに基づくアドレス信号は、複数サンプリング周期分シフトされた別のデータ読み出しアドレスW´を示す。
【0053】
上記のようにサンプルカウンタ16の出力値でアドレスデータに基づくアドレス信号(メモリアドレスMA)をサンプリング周期Φfs毎にシフトすることで、複数サンプリング周期Φfsにわたって遅延メモリ10上のデータの読み出し位置、及びデータの書き込み位置がそれぞれずれていく。このようにアドレス信号を生成することで、マイクロプログラム中のアクセス命令(読み出し命令及び書き込み命令)とアドレスメモリ13に記憶された各アドレスデータとに基づく遅延処理を、実現する。
【0054】
また、例えばコーラス効果など遅延時間を変調させるタイプの効果(エフェクト)を波形データに付与するときには、加算器18においてアドレスメモリ13から出力されたアドレスデータにレジスタ17から出力されたレジスタアドレスデータを加算する。コーラス効果とは、周知の通り、遅延音の遅延時間を変調(周期的な揺れを与えること)して、その遅延音を原音(DSP6に入力された波形データ)とミキシングすることで得る効果である。レジスタ17には、遅延時間を変調する低周波信号の特性(揺れ幅(深さ)と変化速度など)を制御するレジスタアドレスデータが、CPU1により設定される。加算器18において、アドレスメモリ13から読み出されたアドレスデータにレジスタ17の出力を加算することで、遅延メモリ10に対するアクセスに用いるアドレス信号(メモリアドレスMA)をレジスタ17の出力に基づく変動範囲で揺らして、波形データの遅延時間を変調することができる。すなわち、レジスタ17は変調用の低周波信号を発振するLFOとして機能し、レジスタ17の出力を加算器18で加算することにより変調回路を構成している。このように、波形データの遅延時間を変調することで、DSP6では処理対象の波形データに対して、例えばコーラス効果等の変調を用いる効果を付与して出力することができる。
【0055】
上記をまとめると、本実施例のDSP6によれば、アドレスメモリ13に、遅延メモリ10に実際にアクセスするステップ数分だけ、アドレスデータを記憶しておき、実行すべきマイクロコードが遅延メモリ10に対するアクセス命令であった場合に、アドレスメモリ13からアドレスデータを読み出して、該読み出したアドレスデータに基づき生成されたアドレス信号(メモリアドレスMA)を用いて遅延メモリ10にアクセスして、例えばリバーブ効果や、コーラス効果等、波形データの遅延を用いた効果付与処理(エフェクト処理)を行うことができる。
【0056】
以上説明したとおり、本願発明にかかる実施例によれば、アドレスメモリ13には、所定ステップ数のマイクロコードのうちの遅延メモリに対するアクセス命令のステップ数に対応する数のアドレスデータを記憶するよう構成しているので、アドレスメモリ13のデータ容量を削減することができる。これにより、デジタル信号処理装置(DSP)のコストを節減することができ、従来の技術ではコストの都合上、例えばコーラス効果など特定種類のエフェクト機能を登載できなかったデジタルエフェクタ、或いは、エフェクト機能を搭載できなかったミキサや電子楽器などその他音楽機器に、例えばコーラス効果など多彩なエフェクタ機能を搭載することが可能となる。
【0057】
なお、上記実施例では、遅延メモリ10がDSP6に外部に設けられた「外部メモリ」である構成例を示したが、遅延メモリ10は、DSP6の内部に設けられた「内部メモリ」として構成するようにしてもよい。
【0058】
なお、上記実施例では、アドレスメモリ13のデータ容量は、例えばマイクロプログラムの50ステップ分だけ用意しておけばよいものとしたが、これは一例に過ぎず、遅延メモリ10にアクセス可能な全ステップ数よりも少ない容量であって、必要最小限、すなわち遅延メモリ10に対するアクセス命令が含まれるマイクロコードのステップ数分のアドレスデータを記憶できるデータ容量さえ確保されていればよい。また、マイクロプログラムを構成するマイクロコードのステップ数は512ステップに限らず、所定の複数ステップであってよい。
【0059】
なお、前記図1では、本発明例に係るDSP(デジタル信号処理装置)6がエフェクタに登載される例を挙げたが、本発明例に係るDSP(デジタル信号処理装置)6は、ミキサ、電子楽器、あるいは音源装置など、その他音楽機器にも適用可能である。
【図面の簡単な説明】
【0060】
【図1】本発明に係るデジタル信号処理装置(DSP)の一実施例を示すブロック図。
【図2】図1に示すデジタル信号処理装置(DSP)を適用したデジタルエフェクタの構成例を示すブロック図。
【図3】図2のフラッシュメモリに記憶されたエフェクトデータの構成例を示す図。
【図4】図2のCPUが実行するエフェクト選択イベント処理の手順の一例を示すフローチャート。
【図5】図1のデジタル信号処理装置(DSP)が実行するマイクロプログラムの一例を示す図。
【符号の説明】
【0061】
1 CPU、1B CPUバス、2 フラッシュメモリ、3 RAM、4 波形入力部、5 波形出力部、6 デジタル信号処理装置(DSP)、7 操作部、8 表示部、9 入出力インターフェース、10 遅延メモリ、11 マイクロプログラムメモリ、12 ステップカウンタ、13 アドレスメモリ、14 アクセスカウンタ、15 遅延メモリアクセス部、16 サンプルカウンタ、17 レジスタ、18 加算器、19、範囲制限部、21 第1セレクタ、22 I/ORAM、23 TempRAM、24 第2セレクタ、25 係数メモリ、26 補間部、27 乗算部、28 第3セレクタ、29 加算部、30 シフタ、31 バス、40 エフェクタデータ、41 マイクロプログラムデータ、42 エフェクト名データ、43 マイクロプログラム番号データ、44 係数データ、45 アドレスデータ、46 パラメータ制御管理データ
11- 符号
17- 符号
EN エフェクタ番号パラメータ
I/O 入出力
I/O9 入出力
M 複数
M データ
M 数
M10 遅延メモリ
MA メモリアドレス
MD メモリデータ
N 複数
N データ
N 複数
N 数
N 複数
R アドレス
RAM 内部
RAM 外部
RAM 入出力
RAM テンポラリ
RAM 外部
RAM22 入出力
RAM23 テンポラリ
S1 ステップ
S1-S6 ステップ
S2 ステップ
S3 ステップ
S4 ステップ
S5 ステップ
S6 ステップ
W アドレス
Φfs 信号
Φfs 各サンプリング周期
Φfs サンプリング周期
Φfs 複数サンプリング周期
Φfs サンプリング周期
Φfs 各サンプリング周期
Φfs サンプリング周期
Φfs 複数サンプリング周期
Φfs サンプリング周期
Φfs 各サンプリング周期
Φfs サンプリング周期
Φfs 複数サンプリング周期
Φstep ステップクロック
Φstep 信号
Φstep ステップクロック
0 第
1 下記特許文献
1 特許文献
1 第
1 セレクタ
1 第
1,2 データ
1,2,3,4 データ
1B バス
2 下記特許文献
2 特許文献
2 第
2 フラッシュメモリ
2 第
2 フラッシュメモリ
2 第
2 フラッシュメモリ
2 第
2 セレクタ
2 第
3 第
3 セレクタ
3 第
4 波形入力部
4 第
5 波形出力部
5 第
7 操作部
8 特開平
8 表示部
10 遅延メモリ
11 特開平
11 符号
11 マイクロプログラムメモリ
12 ステップカウンタ
13 アドレスメモリ
14 アクセスカウンタ
15 遅延メモリアクセス部
15 符号
15 遅延メモリアクセス部
16 サンプルカウンタ
17 レジスタ
18 加算器
19 範囲制御部
19 符号
21 セレクタ
24 セレクタ
25 係数メモリ
26 補間部
27 乗算部
28 セレクタ
29 加算部
30 シフタ
31 符号
31 データバス
31 バス
40 エフェクトデータ
40 各エフェクトデータ
40 エフェクトデータ
41 マイクロプログラムデータ
41 各マイクロプログラムデータ
41 マイクロプログラムデータ
42 データ
43 データ
44 係数データ
45 アドレスデータ
46 パラメータ制御管理データ
47 データ
511 第
512 第
512 合計
512 第

【特許請求の範囲】
【請求項1】
各サンプリング周期毎に、入力された音響信号に対して、所定ステップ数の信号処理を施して出力する信号処理装置であって、
前記音響信号を遅延するために用いる遅延メモリと、
前記遅延メモリに対するアクセス命令を含む前記所定ステップ数のマイクロコードからなるマイクロプログラムを記憶したマイクロプログラムメモリと、
サンプリング周期毎にリセットされ、前記マイクロプログラムの各ステップ毎に歩進する第1カウント値を生成して、各ステップ毎に該生成された第1カウンタ値を用いて前記マイクロプログラムメモリからマイクロコードを読み出して出力する第1読出部と、
1サンプリング周期で前記遅延メモリに対してアクセス可能な全ステップ数よりも少ない数のアドレスデータを記憶するアドレスレジスタと、
サンプリング周期毎にリセットされ、遅延メモリに対するアクセス命令を含むマイクロコードが前記第1読出部により出力されるごとに歩進する第2カウント値を生成し、該生成した第2カウント値を用いて前記アドレスレジスタからアドレスデータを読み出して出力する第2読出部と、
前記第1読出部により前記マイクロプログラムメモリから読み出したマイクロコードが遅延メモリに対するアクセス命令であった場合に、前記第2読出部により前記アドレスレジスタから読み出したアドレスデータを用いて前記遅延メモリをアクセスして、前記遅延メモリに対する音響信号の書き込み、又は、前記遅延メモリからの音響信号の読み出しを行う遅延メモリアクセス部と
を備えることを特徴とする信号処理装置。
【請求項2】
前記アドレスレジスタは、前記マイクロプログラムメモリに記憶されたマイクロプログラムを構成する所定ステップ数のマイクロコードのうちの遅延メモリに対するアクセス命令を含むマイクロコードのステップ数に対応する数のアドレスデータを記憶することを特徴とする請求項1に記載の信号処理装置。
【請求項3】
前記遅延メモリアクセス部は、
サンプリング周期毎にカウントダウンするサンプルカウンタと、
前記第2読出部により前記アドレスレジスタから読み出されたアドレスデータに、前記サンプルカウンタの出力を加算する加算器と、
を更に備え、前記加算器の出力を用いて遅延メモリにアクセスすることを特徴とする請求項1又は2に記載の信号処理装置。
【請求項4】
前記遅延メモリアクセス部は、音響信号の遅延時間を変調するための変調回路を更に具えることを特徴とする請求項3に記載の信号処理装置。
【請求項5】
前記遅延メモリは、前記信号処理装置の外部に設けられた外部メモリによって構成されることを特徴とする請求項1乃至4のいずれかに記載の信号処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2010−113023(P2010−113023A)
【公開日】平成22年5月20日(2010.5.20)
【国際特許分類】
【出願番号】特願2008−283611(P2008−283611)
【出願日】平成20年11月4日(2008.11.4)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】