(57)【特許請求の範囲】
【請求項１】
演奏情報に音響効果を付加するためのパラメータの値を、操作量が調節できる操作子の操作量に応じて制御することにより、前記演奏情報に付加させる前記音響効果を調節する装置であって、
前記操作子の操作量と前記パラメータ値との対応関係を定める設定内容を記憶単位別に複数記憶する記憶手段と、
前記記憶単位を指定する記憶単位指定手段と、
前記記憶単位指定手段で新たな記憶単位が指定されたときに、その指定された記憶単位に対応する新たな設定へ切り替わる際の前記パラメータの変化態様を定める規則を複数記憶する規則記憶手段と、
前記規則記憶手段に記憶されている規則を指定する規則指定手段と、
前記記憶単位指定手段により指定された記憶単位の内容、前記規則指定手段により指定された規則、及び前記操作子の操作量に従って、音響効果のパラメータの値を変更する制御手段と、
を具備したことを特徴とするパラメータコントロール装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽音に音響効果をかけるためのパラメータの値を制御する技術に関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
演奏においては、その表現力を向上させるために、音響効果（エフェクト）を楽音に付加する（エフェクトをかける）ことが広く行われている。演奏者は、エフェクトをかけることで、音楽性、独創性、人間性等の主張をより容易に行うことができる。
【０００３】
エフェクトをかけることによって上記のような演奏上の効果が得られる。このことから、電子楽器等においてはエフェクトをかけるエフェクタ機能が広く搭載されている。コンポーネント化（機能が専用化）された装置を組み合わせてシステムを構築する場合には、エフェクトをかける専用の装置であるエフェクタをシステムに組み込む割合が非常に高くなっている。
【０００４】
エフェクトには、エコー、ディレイ、コンプレッサといったように数多くの種類がある。各エフェクト種には、それを楽音に付加するためのパラメータが用意されており、そのパラメータ値によってエフェクトをかけるレベルが制御される。例えばサスティンは、減衰音を持続音のように変化させるエフェクトである。このサステインでは、例えば音の増幅率をパラメータとし、その値を音の減衰に応じて増大させるように制御することでそのエフェクトをかけることができる。他のエフェクト種においても、その内容に応じてパラメータの値が制御され、そのエフェクトが楽音に付加される。
【０００５】
エフェクト機能を備えた装置においては、例えばフットコントローラといった足で操作するタイプの演奏操作子を操作することで、エフェクトをかけるためのパラメータ値を演奏者が任意に制御できるようになっているものも多い。演奏操作子には足で操作するタイプが多いが、それは楽器の演奏には両手を使用する場合が多いためである。このような演奏操作子がシステムに備えられている場合、演奏者はそれを操作することにより、エフェクトの深さ等のレベルを演奏中に任意、且つ随時に調整することができる。
【０００６】
上記の装置では、通常、所定のスイッチ等を操作することにより、演奏者は演奏中であってもエフェクト種を切り換えることが可能である。しかし、演奏中にエフェクト種を切り替えた場合には、例えばその前後のエフェクト種において設定されているパラメータ値が大きく変化し、聴く楽音の印象が不自然に変化するといったように、設定の切り替えを演奏者は意図したように行えないという問題点があった。
【０００７】
エフェクト機能を備えた装置の中には、演奏者の設定を記憶できる、いわゆるプログラマブルタイプのものがある。このプログラマブルタイプの装置では、普通、パッチと呼ばれる単位で設定内容が記憶される。プログラマブルタイプの装置には、そのパッチに、エフェクト種の設定、更には演奏操作子への操作によってパラメータ値が変更される範囲等の設定を行えるものもある。この場合、パッチに、例えば出力レベルは最大値を１００パーセントとして２０パーセントから８０パーセントの範囲内で制御し、ディレイエフェクトにおけるディレイ時間は１００ｍｓｅｃから４００ｍｓｅｃの間で制御するといった内容を記憶（プログラム）させておくことができる。
【０００８】
上記プログラムタイプの装置は、基本的にはパッチ単位で予め記憶されている設定内容に装置の設定を切り替えるものである。このため、例えばエフェクトをかけるために制御すべきパラメータの値は、パッチの切り替えに伴い、切り替えられたパッチの設定内容から決まる初期値、或いは演奏操作子の操作状態に応じた値に変更されるだけであり、上記と同様の問題点があった。
【０００９】
なお、装置の中には、モータ等を用いた駆動機構を備え、エフェクト種（パッチ）の切り替えが行われると、その切り替えに伴い、駆動機構によりエフェクト調整用のつまみ等の位置を変更するようにしたものもあった。しかし、このような装置（システム）では、非常に高いコストがかかるという問題点の他に、つまみ等の位置の変更に時間がかかる、といった問題点も発生することから、現実的ではなかった。
【００１１】
本発明の課題は、演奏者が常に所望の音響効果を楽音にかけられるようにすることにある。
【００１２】
【課題を解決するための手段】
本発明によるパラメータコントロール装置は、演奏情報に音響効果を付加するためのパラメータの値を、操作量が調節できる操作子の操作量に応じて制御することにより、演奏情報に付加させる音響効果を調節することを前提とし、操作子の操作量と前記パラメータ値との対応関係を定める設定内容を記憶単位別に複数記憶する記憶手段と、記憶単位を指定する記憶単位指定手段と、記憶単位指定手段で新たな記憶単位が指定されたときに、その指定された記憶単位に対応する新たな設定へ切り替わる際のパラメータの変化態様を定める規則を複数記憶する規則記憶手段と、規則記憶手段に記憶されている規則を指定する規則指定手段と、記憶単位指定手段により指定された記憶単位の内容、規則指定手段により指定された規則、及び操作子の操作量に従って、音響効果のパラメータの値を変更する制御手段と、を具備する。
【００１９】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
図１は、本実施の形態が適用されたシステムの外観図である。図１を参照して、その構成について説明する。
【００２０】
図１に示すように、本システムは、６本の弦１０１、及び３つのピックアップ１０２を備えたギター１００と、そのギター１００から出力された電気信号を入力し、それに演奏者によって指定されたエフェクトをかけるエフェクタ１２０と、該エフェクタ１０２から入力した電気信号を楽音として出力するギターアンプ１４０とから構成される。
【００２１】
なお、３つのピックアップ１０２は、それぞれ、電磁作用により弦１０１振動を電気信号（以降、これを弦振動信号と記す）に変換するものである。ギター１００からエフェクタ１２０に出力される弦振動信号は、そのなかの一つから出力されたものである。また、ギターアンプ１４０は、スピーカとアンプが一つのキャビネットに収納されたビルトインタイプである。
【００２２】
上記エフェクタ１２０は、基本的に演奏者が足で操作するフロアタイプであり、設定されているエフェクトのパラメータ値を制御するためのフットコントローラ１２１を備えている。このエフェクタ１２０は本発明が適用されたものである。以降、エフェクタ１２０について重点的に説明する。
【００２３】
エフェクタ１２０は、パッチメモリを８個のバンクと呼ばれるブロックで分割して備えている。各バンクには４個のパッチメモリが割り当てられている。このため、パッチメモリの総数は３２個である。演奏者は、バンク切替フットスイッチ１２２、パッチ切替フットスイッチ１２３、及びバリューエントリーボタン１２７の少なくとも一つを操作し、それが割り当てられているバンクの番号、そのバンク内の位置（アドレス）を指定することで所望のパッチメモリを選択することができる。
【００２４】
上記バンク切替フットスイッチ１２２として、マイナス（−）スイッチ１２２ａ、プラス（＋）スイッチ１２２ｂの２つがあり、パッチ切替フットスイッチ１２３としては、１スイッチ１２３ａ、２スイッチ１２３ｂ、３スイッチ１２３ｃ、及び４スイッチ１２３ｄの４つがある。演奏者は、−スイッチ１２２ａ、及び＋スイッチ１２２ｂを操作することでバンク（番号）を指定し、その指定したバンクに割り当てられている４個のパッチメモリのなかの一つを、１スイッチ１２３ａ、２スイッチ１２３ｂ、３スイッチ１２３ｃ、或いは４スイッチ１２３ｄを操作することで指定する。
【００２５】
このようにして指定されたパッチメモリの番号は、パッチ番号表示器１２４に表示される。パッチ番号表示器１２４は、２桁の数字を表示するものであり、図に向かって左側（上一桁）にバンク番号、右側（下一桁）にそのバンク内のパッチ番号が表示される。なお、以降、単にパッチ番号と記載した場合、そのパッチ番号は、バンク番号、及びバンク内のパッチ番号で表される値、即ちパッチ番号表示器１２４で表現される２桁の値を意味するものとする。
【００２６】
モード切替フットスイッチ１２５は、プレイモード、或いはエディットモードを設定するためのスイッチである。そのフットスイッチ１２５を操作する度に、プレイモードからエディットモード、或いはエディットモードからプレイモードにその設定が切り替わる。プレイモードは、演奏者のエフェクタ１２０への操作に応じて弦振動信号にエフェクトをかけるモードであり、他方のエディットモードは、パッチメモリに設定内容を登録する編集を行うためのモードである。上記パッチメモリの指定（切り替え）は、プレイモードが設定されている場合のみ行うことができる。
【００２７】
パラメータ選択ボタン１２６は、エディットモードが設定されている場合に、パッチメモリに登録する編集対象の項目（表１におけるエフェクトブロック、パラメータ等の項目）を選択するためのものである。パラメータ選択ボタン１２６として、マイナス（−）ボタン１２６ａ、プラス（＋）ボタン１２６ｂの２つがあり、それらのボタン１２６ａ、１２６ｂを操作する度に、予め定められた順序に従って項目が切り替わる。
【００２８】
エディットモードが設定されている場合、現在編集を行っている項目、及びその項目に現在設定されている内容は、液晶表示器（ＬＣＤ）１２９に表示される。演奏者は、ＬＣＤ１２９に表示されているそれらの情報を見ながら、パッチメモリに登録される各種項目の内容を指定する。
【００２９】
項目の内容の指定は、普通、バリューエントリーボタン１２７を用いて行われる。バリューエントリーボタン１２７には、マイナス（−）ボタン１２７ａ、及びプラス（＋）ボタン１２７ｂの２つがある。項目で設定できる内容は予め決定されている。それらのボタン１２７ａ、１２７ｂを操作すると、操作されたボタンの種類に応じて、内容が予め定められた順序の正方向、或いは逆方向に変化する。
【００３０】
パッチメモリに登録する項目の一つとして、パラメータ値の範囲の設定がある。これは、フットコントローラ１２１への操作に応じて変化させるパラメータ値の範囲の設定である。パラメータ値の範囲は、最大値、及び最小値の少なくとも一方を指定することで行われる。その値は、フットコントローラ１２１の最大操作位置、言い換えれば、そのパラメータに設定できる最大値を１００とした比率（パーセント）で指定される。
【００３１】
パラメータ値の範囲の指定には、フットコントローラ１２１を用いて行う。フットコントローラ１２１を操作し、バンク切替フットスイッチ１２２の−スイッチ１２２ａを操作した場合、そのときの踏み量が最小値（Ｍｉｎ）として登録される。−スイッチ１２２ａの替わりに＋スイッチ１２２ｂを操作した場合には、そのときの踏み量が最大値（Ｍａｘ）として登録される。
【００３２】
また、パッチメモリに登録する項目の一つとして、フットコントローラ１２１への操作に応じてどのようにパラメータ値を変化させるかを定義するカーブがある。そのカーブでは、フットコントローラ１２１の操作位置（踏み量）とそのときのパラメータ値の対応関係を定義するテーブルを設定する。
【００３３】
上記テーブルの設定は、ジョイスティック１２８を用いて行われる。具体的には、例えばジョイスティック１２８をＸ方向に操作して踏み量を指定し、ジョイスティック１２８をＹ方向に操作してその踏み量におけるパラメータ値を指定する。演奏者は、これを繰り返すことにより、テーブルの設定を行う。
【００３４】
本実施の形態では、踏み量とパラメータ値の分解能を共に１２８段階としている。テーブルの格納に要する領域を低減するために、踏み量はテーブルにおけるアドレス値とし、各アドレス値に指定されたパラメータ値を格納する。このため、踏み量とその踏み量でのパラメータ値からなる組の数は、１テーブルで１２８組となり、１テーブル当たりの格納に要する領域は１２８（＝１×１２８）バイトとなる。
【００３５】
なお、当然ではあるが、テーブルで設定できる組数、その組を設定する踏み量（或いはパラメータ値）を、演奏者が任意に選択できるようにしても良い。また、そのテーブルは、踏み量とパラメータ値の関係を定義するものであれば、どのようなものであっても良い。
【００３６】
図３２は、パラメータ値とフットコントローラ１２１の踏み量の関係の定義例を示す図である。本実施の形態では、それらの関係を定義するテーブルを２個設定することができる。図３２において、それらの関係の定義（テーブル）例は実線、二点鎖線で描いた曲線でそれぞれ示している。実線で描かれた曲線はカーブ１、二点鎖線で描かれた曲線はカーブ２とする。
【００３７】
図３２に示すように、演奏者は、パラメータ値とフットコントローラ１２１の踏み量の関係をテーブルで任意に定義することができる。その定義は、ジョイスティック１２８を用いて、例えばフットコントローラ１２１の踏み量としてＤ（パーセント）を指定した場合には、カーブ１ではパラメータ値としてＶ１（パーセント）、カーブ２ではパラメータ値としてＶ２（パーセント）を指定することで行うことができる。
【００３８】
上述したような操作を行うことで、演奏者はパッチメモリに設定する内容を任意に指定することができる。指定された内容は、パッチ切り替えフットスイッチ１２３の４スイッチ１２３ｄを操作することで確定し、パッチメモリに登録される。
【００３９】
表１は、上記各種スイッチ類を操作することでパッチメモリに格納（登録）される内容を、エフェクト種に相当するエフェクタブロック別に示したものである。表１を参照して、本実施の形態でパッチメモリに登録される内容、及び内容を登録させるための操作方法について更に説明する。
【００４０】
【表１】
0003663737.tif 000002
【００４１】
上記表１は、上記エフェクタブロックの他に、パラメータ、及び値の範囲の各項目からなる。エフェクタブロックは、演奏者がパッチメモリに内容の登録を行う場合、最初に選択すべき項目である。エフェクタブロックとして、コンプレッサ（Ｃｏｍｐｒｅｓｓｏｒ）、ディストーション（Ｄｉｓｔｏｒｔｉｏｎ）、パラメトリック・イコライザ（Ｐａｒａｍｅｔｒｉｃ  ＥＱ）、ピッチシフタ（Ｐｉｔｃｈ  Ｓｈｉｆｔｅｒ）、コーラス（Ｃｈｏｒｕｓ）、ディレイ（Ｄｅｌａｙ）、アウトプット（Ｏｕｔｐｕｔ）、及びペダルコントロール１〜４（Ｐｅｄａｌ  Ｃｏｎｔｒｏｌ１〜４）が用意されている。
【００４２】
パラメータは、エフェクトを実際に楽音に付加するためのものであり、エフェクタブロック（エフェクト種）を選択した後に内容の選択を行う項目である。パラメータとして、サスティーン（Ｓｕｓｔａｉｎ）、アタック（Ａｔｔａｃｋ）、レベル（Ｌｅｖｅｌ）、ドライブ（Ｄｒｉｖｅ）、トーン（Ｔｏｎｅ）、フリケンシ（Ｆｒｅｑ．）、Ｑ等がある。それらのパラメータは、各エフェクトブロック別に用意されている。演奏者は、エフェクタブロックの種類に応じて、各エフェクタブロックに用意されている複数のパラメータのなかから所望のパラメータを選択したり、その値の設定を行う。
【００４３】
値の範囲は、パラメータに設定される値の範囲、或いは演奏者が設定することができる内容を示したものである。エフェクタブロックのコンプレッサ、ディストーション、パラメトリック  ＥＱ、ピッチシフタ、コーラス、ディレイ、アウいプットにおいては、それらに属するパラメータの値がフットコントローラ１２１への操作に応じて変化する範囲を示している。ペダルコントロール１〜４においては、パラメータに設定できる内容の範囲を示している。
【００４４】
上記各エフェクタブロック毎の項目の内容について、具体例を幾つか挙げて説明する。
例えば、エフェクタブロックがコンプレッサ（Ｃｏｍｐｒｅｓｓｏｒ）では、パラメータとして、サスティーン（Ｓｕｓｔａｉｎ）、アタック（Ａｔｔａｃｋ）、レベル（Ｌｅｖｅｌ）の３つがあり、値の範囲は各パラメータともに０〜１００となっている。これは、コンプレッサの場合、サスティン、アタック、レベル（音量）の３つのパラメータのなかから少なくとも一つを選択し、各パラメータ値の範囲は、その最大値を１００とすると、フットコントローラ１２１の操作量に応じて変動させる値の範囲は０〜１００の間であることを示している。
【００４５】
なお、上記の各パラメータは、音声出力のダイナミック・レンジを制御するために使用されるものである。これら各パラメータにより、アタック期間、サスティーン期間、発音期間のダイナミック・レンジが制御される。
【００４６】
エフェクタブロックがピッチシフタでは、パラメータとして、コース（Ｃｏｕｒｓｅ）、ファイン（Ｆｉｎｅ）、バランス（Ｂａｌａｎｃｅ）の３つがあり、値の範囲は、それぞれ、−１２〜＋１２、−５０〜＋５０、０〜１００となっている。
【００４７】
上記コースは、音を作り出すうえでの基準周波数（４４０Ｈｚが多い）を増減させるパラメータ、ファインは、セント（音程の表示法の１種）を単位として音程を基準から変化させるパラメータ、バランスは、２つの音を混ぜる割合を決定するパラメータである。
【００４８】
演奏者は、エフェクタブロックとしてピッチシフタを選択すると、上記３つのパラメータのなかから少なくとも一つを選択する。従って、ピッチシフタでは、フットコントローラ１２１に対する操作に応じて、パラメータとしてコースが選択されると、上記基準周波数を−１２〜＋１２（Ｈｚ）の間で増減、ファインが選択されると、音程を−５０〜＋５０（セント）の間で増減、バランスが選択されると、一方の音がしめる割合を０〜１００（パーセント）の間で増減できることを示している。
【００４９】
エフェクタブロックであるペダルコントロール１〜４は、パラメータ値の変化を演奏者が任意に制御できるように用意したものである。エフェクタブロックとしてペダルコントロール１〜４を選択した場合、演奏者はその種類に応じて以下の項目の設定を行う。
【００５０】
ペダルコントロール１〜４は、所望のエフェクトをかけるためのパラメータとして、他の全てのエフェクタブロックに割り当てられているパラメータが選択可能である。ペダルコントロール１、及び２では、そのパラメータの他に、上述したパラメータ値とフットコントローラ１２１の踏み量の対応関係を定義するテーブルを設定する。そのテーブルの設定は、上述したように、ジョイスティック１２８を用いて行われる。
【００５１】
ペダルコントロール３では、パラメータの他に、そのパラメータの値の範囲を設定する。その範囲は、最大値（Ｍａｘ）、及び最小値（Ｍｉｎ）で設定する。それら上限値（Ｍａｘ）、及び下限値（Ｍｉｎ）の設定は、上述したように、フットコントローラ１２１を用いて行われる。これら最大値（Ｍａｘ）、及び最小値（Ｍｉｎ）は、デフォルト値が予め定められている。そのデフォルト値は、例えば最も幅広いパラメータ値の調節が行えるように、最大値（Ｍａｘ）では１００、最小値（Ｍｉｎ）では０である。
【００５２】
ペダルコントロール４では、パラメータの他に、イニシャルモードを設定する。そのイニシャルモードは、パッチメモリの切り替えに応じてパラメータの値をどのように変化させるかを指定するためのものである。
【００５３】
本実施の形態では、イニシャルモードとして、イミディート（Ｉｍｍｅｄｉａｔｅ）、フック（Ｈｏｏｋ）、ブランク（Ｂｌａｎｋ）、インターポレート（Ｉｎｔｅｒｐｏｌａｔｅ）１及び２、及び、パラレル（Ｐａｒａｌｌｅｌ）の計６種類用意している。演奏者は、これらのなかから一つをイニシャルモードとして選択・設定する。各モードの具体的な内容については後述する。
【００５４】
演奏者は、パラメータ選択ボタン１２６に操作を行って、内容を変更したい項目を選択し、バリューエントリーボタン１２７、フットコントローラ１２１、バンク切替フットスイッチ１２２、ジョイスティック１２８等を操作して、その項目に所望の内容を指定する。バリューエントリーボタン１２６を用いてその内容を指定した場合、パッチ切替フットスイッチ１２３の４スイッチ１２３ｄを操作して、その内容を確定させる。
【００５５】
設定内容の登録・更新を行いたい、即ち編集を行いたいパッチメモリは、例えばプレイモード設定時に、バンク切替フットスイッチ１２２、及びパッチ切替フットスイッチ１２３の少なくとも一方を操作して指定する。パッチメモリを指定した後、モード切替フットスイッチ１２５を操作してプレイモードからエディットモードにモードを切り替えると、そのパッチメモリの設定内容の変更を行える状態となる。
【００５６】
図２は、エフェクタ１２０の回路ブロック図である。この図２を参照して、次にエフェクタ１２０の内部構成、及びその動作について詳細に説明する。
ギター１００から出力された弦振動信号（電気信号）は、入力端子ＩＴを介してローパスフィルタ（ＬＰＦ）２０１に入力される。上記弦振動信号は、弦１０１の振動に応じてピックアップ１２０が出力したアナログの波形信号である。ＬＰＦ２０１は、その弦振動信号に含まれる高域成分を除去してＡ／Ｄコンバータ２０２に出力する。Ａ／Ｄコンバータ２０２は、ＬＰＦ２０１が出力した弦振動信号のＡ／Ｄ変換を行い、デジタルの楽音データを出力する。
【００５７】
デジタルシグナルプロセッサ（ＤＳＰ）２０３は、現在の設定内容に従い、Ａ／Ｄコンバータ２０２が出力した楽音データに対して各種エフェクト（表１参照）を付加する処理を行う。出力回路２０４は、ＤＳＰ２０３が出力したデジタルの楽音データをアナログの電気信号に戻して出力する。この出力回路２０４が出力した電気信号は、出力端子ＯＴを介してアンプ１４０に出力される。
【００５８】
ＣＰＵ（Central Processing Unit ）２０５は、エフェクタ１２０全体の制御を行う。上記ＤＳＰ２０３に対しては、演奏者のパッチメモリの指定に応じて、それに記憶されている設定内容で楽音を発音させるための制御コマンドを出力することにより、その制御を行う。
【００５９】
ＲＡＭ(Random Access Memory)２０６は、パラメータの値といった現在の設定内容等を格納する。上記パッチメモリは、このＲＡＭ２０６内の所定の格納領域に割り当てられ、各パッチメモリに登録された内容はＲＡＭ２０６に格納される。電源がオフされてもその格納したパッチメモリの設定内容を保持するために、ＲＡＭ２０６は不揮発性化されている。
【００６０】
ＲＯＭ(Read Only Memory)２０７は、制御用プログラム、各パラメータ値の初期値といった制御用データを予め格納している。上記各種イニシャルモードでパラメータ値を変更するための情報（規則）は、このＲＯＭ２０７に格納されている。ＣＰＵ２０５は、ＲＯＭ２０６に格納されているプログラムを読み出して実行することにより、装置全体の制御を行う。
【００６１】
操作部２０８は、エフェクタ１２０のパネル上に設けられているバンク切替フットスイッチ１２２、パッチ切替フットスイッチ１２３等の各種スイッチ、ＬＣＤ１２９等の各種表示器をまとめて表したものである。ＣＰＵ２０５は、パネル上に設けられた各種スイッチの操作状態の検出、及び各種表示器に対する表示制御を行う。
【００６２】
Ａ／Ｄコンバータ２０９は、ジョイスティック１２８、及びフットコントローラ１２１に対して行われた操作内容に応じたデジタル値をＣＰＵ２０５に出力する。例えばＡ／Ｄコンバータ２０９は、ジョイスティック１２８のレバーがＸＹ方向の何れの方向に、どの向きに倒されているかによって異なる値を出力し、フットコントローラ１２１の踏み量を示す値を出力する。ＣＰＵ２０５は、フットコントローラ１２１の踏み量をＡ／Ｄコンバータ２０９が出力した値から判断する。ジョイスティック１２８が操作された場合には、Ａ／Ｄコンバータ２０９が出力した値、及びその値が継続して出力されている時間に応じて、操作部２０８のＬＣＤ１２９に表示させる値を変更する。
【００６３】
図３は、上記ＤＳＰ２０３の機能ブロック図である。次に、図３を参照して、ＤＳＰ２０３の機能について詳細に説明する。
ＤＳＰ２０３は、上述したように、Ａ／Ｄコンバータ２０２が出力したデジタルの楽音データにエフェクトをかける処理を行うものである。表１に示すパラメータで制御されるエフェクトを演奏者は選択することができる。
【００６４】
ＤＳＰ２０３のコンプレッサ部３０１は、Ａ／Ｄコンバータ２０２が出力した楽音データに、そのダイナミック・レンジを圧縮する処理を施す。ディストーション部３０２は、楽音データを歪ませる処理を施す。以下、パラメトリック  ＥＱ（イコライザ）部３０３は、指定された周波数帯のブースト／カット（強調／減衰）、特性の鋭さ（Ｑ）を変化させる等の処理、ピッチシフタ部３０４は、周波数を変化させる処理、コーラス部３０５、及びディレイ部３０６は、遅れた音を発生させるための処理、音量制御部３０７は、出力レベルを調整する処理を施す。
【００６５】
シリアルインターフェイス（Ｉ／Ｆ）部３０８は、ＣＰＵ２０５とのデータの授受を行うとともに、ＣＰＵ２０５から受け取った制御コマンドに従って、上記各部３０１〜３０７の設定内容を変更する。各部３０１〜３０７は、シリアルＩ／Ｆ部３０８を介してＣＰＵ２０５が指定した内容に従って、上記の処理を楽音データに施す。
【００６６】
音量制御部３０７は、出力レベルの調整用の乗算器を備えている。パラメータとしてアウトプット・レベルが選択された場合、音量制御部３０７には、シリアルＩ／Ｆ部３０８からフットコントローラ１２１の踏み量に応じて変化する値が送られる。音量制御部３０７は、その値を乗算器の一方の入力とし、ディレイ部３０６が出力した楽音データを他方の入力とすることにより、発音される音量を変化させる。
【００６７】
本実施の形態では、エフェクトをかけるための各部３０１〜３０６を全てプログラムで実現している。図３は、ＤＳＰ２０３のプログラムが実現する機能を含めてブロック化して、その構成を示したものである。
【００６８】
図４は、フットコントローラ１２１の構成を示す説明図である。
本実施の形態で用いられているフットコントローラ１２１は、踏み板４０１が演奏者の足で操作される。その踏み板４０１には突部４０１ａが設けられ、その突部４０１ａには棒状部材４０２が貫通している。その棒状部材４０２が軸となって、踏み板４０１を底板４０３に軸支している。このため、踏み板４０１は、図中、矢印で示す範囲を駆動範囲としてその位置を変化させることができる。
【００６９】
踏み板４０１の突部４０１ａが設けられた側には、シャフト４０４が連結されている。このシャフト４０４の一面には、溝４０４ａが形成されている。その溝４０４ａは、特には図示しない可変抵抗器の回転軸に設けられた溝に噛口している。即ち、演奏者が踏み板４０１を踏み込んだ量に応じて可変抵抗器の軸が回転し、その抵抗値が変化するようになっている。
【００７０】
Ａ／Ｄコンバータ２０９には、その可変抵抗器の抵抗値に応じて変化する電圧が印加される。Ａ／Ｄコンバータ２０９は、その電圧値に対応するデジタル値をＣＰＵ２０５に出力する。これにより、フットコントローラ１２１の踏み量を示す値がＣＰＵ２０５に通知される。一方のＣＰＵ２０５は、その値に応じて、ＤＳＰ２０３の各部３０１〜３０６の制御を行う。
【００７１】
以上が、本システムの構成、及び概略動作である。次に、図５〜図３１に示す各種動作フローチャート、図３３〜図３８に示す各種説明図を参照して、エフェクタ１２０の動作を詳細に説明する。
【００７２】
図５は、全体（メイン）処理の動作フローチャートである。この図５を参照して、最初に全体処理について説明する。この全体処理は、エフェクタ１２０の電源がオンされた後、ＣＰＵ２０５が、ＲＯＭ２０７に格納されているプログラムを読み出して実行することで実現される。
【００７３】
先ず、ステップ５０１では、初期化を行う。この初期化は、例えばＲＯＭ２０７に予め格納されている制御データ、不揮発性化されたＲＡＭ２０６に格納されているパッチメモリの設定内容を基に行われる。この初期化により、パッチ番号表示器１２４には予め定められたパッチ番号が表示され、そのパッチ番号のパッチメモリに登録されている内容にエフェクタ１２０は設定される。
【００７４】
ステップ５０１に続くステップ５０２では、現在設定されているモードを判定する。プレイモードが設定されている場合、ステップ５０３の処理に移行する。そうでない場合には、即ちエディットモードが設定されている場合には、ステップ５０４の処理に移行する。ＲＡＭ２０６には、設定されているモードを示すフラグ（変数）が保持されている。現在設定されているモードは、ＲＡＭ２０６に保持されているフラグの値から判定する。上述したように、プレイモードは演奏者のエフェクタ１２０への操作に応じてエフェクトをかけるモードであり、他方のエディットモードは、パッチメモリの編集を行うためのモードである。
【００７５】
ステップ５０３では、操作部２０８に備えられている各種スイッチ、フットコントローラ１２１への操作状態を検出し、その検出した操作状態に応じてエフェクトを付加するプレイ処理を実行する。そのプレイ処理を終了した後、ステップ５０２の処理に戻る。
【００７６】
ステップ５０４では、操作部２０８に備えられている各種スイッチ、フットコントローラ１２１への操作状態を検出し、その検出した操作状態からパッチメモリの設定内容を変更するエディット処理を実行する。そのエディット処理を終了した後、ステップ５０２の処理に戻る。
【００７７】
上記ステップ５０３のプレイ処理、及びステップ５０４のエディット処理を繰実行することで、エフェクタ１２０に備えられた機能が実現される。以降、上記ステップ５０３のプレイ処理、ステップ５０４のエディット処理について、それぞれ詳細に説明する。
【００７８】
図６は、上記ステップ５０３として実行されるプレイ処理の動作フローチャートである。最初に、図６を参照して、プレイ処理について詳細に説明する。
このプレイ処理では、バリューエントリーボタン１２７、バンク切替フットスイッチ１２２、パッチ切替フットスイッチ１２３、フットコントローラ１２１、及びモード切替フットスイッチ１２５の各種スイッチ類の操作を検出し、その検出結果に応じて一連の処理が行われる。
【００７９】
先ず、ステップ６０１では、バリューエントリーボタン１２７がオンされたか否か判定する。演奏者がバリューエントリーボタン１２７の−ボタン１２７ａ、或いは＋ボタン１２７ｂの何れかを操作した場合、その判定はＹＥＳとなってステップ６０２の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ６０３の処理に移行する。
【００８０】
ステップ６０２では、バリューエントリーボタン１２７に割り当てられている機能を実現するためのバリューエントリーボタン処理を実行する。その後、ステップ６０３の処理に移行する。なお、バリューエントリーボタン１２７は、プレイモードが設定されている場合、パッチ番号のインクリメント、及びデクリメントを行うことができるスイッチである。
【００８１】
ステップ６０３では、バンク切替フットスイッチ１２２がオンされたか否か判定する。演奏者がバンク切替フットスイッチ１２２の−スイッチ１２２ａ、或いは＋スイッチ１２２ｂの何れかを操作した場合、その判定はＹＥＳとなってステップ６０４の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ６０５の処理に移行する。
【００８２】
ステップ６０４では、バンク切替フットスイッチ１２２に割り当てられた機能を実現するためのバンク切替フットスイッチ処理を実行する。その後、ステップ６０５の処理に移行する。なお、バンク切替フットスイッチ１２２は、プレイモードが設定されている場合にはバンク番号を指定（インクリメント、及びデクリメント）する機能、エディットモードが選択されている場合にはパラメータの最大値（Ｍａｘ）、最小値（Ｍｉｎ）を登録する機能が割り当てられているスイッチである。
【００８３】
ステップ６０５では、パッチ切替フットスイッチ１２３がオンされたか否か判定する。パッチ切替フットスイッチ１２３の１スイッチ１２３ａ、２スイッチ１２３ｂ、３スイッチ１２３ｃ、或いは４スイッチ１２３ｄの何れかが操作された場合、その判定はＹＥＳとなってステップ６０６の処理に移行する。そうでない場合には、ステップ６０７の処理に移行する。
【００８４】
ステップ６０６では、パッチ切替フットスイッチ１２３に割り当てられている機能を実現するためのパッチ切替フットスイッチ処理を実行する。その後、ステップ６０７の処理に移行する。そのパッチ切替フットスイッチ１２３には、プレイモード時はパッチ番号を指定する機能、エディットモード時は４スイッチ１２３ｄに、現在編集している項目の内容をパッチメモリに登録させる機能が割り当てられている。
【００８５】
ステップ６０７では、フットコントローラ１２１が操作されたか否か判定する。フットコントローラ１２１の踏み板４０１を演奏者が踏んでいる場合、その判定はＹＥＳとなってステップ６０８の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ６０９の処理に移行する。
【００８６】
ステップ６０８では、フットコントローラ１２１の踏み量に応じてパラメータ値を変化させるフットコントローラ処理を実行する。その後、ステップ６０９の処理に移行する。
【００８７】
ステップ６０９では、パッチ番号表示器１２４、ＬＣＤ１２９に、それぞれ表示すべき情報を表示させる表示処理を実行する。その後、ステップ６１０の処理に移行する。
【００８８】
ステップ６１０では、モード切替フットスイッチ１２５がオンされたか否か判定する。演奏者がモード切替フットスイッチ１２５を操作した場合、その判定はＹＥＳとなってステップ６１１の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ６１２の処理に移行する。
【００８９】
ステップ６１２では、モード切替フットスイッチ１２５に割り当てられた機能を実現するためのモード切替処理を実行する。このモード切替処理が実行されることで、プレイモードからエディットモードに設定が切り替わることになる。その処理の実行後、ステップ６１２の処理に移行する。
【００９０】
ステップ６１２では、現在演奏者が選択しているパッチメモリの登録内容（以降、パッチデータと記す）を、ＤＳＰ２０３の設定を指示する制御コマンドとしてＤＳＰ２０３に供給する。その後、一連の処理を終了する。
【００９１】
上記制御コマンドは、シリアルＩ／Ｆ部３０８を介し、その種類に応じて各部３０１〜３０７に送られる。これにより、ＤＳＰ２０３は、Ａ／Ｄコンバータ２０２から入力した楽音データに対し、演奏者が所望するエフェクトを付加するための処理を施すことになる。
【００９２】
図７〜図２６は、上記プレイ処理内で実行される各種サブルーチン処理の動作フローチャートである。これらの図面を参照して、上記プレイ処理内で実行される各種サブルーチン処理について詳細に説明する。
【００９３】
図７は、上記ステップ６０２として実行されるバリューエントリーボタン処理の動作フローチャートである。この図７を参照して、最初にバリューエントリーボタン処理について説明する。
【００９４】
バリューエントリーボタンは、プレイモードが設定されている場合、パッチメモリを指定するために用いられ、エディットモードが設定されている場合には、パッチメモリに設定する内容を指定するために用いられる。このように、モードによって割り当てられている機能は異なることから、バリューエントリーボタン処理では、各モード別に一連の処理を行う。
【００９５】
先ず、ステップ７０１では、現在設定されているモードを判定する。そのモードがプレイモードであった場合、ステップ７０２の処理に移行する。
バリューエントリーボタン１２７には、−ボタン１２７ａと＋ボタン１２７ｂの２種類がある。ステップ７０２では、操作されたボタンの種類を判定する。演奏者が＋ボタン１２７ｂを操作した場合、ステップ７０３の処理に移行し、そうでない場合には、即ち演奏者が−ボタン１２７ａを操作した場合には、ステップ７０４の処理に移行する。
【００９６】
ステップ７０３では、パッチ番号のインクリメントを行う。そのインクリメントを行った後、ステップ７０５の処理に移行する。他方のステップ７０４では、パッチ番号のデクリメントを行い、その後、ステップ７０５の処理に移行する。なお、上記パッチ番号のインクリメント、及びデクリメントは、当然ではあるが、各パッチメモリに各々割り当てた番号の範囲内で行う。
【００９７】
ステップ７０５では、上記ステップ７０３、或いはステップ７０４の処理を実行した後のパッチ番号が示すパッチメモリの登録内容に、設定内容を切り替えるパッチ切替処理を行う。そのパッチ切替処理が終了した後、一連の処理を終了する。
【００９８】
一方、現在エディットモードが設定されていた場合、ステップ７０１の判定処理が終了した後、ステップ７０６の処理に移行する。
ステップ７０６では、操作されたバリューエントリーボタン１２７の種類を判定する。演奏者が＋ボタン１２７ｂを操作した場合、ステップ７０７の処理に移行し、そうでない場合には、即ち演奏者が−ボタン１２７ａを操作した場合には、ステップ７０８の処理に移行する。
【００９９】
ステップ７０７では、現在対象としている項目の内容を正方向に変化、例えばパラメータの値のインクリメントを行う。現在対象としている項目がエフェクタブロックであれば、例えばコンプレッサからディストーションへ、或いはディストーションからパラメトリック  ＥＱというように、その内容を変化させる。その後、一連の処理を終了する。
【０１００】
一方のステップ７０８では、上記ステップ７０７とは逆に、現在対象としている項目の内容を逆方向に変化、例えばパラメータの値のデクリメントを行う。現在対象としている項目がエフェクタブロックであれば、例えばパラメトリック  ＥＱからディストーションへ、或いはディストーションからコンプレッサというように、その内容を変化させる。その後、一連の処理を終了する。
【０１０１】
図８は、上記ステップ７０５として実行されるパッチ切替処理の動作フローチャートである。この図８を参照して、次にパッチ切替処理について詳細に説明する。
【０１０２】
パッチ番号の切り替えは、バリューエントリーボタン１２７を操作する他に、バンク切替フットスイッチ１２２、及びパッチ切替フットスイッチ１２３の少なくとも一方を操作することで行うことができる。このため、パッチ切替処理は、上記ステップ７０５としてだけではなく、パッチ番号の変更を行うサブルーチン処理では常に実行される。
【０１０３】
先ず、ステップ８０１では、バンク番号、及びそのバンク番号のバンク内のパッチ番号で示されるパッチメモリのパッチデータを読み出す。そのパッチデータの読み出しは、ＲＡＭ２０６に対して行われる。
【０１０４】
ステップ８０１に続くステップ８０２では、上記パッチメモリに、エフェクタブロックとしてペダルコントロール４が登録されているか否か判定する。エフェクタブロックとしてペダルコントロール４が選択されているパッチメモリを演奏者が指定した場合、その判定はＹＥＳとなってステップ８０３の処理に移行する。そうでない場合には、即ちペダルコントロール４以外のものがエフェクタブロックとして選択されている場合には、ここで一連の処理を終了する。
【０１０５】
エフェクタブロックとしてのペダルコントロール４には、上述したように、パッチメモリを切り替えた後、パラメータの値をどのように変化させるかを決定するイニシャルモードを指定する項目がある。ステップ８０３〜８１２では、指定されたイニシャルモードの種類に応じて、パッチメモリを切り替えた直後のパラメータ値（初期値）を設定するための処理が行われる。それらの処理を説明する前に、図３３〜図３８を参照して、各イニシャルモードでのパラメータ値の変更方法について説明する。
【０１０６】
図３３〜図３８は、パッチメモリの切り替えが行われた際に、フットコントローラ１２１の踏み量の時間変化に応じてパラメータ値がどのように変化したかを各イニシャルモード毎に示したものである。図３３〜図３８において、フットコントローラ１２１の踏み量、及びパラメータ値は、その最大値に対する比率で示し、また、パラメータの最大値はフットコントローラ１２１の踏み量の最大値と等しいと仮定している。以降の説明は、この仮定を前提として行う。
【０１０７】
図３３は、イミディートモード時のパラメータ値の変化例を示す図である。図３３では、パラメータ値と踏み量との関係を明確にするために、フットコントローラ１２１の踏み量のグラフ（図に向かって下段）内に実線で描いた踏み量の変化を、パラメータ値のグラフ（図に向かって上段）内に点線で示している。これは、図３４〜図３８においても同様である。
【０１０８】
図３３に示すように、イミディートモードは、演奏者がパッチメモリを切り替えると、パラメータ値をペダルコントローラ１２１の踏み量に対応した値に直ちに変化させるモードである。このため、パラメータの初期値を設定する必要がなく、パッチ切替処理のステップ８０３〜８１２では、イミディートモードに対応した処理は行われない。
【０１０９】
図３４は、フックモード時のパラメータ値の変化例を示す図である。この図３４に示す例も、フットコントローラ１２１は、その踏み量が２５〜９０パーセントを範囲として操作された例である。
【０１１０】
図３４に示すように、フックモードでは、演奏者がパッチメモリを切り替えると、その直後はパラメータ値をパッチメモリの設定内容から決定される値に変化させる。その後は、操作されたフットコントローラ１２１の踏み量が、パッチメモリが切り替わったことで初期設定したパラメータ値に対応する値に一致するまで（フックされるまで）、パラメータ値は変化させない。踏み量がパラメータ値に対応する値に一致すると、パラメータ値を、フットコントローラ１２１の踏み量に対応させて変化、言い換えれば、パラメータ値をフットコントローラ１２１への操作に連動させる。これは、パッチメモリが切り替わるまで維持される。
【０１１１】
図３５は、ブランクモード時のパラメータ値の変化例を示す図である。この図３５に示す例も、フットコントローラ１２１は、その踏み量が２５〜９０パーセントを範囲として操作された例である。
【０１１２】
図３５に示すように、ブランクモードでは、演奏者がパッチメモリを切り替えると、その直後はパラメータ値をパッチメモリの設定内容から決定される値（図３５の例では６５パーセント）に変化させる。その切り替えを行った直後の所定期間は、弦振動信号の入力があるときにフットコントローラ１２１が操作されてもパラメータ値を変化させず、弦振動信号の入力がなくなった（その信号が小さいレベルまで下がったことも含む）後に、パラメータ値をフットコントローラ１２１の操作に連動させて変化させる。
【０１１３】
図３５では、フットコントローラの踏み量のグラフに、入力された弦振動信号（図中では入力信号）のレベルの一例を一点鎖線で、例えば定格を１００とした百分率で示している。この図３５に示す例では、入力信号のレベルが極めて小さく、即ちギター１００の弦１０１の振動が極めて小さくなったことを検出した後、パラメータ値を６５から９０パーセントに変化させている。
【０１１４】
図３６は、インターポレート１モード時のパラメータ値の変化例を示す図である。この図３６に示す例も、フットコントローラ１２１は、その踏み量が２５〜９０パーセントを範囲として操作された例である。
【０１１５】
インターポレート１モードでは、演奏者がパッチメモリを切り替えると、図３６に示すように、パラメータ値をパッチメモリの設定内容から決定される値（図３６の例では６５パーセント）に変化させず、それまでの値を保持させる。その後、フットコントローラ１２１の踏み量に対応した値に、時間の経過に伴って徐々にパラメータ値を近付ける。
【０１１６】
パラメータ値を踏み量に近付けるのは、言い換えれば、パラメータに次に設定する値Ｖ１は、例えば数１を用いて求める。
【０１１７】
【数１】
Ｖ１  ＝  Ｖ０  ＋  （Ｐ−Ｖ０）・Ｒ
但し、Ｖ０はパラメータの現在値、Ｐはフットコントローラ１２１の現在の踏み量、Ｒは係数である。
【０１１８】
この数１から判るように、パラメータ値を踏み量に近付ける速さは、係数Ｒの値に依存する（その値が１であれば常にパラメータ値と踏み量は一致する）。一旦、パラメータ値と踏み量の差が一致すると（その差が十分小さくなると）、それ以降はパラメータ値を踏み量に連動して変化させる。
【０１１９】
なお、上記数１は、フットコントローラ１２１の踏み量（Ｐ）とパラメータ値（Ｖ０、Ｖ１）とがリニアに対応していることを仮定したものである。しかし、実際には、パラメータ値の範囲、パラメータ値と踏み量の対応関係等を考慮して計算式を定義する必要がある。
【０１２０】
図３７は、インターポレート２モード時のパラメータ値の変化例を示す図である。この図３７に示す例も、フットコントローラ１２１は、その踏み量が２５〜９０パーセントを範囲として操作された例である。
【０１２１】
図３７に示すように、インターポレート２モードでは、演奏者がパッチメモリを切り替えると、パラメータ値をパッチメモリの設定内容から決定される値（図３７の例では６５パーセント）に変化させず、それまでの値を保持させる。その後は、フットコントローラ１２１が操作されなければパラメータ値を踏み量に近付けない。フットコントローラ１２１の操作が行われていくうちに、パラメータ値を徐々に本来の値に近付ける。
【０１２２】
上記の記載から判るように、インターポレート２モードはインターポレート１モードとは、パラメータ値を本来の値に近付けるのを、フットコントローラ１２１への操作が行われていない期間にも行うか否かだけ異なる。
【０１２３】
図３８は、パラレルモード時のパラメータ値の変化例を示す図である。この図３８に示す例では、フットコントローラ１２１は、その踏み量が２５〜１００パーセントを範囲として操作されている。
【０１２４】
図３８に示すように、パラレルモードでは、演奏者がパッチメモリを切り替えると、その直後はパラメータ値をパッチメモリの設定内容から決定される値（図３８の例では６５パーセント）に変化させる。その後は、フットコントローラ１２１が操作されると、その踏み量の変化分だけパラメータ値を変化させる。即ちパラメータ値を、踏み量の変化分だけ平行移動させるように変化させる。
【０１２５】
上述したように、パラメータ値には範囲が限定されている。このため、踏み量の変化によりパラメータ値が最大値、或いは最小値の何れかの極限値に達した場合、その極限値を越えさせる方向に踏み量が変化している間、パラメータ値を極限値に保持させる。これにより、パラメータ値と踏み量はその間に近づくことになる。フットコントローラ１２１の操作を行っていれば、パラメータ値と踏み量はいつかは一致することになる。それらの値が一致した後は、パラメータ値は踏み量の通りに変化させる。
【０１２６】
このように、本実施の形態では、パッチメモリを切り替えた後、上述したようにパラメータ値を変化させる各種のイニシャルモードを用意している。このため、演奏者は、パッチメモリに所望のイニシャルモードを設定しておくことで、パッチメモリを切り替えた直後の初期値を含め、パラメータ値を任意に制御することが可能となる。言い換えれば、装置（本実施の形態ではエフェクタ１２０）が備えた機能を、意図しない楽音（音響効果自体）の変化等を回避しつつ、幅広く有効に活用することが可能となる。その結果、演奏者は、例えば装置の機能を有効に利用した創造的な音楽表現も容易に行うことができる。
【０１２７】
なお、本実施の形態では、予めイニシャルモードを幾つか用意し、そのなかから一つを選択してパッチメモリに登録させるようにしているが、そのイニシャルモードの内容を演奏者が設定できるようにしても良い。一例を挙げれば、パッチメモリが切り替えられると、フットコントローラ１２１への操作により制御されるパラメータ値をパッチデータから求まる値に変化させ、その後、その変化させた値からフットコントローラ１２１の踏み量に対応した値に徐々に近づけるような内容をイニシャルモードとして設定できるようにしても良い。この例において、パラメータ値を踏み量に近づける速さも設定（数１における係数Ｒの値、或いはそのための計算式の定義）できるようにしても良い。また、パッチメモリ切り替え後の所定期間を幾つかに分割し、分割した各期間毎にイニシャルモード（パラメータ値を変化させる内容）を設定できるようにしても良い。
【０１２８】
図８の説明に戻る。
ステップ８０３では、パッチメモリに登録されているイニシャルモードがフックモード（図３４参照）であるか否か判定する。演奏者がイニシャルモードとしてフックモードをそのパッチメモリに登録していた場合、その判定はＹＥＳとなってステップ８０４の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ８０５の処理に移行する。
【０１２９】
ステップ８０４では、登録されていたフックモードに従って、パッチメモリ切り替え直後のパラメータ値を決定するフック初期設定処理を実行する。その後、ステップ８０５の処理に移行する。
【０１３０】
ステップ８０５では、パッチメモリに登録されているイニシャルモードがブランクモード（図３５参照）であるか否か判定する。演奏者がイニシャルモードとしてブランクモードをパッチメモリに登録していた場合、その判定はＹＥＳとなってステップ８０６の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ８０７の処理に移行する。
【０１３１】
ステップ８０６では、登録されていたブランクモードに従って、パッチメモリ切り替え直後のパラメータ値を決定するブランク初期設定処理を実行する。その後、ステップ８０７の処理に移行する。
【０１３２】
ステップ８０７では、パッチメモリに登録されているイニシャルモードがインターポレート１モード（図３６参照）であるか否か判定する。演奏者がイニシャルモードとしてインターポレート１モードを選択していた場合、その判定はＹＥＳとなってステップ８０８の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ８０９の処理に移行する。
【０１３３】
ステップ８０８では、登録されていたインターポレート１モードに従って、パッチメモリ切り替え直後のパラメータ値を決定するインターポレート１初期設定処理を実行する。その後、ステップ８０９の処理に移行する。
【０１３４】
ステップ８０９では、パッチメモリに登録されているイニシャルモードがインターポレート２モード（図３７参照）であるか否か判定する。演奏者がイニシャルモードとしてインターポレート２モードをパッチメモリに登録していた場合、その判定はＹＥＳとなってステップ８１０の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ８１１の処理に移行する。
【０１３５】
ステップ８１０では、登録されていたインターポレート２モードに従って、パッチメモリ切り替え直後のパラメータ値を決定するインターポレート２初期設定処理を実行する。その後、ステップ８１１の処理に移行する。
【０１３６】
ステップ８１１では、パッチメモリに登録されているイニシャルモードがパラレルモード（図３８参照）であるか否か判定する。演奏者がイニシャルモードとしてパラレルモードをパッチメモリに登録していた場合、その判定はＹＥＳとなってステップ８１２の処理に移行する。そうでない場合には、その判定はＮＯとなって一連の処理を終了する。
【０１３７】
ステップ８１２では、登録されていたパラレルモードに従って、パッチメモリ切り替え直後のパラメータ値を決定するパラレル初期設定処理を実行する。その後、一連の処理を終了する。
【０１３８】
次に、上記パッチ切替処理内でステップ８０４、８０６、８０８、８１０、及び８１２として実行される各種初期設定処理について、図９〜図１３を参照して詳細に説明する。
【０１３９】
図９は、上記ステップ８０４として実行されるフック初期設定処理の動作フローチャートである。この図９を参照して、最初にフック初期設定処理について詳細に説明する。
【０１４０】
先ず、ステップ９０１では、変数ＣＦに０を代入する。この変数ＣＦは、ＣＰＵ２０５内のレジスタ、或いはＲＡＭ２０６に保持される変数である。後述するように、パラメータ値を踏み量に応じて変化させても良い条件が満たされたか否かを示すフラグとして用いられる。これは、他のイニシャルモード時においても同様である。変数ＣＦに０を代入した後は、ステップ９０２の処理に移行する。なお、その条件が満たされた状態とは、後述するパラメータの初期値に対応する踏み量にフットコントローラ１２１の踏み量が一致した状態のことである。
【０１４１】
ステップ９０２では、演奏者に新たに指定されたパッチメモリのパッチデータ（設定内容）から、パッチメモリを切り替えた直後のパラメータの初期値を求め、その求めた値を変数Ｖに代入する。続くステップ９０３では、その変数Ｖに代入した値をパラメータ値として登録する。その後、一連の処理を終了する。
【０１４２】
図１０は、上記ステップ８０６として実行されるブランク初期設定処理の動作フローチャートである。この図１０を参照して、次にブランク初期設定処理について詳細に説明する。
【０１４３】
先ず、ステップ１００１では、変数ＣＦ、及びＰＦに０を各々代入する。この変数ＰＦは、ＣＰＵ２０５内のレジスタ、或いはＲＡＭ２０６に保持される変数であり、パッチメモリが切り替えが行われた後のフットコントローラ１２１の操作状態を把握するために用いられる。各変数に０を代入した後は、ステップ１００２において、フットコントローラ１２１の踏み量を変数Ｐ０に代入する。この変数Ｐ０も、上記フットコントローラ１２１の操作状態を把握するための変数である。
【０１４４】
ステップ１００３では、演奏者に新たに指定されたパッチメモリのパッチデータ（設定内容）から、パッチメモリを切り替えた直後のパラメータの初期値を求め、その求めた値を変数Ｖに代入する。続くステップ１００４では、その変数Ｖに代入した値をパラメータ値として登録し、その後、一連の処理を終了する。
【０１４５】
図１１は、上記ステップ８０８として実行されるインターポレート１初期設定処理の動作フローチャートである。この図１１を参照して、次にインターポレート１初期設定処理について詳細に説明する。
【０１４６】
先ず、ステップ１１０１では、変数ＣＦに０を代入する。続くステップ１１０２では、上記数１における係数Ｒの値を求める。係数Ｒの値を求めると、次にステップ１１０３において、現在のパラメータ値を変数Ｖ０に代入する。この変数Ｖ０は、次のパラメータ値Ｖ１を算出するために用いられる変数である（数１参照）。その後、一連の処理を終了する。
【０１４７】
本実施の形態では、イニシャルモードとしてインターポレート１或いはインターポレート２モードを選択した場合、係数Ｒの値は編集対象項目の一つとなる。他の項目と同様に、係数Ｒは、パラメータ選択ボタン１２６を操作することで編集対象の項目として選択することができ、その値は、バリューエントリーボタン１２７を操作することで指定することができる。指定された係数Ｒの値は、そのパッチメモリのパッチデータとしてＲＡＭ２０６に格納される。このため、上記ステップ１１０２の処理は、ＲＡＭ２０６に格納されたパッチデータを読み出して係数Ｒの値を決定することで実現される。
【０１４８】
図１２は、上記ステップ８１０として実行されるインターポレート２初期設定処理の動作フローチャートである。この図１２を参照して、次にインターポレート２初期設定処理について詳細に説明する。
【０１４９】
上述したように、インターポレート２モードは、インターポレート１モードとは異なり、フットコントローラ１２１への操作が行われないと、パラメータ値を踏み量に対応した値に近付けるように変化させないようにしたモードである。
【０１５０】
先ず、ステップ１２０１では、変数ＣＦに０を代入する。続くステップ１２０２では、上記係数Ｒの値を求める。係数Ｒの値を求めた後、ステップ１２０３の処理に移行する。
【０１５１】
ステップ１２０３では、現在のパラメータ値を変数Ｖ０に代入する。続くステップ１２０４では、現在のフットコントローラ１２１の踏み量（踏み率）を変数Ｐ０に代入する。その後、一連の処理を終了する。上記変数Ｐ０は、パッチメモリを切り替えた後、演奏者がフットコントローラ１２１に操作を行ったか否か判定するために用いられる変数である。
【０１５２】
図１３は、上記ステップ８１２として実行されるパラレル初期設定処理の動作フローチャートである。この図１３を参照して、次にパラレル初期設定処理について詳細に説明する。
【０１５３】
先ず、ステップ１３０１では、変数ＣＦに０を代入する。続くステップ１３０２では、現在のパラメータ値を変数Ｖ０に代入する。変数Ｖ０に現在のパラメータ値を代入すると、次にステップ１３０３において、現在のフットコントローラ１２１の踏み量（踏み率）を変数Ｐ０に代入する。その後、一連の処理を終了する。
【０１５４】
このように、切り替えられたパッチメモリに設定されているイニシャルモード別に初期設定処理が実行され、フットコントローラ１２１への操作に応じて変化させるパラメータのパッチメモリ切り替え直後の初期値が決定される。
【０１５５】
図１４は、図６に示すプレイ処理内でステップ６０４として実行されるバンク切替フットスイッチ処理の動作フローチャートである。次に、図１４を参照して、バンク切替フットスイッチ処理について詳細に説明する。
【０１５６】
バンク切替フットスイッチ１２２には、モード別に異なる機能が割り当てられている。このため、バンク切替フットスイッチ処理では、現在設定されているモード別に一連の処理が行われる。
【０１５７】
先ず、ステップ１４０１では、現在設定されているモードを判定する。現在プレイモードが設定されている場合、ステップ１４０２の処理に移行する。そうでない場合には、ステップ１４０６の処理に移行する。
【０１５８】
バンク切替フットスイッチ１２２には、＋スイッチ１２２ｂと−スイッチ１２２ａの２種類のスイッチがある。ステップ１４０２〜１４０５では、プレイモード時にバンク切替フットスイッチ１２２に割り当てられている機能に応じた処理が行われる。
【０１５９】
ステップ１４０２では、操作されたスイッチを判定する。演奏者が＋スイッチ１２２ｂを操作した場合、ステップ１４０３の処理に移行する。そうでない場合には、即ち演奏者が−スイッチ１２２ａを操作した場合には、ステップ１４０４の処理に移行する。
【０１６０】
ステップ１４０３では、現在のバンク番号のインクリメントを行う。そのインクリメントは、バンク番号が既に最大値（本実施の形態では７である）であれば行わない。このステップ１４０３の処理が終了すると、ステップ１４０５の処理に移行する。
【０１６１】
ステップ１４０４では、−スイッチ１２２ａを演奏者が操作したことから、バンク番号のデクリメントを行う。そのデクリメントは、バンク番号が既に最小値（本実施の形態では０である）であれば行わない。このステップ１４０４の処理が終了すると、ステップ１４０５の処理に移行する。そのステップ１４０５では、バンク番号の変更に対応するために、パッチ切替処理を実行する。その後、一連の処理を終了する。
【０１６２】
プレイモード時には、このようにしてバンク番号（上一桁の数字）がバンク切替フットスイッチ１２２への操作に応じて変更される。変更されたバンク番号をパッチ番号表示器１２４に実際に表示させるのは、図６のステップ６０９の表示処理で行われる。
【０１６３】
本実施の形態では、エフェクタブロックとしてペダルコントロール３が選択された場合、パラメータ値の範囲を設定することができる。そのパラメータ値の範囲は、上述したように、フットコントローラ１２１を用いて、最大値（Ｍａｘ）、及び最小値（Ｍｉｎ）の少なくとも一方を指定することで行われる。エディットモードの設定時に実行されるステップ１４０６〜１４０９の処理では、フットコントローラ１２１を用いて指定された最大値（Ｍａｘ）、及び最小値（Ｍｉｎ）のパッチメモリへの登録が行われる。
【０１６４】
先ず、ステップ１４０６では、切り替えたパッチメモリに設定されているエフェクタブロックの判定を行う。そのパッチメモリに、エフェクタブロックとしてペダルコントロール３が設定されていた場合、その判定はＹＥＳとなってステップ１４０７の処理に移行する。そうでない場合には、その判定はＮＯとなって一連の処理を終了する。
【０１６５】
ステップ１４０７では、バンク切替フットスイッチ１２２で操作されたスイッチを判定する。演奏者が＋スイッチ１２２ｂを操作した場合、ステップ１４０８の処理に移行する。そうでない場合には、即ち演奏者が−スイッチ１２２ａを操作した場合には、ステップ１４０９の処理に移行する。
【０１６６】
ステップ１４０８では、現在のフットコントローラ１２１の操作位置、即ち踏み板４０１の踏み量を、パラメータ値の最大値（Ｍａｘ）として登録する。その後、一連の処理を終了する。他方のステップ１４０９では、現在の踏み板４０１の踏み量をパラメータ値の最小値（Ｍｉｎ）として登録する。その後、一連の処理を終了する。
【０１６７】
このように、バンク切替フットスイッチ処理では、モード別に一連の処理が行われる。従って、演奏者は、パラメータ値の範囲の設定を行いたい場合、エディットモードを設定後、以下のようにして最大値（Ｍａｘ）、及び最小値（Ｍｉｎ）の設定を行えば良い。
【０１６８】
最大値（Ｍａｘ）を設定したい場合、演奏者は、所望の位置まで踏み板４０１を踏み込んだ後、その状態を維持したまま＋スイッチ１２２ｂを操作する。これにより、最大値（Ｍａｘ）は、＋スイッチ１２２ｂを操作したときの踏み板４０１の位置に対応する値に設定される。最小値（Ｍｉｎ）を設定したい場合には、所望の位置まで踏み板４０１を踏み込んだ状態を維持したまま−スイッチ１２２ａを操作する。このようにして範囲を設定すると、フットコントローラ１２１を操作してエフェクトをかける場合には、踏み板４０１を踏んでいない状態では最小値（Ｍｉｎ）、それを最大位置まで踏み込んだ状態では最大値（Ｍａｘ）がパラメータの値に設定される。なお、演奏者が設定しなかった最大値（Ｍａｘ）、及び最小値（Ｍｉｎ）は、デフォルト値のままである。
【０１６９】
演奏者は、フットコントローラ１２１を実際の演奏に用いることから、フットコントローラ１２１の操作位置（踏み量）とその位置でのエフェクトのかかり具合の対応関係を感覚で理解することができる。そのフットコントローラ１２１は、踏み板４０１を踏み込むという単純な操作だけでエフェクトのかかり具合を調整する操作子である。このため、演奏者は、パラメータ値の所望する可変範囲を、正確、且つ迅速に設定することができる。
【０１７０】
図１５は、図６に示すプレイ処理内でステップ６０６として実行されるパッチ切替フットスイッチ処理の動作フローチャートである。次に、図１５を参照して、パッチ切替フットスイッチ処理について詳細に説明する。
【０１７１】
パッチ切替フットスイッチ１２３は、プレイモード時にはパッチ番号を指定する機能が割り当てられているが、エディットモード時には、そのなかの４スイッチ１２３ｄにだけ機能が割り当てられている。その機能は、現在の編集対象項目の内容を確定（登録）させる機能である。このため、パッチ切替フットスイッチ処理では、現在設定されているモード別に一連の処理が行われる。
【０１７２】
先ず、ステップ１５０１では、現在設定されているモードを判定する。現在プレイモードが設定されている場合、ステップ１５０２の処理に移行する。そうでない場合には、ステップ１５１１の処理に移行する。
【０１７３】
パッチ切替フットスイッチ１２３には、１スイッチ１２３ａ、２スイッチ１２３ｂ、３スイッチ１２３ｃ、及び４スイッチ１２３ｄの４種類ある。ステップ１５０２〜１５１０では、パッチ切替フットスイッチ１２３のなかで演奏者が操作したスイッチを特定し、その特定したスイッチで指定されるパッチメモリに切り替えを行う。
【０１７４】
ステップ１５０２では、１スイッチ１２３ａが操作されたか否か判定する。演奏者が１スイッチ１２３ａを操作した場合、その判定はＹＥＳとなってステップ１５０３の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ１５０４の処理に移行する。
【０１７５】
ステップ１５０３では、１スイッチ１２３ａへの操作に応じたパッチ番号の切り替えを行う。パッチ切り替えフットスイッチ１２３は、プレイモードが設定されている場合、パッチ番号の下一桁の値を直接指定するのに用いられる。このため、ステップ１５０３の処理が実行されると、パッチ番号の下一桁は１に設定される。
【０１７６】
ステップ１５０４〜１５０９では、上記１スイッチ１２３ａへの操作に応じたステップ１５０２、１５０３の処理と同様にして、パッチ切替フットスイッチ１２３の他のスイッチ１２３ｂ〜１２３ｄへの操作に応じた処理が行われる。各スイッチ１２３ａ〜１２３ｄへの操作に応じた処理が終了した後、言い換えれば、パッチ番号の下一桁を演奏者が指定した値に切り替えた後、ステップ１５１０において、切り替えた後のパッチ番号でパッチ切替処理を実行する。パッチ切替処理が終了すると、一連の処理を終了する。
【０１７７】
エディットモードの設定時、ステップ１５０１に続いて実行されるステップ１５１１では、４スイッチ１２３ｄが操作されたか否か判定する。現在の内容をパッチメモリに登録（設定）することを演奏者が指示した場合、その判定はＹＥＳとなってステップ１５１２の処理に移行する。そうでない場合には、その判定はＮＯとなって一連の処理を終了する。
【０１７８】
ステップ１５１２では、現在編集されている項目の内容を、選択されているパッチ番号のパッチメモリに登録する処理を行う。具体的には、ＬＣＤ１２９に表示されている内容を現在対象としている項目の内容としてパッチメモリに登録する。このステップ１５１２の処理が実行されることで、エフェクタブロック、パラメータ、イニシャルモードといった項目の内容が確定する。その処理を実行した後、一連の処理を終了する。
【０１７９】
図１６は、図６に示すプレイ処理内でステップ６０８として実行されるフットコントローラ処理の動作フローチャートである。次に、図１６を参照して、フットコントローラ処理について詳細に説明する。
【０１８０】
フットコントローラ１２１は、プレイモード時にはパラメータ値を指定する機能が割り当てられ、エディットモード時には、パラメータ値の範囲を指定する機能が割り当てられている。このため、フットコントローラ処理でも、現在設定されているモード別に一連の処理が行われる。
【０１８１】
先ず、ステップ１６０１では、現在設定されているモードを判定する。現在プレイモードが設定されている場合、ステップ１６０２の処理に移行する。そうでない場合には、ステップ１６０６の処理に移行する。
【０１８２】
ステップ１６０２では、パッチメモリの設定内容（パッチデータ）に従い、エフェクタブロックであるペダルコントロール１の機能を実現するためのペダルコントロール１処理を実行する。続くステップ１６０３〜１６０５においても同様に、ペダルコントロール２〜４の機能を実現するためのペダルコントロール２〜４処理をそれぞれ実行する。ステップ１６０５のペダルコントロール４処理を実行した後、一連の処理を終了する。
【０１８３】
一方、エディットモードが設定されている場合に実行するステップ１６０６では、現在編集されているパッチメモリのパラメータの最大値、及び最小値を読み出す。これらパラメータの最大値、及び最小値は、演奏者が設定したものではなく、パラメータ毎に予め用意したものである（表１参照）。これらを読み出した後、ステップ１６０７の処理に移行する。
【０１８４】
ステップ１６０７では、現在のフットコントローラ１２１の踏み量を変数Ａに代入する。続くステップ１６０８では、上記変数Ａ、及びステップ１６０６で読み出したパラメータの最大値及び最小値を用いてパラメータ値を算出する。このとき算出したパラメータ値は、最小値に、最大値と最小値の差に変数Ａの値を掛けた値を加算した値である（パラメータ値＝最小値＋（最大値−最小値）・Ａ）。その後、一連の処理を終了する。
【０１８５】
次に、上記フットコントローラ処理内でステップ１６０２〜１６０５として実行されるペダルコントロール１〜４処理について、図１７〜図２０に示す動作フローチャートを参照して各々詳細に説明する。
【０１８６】
図１７は、上記ステップ１６０２として実行されるペダルコントロール１処理の動作フローチャートである。この図１７を参照して、最初にペダルコントロール１処理について詳細に説明する。
【０１８７】
上述したように、エフェクタブロックであるペダルコントロール１では、フットコントローラ１２１の操作位置（踏み量）とパラメータ値の関係はテーブルで定義されている。ペダルコントロール１処理では、その定義されたテーブルから求められるカーブ１に従って、フットコントローラ１２１の踏み量に対応するパラメータ値の設定を行う。これは、後述するペダルコントロール２処理においても同様である。
【０１８８】
先ず、ステップ１７０１では、現在指定されているパッチメモリに、エフェクタブロックとしてペダルコントロール１が選択されているか否か判定する。そのパッチメモリに演奏者がペダルコントロール１を設定していた場合、その判定はＹＥＳとなってステップ１７０２の処理に移行する。そうでない場合には、その判定はＮＯとなって一連の処理を終了する。
【０１８９】
ステップ１７０２では、現在のフットコントローラ１２１の踏み量を変数Ａに代入する。続くステップ１７０３では、変数Ａの値をアドレスにして、演奏者が定義しているテーブル１からパラメータの値を読み出し、その読み出した値を変数Ｖ１に代入する。
【０１９０】
変数Ａの値は、演奏者がパラメータ値を指定した踏み量（アドレス値）と完全に一致することは少ない。このため、上記ステップ１７０３では、テーブル１のパラメータ値が設定されている踏み量（アドレス値）のなかで変数Ａに最も近い踏み量（アドレス値）のパラメータ値を読み出すか、或いはその変数Ａの値の前後に設定されているパラメータ値をテーブル１から読み出し、その前後の踏み量（アドレス値）と変数Ａの値（踏み量）に応じた内挿計算を行い、変数Ａに対応するパラメータ値（変数Ｖ１に代入される値）を求める。
【０１９１】
テーブル１では、踏み量、及びパラメータ値は最大値に対する比率（単位はパーセント）で指定される。それらは０〜１００の間の値である。しかし、表１から判るように、パーセントで表現された値は必ずしも実際の値に対応しない。このため、ステップ１７０３に続くステップ１７０４では、変数Ｖ１の値に対応するパラメータ値の実際の変化範囲内での値を求め、その求めた値をパラメータ値に設定する。具体的には、パラメータの最小値に、その最大値と最小値の差に変数Ｖ１の値を掛けた値を加算し、その加算後の値をパラメータ値に設定する（パラメータ値＝最小値＋（最大値−最小値）・Ｖ１）。それら最大値、及び最小値は、演奏者が設定したものではなく、予め定められている値である。パラメータ値を設定した後、一連の処理を終了する。
【０１９２】
図１８は、上記ステップ１６０３として実行されるペダルコントロール２処理の動作フローチャートである。この図１８を参照して、次にペダルコントロール２処理について詳細に説明する。このペダルコントロール２処理は、上述したペダルコントロール１処理の内容と殆ど同一の内容である。
【０１９３】
先ず、ステップ１８０１では、現在指定されているパッチメモリに、エフェクタブロックとしてペダルコントロール２が選択されているか否か判定する。そのパッチメモリに演奏者がペダルコントロール２を設定していた場合、その判定はＹＥＳとなってステップ１８０２の処理に移行する。そうでない場合には、その判定はＮＯとなって一連の処理を終了する。
【０１９４】
ステップ１８０２では、現在のフットコントローラ１２１の踏み量を変数Ａに代入する。続くステップ１８０３では、変数Ａの値をアドレスにして、演奏者が定義しているテーブル２からパラメータの値を読み出し、その読み出した値を変数Ｖ２に代入する。このステップ１８０３の処理は、図１７に示すペダルコントロール１処理内のステップ１７０３の処理と実質的に内容は同じである。
【０１９５】
ステップ１８０３に続くステップ１８０４では、変数Ｖ１の値に対応するパラメータ値の実際の変化範囲内での値を求め、その求めた値をパラメータ値に設定する。具体的には、パラメータの最小値に、その最大値と最小値の差に変数Ｖ１の値を掛けた値を加算し、その加算後の値をパラメータ値に設定する（パラメータ値＝最小値＋（最大値−最小値）・Ｖ２）。パラメータ値を設定した後、一連の処理を終了する。
【０１９６】
このようにして、演奏者が設定したテーブルに従って、フットコントローラ１２１の踏み量に対応するパラメータ値が設定される。このため、演奏者は、自分に合ったフットコントローラ１２１の踏み量とパラメータ値（音響効果（エフェクト）のかかり具合）の対応関係をテーブルに設定しておくことで、エフェクトをより望み通りに、且つ簡単に付加することができる。
【０１９７】
図１９は、上記ステップ１６０４として実行されるペダルコントロール３処理の動作フローチャートである。この図１９を参照して、次にペダルコントロール３処理について詳細に説明する。
【０１９８】
先ず、ステップ１９０１では、現在指定されているパッチメモリに、エフェクタブロックとしてペダルコントロール３が選択されているか否か判定する。そのパッチメモリに演奏者がペダルコントロール３を設定していた場合、その判定はＹＥＳとなってステップ１９０２の処理に移行する。そうでない場合には、その判定はＮＯとなって一連の処理を終了する。
【０１９９】
ステップ１９０２では、現在のフットコントローラ１２１の踏み量を変数Ａに代入する。続くステップ１９０３では、変数Ａの値、演奏者が設定したパラメータの最大値（Ｍａｘ）及び最小値（Ｍｉｎ）を用いて算出した値をパラメータに設定する。具体的には、最小値（Ｍｉｎ）に、最大値（Ｍａｘ）と最小値（Ｍｉｎ）の差に変数Ａの値を掛けた値を加算し、その加算後の値をパラメータに設定する（パラメータ値＝Ｍｉｎ＋（Ｍａｘ−Ｍｉｎ）・Ａ）。パラメータ値を設定した後、一連の処理を終了する。
【０２００】
図２０は、上記ステップ１６０５として実行されるペダルコントロール４処理の動作フローチャートである。この図２０を参照して、次にペダルコントロール４処理について詳細に説明する。
【０２０１】
上述したように、ペダルコントロール４では、パッチメモリに設定する項目としてイニシャルモードがある。各イニシャルモードにより、パラメータ値を変化させる方法は異なる。このため、ペダルコントロール４処理は、演奏者が選択したイニシャルモードに対応して行われる。
【０２０２】
先ず、ステップ２００１では、現在指定されているパッチメモリに、エフェクタブロックとしてペダルコントロール４が選択されているか否か判定する。そのパッチメモリに演奏者がペダルコントロール４を設定していた場合、その判定はＹＥＳとなってステップ２００２の処理に移行する。そうでない場合には、その判定はＮＯとなって一連の処理を終了する。
【０２０３】
ステップ２００２では、イニシャルモードとしてイミディートモードが選択されているか否か判定する。演奏者がイミディートモードを選択していた場合、その判定はＹＥＳとなってステップ２００３の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２００４の処理に移行する。ステップ２００３では、選択されたイミディートモードでパラメータ値を変更するイミディート処理を実行する。その後、ステップ２００４の処理に移行する。
【０２０４】
ステップ２００４では、イニシャルモードとしてフックモードが選択されているか否か判定する。演奏者がフックモードを選択していた場合、その判定はＹＥＳとなってステップ２００５の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２００６の処理に移行する。ステップ２００５では、選択されたフックモードでパラメータ値を変更するフック処理を実行する。その後、ステップ２００６の処理に移行する。
【０２０５】
ステップ２００６では、イニシャルモードとしてブランクモードが選択されているか否か判定する。演奏者がブランクモードを選択していた場合、その判定はＹＥＳとなってステップ２００７の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２００８の処理に移行する。ステップ２００７では、選択されたブランクモードでパラメータ値を変更するブランク処理を実行する。その後、ステップ２００８の処理に移行する。
【０２０６】
ステップ２００８では、イニシャルモードとしてインターポレート１モードが選択されているか否か判定する。演奏者がインターポレート１モードを選択していた場合、その判定はＹＥＳとなってステップ２００９の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２０１０の処理に移行する。ステップ２００９では、選択されたインターポレート１モードでパラメータ値を変更するインターポレート１処理を実行する。その後、ステップ２０１０の処理に移行する。
【０２０７】
ステップ２０１０では、イニシャルモードとしてインターポレート２モードが選択されているか否か判定する。演奏者がインターポレート２モードを選択していた場合、その判定はＹＥＳとなってステップ２０１１の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２０１２の処理に移行する。ステップ２０１１では、選択されたインターポレート２モードでパラメータ値を変更するインターポレート２処理を実行する。その後、ステップ２０１２の処理に移行する。
【０２０８】
ステップ２０１２では、イニシャルモードとしてパラレルモードが選択されているか否か判定する。演奏者がパラレルモードを選択していた場合、その判定はＹＥＳとなってステップ２０１３の処理に移行する。そうでない場合には、その判定はＮＯとなって一連の処理を終了する。ステップ２０１３では、選択されたパラレルモードでパラメータ値を変更するパラレル処理を実行する。その後、一連の処理を終了する。
【０２０９】
次に、上述したペダルコントロール４処理内でステップ２００３、２００５、２００７、２００９、２０１１、２０１３として実行される各サブルーチン処理について、図２１〜図２６を参照して詳細に説明する。
【０２１０】
図２１は、上記ステップ２００３として実行されるイミディート処理の動作フローチャートである。この図２１を参照して、最初にイミディート処理について詳細に説明する。
【０２１１】
上述したように、イミディートモードは、パッチメモリの切り替えが行われると、パラメータ値をフットコントローラ１２１の踏み量に対応した値に直ちに変化させるモードである（図３３参照）。
【０２１２】
先ず、ステップ２１０１では、フットコントローラ１２１の踏み量を変数Ｐ１に代入する。続くステップ２１０２では、変数Ｐ１の値と変数Ｐ０の値が等しいか否か判定する。変数Ｐ０は、前回にイミディート処理を行った際のフットコントローラ１２１の踏み量が代入される変数である。従って、フットコントローラ１２１の踏み量が前回の処理時から変化していない場合、その判定はＹＥＳとなってステップ２１０３の処理に移行する。そうでない場合には、その判定はＮＯとなって一連の処理を終了する。
【０２１３】
ステップ２１０３では、変数Ｐ１の値をパラメータ値として設定する。続くステップ２１０４では、変数Ｐ０に、変数Ｐ１の値を代入する。その後、一連の処理を終了する。
【０２１４】
図２２は、上記ステップ２００５として実行されるフック処理の動作フローチャートである。この図２２を参照して、次にフック処理について詳細に説明する。
【０２１５】
上述したように、フックモードは、パッチメモリの切り替えが行われると、その切り替え時に設定したパラメータ値に対応する踏み量になるまでパラメータ値を変化させないモードである（図３４参照）。
【０２１６】
先ず、ステップ２２０１では、フットコントローラ１２１の踏み量を変数Ｐ１に代入する。続くステップ２２０２では、変数ＣＦの値が０か否か判定する。フックモードが設定されているパッチメモリが指定されると、このフック処理に先だって図９に示すフック初期設定処理が実行され、変数ＣＦには０が代入される。その０は、後述するように、パラメータ値の変化を行っても良い条件が満たされるまで変数ＣＦに保持される。このため、パッチメモリが切り替えられた後、初めてフック処理を実行した場合、及びパラメータ値を変化させても良い条件が満たされていない場合、その判定はＹＥＳとなってステップ２２０３の処理に移行する。それらでない場合には、その判定はＮＯとなってステップ２２０６の処理に移行する。
【０２１７】
ステップ２２０３では、変数Ｐ１の値が変数Ｐ０の値と等しいか否か判定する。変数Ｐ０は、前回の処理（フック初期設定処理を含む）実行時におけるフットコントローラ１２１の踏み量が代入されている変数である。このため、フットコントローラ１２１の踏み量が前回の処理実行時から変化していない場合、その判定はＹＥＳとなって一連の処理を終了する。そうでない場合には、その判定はＮＯとなってステップ２２０４の処理に移行する。
【０２１８】
ステップ２２０４では、変数Ｐ１の値が変数Ｖの値と等しいか否か判定する。変数Ｖは、パッチメモリ切り替え後のパラメータの初期値が代入された変数である。その初期値は、図９に示すフック初期設定処理の実行時に変数Ｖに代入される。このため、現在のフットコントローラ１２１の踏み量が変数Ｖの値に対応（一致）している場合、その判定はＹＥＳとなってステップ２２０５の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２２０７の処理に移行する。ステップ２２０５では、変数ＣＦに１を代入し、その後、ステップ２２０６の処理に移行する。
【０２１９】
ステップ２２０６では、変数Ｐ１の値をパラメータ値として設定する。続くステップ２２０７では、変数Ｐ１の値を変数Ｐ０に代入する。その後、一連の処理を終了する。
【０２２０】
上述したように、変数ＣＦの値が０でなかった場合、ステップ２２０２の判定はＮＯとなってステップ２２０６の処理に移行する。このため、パッチメモリが切り替わった後、パラメータの初期値にフットコントローラ１２１の踏み量が一旦対応（一致）すると、それ以降、パラメータ値はフットコントローラ１２１の踏み量に連動して変化するようになる。これにより、上述したフックモードでのパラメータ値の変化が実現される。
【０２２１】
図２３は、上記ステップ２００７として実行されるブランク処理の動作フローチャートである。この図２３を参照して、次にブランク処理について詳細に説明する。
【０２２２】
上述したように、ブランクモードは、パッチメモリの切り替えが行われると、入力信号（ギター１００からの弦振動信号）がなくなる（非常に小さくなることを含む）までパラメータ値を変化させないモードである（図３５参照）。パッチメモリの切り替えが行われた場合、ブランク処理に先だって図１０に示すブランク初期設定処理が実行され、変数ＣＦ、及びＰＦには０、変数ＰＯにはフットコントローラ１２１の踏み量、変数Ｖにはパラメータの初期値がそれぞれ代入される。
【０２２３】
先ず、ステップ２３０１では、フットコントローラ１２１の踏み量を変数Ｐ１に代入する。続くステップ２３０２では、変数ＣＦの値が０か否か判定する。変数ＣＦには、パラメータ値の変化をフットコントローラ１２１への操作に連動させても良い条件が満たされるまで０が保持される。このため、パッチメモリが切り替えられた後、初めてブランク処理を実行した場合、及びパラメータ値を変化させても良い条件が満たされていない場合、その判定はＹＥＳとなってステップ２３０３の処理に移行する。それらでない場合には、その判定はＮＯとなってステップ２３０９の処理に移行する。
【０２２４】
ステップ２３０３では、変数Ｐ１の値が変数Ｐ０の値と等しいか否か判定する。変数Ｐ０は、前回の処理（ブランク初期設定処理を含む）実行時におけるフットコントローラ１２１の踏み量が代入されている変数である。このため、フットコントローラ１２１の踏み量が前回の処理実行時から変化していない場合、その判定はＹＥＳとなってステップ２３０５の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２３０４の処理に移行する。
【０２２５】
ステップ２３０４では、変数ＰＦに１を代入する。続くステップ２３０５では、変数ＰＦの値が０か否か判定する。変数ＰＦの値が０であった場合、その判定はＹＥＳとなってステップ２３１０の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２３０６の処理に移行する。
【０２２６】
ステップ２３０６では、入力信号が現在あるか否か判定する。入力信号がないか、或いはそのレベルが非常に小さかった場合、その判定はＮＯとなってステップ２３０７の処理に移行する。そうでない場合には、その判定はＹＥＳとなってステップ２３０９の処理に移行する。
【０２２７】
ステップ２３０７では、変数Ｖの値が変数Ｐ１の値と等しいか否か判定する。フットコントローラ１２１の踏み量がパッチメモリ切り替え後の初期値に対応（一致）していた場合、その判定はＹＥＳとなってステップ２３０８の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２３０９の処理に移行する。ステップ２３０８では、変数ＣＦに１を代入する。その後、ステップ２３０９の処理に移行する。
【０２２８】
ステップ２３０９では、変数Ｐ１の値をパラメータ値に設定する。続くステップ２３１０では、変数Ｐ１の値を変数Ｐ０に代入する。その代入が終了した後、一連の処理を終了する。
【０２２９】
本実施の形態では、このようなブランク処理を実行することから、演奏者は入力信号がない状態ではフットコントローラ１２１を操作することでパラメータ値を変更させることができる。しかし、入力信号がある状態でパラメータ値の変化をフットコントローラ１２１への操作に連動させるには、言い換えれば、変数ＣＦに０を代入させるには、入力信号がない状態でフットコントローラ１２１を操作して、その踏み量をパラメータの初期値に対応（一致）させる必要がある。
【０２３０】
図２４は、上記ステップ２００９として実行されるインターポレート１処理の動作フローチャートである。この図２４を参照して、次にインターポレート１処理について詳細に説明する。
【０２３１】
上述したように、インターポレート１モードは、パッチメモリの切り替えが行われると、パラメータ値をフットコントローラ１２１の踏み量に対応する値に徐々に近付けていくモードである（図３６参照）。パッチメモリの切り替えが行われた場合、インターポレート１処理に先だって図１１に示すインターポレート１初期設定処理が実行され、変数ＣＦには０、変数ＶＯにはそのときのパラメータ値（初期値）が各々代入される。
【０２３２】
先ず、ステップ２４０１では、フットコントローラ１２１の踏み量を変数Ｐ１に代入する。続くステップ２４０２では、変数ＣＦの値が０か否か判定する。変数ＣＦには、パラメータ値がフットコントローラ１２１の踏み量に対応（一致）するまで０が保持される。このため、パッチメモリが切り替えられた後、初めてインターポレート１処理を実行した場合、及びパラメータ値がフットコントローラ１２１の踏み量に追いついていない場合、その判定はＹＥＳとなってステップ２４０３の処理に移行する。それらでない場合には、その判定はＮＯとなってステップ２４０７の処理に移行する。
【０２３３】
ステップ２４０３では、次にパラメータに設定すべき値を算出し、その算出した値を変数Ｖ１に代入する。その値の算出は、上記数１を用いて行い、算出した値を変数Ｖ１に代入した後、ステップ２４０４の処理に移行する。
【０２３４】
ステップ２４０４では、変数Ｖ１の値が変数Ｐの値と等しいか否か判定する。パラメータ値がフットコントローラ１２１の踏み量に追いついた場合、その判定はＹＥＳとなってステップ２４０５の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２４０６の処理に移行する。上記ステップ２４０４における判定では、変数Ｖ１の値と変数Ｐの値の差が所定の値よりも小さくなった場合に等しいと判定する。
【０２３５】
ステップ２４０５では、変数ＣＦに１を代入し、その後、ステップ２４０６の処理に移行する。ステップ２４０６では、変数Ｖ１の値をパラメータ値として登録する。パラメータ値の登録の終了後、一連の処理を終了する。
【０２３６】
ステップ２４０７では、変数Ｖ１に変数Ｐの値を代入する。その後、ステップ２４０６の処理に移行する。そのステップ２４０６の処理を実行することで、変数Ｖ１の値はパラメータ値として登録される。
【０２３７】
変数ＣＦに１を代入、即ちパラメータ値がフットコントローラ１２１の踏み量に追いついた後は、インターポレート１処理を実行する度にステップ２４０７の処理が実行されることから、パラメータ値はフットコントローラ１２１の踏み量の通りに変化することになる。
【０２３８】
図２５は、上記ステップ２０１１として実行されるインターポレート２処理の動作フローチャートである。この図２５を参照して、次にインターポレート２処理について詳細に説明する。
【０２３９】
上述したように、インターポレート２モードは、パッチメモリの切り替えが行われると、フットコントローラ１２１への操作に応じて、パラメータ値をフットコントローラ１２１の踏み量に対応する値に徐々に近付けていくモードである（図３７参照）。パッチメモリの切り替えが行われた場合、インターポレート２処理に先だって図１２に示すインターポレート１初期設定処理が実行され、変数ＣＦには０、変数ＶＯにはそのときのパラメータ値（初期値）、変数Ｐ０にはそのときのフットコントローラ１２１の踏み量が各々代入される。
【０２４０】
先ず、ステップ２５０１では、フットコントローラ１２１の踏み量を変数Ｐ１に代入する。続くステップ２５０２では、変数Ｐ０の値と変数Ｐ１の値が等しいか否か判定する。インターポレート２初期設定処理が実行されてからインターポレート２処理が実行されるまでの期間、或いはインターポレート２処理が実行されてから次にそれが再び実行されるまでの期間に、演奏者がフットコントローラ１２１の踏み量を変化させた場合、その判定はＮＯとなってステップ２５０３の処理に移行する。そうでない場合には、その判定はＹＥＳとなって一連の処理を終了する。
【０２４１】
演奏者がフットコントローラ１２１の踏み量を変化させなかった場合、直ちに一連の処理を終了させることで、パラメータ値がフットコントローラ１２１の踏み量に近づくのは回避される。既にパラメータ値がフットコントローラ１２１の踏み量に追いついていた場合には、不要な処理の実行が回避される。
【０２４２】
ステップ２５０３では、変数ＣＦの値が０か否か判定する。変数ＣＦには、パラメータ値がフットコントローラ１２１の踏み量に対応（一致）するまで０が保持される。このため、パッチメモリが切り替えられた後、初めてインターポレート２処理を実行した場合、及びパラメータ値がフットコントローラ１２１の踏み量に追いついていない場合、その判定はＹＥＳとなってステップ２５０４の処理に移行する。それらでない場合には、その判定はＮＯとなってステップ２５０９の処理に移行する。
【０２４３】
ステップ２５０４では、次にパラメータに設定すべき値を算出し、その算出した値を変数Ｖ１に代入する。その値の算出は、数２を用いて行い、算出した値を変数Ｖ１に代入した後、ステップ２５０５の処理に移行する。
【０２４４】
【数２】
Ｖ１  ＝  Ｖ０  ＋  （Ｐ１−Ｖ０）・Ｒ
但し、Ｖ０はパラメータの現在値、Ｐ１はフットコントローラ１２１の現在の踏み量、Ｒは係数である。
【０２４５】
ステップ２５０５では、変数Ｖ１の値が変数Ｐ１の値と等しいか（それらの差が所定値よりも小さいか）否か判定する。パラメータ値がフットコントローラ１２１の踏み量に追いついた場合、その判定はＹＥＳとなってステップ２５０６の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２５０７の処理に移行する。
【０２４６】
ステップ２５０６では、変数ＣＦに１を代入し、その後、ステップ２５０７の処理に移行する。ステップ２５０７では、変数Ｖ１の値をパラメータ値として登録する。続くステップ２５０８では、変数Ｐ０に変数Ｐ１の値を代入する。その代入が終了した後、一連の処理を終了する。
【０２４７】
ステップ２５０９では、変数Ｖ１に変数Ｐの値を代入する。その後、ステップ２５０７の処理に移行する。そのステップ２５０７の処理を実行することで、変数Ｖ１の値はパラメータ値として登録される。
【０２４８】
変数ＣＦに１を代入、即ちパラメータ値がフットコントローラ１２１の踏み量に追いついた後は、演奏者がフットコントローラ１２１の踏み量を変化させていない場合を除き、インターポレート２処理を実行する度にステップ２５０９の処理が実行されることから、パラメータ値はフットコントローラ１２１の踏み量の通りに変化することになる。
【０２４９】
図２６は、上記ステップ２０１３として実行されるパラレル処理の動作フローチャートである。この図２６を参照して、次にパラレル処理について詳細に説明する。
【０２５０】
上述したように、パラレルモードは、パッチメモリの切り替えが行われると、パラメータ値が最小値、或いは最大値を超える場合を除き、フットコントローラ１２１の踏み量の変化分に応じてパラメータ値を初期値から変化させ、パラメータ値と踏み量の対応が一致した後は、パラメータ値を踏み量に対応する値に変化させるモードである（図３８参照）。パッチメモリの切り替えが行われた場合、パラレル処理に先だって図１３に示すパラレル初期設定処理が実行され、変数ＣＦには０、変数ＶＯにはそのときのパラメータ値（初期値）、変数Ｐ０にはそのときのフットコントローラ１２１の踏み量が各々代入される。
【０２５１】
先ず、ステップ２６０１では、フットコントローラ１２１の踏み量を変数Ｐ１に代入する。続くステップ２６０２では、変数Ｐ０の値と変数Ｐ１の値が等しいか否か判定する。パラレル初期設定処理が実行されてからパラレル処理が実行されるまでの期間、或いはパラレル処理が実行されてから次にそれが再び実行されるまでの期間に、演奏者がフットコントローラ１２１の踏み量を変化させた場合、その判定はＮＯとなってステップ２６０３の処理に移行する。そうでない場合には、その判定はＹＥＳとなって一連の処理を終了する。
【０２５２】
ステップ２６０３では、変数ＣＦの値が０か否か判定する。変数ＣＦには、パラメータ値がフットコントローラ１２１の踏み量に対応（一致）するまで０が保持される。このため、パッチメモリが切り替えられた後、初めてパラレル処理を実行した場合、及びパラメータ値がフットコントローラ１２１の踏み量に一致していない場合、その判定はＹＥＳとなってステップ２６０４の処理に移行する。それらでない場合には、その判定はＮＯとなってステップ２６１３の処理に移行する。
【０２５３】
ステップ２６０４では、次にパラメータに設定すべき値を算出し、その算出した値を変数Ｖ１に代入する。その値の算出は、変数Ｖ０に代入されている現在のパラメータ値に、踏み量の変化分を加算することで行う。現在のパラメータ値を変数Ｖ０に代入した際の踏み量は変数Ｐ０に代入されている。数３に、変数Ｖ１に代入される値を算出する式を示す。
【０２５４】
【数３】
Ｖ１  ＝  Ｖ０  ＋  （Ｐ１−Ｐ０）
ステップ２６０４に続くステップ２６０５では、変数Ｖ１の値が１００（最大値）よりも大きいか否か判定する。変数Ｖ１の値が１００よりも大きかった場合、その判定はＹＥＳとなってステップ２６０６の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２６０７の処理に移行する。ステップ２６０６では、変数Ｖ１に１００を代入し、その後、ステップ２６０９の処理に移行する。
【０２５５】
ステップ２６０７では、変数Ｖ１の値が０（最小値）よりも小さいか否か判定する。変数Ｖ１の値が０よりも小さかった場合、その判定はＹＥＳとなってステップ２６０８の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２６０９の処理に移行する。ステップ２６０８では、変数Ｖ１に０を代入する。その後、ステップ２６０９の処理に移行する。
【０２５６】
ステップ２６０９では、変数Ｖ１の値が変数Ｐ１の値と等しいか否か判定する。パラメータ値と踏み量の対応が一致した場合、その判定はＹＥＳとなってステップ２６１０の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２６１１の処理に移行する。ステップ２６１０では、変数ＣＦに１を代入し、その後、ステップ２６１１の処理に移行する。
【０２５７】
ステップ２６１１では、変数Ｖ１の値をパラメータ値として登録する。続くステップ２６１２では、変数Ｐ０に変数Ｐ１の値を代入する。その代入が終了した後、一連の処理を終了する。
【０２５８】
一方、変数ＣＦに１が代入されている場合に実行されるステップ２５０９では、変数Ｖ１に変数Ｐ１の値を代入する。その後、ステップ２６１１の処理に移行する。そのステップ２６１１の処理を実行することで、変数Ｖ１（Ｐ１）の値はパラメータ値として登録される。
【０２５９】
以上が、図１６に示すフットコントローラ処理内で実行される各種サブルーチン処理の説明である。次に、フットコントローラ処理と同じく、図６に示すプレイ処理内でステップ６０９として実行される表示処理について、図２７に示すその動作フローチャートを参照して詳細に説明する。
【０２６０】
先ず、ステップ２７０１では、現在設定されているモードを判定する。現在プレイモードが設定されている場合、ステップ２７０２の処理に移行する。そうでない場合には、即ちエディットモードが設定されている場合には、ステップ２７０４の処理に移行する。
【０２６１】
ステップ２７０２では、ＬＣＤ１２９に、現在フットコントローラ１２１で制御されているパラメータの名前とその現在値を表示させる。続くステップ２７０３では、パッチ番号表示器（ＬＥＤ）１２４に、現在選択されているバンク番号、そのバンク番号が示すバンク内のパッチ番号を表示させる。パッチ番号表示器１２４の上一桁の表示欄にはバンク番号、その下一桁の表示欄にはパッチ番号を表示させる。その後、一連の処理を終了する。
【０２６２】
ステップ２７０４では、ＬＣＤ１２９に、現在編集対象となっている項目の名称、及びその項目として現在指定されている内容を表示させる。例えば、編集対象となっている項目がパラメータであれば、その名称（或いはそれを示す記号）と、そのパラメータとして用意してあるもののなかから演奏者が現在指定しているパラメータの名称をＬＣＤ１２９に表示させる。その後、ステップ２７０３の処理に移行する。
【０２６３】
上述した表示処理を実行することで、演奏者に通知すべき情報が、ＬＣＤ１２９及びパッチ番号表示器１２４を介して視覚的に演奏者に通知される。
図２８は、図６に示すプレイ処理内でステップ６１１として実行されるモード切替処理の動作フローチャートである。図２８を参照して、次に、モード切替処理について詳細に説明する。
【０２６４】
先ず、ステップ２８０１では、現在設定されているモードを判定する。現在プレイモードが設定されている場合、ステップ２８０２の処理に移行する。そうでない場合には、即ちエディットモードが設定されている場合には、ステップ２８０３の処理に移行する。
【０２６５】
ステップ２８０２では、プレイモードからエディットモードに設定を変更する。その後、一連の処理を終了する。他方のステップ２８０３では、その反対に、エディットモードからプレイモードに設定を変更する。その後、一連の処理を終了する。
【０２６６】
このモード切替処理が実行されることで、設定されているモードがプレイモードからエディットモードに、或いはエディットモードからプレイモードに、演奏者がモード切替フットスイッチ１２５を操作する度に切り替わることになる。
【０２６７】
ＲＡＭ２０６の所定の格納領域には、上述したように、現在設定されているモードを示す変数（フラグ）が格納されている。上記設定されているモードは、上記変数の値をＲＡＭ２０６から読み出し、その値から判断する。他方のモードの変更は、その変数に保持させる値を書き換えることで行われる。
【０２６８】
図２９は、図５に示す全体処理内でステップ５０４として実行されるエディット処理の動作フローチャートである。図２９を参照して、次に、エディット処理について詳細に説明する。
【０２６９】
エディットモードは、操作部２０８が備えた各種スイッチ、フットコントローラ１２１、ジョイスティック１２８の各種操作子を演奏者が操作して、パッチメモリに所望の内容を登録するためのモードである。エディット処理を実行することで、このエディットモードでの機能が実現される。その一連の処理は、演奏者が操作した操作子を特定し、その操作子に割り当てられている機能を実現するためのサブルーチン処理を実行していくことで進行する。
【０２７０】
先ず、ステップ２９０１では、パラメータ選択ボタン１２６がオンされたか否か判定する。パラメータ選択ボタン１２６として備えられた−ボタン１２６ａ、及び＋ボタン１２６ｂの何れか一方を演奏者が操作した場合、その判定はＹＥＳとなってステップ２９０２の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２９０３の処理に移行する。
【０２７１】
ステップ２９０２では、パラメータ選択ボタン１２６に行われた操作に応じて、編集対象とする項目を切り替えるパラメータ選択ボタン処理を実行する。その後、ステップ２９０３の処理に移行する。
【０２７２】
ステップ２９０３では、バリューエントリーボタン１２７がオンしたか否か判定する。バリューエントリボタン１２７として備えられた−ボタン１２７ａ、及び＋ボタン１２７ｂの何れかを演奏者が操作した場合、その判定はＹＥＳとなってステップ２９０４の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２９０５の処理に移行する。
【０２７３】
ステップ２９０４では、バリューエントリーボタン１２７の操作されたボタンに応じて、図７に示すバリューエントリーボタン処理を実行する。その後、ステップ２９０５の処理に移行する。
【０２７４】
ステップ２９０５では、バンク切替フットスイッチ１２２がオンしたか否か判定する。バンク切替フットスイッチ１２２として備えられた−ボタン１２２ａ、及び＋ボタン１２２ｂの何れかを演奏者が操作した場合、その判定はＹＥＳとなってステップ２９０６の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２９０７の処理に移行する。
【０２７５】
ステップ２９０６では、演奏者が操作したバンク切替フットスイッチ１２２のスイッチに応じて、図１４に示すバンク切替フットスイッチ処理を実行する。このとき、エフェクタブロックとしてペダルコントロール３が選択されている場合には、バンク切替フットスイッチ１２２の操作されたスイッチの種類に応じて、その時点のフットコントローラ１２１の踏み量が、フットコントローラ１２１を操作して得られるパラメータの最大値（Ｍａｘ）、或いは最小値（Ｍｉｎ）としてパッチメモリに登録される。ステップ２９０６のバンク切替フットスイッチ処理が終了すると、ステップ２９０７の処理に移行する。
【０２７６】
ステップ２９０７では、パッチ切替フットスイッチ１２３がオンしたか否か判定する。パッチ切替フットスイッチ１２３として備えられた１スイッチ１２３ａ、２スイッチ１２３ｂ、３スイッチ１２３ｃ、及び４スイッチ１２３ｄの何れかを演奏者が操作した場合、その判定はＹＥＳとなってステップ２９０８の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２９０９の処理に移行する。
【０２７７】
ステップ２９０８では、演奏者が操作したパッチ切替フットスイッチ１２３の種類に応じて、図１５に示すパッチ切替フットスイッチ処理を実行する。このとき、演奏者が４スイッチ１２３ｄ以外のスイッチを操作した場合、パッチ切替フットスイッチ処理では実質的な処理は行われない。このパッチ切替フットスイッチ処理が終了すると、ステップ２９０９の処理に移行する。
【０２７８】
ステップ２９０９では、フットコントローラ１２１が操作されているか否か判定する。演奏者がフットコントローラ１２１の踏み板４０１を踏み込んでいた場合、その判定はＹＥＳとなってステップ２９０１０の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２９１１の処理に移行する。
【０２７９】
ステップ２９１０では、図１６に示すフットコントローラ処理を実行する。このときにはエディットモードが設定されている。このため、フットコントローラ処理を実行することで、フットコントローラ１２１の踏み量に応じたパラメータ値が確定する。フットコントローラ処理を終了すると、ステップ２９１１の処理に移行する。
【０２８０】
ステップ２９１１では、ジョイスティック１２８がオンされているか否か判定する。演奏者がジョイスティック１２８を何れかの方向に傾けた場合、その判定はＹＥＳとなってステップ２９１２の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２９１３の処理に移行する。
【０２８１】
ステップ２９１２では、ジョイスティック１２８に行われた操作に応じて、パラメータ値と踏み量の関係を定義するテーブルのパラメータ値、或いは踏み量の各値を変更するジョイスティック処理を実行する。その後、ステップ２９１３の処理に移行する。
【０２８２】
ステップ２９１３では、図２７に示す表示処理を実行する。この表示処理を実行することで、現在編集を行っている項目、及びその項目の内容が演奏者に通知される。ジョイスティック１２８を操作して指定する上記テーブルのパラメータ値、及び踏み量は、ＬＣＤ１２９に表示される。この表示処理が終了すると、ステップ２９１４の処理に移行する。
【０２８３】
ステップ２９１４では、モード切替フットスイッチ１２５がオンしたか否か判定する。演奏者がモード切替フットスイッチ１２５を操作した場合、その判定はＹＥＳとなってステップ２９１５の処理に移行する。そうでない場合には、その判定はＮＯとなって一連の処理を終了する。
【０２８４】
ステップ２９１５では、図２８に示すモード切替処理を実行する。このとき、エディットモードが設定されているので、モード切替処理が実行されると、エディットモードからプレイモードに切り替わることになる。このモード切替処理が終了した後、一連の処理が終了する。
【０２８５】
次に、上記エディット処理内でステップ２９０２として実行されるパラメータ選択ボタン処理、ステップ２９１２として実行されるジョイスティック処理について詳細に説明する。
【０２８６】
図３０は、上記パラメータ選択ボタン処理の動作フローチャートである。この図３０を参照して、最初にパラメータ選択ボタン処理について説明する。
先ず、ステップ３００１では、演奏者が操作したボタンの種類を判定する。＋ボタン１２３ｂが操作されたと判定した場合、ステップ３００２の処理に移行する。−ボタン１２６が操作されたと判定した場合には、ステップ３００３の処理に移行する。
【０２８７】
ステップ３００２では、編集対象となる項目をインクリメントする。具体例を挙げれば、編集対象とする項目を、エフェクタブロックからパラメータに変更する。エフェクタブロックとしてペダルコントロール４が既に設定され、それまでの項目がパラメータであった場合には、項目をイニシャルモードに変更する（表１参照）。その後、一連の処理を終了する。
【０２８８】
一方のステップ３００３では、編集対象となる項目をデクリメントする。これも具体例を挙げれば、編集対象とする項目を、パラメータからエフェクタブロックに変更する。その後、一連の処理を終了する。
【０２８９】
図３１は、上記ジョイスティック処理の動作フローチャートである。この図３１を参照して、次にジョイスティック処理について詳細に説明する。
上述したように、エフェクタブロックとしてペダルコントロール１及び２が選択された場合にのみ、演奏者はジョイスティック１２８を用いてテーブルを定義することができる（表１参照）。従って、ジョイスティック処理では、エフェクタブロックとしてペダルコントロール１或いは２が既に設定され、且つ編集対象とする項目としてカーブが選択されている場合だけ、テーブルを定義するパラメータ値、踏み量の各値をジョイスティック１２８の操作に応じて変更する。
【０２９０】
上記テーブルでは、踏み量はＸ軸の値、パラメータ値はＹ軸の値として扱われる。テーブルの定義は、Ｘ軸（踏み量）の値を指定し、そのＸ軸でのＹ軸の値を設定することで行われる。
【０２９１】
先ず、ステップ３１０１では、編集対象の項目としてペダルコントロール１のカーブ（ｃｕｒｖｅ）が選択されているか否か判定する。演奏者がこのカーブを項目として選択している場合、その判定はＹＥＳとなってステップ３１０２の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ３１０５の処理に移行する。
【０２９２】
ステップ３１０２〜３１０４では、ジョイスティック１２８の操作内容に応じたテーブル１の各値の変更が行われる。
先ず、ステップ３１０２では、変数Ｘに現在のＸ軸の値を代入する。Ｘ軸の値は、ジョイスティック１２８をＸ方向（図１、或いは図２参照）に傾けることで変更される。このため、ステップ３１０２では、演奏者がジョイスティック１２８をＸ方向の正負何れの方向に傾けていた場合、その傾けた方向を判定し、その傾けている方向に応じて予め決められた範囲（０〜１２７の１２８段階）内でＸ軸の値を増減させ、その増減させた後の値を現在値として変数Ｘに代入する。
【０２９３】
ステップ３１０２に続くステップ３１０３では、変数Ｙに現在のＹ軸の値を代入する。Ｙ軸の値は、ジョイスティック１２８をＹ方向（図１、或いは図２参照）に傾けることで変更される。このため、ステップ３１０３では、演奏者がジョイスティック１２８をＹ方向の正負何れの方向に傾けていた場合、その傾けた方向を判定し、その傾けている方向に応じて予め決められた範囲（０〜１２７の１２８段階）内でＹ軸の値を増減させ、その増減させた後の値を現在値として変数Ｙに代入する。
【０２９４】
ステップ３１０３に続くステップ３１０４では、テーブル１のアドレス（変数）Ｙ１に変数Ｘの値を代入する。このアドレスＹ１は、テーブル１のＸ軸の値に対応するＹ軸の値にアクセスするためのものである。上記ステップ３１０３では、Ｘ軸の値が更新された場合、アドレスＹ１が指定するＹ軸の値をテーブル１から読み出し、その読み出した値を変数Ｙに代入する（従って、Ｘ軸の値の更新から１サイクル遅れて、更新後のＸ軸の値に対応するＹ軸の値が変数Ｙに代入される）。また、Ｙ軸の値を更新した場合には、アドレスＹ１が指定するテーブル１のアドレスに変数Ｙの値を書き込む。アドレスＹ１に変数Ｘの値を代入した後、一連の処理を終了する。
【０２９５】
一方、ステップ３１０５では、編集対象の項目としてペダルコントロール２のカーブ（ｃｕｒｖｅ）が選択されているか否か判定する。演奏者がこのカーブを項目として選択している場合、その判定はＹＥＳとなってステップ３１０６の処理に移行する。そうでない場合には、その判定はＮＯとなって一連の処理を終了する。
【０２９６】
ステップ３１０６〜３１０８では、上述したステップ３１０２〜３１０４の処理と同様にして、ジョイスティック１２８の操作内容に応じたテーブル２の各値の変更が行われる。ステップ３１０８でテーブル２にアクセスするためのアドレス（変数）Ｙ２に変数Ｘの値を代入した後、一連の処理を終了する。
【０２９７】
なお、本実施の形態では、エフェクタブロックのペダルコントロール１、２で設定できるテーブル数を各々１つとしているが、例えばペダルコントロール１、２で選択した各パラメータ値を別の異なるテーブルに従って各々変更できるように、複数設定できるようにしても良い。このようにした場合、あるパラメータ（第１パラメータ）値の変化に他のパラメータ（第２パラメータ）値を従属的に変化させることができるように、第１パラメータ値と第２パラメータ値の関係を定義するテーブル（コントロールカーブ）を設定できるようにしても良い。
【０２９８】
図３９は、その他の実施の形態におけるパラメータ間のコントロールカーブ例を示す図である。この図３９において、横軸は第１パラメータ値、縦軸は乗算係数である。
【０２９９】
このその他の実施の形態では、第１パラメータ値と乗算係数の関係を定義するテーブルを設定する。上記乗算係数は、第２パラメータの本来の値に対し、第１パラメータ値に応じて乗算される値である。このため、第２パラメータ値を、第１パラメータ値に従属させて変化させることができる。
【０３００】
また、エフェクトブロックであるペダルコントロール３においては、パラメータ値の範囲を、選択したパラメータ毎に設定できるようにしても良い。同様に、ペダルコントロール４においては、選択したパラメータ毎に、そのイニシャルモードを設定できるようにしても良い。
【０３０１】
また、本実施の形態では、ペダルコントロール１及び２、ペダルコントロール３、ペダルコントロール４に各々異なる機能（設定できる項目）を割り当てているが、例えばテーブルとイニシャルモードを同時に設定できるように、これらの機能を１つのエフェクトブロックに複数割り当てるようにしても良い。これにより、パラメータ値を変更させる規則をより細かく指定することが可能となる。
【０３０２】
上述した何れの場合においても、演奏者は、本実施の形態と比較して、より幅広く、より快適なフットコントローラ１２１を用いた音楽表現を行うことができるようになる。
【０３０３】
また、本実施の形態では、パッチメモリに全ての設定内容を登録し、パッチメモリ単位で設定状態を切り替えているが、例えばイニシャルモードを指定する操作子を別に用意し、パッチメモリ切り替え時に適用させるイニシャルモードをその操作子で指定させるように、パッチメモリだけでなく、演奏者が複数の手段で設定状態を指定できるようにしても良い。これは、パラメータ値の範囲や、パラメータ値とフットコントローラ１２１の踏み量の対応関係を定義するテーブルにおいても同様である。
【０３０４】
また、本実施の形態はエフェクタ１２０に本発明を適用したものであるが、本発明が適用できる装置はこれに限定されるものではない。本発明は、エフェクト機能を備えた電子楽器やシンセサイザ等にも幅広く適用させることができるものである。
【０３０５】
以上、説明したように本発明は、音響効果（エフェクト）に関する設定及び規則（モード）を複数用意しておき、それらの中から演奏者が指定した設定及び規則に従って、音響効果のパラメータの値の変更を行う。このため、演奏者は、楽音にどのような音響効果を付加させたいかに合わせて記憶単位（パッチ）を指定することで、設定内容に応じた所望の状態で音響効果を楽音に付加することができ、また音響効果の切り替え時にどのように移行させたいかに合わせて規則を指定することで、パラメータ値を急激に変化させて際立たせたり、パラメータ値を滑らかに変化させて不自然さが生じないようにすることができるようになる。
【図面の簡単な説明】
【図１】本実施の形態が適用されたシステムの外観図である。
【図２】エフェクタの回路ブロック図である。
【図３】ＤＳＰの機能ブロック図である。
【図４】フットコントローラの構成を示す説明図である。
【図５】全体処理の動作フローチャートである。
【図６】プレイ処理の動作フローチャートである。
【図７】バリューエントリーボタン処理の動作フローチャートである。
【図８】パッチ切替処理の動作フローチャートである。
【図９】フック初期設定処理の動作フローチャートである。
【図１０】ブランク初期設定処理の動作フローチャートである。
【図１１】インターポレート１初期設定処理の動作フローチャートである。
【図１２】インターポレート２初期設定処理の動作フローチャートである。
【図１３】パラレル初期設定処理の動作フローチャートである。
【図１４】バンク切替フットスイッチ処理の詳細を示す図である。
【図１５】パッチ切替フットスイッチ処理の動作フローチャートである。
【図１６】フットコントローラ処理の動作フローチャートである。
【図１７】ペダルコントロール１処理の動作フローチャートである。
【図１８】ペダルコントロール２処理の動作フローチャートである。
【図１９】ペダルコントロール３処理の動作フローチャートである。
【図２０】ペダルコントロール４処理の動作フローチャートである。
【図２１】イミディート処理の動作フローチャートである。
【図２２】フック処理の動作フローチャートである。
【図２３】ブランク処理の動作フローチャートである。
【図２４】インターポレート１処理の動作フローチャートである。
【図２５】インターポレート２処理の動作フローチャートである。
【図２６】パラレル処理の動作フローチャートである。
【図２７】表示処理の動作フローチャートである。
【図２８】モード切替処理の動作フローチャートである。
【図２９】エディット処理の動作フローチャートである。
【図３０】パラメータ選択ボタン処理の動作フローチャートである。
【図３１】ジョイスティック処理の動作フローチャートである。
【図３２】パラメータ値とフットコントローラの踏み量の関係の定義例を示す図である。
【図３３】イミディートモード時のパラメータ値の変化例を示す図である。
【図３４】フックモード時のパラメータ値の変化例を示す図である。
【図３５】ブランクモード時のパラメータ値の変化例を示す図である。
【図３６】インターポレート１モード時のパラメータ値の変化例を示す図である。
【図３７】インターポレート２モード時のパラメータ値の変化例を示す図である。
【図３８】パラレルモード時のパラメータ値の変化例を示す図である。
【図３９】その他の実施の形態におけるパラメータ間のコントロールカーブ例を示す図である。
【符号の説明】
１００    ギター
１２０    エフェクタ
１２１    フットコントローラ
１２２    バンク切替フットスイッチ
１２３    パッチ切替フットスイッチ
１２６    パラメータ選択ボタン
１２７    バリューエントリーボタン
１２８    ジョイスティック
２０３    ＤＳＰ
２０５    ＣＰＵ
２０６    ＲＡＭ
２０７    ＲＯＭ
２０８    操作部
【図１】
0003663737.tif 000003
【図２】
0003663737.tif 000004
【図３】
0003663737.tif 000005
【図４】
0003663737.tif 000006
【図５】
0003663737.tif 000007
【図６】
0003663737.tif 000008
【図７】
0003663737.tif 000009
【図８】
0003663737.tif 000010
【図９】
0003663737.tif 000011
【図１０】
0003663737.tif 000012
【図１１】
0003663737.tif 000013
【図１２】
0003663737.tif 000014
【図１３】
0003663737.tif 000015
【図１４】
0003663737.tif 000016
【図１５】
0003663737.tif 000017
【図１６】
0003663737.tif 000018
【図１７】
0003663737.tif 000019
【図１８】
0003663737.tif 000020
【図１９】
0003663737.tif 000021
【図２０】
0003663737.tif 000022
【図２１】
0003663737.tif 000023
【図２２】
0003663737.tif 000024
【図２３】
0003663737.tif 000025
【図２４】
0003663737.tif 000026
【図２５】
0003663737.tif 000027
【図２６】
0003663737.tif 000028
【図２７】
0003663737.tif 000029
【図２８】
0003663737.tif 000030
【図２９】
0003663737.tif 000031
【図３０】
0003663737.tif 000032
【図３１】
0003663737.tif 000033
【図３２】
0003663737.tif 000034
【図３３】
0003663737.tif 000035
【図３４】
0003663737.tif 000036
【図３５】
0003663737.tif 000037
【図３６】
0003663737.tif 000038
【図３７】
0003663737.tif 000039
【図３８】
0003663737.tif 000040
【図３９】
0003663737.tif 000041