JP3582276B2 - 信号処理装置 - Google Patents
信号処理装置 Download PDFInfo
- Publication number
- JP3582276B2 JP3582276B2 JP01187997A JP1187997A JP3582276B2 JP 3582276 B2 JP3582276 B2 JP 3582276B2 JP 01187997 A JP01187997 A JP 01187997A JP 1187997 A JP1187997 A JP 1187997A JP 3582276 B2 JP3582276 B2 JP 3582276B2
- Authority
- JP
- Japan
- Prior art keywords
- microprogram
- microprograms
- data
- input
- 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.)
- Expired - Fee Related
Links
- 230000000694 effects Effects 0.000 claims description 41
- 238000000034 method Methods 0.000 claims description 17
- 238000006243 chemical reaction Methods 0.000 claims description 16
- 238000007906 compression Methods 0.000 claims description 13
- 238000005070 sampling Methods 0.000 claims description 11
- 230000006837 decompression Effects 0.000 claims description 8
- 230000006835 compression Effects 0.000 claims description 6
- 230000002441 reversible effect Effects 0.000 claims description 4
- 238000013144 data compression Methods 0.000 claims description 2
- 230000015654 memory Effects 0.000 description 76
- 238000010586 diagram Methods 0.000 description 18
- 239000012636 effector Substances 0.000 description 12
- 230000004044 response Effects 0.000 description 9
- 230000003111 delayed effect Effects 0.000 description 5
- 101150016368 TAD1 gene Proteins 0.000 description 4
- 239000011295 pitch Substances 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 101001057305 Homo sapiens Microtubule-associated protein 1S Proteins 0.000 description 1
- 101000799048 Homo sapiens Probable inactive tRNA-specific adenosine deaminase-like protein 3 Proteins 0.000 description 1
- 102100027228 Microtubule-associated protein 1S Human genes 0.000 description 1
- 102100034006 Probable inactive tRNA-specific adenosine deaminase-like protein 3 Human genes 0.000 description 1
- RRLHMJHRFMHVNM-BQVXCWBNSA-N [(2s,3r,6r)-6-[5-[5-hydroxy-3-(4-hydroxyphenyl)-4-oxochromen-7-yl]oxypentoxy]-2-methyl-3,6-dihydro-2h-pyran-3-yl] acetate Chemical compound C1=C[C@@H](OC(C)=O)[C@H](C)O[C@H]1OCCCCCOC1=CC(O)=C2C(=O)C(C=3C=CC(O)=CC=3)=COC2=C1 RRLHMJHRFMHVNM-BQVXCWBNSA-N 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000002542 deteriorative effect Effects 0.000 description 1
- 238000005562 fading Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
- Debugging And Monitoring (AREA)
Description
【発明の属する技術分野】
本発明は、複数のマイクロプログラムを時分割で実行し、ディジタル信号に種々の演算処理を施す信号処理装置に関する。
【0002】
【従来の技術】
例えば電子楽器において楽音にディストーションやリバーブといった音響効果を付与する場合に、DSP(ディジタルシグナルプロセッサ)を用いるものが知られている。このような電子楽器では、複数の音響効果のそれぞれに対応したマイクロプログラムを時分割で(同時に)実行することにより、楽音に複数(例えば5個)の音響効果が付与される。そして、使用者の指示に応じて、実行するマイクロプログラムを変更することにより、例えば5個の音響効果の内の1つを、演奏中に他の音響効果に変更することができるようにした信号処理装置が既に提案されている(特開平6−259249号公報)。
【0003】
この公報には、3種類のステップ数(24、56及び96ステップ)のマイクロプログラムを選択して全体で5個のマイクロプログラムを時分割で実行可能することができる装置が示されている。
【0004】
【発明が解決しようとする課題】
しかしながら上記提案の装置では、時分割で実行可能なマイクロプログラムは5個に固定されており、またプログラムサイズ(ステップ数)は上記3種類以外のものに変更することはできないという問題がある。
【0005】
また、上記提案の装置では時分割で実行されるマイクロプログラムのそれぞれに対応した入力チャンネル及び出力チャンネルは固定されているため、例えばモノラルの入力で十分であるにも拘わらず2つの入力チャンネルを使用せざるを得ない場合や、より多くの信号を並列に出力したいにもかかわらず出力できない場合があった。
【0006】
また上記提案の装置では、音響効果を付与するために信号遅延用メモリを使用しているが、信号遅延用メモリにデータを書き込むときは、例えば32ビットのデータを16ビットの浮動小数点化したデータに変換するなどして、データの圧縮を行って書き込むことが一般に行われている。遅延用メモリの容量が過大とならないようにするためである。このため、遅延させたデータの精度が低下して無視できないノイズを発生させ、出力される楽音の質を悪化させる場合があった。
【0007】
本発明は上述した点に鑑みなされたものであり、マイクロプログラムの変更をより柔軟に行うことができ、使い勝手を向上させた信号処理装置を提供することを第1の目的とする。
【0008】
また本発明は、各マイクロプログラムが使用する入力チャンネル及び/又は出力チャンネルの割り当てを、より適切に行うことができる信号処理装置を提供することを第2の目的とする。
【0009】
さらに本発明は、信号遅延用メモリを使用する場合に、データの圧縮処理をより適切に行い、遅延用メモリの容量の増加を抑制しつつ必要なデータの精度を確保することができる信号処理装置を提供することを第3の目的とする。
【0010】
【課題を解決するための手段】
【0012】
上記第2の目的を達成するため請求項1に記載の発明は、複数のマイクロプログラムを時分割で実行することにより、入力されたディジタル信号に種々の演算処理を施す信号処理装置において、処理されるディジタル信号が入力される第1所定数の入力チャンネルと、処理されたディジタル信号が出力される第2所定数の出力チャンネルと、前記入力されたディジタル信号と前記第2所定数の出力チャンネルから出力されたディジタル信号とを混合して複数チャンネルの信号を生成し、該複数チャンネルの信号のうち前記第1所定数の信号を前記入力チャンネルに入力する混合回路と、複数の効果に対応した前記複数のマイクロプログラムを時分割で実行する信号処理回路と、前記複数のマイクロプログラムの各マイクロプログラム毎に、前記第1所定数の入力チャンネルのうちの当該マイクロプログラムによって使用される入力チャンネルと、前記第2所定数の出力チャンネルのうちの当該マイクロプログラムによって使用される出力チャンネルとを、それぞれ設定する設定手段とを有し、前記信号処理回路は、前記複数のマイクロプログラムの各マイクロプログラム毎に、前記設定された入力チャンネルから入力されたディジタル信号に対して、当該マイクロプログラムを実行することによる効果を付与し、該効果が付与されたデジタル信号を前記設定された出力チャンネルから出力することを特徴とする。
【0013】
請求項2に記載の発明は、請求項1に記載の信号処理装置において、前記信号処理回路は、複数のマイクロプログラムを記憶する第1記憶手段と、該第1記憶手段における各マイクロプログラムの記憶領域を示す制御情報を記憶する第2記憶手段と、サンプリング周期毎に、時分割で前記第1記憶手段に記憶された複数のマイクロプログラムを読み出す読出手段と、前記第2記憶手段に記憶された制御情報に基づいて、前記読出手段の読み出しているマイクロプログラムを判別する判別手段と、変更指示が発生したとき、前記判別手段の判別結果に応じて前記複数のマイクロプログラムの中の変更すべきマイクロプログラムの実行のみを選択的に停止するとともに、該停止されたマイクロプログラムの実行期間において、前記変更すべきマイクロプログラムの記憶領域に新たなマイクロプログラムを書き込む変更手段とを備えることを特徴とする。
【0014】
請求項3に記載の発明は、請求項1に記載の信号処理装置において、前記ディジタル信号を遅延させるための遅延用記憶手段と、前記ディジタル信号の圧縮処理を行って前記遅延用記憶手段に書き込むとともに、読み出し時に書き込み時と逆の伸張処理を行って出力するデータ変換手段とをさらに備え、前記データ変換手段は、前記圧縮処理及び伸張処理の態様を変更可能に構成されていることを特徴とする。
【0015】
請求項6に記載の発明は、請求項5に記載の信号処理装置において、前記圧縮処理の態様は、浮動小数点変換によりビット数を減少させる処理及び複数のビットから成る処理単位を分割する処理を含むことを特徴とする。
【0017】
請求項2に記載の発明によれば、時分割処理により、任意ステップ数の複数のマイクロプログラムが並列的に実行され、さらに変更指示に応じて前記複数のマイクロプログラムのうちの変更すべきマイクロプログラムの実行のみが選択的に停止されるとともに、該停止されたマイクロプログラムの実行期間において、変更すべきマイクロプログラムの記憶領域に新たなマイクロプログラムが書き込まれる。
【0019】
請求項5に記載の発明によれば、ディジタル信号が圧縮処理を施されて遅延用記憶手段に書き込まれ、読み出し時に書き込み時と逆の伸張処理を施されて出力され、前記圧縮処理及び伸張処理の態様が必要に応じて変更される。
【0020】
【発明の実施の形態】
以下本発明の実施の形態を図面を参照して説明する。
【0021】
図1は本発明の実施の一形態にかかる電子楽器の構成を示すブロック図である。この電子楽器は、選択した音響効果の名称など各種の情報を表示するための表示部1と、使用者が音色、音響効果の選択など各種の設定を行うためのスイッチパネル2と、当該電子楽器全体の制御を行うCPU3と、CPU3で実行されるプログラムやプログラムの実行に必要なテーブル等が記憶されるROM4と、CPU5のワーキングエリアとして使用され、演算途中のデータ等を記憶するRAM5と、使用者が演奏操作を行う鍵盤6と、演奏データなどを記憶する外部記憶装置7と、鍵盤6の押鍵操作に応じて楽音信号を生成する音源8と、これらの各構成要素1から8を相互に接続するシステムバス11と、音源8から出力されるディジタル信号をアナログ信号に変換するDA変換器9と、DA変換器9から出力される楽音信号を増幅してスピーカから出力するサウンドシステム10とを主たる構成要素とする。音源8には、楽音信号生成のための波形メモリ12と、例えば外部エフェクタ等の外部回路13と、音響効果付与のために使用される遅延メモリ14とが接続されている。
【0022】
CPU3は、スイッチパネル2のスイッチの操作を検出し、それに応じて音色や音響効果の選択の処理を行い、また、鍵盤6の鍵操作を検出し、それに応じて音源8の制御を行う。例えば、鍵盤6でいずれかの鍵の押鍵が検出された場合、CPU3は、音源8の32の発音チャンネルのうちの1つをその発音に割り当て、選択されている音色の該押鍵に対応した制御信号を生成して、音源8の制御レジスタに割り当てた発音チャンネルの制御信号として書き込み、該押鍵に対応する楽音の生成を開始させる。音源8では、さらに、生成される楽音にそのとき選択されている音響効果が付与され、効果の付与されたディジタル信号がDA変換器9でアナログ信号に変換され、サウンドシステム10に供給される。
【0023】
図2は、音源8の構成を詳細に示すブロック図である。音源8は、システムバス11に接続され、CPU3からの制御信号が書き込まれる各種レジスタ等を有する制御レジスタ21と、制御レジスタ21からの制御信号に応じて波形メモリ12から波形データを読み出し、所望のピッチに変換するための補間処理などを行う読み書き回路22と、制御レジスタ21からの制御信号に応じて読み書き回路22の出力信号にエンベロープを付加する音量変化制御回路23と、入力信号のレベルを調整してミキシングを行うミキサ24と、ミキサ24と外部回路13の間に介装されたインターフェース回路25と、DSPで構成され、各種音響効果付与のための処理を行う信号処理回路26と、遅延メモリ14に書き込み、また遅延メモリ14から読み出すデータを切り換えるためのセレクタ27と、CPU3が直接遅延メモリ14にアクセスするときの読み書き制御を行う読み書き回路28とを備えている。
【0024】
制御レジスタ21に記憶された各発音チャンネルの制御信号に応じて、読み書き回路22と音量変化制御回路23では、時分割で32の発音チャンネル動作を行い、32個の楽音波形を生成する。読み書き回路23は、サンプリング周期(例えば1/48kHz)毎に波形メモリ12から時分割で32チャンネル分の波形データを読み出し、補間処理を行って各チャンネルで指示された音高に応じた32個の補間サンプルを時分割で出力する。音量変化制御回路23は、前記32個の補間サンプルに対し、制御レジスタ21の制御信号に応じて時分割で各発音チャンネル毎に独立の音量エンベロープを付与し、ミキサ24に出力する。
【0025】
ミキサ24では、制御レジスタ21の制御信号にしたがって、外部回路13からインターフェース回路25を介して入力される8個の楽音波形と、音量変化制御回路23から出力される前記32個の楽音波形と、信号処理回路26から出力される8個の楽音波形とを16個の出力別にミキシングし、得られた16個の混合波形のうちの8個をインターフェース回路25を介して外部回路13に出力するとともに、残りの8個の混合波形を信号処理回路26に出力する。
【0026】
外部回路13は、例えば外部エフェクタであり、インターフェース回路25から入力される1ないし複数の楽音波形に対してエフェクトを付与して、エフェクトの付与された1ないし複数の楽音波形をインターフェース回路25に出力する。
【0027】
信号処理回路26は、ミキサ24から入力される8個の混合波形に対して信号処理を施して、8個の楽音波形をミキサ24に対して出力するとともに、4個の楽音波形をDA変換器9に出力する。信号処理回路26は、時分割で複数のマイクロプログラムに基づく信号処理を実行可能であるが、ミキサ24から入力される混合波形の8チャンネル、ミキサ24に対して楽音波形を出力する8チャンネル、及びDA変換器9に対して楽音波形を出力する4チャンネルは、前記複数のマイクロプログラムのうちの何れが使用してもよく、どのマイクロプログラムがどのチャンネルを使用するかを任意に設定できるように構成されている。
【0028】
セレクタ27は、信号処理回路26で実行されるマイクロプログラムの一部の実行を停止したときは、CPU3が読み書き回路28を介して遅延メモリ14にアクセス可能とするために設けられており、特定のマイクロプログラムの停止を示すHB信号(各マイクロプログラムは、付加される音響効果に対応しているので、エフェクタブロックとも呼び、HB信号は停止するエフェクタブロックを示すホールトブロック信号の意味である)が入力されたとき、CPU3のアクセスを可能とする。
【0029】
以上のように音源8は、制御レジスタ21に書き込まれる制御信号に応じて、楽音信号を生成し、音響効果を付加してDA変換器9に出力する。
【0030】
図3は、DSPで構成される信号処理回路26及びその信号処理回路26に制御信号を供給する制御レジスタ21の構成要素を示すブロック図である。
【0031】
この図の基づいて制御レジスタ21及び信号処理回路26の構成を説明する前に、制御レジスタ21のマイクロプログラム(MP)制御部42で実行されるマイクロプログラムと、各マイクロプログラムに対応して設定される遅延メモリ14のバンクとの関係について、図8を参照して説明する。図8は、時分割で実行される6個のマイクロプログラムがMP制御部42のマイクロプログラムRAM(以下「MPRAM」という)73(図4参照)に格納され、それに対応して遅延メモリ14にバンク1からバンク6までの6個のバンク(メモリ領域)を設定した例を示している。本実施形態では、MPRAM73は、ステップ0から383までの合計384ステップのマイクロプログラムが格納可能であり、図示例では384ステップが6個のマイクロプログラムMP1〜MP6に割り当てられている。そして、各マイクロプログラムMP1〜MP6は、それぞれ遅延メモリ14の対応するバンク1〜6を使用して信号の遅延処理を行う。
【0032】
MPRAM73に記憶された全384ステップのマイクロプログラムは、DA変換器9の1サンプリング周期(1/48kHz、以下「1DACサイクル」という)の384倍のステップクロック(48kHz×384=18.432MHz、以下「Sクロック」という)毎に1ステップずつ読み出され、信号処理回路26を制御する制御信号に変換される。つまり、本実施形態では1DACサイクルの間に全384ステップが1回通り読み出される。上述した例では、この384ステップの中にMP1〜MP6の6個のマイクロプログラムが入っており、したがって各DACサイクルに6個のマイクロプログラムが時分割で実行される。本実施形態では、遅延メモリ14は16ビット単位のデータを256K(256×1000)個格納する容量(約4Mビット)の容量を有している。また遅延メモリ14のバンク0は、各マイクロプログラムがアクセス可能な領域であり、例えば共通に使用するテーブルデータなどが格納される。
【0033】
図3に戻り、制御レジスタ21は、低周波発振器46に制御パラメータを供給するLFOレジスタ41と、複数のマイクロプログラムを格納するマイクロプログラムRAMを備え、各マイクロプログラムを時分割で実行することにより、後述する乗算器、加算器、各種レジスタ、セレクタなどに制御信号を供給するMP制御部42と、乗算器に乗算データを供給する係数レジスタ43と、実行するマイクロプログラムの先頭ステップ番号、各エフェクタブロックに対応する遅延メモリ14のバンクサイズ及び遅延メモリ14の各バンクの先頭アドレスを供給するブロックレジスタ44と、遅延メモリ用アドレス発生部62にアドレスデータADを供給するアドレスレジスタ45とを備えている。
【0034】
低周波発振器46は、時分割16チャンネル動作を行い、16個の異なる低周波波形(変調データ)を発生する。LFOレジスタ41には、変調データの周波数、振幅、波形形状等を制御する制御パラメータがそれぞれ16個ずつ記憶され、生成する16個の変調データを独立に制御するように構成されている。係数レジスタ43は、マイクロプログラムの各ステップに対応する384の記憶エリアを有しており、各ステップの信号処理で乗算に使用する係数を記憶する。アドレスレジスタ45は、マイクロプログラムの各ステップに対応する384の記憶エリアを有しており、各ステップの信号処理で遅延用メモリ14にアクセスする場合に使用するアドレスデータADを記憶する。
【0035】
信号処理回路26は、ビブラートやトレモロ等の効果を付加するために楽音データを変調する変調データを発生する低周波発振器(LFO)46と、係数レジスタ43から供給されるデータの補間演算を行う補間器54と、レジスタ47、48、55と、データバス49、51、59と、データを選択するための各種セレクタ52、53、56と、乗算器57と、加算器58と、遅延メモリ14に書き込むデータの圧縮処理を行う32−16変換器61と、遅延メモリ14から読み出すデータの伸張処理を行う16−32変換器60と、遅延メモリ14の書き込みアドレス及び読み出しアドレスの制御を行う遅延メモリ用アドレス発生部62と、MP制御部42から出力される制御信号を乗算器57、加算器58、各レジスタ、各セレクタ等に供給するためのプログラムバス(図示省略)とを主たる構成要素とする。
【0036】
Iレジスタ47は、ミキサ24が出力した8個の混合波形を記憶する入力領域と、LFO46が出力した16個の変調データを記憶するLFO領域と、遅延メモリ14から読み出されたデータ又はDバス59上に出力された演算結果のデータを複数記憶する汎用領域と、ミキサ24に入力する8個の楽音波形を記憶する出力領域と、DAC出力部50に供給する楽音波形を記憶するDAC領域とを備えている。マイクロプログラムの各ステップの命令では、Iレジスタ47上の任意の領域を指定して読み出し及び書き込みが可能である。複数のマイクロプログラムを時分割で実行する場合、何れのマイクロプログラムでもIレジスタ47に記憶されている8個の混合波形、16個の変調データ及びその他データにアクセス可能である。
【0037】
時分割で実行される複数のマイクロプログラムは、各マイクロプログラム毎に異なる処理アルゴリズム(エフェクトアルゴリズム)を有しており、それぞれ異なる入力数及び出力数を備えている。各マイクロプログラムの各入力は、それぞれ独立にミキシングした混合波形を入力することが望ましい。本実施形態では、限られた数、即ち8個の混合波形を各マイクロプログラムに割り当てて使用する。例えば図10(b)は、同時に実行される複数のマイクロプログラムのうち、1つ(MP1)は2個の混合波形が入力とされ、他のもの(MP2〜MP4)はそれぞれ1個の混合波形が入力とされるように設定された例を示している。混合波形を各マイクロプログラムに割り当てて入力するようにしており、固定的に決められた混合波形を入力するのに比べて無駄が少ない。
【0038】
複数のマイクロプログラムの入力数の和が、算出される混合波形の数以下である限り、各マイクロプログラムの入力数を自由に変更することができる。各マイクロプログラムが8個の混合波形のうちのどの混合波形を入力として使用するかは、CPU3が各マイクロプログラムの中に含まれているIレジスタ47のアクセス命令を書き替えることにより制御する。
【0039】
なお、本実施形態では、Iレジスタ47に入力する混合波形の数は8であるが、この数はミキサ24の設計変更により増やしたり減らしたりしてもよい。
【0040】
また出力に関しても同様に8個の出力を各マイクロプログラムに割り当て、各マイクロプログラムは割り当てられたIレジスタ47の出力領域に対して処理済みの楽音波形を書き込むように構成されている。
【0041】
DAC領域には、制御信号に応じて、8個の混合波形、各マイクロプログラムの出力又はその処理途中の波形等のうちの任意の波形が選択的に書き込まれ、該書き込まれた波形は、マイクロプログラムの384ステップが終了する毎(サンプリング周期毎)にDAC出力部50に供給される。
【0042】
また、Tレジスタ48は、Dバス59上に出力される加算器出力を一時的に保存するテンポラリレジスタであり、複数のデータを保存する複数の記憶エリアを有している。Tレジスタ48も、Iレジスタ47の場合と同様に、マイクロプログラムの各ステップの命令により、Tレジスタ48上の任意の記憶エリアを指定して読み出し及び書き込みが可能である。Tレジスタ48から読み出されたデータは、Tバス51を介してセレクタ52及び53に出力される。
【0043】
セレクタ52は、制御信号に応じてIバス49又はTバス51からのデータのいずれかを選択して乗算器57に入力する。セレクタ53には、Dバス59からも直接データが入力され、セレクタ53は、制御信号に応じてIバス49、Tバス51又はDバス59からのデータのいずれかを選択して、加算器58に入力する。セレクタ53、加算器58及びDバス59で構成されるループにより、累算が行われる。
【0044】
Yレジスタ55には、補間器54の出力データ及びDバス59のデータが入力され、セレクタ56にデータが出力される。セレクタ56は、制御信号に応じて補間器54の出力データ又はYレジスタの出力データのいずれかを選択し、乗算器57に入力する。乗算器57は、制御信号に応じて入力データの乗算を行って演算結果を加算器58に入力し、加算器58は、制御信号に応じて入力データの加算を行って演算結果をDバス59に出力する。Dバス59は、32−16変換器61及び遅延メモリ用アドレス発生部62にも接続されており、加算器58の出力が供給される。
【0045】
32−16変換器61は、入力される32ビットの波形データを16ビットデータに変換し、セレクタ27(図2参照)を介して遅延メモリ14のデータバスに出力する。一方16−32変換器60は、遅延メモリ14から読み出した16ビットデータを32ビットの波形データに変換して、Iレジスタ47に入力する。
【0046】
遅延メモリ用アドレス発生部62には、Dバス59を介してアドレスデータを変調する変調データが入力されるとともに、ブロックレジスタ44から各バンクのサイズBS及び各バンクの先頭アドレスTADが入力され、アドレスレジスタ45からアドレスデータADが入力される。アドレス発生部62は、入力データに基づいて修正アドレスデータMADを演算し、セレクタ27を介して遅延メモリ14のアドレスバスに出力する。
【0047】
以上のように構成される信号処理回路の動作を説明する。各レジスタ、セレクタ等には、MP制御部42で実行されているマイクロプログラムに応じた制御信号が供給され、例えばIレジスタ47のデータとYレジスタ55のデータの乗算を行い、さらにTレジスタ48のデータと加算してDバス59に出力するといった演算が実行される。また、Iレジスタ47のデータをそのままIバス49、セレクタ53、加算器58、Dバス59を介して32−16変換器61に供給し、遅延メモリ14に格納するといった処理も行われる。その場合には、加算器58には、演算を行わずに単にデータを通過させるような制御信号が供給される。したがって、図3の構成により、データの遅延処理を含めた、種々の積和演算処理、累算処理等を行うことができ、楽音信号に種々の音響効果を付加して出力することができる。
【0048】
例えば一定時間遅延させたデータと遅延させないデータとを適当なレベル比で加算することにより、リバーブの効果を付加することができる。また、遅延メモリ14にデータを書き込むとともに、格納されているデータを異なる位相(例えば0度、120度、240度の三相)で読み出し、読み出したデータを加算して出力することにより、コーラスの効果を付加することができる。
【0049】
図4は、MP制御部42の構成を示すブロック図であり、MP制御部42は、前述したMPRAM73と、MPRAM73へのマイクロプログラムの書き込みを制御する書込回路71と、各サンプリング周期毎に、0から383まで順次カウントし、そのカウント値SCをステップ番号として出力するステップカウンタ72と、エフェクタブロック(マイクロプログラム)の番号であるブロック番号BNを発生するブロック番号(BN)発生器74とを備えている。BN発生器74には、ブロックレジスタ44が接続されており、ブロックレジスタ44は、図7に示すように、各エフェクタブロックに対応したマイクロプログラムの先頭ステップ番号SSを格納したSSレジスタと、遅延メモリの各バンクの先頭アドレスTADを格納したTADレジスタと、各バンクのサイズBSを格納するBSレジスタとを有する。図7に示す例は、図8の例に対応しており、SSレジスタには、先頭ステップ番号SS2からSS6までと、「0」が格納され、TADレジスタには、先頭アドレスTAD1〜TAD6が格納され、BSレジスタには、バンクサイズBS1〜BS6が格納されている。ここで、SSレジスタに格納される「0」は、マイクロプログラムMP6が最後のマイクロプログラムであり、その後はないことを示している。別の例として例えば、5個のマイクロプログラムをMPRAM73に記憶した場合には、SSレジスタにSS2からSS5までと「0」とが格納される。全384ステップを有効に使用するため、MP1の先頭ステップ番号は「0」に固定されている。すなわち、SS1は常に「0」であるため、SSレジスタに格納されていない。
【0050】
MPRAM73は、図8に示すように、本実施形態では合計384ステップのマイクロプログラムを格納する容量を有する読み書き可能なメモリで構成される。MPRAM73が記憶するマイクロプログラムは、ステップカウンタ72から入力されるステップ番号SCによって、各サンプリング周期の間にステップ0からステップ383まで1ステップずつ順次読み出され、読み出された各ステップの命令に対応した制御信号を信号処理回路26の各部に出力する。
【0051】
図8の例で例えば、スイッチパネル2から入力されるエフェクトの切換指示に応じて、動作中のマイクロプログラムMP1,MP3〜MP6を止めずに、マイクロプログラムMP2のみを他のマイクロプログラムに変更することが可能である。その場合の内部動作について詳細に説明する。
【0052】
CPU3は、前記エフェクトの切換指示に応じて以下の処理を実行し、音源8の制御レジスタ21を介して上記変更の制御を行う。先ず、ミキサ24を制御してマイクロプログラムMP2の出力する楽音波形の入力レベル及び出力レベルをフェードアウトさせる。その後、CPU3は、マイクロプログラムMP2の実行の停止を指示する。制御レジスタ21は、該停止の指示に応じて各サンプリング周期内のマイクロプログラムMP2の実行期間(後述するブロック番号BN=2の期間)において、先述した停止ブロック信号(HB信号)を発生する。一般的に、停止を指示されたマイクロプログラムに対応したブロック番号BNがMP制御部42から出力されている期間中、制御レジスタ21からHB信号が出力される。同様に、複数のマイクロプログラムの停止が指示された場合には、対応する複数のブロック番号BNの発生期間中、HB信号が出力される。
【0053】
各サンプリング周期の中でHB信号が出力されている間は、読み書き回路28からの制御信号に応じてセレクタ27が制御され、CPU3は該読み書き回路28を介して遅延メモリ14の読み書きを行うことができる。あるいは、同期間において制御レジスタ21からクリア信号CLRを供給することにより、後述するアドレス発生部62を使用して、遅延メモリ14の停止したマイクロプログラムMP2に対応するバンク2の初期クリアを行うことができる。一方MP制御部42では、HB信号の発生期間中、ステップカウンタ72によるMPRAM73の読み出し動作が停止され、代わりに書込回路71を通じてCPU3からMPRAM73へのマイクロプログラムの書き込みが可能となっている。
【0054】
上記HB信号発生期間を使用して、CPU3は、ROM4に記憶されている複数のマイクロプログラムのうちスイッチパネル2の操作に応じて新たに選択されたマイクロプログラムを読み出し、MPRAM73のMP2記憶領域に書き込むとともに、遅延メモリ14のバンク2を初期クリア(全サンプルを0に)する。さらにCPU3は、新たにMPRAM73に書き込んだマイクロプログラム中で使用する係数の係数レジスタ43への設定、そのマイクロプログラムに含まれる遅延メモリ14を使用した処理のためのアドレスレジスタ45の設定、及びそのマイクロプログラムでLFO46が使用されている場合にはLFOレジスタ41の設定を行う。その後、CPU3は、制御レジスタ21にマイクロプログラムMP2の実行開始を指示するとともに、ミキサ24を制御して新たなマイクロプログラムMP2の入力レベル及び出力レベルをフェードインする。
【0055】
また、マイクロプログラムの変更はこれに限らず、種々の態様で行うことができる。例えば、マイクロプログラムMP1からMP3の実行を停止し、よりプログラムサイズの小さい4個マイクロプログラムを、マイクロプログラムMP1からMP3が格納されている領域に書き込むこともできる。その場合、上記例と同様に、マイクロプログラムMP1からMP3の記憶領域に新たな4つのマイクロプログラムを書き込み、対応する遅延メモリ14のバンク1から3をクリアするとともに、図7に示されるSS,TAD,BSの各レジスタをマイクロプログラムMP4からMP6がMP5からMP7に変更されるよう順送りし、上記4つのマイクロプログラムをMP1からMP4として登録する。また、新たなバンク1からバンク4の設定も行う。そして、全設定が終わった後、ミキサ24を制御してマイクロプログラムMP1からMP4のレベルをフェードインする。ここで、順送りの前のマイクロプログラムMP4からMP6が使用してIレジスタ47の前記入力領域及び出力領域は、順送りの後のマイクロプログラムM5からMP7が使用しており、新たなマイクロプログラムMP1からMP4はそれとは異なる入力領域及び出力領域を使用している。
【0056】
このように本実施形態では、複数のマイクロプログラムのうちの一部のマイクロプログラムを動作させたままで、他の一部のマイクロプログラムを異なるサイズの、あるいは異なる数のマイクロプログラムに変更することができる。また、ブロックレジスタの大きさが図7に示すように8なので、実行するマイクロプログラムの最大数は8個である。
【0057】
ROM4には、例えば、11種類の音響効果に対応した11個のマイクロプログラムが格納されており、使用者が上記条件(最大8個で、全ステップ数が384以下、全入力数が8個以下、全出力数が8個以下という条件)の範囲内で、実行するマイクロプログラムの種類や数を任意の組み合わせで選択し、MPRAM73に書き込むことができる。同一のマイクロプログラムを複数回書き込んでもよい。
【0058】
BN発生器74は、ステップカウンタ72から入力されるステップ番号SCと、ブロックレジスタ44から入力される先頭ステップ番号SSとに基づき、現在読み出し中のマイクロプログラムの属するブロック番号BNを出力する。前記入力される先頭ステップ番号SSは、現在のブロック番号BNで示されるマイクロプログラムの次のマイクロプログラムの先頭ステップ番号SSであり、ステップ番号SCがその値に達したときブロック番号BNを「1」だけ増加させるように構成されている。図7に示す例では、エフェクタブロックが全部で6個なので、初期値SC=0のときのBN=1から始まって、ステップ番号SCの進行にしたがってBN=6まで順次カウントアップし、その後、ステップ番号SCが最終値383から最初の値0に戻るときに再びBN=1に戻される。
【0059】
図5は、遅延メモリ用アドレス発生部62の構成を示すブロック図であり、遅延メモリ用アドレス発生部62は、Dバス59を介して遅延メモリのアドレスデータを変調するための変調用データIDが書き込まれるインディクスレジスタ81と、エフェクタブロック毎に対応するバンクのスタートアドレスTADからベース位置までの相対アドレスをカウントし生成するベースカウンタ82と、インディクスレジスタ81、アドレスレジスタ45及びベースカウンタ82の出力値を加算する加算器83と、加算器83の出力値が対応するエフェクタブロックのバンクサイズBSを越えたときは、そのバンクサイズBSの範囲内にアドレス値を変更するバンク範囲制限回路84と、バンク範囲制限回路84の出力値とブロックレジスタ44から入力される各バンクの先頭アドレスTADとを加算して、修正アドレスMADを出力する加算器85とを備えている。ベースカウンタ82には、ブロック番号BNがBN発生器74から供給され、後述する制御信号COFFがMPRAM73から供給される。またバンク範囲制限回路84及び加算器85には、それぞれ実行中のマイクロプログラムに対応するバンクのバンクサイズBS及び先頭アドレスTADが、ブロックレジスタ44から供給される。例えば図8の例でマイクロプログラムMP3の実行中は、バンク範囲制限回路84にバンクサイズBS3が供給され、加算器85には先頭アドレスTAD3が供給される。
【0060】
ベースカウンタ82は、設定可能な最大ブロック数に対応して独立した8個のカウンタを有しており、ブロック番号BNに応じて、1サンプリング周期中の各マイクロプログラムMPの期間に対応するカウンタの値を出力する。ベースカウンタ82の各マイクロプログラムMPに対応する個々のカウンタは、同MPが動作中(通常モード)か、停止中(クリアモード)かに応じて異なる動作を行う。すなわち、該個々のカウンタは、通常モードでは1DACサイクル毎に1ずつカウントダウンした値(すなわち、各DACサイクル内では一定値となる)を出力し、クリアモードでは、遅延メモリ14の1アクセス毎に1ずつカウントダウンした値を出力する。
【0061】
また、MPRAM73から制御信号COFFが出力されているときは、そのときのブロック番号BNに関係なく、ベースカウンタ82は「0」を出力する。制御信号COFFは、マイクロプログラム中の遅延メモリ14のバンク0にアクセスする命令に応じて出力される。バンク0は何れのマイクロプログラムからもアクセス可能な記憶領域であり、しかも異なるDACサイクルでも、アドレスデータADが同じなら同じデータがアクセスされる。一方、バンク1、2、…の各バンクは、対応するマイクロプログラムMPのみがアクセス可能な記憶領域であり、対応するベースカウント値に応じて、DACサイクルが異なれば同じアドレスデータでも異なるアドレスデータがアクセスされる。
【0062】
本実施形態では、バンクサイズBSを2のn(整数)乗のサイズとしているので、ベースカウンタ82はnの最大値より大きい所定ビット数のカウンタで構成し、バンクサイズBSと無関係に上述した時間間隔でフリーカウント動作をしている。後述するようにバンク範囲制限回路84により、バンクサイズBSに応じて上位ビットがマスクされるので、最終的に得られるアドレスは、対応するバンクの範囲内のアドレスとなる。なお、バンクサイズBSを2のn乗のサイズとしない場合は、バンクサイズBSをベースカウンタ82に入力するように構成し、ベースカウンタ82は、入力されたバンクサイズBSの範囲でカウントダウン動作を繰り返すようにする。
【0063】
制御信号COFFは、ブロックレジスタ44にも供給されるように構成されており、ブロックレジスタ44に制御信号COFFが入力されると、先頭アドレスTADとして「0」が出力される。
【0064】
バンク範囲制限回路84は、本実施形態では、加算器83の出力アドレス値がバンクサイズBSを越えたときは、上位ビットをマスクして、出力アドレス値がバンク範囲内に入るようにしている。なお、バンクサイズBSを2のn乗のサイズとしない場合は、加算器83の出力アドレス値がバンクサイズBSを越えたときは、出力アドレス値からバンクサイズBSを減算した値に変更して、バンク範囲内に入るようにする。
【0065】
図5の構成によれば、通常モード時は、例えばブロック番号BN=1であるときは、マイクロプログラムMP1が実行されおり、MPRAM73から出力されるマイクロプログラムMP1の制御信号にしたがって、遅延メモリ14のバンク1の書き込み及び読み出しが行われる。例えば、BN=1の期間において、ベースカウンタ82の出力値CD=CDnowであるとき、アドレスAD=ADwで書き込みを行うと、その書き込みアドレスMAD=TAD1+CDnow+ADwである(インディクスレジスタ81の変調データIDは「0」とし、CDnow+ADwはバンクサイズBS1の範囲内にあるとする)。ベースカウンタ82は、1DACサイクルで1カウントダウンするので、xDACサイクル後のカウント値CD=CDnow−xとなる。そのとき、アドレスAD=ADw+xで読み出しを行うと、読み出しアドレスMAD=TAD1+CDnow−x+ADw+x=TAD1+CDnow+ADwとなり、xDACサイクル前に書き込んだデータが読み出される。基本的には以上のように読み書きアドレスが制御されるが、さらにDバス59からインディクスレジスタ81に供給される変調データIDを制御して、遅延メモリ14からの読み出し時のアドレスMADに修正を加えることができる。例えば、変調データIDとして、LFO46が出力する16個の変調データの任意の1個に乗算器7で重みを乗算して得られるデータを供給すれば、遅延メモリ14から該LFO46の変調データで位相変調された遅延波形データを読み出すことができる。他のマイクロプログラムMP2〜MP6の実行時も同様であり、1DACサイクル毎に、マイクロプログラムMP1〜MP6が繰り返し実行される。
【0066】
ここで、マイクロプログラムMP1にバンク0のアクセス命令がある場合には、先述したように、制御信号COFFが出力され、ベースカウンタ82の出力値CD及びブロックレジスタ44から出力される先頭アドレスTADがともに「0」となり、バンク0のアドレスが出力される。バンク0には、例えば図9(a)に示すような、入出力テーブルが格納されており、アドレスレジスタ45からこのテーブルの先頭アドレスが出力されるとともに、インディクスレジスタ81から入力値に対応する差分アドレスが出力される。これにより、マイクロプログラムMP1は、例えば遅延メモリ14のバンク0に格納された複数の変換テーブルのうちの先頭アドレスADで指定されたテーブルを選択的に使用して、インディクスレジスタに供給された入力値に対応する出力値を決定することができる。
【0067】
各マイクロプログラムMPでは、そのときのブロック番号BNで指定されるバンクをアクセスする命令と、バンク0をアクセスする命令が使用可能である。該バンク0をアクセスする命令により、何れのマイクロプログラムMPからでもバンク0のアクセスが可能であり、例えば図9(a)に示した入出力テーブルを、すべてのマイクロプログラムMPで使用することができる。
【0068】
なお、バンク0に格納するデータは、図9(a)に示すテーブルに限るものではなく、例えば同図(b)に示すような波形データを格納するようにしてもよい。波形データは、マイクロプログラムMPで楽音生成する際の素材の波形として使用したり、効果制御する際の音像定位や振幅/ピッチ変調を制御する波形として使用することができる。
【0069】
次にクリアモード時おける図5のアドレス発生部62の動作について説明する。この場合、CPU3からの指示に応じて、変更するマイクロプログラムMPのブロック番号BNの期間中、制御レジスタ21はHB信号とクリア信号CLRを発生しており、該マイクロプログラムに対応する遅延メモリ14のバンクは、クリアモードとなっている。その間、変更しないマイクロプログラムに関してはHB信号が発生せず、通常モードの動作が継続される。
【0070】
クリアモードでは、インディクスレジスタ81及びアドレスレジスタ45の出力はともに「0」となり、またベースカウンタ82は、クリア使用するバンクのサイズを初期値として、前述したように1アクセス時間毎のカウントダウン動作を行い、これをカウント値が「0」になるまで継続する。例えば、マイクロプログラムMP1が変更される場合には、CPU3はマイクロプログラムMP1の停止を指示し、さらに対応するバンク1のクリアを指示する。それに応じて、制御レジスタ21では、対応するブロック番号BN=1の期間だけHB信号及びクリア信号CLRが発生し、クリアモードの動作が実行される。
【0071】
一方、先頭アドレスTADとしては、その間も通常モードと同じくブロック番号BN=1に応じたバンク1の先頭アドレスが供給されており、加算器85で該TAD値を前記ベースカウンタ82のカウント値と加算することにより、クリアするバンク1の最終アドレスから1アクセス毎にカウントダウンするアドレスが生成される。そして、32−16変換器61からは、遅延メモリデータバスに「0」が出力され、それが遅延メモリ14の該アドレスの位置に順次書き込まれ、バンク1の最終アドレスから順次1アドレス分のデータがクリアされる。ここで、バンク1のすべてのアドレスのクリアが終了しないときは、次のDACサイクルのBN=1の期間においてもクリアモードとされ、バンク1内のすべてのアドレスがクリアされるまで継続される。
【0072】
なお既に説明したように、クリアモード中のエフェクタブロックは、ホールトブロックとなり、対応するマイクロプログラムの実行は停止されている。また、図2のセレクタ27にHB(ホールトブロック)信号が入力され、マイクロプログラムMP1に割り当てられた期間中は、CPU3が遅延メモリ14のバンク0にアクセス可能となる。このタイミングを利用して例えば図9に示したテーブルデータ又は波形データの書き換えなどを行うことができるので、バンク0の内容の変更を効率よく行うことができる。
【0073】
マイクロプログラムMP1以外の他のマイクロプログラムを変更するときも同様であり、クリアモードとする(ホールトする)エフェクタブロックを複数指定すれば1度に複数のマイクロプログラムを変更することも可能である。
【0074】
次に図6を参照して、遅延メモリ14にデータを書き込むとき及び遅延メモリ14からデータを読み出すときの、データ変換処理について説明する。
【0075】
同図(a)は、32−16変換器61の構成を示すブロック図であり、変換器61は、Dバス59に接続されたレジスタ91と、32ビットの整数データを16ビットの浮動小数点データに変換するリニアフロート変換部92と、32ビットの整数データを分割して2個の16ビットの整数データに変換する16ビット分割部93と、リニアフロート変換部92及び16ビット分割部93の出力の一方を選択して遅延メモリ14のデータバスに出力するセレクタ94とから成る。セレクタ94には、MP制御部42から制御信号が入力され、その制御信号に応じて選択が行われる。
【0076】
図6(b)は、16−32変換器60の構成を示すブロック図であり、変換器60は、遅延メモリ14のデータバスに接続されたレジスタ101と、16ビットの浮動小数点データを32ビットの整数データに変換するフロートリニア変換部102と、2個の16ビットの整数データを結合して32ビットの整数データに変換する16ビット結合部103と、フロートリニア変換部102及び16ビット結合部103の出力の一方を選択してDバス59に出力するセレクタ104とから成る。セレクタ104には、MP制御部42から制御信号が入力され、その制御信号に応じて選択が行われる。
【0077】
制御レジスタ21では、各マイクロプログラム毎に高精度モードと通常精度モードの一方が選択できるようになっている。各マイクロプログラムで実行するエフェクト等の処理が、遅延信号に高い精度を要求する場合は、高精度モードが選択され、32−16変換器61において16ビット分割部93の出力を選択して、遅延メモリ14の2アドレスを使って32ビットのデータを2つに分割して格納する一方、高い精度が必要とされない場合には、通常精度モードが選択され、リニアフロート変換部92の出力を選択し、遅延メモリ14の1アドレスに32ビットのデータを浮動小数点表示で16ビットに圧縮したデータを格納する。これに対応して、16−32変換器60において、高精度モードでは16ビット結合部103の出力が、また通常精度モードではフロートリニア変換部102の出力がそれぞれ選択され、遅延メモリ14から読み出された16ビットデータに基づいて32ビットのデータがIレジスタ47に供給される。
【0078】
ここで、ベースカウンタ82の、高精度モードが選択されたマイクロプログラムMPに対応するカウンタでは、各サンプリング周期毎に2ずつ、すなわち通常精度モードの場合の2倍の速さでカウントダウンが行われる。
【0079】
各モードは、例えば以下のように選択する。単独のパートの演奏波形を入力するマイクロプログラムMPでは通常精度モードとし、複数パートの演奏波形の混合波形を入力する場合は高精度モードとする。またマイクロプログラムMPが、ディストーション等のノイズ的なエフェクト処理を実行する場合は通常精度モードとし、残響、定位制御等のノイズを防止することが望まれるエフェクト処理を実行する場合は、高精度モードとする。あるいは、複数マイクロプログラムMPにバンクを割り当てた後で遅延メモリ14にまだ余裕があれば、いずれかのバンクを高精度モードに変更し、遅延メモリ14の容量が不足するときは、高精度モードのバンクを通常精度モードに変更するようにしてもよい。その結果、それほど精度が必要でない場合は、遅延メモリ14の記憶領域を節約することができるとともに、必要に応じて高い精度の遅延信号を得ることができる。
【0080】
以上詳述したように本実施形態では、MPRAM73に格納されたマイクロプログラムの先頭ステップ番号をブロックレジスタ44のSSレジスタに格納し、MPRAM73に格納するマイクロプログラムの数及びステップ数を所定範囲内で(マイクロプログラムの数は8個以下で、ステップ数は全体で384ステップ以下)任意に設定できるようにしたので、実行可能なマイクロプログラムの選択範囲が拡大し、より使い勝手を向上させることができる。
【0081】
また、各マイクロプログラムにおいて、予め設けられた入力チャンネル(Iレジスタ47の入力領域)及び出力チャンネル(Iレジスタ47の出力領域)の内から、使用する入力チャンネル及び出力チャンネルを任意に設定できるようにしたので、マイクロプログラム毎に適切なチャンネルの設定を行うことができる。その結果、例えば楽音に3次元的な広がりを持たせる効果を付加する場合には出力チャンネルを4チャンネルに設定し(本実施形態では、DA変換器への出力チャンネル数を4としているので、全部を使用する設定とし)、2次元的な広がりを持たせる効果を付加する場合には、2つのマイクロプログラムで2チャンネルずつ使用する設定とするといったことができ、限られた数の出力チャンネルを効率的に使用することができる。なお、図2に示すように、信号処理回路26は、本実施形態では入力チャンネルは全部で8チャンネル設けられ、出力チャンネルは、DA変換器9へ出力する4チャンネル及びミキサ24に出力する8チャンネルの合計12チャンネルが設けられている。
【0082】
図10は、時分割で実行するマイクロプログラムの数及びサイズと、各マイクロプログラムが使用する入出力チャンネル数の設定例を示す図である。同図(a)は、ステップ数48の8個のマイクロプログラム(MP1〜MAP8)をMPRAM73に格納し(48×8=384ステップ)、各マイクロプログラムが入力チャンネル及び出力チャンネルを1チャンネルずつ使用するように設定した場合を示し、同図(b)は、ステップ数192のマイクロプログラム1個(MP1)と、ステップ数96のマイクロプログラム1個と(MP2)、ステップ数48のマイクロプログラム2個(MP3,MP4)をMPRAM73に格納し、MP1が2つの入力チャンネル及び4つの出力チャンネルを使用し、MP2が1つの入力チャンネル及び2つの出力チャンネルを使用し、MP3及びMP4がそれぞれ1つの入出力チャンネルを使用するように設定した場合を示し、同図(c)は、ステップ数192のマイクロプログラム1個(MP1)と、ステップ数96のマイクロプログラム2個と(MP2,MP2)をMPRAM73に格納し、MP1が2つの入力チャンネル及び2つの出力チャンネルを使用し、MP2及びMP3がそれぞれ1つの入出力チャンネルを使用するように設定した場合を示している。このように本実施形態によれば、マイクロプログラム及び使用する入出力チャンネルを所定範囲内で任意に設定でき、使い勝手を大幅に向上させることができる。
【0083】
また、遅延メモリ14に格納するデータの圧縮処理の態様を変更できるようにし、その圧縮処理の態様の変更に対応して読み出し時の伸張処理の態様を変更するようにしたので、遅延信号の高い精度が必要でない場合は、遅延メモリ14の記憶領域を節約することができるとともに、必要に応じて高い精度の遅延信号を得ることができる。
【0084】
また、遅延メモリ14のバンク0をすべてのマイクロプログラムがアクセスできる共通領域としたので、構成の複雑化やコストアップをほとんど招くことなく、二以上のマイクロプログラムで共通に使用するテーブルや波形データ(図9)などを格納することができ、且つ格納したデータを容易に使用することができる。
【0085】
また、バンク0を共通領域としたので、制御信号COFFに対応してベースカウンタ82の出力及び先頭アドレスTADをいずれも「0」とすることで、容易に共通領域にアクセスすることができる。
【0086】
また、いずれかのマイクロプログラムのホールト期間中(HB信号の入力中)は、CPU3が遅延メモリのバンク0にアクセスできるようにしたので、バンク0に格納したデータの変更などを容易に行うことができる。
【0087】
なお、本発明は上述した実施形態に限定されるものではなく、種々の変形が可能である。例えば、MPRAM73の容量を大きくして、格納可能なマイクロプログラムの最大個数を増加させたり、バスやレジスタの容量を大きくして使用可能な入出力チャンネルの数を増加さるようにしてもよい。
【0088】
また、上述した実施形態では、32ビットのデータを分割した2つの16ビットデータを1つの遅延用メモリにシリアルに格納するようにしたが、例えば2つの遅延用メモリを設けておき、分割した2つの16ビットデータを並列に2つの遅延用メモリに格納するようにしてもよい。また、遅延用メモリに格納するときの圧縮処理は、32ビットのデータを16ビットのデータに変換するものに限るものではなく、例えば1データに対して遅延用メモリの1.5アドレスを使用することとして、32ビットのデータを24ビットのデータに変換するようにしてもよい。
【0089】
また上述した実施形態では、ステップカウンタ72は、1DACサイクルの中で0から383の値を順次カウントするようにしたが、該ステップカウンタ72のカウント順序を変更し、0から383の範囲を任意の順序で読み出せるようにしてもよい。そのようにすると、MPRAM73の中の複数のマイクロプログラムMPの読み出し順序を、任意に変更することができる。その場合、カウント順序の変更されたカウント値を係数レジスタ43及びアドレスレジスタ45に供給し、乗算データとアドレスデータADの読み出し順序がマイクロプログラムMPと同様に変更されるようにする。
【0090】
ここで、任意の読み出し順序とは、例えばもともとマイクロプログラムMP1、MP2、MP3…の順に実行されてたマイクロプログラムを、MP1、MP3、MP2の順あるいはMP3、MP2、MP1の順で実行できるようにすることである。
【0091】
MPRAM73の中の複数のマイクロプログラムの読み出し順序が任意に変更可能であれば、MPRAM73の中に離れて格納されている2つのマイクロプログラムを差し替えたい場合に、その2つマイクロプログラムの記憶領域を1つにまとめて連続した記憶領域とすることができ、その2つのいずれかの記憶領域だけでは入りきらないステップ数のマイクロプログラムを、他のマイクロプログラムを動作させたままで新たに書き込むことができる。
【0092】
また、複数のエフェクト種類(例えば「ホール3」、「ディストーション2」などと呼ばれる)で同じマイクロプログラム(処理アルゴリズム)が使用される場合もあり、新たなエフェクト種類が選択されたときでも、その選択の前後のエフェクト種類で同じマイクロプログラムを使用していれば、新たなマイクロプログラムをMPRAM73に書き込む必要はない。その場合には、対応するマイクロプログラムの入力レベル及び出力レベルをフィードアウトして該マイクロプログラムを停止し、使用していた遅延メモリのバンクをクリアし、係数(係数レジスタ43の内容)やディレイの長さ(アドレスレジスタ45の内容)を新たな値に変更して該マイクロプログラムを始動し、再び対応する入力レベル及び出力レベルをフェードインする処理を行う。すなわち、マイクロプログラムの停止は、マイクロプログラムの変更時だけでなく、係数やディレイの長さの設定切換時にも行われる。
【0093】
【発明の効果】
【0094】
以上詳述したように、請求項2に記載の発明によれば、時分割処理により、任意ステップ数の複数のマイクロプログラムが並列的に実行され、さらに変更指示に応じて前記複数のマイクロプログラムのうちの変更すべきマイクロプログラムの実行のみが選択的に停止されるとともに、該停止されたマイクロプログラムの実行期間において、変更すべきマイクロプログラムの記憶領域に新たなマイクロプログラムが書き込まれるので、実行可能なマイクロプログラムの選択範囲が拡大し、より使い勝手を向上させることができるとともに、任意のマイクロプログラムを他のマイクロプログラムの実行を継続させたままで書き替えることができる。
【0096】
請求項5に記載の発明によれば、ディジタル信号が圧縮処理を施されて遅延用記憶手段に書き込まれ、読み出し時に書き込み時と逆の伸張処理を施されて出力され、前記圧縮処理及び伸張処理の態様が必要に応じて変更可能であるので、遅延信号の高い精度が必要でない場合は、遅延用記憶手段の記憶領域を節約することができるとともに、必要に応じて高い精度の遅延信号を得ることができる。
【図面の簡単な説明】
【図1】本発明の実施の一形態にかかる電子楽器の構成を示すブロック図である。
【図2】図1の音源の構成を示すブロック図である。
【図3】図2の制御レジスタ及び信号処理回路の構成を示すブロック図である。
【図4】図3のMP制御部の構成を示すブロック図である。
【図5】図3の遅延メモリアドレス発生部の構成を示す図である。
【図6】図3の32−16変換部及び16−32変換部の構成を示すブロック図である。
【図7】図3,4,5の示されるブロックレジスタに格納されるデータを示す図である。
【図8】時分割で実行されるマイクロプログラムと遅延メモリとの関係を説明するための図である。
【図9】遅延メモリの共通領域(バンク0)に格納されるデータの例を説明するための図である。
【図10】マイクロプログラムの数及びステップ数並びに各マイクロプログラムが使用する入出力チャンネルの設定例を示す図である。
【符号の説明】
3 CPU
8 音源
11 システムバス
14 遅延メモリ
21 制御レジスタ
26 信号処理回路
42 マイクロプログラム制御部
44 ブロックレジスタ
60 16−32変換部
61 32−16変換部
62 遅延メモリ用アドレス発生部
73 マイクロプログラムRAM
Claims (4)
- 複数のマイクロプログラムを時分割で実行することにより、入力されたディジタル信号に種々の演算処理を施す信号処理装置において、
処理されるディジタル信号が入力される第1所定数の入力チャンネルと、
処理されたディジタル信号が出力される第2所定数の出力チャンネルと、
前記入力されたディジタル信号と前記第2所定数の出力チャンネルから出力されたディジタル信号とを混合して複数チャンネルの信号を生成し、該複数チャンネルの信号のうち前記第1所定数の信号を前記入力チャンネルに入力する混合回路と、
複数の効果に対応した前記複数のマイクロプログラムを時分割で実行する信号処理回路と、
前記複数のマイクロプログラムの各マイクロプログラム毎に、前記第1所定数の入力チャンネルのうちの当該マイクロプログラムによって使用される入力チャンネルと、前記第2所定数の出力チャンネルのうちの当該マイクロプログラムによって使用される出力チャンネルとを、それぞれ設定する設定手段と
を有し、
前記信号処理回路は、前記複数のマイクロプログラムの各マイクロプログラム毎に、前記設定された入力チャンネルから入力されたディジタル信号に対して、当該マイクロプログラムを実行することによる効果を付与し、該効果が付与されたデジタル信号を前記設定された出力チャンネルから出力する
ことを特徴とする信号処理装置。 - 前記信号処理回路は、
複数のマイクロプログラムを記憶する第1記憶手段と、
該第1記憶手段における各マイクロプログラムの記憶領域を示す制御情報を記憶する第2記憶手段と、
サンプリング周期毎に、時分割で前記第1記憶手段に記憶された複数のマイクロプログラムを読み出す読出手段と、
前記第2記憶手段に記憶された制御情報に基づいて、前記読出手段の読み出しているマイクロプログラムを判別する判別手段と、
変更指示が発生したとき、前記判別手段の判別結果に応じて前記複数のマイクロプログラムの中の変更すべきマイクロプログラムの実行のみを選択的に停止するとともに、該停止されたマイクロプログラムの実行期間において、前記変更すべきマイクロプログラムの記憶領域に新たなマイクロプログラムを書き込む変更手段と
を備えることを特徴とする請求項1記載の信号処理装置。 - 前記ディジタル信号を遅延させるための遅延用記憶手段と、
前記ディジタル信号の圧縮処理を行って前記遅延用記憶手段に書き込むとともに、読み出し時に書き込み時と逆の伸張処理を行って出力するデータ変換手段とをさらに備え、
前記データ変換手段は、前記圧縮処理及び伸張処理の態様を変更可能に構成されていることを特徴とする請求項1記載の信号処理装置。 - 前記圧縮処理の態様は、浮動小数点変換によりビット数を減少させる処理及び複数のビットから成る処理単位を分割する処理を含むことを特徴とする請求項3記載の信号処理装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP01187997A JP3582276B2 (ja) | 1997-01-08 | 1997-01-08 | 信号処理装置 |
| US09/001,992 US6085309A (en) | 1997-01-08 | 1997-12-31 | Signal processing apparatus |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP01187997A JP3582276B2 (ja) | 1997-01-08 | 1997-01-08 | 信号処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH10198559A JPH10198559A (ja) | 1998-07-31 |
| JP3582276B2 true JP3582276B2 (ja) | 2004-10-27 |
Family
ID=11790027
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP01187997A Expired - Fee Related JP3582276B2 (ja) | 1997-01-08 | 1997-01-08 | 信号処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3582276B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5682386B2 (ja) * | 2011-03-15 | 2015-03-11 | 富士通株式会社 | シミュレーション装置及びプログラム |
-
1997
- 1997-01-08 JP JP01187997A patent/JP3582276B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH10198559A (ja) | 1998-07-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4953437A (en) | Method and apparatus for digitally generating musical notes | |
| JPH06195073A (ja) | 効果付与装置 | |
| JPS62200399A (ja) | 電子楽器におけるパラメ−タ供給装置 | |
| JP3358324B2 (ja) | 電子楽器 | |
| JP2565073B2 (ja) | ディジタル信号処理装置 | |
| US6085309A (en) | Signal processing apparatus | |
| JPH09114457A (ja) | 楽音発生装置及び方法 | |
| JP3230449B2 (ja) | 信号処理装置 | |
| JP3582276B2 (ja) | 信号処理装置 | |
| US5684260A (en) | Apparatus and method for generation and synthesis of audio | |
| JP3978928B2 (ja) | 楽音生成装置 | |
| JP2797142B2 (ja) | 電子楽器用処理装置 | |
| JP3658665B2 (ja) | 波形発生装置 | |
| JP3000894B2 (ja) | 楽音発生方法 | |
| JP2671690B2 (ja) | 電子楽器 | |
| JP3050779B2 (ja) | 信号処理装置 | |
| JP3371643B2 (ja) | 信号処理装置 | |
| JP3520553B2 (ja) | 音源装置 | |
| JP2935053B2 (ja) | 電子楽器 | |
| JP3552265B2 (ja) | 音源装置および音声信号形成方法 | |
| JP3603849B2 (ja) | 楽音発生方法 | |
| JP3104873B2 (ja) | 音源装置 | |
| JPH08211873A (ja) | 効果付与装置 | |
| JP2956552B2 (ja) | 楽音発生方法および装置 | |
| JP3275678B2 (ja) | 楽音発生方法および装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040427 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040611 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040706 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040719 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070806 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080806 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090806 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100806 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100806 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110806 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120806 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130806 Year of fee payment: 9 |
|
| LAPS | Cancellation because of no payment of annual fees |