以下、図面を用いてこの発明の実施の形態を説明する。
図1は、この発明の一実施形態であるディジタルミキサのエンジンの構成を示す。このエンジン100は、中央処理装置(CPU)101、フラッシュメモリ102、RAM(ランダム・アクセス・メモリ)103、PC入出力インターフェース(I/O)104、MIDI I/O105、その他I/O106、表示器107、操作子108、波形I/O109、信号処理部(DSP群)110、カスケードI/O111、及びシステムバス120を備える。
中央処理装置(CPU)101は、このミキサ全体の動作を制御する処理装置である。フラッシュメモリ102は、CPU101や信号処理部110のDSPなどが使用する各種のプログラムやデータを格納した不揮発性メモリである。RAM103は、CPU101が実行するプログラムのロード領域やワーク領域に使用する揮発性メモリである。PC I/O104は、外部のパーソナルコンピュータ(以下、PCと言う)130を接続するインターフェース(例えば、LAN、USB、シリアルI/Oなど)である。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経由で出力する。カスケードI/O111は、他のディジタルミキサとカスケード接続するためのインターフェースである。カスケード接続することにより、入出力チャンネル数やDSP処理力を増やすことができる。
本ディジタルミキサのエンジン100では、信号処理部110で実現するミキサ構成をカスタムメイドすることができる。そのミキサ構成は、PC130上で動作する所定のミキサ制御プログラム131によりPC130の画面上で作成編集することができる。作成したミキサ構成を複数集めたものをコンフィグレーションと呼ぶ。ミキサ制御プログラム131は、ユーザの画面上での操作指示に応じて、コンフィグレーションをメモリ上にコンフィグデータ132として生成する。コンフィグデータ132は、PC130から書込み可能な任意の記憶装置にファイルとして保存できる。また、PC130側のメモリまたはハードディスクなどの記憶装置上のコンフィグデータの各ミキサ構成は、コンパイル(エンジン100が解釈できる情報に変換すること)した後、エンジン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側でコンポーネントの構成と結線は変更できない。変更すると自動的にオフラインモードになる。
なお、PC130によりコンフィグデータを作成編集するユーザは、エンドユーザに限らず、業者の場合もある。例えば、ある会場にミキサが設置された場合、その会場に業者が出向いて、そのミキサにPC130を接続し、当該PC130からその会場に合わせたミキサ構成のコンフィグデータなどを作成編集し、そのコンフィグデータなどをフラッシュメモリ102に格納する。この場合、ミキサはノンプログラマブル(エンドユーザに対してミキサ構成の作成編集を許可せず、エンドユーザは業者が作り込んだミキサ構成を呼び出して利用するだけ)でもよい。エンドユーザは、パネル上の操作子108を用いてフラッシュメモリ102に格納されたコンフィグデータのミキサ構成を読出し、そのミキサ構成のミキサとして動作させることができるので、動作時にPC130を接続する必要はない。もちろん、PC130を接続し、オンラインモードとして、そのPC130からの操作でミキサを制御することは可能である。
ミキサ制御プログラム131によるミキサ構成の作成編集は、具体的には、PC130のミキサ構成画面上で、P(プリセット)コンポーネントやC(カスタム)コンポーネントを配置して結線することにより行う。コンポーネント間に結線を引くことは、コンポーネント間の信号の入出力関係を定義することに相当する。なお、PコンポーネントとCコンポーネントを併せて、単にコンポーネントと呼ぶ。Pコンポーネントは、ミキサ構成を構成するための基本単位としてメーカーが用意した部品ブロックであり、例えば、オートミキサ、コンプレッサ、エフェクト、クロスオーバなどのオーディオプロセッサや、フェーダ、スイッチ、パン、メータなどの個々のパーツのコンポーネントが用意されている。C(カスタム)コンポーネントは、ユーザが作成編集したコンポーネントであり、複数のPコンポーネントあるいはCコンポーネントから構成される。
図2(a)は、PC130のミキサ制御プログラム131が使用するPコンポーネントデータ(PCデータ)の構成を示す。1つのPCデータは、1つのPコンポーネントを規定する定義データであり、ミキサ制御プログラム131がアクセスできる任意の記憶手段に予め格納されている。PCデータはPコンポーネントの種類毎に用意される。ここでは種類がNpc個あるものとする。Npc個のPCデータの全体に対して、Pコンポーネントセットのバージョンが付与されている。1つのPCデータは、PCヘッダ、PC構成情報、PC処理ルーチン、及び表示編集処理ルーチンからなる。PCヘッダは、PコンポーネントID(PC_ID)及びPコンポーネントバージョン(PC_Ver)などからなる。PC_IDとPC_VerによりPCデータを特定することができる。PC構成情報は、そのPコンポーネントがどのようなエレメントから構成されているかを示す情報(エレメントの順番も含む)であり、そのPコンポーネントの制御画面などの表示データを含む。エレメントとは、Pコンポーネントを構成する部品に相当する構成要素を言う。さらにPC構成情報は、そのPコンポーネントを構成する各エレメント毎のパラメータ項目構成情報(例えば、当該エレメントのパラメータが、単一の値、1次元配列、2次元配列のどのデータ形式であるかを示す配列情報、及び1要素のデータサイズなど)を含む。PC処理ルーチンは、PC構成情報に関する各種の処理を行なうためのプログラムである。ミキサ制御プログラム131がミキサ構成を処理する際には、Pコンポーネント毎のPC処理ルーチンを利用する。表示編集処理ルーチンは、後述するCFデータを作成編集する際に用いるプログラム群である。
図2(b)は、PC130のミキサ制御プログラム131が使用するCコンポーネントデータ(CCデータ)の構成を示す。CCデータは、Cコンポーネントを規定する定義データである。1つのCCデータは、CCヘッダ及びPC用CADデータからなる。CCヘッダは、CコンポーネントID(CC_ID)、Cコンポーネントバージョン(CC_Ver)、及びシステムバージョン(SYS_Ver)などからなる。CC_IDとCC_Verにより、CCデータを特定することができる。CCデータ内のPC用CADデータは、当該Cコンポーネントがどのようなコンポーネントをどのように結線して構成したものかを定義するデータであり、PコンポーネントやCコンポーネントを指定するデータであるCデータ及びそれらのコンポーネント間を結ぶ結線データからなる。また、CCデータ内のPC用CADデータは、後述する図7のCコンポーネント構成画面などの表示用データも含む。このCCデータに、さらに、Cコンポーネント用に作成したユーザ制御画面のデータを含めるようにしてもよい。
図2(b)に示したCコンポーネントデータは、所定の権限を持つユーザが任意に作成編集し所定の記憶装置に格納しておける。業者が提供したCCデータは、所定のインストール手順(例えばCCデータのファイルコピーなど)によりPC130内に取り込まれる。特に、業者がCCデータを提供する場合、CCデータの構成やパラメータ設定などでエンドユーザには見せたくない部分や編集させたくない部分もあるので、CCヘッダには当該業者のユーザID及びパスワード(エンドユーザには知らせないもの)並びに必要であれば業者プロテクトの内容をそれぞれ暗号化して格納しておく。そして、当該CCデータのPC用CADデータが示す構成の表示やその編集が指示されたときには、ログオンユーザが当該業者のユーザID及びパスワードを入力してログオンしているか判定し、そうでないときは当該CCデータの構成画面の表示や編集を認めないようにしている。エンドユーザが自ら作成したCCデータ、あるいは業者提供でもその業者がエンドユーザに自由に使うことを許可したCCデータは、CCヘッダの業者ユーザID及びパスワードは空欄であるので、エンドユーザは基本的に使用する権限がある。なお、業者プロテクト内容の欄にそのCCデータを提供した業者ユーザ以外のユーザに対する部分的な許可情報あるいは部分的な禁止情報を記載しておき、当該業者ユーザ以外のユーザに対して、当該CCデータに関し部分的に表示や編集を許可あるいは禁止するようにしてもよい。業者が提供したCCデータをその業者のみが操作できるように制御する方式の詳細については後に詳しく説明する。
図3(a)は、PC130において、ミキサ制御プログラム131によって処理されるRAM上のコンフィグデータの構造を示す。210がRAM上に展開されたコンフィグデータであり、複数のCFデータ1〜Ncf及びシーンメモリから構成される。このコンフィグデータ210の全体が1ファイルとして任意の記憶装置(例えば、PC内のハードディスクなど)に格納できる。逆に任意の記憶装置から読出したコンフィグデータをPC130のRAM上に210のような形式で展開することができる。CFデータ1〜Ncfにおいて、1〜Ncfの番号をコンフィグ番号(CFナンバ)と呼ぶ。コンフィグ番号によりCFデータ(あるいはそのCFデータが格納されている領域)を指定することができる。カレントポインタは、処理対象のCFデータを指すポインタである。カレントポインタが指すCFデータが、図6で後述するミキサ構成画面に表示される。カレントポインタが指すCFデータを「現コンフィグ」と呼ぶ。
1つのCFデータは、1つのミキサ構成を規定するデータであり、CFヘッダ、PC用CADデータ、Nps個のプリセット、及び所定個数のUCデータ(ユーザ制御画面データ)からなる。CFヘッダは、コンフィグID(CF_ID)、コンフィグバージョン(CF_Ver)、及びシステムバージョン(SYS_Ver)などからなる。CF_IDとCF_Verにより、CFデータを特定することができる。PC用CADデータは、当該CFデータのミキサ構成がどのようなコンポーネントをどのように結線して構成したものかを定義するデータであり、そのミキサ構成の構成要素として使用するPコンポーネントやCコンポーネントを指定するデータであるCデータ及びそれらのコンポーネント間を結ぶ結線データからなる。PC用CADデータは、後述する図6のミキサ構成画面の表示用データを含む。PC用CADデータ内のCデータは、PコンポーネントまたはCコンポーネントを指定するコンポーネントID(C_ID)とコンポーネントバージョン(C_Ver)、ユニークID(U_ID)、及びその他のデータ(例えば、プロパティなど)などからなる。CデータのC_IDとC_Verとしては、図2(a)のPCデータのPC_IDとPC_Verを指定してPコンポーネントを特定し、あるいは図2(b)のCCデータのCC_IDとCC_Verを指定してCコンポーネントを特定する。
次に、CFデータ中のプリセットについて説明する。1つのCFデータは複数のプリセットを含み(その数は任意である)、それら複数のプリセットをまとめて当該CFデータのライブラリと呼ぶ。プリセット1〜Npsにおいて、1〜Npsの番号をプリセット番号と呼ぶ。プリセット番号によりCFデータ中のプリセット(あるいはそのプリセットが格納されている領域)を特定することができる。プリセットは、それが含まれるCFデータのPC用CADデータのミキサ構成で使用する具体的なパラメータ値の組データを示す。上述したPC用CADデータによって1つのミキサ構成が規定されるが、実際にそのミキサ構成でディジタルミキサが動作する際には各コンポーネントに所定のパラメータを設定する必要がある。例えば、オートミキサであれば入力レベルと出力レベルなど、フェーダであればそのレベルなどのパラメータ値を設定する必要があるということである。プリセットは、そのような各コンポーネントが実際に動作する際に使用するパラメータ値のデータセットである。
1つのプリセットは、ヘッダ及び任意の数のC(コンポーネント)シーンからなる。プリセット中のCシーンの部分をパラメータデータセットと呼ぶ。パラメータデータセットのCシーンの並びの順序は、PC用CADデータ中のCデータの並びと対応している。図では、CデータAで特定されるコンポーネントのパラメータがCシーン3A、CデータBで特定されるコンポーネントのパラメータがCシーン3B、…である。1つのCシーンは、エレメントシーンの並びからなり、各エレメントシーンはパラメータシーンの並びからなる。プリセットのヘッダは、それに引き続くパラメータデータセットのデータ構造を保持する。
次に、UCデータについて説明する。UCデータは、ユーザ制御画面を規定するデータであり、所定の権限を持つユーザが任意に作成編集してCFデータ中に格納しておける。また、業者が提供したUCデータは、所定のインストール手順(例えばUCデータのファイルコピーなど)によりPC130内のCFデータ中に取り込まれる。上記CCデータと同様に、業者がUCデータを提供する場合、その業者が後で自己が使いたいためだけに提供するユーザ制御画面や、画面上には見せるがエンドユーザには変更されたくないパラメータを含むユーザ制御画面の場合がある。そこで、図2(b)に示したCCデータと同様に、業者提供されるUCデータには当該業者のユーザID及びパスワード並びに必要であれば業者プロテクトの内容をそれぞれ暗号化して格納しておく。そして、当該UCデータのユーザ制御画面の表示やその編集が指示されたときには、ログオンユーザが当該業者のユーザID及びパスワードを入力してログオンしているか判定し、そうでないときは当該UCデータの構成画面の表示や編集を認めないようにしている。エンドユーザが自ら作成したUCデータ、あるいは業者提供でもその業者がエンドユーザに自由に使うことを許可したUCデータは、UCデータ中の業者ユーザID及びパスワードは空欄であるので、エンドユーザは基本的に使用する権限がある。なお、業者プロテクト内容の欄にそのUCデータを提供した業者ユーザ以外のユーザに対する部分的な許可情報あるいは部分的な禁止情報を記載しておき、当該業者ユーザ以外のユーザに対して、当該UCデータに関し部分的に表示や編集を許可あるいは禁止するようにしてもよい。業者が提供したUCデータをその業者のみが操作できるように制御する方式の詳細については後に詳しく説明する。
次に、シーンメモリについて説明する。シーンメモリにはNs個(個数は任意)のシーン1〜Nsが格納される。1〜Nsの番号をシーン番号と呼ぶ。シーン番号で、各シーンが格納されている領域あるいはその領域に格納されたシーンを特定することができる。1つのシーンは、コンフィグ番号、プリセット番号、セキュリティレベル、及びオーナーIDなどを備える。ユーザは、シーン番号を指定してシーンを呼び出す(これをシーンのリコールと言う)ことができる。シーンのリコールが指示されると、当該シーンのコンフィグ番号のCFデータが現コンフィグとなるようにカレントポインタがセットされ、当該CFデータが後述するミキサ構成画面(図6)に表示され、当該シーンのプリセット番号のプリセットが読み込まれてカレントシーン(図3(b)で後述)にセットされる。逆に、ユーザは、現コンフィグ及び現カレントシーンを、シーン番号を指定してシーンメモリに保存することもできる(これをシーンのストアと言う)。セキュリティレベルやオーナーIDについては、図12で詳しく説明する。
図3(b)は、PC130においてミキサ制御プログラム131によって処理されるRAM上のその他データの構造を示す。カレントシーンは、現コンフィグのミキサ構成で設定されているパラメータデータセット、すなわち現コンフィグの各コンポーネントの現在のパラメータ値(カレント値)を示す。カレントシーンのアクセスルーチンは、カレントシーンへのアクセス機能を提供するメソッドである。エンジン用CADデータ形成バッファは、CFデータをコンパイルしたとき、PC用CADデータからエンジン用CADデータを生成するバッファである。
図4(a)は、ミキサエンジン100内のフラッシュメモリ102に予め格納されているPコンポーネントデータ(PCデータ)の構成の一部を示す。このPCデータは、図2(a)に示したPC側のPCデータの構成とほとんど同じであり、図2(a)における説明もそのまま適用できるので、図4(a)では異なる部分のみを示した。すなわち、エンジン100側では、図2(a)の表示編集処理ルーチンの部分が、図4(a)のPCマイクロプログラムに置き換わる。エンジン100では、ミキサ構成画面や制御画面の表示はできないので、その表示編集のための表示編集ルーチンは不要である。その代わり、エンジン100では、エンジン用CADデータのミキサ構成に応じたマイクロプログラムを形成してDSP群に送る必要があるため、図4(a)のような各コンポーネント対応のPCマイクロプログラムが必要である。PCマイクロプログラムは、指定される可能性のある入出力数のバリエーション分のマイクロプログラムが全て用意されているものとする。また図示しないが、PC処理ルーチンは、エンジン中で各構成情報を処理するための各種のプログラムであるものとする。
図4(b)は、エンジン100のフラッシュメモリ102上のコンフィグデータの一部を示す。このデータは、図3(a)に示したPC内のコンフィグデータの構成とほとんど同じであり、図3(a)における説明もそのまま適用できるので、図4(b)は異なる部分のみを示した。すなわち、エンジン100側では、図3(a)のPC用CADデータの部分が、図4(b)のエンジン用CADデータに置き換わる。エンジン用CADデータは、ミキサ構成画面で示されるようなミキサ構成を表すデータである点はPC用CADデータと同じだが、エンジン内では表示のためのデータは不要であり、またデータ量を少なくするため、表示データを含まずバイナリ形式で表現されている。エンジン用CADデータは、コンパイルにより図3(b)のエンジン用CADデータ形成バッファ上に生成されたものである。エンジン100側もカレントポインタを有し、カレントポインタが指すCFデータが「現コンフィグ」である。なお、エンジン側ではCコンポーネントの概念はなく、PC側でCコンポーネントを含むCFデータは、コンパイル時に当該Cコンポーネントの部分が最下層のPコンポーネントに展開される。従って、図4(b)のエンジン用CADデータ中のCデータは、すべてPCデータを指すものとなっている。さらに、エンジン側ではユーザ制御画面の表示はできないので、エンジン側のCFデータは図3(a)のUCデータ1,2,…を持たない。
図4(c)は、エンジン100のRAM103上のその他データを示す。カレントシーンは、エンジン側で、現コンフィグのミキサ構成に設定されているパラメータデータセットであり、図3(b)に示したPC側のカレントシーンと同様のデータである。図3(b)のカレントシーンの説明は、図4(c)のエンジン側のカレントシーンにも適用できるものである。図4(c)では図示していないが、アクセスルーチンを用意する点も同じである。マイクロプログラム形成バッファは、ミキサ構成に応じたマイクロプログラムを形成するために使用するバッファである。カレントポインタが切り換えられると、新たに現コンフィグとなったCFデータのエンジン用CADデータのミキサ構成を実現するマイクロプログラムがマイクロプログラム形成バッファ上に展開され、そのマイクロプログラムが信号処理部110に転送される。これにより、信号処理部110のDSP群は現コンフィグのCADデータのミキサ構成の動作を実現する。また、新たにカレントシーンが読み込まれたとき、あるいはカレントシーンが変更されたときには、自動的に、当該カレントシーンが信号処理部110に転送される。信号処理部110は、転送されたカレントシーンをDSP群の係数メモリに展開する。信号処理部110のDSP群は当該係数メモリの係数を使用して上記転送されたマイクロプログラムを実行し、これにより信号処理部110は、現コンフィグのエンジン用CADデータのミキサ構成で、かつカレントシーンのパラメータデータセットでの動作を実現する。
エンジン100のフラッシュメモリ102に図4(b)で説明したようにコンフィグデータを格納する方法は任意であるが、通常はPC130にてオンラインモードを指定することにより行う。PC130でオンラインモードを指定すると、図3(a)に示したRAM上のコンフィグデータ210の各CFデータがそれぞれコンパイルされてエンジン100に転送され、さらにシーンメモリの内容もエンジン100に転送される。エンジン100では、転送されてきたCFデータとシーンメモリの内容を図4(b)で説明したようにフラッシュメモリ102に格納する。これにより、PC130とエンジン100とでコンフィグデータが一致した状態となる。さらに、オンラインモードでは、図3(b)のPC130側のカレントシーンが転送されて、図4(c)のエンジン100のカレントシーンに格納され、そのアクセスルーチンが準備される。以上のようにして、オンラインモードでは、PC130とエンジン100とが完全に同期した状態となり、PC130側のカレントシーンが変更されるとその変更がエンジン100のカレントシーンに反映される。
なお、フラッシュメモリ102は不揮発性であるので、格納されたコンフィグデータはエンジンの電源がオフされても保持される。一旦、コンフィグデータをフラッシュメモリ102に格納した後は、PC130をエンジン100に接続しなくても、エンジン100単独で、シーン番号を指定してシーンを呼び出したり(これによりカレントのミキサ構成(CFデータ)を切り換えることができる)、カレントシーンのパラメータ値を変更したり、カレントのミキサ構成とカレントシーンを任意のシーン番号を指定してそこに保存することができる。
図5(a)は、ミキサ制御プログラム131が起動されたときに最初に表示されるログオン画面500を示す。501はユーザ名入力領域、502はパスワード入力領域、503はOKボタン、504はキャンセルボタンを示す。ユーザがユーザ名とパスワードを領域501,502に入力し、OKボタン503を押下すると、次に説明する基本画面510が表示される。
図5(b)は、ユーザがPC130上でミキサ制御プログラム131に適正にログオンしたときに最初に表示される基本画面510を示す。基本画面510では、ミキサエンジン100の接続状況に応じた初期画面が表示される。ここでは1台のエンジン1のみを備えた構成であるので、該エンジン1に対応するブロック511が表示されている。なお、複数のエンジンをカスケード接続した構成とすることもでき、その場合は、各エンジンに対応するブロックが結線されて表示される。514は、エンジン1を示すブロック511の上にマウスカーソルを置きマウスの右ボタンをクリックしたときに表示されるメニューを示す。この右クリックメニュー514または基本画面510の上部にあるメニューを利用して、当該PC130に接続されているエンジンのミキサ構成に関する各種の処理を進めていくことができる。
右クリックメニュー514で「制御画面を開く」を選択すると、図8(a)や(b)のようなユーザ制御画面800,810が表示される。なお、1つのCFデータにおいて幾つのユーザ制御画面が定義できるかは任意であるが、この実施形態では2つ定義をしたものとして説明する。右クリックメニュー514の「プロパティ」で開かれる各エンジンのプロパティ画面では、それぞれ、そのエンジンの制御画面として複数のユーザ制御画面の何れか1つを設定可能である。そして、右クリックメニュー51で「制御画面を開く」を選択すると、当該エンジンの制御画面として設定されたユーザ制御画面が開かれる。一方、右クリックメニュー514で「構成画面を開く」を選択すると、図6のような当該エンジンのミキサ構成画面600が表示される。右クリックメニュー514で「開く」を選択すると、制御画面またはミキサ構成画面の何れかが表示される。どちらの画面が開かれるかは、制御画面と同じく各エンジンのプロパティ画面で設定される。なお、上記右クリックメニュー514からの操作と同じ指示を、基本画面510の上部にあるメニューを利用して行うことができる。また、エンジンを示すブロック511をダブルクリックすると、右クリックメニュー514で「開く」を選択したのと同じ処理が為される。
図6のミキサ構成画面600は、エンジン1においてカレントポインタが指すCFデータ(現コンフィグ)のミキサ構成を示す画面である。ミキサ構成画面600では、現コンフィグに基づいて、構成要素であるPまたはCコンポーネントが表示され、各構成要素間の入出力関係を規定する結線で結ばれている。601と606は、エンジン1への入力端子及び出力端子を表す要素である。602と607は、複数台のエンジンをカスケード接続するときに使用する端子を表す要素である。603と604はCコンポーネント、605はPコンポーネントを示す。表示されているこれらのPまたはCコンポーネントは、現コンフィグのPC用CADデータのCデータで特定されるコンポーネントであり、図2(a)のPCデータや図2(b)のCCデータに対応している。ミキサ構成画面600において当該ミキサ構成を作成編集すると、その作成編集は現コンフィグに反映される。
Cコンポーネントを示す要素603や604を右クリックすると、図5(b)の514と同様の右クリックメニューが表示され、基本画面510での操作と同様にして、図8(a)や(b)のユーザ制御画面や図7のCコンポーネント構成画面を開くことができる。Pコンポーネントを示す要素605を右クリックすると、やはり同様の右クリックメニューが表示される。ただし、Pコンポーネントの構成画面はないので「構成画面を開く」の選択肢はない。また、「制御画面を開く」の制御画面は、エンジンやCコンポーネントのブロックを右クリックしたときは「ユーザ制御画面」の意味であるが、Pコンポーネントの右クリックメニューの「制御画面を開く」は、当該Pコンポーネント用にメーカーが用意した固有の制御画面(図2(a)のPC構成情報内にあるもの)を開くという意味である。Pコンポーネント用制御画面には、当該Pコンポーネントの各種のパラメータ項目の値の設定変更を行うための操作子が設けられており、それらの操作子を操作すると、その操作に応じて、カレントシーン内の当該操作子に対応するパラメータの値が変更される。
図7のCコンポーネント構成画面700は、図6で表示されているCコンポーネント604のCコンポーネント構成(PC内カレントメモリに読み込まれているCCデータ)を示す画面の例である。Cコンポーネント構成画面700では、ミキサ構成画面600と同様に、カレントメモリ上のCCデータに基づいて、当該Cコンポーネントの構成要素であるPまたはCコンポーネントが表示され、各構成要素間の入出力関係を規定する結線で結ばれている。701と705は、このCコンポーネントへの入力端子及び出力端子を表す要素である。702〜704は、PまたはCコンポーネントを示す。表示されているこれらのPまたはCコンポーネントは、カレントメモリ上のCCデータのPC用CADデータのCデータで特定されるコンポーネントであり、図2(a)のPCデータや図2(b)のCCデータに対応している。Cコンポーネント構成画面で作成編集中のカレントメモリ上のCコンポーネントの保存を指示すると、その時点で表示されているCコンポーネントの構成を表すCCデータが、図2(b)で説明した形式かつ指定したファイル名で任意の記憶手段に記憶できる。逆に、任意の記憶手段に記憶されている図2(b)の形式のCCデータを開くと、当該CCデータがカレントメモリに読み込まれ、当該CCデータに対応するCコンポーネント構成画面が図7のように表示され編集できるようになる。
図8(a)及び(b)に示したユーザ制御画面について説明する。ユーザは、1つのCFデータにおいて任意の数のユーザ制御画面を作成することができる。既存のユーザ制御画面を編集するときには、例えば、そのユーザ制御画面を右クリック(例えば、背景部分の右クリック)したときに現れる右クリックメニュー(図示せず)の中から「編集モード」を選択することにより、そのユーザ制御画面を通常モードから編集モードに移行させ、その編集モードのユーザ制御画面のウィンドウに、当該ミキサ構成あるいはCコンポーネントの構成要素であるPコンポーネントの制御画面から操作子などをドラッグ&ドロップすることによりコピーして配置し、ウィンドウ上の位置、操作子の色、大きさ、形状などの種々の編集を施すなどして作成する。例えば図8(a)のユーザ制御画面800は、図6のエンジン1のミキサ構成画面に表示されている何れかのコンポーネントの制御画面を開き、その制御画面から、操作子801や表示要素802をドラッグ&ドロップして作成したものである。図8(b)のユーザ制御画面810も、同様に、図7のCコンポーネント構成画面に表示されている何れかのコンポーネントの制御画面を開き、その制御画面から、メータ811、操作子(つまみ)812、及び表示要素813をドラッグ&ドロップして作成したものである。ここで、ユーザ制御画面に配置される操作子や表示要素のコピー元は、そのユーザ制御画面が属するCFデータの何れかのエンジンのミキサ構成の構成要素であるPコンポーネント、あるいはそのミキサ構成に配置されたCコンポーネントの構成要素であるPコンポーネントの制御画面である。他のCFデータのミキサ構成の構成要素であるPコンポーネントの制御画面からはコピーすることができない。所望の編集が完了したら、ユーザ制御画面を右クリックしたときに現れる右クリックメニュー(図示せず)の中から「通常モード」を選択することにより、編集モードから通常モードに戻すことができる。なお、ユーザ制御画面の作成方法は、ここで説明したものに限らない。通常モード時にユーザ制御画面内の操作子を操作すると、その操作に応じて、カレントシーン内の当該操作子に対応するパラメータの値が変更される。
上述の図5〜図8では、ログオンしたユーザが全ての操作を実行可能な権限を持つものとして説明した。実際には、図1のミキサ100及びミキサ制御プログラム131は複数のユーザに使用されることを想定し、各ユーザの使用権限を管理している。以下では、そのような使用権限の設定(セキュリティ設定)について説明する。
図9は、セキュリティ設定(Security Setting)ダイアログ900の画面例を示す。このダイアログ900により、本システムのディジタルミキサにおけるユーザの登録・変更・削除及びアプリケーション機能のセキュリティ設定を行う。ダイアログ900は、PC130上で所定の操作(例えば基本画面510でのメニュー選択など)で呼出すことができる。本システムのユーザ(アカウント)は、後述する階層構造の中に組入れられる。従って、ユーザ間には、その階層構造の中で上位・同位・下位の関係がある。あるユーザから見て、下位方向に辿れるユーザを「下位のユーザ」、上位方向に辿れるユーザを「上位のユーザ」と呼ぶ。ログオンユーザのうち、後述するグループのオーナー以上の権限を有するユーザは、本ダイアログ900により、自分より下位のユーザのアカウントを編集することができる。ログオンユーザより上位のユーザを作成したり、ログオンユーザ自身のアカウントを編集したりすることはできない。なお、このダイアログ900で作成されたユーザアカウントのデータは、ミキサ制御プログラム131の初期設定ファイル(図示せず)に保存される。この初期設定ファイルは、コンフィグデータのファイルとは別なので、別のコンフィグデータを読み込んでも、ユーザアカウントの設定は変らない。
ダイアログ900において、Enable Auto Log Onチェックボックス901は自動ログオン機能の有効・無効を切替えるためのものである。これをオン(チェック)すると、自動ログオン機能(ログオン時にパスワードを入力せずにログオンできる)が有効になる。このチェックを外す際には、現在ログオンしているユーザのパスワードの入力を要求するダイアログが表示される。これは、パスワードを紛失・失念した状態で自動ログオン機能を無効にして、再ログイン不可能な状態に陥ってしまうのを防ぐためである。Auto Log Onユーザコンボボックス902は、Enable Auto Log Onチェックボックス901がオンされたとき、自動ログオンユーザを指定するためのコンボボックスである。自動ログオン機能無効時は無効表示される。また、ログオンユーザ以上のユーザレベルの人を選択することはできない。
User List903は、登録されているユーザに関する各種の情報を表示・編集する領域である。User Listビュー904には、現在登録されているユーザの名前のリストの階層構造が表示される。最上位ユーザは、Administratorである。本システムの工場出荷時には、Administratorのみがユーザとして登録されているものとする。Supervisor AとSupervisor BはAdministratorの下位、Operator AとOperator BはSupervisor Bの下位、SupportはOperator Aの下位のユーザである。Administratorは、所定の操作を行うことにより、この階層構造の中の任意のユーザを、後述するグループのオーナーに設定することができる。例えば、Supervisor AとSupervisor Bがオーナーとして設定されたものとする。オーナーとして設定されたユーザは、自分(ログオンしたユーザ名)の下位のユーザに関する編集ができる。User Listビュー904に表示されている中から任意にユーザ名を選択すると、選択された名前のユーザが編集対象となる。編集とは、Add Userボタン906によるユーザの追加、Remove Userボタン907によるユーザの削除、Changeボタン908によるユーザの名前その他の変更、Operation Security905の各チェックボックス951のオン/オフ及びScene Store/Recall LevelやUser Control Level952のレベル設定などである。なお、オーナーとして設定されたログオンユーザであっても、User Listビュー904に表示された階層構造の中で、そのログオンユーザから下位方向に辿れないユーザについては、そのユーザがログオンユーザより下位にあるとは言えず、そのユーザのアカウントを編集することはできない。例えば図9では、Operator BはSupportを編集することはできない。また、オーナーとして設定されたユーザより上位のユーザは、そのユーザ(自分)から下位に辿れる全てのユーザのアカウントを編集することができる。
あるユーザに対して、そのユーザから下位に辿っていって行き着く全てのユーザを前記ユーザの「配下」のユーザと呼ぶものとする。また、User Listビュー904に表示されたユーザの階層において、オーナーに設定されたユーザ及びその配下の全てのユーザを1つの「グループ」と定義し、そのオーナーに設定されたユーザはそのグループのオーナーとなる。オーナーとして設定されたユーザから上位方向または下位方向に辿れる別のユーザをオーナーとして設定することはできない。つまり、別々のグループは、それらのグループを構成するユーザが互いに重ならないようになっている。なお、図9の画面のUser Listビュー904では、オーナーに設定されたユーザとそのグループのメンバの表示色を変えたり下線を付けることで、オーナー及びグループ分けの状態が一目で分かるようになっている。
図10は、図9のセキュリティ設定ダイアログ900での表示態様を示す。図10(a)及び(b)において、「ツリーで選択されたユーザ」の列は、User Listビュー904で選択された編集対象のユーザを示す。「Add Userボタン」、「Remove Userボタン」及び「Changeボタン」の列は、それぞれのボタン906〜908がどのように表示されるかの態様を示す。「各チェックボックス」の列は、図9の951に示す各チェックボックスの表示態様を示す。「各セキュリティレベル設定部」の列は、図9の952に示す各セキュリティレベル設定部の表示態様を示す。
図10(a)は、ログオンユーザがオーナーとして設定されているSupervisor Bである場合を示す。この場合、Supervisor Bより上位または同位のユーザであるAdministratorまたはSupervisor Aが選択されたときには、何れもAdd Userボタン906、Remove Userボタン907、及びChangeボタン908は「グレーアウト」、すなわち操作できない無効なボタンとして表示される。各チェックボックス951と各セキュリティレベル設定部952は、どのように設定されているかは表示されるが、「グレーアウト」表示され操作はできない。ログオンユーザであるSupervisor Bが自分自身を選択したときには、Add Userボタン906は操作可能な「有効」なボタンとして表示されるが、それ以外は「グレーアウト」表示され操作はできない。Supervisor Bの配下のユーザであるOperator A、Operator B、またはSupportが選択されたときには、Add Userボタン906、Remove Userボタン907、及びChangeボタン908は何れも「有効」なボタンとして表示される。各チェックボックス951は、基本的には「有効」表示され操作可能だが、編集対象のユーザの直ぐ上のユーザ(直上ユーザ)に権限が与えられていない項目については×印が「グレーアウト」表示され操作不可である。例えば、Supervisor BのView DSP Design Windowの項目がチェックオフの場合、Operator A(および、Support)ユーザの同項目のチェックボックスは×印の「グレーアウト」表示となる。各セキュリティレベル設定部952は、基本的には「有効」表示され操作可能だが、編集対象ユーザの直上ユーザに与えられているレベルより低い範囲内(レベル値で言えば、直上ユーザのレベル値より大きい値)で設定可能である。要するに、チェックされる項目については、直上ユーザに与えられている権限以下の範囲内、セキュリティレベルについては、直上ユーザに与えられている権限より低く、直下ユーザに与えられている権利より高い範囲内で、それぞれ、配下のユーザに権限を与えることができる。
図10(b)は、ログオンユーザがAdministratorである場合を示す。この場合、Administrator自身が削除されないように、Remove Userボタン907が「グレーアウト」表示され操作はできない。それ以外はすべて「有効」表示され操作可能である。
図9に戻って、各ボタンやチェックボックスなどで設定変更できる内容を説明する。
有効表示されているAdd Userボタン906をクリックすると、選択状態にある編集対象のユーザの直下に新規ユーザを追加することができる。図11は、Add Userボタン906をクリックしたときに表示されるAdd Userダイアログ1100を示す。Name欄1101には、追加すべきユーザ名を入力する。Password欄1102には、追加するユーザがログイン時に使用するパスワードを入力する。Confirm Password欄1103は、パスワードの誤入力を防止する為に再度入力させる欄である。Startup User Controlチェックボックス1104は、追加するユーザのStartup User Controlのオン/オフを設定する。Startup User Controlがオンのユーザについては、そのユーザがログオンまたは現コンフィグを切替えたとき、ユーザ制御画面が自動的に開かれる。ただし、詳しくは後述するが、開こうとしているCFデータのユーザ制御画面のうち、そのユーザ制御画面に設定されているSecurity Levelが当該ユーザのUser Control Levelと同等あるいは下位の場合のみ(値で言えばSecurity Level≧User Control Level)、そのユーザ制御画面が開かれる。なお、新規ユーザを追加するときには、デフォルトとして、各チェックボックス951は何もチェックされていない状態とし、各セキュリティレベル設定部952は編集対象のユーザのScene Store/Recall Level及びUser Control Levelにそれぞれ1加えた値(1つ低いレベル)とする。後述するがこれらのレベル値は10が最下位のレベルに対応するので、編集対象のユーザのScene Store / Recall LevelまたはUser Control Levelが10の場合はその下に新しいユーザを作成できないものとする。
図9で、有効表示されているRemove Userボタン907をクリックすると、編集対象のユーザが削除される。この場合、その配下のユーザも同時に削除される。有効表示されているChangeボタン908をクリックすると、Change User Informationダイアログが開き、編集対象のユーザの情報を変更することができる。Change User Informationダイアログは、図11に示したAdd Userダイアログと同内容・機能のダイアログである。
Operation Security905の各チェックボックス951は、何れも、チェックをオンすると当該権限が編集対象のユーザに与えられたことを意味し、チェックをオフするとその権限が与えられていないことを意味する。Editチェックボックスは図6のミキサ構成画面によるミキサ構成の作成編集や図7のCコンポーネント構成画面によるCコンポーネントの作成編集や図8(a)(b)のようなユーザ制御画面の作成編集を行う権限、View DSP Design WindowチェックボックスはCコンポーネント構成画面やミキサ構成画面の表示を行なう権限、Control Component EditorチェックボックスはPコンポーネントの制御画面やユーザ制御画面でパラメータの設定変更を行う権限、View Component Editorチェックボックスはそれらの制御画面の表示の権限、Change Configurationチェックボックスは現コンフィグの切替えすなわちカレントポインタの変更(現コンフィグの切替えを伴うシーンの切替えを含む。編集対象のユーザが、誤ってCFデータを切替えてしまうのを防ぎたい場合にオフする。)を行う権限、Synchronizationチェックボックスは、ミキサ制御プログラム131とミキサエンジン100とを、それらのコンフィグデータとカレントシーンが相互に同期した状態で動作するモードであるオンラインモードに切替える権限を、それぞれオン/オフするチェックボックスである。
セキュリティレベル設定部952のScene Store/Recall Levelは、シーンのストア及びリコールを行う権限をレベル値で設定する。1から10のレベルが設定できる。レベル1が最も強い上位の権限、レベル10が最下位の権限を示す。後述するがシーンメモリ中の各シーンにはそれぞれSecurity Level(詳しくはEdit SecurityとRecall Security)が設定されており、ログオンユーザがシーンのストア/リコールを行おうとするときには、該ユーザのScene Store/Recall Levelとストア/リコールしようとするシーンのSecurity Levelとが比較される。Scene Store/Recall LevelがEdit Securityより上位または同位のレベル(レベル値ではScene Store/Recall Level≦Edit Security)のとき、そのストアが可能であり、それ以外のときはストア不可である。また、Scene Store/Recall LevelがRecall Securityより上位または同位のレベル(レベル値ではScene Store/Recall Level≦Recall Security)のとき、そのリコールが可能であり、それ以外のときはリコール不可である。
User Control Levelは、図8(a)及び(b)で説明したユーザ制御画面を表示(及びその操作)する権限をレベル値で設定する。1から10のレベルが設定できる。レベル1が最も強い上位の権限、レベル10が最下位の権限を示す。後述するように各ユーザ制御画面にはそれぞれSecurity Levelが設定されており、ログオンユーザがユーザ制御画面を表示しようとするときには、該ユーザのUser Control Levelと表示しようとするユーザ制御画面のSecurity Levelとが比較される。User Control LevelがSecurity Levelより上位または同位のレベル(レベル値ではUser Control Level≦Security Level)のとき、そのユーザ制御画面の表示が可能であり、それ以外のときは表示されない。Scene Store/Recall LevelとUser Control Levelの何れかのレベル値が最下位のレベル値10となったユーザの下位には新たなユーザを作成できない。すなわち、そのユーザが編集対象となった場合はAdd Userボタン906が「グレーアウト」表示される。先述したように各ユーザに設定できるレベルはその直上ユーザより低いレベルに制限されているので、この2つのレベル値のうちの低い方の値によって、そのユーザから下位方向に向かって作成できるユーザ数が制限される。
なお、各チェックボックス951の設定は、各セキュリティレベル設定部952の設定より優先する。例えば、User Control Levelがどのように設定されていたとしても、View Component Editorチェックボックスがオフされていたら、制御画面の表示の権限はないということである。
あるユーザの各チェックボックス951の何れかをオフ(権限の無効化)する設定が行われた場合、そのユーザの配下のユーザにおいてそのチェックボックスがオンされていたら、それを自動的にオフするものとする。また、あるユーザの各セキュリティレベル設定部952の何れかのセキュリティレベルを所定値まで下げる設定が行われた場合、そのユーザの直下のユーザにおいてそのセキュリティレベルが前記所定値以上であったら、それを自動的に前記所定値の一つ下のレベルまで下げるものとする。さらに、その直下ユーザの直下に別のユーザが居た場合は、同様に、その別のユーザのレベル値を直下ユーザのレベル値より低い値となるように制限する。このようにして、ユーザの階層構造では、各ユーザが、その直上のユーザより下の権限を持ち、かつ、その直下のユーザより上の権限を持つというルールを確立させている。この階層構造では、あるユーザの権限を制限する操作を行なうことにより、同時にそのユーザの配下の全ユーザの権限を制限することができる。
図12は、シーンメモリ管理(Scene Memory Manager)ダイアログ1200の画面例を示す。このダイアログ1200により、図3(a)で説明したシーンメモリの内容の編集を行う。ダイアログ1200は、PC130上で所定の操作で呼出すことができる。
Scene Memoryビュー1201にはシーンメモリの内容が表示される。1行が1シーンに相当し、最大で999シーンを登録できる。行を選択することにより(選択された行は1211のように反転表示される)、操作対象のシーンを選択する。Scene No.の列はシーンナンバ、Nameの列はシーン名(ない場合は[No Data]と表示)、Configの列はコンフィグ番号、オーナーIDの列は当該シーンが属するグループのオーナーのユーザID(後に詳述する)、Edit Securityの列はシーンの編集(及びストア)機能のセキュリティレベル、Recall Securityの列はシーンのリコール機能のセキュリティレベルを、それぞれ表示する。選択したシーンにおいて、Scene No.以外の項目を編集することができる。ただし、Edit SecurityとRecall Securityは、ログオンユーザのScene Store/Recall Levelより上位のレベルに設定することはできない。また、そもそもログオンユーザの属するグループのシーンでないシーンや、ログオンユーザのScene Store/Recall Levelより上位のEdit Securityを持つシーンに対して、そのログオンユーザは編集を行うことはできない。例えば、シーン1211のEdit Securityは3であるので、ログオンユーザのScene Store/Recall Levelが1〜3の場合のみシーン1211の編集が可能であり、その場合、Edit SecurityとRecall SecurityはログオンユーザのScene Store/Recall Levelの値から10までの範囲で変更可能である。
Presetビュー1203には、現コンフィグに含まれるプリセット番号が一覧表示される。プリセット番号の前のラジオボタンがオンされているものが、選択されたシーンに格納されているプリセット番号である。ログオンユーザに当該シーンの編集の権限があれば、このラジオボタンをクリックすることで、当該シーンのプリセットを変更することができる。Presetビュー1203において、プリセットを削除することもできる。ただし、使用しているプリセットを削除することはできない。また、プリセットを全部削除することはできず、必ず一つは存在するようになっている。なお、ここではコンフィグ番号とプリセット番号を用いたが、ユーザにとって分かりやすくするためコンフィグ名やプリセット名で特定するようにしてもよい。
1205は、シーンの編集を行うためのCut、Copy、Paste、Insert、及びClearなどのボタン、並びに、プリセットの編集を行うためのRename、Delete、Store、及びNewなどのボタンを示す。Storeボタン1206をクリックすると、現コンフィグ及び現カレントシーンが、選択されているシーンに、格納される。Recallボタン1207をクリックすると、選択されているシーンが現コンフィグ及び現カレントシーンとして読み込まれる。
なお、図3(b)で説明したカレントシーンは、Name、オーナーID、Edit Security及びRecall Securityの記憶領域を備えており、シーンリコールしたときにはこれらの記憶領域に当該シーンのName等が格納されるものとする。カレントシーンを何れかのScene No.としてストアするときには、上記記憶領域のName等が当該Scene No.のName等として書き込まれる。カレントシーンを初期化した場合はName等は無い状態なので、そのストア時には、Nameは所定のルールで適当に付け、オーナーIDはログオンユーザが属するグループのオーナーのユーザID、Edit SecurityとRecall SecurityはログオンユーザのScene Store/Recall Levelの値を設定するものとする。また、シーンのストア/リコールの際には、図9のセキュリティレベル設定部952で説明したように、ログオンユーザにそのストア/リコールを行う権限があるかをチェックするものとする。
図13は、ユーザ制御画面管理(User Control Manager)ダイアログ1300の画面例を示す。このダイアログ1300により、図8(a)及び(b)で説明したユーザ制御画面のセキュリティの編集を行う。ダイアログ1300は、PC130上で所定の操作で呼出すことができる。User Controlビュー1301には、ユーザ制御画面の名称(User Control)と、オーナーIDと、Security Levelが一覧表示される。ログオンユーザの属するグループのユーザ制御画面でない場合や、ログオンユーザのUser Control Levelより上位のSecurity Level(値で言えば、User Control Level>Security Level)を持つユーザ制御画面である場合は、そのユーザ制御画面のセキュリティの編集を行なうことができない。このダイアログ1300により、ユーザ制御画面の名称変更、新規作成(Newボタン1302による)、削除(Deleteボタン1303による)、オーナーIDの設定変更、及びSecurity Levelの変更を行うことができる。ただし、Security Levelは、ログオンユーザのUser Control Levelの値から10までの範囲で変更可能である。OKボタン1304でダイアログ1300での操作を有効にして終了し、キャンセルボタン1305で操作をキャンセルして終了する。
なお、Newボタン1302により新規作成が指示された場合は、操作子や表示要素が配置されていない新規のユーザ制御画面が編集モードで開かれ、ログオンユーザはそこからユーザ制御画面の編集を開始することができる。その際、そのユーザ制御画面のオーナーIDは、ログオンユーザが属するグループのオーナーのユーザIDに、また、Security Levelは、ログオンユーザのUser Control Levelに初期設定される。また、User Controlビューに表示されているユーザ制御画面の名称を選択し、所定の操作を行うことにより、当該ユーザ画面を編集モードで開くことができる。もちろん、ユーザ制御画面を編集する際には、ログオンユーザにその権限、すなわち、EditとView Component Editorのチェックボックスがオンかつそのユーザ制御画面のSecurity Level以上のUser Control Levelがあることをチェックする。
ここで、図12及び図13で表示されているオーナーIDについて詳しく説明する。図12の各シーンのオーナーIDは、そのシーンがそのオーナーIDのグループで共有されていることを示している。同様に、図13のUser Controlビュー1301のオーナーIDは、そのユーザ制御画面がそのオーナーIDのグループで共有されていることを示している。共有とは、そのグループに属する全ユーザにそのシーンやユーザ制御画面を使用・編集する基本的な権限を与えているということである(ただし、各ユーザのセキュリティレベルのチェックは行われる)。あるグループに属しているユーザは、自分が属さない他のグループが共有しているシーンやユーザ制御画面を使用・編集することができない。例えば、図9のUser Listビュー404の階層構造において、ログオンユーザがSupervisor Aである場合、オーナーIDがSupervisor Bであるシーンを編集したりストア/リコールすることはできない。一方、グループのオーナーより上位のユーザは、その配下のユーザないしグループが所有するシーンやユーザ制御画面を自由に使用・編集することができる。例えば、配下のオーナーの所有するグループが共有しているシーンやユーザ制御画面を使用・編集することができるが、配下でないオーナーの所有するグループが共有しているシーンやユーザ制御画面を使用・編集することはできない。また、グループのオーナーより上位のユーザが作成したシーンは、オーナーIDがそのユーザのユーザIDとなり、それが変更されなければ、当該シーンはそのユーザの配下の全てのユーザが使用できるシーンとなる。例えば、Administratorが作成したシーンは、当該制御プログラムにログオンする全てのユーザが使用できる。ただし、上記オーナーIDのチェックで権限ありと認められても、シーンの場合はログオンユーザのScene Store/Recall Levelと当該シーンのEdit Security及びRecall Securityとの比較で当該ログオンユーザがそのシーンを利用する権限を有していることが必要であるし、ユーザ制御画面の場合はログオンユーザのUser Control Levelと当該ユーザ制御画面のSecurity Levelとの比較で当該ログオンユーザがそのユーザ制御画面を利用する権限を有していることが必要である。すなわち、上記オーナーIDのチェックとセキュリティレベル(Scene Store/Recall LevelやUser Control Level)のチェックは、両方とも権限有りと確認されなければ指示された操作は行えないものである。どちらか一方のチェックでユーザ権限無しと認められた場合は、ログオンユーザが指示した操作は行うことができない。
上述したオーナーIDによるユーザ権限の設定では、各グループ単位でシーンやユーザ制御画面の使用権限を制御できる。オーナーIDとして設定できるのは、何れかのグループのオーナーのユーザIDか、何れのグループにも属していないユーザのユーザIDである。あるグループのユーザが作成したシーンにはそのグループのオーナーIDが自動的に設定され、他のグループのユーザによる利用ができないようになっている。そのシーンを複数のグループで共有したい場合には、そのシーンのオーナーIDを、それらのグループのオーナーの何れにとっても上位となるユーザのユーザIDに設定すればよい。各グループのオーナーより上位のユーザは、シーンないしユーザ制御画面のオーナーIDとして自分のユーザIDないしその配下のユーザのユーザIDが設定されている場合のみ、そのオーナーIDを変更することができる。ただし、その際に設定できるのは、自分のユーザIDないしその配下のグループオーナー以上のユーザのユーザIDのみである。一方、セキュリティレベルによるユーザ権限の設定では、シーンやユーザ制御画面に設定されたセキュリティレベルと各ユーザ毎に設定されているユーザレベルとの比較が行なわれるので、より細かく各ユーザ毎にシーンやユーザ制御画面の使用権限を制御することができる。これら2つのチェックは、どちらか一方でも有効であるし、両者を組み合わせて使うことにより、より細かくユーザ権限の設定を行うことができる。
次に、業者がCコンポーネントやユーザ制御画面を提供する場合について詳しく説明する。業者が提供したこれらのデータについて、エンドユーザが自由に使ってよいのであれば、特にプロテクトをかける必要は無い。一方、業者が提供したCコンポーネントの信号処理の構成、そのCコンポーネントを制御するためのパラメータの種類、その各パラメータに設定されているパラメータ値などには、それぞれ、その業者ならではのノウハウが含まれており、ユーザにその構成やパラメータを見せたくない場合やその設定したパラメータ値を変更されたくない場合がある。また、ユーザに対してCコンポーネントの構成やパラメータが見えないように制限をかけた場合でも、業者がミキサ設置場所に出向いてその調整を行なう場合には、その業者にだけはそのCコンポーネントの構成やパラメータの編集ができるように権限を設定しておきたいという要求がある。
このような要求に応じるため、本システムでは、業者が提供したCコンポーネントやユーザ制御画面には当該業者のユーザIDとパスワードを含めておき、そのCコンポーネントのCコンポーネント構成画面を開こうとしたときや、そのユーザ制御画面を開こうとしたときには、ログオンユーザがそのCコンポーネントやユーザ制御画面に含まれる業者ユーザID及びパスワードでログオンしていることをチェックするようにした。当該業者ユーザID及びパスワードでログオンした業者ユーザは、その業者ユーザID及びパスワードを含むCコンポーネントの構成画面を開いてそのCコンポーネントの構成を編集することができ、或いは、その業者ユーザID及びパスワードを含むユーザ制御画面を開いてその操作子により対応するパラメータ項目の値を変更することができる。一方、当該業者ユーザID及びパスワード以外でログオンしたユーザは、そのユーザのセキュリティ設定がどのようなものであったとしても(Administratorでも)、その業者ユーザID及びパスワードを含むCコンポーネントの構成画面やユーザ制御画面を開くことができない。このような機能については、図15でさらに詳しく説明する。
PC130が実行するミキサ制御プログラム131に含まれる各種処理を図14から図16に示す。図14(a)は、ミキサ制御プログラム131が起動されたときの処理手順を示す。ステップ1401で初期設定ファイルをRAM103に読み込んで各種初期設定を行い、ステップ1402で図5(a)のユーザログオン画面を表示する。ステップ1403でユーザ名とパスワードが入力されOKボタンがクリックされると、ステップ1404で初期設定ファイルに含まれるユーザアカウントのデータに基づいてそれらをチェックし、そのユーザ名のユーザであると認証されれば、ステップ1405に進む。ユーザ名またはパスワードが間違っているときは、ステップ1403に戻る。ステップ1405で、当該ユーザ名に応じたユーザ権限(図9で設定されている権限)を付与し、ステップ1406で、図5(b)の基本画面を表示する。このとき読み込まれるコンフィグデータは、当該ミキサ制御プログラム131が最後に起動されていたとき読み込まれていたコンフィグデータである。その後は、ミキサ制御プログラム131の通常動作へ移行する。なお、図9のEnable Auto Log Onチェックボックス901がオンされている場合は、ステップ1402〜1404はスキップして、Auto Log Onユーザコンボボックス902で指定されているユーザ名で自動的にログオンするが、図14(a)ではその処理は省略した。
図14(b)は、基本画面のメニューでセキュリティ設定を選択したときの処理手順を示す。ステップ1411で、図9で説明したセキュリティ設定ダイアログ900を表示する。ステップ1412で、RAM上のユーザアカウントのデータに基づいてUser Listビュー903に階層を表すツリーを表示し、初期状態として、そのツリー上のログオンユーザ(自分)を選択状態とする。ステップ1413で、選択されているユーザに応じた表示態様(図10)で各種ボタンやチェックボックスなどの表示を行う。
図14(c)は、シーンの切替えなどにより現コンフィグが切替えられたときに実行される処理手順を示す。なお、この処理が実行できるのは、ログオンユーザのChange Configurationチェックボックスがオンされている場合に限られる。現コンフィグとは異なるCFデータを示すシーンのリコール操作が行なわれたときや、現コンフィグとは異なるCFデータの選択操作が行なわれたときだけでなく、ログオン時などでコンフィグデータのファイルを読み込んだときも、デフォルトのCFデータ(例えば、そのコンフィグデータで最後に選択されていたCFデータ)が選択され、本処理が実行される。ステップ1421で、新たに現コンフィグとするCFデータに応じて各種制御が初期設定される。すなわち、カレントシーンのデータ構成が、該CFデータのPC用CADデータに基づくデータ構成に変更されるとともに、以前にそのCFデータが現コンフィグであったとき最後に選択されていたプリセットがそのカレントシーンに読み込まれる。ステップ1422で、当該現コンフィグのミキサ構成全体を示す基本画面(図5(b))を表示する。ステップ1423でオンラインモードであるときは、ステップ1424で、エンジン100に、CFデータの変更を指示するイベントを送出する。ステップ1425で、ログオンユーザのStartup User Controlがオンか判定し、オンのときは、ステップ1426で当該ユーザのSecurity Level以下の全ユーザ制御画面を開いて、本処理を終了する。なお、ステップ1426では、後述する図15(b)の処理で各種チェックを行って権限ありの場合にユーザ制御画面が開かれるものである。
図15(a)は、Cコンポーネントの構成画面(図7)を開く指示がなされたときの処理手順を示す。ステップ1501で初期設定の後、ステップ1502でログオン時のユーザ名及びパスワードが今開こうとしているCコンポーネントのCCヘッダに記載されている業者ユーザIDとパスワード(図2(b))に合致するか否か判定する。異なるときは、業者が提供したCコンポーネントの構成画面をその業者以外のユーザが開こうとしているということだから、そのまま処理を終了する。ユーザ名及びパスワードが合致したとき(当該CコンポーネントのCCヘッダの業者ユーザIDとパスワードが空欄の場合を含む)は、ステップ1503で、ユーザ権限をチェックする。このチェックは、ログオンユーザのOperation SecurityでView DSP Design Windowチェックボックスがオンされていることを確認するものである。ユーザ権限がないときはそのまま終了する。ユーザ権限があるときは、ステップ1504で、指定されたCコンポーネントの構成画面を表示し、その画面における動作へ移行する。例えば、ログオンユーザのEditチェックボックスがオンされていれば、当該画面に表示されているCコンポーネントの構成を編集することができ、また、ログオンユーザのView Component Editorチェックボックスがオンされていれば、当該画面上のPコンポーネントを選択して「制御画面を開く」操作を行なうことにより、その選択されたPコンポーネントの制御画面を開くことができる。
図15(b)は、ユーザ制御画面(図8)を開く指示がなされたときの処理手順を示す。ステップ1511で初期設定の後、ステップ1512でログオン時のユーザ名及びパスワードが今開こうとしているユーザ制御画面のUCデータ中に記載されている業者ユーザIDとパスワードに合致するか否か判定する。異なるときはそのまま処理を終了する。合致したとき(当該ユーザ制御画面のデータ中の業者ユーザIDとパスワードが空欄の場合を含む)は、ステップ1513で、ログオンユーザが当該ユーザ制御画面のオーナーID(図13)が示すグループに属するか判定する。ここでは、当該オーナーIDの示すグループのユーザだけでなく、当該オーナIDの示すユーザの上位のユーザについても、当該グループに属すると判断されるものとする。属さないときは、当該ログオンユーザには当該ユーザ制御画面の使用権限がないから、そのまま処理を終了する。ログオンユーザが当該グループに属するときは、ステップ1514でユーザ権限をチェックする。このチェックは、ログオンユーザのOperation SecurityでView Component Editorチェックボックスがオンされていること、かつ、ログオンユーザのUser Control Levelが当該ユーザ制御画面のSecurity Levelより上位または同位のレベルであることを確認するものである。ユーザ権限がないときはそのまま終了する。ユーザ権限があるときは、ステップ1515で、指定されたユーザ制御画面を通常モードで表示し、その画面における動作へ移行する。例えば、ログオンユーザのControl Component Editorチェックボックスがオンされていれば、当該画面上の操作子を操作することにより、カレントシーン中のその操作子に対応するパラメータの値を変更することができ、また、ログオンユーザのEditチェックボックスがオンされていれば、右クリックメニューの「編集モード」を選択することにより、当該ユーザ制御画面を編集モードに切り換えて当該ユーザ制御画面を編集することができる。
上記ステップ1502や1512により、業者提供のCコンポーネントやユーザ制御画面については、当該業者のみが開くことができ、エンドユーザや他の業者は(Administratorであっても)開けないようにできる。
ここでは、業者が追加機能としてCコンポーネントとユーザ制御画面を提供する場合のプロテクトを例示したが、図3(a)のコンフィグデータに含まれる任意のデータや各コンポーネントのライブラリなどについても、必要に応じてユーザIDとパスワードを記憶が格納されるように変更を加えれば同様にプロテクトすることができる。特に、本システムは、業者提供の追加機能を使用しようとしたときその追加機能に付されているIDとパスワードがログオン時のIDとパスワードに一致するかをチェックする点を特徴とする。一般的なアプリケーションなどでは、追加機能を使用しようとした時点でその追加機能に付されているパスワードなどの認証情報を入力させてユーザ権限を確認することは行われていた。この場合、悪意のユーザは何度も認証情報の入力を試行することによりそのプロテクトを破ることが考えられる。本システムでは、業者提供Cコンポーネントなどのプロテクトを破ろうとする者は、何度もログオンのし直しをしなければならず、その操作が煩雑であるためプロテクトが破りにくいという効果がある。
本実施形態のシステムでは、何らかの指示がユーザから与えられたときの処理は、基本的に図15(a)と同様の処理で行っている。すなわち、業者提供の機能に関わるステップ1502のチェックと、図9〜図11で説明したユーザ権限のチェックを行って、両方共に権限があると認められた場合のみ、指示された処理を行うような処理手順である。さらに、これらのチェックに加えて、ステップ1513のオーナーのグループにログオンユーザが入っているかをチェックすべき機能やデータを使用しようとする指示に対しては、図15(b)と同様の手順で処理している。
なお、業者提供のCコンポーネントについては、図15(a)で説明したようにエンドユーザが開こうとしても開けないようにしているが、構成画面を開けない代りに、自動的にユーザ制御画面を開くようにしてもよい。その場合は、ステップ1502で業者ユーザIDとパスワードが合致しなかったとき、所定のユーザ制御画面を表示する処理を行うようにすればよい。表示すべきユーザ制御画面は、例えば業者プロテクト内容の欄に記載しておく。また、業者提供のデータは、Administrator権限でインストールして本システムに組み込み、上述したオーナーIDがAdministratorになるようにする。
図16(a)は、ログオンユーザが、開かれたユーザ制御画面に表示されているつまみを操作をした場合の処理手順を示す。ステップ1601でユーザ権限をチェックする。これは、ログオンユーザのOperation SecurityのControl Component Editorチェックボックスがオンされているか否かを判定するものである。権限があるときは、ステップ1602で、そのつまみの操作量に応じて、そのつまみに対応するパラメータ(カレントシーン内)の値を変更する。ステップ1603でオンラインモードであるときは、ステップ1604でその操作に応じた操作イベントをエンジン100に送出して処理を終了する。つまみ操作でなく、他のパラメータ変更も同様の処理である。
図16(b)は、シーンi(図3(a))をリコールする指示がなされたときの処理手順を示す。ステップ1611で、ログオンユーザが当該シーンiのオーナーIDが示すグループに属するか判定する。ステップ1513と同様、当該オーナーIDの示すグループのユーザだけでなく、当該オーナIDの示すユーザの上位のユーザについても、当該グループに属すると判断されるものとする。属するときは、ステップ1612で、ログオンユーザに当該シーンのリコールを行う権限があるか否か判定する。これは、ログオンユーザのOperation SecurityのScene Store/Recall Levelと今リコールしようとしているシーンのRecall Securityとを比較し、リコールの権限があるかを判定するものである。権限があるときは、ステップ1613で、シーンiをリコールすることで現コンフィグが変化するか判定する。変化するときは、ステップ1614で、ログオンユーザにコンフィグを変更する権限があるか否か判定する。これは、ログオンユーザのOperation SecurityのChange Configurationチェックボックスがオンされているかを確認するものである。権限があるときは、ステップ1615でシーンiが指定するCFデータを選択して現コンフィグとし、ステップ1616に進む。ステップ1613で現コンフィグが変化しないときは、直接ステップ1616へ進む。ステップ1616で、シーンiが指定するプリセットを読み出してカレントシーンにセットする。
ここではシーンのリコールの処理を説明したが、シーンのストアも同様である。ストア処理では、ストア先として指定したシーンナンバに既にシーンが格納されている場合に、ログオンユーザが、そのシーンナンバに格納されているシーンのオーナーのグループに属するかをチェックするものである。
なお、上記実施形態では、あるグループに属さないユーザは、そのグループのシーンデータとユーザ制御画面を使うことができなかったが、それに加えて、例えば、CFデータにも同じ制限を加えられるようにしてもよい。
また、業者が供給するCコンポーネントの制御画面として設定されるユーザ制御画面に配置される操作子や表示要素のコピー元は、そのCコンポーネントの構成要素であるPコンポーネントの制御画面に限られる。CCデータは、図3(a)のコンフィグデータに含まれるデータとしてもよい。
上記実施形態では、CCデータのCCヘッダないしCFデータのUCデータに、ユーザID及びパスワードが格納されていれば業者プロテクトがオンであり、格納されていなければ業者プロテクトがオフとなっていたが、業者プロテクトのオンオフは別のデータ(業者プロテクトの内容など)で制御するようにしてもよい。
上記実施形態では、ユーザの操作に応じて実行される処理に複数のプロテクトをかけているが、その処理がプロテクトにかかって実行されなかった場合に、何れのプロテクトで実行されなかったのかをユーザに提示するようにしてもよい。
100…エンジン、101…CPU、102…フラッシュメモリ、103…RAM、104…PC I/O、105…MIDI I/O、106…その他I/O、107…表示器、108…操作子、109…波形I/O、110…信号処理部(DSP群)、111…カスケードI/O、120…システムバス、130…パーソナルコンピュータ(PC)、131…ミキサ制御プログラム、132…コンフィグ(CF)データ。