以下、この発明の実施の形態を添付図面に従って詳細に説明する。
図1は、本発明に係るパラメータ制御プログラムを適用可能な電子機器の一実施例を示すハード構成ブロック図である。ここに示す電子機器はコンピュータを用いて構成されてなり、前記コンピュータが後述のパラメータ制御プログラム(図4参照)を実行することに基づき、ユーザによる表示器6Aに表示される画面へのタッチ操作、より具体的には仮想操作子は勿論のこと仮想鍵盤上における所定の摺動操作に応じてパラメータ値の変更を行うことの可能なパラメータ制御装置として機能する、例えばスレート型のパーソナルコンピュータやスマートフォン等の電子機器である。
図1に示す電子機器は、マイクロプロセッサユニット(CPU)1、リードオンリメモリ(ROM)2、ランダムアクセスメモリ(RAM)3からなるマイクロコンピュータによって制御される。CPU1は、この電子機器全体の動作を制御するものである。このCPU1に対して、データ及びアドレスバス1Dを介してROM2、RAM3、検出回路4,5、表示回路6、サウンドシステム7、記憶装置8、通信インタフェース(I/F)9がそれぞれ接続されている。
ROM2は、CPU1により実行される各種アプリケーションや各種データ等を格納するものである。RAM3は、CPU1が所定のアプリケーションを実行する際に発生する各種データを一時的に記憶するワーキングメモリとして、あるいは現在実行中のアプリケーションやそれに関連するデータを記憶するメモリ等として使用される。RAM3の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。
設定操作子(スイッチ等)4Aは1乃至複数の汎用スイッチであって、例えば所定の音楽アプリケーションの実行に伴い表示器6Aに表示された表示内容に従う処理を実現する機能が割り当てられる。一例として、設定操作子4Aは音高、音色、効果等の楽音制御パラメータの設定を行う機能や、自動演奏の開始/停止を指示する機能などが割り当てられ得る。勿論、設定操作子4Aは上記したものに代えてあるいは加えて、数値データ入力用のテンキーや文字データ入力用のキーボード等の各種操作子を含んでいてもよい。検出回路4は、上記設定操作子4Aの操作状態を検出し、その操作状態に応じたスイッチ情報等をデータ及びアドレスバス1Dを介してCPU1に出力する。
表示器6Aは、例えば液晶表示パネル(LCD)等で構成されたタッチパネル式のディスプレイである。検出回路5は、ユーザによる前記表示器6Aへのタッチ操作を検出することに応じて、該タッチ操作された前記表示器6上の座標位置(XY座標)を特定する検知信号つまりはユーザ操作情報を生成し、これをデータ及びアドレスバス1Dを介してCPU1に出力する。表示回路6は、例えば所定の音楽アプリケーションの実行に伴い「演奏画面」(図2参照)等の各種画面を表示器6Aに表示するのは勿論のこと、ROM2や記憶装置8等に記憶される各種アプリケーションや各種データあるいはCPU1の制御状態などを表示する。なお、前記表示器6Aのタッチパネル方式は公知のどのようなものであってもよく、前記液晶表示パネルは例えば静電容量型、抵抗膜型、光センサ内蔵型などどのようなタイプのものであってもよい。
サウンドシステム7は、図示を省略した音源/効果回路やアンプさらにはスピーカなどを含んでなり、「演奏画面」(図2参照)の仮想鍵盤へのユーザタッチ操作に応じて楽音の発生を制御する。なお、サウンドシステム7の構成は従来のいかなる構成を用いてもよく、例えばCPU1や専用のDSP(Digital Signal Processor)によるソフトウェアシンセサイザなどと称されるソフトウェア処理で構成してもよいし、専用のハードウェアで構成してもよい。また、楽音合成方式としては、FM、PCM、物理モデル、フォルマント合成等のいずれの方式を採用してもよい。
記憶装置8は、CPU1が実行する各種アプリケーション、楽音制御パラメータなどの各種データを記憶する。なお、上述したROM2にアプリケーションが記憶されていない場合、この記憶装置8(例えばハードディスク)にアプリケーションを記憶させておき、それをRAM3に読み込むことにより、ROM2にアプリケーションを記憶している場合と同様の動作をCPU1に実行させることができる。このようにすると、アプリケーションの追加やバージョンアップ等が容易に行える。なお、記憶装置8はハードディスク(HD)に限られず、フレキシブルディスク(FD)、コンパクトディスク(CD‐ROM・CD‐RAM)、光磁気ディスク(MO)、あるいはDVD(Digital Versatile Disk)等の様々な形態の可搬記憶媒体を利用した記憶装置であってもよい。あるいは、フラッシュメモリなどの半導体メモリであってもよい。
通信インタフェース(I/F)9は、本電子機器と接続された外部機器、例えば電子楽器やミキサーなどの電子音楽機器、プロジェクター等の映像機器、スポットライト等の照明機器などに対し、少なくとも各機器で利用可能な種類のパラメータのパラメータ値を送信してそれらの外部機器が実行する各種制御に反映させるためのインタフェースである。例えばMIDIなどの専用有線インタフェース、LANやインターネットあるいは電話回線等の有線又は無線の通信ネットワークに接続するためのEthernet(登録商標)や無線LANなどのネットワークインタフェースなどであってもよい。勿論、有線あるいは無線のものいずれかでなく双方を具えていてよい。
なお、本発明に係るパラメータ制御プログラムを適用可能な電子機器として、上述した実施例ではサウンドシステム7を有してなる電子機器を例に示したがこれに限らず、サウンドシステム7を有していない電子機器であってもよい。その場合、上述したように通信インタフェース9を介して接続される外部機器にパラメータ値を反映させればよい。このとき外部機器に対して設定値を送信するパラメータの種類は、実行中のアプリケーションによって限定される。例えば、映像アプリケーションであればフェードイン/アウト制御パラメータ、照明アプリケーションであれば照明光量制御パラメータなどである。以下では、音楽アプリケーションである場合、つまり楽音制御パラメータのパラメータ値を変更する場合を例に説明する。
上述したように、図1に示す電子機器において所定の音楽アプリケーションの実行に伴って、表示器6A には「演奏画面」が表示される。そこで、この演奏画面について図2を用いて説明する。図2は、演奏画面の一実施例を示す概念図である。なお、この明細書において横方向(又は水平方向)とは図中に示したX方向つまりは鍵の短辺方向を指し、縦方向(又は垂直方向)とは図中に示したY方向つまりは鍵の長辺方向を指す。
図2に示すように、演奏画面には、実際の電子楽器に搭載されている物理的な演奏操作子を模した仮想演奏操作子として仮想鍵盤Aが表示される。仮想鍵盤Aのいずれかの鍵がタッチされたことを検出した場合には、CPU1による後述する「楽音発生処理」(図3参照)の実行に伴って楽音が発生される。また、仮想鍵盤Aのいずれかの鍵がタッチされた状態のまま摺動操作されたことを検出した場合には、CPU1による後述する「パラメータ制御処理」(図4参照)の実行に伴って楽音制御パラメータの値が変更される。すなわち、この実施例においては、仮想鍵盤Aの各鍵の表示領域がパラメータ値を変更するための操作領域に相当する。楽音発生処理及びパラメータ制御処理の詳細については後述する。なお、仮想演奏操作子は上記仮想鍵盤Aのような鍵盤楽器の演奏操作子を模したものに限らず、弦楽器や打楽器など他の自然楽器の演奏操作子を模したものであってよい。
演奏画面には、仮想操作子としてノブを模した形状の仮想ノブ操作子Bが複数表示される。この仮想ノブ操作子Bに対しては、任意のパラメータを予め割り当てておくことができるようになっており、ここでは左から順にカットオフ、レゾナンス、アタック、リリース、ポルタメントの各楽音制御パラメータが割り当てられた例を示している。また、パラメータを割り当て済みの仮想ノブ操作子Bには、その近傍に割り当てられたパラメータ種類を示す表示がなされる。図2では、CUTOFF,RESONANCE,ATTACK,RELEASE,PORTAMENTの種類表示を仮想ノブ操作子Bの上方に表示した例を示したが、これに限らず、各仮想ノブ操作子Bに割り当て済みのパラメータ種類をユーザに提示できればどのような表示の仕方であってもよい。
仮想ノブ操作子Bがタッチされた状態のまま円周方向に摺動操作されたことが検出された場合には、CPU1により該操作された仮想ノブ操作子Bに割り当て済みのパラメータの値を変更する制御が行われる。この変更制御では、一方向の摺動操作にあわせて値を増加する一方、前記方向とは反対方向の摺動操作にあわせて値を減少する。変更されたパラメータ値は、電子機器に内蔵されたソフトウェアシンセサイザ又は通信インタフェース9を介して接続された外部機器に送出されて楽音発生処理時に反映される。こうしたユーザの摺動操作にあわせて、該操作された仮想ノブ操作子Bはさも回転操作されるように表示制御されて、仮想ノブ操作子Bの指示部表示を変更後のパラメータ値に対応した位置に位置付ける。
演奏画面には、上記した仮想鍵盤Aや仮想ノブ操作子Bの他に、仮想スイッチC、垂直方向パラメータ選択仮想メニューD、水平方向パラメータ選択仮想メニューE、その他設定操作メニューFが表示される。仮想スイッチCは、ユーザ操作にあわせて仮想鍵盤Aの表示領域を左右の横方向にスクロールすることで、ユーザが操作できる鍵域を変更するか否かを設定するためのオン/オフスイッチである。例えば、仮想スイッチC(KEYBOARD SCROLL LOCK)がオフ状態では、仮想鍵盤A上で横方向のドラッグ操作が行われることに応じて仮想鍵盤Aの鍵域がドラッグ操作された向きにスクロール表示されるので、ユーザは表示器6Aで表示しきれない表示範囲外の鍵域を適宜に使用して広い音域で演奏を行うことができる。他方、仮想スイッチCがオン状態では、仮想鍵盤A上で横方向のドラッグ操作が行われても仮想鍵盤Aの鍵域はスクロール表示されず固定されたままであるので、ユーザは表示されている範囲の鍵域のみを使用して限定された音域で演奏を行うことができる。
上述したように、本実施形態においては、仮想鍵盤Aのいずれかの鍵がタッチされた状態のまま摺動操作されることに応じて楽音制御パラメータの値を変更する。この際に制御されるパラメータは、縦方向の摺動操作と横方向の摺動操作とで異なる種類のパラメータを割り当てることのできるようになっている。すなわち、垂直方向パラメータ選択仮想メニューDは縦方向の摺動操作に応じて制御する対象のパラメータを割り当てるものであり、水平方向パラメータ選択仮想メニューEは横方向の摺動操作に応じて制御する対象のパラメータを割り当てるものである。これにより、異なる2種類のパラメータの値を同時に変更制御するように設定することができる。
垂直方向パラメータ選択仮想メニューD又は水平方向パラメータ選択仮想メニューEへのタッチ操作が検出された場合には、CPU1により以下に示す制御が行われる。まず、割り当て可能なパラメータの一覧がポップアップ画面などにより表示される。仮想ノブ操作子Bに割り当て済みのパラメータだけを一覧表示させてもよいし、全てのパラメータ(楽音制御パラメータとしては上記の他に、例えばモヂュレーション,ボリューム,リバーブ,パン等がある)を一覧表示させてもよい。そして、一覧表示された中からいずれかのパラメータへのタッチ操作が検出された場合には、縦方向と横方向それぞれの摺動操作に応じて設定値を変更制御する対象として、タッチ操作されたパラメータを選択する。このとき、仮想ノブ操作子Bに既に割り当て済みのパラメータ以外のパラメータを新たに選択した場合には、いずれかの仮想ノブ操作子Bに選択されたパラメータを割り当てる。こうすると、ユーザは仮想鍵盤A上での摺動操作と仮想ノブ操作子Bへの摺動操作とで同じパラメータの設定値を変更することができるようになる。
また、垂直方向パラメータ選択仮想メニューD又は水平方向パラメータ選択仮想メニューEでは、パラメータ種類のみならず摺動操作にあわせて値を増やすのか減らすのかを指定できる。一例を挙げると、例えばパラメータ「カットオフ周波数」を「カットオフ」と「カットオフ(‐)」の2つの表記により表示する。そして、「カットオフ」表示が選択されている場合には摺動操作によってカットオフ周波数を高くするように値を加算する変更制御を行う一方で、「カットオフ(‐)」表示が選択されている場合には摺動操作によってカットオフ周波数を低くするように値を減算する変更制御を行うようにしておけばよい。なお、垂直方向パラメータ選択仮想メニューD,水平方向パラメータ選択仮想メニューEから、制御対象のパラメータを割り当てない選択ができてよいし、また同一のパラメータを制御対象として割り当てる選択ができてもよい。その他設定操作メニューFは、音色や音階など上記した以外のその他の楽音発生に係る各種設定や、外部機器との通信設定などを行うためのものである。
次に、図2に示した演奏画面の仮想鍵盤Aへのタッチ操作及び仮想鍵盤A上での摺動操作に応じて、楽音を発生する楽音発生処理及びパラメータ値を変更するパラメータ制御処理について説明する。図3は、楽音発生処理の一実施例を示すフローチャートである。この楽音発生処理はCPU1によって実行される処理であり、仮想鍵盤Aのいずれかの鍵へのタッチ操作を検知した場合に開始される。
ステップS1は、仮想ノブ操作子Bなどの操作によって予め設定済みである各種パラメータの初期値に従って、タッチされた鍵に予め割り当てられている音高の楽音の発生を開始する。例えば、本電子機器が内蔵するソフトウェアシンセサイザあるいは本電子機器に接続された外部機器に対して楽音発生指示が送出されることにより、ソフトウェアシンセサイザあるいは外部機器により楽音の発生制御は行われる。公知のように、ソフトウェアシンセサイザを利用して本電子機器単体で楽音を発生する場合には、所定の時間間隔で所定の時間長の音データを生成し、これをサウンドシステム7を介して次々と放音する制御が行われる。他方、外部機器を利用して楽音を発生する場合には、楽音発生の開始と終了とを外部機器に指示するだけで、楽音を発生/終了する制御は外部機器で実行される。なお、こうした楽音発生最中でも仮想ノブ操作子Bの操作は受け付けられ、該操作に応じて変更されたパラメータ値に従って楽音が制御される。
ステップS2は、垂直方向パラメータ選択仮想メニューD及び水平方向パラメータ選択仮想メニューE(図2参照)で選択された各パラメータに関し、現時点での値を初期値として記憶する。ステップS3は、タッチ開始位置を取得し当該位置を垂直成分(Y座標成分)と水平成分(X座標成分)とに分けて記憶する。
ステップS4は、仮想鍵盤Aへのタッチ操作が終了したか否かを判定する。具体的には、ユーザが当該鍵へのタッチ操作自体を止めたつまりは離鍵操作を行ったことを検知したか否か、あるいはタッチ位置が当該鍵の表示領域外へと移動したことを検知したか否かを判定する。仮想鍵盤Aへのタッチ操作が終了していないと判定した場合には(ステップS4のNO)、当該処理を繰り返す。一方、仮想鍵盤Aへのタッチ操作が終了したと判定した場合には(ステップS4のYES)、該当の楽音の発生を終了し(ステップS5)、当該処理を終了する。この場合、ソフトウェアシンセサイザあるいは外部機器に対して楽音発生終了指示が送出されて、ソフトウェアシンセサイザあるいは外部機器が発生中の楽音を消音する制御を実行する。
図4は、パラメータ制御処理の一実施例を示すフローチャートである。このパラメータ制御処理はCPU1によって実行される処理であり、仮想鍵盤A上における摺動操作を検出した場合に開始される(このとき上記楽音発生処理とは並列処理される)。
ステップS11は、現在のタッチ位置を特定し記憶(更新)する。ステップS12は、特定した現在のタッチ位置の垂直成分(Y座標成分)とタッチ開始位置の垂直成分(Y座標成分)とに応じて、垂直方向パラメータ選択仮想メニューDにて選択されたパラメータの値を更新する。ここに示す実施形態では、タッチ開始位置からの垂直方向の摺動距離に応じて、当該摺動距離に対応した変化量だけパラメータ値を更新する。すなわち、図2に示す仮想鍵盤Aにおいて各鍵の表示領域は水平方向に比べて垂直方向に長く、垂直方向では摺動操作するのに十分な移動可能領域を確保できることから、垂直方向に関しては従来と同様にタッチ開始位置からのタッチ位置の変位量に応じてパラメータ値の更新を行う。
他方、水平方向では摺動操作するのに十分な移動可能領域を確保できていないことから、水平方向に関しては従来と同様にタッチ開始位置からのタッチ位置の変位量に応じてパラメータ値の更新を行うことが難しい。そこで、本実施形態においては、水平方向に関しては従来と異なり、摺動操作中に所定の折り返し操作が行われたことを検知した場合にパラメータ値の変更を行うようにしている。また、パラメータ値の増減変化分を、タッチ開始位置からの摺動距離ではなく、折り返し操作直前に記憶された前回のタッチ位置からの摺動距離に応じて求めるようにしている(ステップS13以降参照)。
ここで、本実施形態においてパラメータ値の変更制御の契機とする折り返し操作について、図5を用いて説明する。図5は、折り返し操作の具体例を示す概念図である。図中に示した実線の矢印はタッチ開始位置からの摺動操作に応じて変位するタッチ位置の軌跡を示し、丸印は折り返し操作を検知した時点のタッチ位置(折り返し点)を示す。本明細書において「折り返し操作」とは、摺動操作の操作進行方向を所定角(例えば90度)以上の向きに変える方向転換操作のことを言う。
例えば、図5(a)はタッチ位置が直線上を往復移動する一連の摺動操作を示しているが、この往復摺動操作において操作進行方向を180度反転させる方向転換操作が「折り返し操作」に相当する(折り返し点A,B参照)。また、図示を省略したが、例えば折り返し点A,Bを結ぶ直線を1辺に含む長方形上を同一方向に移動する摺動操作を行っている場合には、操作進行方向を直角に変える方向転換操作は「折り返し操作」に相当し、折り返し操作が行われる長方形の4つの各頂点の位置は「折り返し点」に相当する。
図5(b)はタッチ位置が径の異なる円弧上を移動する一連の摺動操作を示しているが、この摺動操作においても操作進行方向をほぼ180度反転させる方向転換操作が「折り返し操作」に相当する(折り返し点A,B参照)。図5(b)に示す摺動操作の操作進行方向は円の接線向きに変化することからすれば、この場合は常に方向転換操作が行われていると言える。しかし、例えば図中においてバツ印で示した時点において、操作進行方向は所定角(例えば90度)以上の向きに変えられていない。したがって、このバツ印で示した時点の摺動操作は「折り返し操作」に相当しない。そうであるから、この場合には折り返し点A,B時点での方向転換操作のみが「折り返し操作」に相当する。また、図5(c)に示す摺動操作においては、折り返し点A,B,Cの各時点で操作進行方向を所定角以上の向きに変える方向転換操作がなされていることから、これらの各時点での摺動操作が「折り返し操作」に相当する。
なお、ここでは水平方向に折り返し操作が行われたことを検知した場合にパラメータ値の変更を行う場合を例にしたことから、実質的に水平成分の操作進行方向が所定角以上の向きに変えられる操作は「折り返し操作」に含まれる。例えば、図5(a)に示す折り返し点A,Bを含む円周上を同一方向に移動する摺動操作が行われている場合、折り返し点A,B上における操作は「折り返し操作」に相当する。勿論、円周上を同一方向に移動する摺動操作を行っている場合に、任意の位置で移動方向を反転させる操作(例えば時計回りから反時計回りに反転する操作)は「折り返し操作」に相当し、折り返し操作した円周上の任意の位置は「折り返し点」に相当するのは言うまでもない。
図4の説明に戻って、ステップS13は、特定した現在のタッチ位置の水平成分(X座標成分)と前回のタッチ位置の水平成分(X座標成分)とに応じて、前回のタッチ位置から現在のタッチ位置までの水平方向の摺動距離と、右か左かのどちら方向に摺動操作されたかを示す方向情報とを求める。ここで、前回のタッチ位置は上述したステップS11において更新される前に記憶されていた現在のタッチ位置であるので(ステップS18参照)、前回のタッチ位置から現在のタッチ位置までの摺動距離は摺動操作に伴って所定時間が経過するまでに移動した距離である。ステップS14は、求めた水平方向の摺動距離が所定値より大きいか否かを判定する。
水平方向の摺動距離が所定値より大きくないと判定した場合には(ステップS14のNO)、本処理を終了する。この場合、ユーザ操作が無視できるほど摺動距離の小さな摺動操作である又はそもそも摺動操作がなされていないノイズ動作として、パラメータ値の変更を行わない。他方、水平方向の摺動距離が所定値より大きいと判定した場合には(ステップS14のYES)、前回の方向情報と今回の方向情報とに基づき今回の摺動操作が「水平方向に折り返す操作」を含む操作であったか否かを判定する(ステップS15)。今回の摺動操作が「水平方向に折り返す操作」を含む操作でないと判定した場合には(ステップS15のNO)、ステップS18の処理にジャンプする。
一方、今回の摺動操作が「水平方向に折り返す操作」を含む操作であると判定した場合には(ステップS15のYES)、折り返し点を経由した摺動距離に応じた変化量に従ってパラメータ値を変更する(ステップS16)。この際にパラメータ値を増加させる場合には、上限値に達したらそれ以上に増加させない。あるいは、パラメータ値を減少させる場合には、下限値に達したらそれ以下に減少させない。なお、パラメータ値を増加させるか減少させるかは、上述したように、水平方向パラメータ選択仮想メニューEにおいてパラメータ種類のみならず摺動操作にあわせて値を増やすのか減らすのかを指定することにより決定される。パラメータ値が変更されると、内蔵のソフトウェアシンセサイザあるいは外部機器にパラメータ値を変更する指示が送出される。また、対応する仮想ノブ操作子Bの表示にも反映される。
ステップS17は、タイムアウト時間をリセットする。タイムアウト時間は、例えば200msecなどにリセットされる。所定値以上の摺動距離の摺動操作が行われることなく設定したタイムアウト時間が経過した場合、後述するタイムアウト制御処理(図6参照)がCPU1により開始される。ただし、既にタイムアウト制御処理の実行中である場合には、実行中のタイムアウト制御処理を中断する。すなわち、水平方向の折り返し操作が無い状態(例えば、摺動操作することなく停止したままじっとしている状態、垂直方向でのみ折り返し操作している状態、あるいは離鍵した状態など)が続いてタイムアウト時間が経過すると、摺動距離に応じたパラメータ値の変更制御とは反対にパラメータ値を減少(又は増加)する変更制御が開始される。勿論、タイムアウト時間が経過する前に水平方向の折り返し操作が検知されれば、その度に、摺動距離に応じたパラメータ値の変更制御が行われるので、その時点でタイムアウト時間はリセットされる。ステップS18は、現在のタッチ位置と方向情報とを前回のタッチ位置及び方向情報として記憶する。
図6は、タイムアウト制御処理の一実施例を示すフローチャートである。このタイムアウト制御処理は、所定時間毎に繰り返し実行される(例えば50msec周期)。ステップS21は、パラメータの現在値を初期値に所定量だけ近づける。このときにも、内蔵のソフトウェアシンセサイザあるいは外部機器にパラメータ値を変更する指示が送出され、また対応する仮想ノブ操作子Bの表示にも反映される。ステップS22は、現在値が初期値に達したか否かを判定する。現在値が初期値に達したと判定した場合には(ステップS22のNO)、本処理を終了する。現在値が初期値に達していないと判定した場合には(ステップS22のYES)、本処理の実行を停止する(ステップS23)。この実行停止により、所定時間経過後に本タイムアウト制御処理が実行されることがない。
パラメータ値の変更制御の具体例について図7を用いて説明する。図7は、パラメータ値の変更制御を説明するためのタイムチャートである。ただし、ここでは説明を理解しやすくするために、時刻t0に任意の鍵が押鍵(タッチ操作)されてから時刻t14に離鍵操作されるまでの間に、図5(a)に示したような水平方向のみの往復摺動操作が行われた場合を例に説明する。
時刻t0に鍵が押鍵されてから摺動操作が開始されることにあわせて、所定時間毎に摺動操作の進行に応じた現在のタッチ位置(方向情報を含む)と前回のタッチ位置(方向情報を含む)の更新とが開始される。時刻t1時に操作進行方向を右から左方向に180度反転する摺動操作が行われた場合、前回の方向情報「右」と現在の方向情報「左」とに基づいて当該操作が「折り返し操作」に相当する方向転換操作であることを検知する。折り返し操作を検知すると、前回のタッチ位置と現在のタッチ位置さらには折り返し点とに基づき、折り返し操作が行われた時間内に移動した摺動距離を求め、該求めた摺動距離に応じてパラメータ増加量(変化量)を決定する。予め割り当て済みのパラメータの現在の設定値(ここでは初期値)にパラメータ増加量を加算してパラメータ値を変更する。
時刻t2時及び時刻t3時にも操作進行方向を180度反転する摺動操作が行われていることから、これらの各時刻においても上記時刻t1時と同様にして、折り返し操作が行われた時間内に移動した摺動距離に応じて決定されるパラメータ増加量を現在のパラメータ設定値に加算するパラメータ値の変更制御を行う。このときの各摺動操作時の摺動距離は時刻t1の操作時より長いので、加算するパラメータ増加量は時刻t1時に比べて大きくなる。一方、時刻t4時にも操作進行方向を180度反転する摺動操作が行われているが、このときの摺動距離は所定値より大きくないことから、時刻t4時にパラメータ値の変更制御は行われない。
また、時刻t5,t6,t7,t9,t11時にも摺動距離が所定値より大きくかつ操作進行方向を180度反転する摺動操作が行われていることから、各時刻においてパラメータ増加量を加算するパラメータ値の変更制御が行われる。ただし、時刻t7時においては、時刻t6時のパラメータ値の変更制御によってパラメータ値が上限値にまで既に設定された状態にあり、これ以上の値に設定することができないことから、実質的にパラメータ値は変更されない。
時刻t7以降には、摺動距離が所定値より大きくない摺動操作が行われている。こうした摺動操作が行われている時間がタイムアウト時間(例えば200ms)を超えると、摺動距離が所定値より大きい摺動操作が行われるまで(ここでは時刻t9とする)、タイムアウト時間経過後(時刻t8)からの時間経過に応じて所定のパラメータ減衰量(変化量)を加算するパラメータ値の変更制御が行われる。これにより、図示したように時刻t8から時刻t9まではパラメータ値が上限値から初期値に向かって減少する。パラメータ減衰量を加算する変更制御は、摺動距離が所定値より大きくない摺動操作が行われてからタイムアウト時間が経過した時刻t10,t12にも同様に実行される。なお、パラメータ減衰量を加算する変更制御が行われることに伴い、パラメータ値が初期値にまで減少したような場合には(時刻t13参照)、その時点でパラメータ値の変更制御を終了する。
以上のように、本発明によると、タッチ操作された仮想鍵盤Aのいずれかの鍵の表示領域において行われた摺動操作が折り返し操作(方向転換操作)を含む一連の摺動操作である場合に、水平方向パラメータ種類仮想メニューEにて予め割り当て済みのパラメータのパラメータ値の変更制御を行うようにした。すなわち、タッチ操作された鍵の表示領域において摺動操作が行われた場合に、当該摺動操作が折り返し操作を含まない操作であればパラメータ値を変更しない一方で、当該摺動操作が折り返し操作を含む操作であれば、この折り返し操作を契機としてパラメータ値を変更する。このとき、該折り返し操作を含む一連の摺動操作の摺動距離に応じた変化量に基づいて、パラメータ値を増加する又はパラメータ値を減少するいずれか一方の変更制御を行う。このようにすると、利用者はタッチ操作した鍵の表示領域において折り返し操作を繰り返し含む一連の摺動操作を行うことによって、パラメータ値を増加又は減少させる一方向の変更制御を行うことができる。したがって、仮想鍵盤Aの鍵のように本来は楽音の発生制御のために確保された操作領域をパラメータ値変更のための操作領域として兼用するが故に、どうしても操作領域が狭くなるような場合であっても、利用者は容易かつ直感的にパラメータ値を広い範囲にわたって変更することのできるようになる。
利用者は以下に示すような操作を行うことにより、容易かつ直観的にパラメータ値の変更を行うことができる。例えば、パラメータ値を細かい時間間隔で増加させたいときは、弦楽器におけるビブラート奏法時の操作のように単位時間内の折り返し操作の回数がより多くなる素早い摺動操作を行えばよい。他方、パラメータ値を離散的に増加させたいときは、単位時間内の折返し操作の回数がより少なくなるゆっくりとした摺動操作を行えばよい。また、パラメータ値を少しずつ増加(又は減少)させたいときは摺動距離の短い摺動操作を行い、パラメータ値を大きく増加(又は減少)させたいときは摺動距離の長い摺動操作を行えばよい。こうした摺動操作の組み合わせにより、利用者は多彩なパラメータ値の変更制御を直観的に行うことができる。さらに、折り返し操作時にパラメータ値を増加(又は減少)させる制御を行う一方で、タイムアウト時間にわたって折り返し操作がなされない場合にはパラメータ値を減少(又は増加)する制御を行うようにしたことから、利用者はパラメータ値の増加と減少を同時に発生させてこれらを相殺させることもできる。すなわち、利用者はタイムアウト時間が経過する度に折り返し操作を繰り返し行うことにより、パラメータ値をほぼ維持させるといったようにパラメータ値の変更具合をうまく調整することが可能である。
以上、図面に基づいて実施形態の一例を説明したが、本発明はこれに限定されるものではなく、様々な実施形態が可能であることは言うまでもない。例えば、上述した実施例では、操作進行方向を水平方向に折り返す方向転換操作を契機にパラメータ値を変更するパラメータ制御処理を例に示したがこれに限らず、操作進行方向を垂直方向に折り返す方向転換操作を契機にパラメータ値を変更するパラメータ制御処理であってよい。
なお、パラメータ値の変化量は所定時間内に移動した摺動距離に応じて決定することに限らず、前回の折り返し点から今回の折り返し点までの距離(所定時間内に移動した摺動距離を前回の折り返し点から今回の折り返し点までの移動時間に応じて累計した距離)に応じて決定するようにしてもよい。また、移動がある度にそれを検出回路5が検出してその位置を記憶しておき、折り返し操作の際には記憶されていた位置から現在の位置までの距離に応じて、パラメータ値の変化量を決定するようにしてもよい。
なお、上述した実施例においては、ユーザ操作が指を押圧した状態のまま移動させる摺動操作である場合に上記したパラメータ制御を行うものを示したが、これに限らず、例えばユーザが最初にタッチした位置から指を動かすことなしに、単にその位置で指を左右等に震わせる操作を行った場合に上記したパラメータ制御を行うようにしてもよい。この場合、指の動作にあわせて指の重心位置が都度変わることに応じて検知される接触位置が移動するので、これにより操作進行方向並びに移動距離を把握することができる。
なお、上述した実施例においては表示器6A上におけるユーザによるタッチ操作(ユーザ操作)を検知することに応じてパラメータ値を変更制御するものを示したが、これに限らず、例えばユーザによるマウス等の操作(ユーザ操作)に従って表示器6A上を移動するポインタ等の表示体の動きを検出することに応じてパラメータ値を変更制御するものであってもよい。また、表示器6Aに限らず、タッチパッドなどのユーザタッチ操作を検出可能な操作子であってよい。
なお、本発明に係るパラメータ制御プログラムはスレート型のパーソナルコンピュータやスマートフォン等の電子機器に適用することに限らず、通常のパソコンや専用のハードウェアからなる電子楽器にも適用することができる。
なお、上述のパラメータ制御プログラムはコンピュータソフトウェアの形態に限らず、DSP(ディジタル・シグナル・プロセッサ)によって処理されるマイクロプログラムの形態でも実施可能であり、またこの種のプログラムの形態に限らず、ディスクリート回路又は集積回路若しくは大規模集積回路等を含んで構成された専用のハードウェア装置の形態で実施してもよい。