以下、図面を用いてこの発明の実施の形態を説明する。
図1は、この発明の一実施形態であるディジタルミキサのエンジンの構成を示す。このエンジン100は、中央処理装置(CPU)101、フラッシュメモリ102、RAM(ランダム・アクセス・メモリ)103、PC入出力インターフェース(I/O)104、MIDI I/O105、その他I/O106、表示器107、操作子108、波形I/O109、信号処理部(DSP群)110、及びシステムバス120を備える。
中央処理装置(CPU)101は、このミキサ全体の動作を制御する処理装置である。フラッシュメモリ102は、CPU101や信号処理部110のDSPなどが使用する各種のプログラムやデータを格納した不揮発性メモリである。RAM103は、CPU101が実行するプログラムのロード領域やワーク領域に使用する揮発性メモリである。PC I/O104は、外部のパーソナルコンピュータ(以下、PCと言う)130を接続するインターフェース(例えば、LAN、USB、シリアルI/Oなど)である。PC130は、キーボード、ディスプレイ、及びマウスなどを備えた汎用のPCである。MIDI I/O105は、各種MIDI機器を接続するインターフェースである。その他I/O106は、その他の機器を接続するためのインタフェースである。表示器107は、このミキサの外部パネル上に設けられた各種の情報を表示するためのディスプレイである。操作子108は、外部パネル上に設けられたユーザが操作するための各種の操作子である。波形I/O109は、外部機器との間で音響信号をやり取りするためのインターフェースであり、例えば、アナログの音響信号を入力してディジタル信号に変換して信号処理部110に渡すA/D(アナログ・ディジタル)変換機能、ディジタルの音響信号を入力して信号処理部110に渡すディジタル信号入力機能、及び信号処理部110から出力されたディジタルの音響信号をアナログの音響信号に変換してサウンドシステムに出力するD/A(ディジタル・アナログ)変換機能などを実現する。信号処理部110は、幾つかのDSP(ディジタル・シグナル・プロセッサ)などからなる。これらのDSPは、CPU101の指示に基づいて各種のマイクロプログラムを実行することにより、波形I/O109経由で入力した波形信号のミキシング処理、効果付与処理、及び音量レベル制御処理などを行い、処理後の波形信号を波形I/O109経由で出力する。
本ディジタルミキサのエンジン100では、信号処理部110で実現するミキサ構成をカスタムメイドすることができる。そのミキサ構成は、PC130上で動作する所定のミキサ制御プログラム131によりPC130の画面上で作成編集することができる。作成したミキサ構成を複数集めたものをコンフィグレーションと呼ぶ。ミキサ制御プログラム131は、ユーザの画面上での操作指示に応じて、コンフィグレーションをメモリ上にコンフィグデータ132として生成する。コンフィグデータ132は、PC130から書込み可能な任意の記憶装置にファイルとして保存できる。また、PC130側のメモリまたはハードディスクなどの記憶装置上のコンフィグデータの各ミキサ構成は、コンパイルした後、エンジン100に転送できる。エンジン100は、PC130から転送されたコンフィグデータをフラッシュメモリ102に格納して保存しておくことができる。所定の操作によりフラッシュメモリ102に格納されたコンフィグデータ中の1つのミキサ構成をカレントとして指定することにより、そのミキサ構成に基づいてエンジン100が動作し、これにより当該ミキサ構成で規定されるミキサが実現する。
ミキサ制御プログラム131は、操作モードとしてオンラインモードとオフラインモードを有する。所定の操作により、それらのモードを切り換えることができる。オフラインモードは、PC130側のみで、コンフィグデータを作成編集するモードである。オンラインモードは、PC130のミキサ制御プログラム131からエンジン100をリアルタイムに制御するモードである。オンラインモードが指定されると、その時点でPC130のRAM上に展開されているコンフィグデータが(コンパイルの後)エンジン100に転送されてフラッシュメモリ102に格納され、これによりPC130とエンジン100とでコンフィグデータが一致する。また、PC130側でカレントとして指定されているミキサ構成の状態(パラメータ設定値など)がエンジン100に送られて、PC130とエンジン100とが完全に同期した状態となり、PC130からエンジン100を制御できるようになる。例えば、PC130のミキサ構成画面上に表示されたコンポーネントがフェーダを備えている場合、あるいは、あるコンポーネントの制御画面がフェーダを備えている場合、オンラインモードでは、そのフェーダをマウスを用いて操作するとその操作はリアルタイムにエンジン100に反映される。オンラインモードでは、PC130側でコンポーネントの構成と結線は変更できない。変更すると自動的にオフラインモードになる。
図2は、図1の信号処理部110周辺の拡大図である。信号処理部110は、複数のDSP(ここでは4つのみ図示したが実際にはもっと多い)201〜204、各DSPに接続されている遅延用メモリ205〜208、及び波形バス210を備える。各DSP201〜204と波形I/O109とは波形バス210を介してデータをやり取りする。各DSP201〜204は、それぞれCPUバス120に接続されている。CPU101は、CPUバス120を介して各DSP201〜204に所定のマイクロプログラムやパラメータデータを転送し、各DSPに実行させる。これにより、各DSPを所望の通りに動作させ、波形バス210経由で波形I/O109から楽音波形データを入力し、ミキシング、効果付与、及び信号レベルの設定などの処理を施して、再び波形バス210と波形I/O109経由で出力させることができる。
波形バス210は、所定のサンプリングクロックに基づいて時分割で24ビットの信号を128チャンネル(ch)伝送することができる。これら128の各ch(言い換えると128のタイムスロットのうちの1つ)は、DSP201〜204のうちの1つまたは波形I/O109の出力のうちの1つに割り当てられ、割り当てられたDSPまたは波形I/Oの出力はそのchへ信号を出力する。また、その出力からの信号を受け取りたいDSPまたは波形I/Oの入力は、その割り当てられたchから信号を取り込む。これにより、DSP201〜204及び波形I/O109の任意の入力と出力とを結線することができる。
各DSPでは、各種の信号処理を実行するが、その際、波形信号を遅延させる処理を行う場合がある。遅延量が短い場合はDSP内部のレジスタで遅延を実現する。遅延量が比較的長い場合は遅延用メモリ205〜208を用いる。各遅延用メモリ205〜208は、それぞれ1サンプリング周期あたり所定回数(例えば256回程度)アクセスすることが可能なものであり、これにより波形信号を所定時間遅延させた信号を得ることができる。
図3(a)は、PC130のミキサ制御プログラム131が使用するP(プリセット)コンポーネントデータ(PCデータ)の構成を示す。Pコンポーネント(以下、単にコンポーネントと言う)は、ミキサ構成をカスタムメイドする際の基本単位部品となるブロック(信号処理モジュール)であり、例えば、(ディレイ無しの)マトリクスミキサ、ディレイ付きマトリクスミキサ、コンプレッサ、エフェクト、クロスオーバなどのオーディオプロセッサや、フェーダ、スイッチ、パン、メータなどの個々のパーツのコンポーネントが用意されている。ミキサ制御プログラム131によるミキサ構成の作成編集は、具体的には、PC130のミキサ構成画面上で、これらのコンポーネントを配置して結線するものである。コンポーネント間に結線を引くことは、コンポーネント間の信号の入出力関係を定義することに相当する。図3(a)に示すPCデータは、コンポーネントを規定する定義データであり、ミキサ制御プログラム131がアクセスできる任意の記憶手段(ミキサ構成画面で利用するために呼び出されたときにはRAM中)に予め格納されている。PCデータはコンポーネントの種類毎に用意される。
1つのPCデータは、PCヘッダ、PC構成情報、PC処理ルーチン、及び表示編集処理ルーチンからなる。PCヘッダは、コンポーネントID(PC_ID)及びコンポーネントバージョン(PC_Ver)などからなる。PC_IDとPC_VerによりPCデータを特定することができる。PC構成情報は、そのコンポーネントの詳細な構成を示すデータである。PC処理ルーチンは、PC構成情報に関する各種の処理を行なうためのプログラムである。ミキサ制御プログラム131がミキサ構成を処理する際には、コンポーネント毎のPC処理ルーチンを利用する。表示編集処理ルーチンは、CFデータを作成編集する際に用いるプログラム群である。
なお、ミキサエンジン100内のフラッシュメモリ102に予め格納されているPCデータも、図3(a)と同様の構成である。ただし、エンジン100側のPCデータでは、図3(a)の「PC構成情報」はコンポーネントの表示用データを含まず、「表示編集処理ルーチン」は「PCマイクロプログラム」に置き換わる。エンジン100では、ミキサ構成画面や制御画面の表示はできないので、その表示編集のためのデータやルーチンは不要である。その代わり、エンジン100では、エンジン用CADデータのミキサ構成に応じたマイクロプログラムを形成してDSP群に送る必要があるため、各コンポーネント対応のPCマイクロプログラムが必要となる。このPCマイクロプログラムは、入出力数のバリエーション分のマイクロプログラムが全て用意されている。また、エンジン100側のPCデータのPC処理ルーチンは、エンジン中で各構成情報を処理するための各種のプログラムであるものとする。
図3(b)は、PC130において、ミキサ制御プログラム131によって処理されるRAM上のコンフィグデータの構造を示す。コンフィグデータは、複数のCFデータ1〜Ncf及びシーンメモリから構成される。このコンフィグデータの全体が1ファイルとして任意の記憶装置(例えば、PC内のハードディスクなど)に格納できる。逆に任意の記憶装置から読出したコンフィグデータをPC130のRAM上に図3(b)の形式で展開して使用する。CFデータ1〜Ncfにおいて、1〜Ncfの番号をコンフィグ番号(CFナンバ)と呼ぶ。コンフィグ番号によりCFデータ(あるいはそのCFデータが格納されている領域)を指定することができる。カレントポインタは、処理対象のCFデータを指すポインタである。カレントポインタが指すCFデータが、図4で後述するミキサ構成画面に表示される。カレントポインタが指すCFデータを「現コンフィグ」と呼ぶ。
1つのCFデータは、1つのミキサ構成を規定するデータであり、CFヘッダ、PC用CADデータ、及びNps個のパラメータ組からなる。CFヘッダは、コンフィグID(CF_ID)、コンフィグバージョン(CF_Ver)、及びシステムバージョン(SYS_Ver)などからなる。CF_IDとCF_Verにより、CFデータを特定することができる。PC用CADデータは、当該CFデータのミキサ構成がどのようなコンポーネントをどのように結線して構成したものかを定義するデータであり、そのミキサ構成の構成要素として使用するコンポーネントを指定するデータであるCデータ及びそれらのコンポーネント間を結ぶ結線データからなる。PC用CADデータは、後述する図4のミキサ構成画面などの表示用データも含む。PC用CADデータ内のCデータは、コンポーネントを指定するコンポーネントID(C_ID)、コンポーネントバージョン(C_Ver)、ユニークID(U_ID)、及びその他のデータ(例えば、プロパティなど)などからなる。CデータのC_IDとC_Verとしては、図3(a)のPCデータのPC_IDとPC_Verを指定してコンポーネントを特定する。
1つのパラメータ組は、それが含まれるCFデータのPC用CADデータのミキサ構成で使用する具体的なパラメータ値の組データを示す。PC用CADデータによって1つのミキサ構成が規定されるが、実際にそのミキサ構成でディジタルミキサが動作する際には各コンポーネントに所定のパラメータを設定する必要がある。例えば、ディレイ付きマトリクスミキサであれば入力端子と出力端子との各交点における出力信号レベルなどのパラメータ値を設定する必要があるということである。パラメータ組は、そのような各コンポーネントが実際に動作する際に使用するパラメータ値のデータセットであり、ヘッダとパラメータ値からなる。パラメータ組は、1〜Npsのパラメータ番号で特定される。
シーンメモリにはNs個(個数は任意)のシーン1〜Nsが格納される。1〜Nsの番号をシーン番号と呼ぶ。シーン番号で、各シーンが格納されている領域あるいはその領域に格納されたシーンを特定することができる。1つのシーンは、コンフィグ番号とパラメータ組番号を備える。ユーザは、シーン番号を指定してシーンを呼び出す(これをシーンのリコールと言う)ことができる。シーンのリコールが指示されると、当該シーンのコンフィグ番号のCFデータが現コンフィグとなるようにカレントポインタがセットされ、当該CFデータが後述するミキサ構成画面(図4)に表示され、当該シーンのパラメータ組番号のパラメータ組が読み込まれてカレントシーン(図3(c)で後述)にセットされる。逆に、ユーザは、現コンフィグ及び現カレントシーンを、シーン番号を指定してシーンメモリに保存することもできる(これをシーンのストアと言う)。
エンジン100のフラッシュメモリ102上のコンフィグデータも、図3(b)と同様の構成である。ただし、エンジン100側のコンフィグデータのCADデータは、ミキサ構成画面で示されるようなミキサ構成を表すデータである点はPC130側のPC用CADデータと同じだが、エンジン100内では表示のためのデータは不要であり、またデータ量を少なくするため、表示データを含まずバイナリ形式で表現されたエンジン用CADデータになっている。エンジン用CADデータは、PC用CADデータをコンパイルすることにより、後述する図3(c)のエンジン用CADデータ形成バッファ上に生成されエンジン100に転送されたものである。エンジン100側もカレントポインタを有し、カレントポインタが指すCFデータが「現コンフィグ」である。
図3(c)は、PC130においてミキサ制御プログラム131によって処理されるRAM上のその他データの構造を示す。カレントシーンは、PC130側における現コンフィグのミキサ構成で設定されているパラメータデータセット、すなわち現コンフィグの各コンポーネントの現在のパラメータ値(カレント値)を示す。これらのパラメータ値は、後述するミキサ構成画面あるいは該画面から開くことができる各種の制御画面により設定変更できる。エンジン用CADデータ形成バッファは、CFデータをコンパイルしたとき、PC130側のPC用CADデータからエンジン100側のエンジン用CADデータを生成するバッファである。
図3(d)は、エンジン100のRAM103上のその他データを示す。カレントシーンは、エンジン100側において現コンフィグのミキサ構成に設定されているパラメータデータセットであり、図3(c)に示したPC側のカレントシーンと同様のデータである。カレントシーンのパラメータ値は、表示器107に表示される所定の画面上で操作子108を操作することにより設定変更できる。マイクロプログラム形成バッファは、ミキサ構成に応じたマイクロプログラムを形成するために使用するバッファである。エンジン100側のカレントポインタが切り換えられると、新たに現コンフィグとなったCFデータのエンジン用CADデータのミキサ構成を実現するマイクロプログラムがマイクロプログラム形成バッファ上に展開され、そのマイクロプログラムが信号処理部110に転送される。また、エンジン100側で、新たにカレントシーンが読み込まれたとき、あるいはカレントシーンが変更されたときには、自動的に、当該カレントシーンが信号処理部110に転送される。転送されたカレントシーンのパラメータ値は、DSP群の係数メモリに展開される(例えば後述する図7(c)のMパラメータ)。信号処理部110のDSP群は当該係数メモリのパラメータを使用して上記転送されたマイクロプログラムを実行し、これにより信号処理部110は、現コンフィグのエンジン用CADデータのミキサ構成で、かつカレントシーンのパラメータデータセットでの動作を実現する。
エンジン100のフラッシュメモリ102にコンフィグデータを格納する方法は任意であるが、通常はPC130にてオンラインモードを指定することにより行う。PC130でオンラインモードを指定すると、図3(b)に示したPC130側のRAM上のコンフィグデータの各CFデータがそれぞれコンパイルされてエンジン100に転送され、さらにシーンメモリの内容もエンジン100に転送される。エンジン100では、転送されてきたCFデータとシーンメモリの内容を図3(b)と同様の形式でフラッシュメモリ102に格納する。これにより、PC130とエンジン100とでコンフィグデータが一致した状態となる。さらに、オンラインモードでは、図3(c)のPC130側のカレントシーンが転送されて、図3(d)のエンジン100側のカレントシーンに格納される。エンジン側カレントポインタも、PC側カレントポインタが指しているのと同じCFデータを指すように書き換えられる。以上のようにして、オンラインモードでは、PC130とエンジン100とが完全に同期した状態となり、以後、PC130側での操作はリアルタイムにエンジン100側に反映される。
なお、フラッシュメモリ102は不揮発性であるので、格納されたコンフィグデータはエンジンの電源がオフされても保持される。一旦、コンフィグデータをフラッシュメモリ102に格納した後は、PC130をエンジン100に接続しなくても、エンジン100単独で、シーン番号を指定してシーンを呼び出したり(これによりカレントのミキサ構成(CFデータ)を切り換えることができる)、カレントシーンのパラメータ値を変更したり、カレントのミキサ構成とカレントシーンを任意のシーン番号を指定してそこに保存することができる。
図4は、PC130上でミキサ構成(カレントポインタが指している現コンフィグのCFデータ)の作成編集を行うためのミキサ構成画面(CAD画面)の例を示す。ユーザは、この画面400上で種々のコンポーネントを配置し、各コンポーネント間を結線で結ぶことにより、所望のミキサ構成を作成できる。
411は入力コンポーネントであり、421−1〜421−10はそれぞれ本ミキサへの1つの入力端子に相当する。図1の波形I/O109により入力する音響信号の1ラインが1つの入力端子(例えば421−1)に対応するものである。413は出力コンポーネントであり、424−1〜424−10はそれぞれ本ミキサからの1つの出力端子に相当する。図1の波形I/O109から出力する音響信号の1ラインが1つの出力端子(例えば424−1)に対応するものである。ここでは入力端子と出力端子の数をそれぞれ10個としたが、この数は任意であり、実際の波形I/O109における入出力の数に応じて決定されるものである。
入力コンポーネント411と出力コンポーネント413の間に任意に各種のコンポーネントを配置し結線してミキサ構成(CFデータ)を作成する。412はユーザが配置したディレイ付きマトリクスミキサコンポーネントを示す。このディレイ付きマトリクスミキサ412は、8入力8出力とする。従って、8本の入力端子422−1〜422−8と、8本の出力端子423−1〜423−8を備えている。また、ここでは入力コンポーネント411の端子421−1〜421−8とディレイ付きマトリクスミキサ412の入力端子422−1〜422−8とをそれぞれ結線425−1〜425−8で接続し、ディレイ付きマトリクスミキサ412の出力端子423−1〜423−8と出力コンポーネント413の端子424−1〜424−8とをそれぞれ結線426−1〜426−8で接続している。オンラインボタン401は、オンラインモードとオフラインモードとを切り換えるボタンである。
図4の入力コンポーネント411、出力コンポーネント413、及びディレイ付きマトリクスミキサコンポーネント412は、それぞれ図3(a)のPCデータとして用意されている。図4に示す配置と結線が為された場合、図3(b)のカレントポインタで指されるCFデータのPC用CADデータには、入力コンポーネント411に対応するPCデータを特定するためのCデータAが設定され、次にディレイ付きマトリクスミキサコンポーネント412に対応するPCデータを特定するCデータBが設定され、さらに出力コンポーネント413に対応するPCデータを特定するCデータCが設定され、図4で図示されているような結線の状態を示す結線データが設定される。これらのコンポーネントの表示及び結線の編集は、各コンポーネントのPCデータの表示編集処理ルーチンを用いて処理されるものである。
図5は、図4のミキサ構成画面400上のディレイ付きマトリクスミキサコンポーネント412をダブルクリックしたときに表示される、該コンポーネント412のパラメータの詳細な設定を行うための、制御画面である。この制御画面500は、ディレイオン/オフボタン501、4×4オープンボタン502、入力マスターボタン503、使用ディレイ数の表示504、出力マスターボタン505、及び入出力マトリクス表示510を備える。入出力マトリクス表示510において、左側の縦に並べられた1〜8の表示510aは、本ディレイ付きマトリクスミキサへの8入力のそれぞれを示す(各入力を、入力1、入力2、…と呼ぶ)。上側の横に並べられた1〜8の表示510bは、本ディレイ付きマトリクスミキサからの8出力のそれぞれを示す(各出力を、出力1、出力2、…と呼ぶ)。入出力マトリクス表示510の各交点には、入力n(nは1〜8)から出力m(mは1〜8)に送出する信号に関する情報(後述する)が表示される。ここでは8入力8出力のディレイ付きマトリクスミキサを例に説明するが、種々の入出力数のディレイ付きマトリクスミキサが用意されており、その入出力数に応じて入出力マトリクス表示510の行と列の数が決まる。
ディレイオン/オフボタン501はディレイオン/オフモードにすることを指示するボタン、4×4オープンボタン502は4×4オープンモードにすることを指示するボタンである。ディレイオン/オフモードと4×4オープンモードとは択一的であり、一方のモードがオンされると他方のモードはオフされる。図4では、4×4オープンボタン502の枠が太線表示されているが、これは現在4×4オープンモードがオンされた状態であることを示す。
ディレイオン/オフモードがオンのときは(このとき4×4オープンモードにおいて表示される4×4枠511(後述)は表示されない)、マウスカーソル512を任意の交点に合わせてマウスボタンをクリックすることにより、当該交点のディレイのオンとオフを切り換えることができる。ある交点でディレイがオンというのは、その交点に遅延要素が割り当てられていると言うことであり、その交点において入力から出力へ信号送出する際に、指定した遅延量だけ遅延させて送出する、ということである。ただし、ある交点でディレイがオンされていたとしても、その交点のオン/オフ制御はディレイのオン/オフとは独立して行うことができる。従って、その交点がオフされている場合、ディレイのオン/オフは無意味である。なお、交点のオンとは、その交点において入力と出力とが結線されており、当該入力から出力への信号送出がオンされていることを言う。交点のオフとは、その交点において入力と出力とが結線されておらず、当該入力から出力への信号送出がオフされていることを言う。
本実施形態のディレイ付きマトリクスミキサは、従来のもののように全ての交点に予め遅延要素が割り当てられているものではなく、1つのDSP(例えば図2の第1DSP201)と遅延用メモリ(例えば図2の遅延用メモリ205)との組合せで使用可能なリソースに基づいて決定される数(あるいは、リソースを他のコンポーネントで使用することを考慮すれば、そのリソースから規定される最大数以下の所定の数)だけの遅延要素を任意の交点に割り当てて使用するものである。これにより、従来は実現できなかった入力数×出力数の大きなディレイ付きマトリクスミキサが実現できる。なお、使用ディレイ数の表示504は、システムのリソースに基づいて使用可能な遅延要素の最大数(あるいはそれ以下の所定数)のうち何個の遅延要素を使ったかを示す表示である。図5の表示504の「14/18」は、18個ある遅延要素のうち、現在14個を使用していることを示している。
4×4オープンモードがオンのとき、入出力マトリクス表示510の中でマウスカーソル512を移動すると、4入力4出力の大きさの枠511(4×4枠と呼ぶ)がそれに連れて移動する。4×4枠511は、4入力ごと、かつ4出力ごとに区切られる枠を単位として移動するものであり、例えばマウスカーソル512が入力1〜4かつ出力1〜4の範囲にあるときはその範囲に、マウスカーソル512が入力1〜4かつ出力5〜8の範囲にあるときはその範囲に、…というように、4×4枠が表示される。4×4枠が表示されている状態でマウスボタンをクリックすると、その範囲に関するクロスポイント画面(図6で説明する)が表示される。
入力マスターボタン503を押下することにより、本ディレイ付きマトリクスミキサへの8つの入力のそれぞれについてのオン/オフ制御とレベル設定を行うためのサブウインドウが表示され、これにより8つの各入力信号のオン/オフとレベル調整を行うことができる。同様に、出力マスターボタン505を押下することにより、8つの出力のそれぞれについてのオン/オフ制御とレベル設定を行うためのサブウインドウが表示され、これにより8つの各出力信号のオン/オフとレベル調整を行うことができる。
入出力マトリクス表示510の各交点における表示について説明する。520は、当該交点がオンされ、かつディレイがオンされているときの表示を示す。521はディレイの遅延量を表すメータ表示であり、522は入力から出力への送出レベルを表すメータ表示である。メータ表示は、左端からのバーの長さで遅延量やレベルを表している(交点表示530,540,550でも同様)。交点がオンかつディレイがオンされているので、メータ表示521,522は何れも濃い色(図では実線)で表示される。530は、当該交点がオフかつディレイがオンされているときの表示を示す。交点がオフされているので、入力から出力への送出レベルを表すメータ表示532はグレーアウト表示される。ディレイがオンされているので遅延量を表すメータ表示531は表示はされるが、交点がオフされているのでグレーアウト表示となる。540は、当該交点がオンかつディレイがオフされているときの表示を示す。交点がオンされているので、送出レベルを表すメータ表示542は濃い色で表示される。ディレイがオフされている(すなわち当該交点に遅延要素が割り当てられていない)ので、遅延量を表すメータ表示(541の位置)は表示されない。550は、当該交点がオフかつディレイがオフされているときの表示を示す。交点がオフされているので、送出レベルを表すメータ表示552はグレーアウト表示される。ディレイがオフされているので、遅延量を表すメータ表示(551の位置)は表示されない。
なお、ディレイオン/オフモードがオンのとき、交点表示520の交点にマウスカーソル512を合わせてマウスボタンをクリックすると、当該交点のディレイがオフされ、交点表示540となる。逆に、交点表示540の交点をディレイオンにすると、交点表示520となる。同様に、交点表示530からディレイオンすると交点表示550となり、交点表示550からディレイオフすると交点表示530となる。
図6は、図5の制御画面において、4×4オープンモードで4×4枠が何れかの範囲に表示されている状態でマウスボタンをクリックしたときに表示されるクロスポイント画面を示す。図6は、入力1〜4かつ出力1〜4の範囲に4×4枠が表示されている状態でクリックされ、当該範囲に関するクロスポイント画面600が表示されたところを図示したものであるが、4×4枠が別の範囲にあったときはその範囲に関するクロスポイント画面が表示される。
クロスポイント画面600は、入力ch表示601、使用ディレイ数の表示602、出力ch表示603、及び4×4クロスポイント表示604を備える。入力ch表示601は、現在表示している4×4クロスポイント表示604の入力のchグループの表示である。ここでは入力1〜4を表示しているので、入力ch表示601には「1〜4」と表示されている。出力ch表示603は、現在表示している4×4クロスポイント表示604の出力のchグループの表示である。ここでは出力1〜4を表示しているので、出力ch表示603には「1〜4」と表示されている。これらの表示601,603はリストボックスになっており、該表示部分にマウスカーソル605を合わせてクリックすると、他のchグループが選択肢として表示され、その中からchグループを選択することで、4×4クロスポイント表示604の入出力のchグループを切替えることができる。例えば、入力を「5〜8」に切替え、出力を「5〜8」に切替えれば、入力5〜8かつ出力5〜8に関する4×4クロスポイント表示が表示される。使用ディレイ数の表示602は、図5の表示504と同じ表示である。
4×4クロスポイント表示604の各交点における表示と操作について説明する。610は、当該交点がオンされ、かつディレイがオンされているときの表示を示す。611はオンボタン、612は入力から出力への送出レベルを表すノブ、613はその送出レベルの数値表示、614はディレイボタン、615は遅延量を表すノブ、616はその遅延量の数値表示である。交点がオンかつディレイがオンされているので、ボタン611,614は共に押下されているような表示態様(図では太線枠とした)で表示される。また、交点がオンされているので、送出レベルを表すノブ612と数値表示613は現在の送出レベルの設定値に対応した表示がなされる。ディレイがオンされているので、遅延量を表すノブ615と数値表示616は現在の遅延量の設定値に対応した表示がなされる。
620は、当該交点がオフかつディレイがオンされているときの表示を示す。交点がオフかつディレイがオンされているので、ボタン621は押下されていない表示態様で、ボタン624は押下されている表示態様で表示される。交点がオフされているので送出レベルの設定は無意味であるが、一応、当該交点に現在設定されている送出レベルに従って、ノブ622と数値表示623が、交点表示610のノブ612と数値表示613と同様に、表示される。また、交点がオフされているので遅延の設定も無意味であるが、ディレイがオンされているので、一応、遅延量を表すノブ625と数値表示626は現在の遅延量の設定値に対応した表示がなされる。
630は、当該交点がオンかつディレイがオフされているときの表示を示す。交点がオンかつディレイがオフされているので、ボタン631は押下されている表示態様で、ボタン634は押下されていない表示態様で表示される。交点がオンされているので、ノブ632と数値表示633は現在の送出レベルの設定値に対応した表示がなされる。ディレイがオフされているので、遅延量を表すノブと数値表示(635,636の位置)は表示されない。
640は、当該交点がオフかつディレイがオフされているときの表示を示す。交点がオフかつディレイがオフされているので、ボタン641,644は共に押下されていないような表示態様で表示される。交点がオフされているので送出レベルの設定は無意味であるが、一応、当該交点に現在設定されている送出レベルに従って、ノブ642と数値表示643が、交点表示610のノブ612と数値表示613と同様に、表示される。ディレイがオフされているので、遅延量を表すノブと数値表示(645,646の位置)は表示されない。
交点表示610のオンボタン611にマウスカーソル605を合わせてマウスボタンをクリックすると、当該交点がオフされ、交点表示620となる。逆に、交点表示620のオンボタン621をクリックすると、当該交点がオンされ、交点表示610となる。交点表示610のディレイボタン614をクリックすると、当該交点のディレイがオフされ、交点表示630となる。逆に、交点表示630のディレイボタン634をクリックすると、当該交点のディレイがオンされ、交点表示610となる。交点表示620のディレイボタン624をクリックすると、当該交点のディレイがオフされ、交点表示640となる。逆に、交点表示640のディレイボタン644をクリックすると、当該交点のディレイがオンされ、交点表示620となる。さらに、何れの交点表示でも、(交点のオン/オフやディレイのオン/オフにかかわらず)表示されているノブ612,615,622,625,632,642をクリックして選択状態とし、所定のキー操作(例えばテンキーによる数値入力)を行うことで、送出レベルや遅延量の値を設定変更できる。
上述の図5及び図6の画面によるディレイ付きマトリクスミキサコンポーネントに関するパラメータの設定変更は、当該コンポーネントのPCデータのPC処理ルーチン及び表示編集ルーチンを使用して行われる。
図4のようにミキサ構成画面400上にディレイ付きマトリクスミキサを呼び出したときには、PC130のカレントシーン(図3(c))上に当該ディレイ付きマトリクスミキサのパラメータ領域が確保される。具体的に、それらのパラメータについて説明する。なお、入力iかつ出力jの交点を交点(i,j)と呼ぶ。ここでは8入力8出力のディレイ付きマトリクスミキサを例に説明しているので、i=1〜8、j=1〜8である。この範囲の全交点のそれぞれに対して、カレントシーン内に以下の(P1)〜(P4)のパラメータを保持する。
(P1)SW(i,j):交点(i,j)のオン/オフ情報である。0のとき交点(i,j)がオフされていることを示し、1のとき交点(i,j)がオンされていることを示す。
(P2)LV(i,j):交点(i,j)の入力から出力への送出レベルである。
(P3)DS(i,j):交点(i,j)のディレイのオン/オフ情報である。0のときディレイがオフされていることを示し、1のときディレイがオンされていることを示す。
(P4)DV(i,j):交点(i,j)における遅延量である。
なお、交点をオフしたりディレイをオフしても、送出レベル値LV(i,j)や遅延量DV(i,j)は初期化されることなく前の値を保持する。従って、例えばディレイをオフした後に再びオンしても遅延量はディレイオフ直前の値に戻る。
以上のほか、交点毎でないパラメータとして以下の(P5)と(P6)のパラメータを保持する。
(P5)D(k):遅延要素kを割り当てた交点を示す(i,j)である。遅延要素は、具体的にはDSPで実行するマイクロプログラム中の1つの遅延処理に相当し、システムのリソースに基づいて使用可能な最大数(あるいはそれ以下の所定数)が決められている。本例では、図5の表示504や図6の表示602で説明したように18個まで遅延要素を使用できる。そこで、各遅延要素に番号を付け、交点(i,j)に遅延要素k(k=1〜18)を割り当てたとき、その(i,j)をD(k)に記憶しておく。D(k)に(0,0)が記憶されているときは、その遅延要素kがどの交点にも割り当てられていないことを示す。
(P6)その他、図5の入力マスターボタン503を押下して設定した本ディレイ付きマトリクスミキサへの入力のそれぞれについてのオン/オフ情報とレベル設定値、及び、出力マスターボタン505を押下して設定した本ディレイ付きマトリクスミキサからの出力のそれぞれについてのオン/オフ情報とレベル設定値などを保持する。
図7は、図4から図6で説明したようにミキサ構成に組み込まれたディレイ付きマトリクスミキサコンポーネントのエンジン100側のDSP(信号処理部110)内の各種データを示す。図7(a)は、DSP(例えば図2の201)で実行するマイクロプログラムの例を示す。マイクロプログラムは、先頭ステップから、入力処理1〜8、交点処理1−1〜1−8、交点処理2−1〜2−8、…、交点処理8−1〜8−8、遅延処理1〜18、及び出力処理1〜8の順に並べられる。各処理の詳細は後述する。
図7(b)は、本ミキサコンポーネントで用いるDSP内の内部レジスタを示す。これらの内部レジスタは、本ミキサコンポーネントのマイクロプログラム(図7(a))がロードされたときにDSP内に割り当てられ、該マイクロプログラムがDSPから消去されたとき同時に割り当てが外される。711はM出力レジスタ1〜8である。M出力レジスタは、本ミキサコンポーネントの出力である波形サンプルがセットされるレジスタである。ここでは8出力のミキサであるので8個のM出力レジスタが用意されている。M出力レジスタ1〜8の波形サンプルは、結線用のマイクロプログラムを介して他のコンポーネントに出力される(入力レジスタに書き込まれる)。712はD入力レジスタ1〜18である。D入力レジスタは、遅延処理に波形サンプルを入力するときに使用するレジスタであり、遅延処理1〜18に対応して18個設けられている。713はM入力レジスタ1〜8である。M入力レジスタは、本ミキサコンポーネントへ入力する波形サンプルをセットするレジスタである。ここでは8入力のミキサコンポーネントであるので8個のM入力レジスタが用意されている。他のコンポーネントからの波形サンプルは、結線用のマイクロプログラムを介してM入力レジスタ1〜8に入力される(書き込まれる)。
図7(c)は、本ミキサコンポーネントで用いるDSPの係数レジスタ内のパラメータを示す。これらのパラメータは、本ミキサコンポーネントのマイクロプログラム(図7(a))がロードされたときにDSP内に記憶領域が割り当てられて各値が設定され、該マイクロプログラムが消去されたとき割り当てが外される。この係数レジスタのパラメータは、DSPがマイクロプログラムを実行中であっても自由に書き換えることができる。入力パラメータ1〜8は、それぞれ、入力処理1〜8で使用するパラメータである。入力パラメータi(i=1〜8)はIN_SW(i)とIN_LV(i)からなる。IN_SW(i)とIN_LV(i)には、図5で説明した入力マスターボタン503を押下して設定した入力iについてのオン/オフ情報とレベル設定値がそれぞれ設定される。交点パラメータ1−1〜1−8,2−1〜2−8,…,8−1〜8−8は、それぞれ、交点処理1−1〜1−8,2−1〜2−8,…,8−1〜8−8で使用するパラメータである。交点パラメータi-j(i=1〜8、j=1〜8)はC_SW(i,j)とC_LV(i,j)からなる。C_SW(i,j)とC_LV(i,j)には、図5及び図6で説明した交点(i,j)のオン/オフ情報と送出レベル値がそれぞれ設定される。遅延パラメータ1〜8は、それぞれ、遅延処理1〜8で使用するパラメータである。遅延パラメータk(k=1〜18)はDL(k)からなる。DL(k)には、遅延処理kが割り当てられている交点において、図5及び図6で説明したように設定されている遅延量の値が設定される。出力パラメータj(j=1〜8)はOUT_SW(i)とOUT_LV(i)からなる。OUT_SW(i)とOUT_LV(i)には、図5で説明した出力マスターボタン505を押下して設定した出力jについてのオン/オフ情報とレベル設定値がそれぞれ設定される。
図7(a)のマイクロプログラムの各処理について説明する。このマイクロプログラムの先頭ステップから末尾ステップは、DSPにより音響信号の1サンプリング周期内で1回実行される。
701は入力iに関する入力処理i(i=1〜8)の動作を示す。入力処理iでは、(1)M入力レジスタiから波形サンプルを取り込み、(2)入力パラメータIN_SW(i)を乗算し、(3)入力パラメータIN_LV(i)を乗算し、(4)その結果の波形サンプルをM入力レジスタiに書き込む。これにより、図5で説明した入力マスターボタン503を押下して設定した入力iについてのオン/オフ情報とレベル設定値に基づく演算が実行される。なお、出力処理j(j=1〜8)も出力パラメータを利用して出力jについて同様の処理を行うものである。
702は交点(i,j)に関する交点処理i-j(挿入無し)の処理を示す。挿入無しとは、その交点においてディレイがオフ、すなわちディレイの挿入が無いことを示す。この交点処理では、(1)M入力レジスタiから波形サンプルを取り込み、(2)C_SW(i,j)を乗算し、(3)C_LV(i,j)を乗算し、(4)その結果の波形サンプルをM出力レジスタjに足し込む。なお、M出力レジスタjには他の交点処理や遅延処理が演算結果を出力する場合があるので、ステップ(4)ではM出力レジスタjに演算結果を足し込んでいる。全てのM出力レジスタは、各サンプリング周期の図7(a)のマイクロプログラムの実行開始の直前に、ゼロクリアされているものとする。
703は交点(i,j)に関する交点処理i-j(Dk挿入)の処理を示す。Dk挿入とは、その交点のディレイがオンされており、遅延処理kが挿入されていることを示す。この交点処理703では、上記交点処理702と同様のステップ(1)〜(3)の処理を行う。遅延処理kが挿入されているため、ステップ(4)の処理では、演算結果の波形サンプルをD入力レジスタkに書き込む。
704は遅延処理kの処理を示す。この処理では、(1)D入力レジスタkから波形サンプルを取り込み、(2)遅延メモリ(t)に書き込み、(3)遅延メモリ(t−DL(k))から読み出し、(4)読み出した波形サンプルをM出力レジスタjに足し込む。なお、遅延メモリ(t)は、このマイクロプログラムがロードされたDSPに接続されている遅延用メモリ中の当該遅延処理kに割り当てられている領域のt番目の格納位置を示す。遅延メモリ(t−DL(k))は、上記領域のt−DL(k)番目の格納位置を示す。tは、初期値が0で、サンプリング周期毎に1ずつカウントアップされる変数である。すなわち、ステップ(2)で現サンプリング周期における波形サンプルを遅延メモリのアドレスtに格納し、ステップ(3)でその位置からDL(k)だけ前のアドレスの波形サンプルを読み出して出力するものである。DL(k)は遅延量であり、具体的には何サンプリング周期遅延させるかを示す値である。遅延用メモリ中の当該遅延処理kに割り当てられている領域は少なくともDL(k)個以上の長さT(すなわちT個の波形サンプルを順に格納できるだけの長さ)が割り当てられているものとし、上記の「t番目」や「t−DL(k)番目」とは「t mod T」や「t−DL(k) mod T」を示すものである。さらに、どの交点にも割り当てられていない遅延処理kについては、ステップ(4)を、波形サンプルをM出力レジスタjでなく無意味な位置に足し込む処理コードにしておくものとする。
次に、PC130でオンラインモードに切換えたときの全体の動作について説明する。ユーザが図4のミキサ構成を作成しオンラインモード切換えボタン401をオンしたとする。このとき、PC130ではオンラインモード切換えルーチンがCPUにより実行され、また該オンラインモード切換えルーチンによりエンジン100に対してオンラインモードへの切換え指示が送出され、これによりエンジン100ではエンジン側のオンラインモード切換えルーチンがCPU101により実行される。以下、これらのルーチンによるPC130とエンジン100の動作概要を説明する。
PC130は、RAM中のコンフィグデータ(図3(b))をコンパイルしてエンジン100に転送する。現コンフィグのCFデータは図4のミキサ構成のCADデータであり、この図4のミキサ構成のエンジン用CADデータがエンジン100に転送されることになる。またPC130は、図3(c)のカレントシーンのパラメータをエンジン100に転送する。図3(c)のカレントシーンのパラメータは、図5及び図6で説明したディレイ付きマトリクスミキサのパラメータ(上述の(P1)〜(P6))を含む。
エンジン100は、転送されたコンフィグデータをフラッシュメモリ102に図3(b)と同様のフォーマットで格納し、カレントポインタを設定し、転送されたカレントシーンのパラメータを図3(d)のカレントシーンに格納する。また、エンジン100は、図3(d)のマイクロプログラム形成バッファに、現コンフィグのエンジン用CADデータに基づくマイクロプログラムを生成し、DSPにロードする。ここではDSP201にロードするものとする。現コンフィグのミキサ構成にはディレイ付きマトリクスミキサが含まれるので、DSP201にロードするマイクロプログラムは、図7(a)のマイクロプログラムを含むものである。
マイクロプログラムのDSPへのロードと共に、エンジン100は、DSPに対して図7(b)及び(c)で説明した内部レジスタとMパラメータの領域の割り当てを実行する。また、DSP内のMパラメータの各値を設定する。具体的には、カレントシーンの上記(P6)のパラメータのうち、入力のオン/オフ情報とレベル設定値を図7(c)の入力パラメータ1〜8のIN_SW(i)とIN_LV(i)にコピーし、出力のオン/オフ情報とレベル設定値を図7(c)の出力パラメータ1〜8のOUT_SW(i)とOUT_LV(i)にコピーする。また、カレントシーンの(P1)と(P2)のパラメータを読み出し、図7(c)の交点パラメータi-jに対して、C_SW(i,j)=SW(i,j)、C_LV(i,j)=LV(i,j)となるようにコピーする。さらに、カレントシーンの(P5)と(P4)のパラメータを読み出し、図7(c)の遅延パラメータ1〜18に対して、DL(k)=DV(D(k))となるようにコピーする。これは、D(k)に格納されている交点(i,j)の遅延量DV(i,j)をDL(k)にセットすると言うことである。ただし、D(k)=(0,0)であるkについてはDV(0,0)=0とし、従ってDL(k)=0とセットする。
なお、ロードする図7(a)のマイクロプログラム中、(a)交点処理1−1〜8−8のうち、どこを交点処理i-j(挿入無し)とし、どこを交点処理i-j(Dk挿入)とするか、(b)交点処理i-j(Dk挿入)のステップ(4)で、どのD入力レジスタに波形サンプルを書込むか、(c)遅延処理kのステップ(3)のDL(k)の値、(d)遅延処理kのステップ(4)で、どのM出力レジスタに波形サンプルを足し込むか、はカレントシーン上のパラメータに基づいて決定されるものである。すなわち、ロードするマイクロプログラムを図3(d)のマイクロプログラム形成バッファに生成するとき、上記(a)〜(d)に係る部分を、カレントシーン上のパラメータに基づいて書き換える必要がある。なお、まずマイクロプログラムを最初に設定するときには、上記(a)〜(d)を決定して設定する必要があるが、その後のマイクロプログラム動作中でも、(1)ユーザが交点の遅延処理をオンオフしたり、(2)挿入した遅延処理の遅延量を変更したときは、それぞれ、(1)マイクロプログラムのその交点処理とその遅延処理の特定ステップを書き換えたり、(2)係数レジスタのその遅延処理の遅延量を書き換えるだけでその制御ができる。ここで、DSPのマイクロプログラムメモリに設定したマイクロプログラムは、DSPのマイクロプログラム実行中に、CPUにより1ステップ単位で独立して書き換えることができる。また、DSPの係数レジスタに設定したパラメータは、DSPのマイクロプログラム実行中に、CPUにより1パラメータ単位で独立して書き換えることができる。
上記(a)〜(d)は、具体的には以下のようにして決定される。まず上記(a)は、カレントシーンに格納されたディレイのオン/オフ情報DS(i,j)に基づいて決定される。ディレイがオフの交点(i,j)に関し、その交点処理(Dk挿入なし)ではM出力レジスタjに波形サンプルを書き込むように設定すればよい。上記(b)は、ディレイがオンの交点(i,j)に関し、当該交点(i,j)と同じ(i,j)を保持するD(k)のkを求める。kが決定されれば、当該交点(i,j)の交点処理i-j(Dk挿入)ではD入力レジスタkに波形サンプルを書込むようにすればよい。上記(c)は、MパラメータのDL(k)をDSPの係数レジスタにそのまま設定すればよいので、マイクロプログラムには影響を与えない。上記(d)は、遅延処理kが割り当てられている交点の(i,j)はDL(k)から判るので、当該遅延処理kでは該交点(i,j)の出力先であるM出力レジスタjに波形サンプルを書き込むようにすればよい。
図8(a)は、図5または図6の画面で交点(i,j)のディレイのオン/オフ切換え操作が行われたときに発生するディレイオンオフイベントの処理手順を示す。この処理は、PC130側の処理であり、図5の画面でディレイオン/オフモードとして交点(i,j)をクリックしたとき、または図6の画面で交点(i,j)のディレイボタンをオン/オフしたときに実行される。
ステップ801で、図3(c)のカレントシーン上のDS(i,j)が1か判定する。DS(i,j)=1なら、交点(i,j)のディレイオンからオフへの切換えであるから、ステップ802でDS(i,j)=0とする。ステップ803では、当該交点の位置を示す(i,j)を保持するD(k)を探し、該D(k)=(0,0)とする。ステップ804で、オンラインモードのときは、エンジン100に当該交点(i,j)のディレイをオフする指示を送信する。オフラインモードのときはステップ804はスキップする。ステップ805で表示を更新し、処理を終了する。ステップ801でDS(i,j)=0なら、交点(i,j)のディレイオフからオンへの切換えであるから、ステップ806で割り当てられていない遅延処理kを探す。割り当てられていない遅延処理が無いときはk=0とする。ステップ807でk=0のときは、ステップ811で警告表示をして終了する。ステップ807で割り当てる遅延処理kがあるときは、ステップ808で、DS(i,j)=1、D(k)=(i,j)とする。次にステップ809で、オンラインモードのときは、エンジン100に当該交点(i,j)のディレイをオンする指示を送信する。オフラインモードのときはステップ809はスキップする。ステップ810で表示を更新し、処理を終了する。なお、ステップ805や810の表示の更新は、ディレイのオン/オフ切換え操作に応じて、図5や図6の画面表示を更新する処理である。
ステップ804の交点(i,j)のディレイオフの指示を受けたエンジン100は、エンジン側のカレントシーン上でDS(i,j)=0、D(k)=(0,0)と設定すると共に、DSPの交点処理i-j(Dk挿入)を交点処理i-j(挿入無し)に書換え(ステップ(4)のみ書換えればよい)、遅延処理kのステップ(4)で波形サンプルをM出力レジスタjでなく無意味な位置に足し込むように書換える。また、ステップ809の交点(i,j)のディレイオンの指示を受けたエンジン100は、エンジン側のカレントシーン上でDS(i,j)=1、D(k)=(i,j)と設定すると共に、DSPの交点処理i-j(挿入無し)を交点処理i-j(Dk挿入)に書換え(ステップ(4)のみ書換えればよい)、遅延処理kのステップ(4)で波形サンプルをM出力レジスタjに足し込むように書換える。なお、エンジン100のCPU101は、信号処理部110のDSPにロードされたマイクロプログラムの任意の位置を書換えることができるものとする。
図8(b)は、図5または図6の画面で交点(i,j)のオン/オフ切換え操作が行われたときに発生するSWオンオフイベントの処理手順を示す。この処理は、PC130側の処理であり、図6の画面で交点(i,j)のオンボタンをオン/オフしたときに実行される。ステップ821でSW(i,j)を反転する。ステップ822で、オンラインモードのときは、エンジン100に当該交点(i,j)のオン/オフを反転する指示を送信する。オフラインモードのときはステップ822はスキップする。ステップ823で、交点(i,j)のオン/オフに応じて図6の画面を更新する。
ステップ822の交点(i,j)のオン/オフ反転指示を受けたエンジン100は、エンジン側のカレントシーン上でSW(i,j)を反転し、DSPの係数レジスタ内のMパラメータのC_SW(i,j)に、反転したSW(i,j)をコピーする。
なお、図8では交点のオン/オフと交点のディレイのオン/オフのフローを説明したが、図6の画面で何れかの交点のレベル変更または遅延量の変更の操作が為された場合、図8(b)と同様に処理すればよい。すなわち、PC130側では、当該操作に応じてカレントシーン上の送出レベルや遅延量を変更し、オンラインモードのときはエンジン100に指示を出し、PC130側の表示の変更を行う。エンジン100は、その指示を受けて、カレントシーン上の送出レベルや遅延量を変更し、図7(c)に示される係数レジスタのMパラメータも変更する。
上記実施形態では、図4〜図6で説明したように、1つのディレイ付きマトリクスミキサコンポーネントの中に、割り当て可能な所定数の遅延要素を取り込んでいるので、遅延要素を別コンポーネントとして配置し結線するのに比べて、入出力に関するDSPの内部レジスタや処理ステップなどのリソースを大幅に節約することができる。
上記実施形態では、1つのディレイ付きマトリクスミキサコンポーネントから1つのDSPで動作させるマイクロプログラムを生成しているが、1つのディレイ付きマトリクスミキサコンポーネントから複数のDSPで動作させるマイクロプログラムをそれぞれ生成するようにしてもよい。その場合、マトリクスミキサコンポーネントの全交点を、利用するDSPの数の集合に分け、各集合に含まれる交点の処理をそれぞれのDSPに受け持たせる。図9は、1つのディレイ付きマトリクスミキサコンポーネントから2つのDSPで動作させるマイクロプログラムをそれぞれ生成する制御画面の例である。このディレイ付きマトリクスミキサコンポーネントは32入力×16出力の大きさを持ち、各交点は集合901か902の何れかに分けられている。集合901は入力1〜入力16かつ出力1〜出力16の交点、集合902は入力17〜入力32かつ出力1〜出力16の交点を、それぞれ含むものである。この場合、集合901側だけで所定数の遅延要素を任意の交点に割り当て、集合902側だけで所定数の遅延要素を任意の交点に割り当てるようにする。そして、各集合ごとに図7で説明したようにマイクロプログラムを生成しそれぞれDSPにロードして動作させる。
なお、全交点を複数の集合に分割する場合、図9に示したように入力側で分割するのが良い。出力側で分割すると、1つの入力端子から入力した信号を処理した後、別のDSPの出力処理に信号を渡さなければならず、そのときにリソースを使ってしまう。図9のように入力側で分割すれば、1つの入力端子から入力した信号は1つのDSP内で出力処理まで行われるので、別のDSPに信号を渡すことなくディレイ付きマトリクスミキサコンポーネントの処理を終えることができる。
なお、上記実施形態では、PC130からミキサエンジン100へコンフィグデータを転送し、エンジン100でDSP用のマイクロプログラムやパラメータを作成したが、PC側でマイクロプログラムやパラメータを作成し転送しても良い。また、上記実施形態ではPCとミキサエンジンに分けたシステムで説明したが、一体的なシステムとして構成することもできる。さらに、上記実施形態では、DSPの遅延メモリアクセス回数の制限を超えるために、マトリクスミキサのディレイを交点に割り当てて使用するようになっていたが、本発明を、該DSPのアクセス回数を節約する目的に適用してもよい。
上記実施形態の音響信号処理システムはミキサエンジンとPCで構成されていたが、この構成には限定されない。例えば、1ないし複数のDSPを搭載したDSPカードを装着したPCとして、そのDSPカードで本発明の信号処理モジュールに対応するマイクロプログラムを実行するようにしてもよい。或いは、音響信号処理システムにおけるPCを、PCと同様の機能を備えたデジタルミキサやレコーディングシステムに置き換えても良い。また、ユーザインタフェースとしても、CAD画面上に配置されるコンポーネントとして制御する方式に限らず、ミキサ等で特定の複数チャンネル(実施例の8×8マトリクスミキサであれば8チャンネル)に挿入されるプラグインとして実現してもよい。
また、遅延量をサンプル単位で指定するようになっていたが、時間(ミリ秒などで指定)や拍数(テンポに応じて変化する)を単位として指定するようにしてもよい。
100…エンジン、101…中央処理装置(CPU)、102…フラッシュメモリ、103…RAM(ランダム・アクセス・メモリ)、104…PC入出力インターフェース(I/O)、105…MIDI I/O、106…その他I/O、107…表示器、108…操作子、109…波形I/O、110…信号処理部(DSP群)、120…システムバス、130…パーソナルコンピュータ(PC)、131…ミキサ制御プログラム、132…コンフィグデータ。