以下に、本発明のリモート制御システムの一実施形態について、添付図面を参照して、説明する。
図1において、リモート制御システムは、1台のミキシングコンソール1(Con:以下、「コンソール」と表記)と、2台のパーソナルコンピュータ2,3(PC)と、1台のデジタルオーディオミキサ4(mixer:以下、「ミキサ」と表記)と、2台のパワーアンプ(amp:以下、「アンプ」と表記)5,6と、1台のエフェクタ(eff.)7と、1台のステージボックス(sbox)8とをネットワーク9により接続してなる。
ミキサ4、アンプ5,6、エフェクタ7及びステージボックス8は、それぞれ、例えばオーディオ信号のルーティングやオーディオ信号処理などオーディオ信号に関する信号処理を行う音響装置であり、制御装置1〜3から動作制御(リモート制御)及び動作状況の監視(リモート監視)を受ける被制御装置である。
コンソール1及びPC2,3は、それぞれ、リモート制御システム内の各被制御装置4〜8のリモート制御及びリモート監視するためのソフトウェアプログラム(リモート制御ソフト)を実行することにより、制御装置として機能する。コンソール1は、オーディオ信号に関する信号処理(被制御装置4〜8の動作)の制御に専用のフィジカルコントローラである。PC2,3は、汎用のOS(オペレーティングシステム)を登載した汎用のパーソナルコンピュータであって、アプリケーションプログラムの1つとしてリモート制御ソフトを実装している。
ネットワーク9は、例えばイーサネット(登録商標)ケーブルなど汎用のネットワークケーブルにより複数の装置1〜8を物理的に接続して形成されたローカルエリアネットワーク(LAN)である。ネットワーク9上の各装置1〜8の間では、TCP/IPプロトコルに従うデータ通信が可能である。更に、ネットワーク9を用いて各装置の間でオーディオ信号をリアルタイム伝送できるようにしてもよい。その場合、そのデータ伝送フォーマットは、例えばCobraNet(登録商標)など、従来から知られる適宜のデータ伝送フォーマットを適用できる。
図2は、制御装置として利用されるコンソール1及びPC2,3の電気的ハードウェア構成の概要を示すブロック図である。図2に示すように、制御装置は、CPU(Central Processing Unit)10と、ROM(Read Only Memory)及びRAM(Random Access memory)からなるメモリ11と、ネットワークインタフェース(I/F)12、ユーザインタフェース(UI)13と、ハードディスク(Hard disk drive、HDD)14とを備え、前記の各部10〜14がCPUバス15により接続される。
CPU10は、メモリ11に記憶された各種制御プログラムを実行して、制御装置(コンソール1又はPC2,3)の全体動作を制御する。メモリ11は、前記各種制御プログラムを記憶するとともに、CPU10が実行するプログラムのロード領域やワーク領域に使用される。また、メモリ11には、リモート制御システム内の各被制御装置4〜8の動作をリモート制御/リモート監視するための複数のパラメータを記憶するカレントメモリ(仮想カレント)が設けられている(後述の図5参照)。HDD14は外部記憶装置の一例である。メモリ11又はHDD14には、前記リモート制御ソフトが記憶される。
コンソール1は、ユーザインタフェース13として、例えば、回転操作されるノブ、直線的にスライド操作されるフェーダ、或いは、押下操作される押しボタンスイッチなど、多種多数の操作子と、各種情報を表示するディスプレイとを具備する。PC2,3は、ユーザインタフェース13として、各種情報を表示するディスプレイと、該ディスプレイに表示された画面上で各種操作を入力する入力手段として、例えばマウス及びキーボードとを具備する。ネットワークインタフェース12は、当該制御装置をネットワーク9に接続するためのインタフェースである。
図3はミキサ4の電気的ハードウェア構成を示すブロック図である。ミキサ4は、CPU20と、ROM及びRAMからなるメモリ21と、ネットワークインタフェース22と、パネル表示部(P表示)23と、パネル操作子(P操作子)24と、電動フェーダ(電動F)25と、オーディオ入出力部(AIO)26と、信号処理部(Digital Signal Processor、DSP)27とを備え、前記の各部20〜27がCPUバス28により接続される。また、オーディオ入出力部26とDSP27とは、オーディオバス29により接続される。
CPU20はメモリ21に記憶された各種制御プログラムを実行して、ミキサ4の全体動作を制御する。メモリ21は、前記各種制御プログラムを記憶するとともに、CPU20が実行するプログラムのロード領域やワーク領域に使用される。また、メモリ21には、当該ミキサ4の動作を制御する複数のパラメータを記憶するカレントメモリ(実カレント)が設けられている(後述の図6参照)。ネットワークインタフェース22はミキサ4をネットワーク9に接続するためのインタフェースである。
パネル表示部23、パネル操作子24及び電動フェーダ25は、ミキサ4の操作パネルに設けられたユーザインタフェースである。パネル表示部23は、例えばタッチパネル式液晶ディスプレイにより構成され、CPU20からCPUバス28を介して与えられた表示制御信号に基づいて各種画面を表示できる。パネル操作子24は、ノブ、押しボタンスイッチなどを含む操作パネル上に配置された操作子群である。電動フェーダ25は、フェーダ型の操作子であり、ユーザが操作できるとともに、CPU10から与えられる駆動制御信号に基づいて操作位置が自動制御される。
オーディオ入出力部26は、マイクやレコーダ等の外部機器と接続して、オーディオ信号を入出力するインタフェースであり、アナログデジタル変換(AD変換)、デジタルアナログ変換(DA変換)、及びデジタル変換(フォーマット変換)する機構を含む。
DSP27は、CPU20の指示に基づいて各種のマイクロプログラムを実行することにより、メモリ21の実カレントに記憶された各種のパラメータの値に基づいて、オーディオ入出力部26から入力されたオーディオ信号に対して、オーディオミキシングに関する各種信号処理を行い、処理後のオーディオ信号をオーディオ入出力部26から出力する。前記各種信号処理は、オーディオ信号の音量レベル制御、複数のオーディオ信号のミキシング、オーディオ信号への効果付与等である。
図4はアンプ5,6の電気的ハードウェア構成を示すブロック図である。アンプ5,6は、CPU30と、メモリ31と、ネットワークインタフェース32と、ユーザインタフェース33と、オーディオ入出力部34と、増幅部(AMP)35と、DSP36とを備え、前記の各部30〜36がCPUバス37により接続されるとともに、オーディオ入出力部34と、AMP35と、DSP36とがオーディオバス38により接続される。
CPU30はメモリ31に記憶された各種制御プログラムを実行して、アンプの全体動作を制御する。メモリ31は、前記各種制御プログラムを記憶するとともに、CPU30が実行するプログラムのロード領域やワーク領域に使用される。メモリ31には、当該ミキサ4の動作を制御する複数のパラメータを記憶するカレントメモリ(実カレント)が設けられている。ネットワークインタフェース32はアンプをネットワーク9に接続するためのインタフェースである。ユーザインタフェース33には、音量レベル等を操作する各種操作子や、レベルメータ等の各種インジケータが含まれる。
オーディオ入出力部34は、ミキサやスピーカ等の外部機器に接続して、オーディオ信号を入出力するインタフェースである。DSP36は、CPU30の指示に基づいて各種のマイクロプログラムを実行することにより、メモリ31(実カレント)に記憶された各種パラメータの値に基づいて、オーディオ入出力部34から入力されたオーディオ信号に対する信号処理を行い、処理後のオーディオ信号を増幅部35へ出力する。前記信号処理は、例えばイコライザー、ディレイ、クロスオーバー、リミッター等である。AMP35は、DSP36で処理されたオーディオ信号を電力増幅して、増幅されたオーディオ信号を、オーディオ入出力部34経由でスピーカ等の外部機器へ出力する。
エフェクタ7とステージボックス8との電気的ハードウェア構成(図示は省略)は、それぞれ、図3のミキサ又は図4のアンプと概ね同様に、CPU、メモリ(実カレント)、ネットワークインタフェース、ユーザインタフェース、オーディオ入出力部及びDSPを含む。エフェクタ7は、入力されたオーディオ信号に対して効果付与する装置である。ステージボックス8は、オーディオ信号の入出力機能を有するプロセッサである。
図5は、各被制御装置(ミキサ4、アンプ5,6、エフェクタ7及びステージボックス8)のメモリ(図3,4で符号21,31)に記憶されるリモート制御及びリモート監視に関連するデータの記憶内容を説明するデータ構成図である。被制御装置のメモリには、図5に示す通り、機種ID41と、リアルデバイスID(「rdID」と省略表記)42と、IP(Internet Protocol)アドレス43と、動作データ44と、コントローラIDx(「cIDx」と省略表記)45と、モディファイド・パラメータ・リスト(「MPリスト」と省略表記)46の記憶領域が用意される。説明をかににするため、以下では、各記憶領域名で、その記憶領域に記憶されているデータを示す。
機種ID41は、当該被制御装置の機種を示すID(固定値)である。同じ機種であっても、ファームウェアのバージョンが異なれば、異なる機能を持つことがあるので、機種ID41には、ファームウェアのバージョン番号を含め、バージョンアップ毎に更新するようにしてもよい。rdID42は、当該被制御装置の個体を少なくともネットワーク9内で識別する識別情報(ID)である。例えば、rdID42は、メーカが自社の各製品に付与したID(そのメーカ製品内でユニークな固定値)であってもよいし、イーサネット(登録商標)のインタフェース22,23に付与されたMACアドレス(全世界でユニークな固定値)であってもよいし、ユーザがリモート制御システムの書く機器に付与した制御用ID(そのシステムないでユニークなユーザ可変値)であってもよい。IPアドレス43は、ネットワーク9経由の通信において当該被制御装置(又はインタフェース22,23)を指定するために用いる、少なくともネットワーク9上でユニークなアドレスである。
動作データ44は、当該被制御装置の信号処理の動作を制御する複数のパラメータの現在値であり、これらを記憶する領域がカレントメモリ(実カレントメモリ)に相当する。以下、動作データ44として記憶されるパラメータ群と、それらを記憶するカレントメモリ領域とを含めて「実カレント」44と称する。実カレント44内の各パラメータは、該実カレント44内でユニークなパラメータID(「pID」と省略表記)により特定される。pIDは、例えば、実カレント44内で連続するパラメータ番号である。以下、実カレント44内の或るpIDで特定されるパラメータの値を、省略表記「P(pID)」で表す。ここで、各被制御装置の複数のパラメータは、そのrdIDにより特定される機種に固有のデータ構成(例えば、パラメータの種類、パラメータ毎のpID及びパラメータ毎の設定値の範囲等)を有している。
cIDx45は、実カレント44内の或るパラメータ値P(pID)が変更されたときに、変更させた制御装置(後述する変更命令の送信元(起源)となった制御装置)を特定する一時的なデータである。或るパラメータ値P(pID)が変更される毎に、後述の図10又は図11の処理により、該パラメータ値P(pID)を最後に変更させた制御装置を特定する識別情報(後述のrcID61)又はいずれの制御装置も示さないデータ(null)が、cIDx45に一時的にセットされる。
MPリスト46は、実カレント44内にあるパラメータ群のうち、後述する所定の通知周期内に値が変更されたパラメータのpIDと、そのパラメータ値P(pID)の変更操作を行った装置を示すcIDx45とのデータペアを、1又は複数記憶するリストである。MPリスト46の実装方法の一例として、複数の前記データペアをpIDの昇順又は降順にソートするとよい。その場合、或るpIDのデータペアがMPリスト46内に存在するか否かの確認を、容易且つ高速に行うことができる。
図6は、制御装置(コンソール1、及びPC2,3)のメモリ11に記憶されるリモート制御及びリモート監視に関連するデータの記憶内容を説明するデータ構成図である。制御装置のメモリ11には、図5に示す通り、ネットワーク9上の各被制御装置4〜8に対応する5つの仮想デバイスデータ50が記憶されている。図では、「仮想デバイスデータ1」、「仮想デバイスデータ2」・・・「仮想デバイスデータ5」という具合に、仮想デバイスデータ50に番号を付けて区別を示している。各仮想デバイスデータ50は、それぞれ、対応する被制御装置(音響機器)を、制御装置上で仮想的に表すデータである。仮想デバイスデータ50によって表される仮想的音響機器を「仮想デバイス」と称する。また、被制御装置4〜8のことを、仮想デバイスに対応する実際の音響機器という意味で「実デバイス」と称する。
1つの仮想デバイスデータ50には、機種ID51と、仮想デバイスID(「vdID」と省略表記)52と、IPアドレス53と、動作データ54と、オンラインフラグ(「OF」と省略表記)55の記憶領域が用意される。機種ID51は、当該仮想デバイスに対応する実デバイスの機種を特定するIDである。vdID52は当該仮想デバイスを特定するIDであり、当該仮想デバイスに対応付けられた被制御装置(実デバイス)のrdIDと同じ値がセットされる。或る実デバイスが制御装置とオンライン状態にあるとき、その実デバイスのrdIDによって、その実デバイスだけでなく、その実デバイスに対応付けられた仮想デバイスも特定できる。また、IPアドレス53は、当該仮想デバイスに対応付けられた被制御装置(実デバイス)のIPアドレスである。vdID52とIPアドレス53とは、それぞれ、当該仮想デバイスと対応付けるべき被制御装置(実デバイス)を特定するための情報であり、後述図8のリモート制御準備処理により確定する。
動作データ54は、当該仮想デバイスに対応する被制御装置(実デバイス)の実カレント44に対応する複数のパラメータの現在値であり、これを記憶する領域がカレントメモリ(仮想カレントメモリ)に相当する。以下、動作データ54として記憶されるパラメータ群と、それらを記憶するカレントメモリ領域とを含めて「仮想カレント」54と称する。仮想カレント54は、後述するリモート制御準備処理により対応する実カレント44と同期化することで、対応する被制御装置の実カレント44と実質的に同じ値の複数パラメータを記憶する。仮想カレント54内の各パラメータは、それぞれ、当該仮想カレント54内でユニークなパラメータID(「pID」)により特定される。これら仮想カレント54内の各パラメータに割り当てられたpIDは、それぞれ、対応する実カレント44内の対応するパラメータのpIDと同じパラメータ番号とする。以下、仮想カレント54内の或るパラメータpIDの値を省略表記「P´(pID)」で表す。
オンラインフラグ(OF)55は、当該仮想デバイスに対応する実デバイスが制御装置からリモート制御可能な状態(オンライン)であるか否かを2値で示すフラグである。OF55は、例えば、オンラインのときの値を「1」、オフラインのときの値を「0」とする。OF55の値が「1」のとき、制御装置から当該仮想デバイスに対応する実デバイスをリモート制御できる。
制御装置のメモリ11には、また、複数の各機種のパラメータ構成等を示すデータベースである機種情報60と、その他データの記憶領域とが用意される。任意の機種IDで、機種情報60を参照することにより、その機種IDで特定される機種のパラメータ構成の情報を得ることができる。図6の各仮想デバイスデータの動作データの記憶領域は、その仮想デバイスの機種IDで機種情報60を参照して得られたデータ構成に基づいて準備される。また、その他データのうち、リアルコントローラID(「rcID」と省略表記)61は、当該制御装置の個体を少なくともネットワーク9内で識別する識別情報である。例えば、rcID61は、イーサネット(登録商標)のインタフェース12に付与されたMACアドレス(全世界でユニークな固定値)であってもよいし、ユーザが各制御装置に付与した制御用ID(そのシステム内でユニークなユーザ可変値)であってもよい。また、デバイスID(「dIDx」と省略表記)62は、当該制御装置からリモート制御する被制御装置を特定する一時的なデータである。或る被制御装置をリモート制御する際には、その被制御装置に対応付けられた仮想デバイスのvdID52が、dIDx62に一時的にセットされる。
図7は、制御装置のディスプレイ(図2のUI13)に表示されるパラメータ調整画面70の一例である。パラメータ調整画面70は、1つの仮想デバイスについて、その仮想カレント54に記憶されている各パラメータ値を表示する画面であり、該表示されたパラメータの値変更操作をユーザから受け付けるGUI(Graphical User Interface)として機能する。
制御装置には、音響機器の機種毎に専用のパラメータ調整画面が用意されており、ユーザが所望の仮想デバイスを指定してパラメータ調整画面の表示を指示すると、制御装置のCPU10は、該指定された仮想デバイスの機種に該当するパラメータ調整画面70をディスプレイに表示し、且つ、そのパラメータ調整画面70内に、該指定された仮想デバイスの仮想カレント54に記憶されている各パラメータの値を表示する。
パラメータ調整画面70の左上隅の文字列「device:eff.(12)」は、そのパラメータ調整画面70に表示中の仮想デバイスのデバイス名である。デバイス名は、制御対象の仮想デバイスのvdID52に基づいて表示されるもので、例えば機種名(「eff.」)と個体識別情報(「(12)」)からなる。制御装置のCPU10は、或る仮想デバイスに関するパラメータ調整画面70を表示したときに、その仮想デバイスのvdID52を、メモリ11のdIDx62にセットする。
パラメータ値表示部71は、パラメータ毎の値の表示と変更操作の受付を行うエリアである。1つの枠72が1つのパラメータを示しており、枠72内に表示したノブ画像やボタン画像等により、その値が表示される。各枠72の左上隅には枠毎の番号が表示される。図の例では、パラメータ値表示部71は、18個の枠72により18個のパラメータを1画面に表示するように構成されており、1画面内に表示するパラメータ群を、画面右端のページ切り替えボタン73を用いてページ毎に切り替えることができる。現在パラメータ値表示部71に表示中のページに対応するページ切り替えボタン73(図では上から2つ目のボタン「2」)が点灯状態となる。なお、図7において、ボタン画像等のGUI部品が点灯状態であることをハッチングにより表現している。
パラメータ値表示部71に表示されるパラメータ群には、音量、デプス或いはレート等のように2値以上の複数値の範囲を持つパラメータ、オンオフ状態を2値で示すパラメータ、或いは、複数n個の選択肢(例えば何らかのタイプ選択や接続先選択など)の選択状態を示すパラメータなどがある。例えば、枠72aには、2値以上の複数値の連続的な可変範囲を持つパラメータの値がノブ画像74の回転位置(角度)によって示されている。枠72bには、オンオフパラメータの値(オン又はオフいずれか)がボタン画像75の点灯・消灯によって示されている。また、枠72cには、タイプ選択パラメータの選択状態がボタン画像76上の文字列「3」(第3のタイプを示す)によって示されている。また、枠72dには、入力元接続先選択パラメータの選択状態がボタン画像77上の文字列「in5」(5番目の入力chを示す)によって示されている。
パラメータ調整画面70の右上に設けられたオンラインランプ78は、制御対象の仮想デバイスがオンライン状態であるか否かを示すもので、オンライン(当該仮想デバイスのOF55の値が「1」)のとき点灯し、オフライン(当該仮想デバイスのOF55の値が「0」)のとき消灯する。
制御対象の仮想デバイスがオンライン状態(OF55の値が「1」)のとき、制御装置のユーザは、パラメータ調整画面70から、制御対象の仮想デバイスに対応する被制御装置(実デバイス)の実カレント44のパラメータの値をリモート制御できる。図8は、リモート制御を開始するときに、制御装置(コンソール1及びPC2,3)のCPU10が実行するリモート制御準備処理のフローチャートを示す。
ステップS1において、制御装置のCPU10は、リモート制御開始すべき各被制御装置(実デバイス)に対応する各仮想デバイスのプロセスを起動し、且つ、該各仮想デバイスの仮想デバイスデータ50をメモリ11に準備する。すなわち、メモリ11に仮想デバイス毎の仮想デバイスデータ50の記憶領域を確保して、仮想デバイスデータ50の領域に各種データ(図6の符号51〜55)を書き込む。ステップS1の処理は、任意の時点で実行されてよい。例えば、ユーザが機種を選択する操作を行ったときに、選択された機種の仮想デバイスを起動するようにしてもよい。或いは、過去にリモート制御で使用した仮想デバイスデータ50を1つのプロジェクトファイルとして保存しておき、制御装置が、そのプロジェクトファイルを読み込んだときに、プロジェクトファ イルに含まれる仮想デバイスデータ50に基づいて、複数の仮想デバイスを起動するようにしてもよい。さらに、制御装置が、ネットワークに接続された被制御装置を新たに発見したとき、その被制御装置と対応付けられる同じ機種の仮想デバイスが未起動であることを条件に、その機種の仮想デバイスを自動的に起動するようにしてもよい。
ステップS2において、制御装置のCPU10は、前記ステップS1でプロセスを起動した各仮想デバイスに、ネットワーク9上で検出された被制御装置(実デバイス)のいずれか1つを対応付ける。例えば、制御装置のCPU10は、ネットワーク9上の各被制御装置(実デバイス)から機種ID41、rdID42及びIPアドレス43を収集し、これら収集した情報に基づいて各仮想デバイスと実デバイスとを対応付けることができる。被制御装置が固定値のrdID42を有するケースであれば、その被制御装置を、そのrdID42と同じvdID52を有する仮想デバイスに対応付けるようにすればよい。或いは、変更可能値であるrdID42(又はIPアドレス43)を用いて対応付けを行う場合は、vdID52(又はIPアドレス53)との一致だけでなく、機種IDも相互間で一致していることを条件に、実デバイスと仮想デバイスを対応付けるようにすればよい。何れのケースであっても、最低限、実デバイスと仮想デバイスとで機種IDが一致していなければならない。更に、各機種ID毎に、実デバイスと仮想デバイスとの対応付けを、ユーザが自由に変更できるようにしてもよい。ユーザにより対応付けが確定された場合には、前記ステップS1で準備した仮想デバイスデータ50の各仮想デバイスのvdID52とIPアドレス53とが、その仮想デバイスに対応付けられた実デバイスのrdID42とIPアドレス43と同じ値で、確定される。ステップS2の処理は、未だ対応付けされていない仮想デバイスが存在することを条件に、任意のタイミングで実行してよい。
ステップS3において、制御装置のCPU10は、対応付け済みの各仮想デバイスと実デバイスとを同期化し、且つ、当該仮想デバイスのオンラインフラグ55(OF(vdID))に値「1」をセットする。「仮想デバイスと実デバイスとを同期化する」とは、仮想デバイスの仮想カレント54内のパラメータ群と、対応する実デバイスの実カレント44内のパラメータ群とを、同じ値にすることである。同期化の方向(仮想カレント54の各パラメータ値を実カレント44の各パラメータ値に一致させるか、又は、実カレント44の各パラメータ値を仮想カレント54の各パラメータ値に一致させるか)は、一方向に固定しても良いし、ユーザの指示に従うようにしてもよい。仮想デバイスと実デバイスを同期化することにより、仮想カレント54内の各パラメータ値は、対応する実カレント44内の各パラメータ値と同じ値になる。従って、仮想カレント54内の各パラメータ値を表示するパラメータ調整画面70は、実質的に、対応する実カレント44の値を表示することになる。ステップS3の処理は、ユーザが、1又は複数の仮想デバイスの「オンライン化」を指示したときに、その仮想デバイスに関して実行される。或いは、ユーザが、1ないし複数の実デバイスと、1又は複数の仮想デバイスとの対応付けを確定したときに、その対応付けされた仮想デバイスに関して、ステップS2の処理に続けて実行されるようにしてもよい。
制御装置のユーザは、パラメータ調整画面70において、パラメータ値表示部71の1つの枠72を選択し、操作パネル上の各種物理操作子(コンソール1のUI13)や、マウス或いはキーボード(PC2,3のUI13)を使って、該選択したパラメータの値を変更操作できる。図9は、パラメータ調整画面70におけるパラメータ値の変更操作に応じて制御装置のCPU10が実行する処理のフローチャートを示す。ユーザによるパラメータ値の変更操作があったとき、制御装置のCPU10は、その操作に応じたパラメータ変化量valを検出し、且つ、制御対象の仮想デバイス(パラメータ調整画面70にパラメータを表示中の仮想デバイス)のvdIDと、該変更操作されたパラメータのpIDとを特定し、該特定した1つの仮想デバイスvdIDの該特定した1つのパラメータpIDについて、図9の処理を起動する。なお、検出されるパラメータ変化量valは、操作子の操作量に応じたパラメータ値の相対的な変化量を示すデータでもよいし、あるいは、操作子の操作位置(操作子の動作範囲における絶対的な位置)に応じた絶対的なパラメータ値を示すデータでもよい。或いは、操作子の操作量を示すデータや、操作子の操作位置を示すデータでもよい。
ステップS4において、制御装置のCPU10は、検出されたパラメータ値の変更量valに応じて、dIDx62にセットさているvdIDにより特定されるの仮想カレント54内の、該変更操作されたパラメータpIDの現在値P´(pID)を変更する。
ステップS5において、CPU10は、前記ステップS4の仮想カレント54のパラメータ値P´(pID)の変更結果に応じて、当該制御装置のディスプレイ(UI13)に表示中のパラメータ調整画面70内の当該パラメータpIDに関する表示を更新する。これにより、例えば枠72aのようにパラメータ値がノブ画像74で表示されている場合は、ノブ画像74の回転位置(ノブの角度)が操作子等の現在の操作状態に追従して変更される。また、枠72bのようにパラメータ値がボタン画像75で表示されている場合、ボタンの点灯・消灯状態が操作子等の現在の操作状態に追従して変更される。制御装置側でのパラメータ値の変更操作に応じて直ちに当該制御装置におけるパラメータ値の表示を更新するので、該変更操作に対する表示更新のレスポンスが良い。
ステップS6において、CPU10は、制御対象の仮想デバイスのオンラインフラグ55(OF(dIDx))に基づいて、制御対象の仮想デバイスがオンライン中か否か判断する。オンライン中の場合(ステップS6のYES)、CPU10は、ステップS7において、今回のパラメータ値の変更操作に応じた変更命令SETを作成し、該作成した変更命令SETを、制御対象の仮想デバイスに対応する被制御装置(実デバイス)にネットワーク9経由で送信する。すなわち、パラメータ調整画面70でのパラメータ値変更操作に応じて上記ステップS4〜S7を行う構成がパラメータ値変更操作受付部として機能する。
変更命令SETは、パラメータを特定するpIDと、変更量valと、当該変更命令SETの送信元の制御装置を特定するrcID(図6の符号61)とを含むデータである。変更命令SETの宛先としては、制御対象の仮想デバイスの仮想デバイスデータ50に含まれるIPアドレス53を指定する。従って、変更命令SETは、ネットワーク9上の複数の被制御装置4〜8のうち、制御対象の仮想デバイスに対応する1つの被制御装置にだけ送信される。
なお、変更命令SETに含まれる変更量valは、制御装置における操作子の相対的な変化量を示すデータでもよいし、あるいは、操作子の操作位置を示すデータでもよいし、或るいは、その操作に応じて変更された仮想カレント54のパラメータ値P´(pID)でもよし、あるいは、該操作に応じた仮想カレント54のパラメータ値P´(pID)の変化量でもよい。
一方、制御対象の仮想デバイスがオフライン中の場合は(ステップS6のNO)、被制御装置に対する変更命令の送信が不要であるので、CPU10はそのまま処理を終了する。従って、オフライン中は、制御装置でのパラメータ値の変更操作は、当該制御装置の仮想カレント54にのみ反映され、被制御装置の実カレント44には反映されない。
変更命令SETの宛先として指定されたIPアドレス53に該当する被制御装置(実デバイス)は、前記ステップS6において制御装置から送信された変更命令SETをネットワーク9経由で受信する。図10は、前記ステップS6で送信された変更命令SETの受信に応じて、被制御装置4〜8のCPU(図3,4の符号20,30)が実行する処理のフローチャートを示す。或る被制御装置のCPUは、変更命令SETを受信したとき図10の処理を開始する。
ステップS8において、被制御装置のCPUは、受信した変更命令SETに含まれるpIDにより、当該被制御装置の実カレント44の1つのパラメータを特定し、該特定したパラメータpIDの値P(pID)を、変更命令SETに含まれる変更量valに応じて変更する。これにより、実カレント44の当該パラメータ値P(pID)が、実カレント44の当該パラメータ値P(pID)が、変更命令SETの送信元である制御装置内の対応する仮想カレント54内の当該パラメータ値P´(pID)と同じ値になる。
ステップS9において、被制御装置のCPUは、受信した変更命令SETに含まれるrcIDを、自身のメモリ内のcIDx45にセットする。ステップS10において、被制御装置のCPUは、前記ステップS8で変更されたパラメータのpIDと、前記ステップS9でrcIDをセットしたcIDx45とからなるデータペアを作成し、該作成したデータペアを、自身のメモリ中のMPリスト46に追加、又は、上書き更新して、処理を終了する。すなわち、前記pIDを含むデータペアがMPリスト46に存在していない場合には、作成されたデータペアをMPリスト46に新規に追加する。他方、該pIDを含むデータペアがMPリスト46に存在している場合には、既存の当該pIDを含むデータペアを、今回作成されたデータペアにより上書きする。つまり、該既存のデータペアに含まれるcIDxの値を、今回の前記ステップS9にてcIDx45にセットしたrcID(今回受信した変更命令SETに含まれるrcID)に更新する。従って、MPリスト46は、1つのpIDに関するデータペアを二重に記憶しない。後述する或る通知周期において、或る被制御装置の或るpIDのパラメータの値を変更すべく、複数の異なる制御装置がそれぞれ変更命令SETを送信した場合、その被制御装置は、異なる制御装置から受信する各変更命令SETに応じて、その変更命令SETに含まれる変更量valでそのpIDのパラメータ値を変更するとともに、その変更命令SETに含まれるrcIDでMPリスト46の当該pIDのデータペアを上書き更新する。その通知周期の終わりに、最後にMPリスト46の当該pIDのデータペアに記憶されているのは、最後に受信した変更命令SETに記載されていたrcIDである。すなわち、MPリスト46の各pIDのデータペアは、その通知周期でそのpIDパラメータの値を最後にリモート制御した制御装置のrcIDを保持する。
被制御装置4〜8の実カレント44内のパラメータ値の変更操作は、被制御装置自身が持つユーザインタフェース(図3,4の符号23〜25、33)を使ったローカル制御でも行われる。図11は、或る被制御装置でパラメータ値のローカル制御(ローカルパラメータ値変更操作)が行われたときに、そのローカルパラメータ値変更操作に応じて当該被制御装置のCPU(図3,4の符号20,30)が実行する処理のフローチャートを示す。或る被制御装置(rdID)のCPUは、ユーザによるローカルパラメータ値変更操作に応じたパラメータ変化量valを検出し、且つ、該変更操作されたパラメータのpIDを特定して、該特定した1つのパラメータpIDについて、図11の処理を起動する。
ステップS11において、被制御装置のCPUは、自身の実カレント44内のパラメータpIDの値P(pID)を、前記検出された変更量valに応じて変更する。
ステップS12において、被制御装置のCPUは、自身のメモリ内の変数cIDxに、いずれの制御装置も示さない「null」をセットする。そして、テップS13において、被制御装置のCPUは、前記ステップS11で変更されたパラメータのpIDと、前記ステップS12でrcIDをセットしたcIDxとからなるデータペアを、自身のメモリ中のMPリスト46に追加、又は、上書き更新して、処理を終了する。この場合、MPリスト46には、cIDxの値として「null」がセットされたデータペアが追加、又は、上書き更新される。
被制御装置4〜8のCPU(図3,4の符号20,30)は、図示しない周知の処理ルーチンを実行して、前記ステップS8又は前記ステップS11によりパラメータ値変更結果を、被制御装置の動作に反映せる。すなわち、被制御装置4〜8のCPU20,30は、該図示しない周知の処理ルーチンを実行し、その被制御装置の実カレント44に基づいて、当該被制御装置の音響機器としての動作(典型的には、DSP(図3,4の符号27,36)による信号処理)を制御する。例えば、実カレント44の或る音響信号のレベルパラメータが変更された場合には、DSPおいてその音響信号に乗算される係数が、その変更後の値に応じて変更される。フィルタ・パラメータが変更された場合には、DSPにおいてそのフィルタ処理に使用される係数が、その変更後の値に応じて変更される。エフェクト・タイプが変更された場合には、DSPが実行する処理のアルゴリズムを規定するマイクロプログラムが、その変更後の値に応じて変更される。この構成が、実カレント44に記憶された複数のパラメータに基づいて、当該被制御装置の動作を制御する動作制御部として機能する。
図12は、被制御装置4〜8のCPU(図3,4の符号20,30)が実行する、実カレント44のパラメータ値の変更結果を制御装置1〜3に通知する通知処理のフローチャートを示す。被制御装置のCPUは所定の通知周期毎に図11の処理を実行する。前記通知周期は、例えば、数ミリ秒〜数10ミリ秒周期など、制御装置1〜3のディスプレイの表示更新周期に対応する適宜の周期に設定するとよい。
ステップS14において、被制御装置のCPUは、自身のメモリ中のMPリスト46にデータペアが記録されているか否かを調べる。MPリスト46に1つ以上のデータペアが記録されている場合(ステップS14のNO)、ステップS15において、被制御装置のCPUは、MPリスト46に基づいてDATAを作成する。被制御装置のCPUはDATAを作成した後、該MPリスト46の記録内容を空にする。
DATAはMPリスト46中の全データペアに対応する1又は複数個のデータセットからなる。1つのデータセットは、1つのデータペアに対応するもので、最新の通知周期の期間内に値が変更されたパラメータの現在値P(pID)と、そのパラメータを特定するpIDと、そのパラメータ値P(pID)の変更を最後に行った制御装置を示すcIDxとを含む。被制御装置のCPUは、MPリスト46のデータペア毎に、そのデータペアのpIDにより特定される実カレント44中のパラメータ値P(pID)を取得し、該取得したパラメータ値P(pID)と、そのパラメータを特定するpIDと、該データペアのcIDxとを1セットとする1つのデータセットを作成できる。従って、或るパラメータ値P(pID)が制御装置1〜3のいずれかによるリモート制御により変更された場合は、そのパラメータ値P(pID)に関するデータセットのcIDxには、その通知周期内で最後に変更命令SETを送信した制御装置を示すrdIDがセットされる。また、或るパラメータ値P(pID)が当該被制御装置におけるローカル制御により最後に変更された場合には、そのパラメータ値P(pID)に関するデータセットのcIDxには、いずれの制御装置も示さない値「null」がセットされる。また、上述の通り、MPリスト46は1つのpIDに関するデータペアを二重に記憶しない(既存のデータペアを更新する)ので、当該通知周期内に1つのパラメータ値P(pID)が複数回変更された場合には、当該通知周期内が終わった時点での1つのパラメータ値P(pID)と、その複数回のうちの最後の変更に係る制御装置のrcID(又はnull)とがDATAに含まれることになる。
ステップS16において、被制御装置のCPUは、前記ステップS15で作成されたDATAと、当該被制御装置のrdID42を含む変更通知UPDATA(DATA,rdID)を作成する。変更通知UPDATAは、最新の通知周期における実カレント44のパラメータ値の変更結果を示すデータである。ステップS17において、被制御装置のCPUは、前記ステップS15で作成された変更通知UPDATAを、ネットワーク9上の全ての制御装置1〜3に送信する。変更通知UPDATAは、1回の送信でネットワーク9上の全ての制御装置1〜3に送信されるよう、宛先としてブロードキャストアドレスを指定してブロードキャスト送信されるか、又は、宛先として特定のグループ(全ての制御装置1〜3)を対象とするマルチキャストアドレスを指定してマルチキャスト送信される。
一方、MPリスト46が空の場合(ステップS14のYES)、被制御装置のCPUは、そのまま処理を終了する。従って、通知周期の期間内に実カレント44の複数のパラメータ値のうちの、いずれの値も変更されなかった場合には、変更通知UPDATAを送信しない。つまり、通知周期の期間内に、制御装置からの変更命令SET又は被制御装置でのパラメータ値のローカル制御(ローカルパラメータ値変更操作)によって実カレント44の少なくとも1つのパラメータ値が変更された場合にのみ、前記ステップS17による変更通知UPDATAの送信が行われる。すなわち、各pIDに関して、変更命令SETを受信して前記ステップS8により実カレント44を変更し、且つ、前記ステップS15〜S17により変更命令SETを最後に送信した制御装置を示すcIDx(第1データ)と、その変更命令SETに応じた変更結果を示すパラメータ値P(pID)(第2データ)とを含む変更通知UPDATAを生成して、複数の制御装置1〜3に送信する構成が、変更命令受付部として機能する。また、前記ステップS11によりローカルパラメータ値変更操作によって実カレント44のパラメータ値を変更し、且つ、前記ステップS15〜S17によりいずれの制御装置も示さないcIDx(第1データ)と、その変更命令SETに応じた変更結果を示すパラメータ値P(pID)(第2データ)とを含む変更通知UPDATAを生成して、複数の制御装置1〜3に送信する構成が、ローカルパラメータ値変更操作受付部として機能する。
図13は、前記ステップS17で送信された変更通知UPDATAの受信に応じて、制御装置1〜3のCPU10が実行する処理のフローチャートを示す。制御装置1〜3のCPU10は、ネットワーク9経由で、何れかの被制御装置4〜8から変更通知UPDATAを受信したとき、図13に示す処理を開始する。
ステップS18において、制御装置のCPU10は、変更通知UPDATAからrdIDを取り出して、該取り出したrdIDをメモリ11のdIDx62にセットする。制御装置のCPU10は、dIDx62にセットしたrdIDに基づいて、変更通知UPDATAの送信元の被制御装置rdIDに対応する仮想デバイスvdIDを特定する。先述したように、或る被制御装置rdIDと或る仮想デバイスvdIDとがオンライン状態にあるとき、そのvdIDはそのrdIDと同じ値を有する。なお、変更通知UPDATAにrdIDを含ませる構成でなくても、例えば、変更通知UPDATAの送信元を示すIPアドレスと一致するIPアドレス53を持つ仮想デバイスvdID52を特定し、そのvdID52を、dIDx62にセットしてもよい。要するに、変更通知UPDATAの送信元の被制御装置を特定するデータをdIDx62にセットできればよい。
ステップS19において、制御装置のCPU10は、受信した変更通知UPDATAに含まれるDATA中の1又は複数のデータセットから1つ目のデータセットを取得する。データセットを取得する順番は、例えばデータセット中のpIDに基づいて決定できる。
ステップS20において、制御装置のCPU10は、前記取得したデータセットから、パラメータ値P(pID)と、そのパラメータを特定するpIDと、cIDxとを取り出す。ステップS21において、制御装置のCPU10は、自身のメモリ11に記憶されたrcID62に基づいて、前記取り出したcIDxの値が当該制御装置のrcIDを示しているかどうかを調べる。変更通知UPDATAを受信した制御装置は、変更通知UPDATA中のデータセットに含まれるcIDxの値により、複数の制御装置1〜3のうちいずれの制御装置rcIDが該データセットに含まれるパラメータ値P(pID)の変更操作を行ったかを特定できる。
cIDxの値が当該制御装置のrcIDを示していない場合、すなわち、cIDxの値が別制御装置を示すrcIDであるか、又は、nullの場合(テップS21のNO)、ステップS22において、制御装置のCPU10は、前記ステップS18でdIDx62にセットしたrdIDに対応する仮想デバイスvdIDを特定するとともに、前記ステップS20でデータセットから取り出したpIDにより変更対象のパラメータを特定し、該特定された仮想デバイスvdIDの仮想カレント54の該特定されたパラメータ値P´(pID)を、前記ステップS20でデータセットから取り出したパラメータ値P(pID)に更新する。そして、ステップS23において、制御装置のCPU10は、前記ステップS22による仮想カレント54の変更結果に応じて、該パラメータ値P´(pID)の表示を更新する。具体的には、パラメータ調整画面70におけるノブ画像の回転位置が変更されたり、或いは、ボタン画像の点灯・消灯状態が切り替わったりする。
一方、cIDxの値が当該制御装置のrcIDを示している場合(ステップS21のYES)、制御装置のCPU10は、前記ステップS22及びS23の処理を行わずに、処理をステップS24に進める。すなわち、パラメータ値P(pID)の変更操作を行ったのが当該制御装置である場合には、実デバイスから送信された変更通知UPDATAに応じた仮想カレント54のパラメータ値変更と表示更新を行わずに、前記ステップS4及びS5にて行われた当該制御装置におけるユーザ操作に応じた仮想カレント54の変更結果及び表示更新を保持する。すなわち、前記ステップS21〜S23の処理が変更通知受付部として機能する。
ステップS24において、制御装置のCPU10は、受信した変更通知UPDATAに含まれるDATA中の1又は複数のデータセットから次のデータセットを取得して、該取得したデータセットについて前記ステップS20〜S23の処理を行う。そして、御装置のCPU10は、受信した変更通知UPDATAに含まれるDATA中で未処理データセットがなくなるまで(ステップS25のYES)、ステップS20〜S24を繰り返す。受信した変更通知UPDATAに含まれるDATA中で未処理データセットがなくなったら(ステップS25のNO)、処理を終了する。
上述の図13の処理によれば、例えば、ネットワーク9上の或る1つの制御装置においてユーザによるパラメータ値変更操作に応じた最新の変更命令を送信した後に、リモート制御に関する遅延によって該最新の変更命令よりも前の時点の変更命令に対応する古い変更通知UPDATAを被制御装置から受信したとしても、その制御装置は、前記ステップS21をYESに分岐することにより、該受信した変更通知UPDATAに応じた仮想カレント54のパラメータ値P´(pID)の変更を行わず、現在の操作子の操作状態に応じた仮想カレント54のパラメータ値P´(pID)をパラメータ調整画面70に表示できる。ネットワーク9経由で送信される変更通知UPDATAに応じた仮想カレント54の変更を行わないことにより、表示されるパラメータ値が現在の操作状態に素直に追従しない、というリモート制御に関する遅延による不都合が生じない。一方、ネットワーク9上の該制御装置とは別の制御装置では、被制御装置からその変更通知UPDATAを受信したときに、前記ステップS21をNOに分岐して、S22及びS23によって該変更通知UPDATAに応じて仮想カレント54のパラメータ値P´(pID)を変更するので、前記或る1つの制御装置でのユーザによるパラメータ値変更操作に応じた実カレント44の変更結果を、パラメータ調整画面70にてリモート監視できる。
以上説明した実施例によれば、被制御装置4〜8から各制御装置1〜3にネットワーク9経由で送信される変更通知UPDATAの各データセットに、そのデータセットに係る変更通知UPDATAに対応する変更命令SETを送信した制御装置を示すcIDx(第1データ)を含めておく構成により、該変更命令SETを送信した制御装置(ユーザによるパラメータ値変更操作を受け付けた制御装置)は、ネットワーク9経由で送信された変更通知UPDATAの当該データセットに応じて仮想カレント54を変更せず、ユーザによるパラメータ値変更操作に応じた仮想カレント54のパラメータ値を保持しておくことができるので、複数の制御装置1〜3によってネットワーク9を介して接続された被制御装置4〜8のパラメータの値をリモート制御及びリモート監視する場合に、ユーザによるパラメータ値変更操作を受け付けた制御装置の仮想カレント54に記憶するパラメータ値に対するリモート制御に関する遅延の影響を抑えることができるという優れた効果を奏する。
また、被制御装置4〜8側でのローカルパラメータ値変更操作が行われたときには、変更通知UPDATAに含まれるcIDx(第1データ)として、いずれの制御装置も示さない値「null」がセットされる(前記図11のステップS12)ので、ネットワーク9上の全ての制御装置1〜3が、その変更通知UPDATAに応じた仮想カレント54のパラメータ値P´(pID)を変更して、被制御装置側でのローカル制御の結果をリモート監視できる。
通知周期に複数のパラメータが変更されたとき、被制御装置が、変更された各パラメータに対応する複数のデータセットを1つの変更通知UPDATAに含めて、1つの変更通知UPDATAを送信するようになっていたが、別の実施形態として、該複数のデータセットをそれぞれ1つずつ、1つの変更通知UPDATA’に含めて、複数の変更通知UPDATAを送信するようにしてもよい。ただし、この実施形態では、送信するパケットが複数になるので、ネットワークの帯域をより消費してしまうという欠点がある。なお、上記実施例では変更通知UPDATAの各データセットにcIDxを含む構成を説明したが、別の構成として、変更通知UPDATA中のデータセットに、その変更通知UPDATAに対応する変更命令SETを送信した制御装置を示すcIDx(第1データ)を書き込まず、前記ステップS17で変更通知UPDATAを送信するときに、cIDxが示す制御装置rcID以外の全ての制御装置(他の制御装置)にだけ変更通知UPDATAを送信することが考えられる。変更通知UPDATAの送信には、例えば、MPリスト46の各データペアが示すcIDxが示す制御装置rcID以外の全ての制御装置(別の制御装置)のそれぞれのIPアドレス宛てに個別に変更通知UPDATAを送信する方法、或いは、cIDxが示す制御装置rcID以外の全ての制御装置(他の制御装置)で構成されるマルチキャストグループを作成して、そのグループのマルチキャストアドレス宛てに変更通知UPDATAをマルチキャスト送信する方法がある。この構成でも、前記ステップS21〜S23と同等の動作、つまり、変更通知UPDATAに対応する変更命令SETを送信した制御装置では該変更通知UPDATAに応じた仮想カレント54の変更を行わずにユーザによるパラメータ値変更操作に応じた仮想カレント54のパラメータ値を保持しておき、該変更命令SETを送信した制御装置とは別の制御装置では、該変更通知UPDATAに応じて仮想カレント54を変更するという動作を実現しうる。しかし、この構成は、MPリスト46のデータペア毎に、IPアドレス宛てに個別に変更通知UPDATAを送信するか、もしくは、マルチキャストグループを作成して、そのグループのマルチキャストアドレス宛てに変更通知UPDATAをマルチキャスト送信することになるため、cIDxを含む変更通知UPDATAを全制御装置1〜3に送信する十指例の構成に劣る。
なお、この発明を適用するリモート制御システムの構成は、前記図1に示すリモート制御システムの構成(3台の制御装置1〜3と、5台の被制御装置(音響装置)4〜8からなる構成)に限らず、複数の制御装置と少なくとも1台の被制御装置とからなるモート制御システムであればよい。また、被制御装置4〜8となる音響装置の機種は、ミキサ4、アンプ5,6、エフェクタ7及びステージボックス8に限らず、オーディオ信号に関する信号処理を行う音響装置であり、制御装置からのリモート制御及びリモート監視を受けることができるものであれば、どのような種類の音響装置でもよい。