以下、本発明の実施の形態を図面に基づいて詳細に説明する。
図1は、本発明の一実施の形態に係るパラメータ設定装置を適用した電子楽器の概略構成を示すブロック図である。
同図に示すように、本実施の形態の電子楽器は、音高情報を含む演奏情報を入力するための鍵盤を含む演奏操作子1と、各種情報を入力するための複数のスイッチや複数のスライダ、ダイヤルを含む設定操作子2と、演奏操作子1の操作状態を検出する検出回路3と、設定操作子2の操作状態を検出する検出回路4と、装置全体の制御を司るCPU5と、該CPU5が実行する制御プログラムや、各種テーブルデータ等を記憶するROM6と、演奏情報、各種入力情報および演算結果等を一時的に記憶するRAM7と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ8と、各種情報等を表示する、たとえば小型の液晶ディスプレイ(LCD)および発光ダイオード(LED)等を備えた表示器9と、前記制御プログラムを含む各種アプリケーションプログラムや各種楽曲データ、各種データ等を記憶する記憶装置10と、外部からのMIDI(musical instrument digital interface)メッセージを入力したり、MIDIメッセージを外部に出力したりするMIDIインターフェース(I/F)11と、通信ネットワーク101を介して、たとえばサーバコンピュータ(以下、「サーバ」と略して言う)102とデータの送受信を行う通信インターフェース(I/F)12と、演奏操作子1から入力された演奏情報や、前記記憶装置10に記憶されたいずれかの楽曲データを再生して得られた演奏情報等を楽音信号に変換する音源回路13と、該音源回路13からの楽音信号と、他の音響機器103が出力し、入力信号I/F16を介して入力された楽音信号とをミキシングしたり、該ミキシングされた楽音信号あるいは音源回路13から供給された楽音信号そのものに各種効果を付与したりするためのデジタル信号処理回路14と、該デジタル信号処理回路14からの楽音信号を音響に変換する、たとえば、DAC(digital-to-analog converter)やアンプ、スピーカ等のサウンドシステム15とにより構成されている。
上記構成要素3〜14は、バス18を介して相互に接続され、CPU5にはタイマ8が接続され、MIDII/F11には他のMIDI機器100が接続され、通信I/F12には通信ネットワーク101が接続され、音源回路13にはデジタル信号処理回路14が接続され、デジタル信号処理回路14にはサウンドシステム15、入力信号I/F16および出力信号I/F17が接続されている。ここで、通信I/F12および通信ネットワーク101は、有線方式のものに限らず、無線方式のものであってもよい。また、両方式のものを備えていてもよい。
設定操作子2は、フォーカス位置のパラメータの値を変更するためのダイヤル2aと、前記表示器9の小型LCD上に最大4(行)×8(列)のマトリックス状に配列された、最大32個のパラメータの各行をそれぞれ選択するための行選択スイッチ(SW)からなる行選択SW群2bと、当該パラメータの各列にそれぞれ対応付けられた増/減スイッチ(SW)からなる増/減SW群2cと、当該パラメータの各列にそれぞれ対応付けられたスライダからなるスライダ群2dと、その他操作子群2eとによって構成されている。
記憶装置10は、たとえば、フレキシブルディスク(FD)、ハードディスク(HD)、CD−ROM、DVD(デジタル多目的ディスク)、光磁気ディスク(MO)および半導体メモリなどの記憶媒体とその駆動装置である。記憶媒体は、駆動装置から着脱可能であってもよいし、記憶装置10自体が、電子楽器から着脱可能であってもよい。あるいは、記憶媒体も記憶装置10も着脱不可能であってもよい。なお、記憶装置10(の記憶媒体)には、前述のように、CPU5が実行する制御プログラムも記憶でき、ROM6に制御プログラムが記憶されていない場合には、この記憶装置10に制御プログラムを記憶させておき、それをRAM7に読み込むことにより、ROM6に制御プログラムを記憶している場合と同様の動作をCPU5にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
MIDII/F11は、専用のものに限らず、RS−232CやUSB(ユニバーサル・シリアル・バス)、IEEE1394(アイトリプルイー1394)等の汎用のインターフェースによって構成してもよい。この場合、MIDIメッセージ以外のデータをも同時に送受信してもよい。
通信I/F12は、上述のように、たとえばLAN(local area network)やインターネット、電話回線等の通信ネットワーク101に接続されており、該通信ネットワーク101を介して、サーバ102に接続される。記憶装置10に上記各プログラムや各種パラメータが記憶されていない場合には、通信I/F12は、サーバ102からプログラムやパラメータをダウンロードするために用いられる。クライアントとなる電子楽器は、通信I/F12および通信ネットワーク101を介してサーバ102へとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバ102は、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワーク101を介して電子楽器へと配信し、電子楽器が通信I/F12を介して、これらプログラムやパラメータを受信して記憶装置10に蓄積することにより、ダウンロードが完了する。
デジタル信号処理回路14は、前述のように、入力された楽音信号をミキシングしたり、楽音信号に各種効果を付与したりする。ミキシングの対象は、音源回路13から供給された楽音信号と、入力信号I/F16を介して入力された、他の音響機器103からの楽音信号であるが、楽音信号が複数のチャンネルによって構成されている場合、ミキシングする楽音信号のチャンネル番号やチャンネル数は自由に設定できる。したがってデジタル信号処理回路14は、音源回路13からの楽音信号の一部チャンネルと他の音響機器103からの楽音信号の一部チャンネルをミキシングすることも、音源回路13および他の音響機器103の双方から楽音信号が供給されている場合であっても、どちらか一方の楽音信号の一部チャンネルのみを抜き出してミキシングすることもできる。さらに各種効果は、ミキシング後の楽音信号に付与することもできるし、ミキシング前の楽音信号に付与することもできる。後者の場合、一部のチャンネルのみに各種効果を付与することもできる。また、デジタル信号処理回路14が出力する楽音信号は、サウンドシステム15だけでなく、出力信号I/F17を介して他の音響機器104にも供給可能に構成されている。
なお、本実施の形態の電子楽器は、上述の構成から分かるように、電子鍵盤楽器上に構築されたものであるが、鍵盤楽器の実施形態に限らず、弦楽器タイプ、管楽器タイプ、打楽器タイプ等の他の実施形態でもよい。また、鍵盤を外部接続した汎用的なPC上に構築してもよい。さらに、ミキサなどの音響機器上に構築するようにしてもよい。その場合には、楽音信号をミキシングするための信号処理回路やAD/DA変換回路などは必須の構成要素であるが、音源回路は必須の構成要素ではない。また、楽音信号を生成して発生する機能構成、具体的には構成要素13〜17と、それ以外の、パラメータを設定する機能構成とは、本実施の形態では一体的に形成されているが、別体的に形成してもよい。
本実施の形態の電子楽器は、パラメータ、特にマルチメディアデータを制御するパラメータの値を設定する機能を、主要な機能として備えている。マルチメディアデータを制御するパラメータの例としては、音源回路13に設けられた各種レジスタに格納され、音源回路13が楽音生成のために使用する各種楽音生成用パラメータ、デジタル信号処理回路14に設けられた各種レジスタに格納され、デジタル信号処理回路14が供給された楽音信号に各種効果を付与する際に、あるいは供給された楽音信号をミキシングする際に使用する効果付与パラメータやミキシング用パラメータ、自動演奏を行うためのソフトウェアであるMIDIシーケンサ(たとえば、記憶装置10に予め記憶されていたり、サーバ102から通信I/F12および通信ネットワーク101を介してダウンロードされ、記憶装置10に記憶されたりしたもの)が動作処理を行うために必要なパラメータ(つまり、楽音生成を直接行うために必要なパラメータではなく、演奏情報を生成するために必要なパラメータ)、楽音ではなく、映像を制御するためのパラメータなどを挙げることができる。
また、本実施の形態の電子楽器が設定対象とするパラメータは、ROM6や記憶装置10などに予め記憶されているものでも、MIDII/F11や通信I/F12を介して外部から供給され、RAM7や記憶装置10などに記憶されたものでもよい。
図2は、前記表示器9を構成する小型LCD9a周辺のパネル面の一部の平面図である。
同図に示すように、小型LCD9a周辺には、ダイヤル2a、行選択SW群2b、増/減SW群2c、スライダ群2dおよびカテゴリ選択SW2e1,2e2が配置されている。
図示例の電子楽器は、パラメータ設定モードが選択されて、動作モードがパラメータ設定モードに移行した後、パラメータの複数のカテゴリのうち、“TUNE”のカテゴリが選択された状態を示している。このとき、小型LCD9a上には、“TUNE”のカテゴリに属するパラメータ(図示例では、19個のパラメータ)と、その現在の設定状況が、パラメータの名称と、パラメータの設定値そのものを示す数値(“50”)およびパラメータの設定可能範囲に対する現在の設定値を視覚的に示すノブ形状のインジケータとによって表示されている。そして選択されたカテゴリの名称(つまり“TUNE”)には、そのカテゴリが選択中であることが分かるように、斜線が施されている。もちろん「斜線」は、図面に描き易いようにその態様を採用したのであって、反転表示、表示色や表示フォントの変更など、どのような態様のものを採用しても構わない。他の「斜線」についても、同様である。
ダイヤル2aは、マトリックス状に配置された複数のパラメータのうち、フォーカス位置の1つのパラメータの値を変更することができる。ダイヤル2aは、時計の針が進む方向に回すと、当該パラメータの値をその回転量に応じた値だけ増加させる一方、逆方向に回すと、当該パラメータの値をその回転量に応じた値だけ減少させる。フォーカス位置は、パラメータの設定値とノブ状のインジケータを囲む4角形fによって示されている。本実施の形態では、フォーカス位置fの列方向の移動は、増/減SW群2cに含まれるいずれかの増/減SWを操作することに応じて、当該増/減SWに対応付けられたパラメータの値の増/減と一緒になされる。
行選択SW群2bを構成する各行選択SWは、上記マトリックス状に配置されたパラメータの各行に対応付けて配置され、ユーザが1つの行選択SWを押下すると、その行選択SWに対応付けられた行が選択される。小型LCD9aの左側に配置された4つの行選択SWと右側に配置された4つの行選択SWのうち、水平方向の位置が同じもの、たとえば、“B”と表示された行選択SWと“F”と表示された行選択SWは、いずれを押下しても、第2行が選択される。ただし設定可能なパラメータは、選択可能なすべての行のすべての列に配置されているとは限らない。図示例では、第1列〜第3列には、設定可能なパラメータは1行しか配置されず、第4列には、設定可能なパラメータは配置されていない。そして図2は、このようなパラメータの配置状態で、“F”(あるいは“B”)と表示された行選択SWが押下されたときの状態を示している。つまり、“F”と表示された行選択SWが押下されるということは、ユーザは第2行を選択したいことを示しているので、その行に設定可能なパラメータが配置されているときには、その行のパラメータ(図示例では、“PITCH BEND RANGE”のパラメータ)が選択され、その行に設定可能なパラメータが配置されていないときには、所定の行、たとえば、その行に最も近い行のパラメータ(図示例では、“TRANSPOSE”のパラメータ)が選択される。さらに、いずれのパラメータも配置されない列(図示例では、第4列)があるときには、その列の行は当然ながら、選択されない。
なお、図2の例からも分かるように、「パラメータをマトリックス状に配置する」という表現を用いても、実際にパラメータが配置されたマトリックスには、抜け(パラメータの配置されない箇所)があるので、この「マトリックス」は、数学上定義される「マトリックス」と一致しない。しかし、抜けがなく、32個のパラメータがすべて配置された場合や、行単位の抜けや列単位の抜けがあった場合(図4参照)など、パラメータの配置形状が、数学上定義される「マトリックス」の形状と一致することもあるので、数学上定義される「マトリックス」の形状と完全に一致しない場合があったとしても、その場合を含んで、本願明細書、特許請求の範囲、図面および要約書中では、「パラメータをマトリックス状に配置する」と表現する。
図4は、図2から“TRANSPOSE”のパラメータが削除された場合の小型LCD9a周辺のパネル面の一部の平面図である。図4では、第1列〜第4列のすべての行にパラメータが配置されていないので、第1列〜第4列については、いずれの行も選択することができない。
図2に戻り、増/減SW群2cを構成する各増/減SWは、上記マトリックス状に配置されたパラメータの各列にそれぞれ対応付けられ、いずれかの増/減SWが押下されると、前記行選択SWによって選択された行と当該増/減SWに対応付けられた列とで指定される位置のパラメータの値が、1回の押下に応じて“1”ずつ増加あるいは減少する。このとき、フォーカス位置fのパラメータと異なる(列の)パラメータに対応付けられた増/減SWが押下された場合、フォーカス位置fも、当該増/減SWに対応付けられた(かつ、選択された行の)パラメータの位置に移動する。なおこの場合、増/減SWの最初の1回目の押下では、フォーカス位置fだけを移動させ、それに続く2回目以降の押下で、当該パラメータの値を変更させるようにしてもよい。
スライダ群2dを構成する各スライダも、各増/減SWと同様に、上記マトリックス状に配置されたパラメータの各列にそれぞれ対応付けられ、いずれかのスライダが操作されると、前記行選択SWによって選択された行と当該スライダに対応付けられた列とで指定される位置のパラメータの値が変更される。ただし各増/減SWと異なり、パラメータの値は“1”ずつではなく、操作位置に応じた値に変更され、しかもどのスライダを操作したとしても、フォーカス位置fは移動しない。
図3は、前記マトリックス状に配置されたパラメータの値を設定するためのデータ構造の一例を示す図である。
同図に示すように、RAM7の一部領域には、前記マトリックス状に配置されたパラメータの各値がそれぞれ実際に設定されるレジスタの位置を示すポインタを格納するためのポインタ格納領域と、該ポインタ格納領域におけるフォーカス位置を格納するためのフォーカス位置格納領域が確保されている。
ポインタ格納領域は、4(行)×8(列)のマトリックス状に形成され、各行には“0”から“3”までの、各列には“0”から“7”までの整数値がそれぞれ付与される(なお、各行および各列を数えるときには“1”から始め、各行および各列に整数値を付与するときには“0”から始めるようにしたのは、前者はそうするのが慣例であり、後者はそうした方がCPU5が扱い易いからである。しかし、それ以上の理由はないので、一方を他方に合わせてもよい)。したがって、ポインタ格納領域に格納された各ポインタは、数学上のマトリックスの各要素と同様に、(行番号,列番号)によって指定される。
ポインタ格納領域は、本実施の形態では、1つのみ設けられ、カテゴリが変更される度に、当該カテゴリに属する各パラメータをそれぞれ示すポインタがポインタ格納領域に格納される。なお、パラメータ値が実際に設定されるレジスタは、パラメータ毎に固定的に決まっており、変動しないので、パラメータが決まれば、そのポインタも一意的に決まる。したがって、設定可能なパラメータのそれぞれとそのポインタとを対応付けたテーブルデータを予め作成して、たとえば前記ROM6内に記憶させておき、カテゴリが選択されて、そのカテゴリに属するパラメータを小型LCD9a上に表示する際に、テーブルデータから、当該パラメータにそれぞれ対応するポインタを読み出して、ポインタ格納領域内の、対応する位置に格納させればよい。また、ポインタ格納領域中、ポインタが格納されない一部領域もあり、その一部領域には「割り当てなし」を示す情報(たとえば“FF”)が格納される。ただし「割り当てなし」を示す情報は、いずれの行にもパラメータが配置されていない列にのみ格納され、一部の行にパラメータが格納されている列には格納されない。より具体的には、図2に示すように、第1列から第3列までは、第4行にのみパラメータが配置されている(パラメータは、行番号の大きい方(本実施の形態では、第4行)から詰めて配置されるものとする)が、図3のポインタ格納領域内には、破線で示すように、第1列(“0”)から第3列(“2”)までは、第4行(“3”)と同じ内容のポインタが、第1行(“0”)から第3行(“2”)までにも格納されている。このように、ポインタ格納領域中、実際にはポインタが格納されない一部領域にも、その近傍の一部領域に格納されたポインタと同じポインタを格納するようにしたのは、フォーカス位置の制御をより簡単にしたいからである。
図5は、図4の小型LCD9a上に表示されたパラメータの値を設定するためのデータ構造の一例を示す図である。図4の小型LCD9a上には、第1列から第4列までの列に対するすべての行にパラメータが配置されていないので、ポインタ格納領域中、第1列(“0”)から第4列(“3”)までの列に対するすべての行(“0”〜“3”)に、「割り当てなし」を示す情報が格納されている。
図3に戻り、フォーカス位置格納領域には、現在のフォーカス位置を示す情報、本実施の形態では(行番号,列番号)が格納される。図示例では、フォーカス位置格納領域には(1,0)が格納されている。つまり、現在のフォーカス位置は、第2行第1列のパラメータ(ポインタ格納領域中、太線で囲まれた「MASTERのTRANSPOSEのレジスタへのポインタ」によって示されるパラメータ)である。なお、図2のフォーカス位置fは第4行第1列にあるのに対して、図3のフォーカス位置格納領域に格納されたフォーカス位置は第2行第1列にあるので、両者のフォーカス位置は、行番号が異なっている。これは、ユーザが行選択SWを用いて選択した行に、実際にはパラメータが配置されていないとしても、その行に最も近い行にパラメータが配置されているときには、当該パラメータがその行にも配置されていると見なして、ポインタ格納領域中、対応する位置に当該パラメータのポインタを格納し、フォーカス位置の行については、その行にパラメータが配置されているかどうかに拘わらず、選択した行として、フォーカス位置の行と表示上の行との間に齟齬が生じても、フォーカス位置の(特に、行の)制御を簡単化したいからである。したがって、フォーカス位置の制御を簡単化しなくてもよい場合には、フォーカス位置の行と表示上の行とを合わせるようにすればよい。この場合、マトリックス状に配置されたパラメータの構成と、ポインタ格納領域に格納されたポインタの構成とを合わせるようにすればよい。つまりこの場合、図3のポインタ格納領域の例において、破線で囲まれた領域中、“0”〜“2”の行と“0”〜“2”の列とで囲まれた部分領域には、「割り当てなし」を示す情報が格納される。
以上のように構成された電子楽器が実行する制御処理を、まず図2および図6を参照してその概要を説明し、次に図7〜図11を参照して詳細に説明する。
ユーザが、たとえば、前記その他操作子群2eに含まれるモードスイッチ(図示せず)を操作して、動作モードがパラメータ設定モードに移行した後、前記カテゴリ選択SW2e1,2e2を操作して、“TUNE”のカテゴリを選択し、さらに“F”と表示された行選択SWを操作して、第2行を選択すると、表示器9の小型LCD9a上には、図2に示すように、“TUNE”のカテゴリに属するパラメータがマトリックス状に配置されて表示され、その第2行のパラメータが選択された状態で、全パラメータの現在の設定状況が表示される。ただし、第1列から第3列までの列に対する第2行には、パラメータは配置されていないので、配置されている行、つまり第4行が見かけ上選択されている。この表示状態で、ユーザがダイヤル2aを回転させると、フォーカス位置fのパラメータ(図示例では、「MASTERのTRANSPOSE」)の値が、回転方向および回転量に応じた値だけ増減される。
一方、上記パラメータの設定状態で、ユーザが前記増/減SW群2cに含まれる第3列の増SWを1回押下すると、フォーカス位置fは第3列に移動し、その位置にあるパラメータ(図示例では、「KBDのTRANSPOSE」)の値が“1”だけ増加する。
さらに、第3列の増SWを押下する前のパラメータの設定状態で、ユーザが、前記スライダ群2dに含まれる第5列のスライダを操作すると、第2行第5列のパラメータ(図示例では、「LEFTのPITCH BEND RANGE」)の値が操作位置に応じた値に設定される。このとき、フォーカス位置fは変化しないので、続いてユーザがダイヤル2aを回転させると、フォーカス位置fのパラメータ、つまり「MASTERのTRANSPOSE」の値が、回転方向および回転量に応じた値だけ増減される。
このように、本実施の形態では、増/減SW群2cに含まれる各増/減SWを操作することで、フォーカス位置を移動させて個々のパラメータの値を設定したり、これとは逆に、スライダ群2dに含まれる各スライダを操作することで、フォーカス位置を移動させずに個々のパラメータの値を設定したりすることができるので、ユーザはフォーカス位置の切替制御を自分の思い通りに行いながら、個々のパラメータの値を設定することが可能となる。
なお、本実施の形態では、フォーカス位置を移動させて個々のパラメータの値を設定する操作子として、増/減SWを用いる一方、フォーカス位置を移動させずに個々のパラメータの値を設定する操作子として、スライダを用いるようにしたが、操作子の種類やその組み合わせはこれに限らず、前者の操作子も後者の操作子も同一種類の操作子(たとえば増/減SW、スライダ、ノブ、ホイール、テンキーなど、パラメータ値を変更可能なものであればどのようなものでもよい)を用いてもよいし、前者の操作子と後者の操作子のそれぞれの種類を異ならせるときには、上記例示した複数の操作子の中から任意に選択した2種類の操作子を用いればよい。
スライダ群2dに含まれるスライダを操作することで、設定対象のパラメータの値を設定する場合、当該パラメータの値は、前述のように、スライダの操作位置に応じた値に設定される。図6は、スライダの操作位置をパラメータの設定値に変換する変換テーブルの一例をグラフ化した図である。同図には、1種類の線形変換テーブル(破線で描かれたもの)TBL1と3種類の非線形変換テーブル(実線、一点鎖線および二点鎖線で描かれたもの)TBL2〜TBL4が例示されている。本実施の形態では、パラメータ毎に変換テーブルを設定しておき、スライダが操作されると、その操作位置が、設定対象のパラメータについて設定された変換テーブルにより、パラメータ値に変換され、この変換によって得られたパラメータ値が設定対象のパラメータに設定される。なお、変換テーブルは、ROM6内に予め記憶させておいたものを読み出して用いればよい。
設定対象のパラメータに、たとえば線形変換テーブルTBL1が設定された場合、スライダの操作位置は、その位置に比例したパラメータ値に変換されるので、フォーカス位置が移動するかどうかを問題にしなければ一見、増/減SWによるパラメータ値の設定動作とあまり違いがないと感じられる。しかし両者は、第1に、1回の操作で変更設定できるパラメータ値の変更幅が異なり、第2に、パラメータ値に対して分解能単位(最小単位)の増減設定を行う操作の難易度が異なっている。つまり、スライダは、操作位置に応じたパラメータ値を設定できるので、パラメータ値の変更幅は、現在のパラメータ値とパラメータ値の最大値および最小値によって決まる(具体的には、設定対象のパラメータが、最小値“0”から最大値“127”までのいずれかの整数値を設定可能とし、現在のパラメータ値が“50”とすると、パラメータ値の変更幅は、プラス方向に最大“77”となり、マイナス方向に最大“50”となる)のに対して、増/減SWは、1回の操作でパラメータ値を“1”だけ増/減させるため、パラメータ値の変更幅は“±1”である。一方、楽器などの狭い操作パネル上に設けられるスライダは、その操作範囲が狭いので、分解能が7ビット(128分割)であり、スライダの構造上、分解能単位で操作できるようになっていたとしても、分解能単位で操作するには熟練を要するのに対して、増/減SWは、1回の操作で極めて簡単に分解能分だけ増減させることができる。したがって、スライダでは、設定対象のパラメータの値を連続的に大まかに設定できるのに対して、増/減SWでは、設定対象のパラメータの値を分解能単位で簡単に設定できる。
このように、本実施の形態では、同じパラメータの値を設定するときにユーザは、連続的に大まかな設定と簡単な最小単位での設定とを即座に使い分けることができる。
また、変換テーブルとして、非線形変換テーブルTBL2〜TBL4を用いた場合、上記効果に加え、スライダの操作範囲内に、分解能の低い部分と高い部分を混在させることができるので、設定対象のパラメータの種類に応じて、形状の異なる非線形変換テーブルを使い分けることで、目標となるパラメータ値により速くたどり着くことができる。
次に、この制御処理を詳細に説明する。
図7は、本実施の形態の電子楽器、特にCPU5が実行するメインルーチンの手順を示すフローチャートである。
本メインルーチンでは、CPU5は、主として、
(1)初期設定処理(ステップS1)
(2)設定対象パラメータ切替処理(ステップS2)
(3)増/減SW操作処理(ステップS3)
(4)スライダ操作処理(ステップS4)
(5)ダイヤル操作処理(ステップS5)
(6)行選択SW操作処理(ステップS6)
(7)楽音信号生成処理(ステップS7)
の各処理を行う。本メインルーチンは、前記その他操作子群2eに含まれる電源スイッチ(図示せず)によって電源がオンされたときに起動される。起動後、前記(1)の初期設定処理が1回実行され、これに続いて、前記(2)〜(7)の各処理が順次実行される。そして(7)の処理が終了すると、(2)の処理に戻って、(2)〜(7)の処理が、電源スイッチによって電源がオフされるまで、繰り返し実行される。
前記(1)の初期設定処理では、CPU5は、RAM7をクリアしたり、各種パラメータの値をデフォルト値に設定したり、タイマ8の計時を開始させたり、動作モードをデフォルトモードに設定したりする等の初期設定を行う。
ユーザが前記モードスイッチを操作することにより、パラメータ設定モードを選択すると、CPU5は、動作モードをパラメータ設定モードに移行させた後、処理を前記(2)の設定対象パラメータ切替処理に進める。この(2)設定対象パラメータ切替処理では、CPU5は、ユーザによるカテゴリ選択SW2e1,2e2の操作に応じて、設定対象のパラメータを頁毎に切り替え、小型LCD9a上の表示に反映させる。ここで「頁」とは、小型LCD9aの1画面を言う。つまり、本実施の形態では、選択可能なカテゴリ毎に最大1頁分(本実施の形態では、4×8のマトリックスに含まれる、最大32個)のパラメータを設定可能に構成され、カテゴリが切り替わる毎に、設定対象となるパラメータが切替後のカテゴリに属するパラメータに切り替わり、それと同時に、小型LCD9aの1画面分のパラメータも切替後のカテゴリに属するパラメータに切り替わる。
図8は、前記(3)の増/減SW操作処理の詳細な手順を示すフローチャートである。
この(3)増/減SW操作処理では、まずCPU5は、増/減SW群2cに含まれるいずれかの増/減SWが操作されたかどうかを常時チェックし(ステップS11)、いずれの増/減SWも操作されなかったときには、この(3)増/減SW操作処理を終了する(ステップS11→リターン)一方、いずれかの増/減SWが操作されたときには、前記フォーカス位置格納領域からそこに格納されているフォーカス位置を読み出し、読み出したフォーカス位置のうちの行番号を取得する(ステップS12)。図3の例では、フォーカス位置格納領域には、フォーカス位置として(1,0)が格納されているので、ステップS12の処理では、行番号として“1”が取得される。
次にCPU5は、操作された増/減SWの列番号を取得する(ステップS13)。増/減SWは前記マトリックスの列に対応付けられているので、操作された増/減SWが特定されると、その増/減SWに対応付けられている行番号は簡単に取得される。図2の例で、たとえば第6列の増SWが操作された場合には、ステップS13の処理では、列番号として“5”が取得される。
次にCPU5は、取得した行番号と列番号で指定されるパラメータの値を“1”だけインクリメント(あるいは、デクリメント)する(ステップS14)。ここで、「インクリメント」は、増SWが操作されたときになされ、「デクリメント」は、減SWが操作されたときになされる。前述のように、行番号として“1”が取得され、列番号として“5”が取得された場合、図3のポインタ格納領域中、(1,5)の位置にあるポインタは、「RIGHT1のPITCH BEND RANGEのレジスタ」を示しているので、インクリメント対象のパラメータは「RIGHT1のPITCH BEND RANGE」となり、その値(つまり、当該レジスタに格納されている値)が“1”だけインクリメントされる。なお、設定対象のパラメータはいずれも、所定の範囲内の値しか取り得ないので、最大値が設定されている状態で増SWが操作された場合、あるいは最小値が設定されている状態で減SWが操作された場合には、いずれの操作も無効となる。
次にCPU5は、フォーカス位置のうちの列番号を、前記ステップS13で取得した列番号に変更し、列番号の変更されたフォーカス位置で、フォーカス位置格納領域内のフォーカス位置を更新する(ステップS15)。なお、ステップS13で取得した列番号とフォーカス位置の列番号とが同じこともあるが、この場合には、ステップS15の更新処理は必要ない。もちろんこの場合にも、ステップS15の更新処理を行ったとしても、問題は生じない。
そしてCPU5は、小型LCD9aの表示を更新する(ステップS16)。これにより、図2の例では、フォーカス位置fが第2行第6列のパラメータに移動し(図4参照。ただし、図4と図2は設定可能なパラメータ(の数)が異なっているので、図4は、図2で示されるフォーカス位置fを単純に移動させた状態を示している訳ではない)、そのパラメータ値が“50”から“51”に変更されるとともに、ノブ状のインジケータの指示位置も変更される。
図9は、前記(4)のスライダ操作処理の詳細な手順を示すフローチャートである。
この(4)スライダ操作処理では、まずCPU5は、スライダ群2dに含まれるいずれかのスライダが操作されたかどうかを常時チェックし(ステップS21)、いずれのスライダも操作されなかったときには、この(4)スライダ操作処理を終了する(ステップS21→リターン)一方、いずれかのスライダが操作されたときには、ステップS22に進む。
ステップS22およびS23の各処理は、前記ステップS12およびS13の各処理に対して、操作された操作子の種類が異なるだけで、その処理内容はほぼ同様であり、ステップS12およびS13の各処理から直ちに類推できるので、その説明は省略する。
次にCPU5は、スライダの操作位置を取得する(ステップS24)。スライダには、所定の操作範囲があり、その操作範囲が所定の分解能で区切られ、ユーザが、たとえば操作つまみ(図示せず)を操作することで操作位置が決まると、CPU5は、その操作位置に応じた数値(整数値)を前記検出回路4から取得することができる。したがって、ステップS24では厳密には、操作位置に応じた数値を取得しているが、操作位置とその数値とは1対1に対応付けられるため、説明の都合上、操作位置を取得するとしている。
次にCPU5は、変換テーブルを用いて、前記ステップS24で取得した操作位置からパラメータ値を取得する(ステップS25)。本実施の形態では、パラメータが決まれば、用いる変換テーブルも一意的に決まる(そうなるように、ユーザ自身が事前に選択しておいたり、あるいは工場設定で最適なものが選択されていたりする)ので、CPU5は、その変換テーブルを用いて、取得された操作位置からパラメータ値を取得する。
次にCPU5は、取得した行番号と列番号で指定されるパラメータの値を、前記ステップS25で取得したパラメータ値で変更する(ステップS26)。前記ステップS14の処理の説明で用いた具体例、つまり、行番号として“1”が取得され、列番号として“5”が取得された例を同様に用いると、設定対象のパラメータは「RIGHT1のPITCH BEND RANGE」となり、その値(つまり、当該レジスタに格納されている値)がステップS25で取得した値に変更される。なお、本実施の形態では、スライダ群2dに含まれるいずれのスライダも、モータスライダ(対応するパラメータの設定値に合わせて、操作つまみが自動的に、当該設定値に応じた操作位置に移動するもの)を採用していないので、ステップS26の処理に際して、設定対象のパラメータの現在値と、スライダの操作位置に応じて取得されたパラメータ値との間が開くことがあり、その場合でも、設定対象のパラメータの値は、取得されたパラメータ値に直ちに変更される。たとえば、急激なパラメータ値の変更によって何らかの支障が出る場合には、急激なパラメータ値の変更となるようなパラメータ設定については、目標値に徐々に変更して行くようにすればよい。あるいは、スライダを操作した直後には、パラメータ値を変更せず、所定時間経過後に、その操作位置に応じたパラメータ値に変更するようにしてもよい。また、スライダの操作位置が、パラメータの現在値に対応する操作位置を通り越した時点で、そのスライダの操作を有効にして、パラメータ値を変更するようにしてもよい。
次にCPU5は、前記ステップS16の処理と同様にして、小型LCD9aの表示を更新する(ステップS27)。これにより、図2の例では、フォーカス位置fはそのままで、第2行第6列のパラメータ値が“50”からスライダの操作位置に応じた値に変更されるとともに、ノブ状のインジケータの指示位置も変更される。
図10は、前記(5)のダイヤル操作処理の詳細な手順を示すフローチャートである。
この(5)ダイヤル操作処理では、まずCPU5は、ダイヤル2aが操作されたかどうかを常時チェックし(ステップS31)、ダイヤル2aが操作されなかったときには、この(5)ダイヤル操作処理を終了する(ステップS31→リターン)一方、ダイヤル2aが操作されたときには、前記フォーカス位置格納領域からそこに格納されているフォーカス位置を読み出して取得する(ステップS32)。
次にCPU5は、ダイヤル2aの操作量を取得する(ステップS33)。ダイヤル2aからは、検出回路4を介して、たとえば1周を所定の分解能で区切ったときの操作位置に応じた数値が供給されるので、CPU5は、所定の周期で操作位置に応じた数値を監視することで、ダイヤル2aの操作量を取得することができる。なお、操作量は、正数と負数のいずれも取り得、ダイヤル2aが時計の針の進む方向と同じ方向に回転されたときに「正」を取り、逆方向に回転されたときに「負」を取るようにすればよい。
次にCPU5は、変換テーブルを用いて、前記ステップS33で取得した操作量から、パラメータ値の変化量を取得する(ステップS34)。ここで、変換テーブルは、前記ステップS25で用いた変換テーブルとは異なるものである。なお、ダイヤル2aを用いたパラメータ値の設定は周知の技術であり、本発明の特徴も、ダイヤル2aを用いたパラメータ値の設定方法にある訳ではなく、周知の技術を適用すればよいので、これ以上の説明は省略する。
次にCPU5は、フォーカス位置で指定されるパラメータの値を、前記ステップS34で取得した変化量だけ増加させる(ステップS35)。ここで、変化量には、正負の符号が付いているので、負数の増加は当然ながら、変化量の絶対値分の減少となる。なお、前記ステップS14の処理についての説明中でも言及したように、設定対象のパラメータはいずれも、所定の範囲内の値しか取り得ないので、変化量を加算した場合、パラメータの最大値を超えてしまったり、その逆にパラメータの最小値を超えてしまったりする。この場合には、最大値および最小値を超えないようにパラメータ値を設定する。
次にCPU5は、前記ステップS16の処理と同様にして、小型LCD9aの表示を更新する(ステップS36)。これにより、図2の例では、フォーカス位置fのパラメータ値が“50”からダイヤル2aの操作量に応じた値に変更されるとともに、ノブ状のインジケータの指示位置も変更される。
図11は、前記(6)の行選択SW操作処理の詳細な手順を示すフローチャートである。
この(6)行選択SW操作処理では、まずCPU5は、行選択SW群2bに含まれるいずれかの行選択SWが操作されたかどうかを常時チェックし(ステップS41)、いずれの行選択SWも操作されなかったときには、この(6)行選択SW操作処理を終了する(ステップS41→リターン)一方、いずれかの行選択SWが操作されたときには、前記フォーカス位置格納領域からそこに格納されているフォーカス位置を読み出し、読み出したフォーカス位置のうちの行番号を、操作された行選択SWによって選択された行番号で更新する(ステップS42)。前記図4の例で、たとえば“G”と表示された行選択SWが押下された場合には、第3行が選択されて、その行のパラメータ、つまり“OCTAVE”のパラメータが選択されるとともに、フォーカス位置fも、第2行第6列(“RIGHT1のPITCH BEND RANGE”のパラメータ)から第3行第6列(“RIGHT1のOCTAVE”のパラメータ)に移動する。
次にCPU5は、小型LCD9aの表示を更新する(ステップS43)。
図7に戻り、前記(7)の楽音信号生成処理では、CPU5は、ユーザが前記演奏操作子1を用いて行った演奏により、前記検出回路3から演奏情報が供給されると、あるいはユーザが前記MIDIシーケンサを起動し、自動演奏させたい楽曲データを選択した後、自動演奏の開始を指示することで、当該MIDIシーケンサから演奏情報が供給されると、その演奏情報を前記音源回路13に供給して、楽音信号の生成を指示する。これにより、音源回路13は、供給された演奏情報に応じた楽音信号を生成して、後段のデジタル信号処理回路14に供給する。
なお、本実施の形態では、マトリックス状に配置されたパラメータの行を行選択SWによって選択し、当該パラメータの各列にそれぞれ対応付けられた操作子(増/減SWまたはスライダ)のいずれかを操作することで、その操作された操作子に対応付けられた列と上記選択された行とによって指定されるパラメータの値を、その操作に応じて設定するようにしたが、この行と列とを逆にし、当該パラメータの列を列選択SWによって選択するようにし、当該パラメータの各行にそれぞれ対応付けられた操作子のいずれかを操作することで、その操作された操作子に対応付けられた行と上記選択された列とによって指定されるパラメータの値を、その操作に応じて設定するようにしてもよい。
また、本実施の形態では、小型LCD9a上にパラメータをマトリックス状に配置(表示)するようにしたが、これに限らず、パネル面にマトリックス状にパラメータを印刷し、その周りに、選択されている行と列を示すLEDを配置したり、この行と列を示すLEDに代えて、行番号と列番号を、たとえば7セグメントLEDで表示したり、あるいはLEDをマトリックス状に配置してもよい。
さらに、本実施の形態では、パラメータをマトリックス状に配置するようにしたが、これに限らず、複数のパラメータを1行あるいは1列に配置するようにしてもよい。複数のパラメータを1行に配置したときには、行選択SWは必要ない。一方、複数のパラメータを1列に配置したときには、行選択SWに代えて、パラメータ値を設定する操作子(たとえば、増/減SWおよびスライダ)を各行に対応付けて設けることになる。
また、本実施の形態では、スライダ群2dに含まれる各スライダで設定するパラメータの種類については、特に言及しておらず、基本的にはどのような種類のパラメータであっても構わないが、スライダ群2dに含まれる複数のスライダのうち、少なくとも一部のスライダに対して相互に関連するパラメータを割り当て、この一部のスライダで割り当てられたパラメータの値を設定するようにすると、スライダの操作位置によって、設定されたパラメータ値の大まかな形状が視覚的に把握できるので、ユーザのパラメータ値の設定操作を支援することができる。たとえば、相互に関連するパラメータとして、ある1つのチャンネルのエンベロープ全体を複数個に分割して得られた部分エンベロープを採用した場合、当該一部のスライダの設定後の操作位置は、エンベロープの大まかな形状を表すことになり、この大まかな設定では満足できないときに、ユーザは、当該一部のスライダにそれぞれ対応して設けられている増/減SWを用いて微調整を行うことができる。また、相互に関連するパラメータの他の例としては、チャンネル毎のボリュームを挙げることもできる。
さらに、本実施の形態では、各パラメータ値の設定は、当該パラメータ値がそれぞれ実際に設定されるレジスタの位置を示すポインタを介して行うようにしたが、これに限らず、当該パラメータ値を直接、対応するレジスタに設定するようにしてもよい。この場合、フォーカス位置は、ポインタ格納領域内の、対応するポインタの位置を示す代わりに、パラメータの名称など、対応するパラメータのレジスタを直接示すようにすればよい。
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOSなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
2a…ダイヤル(第1の操作子),2b…行選択SW群(選択手段),2c…増/減SW群(第2の操作子群),2d…スライダ群(第3の操作子群),5…CPU(制御手段、配置手段),7…RAM(記憶手段),9a…小型LCD(配置手段),10…記憶装置(記憶手段)