(57)【特許請求の範囲】
【請求項１】
タッチパネルと、
当該タッチパネル上のタッチ位置を連続して検出するタッチ検出手段と、
当該タッチ検出手段により検出された位置情報が供給されると、当該位置に基づいて発生すべき楽音を制御する楽音制御手段と、
前記タッチ検出手段により最初に検出されたタッチ位置に基づいて、その後に検出されるタッチ位置の変化に基づく前記楽音制御の度合いを変更する変換手段と、
を有することを特徴とする楽音制御装置。
【請求項２】
タッチパネル上のタッチ位置を連続して検出するタッチ検出機能と、
当該タッチ検出機能により検出された位置情報が供給されると、当該位置に基づいて発生すべき楽音を制御する楽音制御機能と、
前記タッチ検出機能により最初に検出されたタッチ位置に基づいて、その後に検出されるタッチ位置の変化に基づく前記楽音制御の度合いを変更する変換機能と、
をコンピュータに実現させることを特徴とする楽音制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、２次元平面上のタッチパネルをタッチすることにより、楽音の発生或いは発生すべき楽音のパラメータを制御する楽音制御装置及び楽音制御処理プログラムに関する。
【０００２】
【従来の技術】
従来から、電子楽器等の楽音制御装置の操作子としては、鍵盤、スイッチ或いはホイール等がある。しかしながら、鍵盤、スイッチなどの操作子は１つの定まった楽音パラメータ（以降単にパラメータと称する）を入力するのには適しているが、値が連続的に変化するパラメータを入力するには適していない。また、ホイール等の操作子は、操作量が連続的に変えられるため、値が連続的に変化するパラメータを入力するには適しているが、１種類のパラメータしか制御できない点や、構成上複雑でありコスト高になる点などの問題がある。
【０００３】
このため近年になって、２次元平面のタッチパネルを設け、このタッチパネル上のタッチ操作により楽音の発生の指示、或いはパラメータの制御を行なう方式が提案されている。例えば、特開平２０００−５６７６４号がそれである。
【０００４】
この従来例によれば、押圧位置（タッチパネル上のＸ軸，Ｙ軸の座標位置）及び押圧力Ｚ軸上の位置）に基づいて夫々異なるパラメータを制御している。このような構成であれば、一つの操作で複数のパラメータを制御でき且つ、構造も従来のホイール等に比ベれば簡単である。
【０００５】
【発明が解決しようとする課題】
しかし、上記のような演奏者のタッチにより入力操作をするものは、どうしても初動操作時、初めてタッチしたときの動作が不安定であるため、初動操作では、図２５に示すようにタッチパネル６１へのタッチの位置が６０１で示すようにぶれたり、押圧力が一定でなかったりする。こうした操作の不安定さはパラメータの振れに繋がり、これがそのまま発生する楽音に反映されるため、ノイズとして聞こえてしまう。
【０００６】
また、タッチパネルの３次元の各軸には一つのパラメータしか割り当てられていなかったため、一度パラメータの割り当てを設定してしまうと、以降、タッチパネルでは、３個のパラメータしか制御することはできなかった。これでは、多数のパラメータを制御しなければ生成できない自然楽器の音をリアルに発生させることができない。だからといって、タッチパネルの各軸に多数のパラメータを割り当て多数のパラメータを制御可能にしても、各軸の制御対象のパラメータを切り換える操作を行わなければならない。これでは、演奏操作の他にパラメータを切り換えるためスイッチ操作が必要となり、肝心の演奏操作が中断されて支障を来すことになる。
【０００７】
更に、図２６に示すような２次元の平面のタッチパネル６１上で、例えばＸ軸にベンダーを、Ｙ軸にフィルタのパラメータを割り当てた場合、演奏者はタッチパネル６１の中央付近にタッチして、Ｘ軸又はＹ軸方向にタッチ位置を動かすことにより、それぞれのパラメータの変化範囲を全て含んだ制御を行うことができる。しかし、最初のタッチ位置が偏っていると、例えばＸ軸の正方向にはタッチ位置を動かす距離が十分あるが、負方向にはタッチ位置を動かす距離が短く、直ぐにタッチパネル６１の縁にぶつかってしまうような場合がある。
【０００８】
例えば、一つのあるパラメータ（例えばフィルタ）に対して、タッチパネル面のタッチ位置が右に行けば行くほどその値が大きくなるものにおいて、最初にタッチパネル面の左端近くをタッチしてしまった場合を考える。この場合、フィルタの値を大きい値に変更しようとすれば、Ｘ軸の移動初期値６１１から右方向にタッチ位置を変更すればよいが、小さい方向に変更しようとしても、左方向にはパネル面がほとんどないため、タッチ位置を左方向にほとんど変更できず、フィルタ値をあまり小さい値に変更できないという状態が生じる。このような不都合はＹ軸の移動初期値６１２からの移動についても言え、例えばベンダー値を余り大きくすることができなくなる。
【０００９】
本発明は、上述の如き従来の課題を解決するためになされたもので、その第１の目的は、タッチパネルへの初動操作の不安定さに起因するノイズの発生を抑えて、最初から円滑に楽音を発生することができる楽音制御装置及び楽音制御処理プログラムを提供することであり、第２の目的は、タッチパネルの一つの軸に複数のパラメータを設定でき且つ、演奏操作に影響を与えるような特別な操作をすることなく、これらパラメータを切り換えて制御することができる楽音制御装置及び楽音制御処理プログラムを提供することであり、第３の目的は、２次元の平面タッチパネル上で、起点のタッチ位置に拘らず、この起点からいずれの方向にタッチ位置を移動しても各軸に割り当ててあるパラメータの変化範囲を全てカバーできる制御を行うことができる楽音制御装置及び楽音制御処理プログラムを提供することである。
【００１０】
【課題を解決するための手段】
この発明の手段は以下の通りである。
【００２５】
請求項１の発明は、タッチパネルと、当該タッチパネル上のタッチ位置を連続して検出するタッチ検出手段と、当該タッチ検出手段により検出された位置情報が供給されると、当該位置に基づいて発生すべき楽音を制御する楽音制御手段と、前記タッチ検出手段により最初に検出されたタッチ位置に基づいて、その後に検出されるタッチ位置の変化に基づく前記楽音制御の度合いを変更する変換手段と、を有することを特徴とする。
【００３１】
請求項２の発明は、タッチパネル上のタッチ位置を連続して検出するタッチ検出機能と、当該タッチ検出機能により検出された位置情報が供給されると、当該位置に基づいて発生すべき楽音を制御する楽音制御機能と、前記タッチ検出機能により最初に検出されたタッチ位置に基づいて、その後に検出されるタッチ位置の変化に基づく前記楽音制御の度合いを変更する変換機能と、をコンピュータに実現させることを特徴とする。
【００３２】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。図１は、本発明の楽音制御装置の第１の実施の形態に係る構成例を示したブロック図である。本例の楽音制御装置は、タッチパネル４のタッチ位置を検出する等の個別制御及び装置全体の制御を行うＣＰＵ１、ＣＰＵ１を制御するプログラムやデータを格納しているＲＯＭ２、ＣＰＵ１が動作する上で必要なデータを記憶するワークＲＡＭ３、演奏者がタッチして演奏情報を入力する３次元のタッチパネル４、パラメータの設定などに用いられるスイッチ（ＳＷ）部５、楽音を発生する音源６、音源６から発生された楽音を電力増幅して図示されないスピーカ等に出力する発音回路７を有している。
【００３３】
図２は図１に示したワークＲＡＭ３のデータエリアの構成例を示した模式図である。ワークＲＡＭ３のデータエリアは、カレントパラメータエリア３１、初期パラメータエリア３２、ノートｏｎ時間エリア３３を有している。カレントパラメータエリア３１には、カレントパラメータとして、音高（１）、音量（２）、フィルタパラメータ（３）、ベロシティー（４）、音色ＮＯ．（５），エフェクトＮＯ．（６）が保持されている。尚、各パラメータのカッコ内の数字はパラメータ番号である。初期パラメータエリア３２には、初期パラメータとして、音高、音量、フィルタパラメータ、ベロシティー、音色ＮＯ．、エフェクトＮＯ．が保持され、これら初期パラメータはＲＯＭ２から転送されて、このワークＲＡＭ３に保持される。
【００３４】
図３は図１に示した楽音制御装置を筐体に内蔵して組み立てた場合の外観例を示した図である。楽音制御装置１０は、その前面に演奏者が指で触れて演奏する３次元のタッチパネル４と、パラメータの設定などに用いられるスイッチ部５及び楽音を出力するスピーカ１１１を有している。
【００３５】
図４は図１に示した楽音制御装置の一部の構成のみを備えた楽音制御コントローラの外観例を示した図である。本例の楽音制御コントローラ１１は、その前面に演奏者が指で触れて演奏する３次元のタッチパネル４と、パラメータの設定などに用いられるスイッチ部５を有し、音源搭載システム等にＵＳＢケーブル１２等で接続して使用される。
【００３６】
図５はパソコン１４で、図１に示したタッチパネル以外のＣＰＵ１、ＲＯＭ２、ワークＲＡＭ３、スイッチ（ＳＷ）部５、音源６、発音回路７の機能を内蔵し、ＵＳＢケーブル１２によりタッチパネル４を接続している。発音回路７のスピーカはパソコン１４のスピーカ１４２を用いる。従って、タッチパネル４とパソコン１４をＵＳＢケーブル１２で接続することにより、図３に示した楽音制御装置１０と同一の機能を有する楽音制御システムを構成することができる。
【００３７】
次に、本実施の形態の主要な処理について図６に示したフローチャートを参照して説明する。装置の電源をオンにすると、ステップＳ１で、ワークＲＡＭ３に設定されているレジスタを初期化したり、或いはデフォルト値を設定するイニシャライズ処理が行われる。その後、ステップＳ２で、ＣＰＵ１はスイッチ部５をスキャンして選択スイッチの操作を検出し、この選択スイッチの操作に応じたパラメータ選択処理を行う。
【００３８】
ステップＳ３で、ＣＰＵ１はタッチパネル４をスキャンし、演奏者のタッチを３次元軸上のタッチ位置として検出するタッチ検出処理を行い、ステップＳ４で、タッチ検出処理により検出した演奏者のタッチに応じて音源６を制御することにより、対応する楽音を生成し、生成した楽音を発音回路７に出力する音源処理を行う。その後、ＣＰＵ１はステップＳ５で、時間カウントや音源処理の後処理等のその他の処理を行って、ステップＳ２の処理に戻る。
【００３９】
図７は図６に示したイニシャライズ処理の詳細を示したサブルーチンである。まず、ＣＰＵ１はステップＳ７で、ワークＲＡＭ３内の初期パラメータエリア３２の内容をカレントパラメータエリア３１にコピーする。次に、ステップＳ８で、ワークＲＡＭ３内のレジスタＸＰにパラメータ番号“１”を、レジスタＹＰにパラメータ番号“２”を書き込んで、タッチパネル４のＸ軸に音高を、Ｙ軸に音量を割り当てる。その後、ステップＳ９で、ワークＲＡＭ３内のパラメータ選択フラグＳＥＬＦに“０”を入れて、パラメータ選択モードでないようにすると共に、フラグＸＦに“１”を書き込み、更に、ステップＳ１０で、イニシャルタッチフラグＩＴＦに“０”を書き込むと共に、タッチフラグＴＦに“０”を書き込む。最後に、ステップＳ１１で、発音時間を設定するオンタイムレジスタＯＮＴＩＭＥに所定値を書き込んで、リターン（復帰）する。
【００４０】
ここで、上記したパラメータ選択フラグＳＥＬＦは図８のパラメータ選択処理で、タッチパネル４のＸ軸とＹ軸に割り当ててあるパラメータを選択するモードとするかどうかを示すフラグで、ＳＥＬＦが“１”であるとパラメータの選択処理に入る。フラグＸＦはタッチパネル４のいずれの軸にパラメータを割り当てるかを切り換えるフラグで、ＸＦが“１”であると、Ｘ軸にパラメータを割り当てる処理に入る。
【００４１】
イニシャルタッチフラグＩＴＦは、図９、図１０のタッチ検出処理で演奏者が最初にタッチパネル４にタッチした時の始点のタッチ位置情報処理と、それ以降のタッチ位置情報処理を切り分けるためのフラグであり、ＩＴＦが“０”であると、始点のタッチ位置情報の処理に入る。タッチフラグＴＦはタッチ検出処理で演奏者が最初にタッチパネル４にタッチした時点から後述する所定時間内、或いはタッチ位置の移動が後述する所定範囲内である場合の処理と、所定時間以上、或いは所定範囲以上の処理を切り分けるためのフラグであり、ＴＦが“１”になると、所定時間以上、或いは所定範囲以上の処理に入る。
【００４２】
図８は図６に示したパラメータ選択処理の詳細を示したサブルーチンである。まず、ＣＰＵ１はステップＳ１３でスイッチ部５をスキャンして、パラメータ選択キーがオンしているがどうか判断し、オンしていない場合はステップＳ１５に進み、オンしている場合はステップＳ１４に進む。ステップＳ１４では、パラメータ選択フラグＳＥＬＦの値を反転した後、ステップＳ１５に進む。ここで、パラメータ選択フラグＳＥＬＦのデフォルト値は“０”であるため、ステップＳ１４の反転処理で、パラメータ選択フラグＳＥＬＦは“１”になる。ステップＳ１５では、パラメータ選択フラグＳＥＬＦが“１”であるがどうかを判断し、“１”でない場合、即ち、パラメータ選択モードでない場合はリターンし、“１”でパラメータ選択モードである場合は、ステップＳ１６に進む。
【００４３】
ステップＳ１６では、演奏者によりスイッチ部５に設けられているテンキーなどから選択するパラメータ番号が入力される。そこで、ＣＰＵ１はステップＳ１７で、フラグＸＦが“１”であるかどうかを判断し、“１”である場合はステップＳ１８に進み、“１”でない場合はステップＳ１９に進む。ステップＳ１８に進んだ場合、レジスタＸＰに選択されたパラメータ番号を書き込み、ステップＳ２０で、フラグＸＦの値を反転した後、ステップＳ１３の処理に戻る。ステップＳ１９に進んだ場合、レジスタＹＰに選択されたパラメータ番号を書き込み、ステップＳ２０で、フラグＸＦの値を反転した後、ステップＳ１３の処理に戻る。
【００４４】
これにより、演奏者がスイッチ部５に設けられているテンキーを押せば、タッチパネル４のＹ軸とＸ軸に交互に、押されたテンキーに対応する番号のパラメータが割り当てられて設定される。
【００４５】
図９は図６に示したタッチ検出処理の詳細を示したサブルーチンである。まず、ＣＰＵ１はステップＳ２２で、タッチパネル４をスキャン（走査）し、ステップＳ２３で、演奏者がタッチパネル４にタッチしている（タッチオン）かどうかを判断し、タッチしていない場合は、ステップＳ３９に進み、タッチしている場合はステップＳ２４に進む。ステップＳ２４では、タッチフラグＴＦが“１”であるかどうかを判断し、“１”である場合はステップＳ２５に進み、“１”でない場合はステップＳ２６に進む。ここで、演奏者が最初にタッチパネル４をタッチした場合、タッチフラグＴＦはデフォルト値の“０”であるため、ステップＳ２６に進むことになる。
【００４６】
ステップＳ２６では、初期タッチフラグＩＴＦが“０”であるかどうかを判断し、“０”でない場合は図１０のステップＳ３１に進み、初期タッチフラグＩＴＦが“０”である場合はステップＳ２７に進む。ここで、演奏者が最初にタッチパネル４をタッチした時点では、初期タッチフラグＩＴＦはデフォルト値の“０”であるため、ステップＳ２７に進むことになる。
【００４７】
ステップＳ２７では、初期タッチフラグＩＴＦを“１”とし、ステップＳ２８で、タッチパネル４の最初のタッチ位置の座標（ｘ，ｙ）をレジスタＸＩ、レジスタＹＩに格納した後、ステップＳ２９に進む。ステップＳ２９では、レジスタＯＮＴＩＭＥにレジスタＹＩの値を格納してノートオン時間を設定した後、ステップＳ３０で、タイマー時間レジスタｔを“０”にしてからリターンする。
【００４８】
一方、ステップＳ２６で初期タッチフラグＩＴＦが“０”でないと判断されて、図１０のステップＳ３１に進んだ場合、ＣＰＵ１は単位時間経過したかどうかを判断し、経過していない場合はリターンし、経過した場合はステップＳ３２で、タイマー時間レジスタｔの値を＋１インクリメントする。その後、ステップＳ３３で、ｔが所定時間（この所定時間はＲＯＭ２に設定されている）未満かどうか、即ち、演奏者が最初にタッチオンして所定時間経過したかどうかを判断する。
【００４９】
ステップＳ３３で、所定時間経過したと判断された場合はステップＳ３５に進み、経過しない場合はステップＳ３４で、現在のタッチパネル４のタッチ位置（ｘ，ｙ）と最初のタッチ位置（ＸＩ，ＹＩ）１２１との差が、図１２のＡで示す所定の範囲（２ΔＸ×２ΔＹ）以上になったかどうかを判断し、ならない場合はリターンし、なった場合はステップＳ３５に進む。ステップＳ３５では、初期タッチフラグＩＴＦを“０”とすると共に、タッチフラグＴＦを“１”とし、ステップＳ３６では、レジスタＸ、レジスタＹに現在のタッチ位置の座標（ｘ，ｙ）を書き込んでステップＳ３７に進む。
【００５０】
ここで、上記したステップＳ３３〜Ｓ３６の処理により、演奏者がタッチパネル４に最初にタッチしてから所定時間経つまでは、例え、タッチ位置が変化しても、これを無視し、検出したタッチ位置でパラメータの制御を行わない。しかし、前記所定時間内であっても、タッチ位置の変化が所定の範囲（２ΔＸ×２ΔＹ）以上の変化であった場合は、ステップＳ３５、Ｓ３６に進んで、現在の演奏者のタッチ位置でパラメータを制御する動作を開始する。
【００５１】
ステップＳ３７では、ワークＲＡＭ３のカレントパラメータエリア３１のＸＰ番目のパラメータエリアにレジスタＸの値を書き込み、ステップＳ３８では、ＹＰ番目のパラメータエリアにレジスタＹの値を書き込んで、リターンする。
【００５２】
ここで、上記の動作を図１２に則してより具体的に説明すると、演奏者がタッチパネル４に最初にタッチオンしても、その直後の手ぶれ１２１等による移動範囲が、所定範囲Ａ内にとどまる間は、所定時間過ぎなければタッチ位置によるパラメータの制御を行わなず、所定時間過ぎて手ぶれ等の不安定要因がなくなってからタッチ位置によるパラメータの制御を開始する。また、前記タッチ位置によりパラメータの制御を行わない所定時間内であっても、最初のタッチオン位置からタッチ位置が所定範囲Ａを超えて変化した場合は、これは不安定要因によるタッチ位置のぶれでなく、演奏者が意識的にタッチ位置を動かしたと判断して、タッチ位置によるパラメータの制御を開始する。
【００５３】
図９のステップＳ２４でタッチフラグＴＦが“１”である場合はステップＳ２５へ進み、現在の演奏者のタッチ位置の座標（ｘ，ｙ）をワークＲＡＭ３のレジスタＸ，レジスタＹに書き込んだ後、図１０のステップＳ３７の処理に進む。
【００５４】
一方、図９のステップＳ２３で、タッチオンでない、即ち、タッチパネル４から演奏者が手を離したと判断された場合はステップＳ３９に進んで、タッチフラグＴＦを“０”にし、ステップＳ４０で初期タッチフラグＩＴＦを“０”にして、リターンする。
【００５５】
図１１は図６に示した音源処理の詳細を示したサブルーチンである。ＣＰＵ１はステップＳ４１で、発音指示があったかどうかを判断し、ない場合はステップＳ４５に進み、発音指示があった場合はステップＳ４２へ進む。ステップＳ４２では、ワークＲＡＭ３内のカレントパラメータエリア３１内のパラメータを音源６に送ると共に、発音指示を音源６に出す。
【００５６】
これにより、音源６は送られてきた例えば音高、音量のパラメータ値に従った楽音信号を設定されたオンタイム間発生し、これを発音回路７に出力することにより、スピーカ１１１から楽音を発生する。
【００５７】
その後、ステップＳ４３で、ワークＲＡＭ３内のオンフラグＯＮＦを“１”とし、ステップＳ４４でワークＲＡＭ３内のレジスタＳに“０”を書き込んでから、ステップＳ４５に進む。ステップＳ４５では、オンフラグＯＮＦ（ＯＮＦが“１”である場合は演奏者がタッチパネル４をタッチしていることを示すフラグ）が“１”であるかどうかを判断し、“１”でない場合は、演奏者がタッチパネル４をタッチしていないためリターンする。オンフラグＯＮＦが“１”である場合はステップＳ４６へ進んで、単位時間経過したかどうかを判断し、経過していない場合はリターンし、単位時間経過した場合はステップＳ４７に進み、ワークＲＡＭ３内のレジスタＳの値を＋１インクリメントする。この処理では、楽音が発生してからの時間経過を単位時間で計時している。
【００５８】
その後、ステップＳ４８でレジスタＳの値がレジスタＯＮＴＩＭＥの設定値以上になったかどうかを判断し、ならない場合はリターンし、設定値以上になった場合はステップＳ４９に進む。ステップＳ４９では、音源６に対して消音指示を出した後リターンする。これにより、音源６からは楽音信号が設定されたＯＮＴＩＭＥ時間出力されることになる。
【００５９】
本実施の形態によれば、演奏者がタッチパネル４に最初にタッチしても、その直後の手ぶれ等による移動範囲が、所定範囲Ａ内にとどまる間は、所定時間過ぎなければ、タッチ位置によるパラメータの制御を行わず、所定時間過ぎて手ぶれ等の不安定要因がなくなってからタッチ位置によるパラメータの制御を開始して、タッチ位置に対応した楽音信号を音源６から発生することにより、演奏者が最初にタッチオンした時の手ぶれ等の不安定要因によるパラメータの変化を無視することができるので、最初にタッチした時のノイズの発生を抑制することができ、音出し初期にも常に雑音のない安定な楽音を発生することができる。
【００６０】
また、演奏者がタッチパネル４にタッチして直ぐに楽音を発生させたい場合は、タッチ位置を直ちに移動させて所定範囲Ａを超えれば、前記所定時間内であっても楽音を発生させることができるため、応答性の良好な演奏を行うこともできる。
【００６１】
更に、演奏者がタッチパネル４に最初にタッチした位置のＹ軸の座標値で、ＯＮＴＩＭＥの時間を設定し、その後、タッチ位置のぶれの無視時間或いは無視範囲を超えると、それ以降のタッチ位置のｙ座標で音高を制御し、ｘ座標で音量を制御する動作に切り換えることができる。これにより、特別なパラメータ切り換え操作を行うことなく、極めて自然なタッチパネル４のタッチ操作の中で、例えばＹ軸でＯＮＴＩＭＥと音高の２種類のパラメータを制御することができ、演奏に悪影響を与えることなく、円滑でバラエティーに富んだ演奏を容易に行うことができる。
【００６２】
尚、演奏者が最初にタッチパネル４にタッチオンしてから手ぶれ等による変動を無視してタッチ位置によるパラメータの制御をしない範囲は、Ｙ軸方向の２ΔＹであっても良い。その場合、Ｘ軸方向は所定時間Δｔ内の移動が無視されてタッチ位置によるパラメータの制御をしないことになり、同様の効果を得ることができる。勿論、上記のＹ軸とＸ軸の設定を逆にしてもよい。
【００６３】
図１３は、本発明の楽音制御装置の第２の実施の形態に係るイニシャライズ処理を示したフローチャートである。但し、本実施の形態の構成は上記した第１の実施の形態と同様であるため、以下同一の構成を持つ各部については、その構成動作の説明を省略し、以下、その動作の特徴部分を説明する。
【００６４】
ＣＰＵ１はステップＳ５１で、ワークＲＡＭ３内の初期パラメータエリア３２の内容をカレントパラメータエリア３１にコピーする。次にステップＳ５２で、ワークＲＡＭ３内のレジスタＸＰ１にパラメータ番号“１”を書き込み、レジスタＸＰ２にパラメータ番号“２”を書き込み、ステップＳ５３で、ワークＲＡＭ３内のレジスタＹＰ１にパラメータ番号“３”を書き込むと共に、レジスタＹＰ２にパラメータ番号“４”を書き込む。次に、ステップＳ５４で、選択フラグＳＥＬＦを“０”とすると共に、フラグＸＦを“１”とする。更に、ステップＳ５５で、初期タッチフラグＩＴＦを“０”とすると共に、タッチフラグＴＦを“０”とする。最後に、ステップＳ５６でレジスタＯＮＴＩＭＥに所定値を書き込んでリターンする。
【００６５】
図１４は本実施の形態のパラメータ選択処理の詳細を示したサブルーチンである。まず、ＣＰＵ１はステップＳ５８でスイッチ部５をスキャンして、パラメータ選択スイッチがオンしているがどうか判断し、オンしていない場合はステップＳ６０に進み、オンしている場合はステップＳ５９に進む。ステップＳ５９では、パラメータ選択フラグＳＥＬＦを反転し、ステップＳ６０に進む。ここで、パラメータ選択フラグＳＥＬＦのデフォルト値は“０”であるため、ステップＳ５９の反転処理で、パラメータ選択フラグＳＥＬＦは“１”になる。
【００６６】
ステップＳ６０では、パラメータ選択フラグＳＥＬＦが“１”であるがどうかを判断し、“１”でない場合、即ち、パラメータ選択モードでない場合はリターンし、“１”でパラメータ選択モードである場合は、ステップＳ６１に進む。ステップＳ６１では、演奏者によりスイッチ部５に設けられている図１７に示すようなテンキー５１や選択キー５２を操作して、タッチパネル４のＸ軸、Ｙ軸にそれぞれ２種類のパラメータを割り当てる操作を行う。
【００６７】
上記演奏者のパラメータ選択処理を受けて、ＣＰＵ１はステップＳ６２で、図１７のスイッチ部５の選択キー５２（１番から４番）の中の操作されたキー番号（選択番号）をワークＲＡＭ３内のレジスタＳＰに書き込む。例えば、１番の選択キー５２が押された場合、ＣＰＵ１はレジスタＳＰに選択番号“１”を書き込む。
【００６８】
次にステップＳ６３では、レジスタＳＰの内容が“１”であるかどうかを判断し、“１”でない場合はステップＳ６５に進み、“１”である場合はステップＳ６４に進んで、レジスタＸＰ１に上記ステップＳ６１で選択されたパラメータ番号を書き込む。
【００６９】
ステップＳ６５では、レジスタＳＰの内容が“２”であるかどうかを判断し、“２”でない場合はステップＳ６７に進み、“２”である場合はステップＳ６６に進んで、レジスタＸＰ２に選択されたパラメータ番号を書き込む。
【００７０】
ステップＳ６７では、レジスタＳＰの内容が“３”であるかどうかを判断し、“３”でない場合はステップＳ６９に進み、“３”である場合はステップＳ６８に進んで、レジスタＹＰ１に選択されたパラメータ番号を書き込む。
【００７１】
ステップＳ６８では、レジスタＳＰの内容が“４”であるかどうかを判断し、“４”でない場合はステップＳ５８の処理に戻り、“４”である場合はステップＳ７０に進んで、レジスタＹＰ２に選択されたパラメータ番号を書き込んだ後、ステップＳ５８の処理に戻る。
【００７２】
上記のステップＳ６１からステップＳ７０の処理により、タッチパネル４のＸ軸とＹ軸に２種類ずつのパラメータが割り当てられる。例えば、演奏者がテンキー５１の５番を押すと、番号５のパラメータが選択され、次に選択キー５２の３番を押すと、レジスタＹＰ１に選択されたパラメータの番号、即ち５番が書き込まれて、タッチパネル４のＹ軸に５番のパラメータが割り当てられることになる。
【００７３】
図１５はタッチ検出処理の詳細を示したサブルーチン（実施例１）である。まず、ＣＰＵ１はステップＳ７２で、タッチパネル４をスキャン（走査）し、ステップＳ７３で、演奏者がタッチパネル４にタッチしているかどうかを判断し、タッチしていない場合は、ステップＳ７６に進み、タッチしている場合はステップＳ７４に進む。ステップＳ７４では、タッチフラグＴＦが“１”であるかどうかを判断し、“１”である場合はステップＳ７５に進み、“１”でない場合はステップＳ７８に進む。ここで、演奏者が最初にタッチパネル４をタッチした場合、タッチフラグＴＦはデフォルト値の“０”であるため、ステップＳ７８に進むことになる。
【００７４】
ステップＳ７８では、初期タッチフラグＩＴＦが“０”であるかどうかを判断し、“０”でない場合は図１６のステップＳ８５に進み、初期タッチフラグＩＴＦが“０”である場合はステップＳ７９に進む。ここで、演奏者が最初にタッチパネル４をタッチした場合、初期タッチフラグＩＴＦはデフォルト値の“０”であるため、ステップＳ７９に進むことになる。
【００７５】
ステップＳ７９では、初期タッチフラグＩＴＦを“１”とし、ステップＳ８０で、タッチパネル４の最初のタッチ位置の座標（ｘ，ｙ）をレジスタＸＩ、レジスタＹＩに書き込んだ後、ステップＳ８１に進む。ステップＳ８１では、ワークＲＡＭ３内のカレントパラメータエリア３１のＸＰ１番目のパラメータエリアにレジスタＸＩの内容を書き込む。ステップＳ８２では、同カレントパラメータエリア３１のＹＰ１番目のパラメータエリアにレジスタＹＩの内容を書き込んだ後、ステップＳ８３でタイマー時間レジスタｔを“０”にしてからリターンする。
【００７６】
上記したステップＳ８１とステップＳ８２の処理では、最初のタッチ位置（ｘ，ｙ）により、タッチパネル４のＸ軸とＹ軸に割り当てた例えば音高と音量のパラメータが決定され、その後の音源処理で、これらパラメータが音源６に送られる。
【００７７】
一方、ステップＳ７８で初期タッチフラグＩＴＦが“０”でないと判断されて、図１６のステップＳ８５に進むと、ＣＰＵ１は単位時間経過したかどうかを判断し、経過しない場合はリターンし、経過した場合はステップＳ８６で、タイマー時間レジスタｔの値を＋１インクメントする。その後、ステップＳ８７で、ｔが所定時間（この所定時間はＲＯＭ２に設定されている）未満かどうか、即ち、演奏者が最初にタッチオンして所定時間経過したかどうかを判断する。
【００７８】
ステップＳ８７で、所定時間経過した場合はステップＳ８９に進み、経過しない場合はステップＳ８８で、現在のタッチパネル４のタッチ位置（ｘ，ｙ）と最初のタッチ位置（ＸＩ，ＹＩ）との差が、図１８のＡに示す所定の範囲（２ΔＸ×２ΔＹ）以上になったかどうかを判断し、ならない場合はリターンし、なった場合はステップＳ８９に進む。ステップＳ８９では、初期タッチフラグＩＴＦを“０”とすると共に、タッチフラグＴＦを“１”とし、ステップＳ９０では、レジスタＸ、レジスタＹに現在のタッチ位置の座標（ｘ，ｙ）を書き込んでステップＳ９１に進む。
【００７９】
上記したステップＳ８７〜Ｓ９０の処理により、演奏者がタッチパネル４に最初にタッチしてから所定時間経つまでは、例え、タッチ位置が変化しても、これを無視し、タッチ位置によるパラメータの制御をしない。しかし、前記所定時間内であっても、タッチ位置の変化が所定の範囲（２ΔＸ×２ΔＹ）以上の変化であった場合は、ステップＳ８９、Ｓ９０に進んで、現在の演奏者のタッチ位置によるパラメータの制御を開始する。
【００８０】
ステップＳ９１では、ワークＲＡＭ３のカレントパラメータエリア３１のＸＰ２番目のパラメータエリアにレジスタＸの値を書き込み、ステップＳ９２では、ＹＰ２番目のパラメータエリアにレジスタＹの値を書き込んで、リターンする。
【００８１】
上記したステップＳ９１とステップＳ９２の処理では、演奏者がタッチパネル４に最初にタッチオンして、所定範囲Ａを超えて移動した場合、或いは所定時間経過した場合にタッチ位置によるパラメータの制御を開始するが、この制御を開始したタッチ位置に対応したＸ軸とＹ軸に割り当てた例えばフィルタとベロシティーのパラメータ値がその後の音源処理で音源６に送られる。
【００８２】
一方、図１５のステップＳ７４で、タッチフラグＴＦが“１”であった場合、ステップＳ７５に進んで、現在のタッチ位置の座標（ｘ，ｙ）をワークＲＡＭ３内のレジスタＸ、レジスタＹに書き込み、図１６のステップＳ９１に進む。
【００８３】
また、図１５のステップＳ７３で、タッチオンでない、即ち、タッチパネル４から演奏者が手を離したと判断された場合は、ステップＳ７６に進んでタッチフラグＴＦを“０”にし、ステップＳ７７で初期タッチフラグＩＴＦを“０”にしてリターンする。
【００８４】
図１９は本実施の形態の他のタッチ検出処理の詳細を示したサブルーチン（実施例２）である。まず、ＣＰＵ１はステップＳ９４で、タッチパネル４をスキャン（走査）し、ステップ９５で、演奏者がタッチパネル４にタッチしているかどうかを判断し、タッチしていない場合は、ステップＳ１００に進み、タッチしている場合はステップＳ９６に進む。ステップＳ９６では、タッチフラグＴＦが“１”であるかどうかを判断し、“１”である場合はステップＳ９７に進み、“１”でない場合はステップＳ１０２に進む。ここで、演奏者が最初にタッチパネル４をタッチした場合、タッチフラグＴＦはデフォルト値の“０”であるため、ステップＳ１０２に進むことになる。
【００８５】
ステップＳ１０２では、初期タッチフラグＩＴＦが“０”であるかどうかを判断し、“０”でない場合は図２０のステップＳ１０７に進み、初期タッチフラグＩＴＦが“０”である場合はステップＳ１０３に進む。ここで、演奏者が最初にタッチパネル４をタッチした場合、初期タッチフラグＩＴＦはデフォルト値の“０”であるため、ステップＳ１０３に進むことになる。
【００８６】
ステップＳ１０３では、初期タッチフラグＩＴＦを“１”とし、ステップＳ１０４で、タッチパネル４の最初のタッチ位置の座標（ｘ，ｙ）をレジスタＸＩ、レジスタＹＩに書き込んだ後、ステップＳ１０５に進む。ステップＳ１０５では、ワークＲＡＭ３内のレジスタＯＮＴＩＭＥにレジスタＹＩの値を書き込んだ後、ステップＳ１０６でタイマー時間レジスタｔを“０”にした後、リターンする。
【００８７】
上記したステップＳ１０４とステップＳ１０５の処理では、最初のタッチ位置のｙ座標により、例えば、タッチパネル４のＹ軸に割り当てたパラメータであるＯＮＴＩＭＥの時間が決定され、その後の音源処理で、このＯＮＴＩＭＥの時間を用いて音源６を制御することになる。
【００８８】
一方、ステップＳ１０２で、初期タッチフラグＩＴＦが“０”でないと判断されて、図２０のステップＳ１０７に進んだ場合、ＣＰＵ１は単位時間経過したかどうかを判断し、経過しない場合はリターンし、経過した場合はステップＳ１０８で、タイマー時間レジスタｔの値を＋１インクメントする。その後、ステップＳ１０９で、ｔが所定時間（この所定時間はＲＯＭ２に設定されている）未満かどうか、即ち、演奏者が最初にタッチオンして所定時間経過したかどうかを判断する。
【００８９】
ステップＳ１０９で、所定時間経過したと判断された場合はステップＳ１１１に進み、経過しない場合はステップＳ１１０で、現在のタッチパネル４のタッチ位置（ｘ，ｙ）と最初のタッチ位置（ＸＩ，ＹＩ）との差が、図１８に示すような所定の範囲（２ΔＸ×２ΔＹ）Ａ以上になったかどうかを判断し、ならない場合はリターンし、所定の範囲以上になった場合はステップＳ１１１に進む。ステップＳ１１１では、初期タッチフラグＩＴＦを“０”とすると共に、タッチフラグＴＦを“１”とし、ステップＳ１１２では、レジスタＸ、レジスタＹに現在のタッチ位置の座標（ｘ，ｙ）を書き込んでステップＳ１１３に進む。
【００９０】
上記したステップＳ１０９〜Ｓ１１２の処理により、演奏者がタッチパネルに最初にタッチしてから所定時間経つまでは、例え、タッチ位置が変化しても、これを無視し、タッチ位置によるパラメータの制御をしない。しかし、前記所定時間内であっても、タッチ位置の変化が所定の範囲（２ΔＸ×２ΔＹ）以上の変化であった場合は、ステップＳ１１１、Ｓ１１２に進んで、現在の演奏者のタッチ位置によるパラメータの制御を開始する。
【００９１】
ステップＳ１１３では、ワークＲＡＭ３のカレントパラメータエリア３１のＸＰ１番目のパラメータエリアにレジスタＸの値を書き込み、ステップＳ１１４では、ＹＰ１番目のパラメータエリアにレジスタＹの値を書き込んで、リターンする。
【００９２】
上記したステップＳ１１３とステップＳ１１４の処理では、演奏者がタッチパネル４に最初にタッチオンして、所定範囲Ａを超えて移動したり、或いは所定時間が経過してタッチ位置によるパラメータの制御を開始した直後に最初に得られたタッチ位置に対応したＸ軸とＹ軸に割り当てた、例えば音高と音量のパラメータがその後の音源処理で音源６に送られる。
【００９３】
一方、図１９のステップＳ９６にて、タッチフラグＴＦが“１”であった場合、ステップＳ９７に進み、レジスタＸ、レジスタＹに現在のタッチ位置の座標（ｘ，ｙ）が書き込まれる。次に、ステップＳ９８にて、ワークＲＡＭ３のカレントパラメータエリア３１のＸＰ２番目のパラメータエリアにレジスタＸの値を書き込み、ステップＳ９９では、ＹＰ２番目のパラメータエリアにレジスタＹの値を書き込んでリターンする。
【００９４】
上記したステップＳ９７とステップＳ９８の処理では、演奏者がタッチパネル４に最初にタッチオンして、所定範囲Ａを超えて移動したり、或いは所定時間経過してタッチ位置によるパラメータの制御を開始してから、最初に得られたタッチ位置を除いたそれ以降のタッチ位置に対応したＸ軸とＹ軸に割り当てた例えばフィルタとベロシティのパラメータが、その後の音源処理で音源６に送られる。
【００９５】
一方、図１９のステップＳ９５で、タッチオンでない、即ち、タッチパネル４から演奏者が手を離したと判断された場合は、ステップＳ１００に進んでタッチフラグＴＦを“０”にし、ステップＳ１０１で初期タッチフラグＩＴＦを“０”にして、リターンする。
【００９６】
本実施の形態によれば、予めタッチパネル４のＸ軸、Ｙ軸にそれぞれ２種類ずつの制御すべきパラメータを設定しておくと、演奏者がタッチパネル４を最初にタッチした位置で、前記Ｘ軸、Ｙ軸に設定した一つ目と２つ目のパラメータが決定され、その後、前記最初のタッチ位置が所定範囲を超えて移動したり、或いは所定時間経過した後にタッチ位置によるパラメータの制御を開始すると、この制御開始以降のタッチ位置に対応したＸ軸とＹ軸に割り当てられた三つ目と四つ目のパラメータが得られ、これら４つのパラメータで制御される楽音が音源６から発生され、発音回路７のスピーカ１１１から出力される。
【００９７】
或いは、予めタッチパネル４のＸ軸に２つ、Ｙ軸にそれぞれ３つの制御すべきパラメータを設定しておき、演奏者がタッチパネル４を最初にタッチした位置で、前記Ｙ軸に設定した一つ目のパラメータが決定され、その後、前記最初のタッチ位置が所定範囲を超えて移動したり、或いは所定時間経過した後にタッチ位置によりパラメータの制御を開始した直後の最初のタッチ位置で、Ｘ軸に設定した一つ目のパラメータと、Ｙ軸に設定した二つ目のパラメータとが決まり、更に、タッチ位置によるパラメータの制御を開始した後、最初に得られたタッチ位置を除いたそれ以降のタッチ位置でＸ軸に設定した二つ目のパラメータと、Ｙ軸に設定した三つ目のパラメータが制御され、これら５つのパラメータで制御される楽音が音源６から発生され、発音回路７のスピーカ１１１から出力される。従って、タッチパネル４の各軸に複数のパラメータを設定した際に、演奏操作に影響を与えるような特別な操作をすることなく、これらパラメータを切り換えることができ、円滑でバラエティに富んだ演奏を行うことができる。
【００９８】
図２１は、本発明の楽音制御装置の第３の実施の形態に係るタッチ検出処理を示したフローチャートである。但し、本例の構成は上記した第１の実施の形態と同様であるため、以下同一の構成を持つ各部については、その構成動作の説明を省略し、以下、その動作の特徴部分を説明する。
【００９９】
まず、ＣＰＵ１はステップＳ１１５で、タッチパネル４をスキャン（走査）し、ステップＳ１１６で、演奏者がタッチパネル４にタッチしているかどうかを判断し、タッチしていない場合は、ステップＳ１４０に進み、タッチしている場合はステップＳ１１７に進む。ステップＳ１１７では、タッチフラグＴＦが“１”であるかどうかを判断し、“１”である場合はステップＳ１３１に進み、“１”でない場合はステップＳ１１８に進む。ここで、演奏者が最初にタッチパネル４をタッチした場合、タッチフラグＴＦはデフォルト値の“０”であるため、ステップＳ１１８に進むことになる。
【０１００】
ステップＳ１１８では、初期タッチフラグＩＴＦが“０”であるかどうかを判断し、“０”でない場合は図２２のステップＳ１２３に進み、初期タッチフラグＩＴＦが“０”である場合はステップＳ１１９に進む。ここで、演奏者が最初にタッチパネル４をタッチした場合、初期タッチフラグＩＴＦはデフォルト値の“０”であるため、ステップＳ１１９に進むことになる。
【０１０１】
ステップＳ１１９では、初期タッチフラグＩＴＦを“１”とし、ステップＳ１２０で、タッチパネル４の最初のタッチ位置の座標（ｘ，ｙ）をワークＲＡＭ３内のレジスタＸＩ、レジスタＹＩに格納した後、ステップＳ１２１に進む。ステップＳ１２１では、レジスタＯＮＴＩＭＥにレジスタＹＩの値を格納して、ノートＯＮ時間を設定した後、ステップＳ１２２で、タイマー時間レジスタｔを“０”にしてからリターンする。
【０１０２】
一方、ステップＳ１１８で初期タッチフラグＩＴＦが“０”と判断されて、図２２のステップＳ１２３に進むと、ＣＰＵ１は単位時間経過したかどうかを判断し、経過しない場合はリターンし、経過した場合はステップＳ１２４で、タイマー時間レジスタｔの値を＋１インクメントする。その後、ステップＳ１２５で、ｔが所定時間（この所定時間はＲＯＭ２に設定されている）未満かどうか、即ち、演奏者が最初にタッチオンして所定時間経過したかどうかを判断する。
【０１０３】
ステップＳ１２５で、所定時間経過したと判断された場合はステップＳ１２７に進み、経過しない場合はステップＳ１２６で、現在のタッチパネル４のタッチ位置（ｘ，ｙ）と最初のタッチ位置（ＸＩ，ＹＩ）との差が、所定の範囲（２ΔＸ×２ΔＹ）以上になったかどうかを判断し、ならない場合はリターンし、なった場合はステップＳ１２７に進む。ステップＳ１２７では、初期タッチフラグＩＴＦを“０”とすると共に、タッチフラグＴＦを“１”とし、ステップＳ１２８では、レジスタＸ０、レジスタＹ０に現在のタッチ位置の座標（ｘ，ｙ）を書き込んでステップＳ１２９に進む。
【０１０４】
ここで、レジスタＸ０、レジスタＹ０に書き込まれたタッチ位置は、上記した所定時間経った後、又は所定範囲からタッチ位置が出た直後の演奏者のタッチ位置である。このタッチ位置を起点として、タッチパネル４のＸ軸、或いはＹ軸に割り当ててあるパラメータが最大から最小の範囲で、これ以降のタッチ位置の変化に応じて変化されることになる。
【０１０５】
上記したステップＳ１２５〜Ｓ１２８の処理により、演奏者がタッチパネル４に最初にタッチしてから所定時間経つまでは、例え、タッチ位置が変化しても、これを無視し、タッチ位置によるパラメータの制御はしない。しかし、前記所定時間内であっても、タッチ位置の変化が所定範囲（２ΔＸ×２ΔＹ）以上の変化があった場合は、ステップＳ１２７、Ｓ１２８に進んで、現在の演奏者のタッチ位置によるパラメータの制御を開始する。
【０１０６】
ステップＳ１２９では、ワークＲＡＭ３のカレントパラメータエリア３１のＸＰ番目のパラメータエリアにＸｍａｘ／２の値を書き込み、ステップＳ１３０では、ＹＰ番目のパラメータエリアにＹｍａｘ／２の値を書き込んで、リターンする。ここで、Ｘｍａｘはタッチパネル４上でのＸ軸の最大値を示し、ＹｍａｘはＹ軸の最大値を示す。
【０１０７】
一方、図２１のステップＳ１１７でタッチフラグＴＦが“１”である場合はステップＳ１３１へ進み、現在の演奏者のタッチ位置（ｘ，ｙ）をワークＲＡＭ３のレジスタＸ，レジスタＹに書き込んだ後、ステップＳ１３２に進む。ステップＳ１３２では、レジスタＸの値とレジスタＸ０の値を比較し、レジスタＸの値がレジスタＸ０の値以上でない場合（上記した起点（レジスタＸ０とレジスタＹ０の値で決まる点）に対してタッチ位置がＸ軸の負方向に移動した場合）はステップＳ１３４に進み、レジスタＸの値がレジスタＸ０以上の値であった場合（上記した起点に対してタッチ位置がＸ軸の正方向に移動した場合）はステップＳ１３３に進む。
【０１０８】
ステップＳ１３３では、（Ｘｍａｘ／２）×｛１＋（Ｘ−（Ｘ０−１））／（Ｘｍａｘ−（Ｘ０−１））｝…（１）の計算値をレジスタＸに書き込んだ後、図２３のステップＳ１３５に進む。但し、上記計算式（１）で、Ｘ０はレジスタＸ０の値を示し、ＸはレジスタＸの値を示している。従って、（１）式の計算は、上記起点からタッチ位置をＸ軸の正方向にタッチパネル４の端まで移動した時に、Ｘ軸に割り当ててあるパラメータの最大値が得られるように、タッチ位置のｘ座標値を変換する処理である。
【０１０９】
ステップＳ１３４では、（Ｘｍａｘ／２）×｛Ｘ／（Ｘ０−Ｘｍｉｎ）｝…（２）の計算値をレジスタＸに書き込んだ後、ステップＳ１３５に進む。但し、上記計算式（２）で、Ｘ０はレジスタＸ０の値を示し、ＸはレジスタＸの値を示し、Ｘｍｉｎはタッチパネル４上でのＸ軸の最小値を示している。従って、（２）式の計算は、上記起点からタッチ位置をＸ軸の負方向にタッチパネル４の端まで移動した時に、Ｘ軸に割り当ててあるパラメータの最小値が得られるように、タッチ位置のｘ座標値を変換する処理である。
【０１１０】
ステップＳ１３５では、レジスタＹの値とレジスタＹ０の値を比較し、レジスタＹの値がレジスタＹ０の値以上でない場合（上記した起点に対してタッチ位置がＹ軸の負方向に移動した場合）はステップＳ１３７に進み、レジスタＹの値がレジスタＹ０以上の値であった場合（上記した起点に対してタッチ位置がＹ軸の正方向に移動した場合）はステップＳ１３６に進む。
【０１１１】
ステップＳ１３６では、（Ｙｍａｘ／２）×｛１＋（Ｙ−（Ｙ０−１））／（Ｙｍａｘ−（Ｙ０−１））｝…（３）の計算値をレジスタＹに書き込んだ後、ステップＳ１３８に進む。但し、上記計算式（３）で、Ｙ０はレジスタＹ０の値を示し、ＹはレジスタＹの値を示している。従って、（３）式の計算は、上記起点からタッチ位置をＹ軸の正方向にタッチパネル４の端まで移動した時に、Ｙ軸に割り当ててあるパラメータの最大値が得られるように、タッチ位置のｙ座標値を変換する処理である。
【０１１２】
ステップＳ１３７では、（Ｙｍａｘ／２）×｛Ｙ／（Ｙ０−Ｙｍｉｎ）｝…（４）の計算値をレジスタＹに書き込んだ後、ステップＳ１３８に進む。但し、上記計算式（４）で、Ｙ０はレジスタＹ０の値を示し、ＹはレジスタＹの値を示し、Ｙｍｉｎはタッチパネル４上でのＹ軸の最小値を示している。従って、（４）式の計算は、上記起点からタッチ位置をＹ軸の負方向にタッチパネル４の端まで移動した時に、Ｙ軸に割り当ててあるパラメータの最小値が得られるように、タッチ位置のｙ座標値を変換する処理である。
【０１１３】
ステップＳ１３８では、ワークＲＡＭ３のカレントパラメータエリア３１のＸＰ番目のパラメータエリアにレジスタＸの値を書き込み、ステップＳ１３９では、ＹＰ番目のパラメータエリアにレジスタＹの値を書き込んで、リターンする。
【０１１４】
一方、図２１のステップＳ１１６で、演奏者がタッチパネル４にタッチしていない、即ち、タッチパネル４から演奏者が手を離したと判断された場合は、ステップＳ１４０に進んで、タッチフラグＴＦを“０”にし、ステップＳ１４１で初期タッチフラグＩＴＦを“０”にしてリターンする。
【０１１５】
図２４は上記したステップＳ１３２からステップＳ１３７までの処理により、タッチパネル４のＸ軸、Ｙ軸に割り当てられているパラメータを、これを制御するタッチ位置の起点に拘らず、即ち起点が中央でなくても、各軸に割り当てられているパラメータの最小値から最大値までを制御し得ることを示した図である。例えば、Ｘ軸の起点が２６１（Ｘ軸制御初期値）であった場合、Ｘ軸の正方向は動かす範囲が広く、負方向は動かす範囲が狭まっている。しかし上記処理によって、Ｘ軸の負方向に動かした場合も、タッチパネル４の縁で、Ｘ軸に割り当ててある例えばベンダー値を最小まで制御することができる。またＸ軸の正方向に動かした場合も、タッチパネル４の縁で、Ｘ軸に割り当ててある例えばベンダー値を最大まで制御することができる。同様にＹ軸においてもその起点２６２（Ｙ軸制御初期値）から正方向或いは負方向いずれに動かしても、Ｙ軸に割り当ててある例えばフィルタの係数を最大値から最小値まで制御することができる。
【０１１６】
本実施の形態によれば、タッチパネル４のＸ軸、Ｙ軸に割り当ててあるパラメータを変化させるための起点がどこであっても、その起点からＸ軸方向或いはＹ軸方向の縁までタッチ位置を移動した際に、制御するパラメータの最大値から最小値までの変化が得られるように、前記起点に基づいてタッチ位置の変化割合を変更しているため、前記起点の位置に拘らずパラメータの値を最大値から最小値まで変更することができる。従って、起点が必ずしもタッチパネル４の中央でなくても良いため、初心者などの使い勝手を向上させることができる。
【０１１７】
尚、上記した第１乃至第３の実施の形態で示した楽音制御装置の各動作を楽音制御処理プログラムとしてプログラム化し、コンピュータに実行させることにより実施できる。その際、楽音制御処理プログラムはフロッピーディスクやハードディスク等のディスク型記録媒体、半導体メモリやカード型メモリ等の各種メモリ、或いは通信ネットワーク等の各種プログラム記録媒体を通じてコンピュータに供給することができる。
【０１１８】
また、本発明は上記実施の形態に限定されることなく、その要旨を逸脱しない範囲において、具体的な構成、機能、作用、効果において、他の種々の形態によっても実施することができる。
【０１１９】
【発明の効果】
以上詳細に説明したように、請求項１、請求項２の発明によれば、演奏者がタッチパネルを最初にタッチした時に検出されるタッチ位置（起点）に基づいて、その後に検出されるタッチ位置の変化に基づく楽音制御の度合いを変更することにより、２次元平面のタッチパネル上で、前記起点のタッチ位置に拘らず、この起点からいずれの方向にタッチ位置を移動しても各軸に割り当ててあるパラメータの変化範囲を全てカバーできる制御を行うことができる。
【図面の簡単な説明】
【図１】本発明の楽音制御装置の第１の実施の形態に係る構成例を示したブロック図。
【図２】図１に示したワークＲＡＭのデータエリアの構成例を示した模式図。
【図３】図１に示した楽音制御装置を筐体に内蔵して組み立てた場合の外観例を示した図。
【図４】図１に示した楽音制御装置の一部の構成のみを備えた楽音制御コントローラの外観例を示した図。
【図５】図４で示した楽音制御コントローラをパソコンに接続して構成した楽音制御システムの外観例を示した図。
【図６】図１に示した装置の主要な処理を示したフローチャート。
【図７】第１の実施の形態のイニシャライズ処理の詳細を示したサブルーチン。
【図８】第１の実施の形態のパラメータ選択処理の詳細を示したサブルーチン。
【図９】第１の実施の形態のタッチ検出処理の詳細を示したサブルーチン。
【図１０】第１の実施の形態のタッチ検出処理の詳細を示したサブルーチン。
【図１１】第１の実施の形態の音源処理の詳細を示したサブルーチン。
【図１２】第１の実施の形態のタッチパネルのタッチ位置検出処理を説明する図。
【図１３】本発明の楽音制御装置の第２の実施の形態に係るイニシャライズ処理を示したフローチャート。
【図１４】第２の実施の形態のパラメータ選択処理の詳細を示したサブルーチン。
【図１５】第２の実施の形態のタッチ検出処理の詳細を示したサブルーチン（実施例１）。
【図１６】第２の実施の形態のタッチ検出処理の詳細を示したサブルーチン（実施例１）。
【図１７】第２の実施の形態のスイッチ部の詳細例を示した図。
【図１８】第２の実施の形態のタッチパネルのタッチ位置検出処理を説明する図。
【図１９】第２の実施の形態の他のタッチ検出処理の詳細を示したサブルーチン（実施例２）。
【図２０】第２の実施の形態の他のタッチ検出処理の詳細を示したサブルーチン（実施例２）。
【図２１】本発明の楽音制御装置の第３の実施の形態に係るタッチ検出処理を示したフローチャート。
【図２２】本発明の楽音制御装置の第３の実施の形態に係るタッチ検出処理を示したフローチャート。
【図２３】本発明の楽音制御装置の第３の実施の形態に係るタッチ検出処理を示したフローチャート。
【図２４】第３の実施の形態のタッチパネルのタッチ位置移動によるパラメータ制御例を説明する図。
【図２５】従来のタッチパネルにおける演奏者のタッチ状態を説明する図。
【図２６】従来のタッチパネルに対するタッチ位置移動によるパラメータ制御例を説明する図。
【符号の説明】
１  ＣＰＵ
２  ＲＯＭ
３  ワークＲＡＭ
４  タッチパネル
５  スイッチ（ＳＷ）部
６  音源
７  発音回路
１０  楽音制御装置
１１  楽音制御コントローラ
１２  ＵＳＢケーブル
１４  パソコン
５１  テンキー
５２  選択キー
１１１、１４２  スピーカ
１４１  ディスプレイ
【図１】
0003899927.tif 000002
【図２】
0003899927.tif 000003
【図３】
0003899927.tif 000004
【図４】
0003899927.tif 000005
【図５】
0003899927.tif 000006
【図６】
0003899927.tif 000007
【図７】
0003899927.tif 000008
【図８】
0003899927.tif 000009
【図９】
0003899927.tif 000010
【図１０】
0003899927.tif 000011
【図１１】
0003899927.tif 000012
【図１２】
0003899927.tif 000013
【図１３】
0003899927.tif 000014
【図１４】
0003899927.tif 000015
【図１５】
0003899927.tif 000016
【図１６】
0003899927.tif 000017
【図１７】
0003899927.tif 000018
【図１８】
0003899927.tif 000019
【図１９】
0003899927.tif 000020
【図２０】
0003899927.tif 000021
【図２１】
0003899927.tif 000022
【図２２】
0003899927.tif 000023
【図２３】
0003899927.tif 000024
【図２４】
0003899927.tif 000025
【図２５】
0003899927.tif 000026
【図２６】
0003899927.tif 000027