以下、この発明の実施の形態を添付図面に従って詳細に説明する。
図1は、この発明に係る電子音楽装置の全体構成の一実施例を示したハード構成ブロック図である。本実施例に示す電子音楽装置は例えば電子楽器であって、マイクロプロセッサユニット(CPU)1、リードオンリメモリ(ROM)2、ランダムアクセスメモリ(RAM)3からなるマイクロコンピュータによって制御される。CPU1は、この電子音楽装置全体の動作を制御するものである。このCPU1に対して、データ及びアドレスバス1Dを介してROM2、RAM3、検出回路4,5、表示回路6、音源・効果回路7、記憶装置8、通信インタフェース(I/F)9がそれぞれ接続されている。更に、CPU1は、タイマ割込み処理(インタラプト処理)における割込み時間や各種時間を計時するタイマ(図示せず)を具えている。例えば、タイマはクロックパルスを発生し、発生したクロックパルスをCPU1に対して処理タイミング命令として与えたり、あるいはCPU1に対してインタラプト命令として与える。CPU1は、これらの命令に従って各種処理を実行する。
ROM2は、CPU1により実行あるいは参照される各種制御プログラムや各種データ等を格納する。RAM3は、CPU1が所定のプログラムを実行する際に発生する各種データなどを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを一時的に記憶するメモリ等として使用される。RAM3の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。ここでは、例えば関連付けられた制御操作子と音色効果パラメータとに関する関連付け情報(後述する)などを記憶する。
演奏操作子4Aは、楽音の音高を選択するための複数の鍵を備えた例えば鍵盤等のようなものであり、各鍵に対応してキースイッチを有しており、この演奏操作子4A(鍵盤等)はユーザ自身の手弾きによるマニュアル演奏に使用することができるのは勿論のこと、音色の選択や音色効果パラメータ等を設定する手段などとして使用することもできる。検出回路4は、演奏操作子5Aの各鍵の押圧及び離鍵を検出することによって検出出力を生じる。
設定操作子(スイッチ等)5Aは、例えば演奏の際に使用する音色を選択する選択スイッチ、ボリューム、ピッチ、LFOなどの各種の音色効果パラメータをその操作量(例えば0〜128、-64〜+64など)に応じた分だけ制御する(言い換えるならば、楽音に効果を付与する際に用いられる各種音色効果に係る制御値を操作量に応じて決定する)例えばモジュレーションホイール、ピッチベンドホイール、アフタータッチ、ノブ、スライダー、リボンコントローラなどの制御操作子、後述する「パラメータ制御画面」(図3参照)の編集を行うための画面編集スイッチ等、各種の操作子を含んで構成される。上記各制御操作子に対してはコントローラセットの選択に応じて予め決められた音色効果パラメータを関連付けできるだけでなく、ユーザが自由に任意の音色効果パラメータを関連付けることができる。
勿論、設定操作子5Aは上記した以外にも音高、音色、効果等を選択・設定・制御するための数値データ入力用のテンキーや文字データ入力用のキーボード、あるいはディスプレイ6Aに表示された各種画面の位置を指定するポインタを操作するマウス(二次元ポインティング操作子と呼ぶ)などの各種操作子を含んでいてもよい。検出回路5は、上記設定操作子5Aの操作状態を検出し、その操作状態に応じたスイッチ情報等をデータ及びアドレスバス1Dを介してCPU1に出力する。
表示回路6は例えば液晶表示パネル(LCD)やCRT等から構成されるディスプレイ6Aに、「パラメータ制御画面」(図3参照)等の各種画面を表示するのは勿論のこと、ROM2や記憶装置8に記憶されている各種データあるいはCPU1の制御状態などを表示することができる。ユーザはディスプレイ6Aに表示されるこれらの各種情報を参照することで、演奏の際に使用する音色や曲の選択さらに音色効果パラメータの設定などを容易に行うことができる。なお、ディスプレイ6Aはタッチパネルであってよく、その場合には画面がタッチ操作されたことを検出する手段を具備してなることは言うまでもない。この場合、ディスプレイ6Aは所謂ソフトスイッチを具え、タッチパネルとしてマウス等と同様にディスプレイ6Aに表示された「パラメータ制御画面」の各オブジェクトの表示位置や形状などを変更制御できる二次元ポインティング操作子(オブジェクト操作子)を兼ねるものとなる。
音源・効果回路7は複数のチャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス1Dを経由して与えられた演奏情報を入力し、この演奏情報に基づいて楽音を合成し楽音信号を発生する。また、楽音を合成する際には、設定された音色効果パラメータ毎の制御値(パラメータ値)に基づいて種々の効果を付与することができるようになっている。こうした音源・効果回路7から発生される楽音信号は、アンプやスピーカなどを含むサウンドシステム7Aから発音される。音源・効果回路7とサウンドシステム7Aの構成には、従来のいかなる構成を用いてもよい。例えば、音源・効果回路7はFM、PCM、物理モデル、フォルマント合成等の各種楽音合成方式のいずれを採用してもよく、また専用のハードウェアで構成してもよいし、CPU1によるソフトウェア処理で構成してもよい。
記憶装置8は、例えば上述したコントローラセット、「パラメータ制御画面」(図3参照)をディスプレイ6Aに表示する際に参照する音色パラメータデータ(後述する図2参照)、関連付けられた制御操作子と音色効果パラメータとに関する関連付け情報(後述する)などの各種データ、CPU1が実行する各種制御プログラム等を記憶する。なお、上述したROM2に制御プログラムが記憶されていない場合、この記憶装置8(例えばハードディスク)に制御プログラムを記憶させておき、それをRAM3に読み込むことにより、ROM2に制御プログラムを記憶している場合と同様の動作をCPU1にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、記憶装置8はハードディスク(HD)に限られず、フレキシブルディスク(FD)、コンパクトディスク(CD‐ROM・CD‐RAM)、光磁気ディスク(MO)、あるいはDVD(Digital Versatile Disk)等の様々な形態の記憶媒体を利用する記憶装置であればどのようなものであってもよい。あるいは、フラッシュメモリなどの半導体メモリであってもよい。
通信インタフェース(I/F)9は、図示を省略した外部機器と当該電子音楽装置との間でMIDI形式の演奏データを送受信するMIDI入出力インタフェース、MIDI以外のデータや制御プログラムなどの各種情報を送受信するデータ入出力インタフェースとしての機能を備えた、例えばRS-232C、USB(ユニバーサル・シリアル・バス)、IEEE1394(アイトリプルイー1394)、ブルートゥース(商標)、赤外線送受信器等のインタフェースである。あるいは、LAN(Local Area Network)やインターネット、電話回線等の有線あるいは無線の通信ネットワークを介して、本電子音楽装置とネットワーク上の外部機器(例えばサーバ装置)とを接続することができ、電子音楽装置とサーバ装置との間でMIDIデータや各種情報,スクリプトなどを送受信することができるネットワークインタフェースであってもよい。こうした通信インタフェース9は、有線あるいは無線のものいずれかでなく双方を具えていてよい。
なお、上述した電子音楽装置において、演奏操作子4Aは鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。また、電子音楽装置は演奏操作子4Aやディスプレイ6Aあるいは音源・効果回路7などを1つの装置本体に内蔵したものに限らず、それぞれが別々に構成され、MIDIインタフェースや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものであってもよいことは言うまでもない。さらに、本発明に係る電子音楽装置は電子楽器に限らず、ミキサやパーソナルコンピュータ、携帯電話等の携帯型通信端末、またカラオケ装置やゲーム装置など、音色効果パラメータに従って楽音を制御できるものであればどのような形態の装置・機器であってもよい。
ここで、音色パラメータデータについて図2を用いて説明する。図2は、音色パラメータデータのデータ構成の一実施例を示す概念図である。音色パラメータデータは後述する「パラメータ制御画面」(図3参照)をディスプレイ6Aに表示するためのデータであって記憶装置8等に音色毎に多数記憶されており、ユーザによる音色の選択に応じて該当するデータが特定される。
図2に示すように、音色パラメータデータは大きく分けると1乃至複数のソースオブジェクトデータと1乃至複数のデスティネーションオブジェクトデータから構成される。ソースオブジェクトデータは「パラメータ制御画面」に表示可能なソースオブジェクトOS及びレールオブジェクトR(後述の図3参照)に関連する情報であって、ソース種類,レールデータ,その他のデータからなる。ソース種類は画面に表示する個々のソースオブジェクトOSに対応付ける制御操作子の種類を定義するデータであって、例えばモジュレーションホイール、ピッチベンドホイール、アフタータッチ、ノブ、スライダー、リボンコントローラなど当該機器が具えている既存の制御操作子の中からいずれか1つを定義する。レールデータはソースオブジェクトOSと組み合わされて対に表示されるレールオブジェクトRの表示態様を特徴付けるデータであって、例えばレールオブジェクトRの表示開始位置を示す始点位置及び表示終了位置を示す終点位置(具体的には画面の座標である)、レールオブジェクトRの線分種類(直線や曲線さらには折れ線や閉曲線、あるいはそれらの線分を複数組み合わせたものであってもよい)、また前記線分種類が曲線や折れ線や閉曲線である場合にはそれらの線分における1乃至複数の中間表示位置(座標)などを定義する。その他のデータは、ソースオブジェクトOSの表示態様(例えば形状や表示色など)や初期表示位置(座標)などを定義する。
一方、デスティネーションオブジェクトデータは「パラメータ制御画面」に表示可能なデスティネーションオブジェクトOD(後述の図3参照)に関連する情報であって、音色効果パラメータ種類,有効エリアデータ,その他データからなる。音色効果パラメータ種類は個々のデスティネーションオブジェクトODに対応付ける各種音色効果の種類を定義するデータであって、例えばボリューム、ピッチ、LFOなどの当該機器が具えている音源・効果回路7において楽音に付与しうる音色効果のうちのいずれかを定義する(1乃至複数であってよい)。有効エリアデータは、個々のデスティネーションオブジェクトOD毎に画面上に規定される有効エリアKA(図3参照)を特徴付ける例えば大きさや形状(円形状、星形状、楕円形状など適宜の形状であってよい)等の範囲を指定するデータである。その他データは、デスティネーションオブジェクトODの表示態様(例えば形状や表示色など)や初期表示位置(座標)などを定義する。
次に、上記した音色パラメータデータに基づいてディスプレイ6Aに表示される「パラメータ制御画面」の表示例を図3に示す。図3は、「パラメータ制御画面」の一実施例を示す概念図である。該「パラメータ制御画面」は複数のソースオブジェクトOS(上述したように、1つのレールオブジェクトRと組み合わされて対に表示される)と複数のデスティネーションオブジェクトODとを同時に表示可能であるが、ここでは説明を理解しやすくするために1つのソースオブジェクトOS(対をなすレールオブジェクトRを含む)と1つのデスティネーションオブジェクトODとを表示した場合を例に示している。すなわち、「パラメータ制御画面」に表示する対象のソースオブジェクトOSとデスティネーションオブジェクトODはユーザが任意に選択することができてよく、音色パラメータデータからユーザ選択に応じたオブジェクトデータを参照して画面上に必要なオブジェクトのみを表示する。
図3に示すように「パラメータ制御画面」には、ソースオブジェクトデータに基づくソースオブジェクトOS(第1表示オブジェクト)及びレールオブジェクトR(軌道)と、デスティネーションオブジェクトデータに基づくデスティネーションオブジェクトOD(第2表示オブジェクト)とが表示される。ソースオブジェクトOSの表示態様としては、図示したような円状の図形表示に限らず多角形や星型等の任意形状の図形表示であってもよいし、制御操作子の形状を模したアイコンなどの図形表示であってもよい。また、図示した例では省略したが、図形表示だけでなくソースオブジェクトOSに対応付けられている制御操作子の名称やその略称、記号などを表示するようにしてもよい。さらに、複数のソースオブジェクトOSを同時に表示するような場合には、ソースオブジェクトOSごとに色や形状などの表示態様を異ならせて表示するとよい。デスティネーションオブジェクトODについてもソースオブジェクトOSと同様に適宜の形状で表示してよいし、またデスティネーションオブジェクトODに対応付けられている音色効果パラメータの名称等を表示するようにしてもよい。
上記ソースオブジェクトOSは各種の音色効果パラメータを制御することが可能な制御ソースを表すもので、例えばモジュレーションホイール、ピッチベンドホイール、アフタータッチ、ノブ、スライダー、リボンコントローラなどの制御操作子が制御ソースとして対応付けられる。レールオブジェクトRはソースオブジェクトOSと対に付随表示されるものであって、制御操作子の操作に応じて対応付けられているソースオブジェクトOSを画面上で移動表示させる際の軌道を規定する。すなわち、制御操作子の操作に応じてソースオブジェクトOSはレールオブジェクトR上を移動するように表示制御されるようになっており、この実施例では制御操作子の操作量が「最小(min)」(例えば0,-64など)の状態であるときにレール始点に位置するように、また操作量が「最大(max)」(例えば128,+64など)の状態であるときにレール終点に位置するように、制御操作子の時々の操作量の増減に応じた分だけレールオブジェクトR上を移動するようにしてソースオブジェクトOSの表示制御がなされる(そのようにレールオブジェクトRの線分上の所定位置と制御操作子の操作量(図示の例では-64〜+64)との対応関係が形成される)。すなわち、レールオブジェクトRの線分長さは制御操作子が動作可能な範囲全体を表すことから、ユーザはレールオブジェクトR上におけるソースオブジェクトOSの位置から、制御操作子をどの程度まで動作させているかを容易に把握することができるようになっている。
他方、デスティネーションオブジェクトODは、ボリューム、ピッチ、LFO、ビブラートなどの楽音に付与することが可能な各種の音色効果に関するパラメータのいずれかと対応付けられており、制御操作子の操作(あるいはソースオブジェクトOSの操作)に応じて制御値を決定する制御対象の音色効果パラメータを表す。デスティネーションオブジェクトODには個別に有効エリアKAが配置されている。この有効エリアKAは、ソースオブジェクトOSに対応付けられている制御操作子と該エリアを有するデスティネーションオブジェクトODに対応付けられている音色効果パラメータとを関連付ける又は関連付けをやめる(パッチングを確立/解除する)境界・範囲を表すものであって、ユーザが視認できるように画面上に表示してもよいし表示しなくてもよい。すなわち、該有効エリアKA外にソースオブジェクトOSが位置している場合には関連付けがなされていないことを表し、該有効エリアKA内にソースオブジェクトOSが位置している場合には関連付けがなされていることを表す。
ユーザはマウス等の二次元ポインティング操作子(オブジェクト操作子)を操作して、ソースオブジェクトOS、レールオブジェクトR、デスティネーションオブジェクトOD、有効エリアKAのそれぞれについて、表示位置や表示態様等を任意に変更することができる。ソースオブジェクトOS(又はレールオブジェクトR)の表示位置を変更(移動)した際には、基本的に付随表示している対のレールオブジェクトR(又はソースオブジェクトOS)も一緒に表示位置が変更(移動)される。ただし、ソースオブジェクトOSのみをレールオブジェクトRから外して他の位置に移動させることもできるようになっている(詳しくは後述する図4(h)参照)。
レールオブジェクトRについては、その表示向きや線分長さ(つまりはレール始点位置又は/及びレール終点位置を変更する)やその形状などを変更することもできる。レールオブジェクトRは図示のように基本的に連続する直線で表示されるものであるが、後述する図5(c)に示すように直線以外であってもよく、また図5(d)に示すように連続していなくてもよい。有効エリアKAについては、その範囲を拡大縮小することができる。レールオブジェクトRの線分長さを変えたり、有効エリアKAの範囲を拡大縮小したりした場合には、パラメータを制御できる制御操作子の操作範囲が限定される(詳しくは後述する)。勿論、レールオブジェクトRの表示位置や表示向き等を変更した場合には、その変更にあわせて付随表示している対のソースオブジェクトOSの表示位置も変更される。こうした「パラメータ制御画面」における各オブジェクトの表示位置や表示態様等が変更された場合には、音色パラメータデータの該当するオブジェクトデータを更新することは言うまでもない。また、レールオブジェクトRの線分の長さが変更された場合には、制御操作子の操作量とレールオブジェクトRの線分上におけるソースオブジェクトOSの表示移動量との対応関係も変更される。この対応関係は、制御操作子の種類毎に予め用意された所定の演算式やテーブル等によるものなど、どのようなものであってもよい。
制御操作子と音色効果パラメータとのパッチングを確立する動作としては、制御操作子を操作する場合と、制御操作子を操作することなくマウス等の二次元ポインティング操作子(オブジェクト操作子)だけを操作する場合と、二次元ポインティング操作子を操作した後にさらに制御操作子を操作する場合とがある。そして、パッチングを確立した際には、関連付けられた制御操作子と音色効果パラメータとに関して図示を省略した関連付け情報が生成されてRAM3等に記憶される。この関連付け情報は、互いに関連付けられた制御操作子と音色効果パラメータとを指し示すデータ、それらに対応するソースオブジェクトOSやデスティネーションオブジェクトODの表示位置、ソースオブジェクトOSの表示位置とデスティネーションオブジェクトODの表示位置との距離(表示間隔)などを含んでなる。なお、パッチングを解除した際には該当の関連付け情報を削除してよい。
ここで、制御操作子と音色効果パラメータとのパッチングを確立/解除する動作について具体例を用いて説明する。図4は、図3に示した「パラメータ制御画面」におけるパッチングの確立動作の概略を示す概念図である。図4(a)は、ソースオブジェクトOS及びレールオブジェクトRが共に有効エリアKA内に入っていない状態を示す。図4(b)及び図4(c)は、レールオブジェクトRの全部が(ソースオブジェクトOSと共に)有効エリアKA内に入っている状態を示す。ここで、図4(b)はレールオブジェクトRの向きがデスティネーションオブジェクトOD(の中心)に向いているが、図4(c)はレールオブジェクトRの向きがデスティネーションオブジェクトOD(の中心)に向いていない。図4(d)は、レールオブジェクトRの一部が有効エリアKA内に入っている状態を示す。
図4(a)に示すように、二次元ポインティング操作子を操作してソースオブジェクトOS及びレールオブジェクトRを共に有効エリアKA外の位置まで移動させた場合は、パッチングが確立されない。この場合には、制御操作子をどのように操作してもレールオブジェクトR上を移動するソースオブジェクトOSが絶対に有効エリアKA内に入ることはないので、二次元ポインティング操作子を操作した後にさらに制御操作子を操作したとしてもパッチングを確立することができない。そこで、図4(a)の表示状態にあるソースオブジェクトOS及びレールオブジェクトR(又はデスティネ ーションオブジェクトOD及び有効エリアKA)をクリック&ドラッグ操作して、図4(b)又は図4(c)の表示状態つまりソースオブジェクトOSが有効エリアKA内に位置した表示状態まで移動させると、パッチングを確立することができる。反対に図4(b)又は図4(c)の表示状態にあるソースオブジェクトOS及びレールオブジェクトR(又はデスティネーションオブジェクトOD及び有効エリアKA)をクリック&ドラッグ操作して、図4(a)の表示状態にまで移動させるとパッチングを解除することができる。このように、ユーザは制御操作子を操作しなくとも二次元ポインティング操作子を操作するだけでも、パッチングを確立/解除することができる。
一方、図4(a)の表示状態にあるソースオブジェクトOS及びレールオブジェクトR(又はデスティネーションオブジェクトOD及び有効エリアKA)をクリック&ドラッグ操作し、図4(d)に示すようにレールオブジェクトRの一部が有効エリアKA内に入っているが、ソースオブジェクトOSは有効エリアKA外に位置している状態(図中において点線で示す)で操作をやめた場合、このままではパッチングが確立されない。この場合には、二次元ポインティング操作子を操作した後にさらにソースオブジェクトOSに対応付けられている制御操作子を操作し、ソースオブジェクトOSが有効エリアKA内に位置するまでその操作を行うことによってパッチングを確立することができる(図中において実線で示す)。反対に、ソースオブジェクトOSが有効エリアKA外に位置する状態まで制御操作子を操作するとパッチングを解除できる。
図4(e)は、1つのデスティネーションオブジェクトODに複数のレールオブジェクトR1,R2の一部が共に同じ有効エリアKAに入っている状態を示す。上述したように、制御操作子の操作にあわせてソースオブジェクトが有効エリアKA内に入るとパッチングが確立されるのであるが、図示のように一方のソースオブジェクトOS1,OS2のいずれかが有効エリアKA内に位置しており既にパッチングが確立されている場合には、後から有効エリアKA内に入ったもう一方のソースオブジェクトOS1,OS2のいずれかを優先してパッチングを確立する(つまり降着優先とする)。例えば既に一方のソースオブジェクトOS1が有効エリアKA内に位置しているにもかかわらず、後からソースオブジェクトOS2を有効エリアKA内に入れた場合には(図中点線から実線表示への移動)、ソースオブジェクトOS2に関してパッチングが確立される(ソースオブジェクトOS1に関してパッチングを解除する)。あるいは、両方のソースオブジェクトOS1,OS2が有効エリアKA内に入っている状態で、後から位置が移動したソースオブジェクト(OS1又はOS2)に関してパッチングを確立してもよい。そして、ソースオブジェクトOS2を有効エリアKA外に出すまで制御操作子を操作すると、ソースオブジェクトOS2に関してパッチングが解除される一方でソースオブジェクトOS1に関してパッチングが再度確立される。こうすることで、2つの制御操作子で1つの同じパラメータを制御することのないようにしている。なお、両オブジェクトOS1,OS2ともにパッチングを確立しておき、後から移動したソースオブジェクト(OS1又はOS2)の値を採用するようにしてもよい。
なお、図4(e)に示すような表示状態にならないように、画面編集の際に例えば図4(d)に示す表示状態においてさらに他のレールオブジェクトの一部を有効エリアKA内に入れるようにクリック&ドラッグ操作しようとしても、そうした操作を行うことができないように制限してもよい(この場合、確立済みのパッチングを優先する)。
図4(f)は、1つのソースオブジェクトOSが複数のデスティネーションオブジェクトOD1,OD2のそれぞれの有効エリアKA1,KA2内に同時に入る状態を示す。この場合には、制御操作子の操作にあわせて1つのソースオブジェクトOSが同時に複数の有効エリアKA1,KA2内に入ることから、ソースオブジェクトOSに関してデスティネーションオブジェクトOD1,OD2の両方についてパッチングが確立される。反対に、ソースオブジェクトOSが有効エリアKA1,KA2外に位置する状態まで制御操作子を操作すると、デスティネーションオブジェクトOD1,OD2の両方について同時にパッチングを解除できる。こうすることで、1つの制御操作子で同時に2つのパラメータを制御することができるようにしている。なお、この場合にはソースオブジェクトOSと複数のデスティネーションオブジェクトOD1,OD2それぞれとの距離(表示間隔)に応じて、それぞれのパラメータの制御値が決定される。
図4(g)は、1つのソースオブジェクトOSが複数のデスティネーションオブジェクトOD1,OD2の有効エリアKA1,KA2内に順次に入る状態を示す。この場合、制御操作子の操作に応じてソースオブジェクトOSが図の左から右へと移動するのにあわせて、有効エリアKA1と有効エリアKA2を順次に横切る。この際に、ソースオブジェクトOSが有効エリアKA1内に入るとデスティネーションオブジェクトOD1とのパッチングが確立され、有効エリアKA1外に出るとデスティネーションオブジェクトOD1とのパッチングが解除される。そして、さらに制御操作子の操作に応じてソースオブジェクトOSが図の左から右へと移動するのにあわせて、ソースオブジェクトOSが有効エリアKA2内に入るとデスティネーションオブジェクトOD2とのパッチングが確立され、有効エリアKA2外に出るとデスティネーションオブジェクトOD2とのパッチングが解除される。この場合、1つの制御操作子において所定の操作範囲毎にそれぞれ異なるパラメータを制御することができる。
図4(h)は、マウス等の二次元ポインティング操作子(オブジェクト操作子)を操作して、有効エリアKA1内にあるソースオブジェクトOS1のみをレールオブジェクトRから外して別の有効エリアKA2内に移動させた場合を示す。この場合、移動前においてポインタYにより指定(クリック)されたソースオブジェクトOS(図中において点線で示す)は有効エリアKA1内に位置していたので既にデスティネーションオブジェクトOD1とのパッチングが確立されているが、ドラッグ操作による移動後にはソースオブジェクトOSは有効エリアKA2内に位置するので、一時的にデスティネーションオブジェクトOD2とのパッチングが確立される(この場合には、一時的にデスティネーションオブジェクトOD2に対応付けられたパラメータの制御値を出すために、その時点におけるソースオブジェクトOSとデスティネーションオブジェクトOD2間の距離に応じてパラメータの制御値が決定される)。なお、この状態で制御操作子が操作された場合には、ソースオブジェクトOSは移動前のレールオブジェクトR上の所定位置に戻されて再度デスティネーションオブジェクトOD1とのパッチングが確立される(移動後にパッチングされたデスティネーションオブジェクトOD2とのパッチングは解除される)。
上述したように、操作者による二次元ポインティング操作子などの適宜のユーザインタフェースの操作に応じて、ソースオブジェクトOS及びレールオブジェクトR,デスティネーションオブジェクトOD及び有効エリアKAを画面上の任意の表示位置に移動することができ、また制御操作子の操作に応じてソースオブジェクトOSをレールオブジェクトR上で移動させる。そして、ソースオブジェクトOSが有効エリアKA内に位置する場合には、ソースオブジェクトOSに対応付けられている制御操作子と該有効エリアKAを有するデスティネーションオブジェクトODに対応付けられている音色効果パラメータとの関連付け(パッチング)が確立される。そして、ユーザインタフェースや制御操作子の操作により有効エリアKA外にソースオブジェクトOSが移動されると、制御操作子と音色効果パラメータとの関連付け(パッチング)が解除される。
上記した制御操作子と音色効果パラメータとのパッチング確立後においては、さらに制御操作子が操作されることに応じて該当のソースオブジェクトOSがレールオブジェクトR上を移動表示されるのは勿論のこと、有効エリアKA内に位置するソースオブジェクトOSの表示位置とデスティネーションオブジェクトODの表示位置との距離(表示間隔)に対応して予め決められている制御値に従って、音色効果パラメータを決定する。そこで、「パラメータ制御画面」を利用した音色効果パラメータの制御の概要について、図5を用いて説明する。図5は、図3に示した「パラメータ制御画面」を利用したパラメータ制御について説明するための概念図である。図5に示した各図においては、左図に「パラメータ制御画面」を、右図に制御操作子の操作量と音色効果パラメータの制御量との関係を表すグラフをそれぞれ示している。
図5(a)は、3つの各表示パターン(A,B,C)におけるパラメータ制御を説明するための図である。この図5(a)において、AパターンはデスティネーションオブジェクトODの中心位置にレールオブジェクトRのレール終点が位置している場合、BパターンはデスティネーションオブジェクトODの中心位置までレールオブジェクトRのレール終点が位置していない場合、CパターンはデスティネーションオブジェクトODの中心にレールオブジェクトRが向いていない場合である。これらの各パターンでは、制御操作子の操作に応じてソースオブジェクトOSが有効エリアKA内に入るとパッチングが確立されて、それ以降のさらなる制御操作子の操作に応じて制御値が決定されることから、パッチングが確立された時点の制御操作子の操作量を越えてからパラメータ制御が開始されるようになっている。
図中のAパターン(又はBパターン)とCパターンとを比べると、パラメータ制御が開始される操作量及びパラメータ制御可能な操作量の範囲に違いが生じていることが理解できる。この違いは、有効エリアKA外に位置するレールオブジェクトRの線分の長さの違いによって生ずる。すなわち、有効エリアKA外に位置するレールオブジェクトRの線分の長さが短いほど、操作量が小さい(例えば0や-64などに近い)うちにパッチングが確立されるので(図中a点、b点参照)、制御操作子の動作範囲のうちパラメータ制御可能な範囲が広くなる。すなわち、制御操作子の動作範囲のうち一部範囲でのみパラメータ制御を行うことができる。他方、例えば図4(b)に示したようなレールオブジェクトRが初めから完全に有効エリアKA内に入っている場合には、制御操作子の動作範囲全てにわたってパラメータ制御を行うことができる。
AパターンとBパターンさらにはCパターンを比べると、操作量に応じた制御値の変化量(パラメータのきき具合であって、グラフの傾きで表される)が異なっていることが理解できる。この違いは、レールオブジェクトRのレール終点位置の違いによって生ずる。レールオブジェクトRのレール終点位置がデスティネーションオブジェクトODの中心に遠いほど制御値の変化量は小さくなる。また、操作量に応じた制御値の変化量が小さくなると、操作量が最大であっても予め決められている制御量の最大値(ここでは100%と表示)までの制御値を決定することがない。Cパターンはc点まで制御値が操作量に応じて増加するが、c点以降からは操作量に応じて減少している。これは、Cパターンにおいて、c点まではソースオブジェクトOSがデスティネーションオブジェクトODの中心に近づき、c点を過ぎるとソースオブジェクトOSがデスティネーションオブジェクトODの中心から遠ざかることによる。なお、図示の例では、Bパターンにおけるレール終点からデスティネーションオブジェクトODの中心までの距離と、CパターンにおけるソースオブジェクトOSがデスティネーションオブジェクトODの中心に最も近づく位置とを等しくすることで、Bパターンの最大制御値とCパターンの最大制御値とが等しくなるようにしている。
以上の説明に鑑みると、ユーザは「パラメータ制御画面」を編集する際に、レールオブジェクトRの始点・終点位置や向き(デスティネーションオブジェクトODの中心までの距離を含む)、また有効エリアKAの内外それぞれに位置するレールオブジェクトRの線分の長さなどを調整することによって、制御操作子によるパラメータ制御の制御態様を任意に変更することができることが理解できるであろう。
図5(b)は、複数の有効エリアKA1,KA2の互いに重なり合う範囲において、レールの始点を一方のデスティネーションオブジェクトODの中心に位置させると共に、レールの終点を他方のデスティネーションオブジェクトODの中心に位置させた場合である。この場合、制御操作子の操作開始前においては、ソースオブジェクトOSはデスティネーションオブジェクトOD1の中心に最も近い一方でデスティネーションオブジェクトOD2の中心からは最も近い位置にある。そして、制御操作子の操作に応じて、ソースオブジェクトOSはデスティネーションオブジェクトOD1の中心から遠ざかる一方でデスティネーションオブジェクトOD2の中心に近づく。したがって、デスティネーションオブジェクトOD1に関しては制御値が順次に減少し、デスティネーションオブジェクトOD2に関しては制御値が順次に増加する。また、ソースオブジェクトOSは1つのレールオブジェクトR上を移動することから、上記制御値の減少/増加の変化量は同じである。このように、図5(b)の場合、ユーザは1つの制御操作子の操作に応じて2つの異なるパラメータをクロスフェード制御することができる。
図5(c)は、レールオブジェクトRを直線ではなく曲線形状とした場合である。図5(d)は、レールオブジェクトRを連続した直線ではなく不連続な直線形状(ここでは4つの直線F,G,H,Iの例を示す)とした場合である。これらの場合には、レールオブジェクトRの形状に従って操作量と制御値との変化態様(変化量の傾きや制御値の減少/増加など)が変わる。図示のように、例えばレールオブジェクトRの形状が曲線であって、デスティネーションオブジェクトODに近づいたり遠ざかったりしているような場合には、操作量に応じた制御値もレールオブジェクトRの形状に近い変化態様を示す。また、レールオブジェクトRの形状が不連続な直線であるような場合には、レールオブジェクトRの形状が不連続である時点(図中におけるd点、e点、f点)においてその操作量がわずかな違いであったとしても、その時点の前後での制御値を大きく変化させることができるようになる。
次に、本実施例に示す電子音楽装置において、パラメータ制御を行う前の準備として、例えば図4や図5に示したような表示態様を1乃至複数含んでなる音色毎の「パラメータ制御画面」を作成/編集する画面編集処理について、図6を用いて説明する。図6は、パラメータ制御画面の作成/編集を実現する「オブジェクト編集処理」の一実施例を示すフローチャートである。当該処理は、画面編集スイッチの操作に応じて開始される処理である。
ステップS1は、オブジェクト編集対象の音色つまりパラメータ制御画面を作成/編集したい音色を選択する。具体的には、ユーザによる音色選択スイッチの操作に応じて予め用意された多数の音色の中からいずれかを選択する。ステップS2は、画面編集用の二次元平面をディスプレイ6Aに表示する。ステップS3は、前記選択した音色の音色パラメータデータ(図2参照)に既存のオブジェクトデータが記憶されていたら、該オブジェクトデータに従ってソースオブジェクトOS及びレールオブジェクトR、デスティネーションオブジェクトOD(及び有効エリアKA)を画面編集用の二次元平面にそれぞれ反映するよう表示する。すなわち、音色の選択に応じて記憶手段8に記憶された多数の音色パラメータデータの中からいずれかが特定され、該音色パラメータデータに既にオブジェクトデータが含まれている場合には、今回の処理前に作成/編集を行った際の各オブジェクトに関するデータが保存されていることから、当該処理によって以前に作成/編集した「パラメータ制御画面」を再現して画面編集用の二次元平面としてディスプレイ6Aに表示する。
ステップS4は、スイッチ等の操作によってソースオブジェクトOSの追加操作が行われたか否かを判定する。ソースオブジェクトOSの追加操作が行われていない場合には(ステップS4のNO)、ステップS7の処理にジャンプする。一方、ソースオブジェクトOSの追加操作が行われた場合には(ステップS4のYES)、ソースオブジェクトOSに対応付ける制御操作子を選択設定し、デフォルト位置に追加表示するソースオブジェクトOS及び該選択した制御操作子に関する情報をソースオブジェクトデータとして保存する(ステップS5)。そして、画面編集用の二次元平面上のデフォルト位置にソースオブジェクトOSとレールオブジェクトRを追加表示する(ステップS6)。
ステップS7は、デスティネーションオブジェクトODの追加操作が行われたか否かを判定する。デスティネーションオブジェクトODの追加操作が行われていない場合には(ステップS7のNO)、ステップS10の処理にジャンプする。一方、デスティネーションオブジェクトODの追加操作が行われた場合には(ステップS7のYES)、デスティネーションオブジェクトODに対応付ける音色効果パラメータを選択設定し、デフォルト位置に追加表示するデスティネーションオブジェクトOD(デフォルト範囲の有効エリアKAを含む)及び該選択した音色効果パラメータに関する情報をデスティネーションオブジェクトデータとして保存する(ステップS8)。そして、画面編集用の二次元平面上のデフォルト位置にデスティネーションオブジェクトODと有効エリアKAを追加表示する(ステップS9)。
ステップS10は、二次元ポインティング操作子などの操作によってソースオブジェクトOS,レールオブジェクトR,デスティネーションオブジェクトOD,有効エリアKAの各オブジェクトの移動・変形操作が行われたか否かを判定する。これらの各オブジェクトの移動・変形操作が行われていない場合には(ステップS10のNO)、ステップS15の処理にジャンプする。一方、これらの各オブジェクトの移動・変形操作が行われた場合には(ステップS10のYES)、移動・変形操作に応じた内容に音色効果パラメータデータを更新する(ステップS11)。また、ソースオブジェクトOSが有効エリアKA内に入るようにオブジェクトの移動・変形操作がなされた場合には(ステップS12のYES)、パッチングを確立して関連付け情報を生成する(ステップS14)。他方、有効エリアKA内に位置していたソースオブジェクトOSが有効エリアKA外に出るようにオブジェクトの移動・変形操作がなされた場合には(ステップS12のNO)、パッチングを解除して関連付け情報を削除する(ステップS13)。なお、元々有効エリアKA外に位置していたソースオブジェクトが有効エリアKA外の別の位置に移動・変形操作された場合は、パッチングがなされていない状態を維持する。
ステップS15は、ソースオブジェクトOSに対応付ける制御操作子の変更操作が行われたか否かを判定する。ソースオブジェクトOSに対応付ける制御操作子の変更操作が行われた場合には(ステップS15のYES)、ソースオブジェクトOSに対応付ける制御操作子の変更設定を行い、ソースオブジェクトデータを保存する(ステップS16)。ステップS17は、デスティネーションオブジェクトODに対応付ける音色効果パラメータの変更操作が行われたか否かを判定する。デスティネーションオブジェクトODに対応付ける音色効果パラメータの変更操作が行われた場合には(ステップS17のYES)、デスティネーションオブジェクトODに対応付ける音色効果パラメータの変更設定を行い、デスティネーションオブジェクトデータを保存する(ステップS18)。
ステップS19は、ソースオブジェクトOSの画面からの削除操作が行われたか否かを判定する。ソースオブジェクトOSの削除操作が行われた場合には(ステップS19のYES)、指示されたソースオブジェクトデータを削除する(ステップS20)。これにより、該当するソースオブジェクトOSの表示が画面から削除されるだけでなく、付随するレールオブジェクトRの表示も一緒に画面から削除される。ステップS21は、デスティネーションオブジェクトODの画面からの削除操作が行われたか否かを判定する。デスティネーションオブジェクトODの削除操作が行われた場合には(ステップS21のYES)、指示されたデスティネーションオブジェクトデータを削除する(ステップS22)。これにより、該当するデスティネーションオブジェクトODの表示が画面から削除される。なお、それまでパッチングが確立されていたソースオブジェクトOSとデスティネーションオブジェクトODのうちの一方が上記のように削除された場合に、パッチングを解除するのは勿論である。ステップS23は、編集終了指示が行われたか否かを判定する。編集終了指示が行われていないと判定した場合には(ステップS23のNO)、ステップS4の処理に戻って上記処理を繰り返すし実行する。一方、編集終了指示が行われたと判定した場合には(ステップS23のYES)、編集用の二次元平面表示を閉じて(ステップS24)、当該処理を終了する。
次に、本実施例に示す電子音楽装置において、ユーザが予め画面に表示しておいた「パラメータ制御画面」(図3〜図5参照)を見ながら制御操作子を操作することによって、上述したパッチングの確立/削除やパラメータ制御を実現する具体的な処理について、図7を用いて説明する。図7は、「パラメータ制御処理」の一実施例を示すフローチャートである。本処理は電子音楽装置の起動にあわせて開始され、所定の短い時間(例えば2ms)ごとに定期的に実行される所謂割り込み処理である。なお、この処理を行う時点で「パラメータ制御画面」をディスプレイ6A上に予め表示しておくことは言うまでもない。
ステップS31は、制御操作子の操作が行われたか否かを判定する。制御操作子の操作が行われていない場合には(ステップS31のNO)、ステップS39の処理にジャンプする。制御操作子の操作が行われた場合には(ステップS31のYES)、該操作された制御操作子にはソースオブジェクトOSが対応付けられているか否かを判定する(ステップS32)。該操作された制御操作子にソースオブジェクトOSが対応付けられていない場合には(ステップS32のNO)、ステップS39の処理にジャンプする。該操作された制御操作子にソースオブジェクトOSが対応付けられている場合には(ステップS32のYES)、制御操作子の操作量に基づいてレールオブジェクトR上での対応位置を計算する(ステップS33)。そして、前記計算後のレールオブジェクトR上の対応位置にソースオブジェクトOSを配置して表示する(ステップS34)。すなわち、前記計算後の位置までレールオブジェクトR上を移動するようにソースオブジェクトOSを表示する。なお、レールオブジェクトRからソースオブジェクトOSが外されて他のデスティネーションオブジェクトODと一時的にパッチングが確立されている場合に(図4(h)参照)、制御操作子が操作された場合には元のレールオブジェクトR上の対応位置にソースオブジェクトOSを配置して表示することは言うまでもない。
ステップS35は、レールオブジェクトR上を移動したソースオブジェクトODはデスティネーションオブジェクトODの有効エリアKA内に位置するか否かを判定する。ソースオブジェクトOSがデスティネーションオブジェクトODの有効エリアKA内に位置しないと判定した場合(ステップS35のNO)、該ソースオブジェクトOSに関して既にパッチングが確立されていればそのパッチングを解除して関連付け情報を削除する(ステップS36)。一方、ソースオブジェクトOSがデスティネーションオブジェクトODの有効エリアKA内に位置すると判定した場合には(ステップS35のYES)、未だパッチングが確立されていなければそのパッチングを確立して関連付け情報を生成する(ステップS37)。さらにこの場合には、前記生成した関連付け情報に含まれるソースオブジェクトOSとデスティネーションオブジェクトODとの距離(表示間隔)に応じて、該当する音色効果パラメータの制御値を決定し、該決定した制御値を音源・効果回路7に対して供給する(ステップS38)。これにより、ユーザが操作した制御量に応じただけの所定の効果が楽音に付与される。
ステップS39は、マウス等の二次元ポインティング操作子の操作が行われてレールオブジェクトR上からソースオブジェクトOSのみが外されて移動されたか否かを判定する。前記二次元ポインティング操作子の操作が行われていないと判定した場合には(ステップS39のNO)、当該処理を終了する。前記二次元ポインティング操作子の操作が行われたと判定した場合には(ステップS39のYES)、操作された位置にソースオブジェクトOSを配置して表示する(ステップS40)。ステップS41は、ソースオブジェクトOSがデスティネーションオブジェクトODの有効エリアKA内に位置するか否かを判定する。ソースオブジェクトOSがデスティネーションオブジェクトODの有効エリアKA内に位置しないと判定した場合(ステップS41のNO)、当該処理を終了する。なお、ソースオブジェクトOSがいずれかのデスティネーションオブジェクトODの有効エリアKAから新たに外れた場合は、パッチングを解除する。
一方、ソースオブジェクトOSがデスティネーションオブジェクトODの有効エリアKA内に新たに位置すると判定した場合には(ステップS41のYES)、該デスティネーションオブジェクトODに関して一時的にパッチングを確立する(ステップS42)。さらにこの場合には、ソースオブジェクトOSとデスティネーションオブジェクトODとの距離(表示間隔)に応じて、該当する音色効果パラメータの制御値を決定し、該決定した制御値を音源・効果回路7に対して供給する(ステップS43)。
以上のように、「パラメータ制御画面」(図3参照)上におけるソースオブジェクトOSの表示位置を、制御操作子の操作に応じてレールオブジェクトOD上を移動するようにして制御対象を表すデスティネーションオブジェクトODに近づけたり遠ざけたりするようにしたことから、ユーザはこれらの表示オブジェクトの位置関係の変化を視覚的に楽しみながら、楽しく音色効果パラメータを制御することができるようになる。
また、表示オブジェクトの位置関係から、ユーザは直感的に制御操作子と音色効果パラメータとの関連付け(パッチング)の確立/解除や、制御操作子の操作量と音色効果パラメータの制御値との関係を把握しやすくなる。すなわち、ユーザは「パラメータ制御画面」上の各オブジェクト表示を見ながら制御操作子を操作することによって、制御操作子の操作感覚を画面表示に従って直感的に把握しながらパッチングや音色効果パラメータの制御を行うことができる。
さらに、制御操作子の操作に応じて1つのソースオブジェクトOSが複数のデスティネーションオブジェクトODの有効エリアKA内に同時に(図4(f)参照)、あるいは順次に(図4(g)参照)入るように「パラメータ制御画面」を編集するだけで、ユーザは簡単に複数の音色効果パラメータを同時に又は順次に切り換えて制御することができるようになる。
ユーザは「パラメータ制御画面」(図3参照)上におけるレールオブジェクトRの表示向きや線分長さ(始点,終点)やその形状などを変更することによって、制御操作子による音色効果パラメータの制御のきき具合を自由に設定することが容易にできるようになる。また、これにあわせてソースオブジェクトOSの表示位置が制御操作子の操作に応じてレールオブジェクトOD上を移動することから、ユーザは視覚的にも楽しみながら音色効果パラメータを制御することができる。
なお、デスティネーションオブジェクトODの有効エリアKAの形状は真円形状に限らず、楕円形や多角形、自由曲線よる閉曲線など、任意の形状であってよい。複数の形状の中からいずれかを選択できるようにしてよい。また、有効エリアKA内におけるデスティネーションオブジェクトODの中心とソースオブジェクトOSとの距離(表示間隔)は絶対的な距離(表示間隔)を求めるようにしてもよいし、図8(a)に示すように有効エリアKA内に仮想的な等距離線を設けておき、ソースオブジェクトOSが最も近接している等距離線に基づいて前記距離(表示間隔)を近似して求めるようにしてもよい。
また、制御操作子がロータリーエンコーダなどのような無限操作が可能な操作子である場合には、レールオブジェクトRを無限軌道とするのがよい。例えば、図8(b)に示すようにレールオブジェクトRをレール始点とレール終点とが一致する閉じた形状(例えば閉曲線や不連続な多数の線分からなるものなど、ソースオブジェクトOSがループすればどのような形状であってもよい)で表示するようにしたり、あるいは図8(c)に示すようにレールオブジェクトRを閉じた形状でない有限の線分で表示しておき、ソースオブジェクトOSをレールオブジェクトRのレール終点まで達したらレール始点にジャンプして戻るように表示するようにしてもよい。これらの場合、制御操作子の所定の操作量毎に同じパラメータ制御が繰り返し行われる。あるいは、これらの場合には単にデスティネーションオブジェクトODとソースオブジェクトOSとの距離(表示間隔)によって制御値を求めるのではなく、ソースオブジェクトOSがレール始点に戻った時点で、レール始点に戻る前の時点(レール終点時点)における制御値をデスティネーションオブジェクトODとソースオブジェクトOSとの距離(表示間隔)によって求めた制御値に加算するようにしてもよい(すなわち、レール始点における制御値を「0」で固定するのではなくレール終点時点における制御値に戻る都度変更する)。この場合、制御操作子の所定の操作量毎に同じ変化を繰り返しながら制御値は増加又は減少する。
なお、上述した「パラメータ制御処理」(図7参照)の処理中に、前述したオブジェクトデータの修正を行うことができるようにしてもよい。例えばマウスやタッチパネルなどの二次元ポインティング操作子を用いて、レールオブジェクトRのレール始点やレール終点の位置を変更したり、デスティネーションオブジェクトODの有効エリアKAを拡大縮小したりできるようにするとよい。このようにすると、演奏操作(鍵盤操作や制御操作子の操作)をしながら、簡単にパッチングの確立/解除の切り替えや制御操作子による制御量のきき具合などを変更することができるので、非常に便利である。
なお、上述した実施例ではソースオブジェクトOSが有効エリアKA内に位置する場合にパッチングを確立するようにしたがこれに限らず、レールオブジェクトRの一部が有効エリアKA内に位置すればパッチングを確立するようにしてもよい。ただし、この場合であっても、ソースオブジェクトOSが有効エリアKA内に入るまでは制御量を音源・効果回路7に供給しない。
なお、「パラメータ制御画面」において音色毎に異なる画面を表示させておき、一方の画面において任意の範囲を指定することで該範囲内に含まれるオブジェクトをコピーし、該コピーしたオブジェクトを別の画面にペーストできるようにしてあってよい。この場合、ペーストされることに応じて該当の音色パラメータデータが更新され、またソースオブジェクトOSがいずれかのデスティネーションオブジェクトODの有効エリアKA内に入るようにペーストされた場合には、パッチングが確立され、関連付けられた制御操作子(ソースオブジェクトOS)と音色効果パラメータ(デスティネーションオブジェクトOD)とに関して関連付け情報が生成されることは言うまでもない。
なお、二次元ポインティング操作子(オブジェクト操作子)は上記したマウスやタッチパネルに限らない。例えば矢印キーやパッドのようなものであってもよい。
1…CPU、2…ROM、3…RAM、4,5…検出回路、4A…演奏操作子、5A…設定操作子、6…表示回路、6A…ディスプレイ、7…音源・効果回路、7A…サウンドシステム、8…記憶装置、9…通信インタフェース、1D…データ及びアドレスバス、OS…ソースオブジェクト、OD…デスティネーションオブジェクト、R…レールオブジェクト、KA…有効エリア、Y…ポインタ