以下、この発明の実施の形態を添付図面に従って詳細に説明する。
図1は、この発明に係る電子音楽装置の全体構成を示したハード構成ブロック図である。本実施例に示す電子音楽装置は例えば電子楽器であって、マイクロプロセッサユニット(CPU)1、リードオンリメモリ(ROM)2、ランダムアクセスメモリ(RAM)3からなるマイクロコンピュータによって制御される。CPU1は、この電子音楽装置全体の動作を制御するものである。このCPU1に対して、データ及びアドレスバス1Dを介してROM2、RAM3、検出回路4,5A、表示回路5B,6、音源回路7、効果回路8、外部記憶装置9、MIDIインタフェース(I/F)10および通信インタフェース(I/F)11がそれぞれ接続されている。更に、CPU1には、タイマ割込み処理(インタラプト処理)における割込み時間や各種時間を計時するタイマ1Aが接続されている。例えば、タイマ1Aはクロックパルスを発生し、発生したクロックパルスをCPU1に対して処理タイミング命令として与えたり、あるいはCPU1に対してインタラプト命令として与える。CPU1は、これらの命令に従って各種処理を実行する。
ROM2は、CPU1により実行される各種プログラムや各種データを格納するものである。RAM3は、CPU1が所定のプログラムを実行する際に発生する各種データを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを記憶するメモリ等として使用される。RAM3の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、バッファメモリなどとして利用される。この実施例においては、例えば曲管理データに基づいて外部記憶装置9から読み出された1曲で使用する分の複数のレジストレーションデータ(後述する図2参照)の全てを一時記憶するデータメモリなどとして利用される(内蔵RAMに相当する)。
操作子4Aは、例えば楽音の音高を選択するための複数の鍵を備えた鍵盤等の演奏操作子、あるいは演奏対象の曲データや伴奏データ等を選択する演奏データ選択スイッチ、曲データや伴奏データ等の再生開始・停止を指示する自動演奏スイッチ、楽音の発生環境を変更するための操作子として、例えば複数のレジストレーションデータのいずれかを選択的又は順次に切り替えるための操作子(フットペダルなど)、1つのレジストレーションデータに含まれる複数のプリセットデータ(チャンクとも呼ぶ)のいずれかを選択的又は順次に指定するための操作子などである。勿論、これら以外にも、音高、音色、効果等を選択・設定・制御するために用いる数値データ入力用のテンキーや文字データ入力用のキーボードなどの各種操作子を含んでいてよい。検出回路4は、上記各操作子やスイッチ類の操作状態を検出し、その操作状態に応じた操作情報をデータ及びアドレスバス1Dを介してCPU1に出力する。なお、鍵盤等の演奏操作子は楽音演奏(マニュアル演奏)のために使用できるのは勿論のこと、曲データの選択やレジストレーションデータの切り替えを行うための手段などとして使用することもできる。
表示回路4は、レジストレーションデータの新規作成や編集あるいはレジストレーションデータに基づく楽音の発生環境の切り替えなどを行うためのソフトスイッチ(ソフト操作子)等を含む画面(後述する図3参照)やCPU1の制御状態などを、液晶画面(LCD)等からなるタッチパネル5Cに表示する。すなわち、上記操作子4Aは物理的に構成された操作子やスイッチ類等により実現することに限らず、タッチパネル5Cと共同して動作するソフトウェアによるソフトスイッチ(ソフト操作子)により実現されてもよい。ただし、その場合にはタッチパネル5C上でのユーザ操作を検知する検出回路5Aによって上記ソフトスイッチの操作状態が検出される。こうしたソフトスイッチ(ソフト操作子)の具体例については後述する(後述する図3参照)。ユーザは該タッチパネル5Cに表示されるこれらの各種情報を参照しながらタッチパネル5Cに触れることにより、レジストレーションデータの切り替えやプリセットデータの選択等を行うことができる。なお、タッチパネル5Cは液晶画面に限らない。
LED表示器6Aは面上に配置された多数のLEDから構成されるディスプレイであって、選択されたレジストレーションデータや曲データ等の表示(例えばデータ番号や曲名など)、当該機器における楽音の発生環境の設定状況などを、表示回路6によるLEDの点灯制御に従って表示する。
音源回路7は複数のチャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス1Dを経由して与えられた、ユーザによる演奏操作子の操作に応じて発生される、あるいは曲データ等の再生に基づき発生される各種演奏情報を入力し、これらの演奏情報に基づいて楽音信号を発生する。音源回路7から発生された楽音信号は、効果回路8を介して効果付与されてアンプやスピーカなどを含むサウンドシステム8Aから発音される。この実施例において、音源回路7及び効果回路8は、1つのレジストレーションデータに含まれる複数のプリセットデータの組み合わせを選択的又は順次に指定する操作子4Aの操作に応じて、各操作子4Aに割り当てられた複数のプリセットデータの組み合わせに従う楽音の発生環境を制御して楽音信号を発生する。こうした音源回路7と効果回路8とサウンドシステム8Aの構成には、従来のいかなる構成を用いてもよい。例えば、音源回路7はFM、PCM、物理モデル、フォルマント合成等の各種楽音合成方式のいずれを採用してもよく、また専用のハードウェアで構成してもよいし、CPU1によるソフトウェア処理で構成してもよい。
外部記憶装置9は、曲データや伴奏データ、曲管理データやレジストレーションデータなどの各種データ、さらにはCPU1が実行する各種制御プログラムなどを記憶する。例えばユーザが購入した電子楽器(電子音楽装置)には、曲データ及びそれに対応付けられた曲管理データ、曲管理データが管理する複数のレジストレーションデータがハードディスクやフレキシブルディスク等の外部記憶装置9に予め多数記憶されている。なお、上述したROM2に制御プログラムが記憶されていない場合、この外部記憶装置9(例えばハードディスク)に制御プログラムを記憶させておき、それをRAM3に読み込むことにより、ROM2に制御プログラムを記憶している場合と同様の動作をCPU1にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、外部記憶装置9はハードディスク(HD)に限られず、フレキシブルディスク(FD)、コンパクトディスク(CD‐ROM・CD‐RAM)、光磁気ディスク(MO)、あるいはDVD(Digital Versatile Disk)等の着脱自在な様々な形態の外部記憶媒体を利用する記憶装置であればどのようなものであってもよい。あるいは、フラッシュメモリなどの半導体メモリ(例えばUSBメモリ)であってもよい。
MIDIインタフェース(I/F)10は、外部接続された他のMIDI機器10A等からMIDI形式の曲データや伴奏データなどの演奏データ(MIDIデータ)を当該電子楽器へ入力したり、あるいは当該電子楽器からMIDIデータを他のMIDI機器10A等へ出力するためのインタフェースである。他のMIDI機器10Aはユーザによる操作に応じてMIDIデータを発生する機器であればよく、鍵盤型、弦楽器型、管楽器型、打楽器型、身体装着型等どのようなタイプの操作子を具えた(若しくは、操作形態からなる)機器であってもよい。なお、MIDIインタフェース10は専用のMIDIインタフェースを用いるものに限らず、RS-232C、USB(ユニバーサル・シリアル・バス)、IEEE1394(アイトリプルイー1394)等の汎用のインタフェースを用いてMIDIインタフェース10を構成するようにしてもよい。この場合、MIDIイベントデータ以外のデータをも同時に送受信するようにしてもよい。勿論、演奏データのデータフォーマットはMIDI形式のデータに限らず他の形式であってもよく、その場合はMIDIインタフェース10と他のMIDI機器10Aはそれにあった構成とする。
通信インタフェース(I/F)11は、例えばLANやインターネット、電話回線等の有線あるいは無線の通信ネットワークXに接続されており、該通信ネットワークXを介してサーバコンピュータ11Aと接続され、当該サーバコンピュータ11Aから制御プログラムあるいは各種データなどを電子音楽装置側に取り込むためのインタフェースである。すなわち、ROM2や外部記憶装置9(例えば、ハードディスク)等に制御プログラムや各種データが記憶されていない場合には、サーバコンピュータ11Aから制御プログラムや各種データをダウンロードするために用いられる。例えば、ハードディスクに曲データや曲管理データさらにはレジストレーションデータが記憶されていなくても、通信インタフェース(I/F)11及び通信ネットワークXを介して接続されたサーバコンピュータ11Aから、曲データや曲管理データさらにはレジストレーションデータを取得してハードディスクや内蔵RAM等に書き込んで記憶することができる。なお、通信インタフェース11は、有線あるいは無線のものいずれかでなく双方を具えていてよい。
なお、演奏操作子は鍵盤楽器の形態に限らず、ギター型、管楽器型、打楽器型、身振り型等どのようなタイプの操作子形態であってもよい。フットペダルであってもよい。また、上述した電子音楽装置は操作子4Aやタッチパネル5Cあるいは音源回路7などを1つの装置本体に内蔵したものに限らず、それぞれが別々に構成され、MIDIインタフェースや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものであってもよいことは言うまでもない。さらに、本発明に係る電子音楽装置は上記したような電子楽器の形態に限らず、パーソナルコンピュータやカラオケ装置やゲーム装置など、どのような形態の装置・機器に適用してもよい。
ここで、曲管理データ及びレジストレーションデータについて図2を用いて説明する。図2(a)は曲管理データの一実施例を示し、図2(b)は1曲で使用される分の複数のレジストレーションデータそれぞれのデータ構造の一実施例を示す概念図である。
図2(a)に示すように、曲管理データは、曲データ毎に曲の演奏進行順に順次に使用する1乃至複数のレジストレーションデータとの対応付け関係(リンクとも呼ぶ)を示すデータである。ここに示す実施例においては、曲データ1に対して1〜4の4つのレジストレーションデータを、曲データ2に対して2及び5の2つのレジストレーションデータを、曲データmに対してnの1つのレジストレーションデータをそれぞれ関連付けている。各曲の演奏開始前にはこうした曲管理データを参照することにより、当該曲に関連付けられた1乃至複数のレジストレーションデータの全てを外部記憶装置9から読み出してRAM3(内蔵RAM)に記憶しておくことができる。
図2(b)に示すレジストレーションデータは、1曲を演奏する際に予め設定しておく必要のある楽音の発生環境を含む当該電子音楽装置の演奏環境を設定するデータであって、この実施例に示すレジストレーションデータのように、個々のレジストレーションデータは例えばレジスト、ユーザボイス、KBP(キーボードパーカッション)、ユーザリズム、その他の各プリセットデータ(チャンクとも呼ぶ)を含む。勿論、レジストレーションデータに含まれるプリセットデータは、当該電子音楽装置の演奏環境を設定するものであればいかなる種類のデータであってもよく、レジストレーションデータにいくつも定義してあってもよい。すなわち、レジストレーションデータにはここに示したレジスト、ユーザボイス、KBP、ユーザリズム、その他といった種類以外のプリセットデータやプリセットデータ以外のデータも含まれていてよいが、本発明を説明する上では必須のものではないため、その説明を省略する。
レジストは、複数の異なる楽音の発生環境をそれぞれ割り当てる操作子を指定するアサイン情報である。例えば、アサインする操作子が16個である場合には、レジストは16個のアサイン情報からなる。各アサイン情報は、例えばピッチシフト量および音量、各楽音間の音量バランス、楽音信号に付与する効果を制御するためのパラメータなどの楽音の発生環境を設定する情報、またその際に以下に示すユーザボイス,KBP,ユーザリズムを使用する場合における該当するデータを指定する情報などを含んでいる。すなわち、レジストはアサイン情報ごとに複数のプリセットデータの組み合わせを変えて定義することで、特定の複数の操作子それぞれに異なる楽音の発生環境を割り当てるための情報と言える。こうしたレジストに従って複数のプリセットデータの組み合わせに応じた異なる楽音の発生環境が特定の複数の操作子それぞれに割り当てられるので、ユーザはそれらの操作子を操作するだけで簡単に楽音の発生環境を変更することができる。
ユーザボイスは例えばユーザが作成したユーザ音色など、ユーザリズムはユーザが作成した拍子やテンポあるいはリズムパターンなどの、マニュアル演奏及び/又は自動演奏の際に用いる楽音の発生環境として、機器に予め用意された音色やリズムではなくユーザ自ら作成・追加した音色やリズム等を使用するように指示するための情報である。KBP(キーボードパーカッション)は、演奏操作子の一部からその操作に応じて打楽器音を発するように予め決められた演奏操作子にユーザボイスではなく打楽器音(ドラム音色など)を割り当てるための情報である。その他としては上記以外の情報、例えばアルペジオ演奏パターン又はアルペジオ演奏自体を表すアルペジオデータ、楽曲の短いフレーズを表すフレーズデータ、さらにはマーチ、ワルツ、ジャズなどの伴奏スタイルごとに設けた伴奏パターンデータなどの、単独で楽音の発生を制御可能である演奏データまたは演奏操作子の操作と関連して楽音の発生を制御可能である伴奏データなどであってよい。
個々のレジストレーションデータにおいて上記各プリセットデータは、各データの先頭にデータ種類毎に固有の識別番号であるデータID(図中において「dd dd dd dd」と記載)が付されており、このデータIDによってレジストレーションデータ内において各プリセットデータの識別を行うことができるようにしている。バイトカウンタは、記憶済みの各プリセットデータの実体データのサイズ(記憶容量)を記載するための例えば4バイトからなるデータである(図中において「00 xx xx xx」と記載)。実体データは各データ種類に対応したデータ形式で記述される上記した各種の情報であって(図中において「xx ・・」と記載)、本電子音楽装置に用意されたデータ種類毎のレジスタに設定されることで該電子音楽装置の演奏環境を実現する、例えばパラメータ値や波形データあるいはパターンデータなどである。
ただし、本実施例において、1曲中で使用される複数のレジストレーションデータのいずれか1つに同じ内容を示す実体データが記憶されているような場合に、その他のレジストレーションデータには該当するプリセットデータに同じ内容を示す同一の実体データを記憶していない。言い換えれば、そのようにレジストレーションデータを生成してある。該当する実体データを記憶していないプリセットデータは、バイトカウンタの先頭ビットを「1」とし、それ以外のビットを参照すべき実体データを記憶している他のレジストレーションデータのデータ番号とする。図2(b)に示す実施例において、例えば第2レジストレーションデータ(REG002)自体はユーザボイス及びユーザリズムに関して実体データを記憶せず、ユーザボイス及びユーザリズムについては第1レジストレーションデータ(REG001)のユーザボイス及びユーザリズムの実体データをそれぞれ参照すればよい場合には、第2レジストレーションデータのそれぞれのバイトカウンタを「80 00 00 01」とする。また、第3レジストレーションデータ(REG003)のKBPは第2レジストレーションデータ(REG002)のKBPを、第3レジストレーションデータ(REG003)のユーザリズムは第1レジストレーションデータ(REG001)のユーザリズムを参照すればよい場合には、第3レジストレーションデータのそれぞれのバイトカウンタを「80 00 00 02」,「80 00 00 01」とする。
次に、タッチパネル5Cに表示される画面であって、1曲で使用する分の1乃至複数のレジストレーションデータについて読み込み/編集/新規作成等を行うことが可能な「レジスト画面」について、図3を用いて説明する。図3は、「レジスト画面」の一実施例を示す概念図である。
図3(a)に示すように、レジストレーションデータ表示領域Aには、1曲で使用する分の1乃至複数のレジストレーションデータ(つまり内蔵RAMに記憶されているレジストレーションデータ)がそれぞれ個別のソフトスイッチとして表示される。この表示領域Aに表示されるレジストレーションデータ選択スイッチSW1は、曲管理データに基づくレジストレーションデータのシーケンス順にあわせて表示されており、ユーザ操作に応じて表示に対応するレジストレーションデータが1つ特定されるようになっている。表示領域Aに一度に表示可能なレジストレーションデータ選択スイッチSW1の数は例えば5個であって、1曲で使用する分のレジストレーションデータがそれ以上の場合には「移動」スイッチSW2の操作に応じて、曲管理データに規定されたレジストレーションデータのシーケンスにあわせてレジストレーションデータ選択スイッチSW1を上又は下に移動させるようにして、表示されていない前後するレジストレーションデータ選択スイッチSW1を追加表示する。
なお、レジストレーションデータの特定に関し、演奏時でない場合(例えばデータ編集中)にはユーザが表示中のレジストレーションデータ選択スイッチSW1を適宜に操作して、1つのレジストレーションデータを任意に特定するが、演奏時にはユーザが表示中のレジストレーションデータ選択スイッチSW1を操作することがなくとも、曲管理データに基づき演奏進行にあわせて自動的に1つのレジストレーションデータを特定するようにしてよい。また、特定されたレジストレーションデータに対応するレジストレーションデータ選択スイッチSW1は、他と区別できるよう表示態様を変更するとよい。図示の例ではレジストレーションデータ2が特定され、対応する2番目のレジストレーションデータ選択スイッチSW1に斜線を施してある。
プリセットデータ表示領域Bには、特定されたレジストレーションデータに含まれる複数のプリセットデータがソフトスイッチとして表示される。この実施例においてレジストレーションデータは上述したようにレジスト、ユーザボイス、KBP、ユーザリズム、その他の各プリセットデータを含むことから、それらのデータ種類に対応したプリセットデータ選択スイッチSW3が表示される。この表示領域Bに表示されるプリセットデータ選択スイッチSW3は、ユーザ操作に応じて表示に対応するプリセットデータが1つ特定されるようになっている。
このプリセットデータ選択スイッチSW3を表示する際に、実体データが記憶されていないプリセットデータについては、参照すべき実体データを記憶している先のレジストレーションデータを示す表示をスイッチ本体とは別に表示する。例えば第2レジストレーションデータ(REG002)のユーザボイス及びユーザリズムが実体データを記憶せずに、第1レジストレーションデータ(REG001)のユーザボイス及びユーザリズムの実体データをそれぞれ参照するような場合には、「ユーザボイス」及び「ユーザリズム」の各プリセットデータ選択スイッチSW3の近傍の所定位置に、それぞれが参照すべき実体データを記憶している先のレジストレーションデータを示す表示「REG001と同じ」C(参照データである旨を表す)と表示する。
該「レジスト画面」には、複数のレジストレーションデータ及び各レジストレーションデータに含まれる複数のプリセットデータをそれぞれ選択(特定)するためのソフトスイッチSW1,SW3が表示されるだけでなく、予め決められたデータ操作のための各種ソフトスイッチがいくつか表示されるようになっている。ここでは、「一覧」スイッチSW4、「読み込み」スイッチSW5、「保存」スイッチSW6、「コピー」スイッチSW7、「削除」スイッチSW8を一例として挙げた。順に説明すると、「一覧」スイッチSW4は、表示領域Aに表示されたレジストレーションデータに含まれる各プリセットデータの内容を一覧表示するためのスイッチである。すなわち、この「一覧」スイッチSW4の操作に応じて前記「レジスト画面」に代わってタッチパネル5Cに「一覧表示画面」が表示される。
ここで「一覧表示画面」の一実施例を示すと、図3(b)のようになる。図3(b)に示す「一覧表示画面」は、「レジスト画面」の表示領域Aに表示されているレジストレーションデータ選択スイッチSW1に対応するレジストレーションデータに関し、実体データが記憶されていないプリセットデータについて、参照すべき実体データを記憶している先のレジストレーションデータを示す表示を上記「レジスト画面」と同様に表示するものである(例えば「REG001と同じ」など)。すなわち、プリセットデータ種類毎に参照データの有無を表示する。「戻る」スイッチSW9は、前記「レジスト画面」に表示を戻すためのスイッチである。
図3(a)の説明に戻って、「読み込み」スイッチSW5は特定されたレジストレーションデータを適用するためのスイッチである。すなわち、この「読み込み」スイッチSW5の操作に応じて、外部記憶装置9から読み出されて内蔵RAM3に一時的に記憶されたレジストレーションデータの中から特定されたレジストレーションデータを読み出して、該読み出したレジストレーションデータの各プリセットデータの実体データ(チャンク)を、楽音の発生環境を機器に対して設定するための本電子音楽装置に用意されている所定のレジスタ群に一括設定する。各プリセットデータの実体データを所定のレジスタ群に一括設定することにより、予め決められた複数(例えば16個)の操作子のそれぞれが楽音の発生環境を変更するための操作子として機能するようになる。なお、レジストレーションデータに含まれる複数のプリセットデータの実体データを所定のレジスタ群に一括設定することに限らず、任意のプリセットデータの実体データを対応するレジスタに設定することで、楽音の発生環境の一部のみを変更することもできる。その場合には、レジストレーションデータ選択スイッチSW1の操作に加えてプリセットデータ選択スイッチSW3を操作してから、「読み込み」スイッチSW5を操作する。
「保存」スイッチSW6は、物理的な操作子やスイッチ等を操作して当該機器設定されている現状の楽音の発生環境に関する設定状態(詳しくは所定のレジスタ群のプリセットデータに対応した各レジスタに記憶されているデータ内容)を、レジストレーションデータに上書きして保存するためのスイッチである。すなわち、この「保存」スイッチSW6の操作に応じて、楽音の発生環境を設定するために本電子音楽装置に用意されている所定のレジスタ群から実体データ(物理的な操作子やスイッチ等を操作して設定されているパラメータ値や、ユーザが作成あるいは追加した波形データ等)を読み出し、レジストレーションデータの該当のプリセットデータに上書きする。上書きするレジストレーションデータの特定は、レジストレーションデータ選択スイッチSW1を操作することによる。また、レジストレーションデータ選択スイッチSW1の操作に加えてプリセットデータ選択スイッチSW3を操作してから「保存」スイッチSW6を操作することで、レジストレーションデータに含まれる複数のプリセットデータのうち該当するプリセットデータのみを上書きすることもできる。
「コピー」スイッチSW7は、既存のあるレジストレーションデータを他の既存又は新規のレジストレーションデータに複写(コピー)するためのスイッチである。すなわち、この「コピー」スイッチSW7の操作に応じて、同じプリセットデータからなるレジストレーションデータを作成することができる。勿論、この場合にも、レジストレーションデータに含まれる複数のプリセットデータのうち該当するプリセットデータのみをコピーすることもできる。
「削除」スイッチSW8は、1曲分で使用する複数のレジストレーションデータの中から所望のレジストレーションデータを削除するためのスイッチである。ここでの削除とは、後述するように、レジストレーションデータを外部記憶装置9及び内蔵RAM3から実体データを消去する場合もあれば、レジストレーションデータから実体データへのリンク情報(対応付け関係)を削除する場合もある。
ユーザは、上記「レジスト画面」を用いて既存のレジストレーションデータのデータ操作を行うだけでなく、レジストレーションデータを新規に作成することもできる。簡単に説明すると、まずユーザは物理的な操作子やスイッチ等を操作してレジストレーションデータとして保存しておきたい楽音の発生環境の設定を行っておく。また、実体データを記憶していない空のレジストレーションデータを作成しておき、これを曲管理データに規定しておく。曲データを選択して上記「レジスト画面」をタッチパネル5Cに表示させ、レジストレーションデータ選択スイッチSW1及び「コピー」スイッチSW7を操作して既存のレジストレーションデータを前記空のレジストレーションデータにコピーする。そして、任意のプリセットデータを指定した上で「保存」スイッチSW6を操作することで、レジストレーションデータに含まれる複数のプリセットデータのうち該当するプリセットデータのみを当該機器において設定済みの現状の楽音の発生環境で上書きする。あるいは、先に「保存」スイッチSW6を操作して、空のレジストレーションデータのプリセットデータ全てを現状の楽音の発生環境で設定しておき、さらに任意のプリセットデータを指定した上で「コピー」スイッチSW7を操作することで、所望のプリセットデータのみを既存のレジストレーションデータのものに設定するようにしてもよい。このようにして、ユーザは新規のレジストレーションデータを作成することができる。
次に、上記「レジスト画面」(図3(a)参照)に表示された各ソフトスイッチの操作に応じたデータ処理を実行する「レジスト画面処理」について、図4を用いて説明する。図4は、「レジスト画面処理」の一実施例を示すフローチャートである。当該処理の前に、ユーザが設定操作子の操作によって曲データを選択し、その曲データに対応するレジストレーションデータの全体が外部記憶装置9からRAM3に読み込まれているものとする。当該処理中のステップS3の「表示更新」またはステップS8の「一覧表示」またはステップS11の「読み込み」によって、外部記憶装置9からRAM3にコピーされたレジストレーションデータが読み出され、表示や実機への適用がなされる。また、ステップS13の「保存」またはステップS15の「データをコピーする」またはステップS17の「削除」によってRAM3及び外部記憶装置9のレジストレーションデータが変更されることになる。なお、ここでは「レジスト画面」におけるレジストレーションデータ表示領域Aの表示更新については考慮していない。
ステップS1は、「レジスト画面」におけるレジストレーションデータ表示領域Aに表示された先頭のレジストレーションデータ選択スイッチSW1に対応するレジストレーションデータをデフォルトの編集対象に設定する。ステップS2はチャンク(プリセットデータ)選択をリセットし、前記設定したレジストレーションデータに含まれる複数チャンクのいずれもが選択されていない状態(あるいは全てのチャンクが選択されている状態)に初期設定する。ステップS3は「表示更新処理」(後述する図5参照)を実行し、タッチパネル5Cの「レジスト画面」(図3参照)を表示更新する。上記ステップS1〜ステップS3までの一連の処理は、データ処理のための前準備のための処理である。
上記「表示更新処理」(図4のステップS3参照)について、図5を用いて説明する。図5は、「表示更新処理」の一実施例を示すフローチャートである。
ステップS21は、データ読み出し位置を(デフォルト又は任意に特定された)編集対象のレジストレーションデータに設定する。ステップS22は、該レジストレーションデータに含まれるチャンクを1つずつ順に処理対象とする。この際に、対応するプリセットデータ選択スイッチSW3の表示が行われる。ステップS23は、対象としたチャンクは他のレジストレーションデータに記憶されている該当チャンクの実体データを参照するデータ(参照データと呼ぶ)であるか否かを判定する。この判定は、対象とされたチャンクのバイトカウンタを参照すればよい。対象としたチャンクが参照データである場合には(ステップS23のyes)、当該チャンクが実体データを記憶しておらず、他のレジストレーションデータに記憶された実体データを参照する必要がある参照データであることから、参照すべき実体データを記憶している先のレジストレーションデータを示す表示を「レジスト画面」に表示する(ステップS24)。具体的には図3(a)に示したように、プリセットデータ選択スイッチSW3の近傍に「REG001と同じ」Cといった表示である。
ステップS25は、レジストレーションデータに含まれる全てのチャンクについて上記ステップS23及びS24の処理を実行したか否かを判定する。レジストレーションデータに含まれる全てのチャンクについて上記ステップS23及びS24の処理を実行したと判定した場合には(ステップS25のyes)、当該処理を終了する。レジストレーションデータに含まれる全てのチャンクについて上記ステップS23及びS24の処理を実行していないと判定した場合には(ステップS25のno)、ステップS22の処理に戻って上記ステップS22〜S24までの処理を繰り返し実行する。このようにして、該処理では「レジスト画面」におけるプリセットデータ表示領域Bに対する表示更新が行われる。
図4の説明に戻って、ステップS4は、編集対象とするレジストレーションデータの切り替え操作が行われたか否かを判定する。この切り替え操作は、ユーザが「レジスト画面」のレジストレーションデータ選択スイッチSW1のいずれかをタッチすることに応じて行われてもよいし、曲管理データに基づき行われてもよい。編集対象とするレジストレーションデータの切り替え操作が行われたと判定した場合には(ステップS4のyes)、編集対象を特定されたレジストレーションデータに切り替えると共に(ステップS5)、チャンク選択をリセットする(ステップS6)。その後、ステップS3の処理に戻る。
他方、編集対象とするレジストレーションデータの切り替え操作が行われていないと判定した場合には(ステップS4のno)、ユーザが「レジスト画面」の「一覧」スイッチSW4をタッチするといった一覧表示操作が行われたか否かを判定する(ステップS7)。一覧表示操作が行われたと判定した場合には(ステップS7のyes)、「レジスト画面」のレジストレーションデータ表示領域Aに表示されているレジストレーションデータに関し「一覧表示処理」(後述する図6参照)を実行し、図3(b)に示した「一覧表示画面」をタッチパネル5Cに表示する(ステップS8)。
ステップS9は、「レジスト画面」のプリセットデータ選択スイッチSW3のいずれかをタッチするといったユーザ操作に応じてチャンクを選択する。ステップS10は、「レジスト画面」に表示された「読み込み」スイッチSW5をタッチするといったレジストレーションデータの読み込み操作(楽音の発生環境の切り替え操作)が行われたか否かを判定する。レジストレーションデータの読み込み操作が行われたと判定した場合には(ステップS10のyes)、編集対象のレジストレーションデータに関しデータの「読み込み処理」(後述する図7参照)を実行し、異なる楽音の発生環境を複数含んでなる当該装置における演奏環境の切り替えを行う(ステップS11)。
ステップS12は、「レジスト画面」の「保存」スイッチSW6をタッチすることによる、レジストレーションデータへの現状の楽音の発生環境の保存操作が行われたか否かを判定する。現状の楽音の発生環境の保存操作が行われたと判定した場合には(ステップS12のyes)、ユーザによる物理的な操作子やスイッチ等の操作に応じて設定済みの楽音の発生環境に関するパラメータ値や各種データ等を編集対象のレジストレーションデータに保存する「保存処理」(後述する図8参照)を実行し、後日同じ楽音の発生環境を簡単に再現できるようにするために、楽音の発生環境の現況をレジストレーションデータとして保存しておく。
ステップS14は、ユーザが「レジスト画面」の「コピー」スイッチSW7をタッチすることによるレジストレーションデータ(あるいは各プリセットデータ)のコピー操作が行われたか否かを判定する。レジストレーションデータのコピー操作が行われたと判定した場合には(ステップS14のyes)、一方のレジストレーションデータを他方のレジストレーションデータにコピーする(ステップS15)。ただし、この場合には単純にレジストレーションデータ全体をコピーするのではなく、各プリセットデータの実体データについては実体データそのものをコピーすることなく、対応するバイトカウンタをコピー元のレジストレーションデータを指定する値に設定することは言うまでもない。勿論、コピー元のレジストレーションデータの各プリセットデータにおいて実体データを記憶していない場合には、コピー元の対応するバイトカウンタをそのままコピーすればよい。このように、該コピー操作によってはコピー元のレジストレーションデータから実体データそのものがコピーされて、別のレジストレーションデータに同じ実体データが記憶されることがない。
ステップS16は、ユーザが「レジスト画面」の「削除」スイッチSW8をタッチすることによるレジストレーションデータの削除操作が行われたか否かを判定する。レジストレーションデータの削除操作が行われたと判定した場合には(ステップS16のyes)、編集対象のレジストレーションデータを削除する「削除処理」(後述する図9参照)を実行し(ステップS17)、編集対象のレジストレーションデータを削除する。その後、ステップS3の処理に戻る。一方、レジストレーションデータの削除操作が行われていないと判定した場合には(ステップS16のno)、ステップS4の処理へ戻る。
次に、上記「レジスト画面処理」において実行される「一覧表示処理」(図4のステップS8参照)について、図6を用いて説明する。図6は、「一覧表示処理」の一実施例を示すフローチャートである。
ステップS31は、データ読み出し位置を「レジスト画面」におけるレジストレーションデータ表示領域Aに表示された先頭のレジストレーションデータ選択スイッチSW1に対応するレジストレーションデータに設定する。ステップS32は、既に説明した上記「表示更新処理」(図5参照)を実行する。これにより、図3(a)に示した「レジスト画面」から図3(b)に示した「一覧表示画面」にタッチパネル5Cの表示が更新され、レジストレーションデータ表示領域Aに表示されているレジストレーションデータ選択スイッチSW1に対応する複数のレジストレーションデータについて、前記「一覧表示画面」においてプリセットデータ種類毎に参照データの有無が表示される。
ステップS33は、レジストレーションデータ表示領域Aに表示されたレジストレーションデータ選択スイッチSW1に対応する全てのレジストレーションデータについて、ステップS32の処理を実行したか否かを判定する。全てのレジストレーションデータについてステップS32の処理を実行していないと判定した場合には(ステップS33のno)、レジストレーションデータ表示領域Aに表示されたレジストレーションデータ選択スイッチSW1に対応する次のレジストレーションデータを編集対象のレジストレーションデータとして、ステップS32の処理に戻って「表示更新処理」(図5参照)を繰り返し実行する。全てのレジストレーションデータについてステップS32の処理を実行したと判定した場合には(ステップS33のyes)、ユーザが「一覧表示画面」の「戻る」スイッチSW9をタッチすることによる戻る操作が行われたか否かを判定する(ステップS34)。戻る操作が行われたと判定した場合には(ステップS34のyes)、当該処理を終了し、図3(b)に示した「一覧表示画面」から図3(a)に示した「レジスト画面」にタッチパネル5Cの表示を戻す。
上記「レジスト画面処理」において実行される「読み込み処理」(図4のステップS11参照)について、図7を用いて説明する。図7は、「読み込み処理」の一実施例を示すフローチャートである。
ステップS41は、データ読み出し位置を編集対象のレジストレーションデータの先頭に設定する。ステップS42は、該レジストレーションデータに含まれるチャンクを1つずつ順に対象とする。ステップS43は、対象とされたチャンクがプリセットデータ選択スイッチSW3の操作等によって選択されているチャンクであるか否かを判定する。対象とされたチャンクが選択されているチャンクでないと判定した場合には(ステップS43のno)、ステップS48の処理へジャンプする。一方、対象とされたチャンクが選択されているチャンクであると判定した場合には(ステップS43のyes)、対象とされたチャンクは他のレジストレーションデータに記憶されている実体データを参照するデータ(参照データ)であるか否かを判定する(ステップS44)。この判定は、対象とされたチャンクのバイトカウンタを参照すればよい。
対象とされたチャンクが参照データであると判定した場合には(ステップS44のyes)、指定されたレジストレーションデータは当該チャンクに関して実体データを記憶していないことから、バイトカウンタに基づき参照先の他のレジストレーションデータを指定し、該指定したレジストレーションデータから該当するチャンクの実体データを読み出す(ステップS45)。他方、対象とされたチャンクが参照データでないと判定した場合には(ステップS44のno)、指定されたレジストレーションデータは当該チャンクに関して実体データを記憶していることから当該実体データを読み出せばよい(ステップS46)。ステップS47は、読み出したチャンクの実体データをデータIDに応じて、楽音の発生環境を設定するために本電子音楽装置に用意された所定のレジスタ群のうち該当のレジスタに記憶させる。ただし、既に該当のレジスタに参照先の他のレジストレーションデータに基づく実体データが記憶されている場合には、参照先のレジストレーションデータから該当するチャンクの実体データを読み出して該レジスタに記憶する(コピーする)処理を行わなくてよい。これにより、その分だけ演奏環境の切り替えに係る時間を短縮することができる。
ステップS48は、レジストレーションデータに含まれる全てのチャンクについて上記ステップS42〜S47までの処理を実行したか否かを判定する。レジストレーションデータに含まれる全てのチャンクについて上記ステップS42〜S47までの処理を実行したと判定した場合には(ステップS48のyes)、当該処理を終了する。レジストレーションデータに含まれる全てのチャンクについて上記ステップS42〜S47までの処理を実行していないと判定した場合には(ステップS48のno)、ステップS42の処理に戻って上記ステップS42〜S47までの処理を繰り返し実行する。
上記「レジスト画面処理」において実行される「保存処理」(図4のステップS13参照)について、図8を用いて説明する。図8は、「保存処理」の一実施例を示すフローチャートである。
ステップS51は、編集対象のレジストレーションデータに含まれるチャンクを1つずつ順に対象とする。ステップS52は、対象とされたチャンクがプリセットデータ選択スイッチSW3の操作等によって保存対象として選択されているチャンクであるか否かを判定する。保存対象として選択されているチャンクでないと判定した場合には(ステップS52のno)、ステップS51の処理へジャンプする。一方、保存対象として選択されているチャンクであると判定した場合には(ステップS52のyes)、現状の楽音の発生環境を上書きする先のチャンクが他のレジストレーションデータに記憶されている該当するチャンクの実体データを参照しているデータ(参照データ)であるか否かを判定する(ステップS53)。
上書きする先のチャンクが参照データでないと判定した場合、つまり該当のチャンクに関して実体データを記憶している場合には(ステップS53のno)、保存先以外の全てのレジストレーションデータを順に参照し、上書きする先の(上書きされる)チャンクを参照している他のレジストレーションデータがあるか否かを検索する(ステップS60)。ステップS61は、前記検索に従い上書きする先のチャンクを参照している他のレジストレーションデータがあるか否かを判定する。上書きする先のチャンクを参照している他のレジストレーションデータがある場合には(ステップS61のyes)、上書きする先のチャンクを参照している他のレジストレーションデータのうちのいずれか1つだけ(例えば曲管理データに規定されたシーケンス順が早いもの、あるいはレジストレーションデータのデータ番号が小さいものなど)について、そのレジストレーションデータが記憶する該当チャンクの参照データを、上書きする先のチャンクにおける上書き前の実体データで置き換える(すなわち実体データをコピーする)(ステップS62)。そして、上書きする先のチャンクの実体データを参照している他のレジストレーションデータについて、参照データが実体データに置き換えられたレジストレーションデータを新たな参照先とするように参照データを変更する(ステップS63)。すなわち、実体データをコピーすることなく、バイトカウンタを参照先のレジストレーションデータを示すように変更するだけでよい。
一方、上書きする先のチャンクが参照データであると判定した場合(ステップS53のyes)、又は上書きする先のチャンクを参照している他のレジストレーションデータがない場合(ステップS61のno)、さらにはステップS63の処理後には、楽音の発生環境を設定するための所定のレジスタ群のうち対応するレジスタから、当該チャンクに関する実体データを生成する(ステップS54)。ステップS55は、保存先以外の全てのレジストレーションデータを順に参照し、前記生成した実体データと対応するチャンクの内容(実体データ)とを比較する。ステップS56は、保存先以外のレジストレーションデータに前記生成した実体データと同じ実体データが既に記憶済みであるか否かを判定する。保存先以外のレジストレーションデータに同じ実体データが既に記憶済みであると判定した場合には(ステップS56のyes)、当該チャンクに関して実体データを記憶することなく、同じ実体データを既に記憶済みの他のレジストレーションデータを参照する参照データを書き込む(ステップS57)。保存先以外のレジストレーションデータに同じ実体データが記憶されていないと判定した場合には(ステップS56のno)、当該チャンクに関して前記生成した実体データを書き込む(ステップS58)。ステップS59は、全てのチャンクについて上記処理を実行したか否かを判定する。全てのチャンクについて上記処理を実行したと判定した場合には(ステップS59のyes)、当該処理を終了する。全てのチャンクについて上記処理を実行していないと判定した場合には(ステップS59のno)、ステップS51の処理に戻って上記各処理を繰り返し実行する。
上記「レジスト画面処理」において実行される「削除処理」(図4のステップS17参照)について、図9を用いて説明する。図9は、「削除処理」の一実施例を示すフローチャートである。
ステップS71は、削除対象のレジストレーションデータに含まれるチャンクを1つずつ順に対象とする。ステップS72は、対象とされたチャンクは他のレジストレーションデータに記憶されている実体データを参照するデータ(参照データ)であるか否かを判定する。対象とされたチャンクが参照データでないと判定した場合には(ステップS72のno)、ステップS73の処理へ行く。一方、対象とされたチャンクが参照データであると判定した場合には(ステップS72のyes)、削除しない全てのレジストレーションデータを順に参照し、削除するレジストレーションデータの実体データを参照している他のレジストレーションデータがあるか否かを検索する(ステップS74)。ステップS75は、前記検索に従い削除するレジストレーションデータの実体データを参照している他のレジストレーションデータがあるか否かを判定する。
削除するレジストレーションデータの実体データを参照しているレジストレーションデータがある場合には(ステップS75のyes)、参照しているレジストレーションデータのいずれか1つだけ(例えばデータセットに規定された順が早いもの)について、そのレジストレーションデータが記憶する該当チャンクの参照データを、削除するレジストレーションデータの該当チャンクの実体データで置き換える(すなわち実体データをコピーする)(ステップS76)。そして、削除するレジストレーションデータの実体データを参照している他のレジストレーションデータについて、実体データに置き換えられたレジストレーションデータを参照先とする参照データに変更する(ステップS77)。すなわち、実体データをコピーすることなく、バイトカウンタを参照先のレジストレーションデータを示すように変更するだけでよい。対象とされたチャンクが参照データでないと判定した場合(ステップS72のno)、又は削除するレジストレーションデータの実体データを参照しているレジストレーションデータがない場合(ステップS75のno)、さらにはステップS77の処理後には、全てのチャンクについて上記処理を実行したか否かを判定する(ステップS73)。全てのチャンクについて上記処理を実行したと判定した場合には(ステップS73のyes)、削除対象のレジストレーションデータを外部記憶装置9及びRAM3から削除し(ステップS78)、当該処理を終了する。全てのチャンクについて上記処理を実行していないと判定した場合には(ステップS73のno)、ステップS71の処理に戻って上記各処理を繰り返し実行する。
上述したように、1曲の中で使用される分の複数のレジストレーションデータは、曲データに対応付けられた曲管理データにより管理される。この場合に、図2(b)に示したように、1曲の中で使用される分の複数のレジストレーションデータのうち、同じ楽音の発生環境を表す一部のプリセットデータについては個々のレジストレーションデータ毎に実体データを重複して記憶させないようにすると、複数のレジストレーションデータを記憶するための記憶容量を従来に比べて小さくすることができることから、外部記憶装置9に比べて記憶容量が小さい内蔵RAM(RAM3)にも1曲の中で使用される分の複数のレジストレーションデータ全てをまとめて記憶しやすい。そうすると、アクセス速度が遅い外部記憶装置9へ必要な都度アクセスして必要なデータセット(詳しくは各データセットに含まれる全てのレジストレーションデータ)を先読みして記憶することがなくなるので、特に頻繁に楽音の発生環境を切り替える曲(演奏)であっても演奏進行に遅れることなくレジストレーションデータを切り替えることができるようになる。そして、ユーザは切り替えられたレジストレーションデータに含まれる複数の異なる楽音の発生環境の中から演奏にあわせて適切な環境を素早く選択することができる。
また、レジストレーションデータの切り替えに応じて、複数のプリセットデータを関連するレジスタに記憶させる際に、既に同じ実体データが記憶済みである場合にはレジスタへのデータ書き込みを行わなくてよいことから、これによってもレジストレーションデータの切り替えに係る時間を短縮することができ、ユーザは演奏進行に遅れることなく楽音の発生環境を切り替えることができる。
さらに、最近では電子音楽装置においてもインターネットなどの通信ネットワークを介して曲データやレジストレーションデータ等の各種データを取得することが広く行われるようになっているが、こうした通信ネットワーク経由でレジストレーションデータを必要にあわせてダウンロードする際のダウンロード時間等のデータ転送に係る時間を短縮することができるようにもなる。
その上、レジストレーションデータ全体のデータサイズを小さくすることができ、小さい容量の外部記憶媒体に収まるようになったり、あるいは外部記憶媒体内に占める記憶領域を小さくすることができ、外部記憶媒体において制限ある記憶領域を有効に使うことができるようにもなる。
なお、実体データの参照関係については各レジストレーションデータにおいてバイトカウンタにより個別に管理することに限らず、別途用意された専用の管理ファイルに記録して集中管理するようにしてもよい。
なお、複数のレジストレーションデータ間におけるチャンク毎の実体データの重複の検出及びそれに応じた参照データの設定は上記の方法に限らず、どのような方法であってもよい。
上述した実施例においては、外部記憶装置9に記憶されたレジストレーションデータを一旦RAM3に保持し、データ変更の際にはRAM3に一時記憶されているレジストレーションデータのみならず、外部記憶装置9に記憶された対応するレジストレーションデータにもその変更内容を反映させるようにした。しかし、データ変更をRAM3に一時記憶されたレジストレーションデータのみに関してとりあえず行っておき、後にユーザ操作に応じて変更されたRAM3のレジストレーションデータを外部記憶装置9の対応するレジストレーションデータにも反映させるようにしてもよい。また、外部記憶装置9に記憶する際に必要とされるデータサイズを小さくするだけならば、レジストレーションデータを一旦RAM3に保持させることなく、直接外部記憶装置9のレジストレーションデータを操作するだけでよい。
1…CPU、2…ROM、3…RAM、4、5A…検出回路、4A…操作子、5B,6…表示回路、5C…タッチパネル、6A…LED表示器、7…音源回路、8…効果回路、8A…サウンドシステム、9…外部記憶装置、10…MIDIインタフェース、10A…MIDI機器、11…通信インタフェース、11A…サーバコンピュータ、X…通信ネットワーク、1D…通信バス(データ及びアドレスバス)、A…レジストレーションデータ表示領域、B…プリセットデータ表示領域、C…参照データを記憶しているレジストレーションデータを示す旨の表示、SW1…レジストレーションデータ選択スイッチ、SW2…移動スイッチ、SW3…プリセットデータ選択スイッチ、SW4…一覧スイッチ、SW5…読み込みスイッチ、SW6…保存スイッチ、SW7…コピースイッチ、SW8…削除スイッチ、SW9…戻るスイッチ