(57)【特許請求の範囲】
【請求項１】
タッチパネルと、
加速度センサと、
前記タッチパネル上に操作子を表示させる表示手段と、
前記加速度センサによって検出された加速度を所定の時間毎に取得し、最新のものから過去に遡ってｎ個、記憶手段に保存する保存手段と、
前記タッチパネル上に表示された操作子へのユーザのタッチ操作が検出されてから、前記保存手段によってｋ（ｋ＜ｎ）個の加速度が保存されるまで待った後に、該ｋ個の加速度を含む前記ｎ個の保存された加速度の中から、所定の条件に合致する加速度を、少なくとも１個選択する選択手段と、
前記選択手段によって選択された加速度に基づいて、発生する音響信号の信号特性を決定する決定手段と
を有することを特徴とする電子音響信号発生装置。
【請求項２】
前記ｎおよびｋの各値は、ｋ＜ｎの条件を満たす限り、任意の値に変更可能であることを特徴とする請求項１に記載の電子音響信号発生装置。
【請求項３】
前記決定手段は、所定の換算特性に基づいて、前記選択された加速度を音響信号特性に換算し、該換算された音響信号特性を前記発生する音響信号の信号特性に決定することを特徴とする請求項１または２に記載の電子音響信号発生装置。
【請求項４】
タッチパネルと、加速度センサとを備えた電子音響信号発生装置を制御する制御方法をコンピュータに実行させるプログラムであって、
前記制御方法は、
前記タッチパネル上に操作子を表示させる表示ステップと、
前記加速度センサによって検出された加速度を所定の時間毎に取得し、最新のものから過去に遡ってｎ個、記憶手段に保存する保存ステップと、
前記タッチパネル上に表示された操作子へのユーザのタッチ操作が検出されてから、前記保存ステップによってｋ（ｋ＜ｎ）個の加速度が保存されるまで待った後に、該ｋ個の加速度を含む前記ｎ個の保存された加速度の中から、所定の条件に合致する加速度を、少なくとも１個選択する選択ステップと、
前記選択ステップによって選択された加速度に基づいて、発生する音響信号の信号特性を決定する決定ステップと
を有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タッチパネルディスプレイ（以下、「タッチパネル」と略して言う）上に表示された操作子に対するユーザのタッチ操作の強さを検出し、該検出された強さに応じて音響信号特性を決定する電子音響信号発生装置およびその制御方法を実現するためのプログラムに関する。
【背景技術】
【０００２】
タッチパネル上に表示された操作子に対するユーザのタッチ操作の強さを検出し、該検出された強さに応じて音響信号特性を決定する電子音響信号発生装置は、従来から知られている。
【０００３】
このような電子音響信号発生装置として、タッチパネルおよび加速度センサを備え、タッチパネル上に表示された鍵盤の鍵をユーザが叩く強さ（タッチ操作の強さ）を検出し、該検出された強さを、発音する音の音量に反映させるようにした携帯電話またはタブレット機器がある（たとえば、非特許文献１参照）。ただし非特許文献１には、携帯電話にインストールして、当該携帯電話に上記機能を発揮させるアプリケーション・ソフトウェアが記載されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Zen Piano - Use the Force By GreatApps Ltd，Updated: May 22, 2009，http://itunes.apple.com/app/zen-piano-use-force/id315585257?mt=8#
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上記従来の電子音響信号発生装置では、タッチパネルはユーザのタッチ操作の強さを検出することができないので、そのタッチ操作の強さは、加速度センサを用いて検出していると推測される。しかし上記非特許文献１には、加速度センサからのセンサ出力をどのように用いて、そのタッチ操作の強さを検出しているのかについては、一切記載されていない。
【０００６】
また、加速度センサを用いてタッチ操作の強さを検出した場合、発音する音の音量は、加速度センサによって検出される加速度の大きさに応じて決定されると推測されるが、ユーザのタッチ操作に対して、タッチパネルがその操作を検出するタイミングと、加速度センサがその操作を検出するタイミングとは、一般的には、完全に一致しないので、タッチパネルがその操作を検出するタイミングで、加速度センサからの出力値を検出し、これに応じて音の音量を決定して発音すると、決定した音量にユーザのタッチ操作の強さが適正に反映されず、これにより、ユーザがタッチ操作によって期待した音量の音が発音されないことがある。
【０００７】
本発明は、この点に着目してなされたものであり、ユーザがタッチ操作によって期待した音響信号特性に、より合致した音響信号特性を決定することが可能となる電子音響信号発生装置およびその制御方法を実現するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、請求項１に記載の電子音響信号発生装置は、タッチパネルと、加速度センサと、前記タッチパネル上に操作子を表示させる表示手段と、前記加速度センサによって検出された加速度を所定の時間毎に取得し、最新のものから過去に遡ってｎ個、記憶手段に保存する保存手段と、前記タッチパネル上に表示された操作子へのユーザのタッチ操作が検出されてから、前記保存手段によってｋ（ｋ＜ｎ）個の加速度が保存されるまで待った後に、該ｋ個の加速度を含む前記ｎ個の保存された加速度の中から、所定の条件に合致する加速度を、少なくとも１個選択する選択手段と、前記選択手段によって選択された加速度に基づいて、発生する音響信号の信号特性を決定する決定手段とを有することを特徴とする。
【０００９】
請求項２に記載の電子音響信号発生装置は、請求項１の電子音響信号発生装置において、前記ｎおよびｋの各値は、ｋ＜ｎの条件を満たす限り、任意の値に変更可能であることを特徴とする。
【００１０】
請求項３に記載の電子音響信号発生装置は、請求項１または２の電子音響信号発生装置において、前記決定手段は、所定の換算特性に基づいて、前記選択された加速度を音響信号特性に換算し、該換算された音響信号特性を前記発生する音響信号の信号特性に決定することを特徴とする。
【００１１】
上記目的を達成するため、請求項４に記載のプログラムは、請求項１と同様の技術的思想によって実現できる。
【発明の効果】
【００１２】
請求項１または４に記載の発明によれば、タッチパネル上に表示された操作子へのユーザのタッチ操作が検出されてから、ｋ（ｋ＜ｎ）個の加速度が保存されるまで待った後に、該ｋ個の加速度を含む前記ｎ個の保存された加速度の中から、所定の条件に合致する加速度が、少なくとも１個選択され、該選択された加速度に基づいて、発生する音響信号の信号特性が決定されるので、つまり、ユーザのタッチ操作に対して、タッチパネルからその操作が検出されるタイミングと、加速度センサからその操作が検出されるタイミングとがばらついたとしても、保存されたｎ個の加速度の中には、ユーザのタッチ操作に対して加速度センサが真に検出した加速度が含まれ、この加速度が前記所定の条件に合致するものとして選択され、これに基づいて音響信号特性が決定されるので、ユーザがタッチ操作によって期待した音響信号特性に、より合致した音響信号特性を決定することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施の形態に係る電子音響信号発生装置の概略構成を示すブロック図である。
【図２】図１中のタッチパネル上に表示された画面の一例（（ａ））と、図１中の加速度センサが出力するセンサ値の一例（（ｂ））を示す図である。
【図３】ログとして保存された複数個の演算結果のうち、制御処理に使用するものを選択する方法の一例を示す図である。
【図４】図１の電子音響信号発生装置、特にＣＰＵが実行するタッチ・移動・リリース検出処理の手順を示すフローチャートである。
【図５】図１の電子音響信号発生装置、特にＣＰＵが実行する発音管理処理の手順を示すフローチャートである。
【図６】タッチ管理レジスタ（（ａ））、発音管理レジスタ（（ｂ））、消音管理レジスタ（（ｃ））およびベロシティ値換算用関数（（ｄ））の各一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１５】
図１は、本発明の一実施の形態に係る電子音響信号発生装置の概略構成を示すブロック図である。
【００１６】
同図に示すように、本実施の形態の電子音響信号発生装置は、各種情報を入力するための複数のスイッチからなる設定操作子１と、複数の演奏操作子、各種楽音パラメータや各種動作モードを選択設定するための複数の操作子および各種情報を表示するとともに、ユーザが表示された各操作子や各情報をタッチ操作することで、対応する演奏状態、楽音パラメータおよび動作モードなどを選択設定するタッチパネル２と、設定操作子１の操作状態を検出する検出回路３と、ユーザによるタッチパネル２上のタッチ操作を検出する検出回路４と、演奏状態、各種楽音パラメータおよび各種動作モードを含む、音楽に関する各種状態および情報を選択設定するためのＧＵＩ（graphical user interface）をタッチパネル２上に表示する表示回路５と、装置全体の制御を司るＣＰＵ６と、該ＣＰＵ６が実行する制御プログラムや各種テーブルデータ等を記憶するＲＯＭ７と、演奏情報、各種入力情報および演算結果等を一時的に記憶するＲＡＭ８と、前記制御プログラムを含む各種アプリケーションプログラムや各種楽曲データ、各種データ等を記憶する記憶装置９と、図示しない外部機器を接続し、この外部機器とデータの送受信を行う通信インターフェース（Ｉ／Ｆ）１０と、ユーザが電子音響信号発生装置を振ったり叩いたりしたときに当該電子音響信号発生装置に発生する加速度を検出する加速度センサ１１と、演奏操作子を用いて入力された演奏情報や、前記記憶装置９に記憶されたいずれかの楽曲データを再生して得られた演奏情報等を楽音信号に変換するとともに、その楽音信号に各種効果を付与するための音源・効果回路１２と、該音源・効果回路１２からの楽音信号を音響に変換する、たとえば、ＤＡＣ（digital-to-analog converter）やアンプ、スピーカ等のサウンドシステム１３とにより構成されている。
【００１７】
上記構成要素３〜１２は、バス１４を介して相互に接続され、音源・効果回路１２にはサウンドシステム１３が接続されている。
【００１８】
タッチパネル２としては、本実施の形態では、複数の位置に対するユーザの同時の押圧操作を認識する多点認識機能を備えたパネルを採用しているが、本発明は、多点を認識できないタッチパネルにも適用できる。本実施の形態の電子音響信号発生装置は、掌に載せて片手で操作可能な小型の携帯端末（具体的には、汎用のスレートＰＣ（slate PC）やスマートフォン（smartphone）など）を想定しているので、タッチパネル２も小型のものを採用している。タッチパネル２上には、図２（ａ）に示すように、実ピアノの鍵盤を模した画像（以下、画像であっても「鍵盤」という）２ａと、音色設定などの各種設定を行うための複数（図示例では、６個）のボタン２ｂが表示される。なお本実施の形態では、演奏操作子として、鍵盤２ａを採用したが、これに限らず、ドラムセットの各種ドラムやギターのフレットなど、どのようなものを採用してもよい。また、演奏操作子に限らず、ＤＪ機器の操作子やゲーム機の操作子など、操作子の操作に応じて音響信号を発生する装置であって、タッチ操作の強さに応じて音響信号の音量などの信号特性を制御するものであれば、どのようなものを採用してもよい。
【００１９】
記憶装置９は、たとえば、フレキシブルディスク（ＦＤ）、ハードディスク（ＨＤ）、ＣＤ−ＲＯＭ、ＤＶＤ（digital versatile disc）、光磁気ディスク（ＭＯ）および半導体メモリなどの記憶媒体とその駆動装置である。記憶媒体は、駆動装置から着脱可能であってもよいし、記憶装置９自体が、本実施の形態の電子音響信号発生装置から着脱可能であってもよい。あるいは、記憶媒体も記憶装置９も着脱不可能であってもよい。なお、記憶装置９（の記憶媒体）には、前述のように、ＣＰＵ６が実行する制御プログラムも記憶でき、ＲＯＭ７に制御プログラムが記憶されていない場合には、この記憶装置９に制御プログラムを記憶させておき、それをＲＡＭ８に読み込むことにより、ＲＯＭ７に制御プログラムを記憶している場合と同様の動作をＣＰＵ６にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００２０】
通信Ｉ／Ｆ１０としては、たとえば、ＭＩＤＩ信号などの音楽信号を専用に送受信する音楽専用有線Ｉ／Ｆ、ＵＳＢ（universal serial bus）やＩＥＥＥ１３９４などの汎用近距離有線Ｉ／Ｆ、Ｅｔｈｅｒｎｅｔ（登録商標）などの汎用ネットワークＩ／Ｆ、無線ＬＡＮ（local area network）やＢｌｕｅｔｏｏｔｈ（登録商標）などの汎用近距離無線Ｉ／Ｆ、デジタル電話回線網用の通信Ｉ／Ｆを挙げることができる。本実施の形態では、通信Ｉ／Ｆ１０として、デジタル電話回線網用および／または無線ＬＡＮ用の通信Ｉ／Ｆを採用している。
【００２１】
加速度センサ１１は、図２（ｂ）に示すように、加速度をｘ軸、ｙ軸およびｚ軸の３軸方向でそれぞれ検出し、各軸毎にセンサ値を出力する３軸加速度センサである。各軸のセンサ出力値は、所定の読出し周期で加速度センサ１１から読み出され、ＲＡＭ８の所定位置に確保されたセンサ出力格納領域（図示せず）に格納される。処理部（主として、ＣＰＵ６、ＲＯＭ７およびＲＡＭ８によって構成される）１０１は、所定の周期で（本実施の形態では、１０ｍｓｅｃ毎）センサ出力格納領域から各軸のセンサ出力値を読み出して、後述する制御処理に使用する。なお、本実施の形態の電子音響信号発生装置のような汎用の機器では、本発明に関する制御処理だけではなく、他の多くの処理も並行して実行しているので、上記所定の周期は、多少揺らぐ可能性がある。
【００２２】
音源・効果回路１２は、本実施の形態では、ハードウェアのみによって楽音信号を生成し、これに各種効果を付与するものを想定しているが、これに限らず、ソフトウェア処理のみによって楽音信号を生成し、これに各種効果を付与するものであってもよいし、ハードウェアとソフトウェアで処理を分担するようなものでもよい。また、音源・効果回路１２を電子音響信号発生装置の内部に備えるものに限らず、たとえば、通信Ｉ／Ｆ１０を介して接続される外部機器に音源・効果回路１２を備えるようにし、電子音響信号発生装置からは当該外部機器に発音特性制御情報（後述するベロシティ）を含む発音指示を与えて、当該外部機器にて音響信号を発生させるようにしてもよい。
【００２３】
また本実施の形態では、電子音響信号発生装置の形態として、上述のようにタッチパネル２を備えた汎用のスレートＰＣやスマートフォンを想定しているが、タッチパネル形式でない通常のＬＣＤ（liquid crystal display）やＬＥＤ（light emitting diode）と物理的な操作子を備えた音楽専用のハードウェア構成としてもよい。
【００２４】
以上のように構成された電子音響信号発生装置が実行する制御処理を、まず図３を参照してその概要を説明し、次に図４〜図６を参照して詳細に説明する。
【００２５】
本実施の形態の電子音響信号発生装置は、ユーザが、たとえば指で鍵盤２ａの鍵をタッチする（叩く）と、タッチした鍵に割り当てられた音高の音を、タッチの強さに応じた音量で発音する。このタッチの強さは、装置内蔵の加速度センサ１１からのセンサ出力値に基づいて検出される。本発明の特徴は、センサ出力値をどう使ってタッチの強さを検出するかにある。なお、タッチする鍵数は１鍵に限らず、複数鍵であっても、それに応じた数の音高の音が発音される。
【００２６】
ＣＰＵ６は、センサ出力の読み出し時刻になると、前記センサ出力格納領域内の各軸のセンサ出力値を読み出し、次式（１）の演算を行って、各軸のセンサ出力値の差分の二乗和平方根を算出する。
【００２７】
｛(ｘt−ｘt-1)2 ＋ (ｙt−ｙt-1)2＋ (ｚt−ｚt-1)2 ｝1/2  …（１）
ここで、ｘt，ｙt，ｚt は、現時刻ｔのｘ軸、ｙ軸およびｚ軸の各センサ出力値を示し、ｘt-1，ｙt-1，ｚt-1 は、現時刻ｔより１周期前の時刻ｔ−１のｘ軸、ｙ軸およびｚ軸の各センサ出力値を示している。このように、各軸のセンサ出力値は、現時刻のものと、現時刻より１周期前の時刻のものとが必要になるので、ＲＡＭ８の所定位置に現センサ出力格納領域および旧センサ出力格納領域を確保し、センサ出力格納領域から読み出した各軸のセンサ出力値は、まず現センサ出力格納領域に格納し、上記演算が終了した後、現センサ出力格納領域から読み出して旧センサ出力格納領域に上書き保存する。
【００２８】
上記式（１）で、各軸のセンサ出力値について差分を取ったのは、各軸のセンサ出力値から重力加速度の影響を除去するためである。また、各軸のセンサ出力値（の差分）の二乗和平方根を取ったのは、装置の姿勢（手で垂直に持っているのか、斜めに持っているのか、水平に持っているのか、など）や、タッチしたときにかかる力の向きなどの影響を除去するためである。なお、演算式は上記式（１）に限られない。
【００２９】
このようにして算出された演算結果は、現時刻のものから過去に遡って複数個（本実施の形態では５個とするが、これに限られない）ログとして保存しておく。
【００３０】
図３は、ログとして保存された複数個の演算結果のうち、制御処理に使用するものを選択する方法の一例を示す図である。同図中、“ｎ”がログとして保存される演算結果の個数を示し、本実施の形態では、ｎ＝５である。
【００３１】
ユーザが鍵盤２ａのある鍵をタッチすると、タッチがあったことが前記検出回路４によって検出される。図３の“×”は、このタッチが検出されたタイミングを示している。タッチが検出されると、ＣＰＵ６は、その後ｋ（本実施の形態では、ｋ＝２）個の演算結果が保存されるのを待つ。そしてＣＰＵ６は、この２個の演算結果を含む５個の演算結果から所定の条件に該当するものを選択する。ここで、所定の条件としては、たとえば、最大値を取るもの、最大値とその次に大きい値を取るもの、などを挙げることができる。後者の条件のように、複数個の演算結果が選択される場合には、それらの平均値を取るようにすればよい。本実施の形態では、所定の条件として、最大値を採るものを採用する。したがって図示例では、「採用される値」と記載された矢印が指示する演算結果が選択される。選択された演算結果は、前述のように音量の決定に使用されるが、その決定方法については、制御処理の詳細で後述する。
【００３２】
本発明の特徴は、加速度センサ１１からのセンサ出力（実際には、センサ出力そのものではなく、センサ出力に所定の演算を施して得られた上記演算結果である）を最新のものから遡って複数個保存し、それを選択対象とした点にある。特に、保存する複数個のセンサ出力中に、タッチパネル２へのユーザのタッチ操作が検出された後のセンサ出力だけでなく、その前のセンサ出力も含ませた点にある。このように、タッチ操作の検出前および検出後のいずれのセンサ出力も選択対象としたのは、タッチされた時点で大きな加速度が得られるケースもあれば、タッチされた時点よりも少し前あるいは少し後に大きな加速度が得られるケースもあることが、本願の発明者による実験にて確認できたからである。その理由は、前述のように、多くの処理が並行して実行されているため、タッチの仕方（タッチパネル２のパネル面に対して垂直にタッチしたのか、やや斜めにタッチしたのか、など）や、装置の保持状態（手で持っているのか、机の上などに置いているのか、など）に応じて、大きなセンサ出力値（本来のタッチの強さを反映していると考えられる値）の時間的な出方が変わると考えられるからである。
【００３３】
なお、タッチ操作の検出前および検出後の各センサ出力をそれぞれいくつ保存すればよいかは、加速度センサ１１の出力値を検出する周期や、タッチ操作の検出された時点から発音指示を行うまでにどのくらいの遅延を許容可能か、などを考慮して任意に決定すればよく、本実施の形態のように、検出前に３個、検出後に２個の合計５個に限らない。
【００３４】
このように、本実施の形態の電子音響信号発生装置では、加速度センサ１１からのセンサ出力を複数個保存するに際して、タッチパネル２へのユーザのタッチ操作が検出された時点の前および後の両方のセンサ出力を保存し、保存した複数個のセンサ出力から最大値を採るものを選択し、発音する音の音量の決定に用いることにしたので、つまり、ユーザのタッチ操作に対して、タッチパネル２からその操作が検出されるタイミングと、加速度センサ１１からその操作（に応じた加速度出力）が検出されるタイミングとがばらついたとしても、保存された複数個のセンサ出力の中には、ユーザのタッチ操作に対して加速度センサ１１が真に検出した加速度に応じたセンサ出力が含まれ、このセンサ出力が所定の条件（ここでは、最大値を取るもの）に合致するものとして選択され、これに基づいて楽音特性（ここでは、音量）が決定されるので、ユーザがタッチ操作によって期待した楽音特性に、より合致した楽音特性を決定することが可能となる。
【００３５】
なお本実施の形態では、選択したセンサ出力を、発音する音の音量の決定に用いることにしたが、これに限らず、他の楽音特性、たとえば音色などの決定に用いるようにしてもよい。
【００３６】
次に、この制御処理を詳細に説明する。
【００３７】
図４は、本実施の形態の電子音響信号発生装置、特にＣＰＵ６が実行するタッチ・移動・リリース検出処理の手順を示すフローチャートであり、本タッチ・移動・リリース検出処理は、たとえば５ｍｓｅｃ毎に起動されて実行される。
【００３８】
本タッチ・移動・リリース検出処理では、主として
（Ｏ１）鍵盤２ａの鍵をタッチする第１の操作と、そのタッチした指をリリースする第２の操作とからなる一連のユーザ操作
（Ｏ２）鍵盤２ａの鍵をタッチする第１の操作と、そのタッチした指を、そのタッチ状態を保持させたまま、当該鍵上を移動させる第２の操作と、そのタッチした指をリリースする第３の操作とからなる一連のユーザ操作
を検出する。ただし、上記（Ｏ１）および（Ｏ２）の各一連のユーザ操作は、ある１本の指を対象としたものであり、複数の指で操作した場合には、（Ｏ１）または（Ｏ２）の一連のユーザ操作がその指の数だけ並行して検出されるようにすればよい。
【００３９】
検出回路４において、タッチ操作が検出される、移動操作が検出される、リリース操作が検出される、のいずれかが検出されると、検出された操作の種類（タッチ／移動／リリース）と、そのときの座標がＣＰＵ６に通知される。なお、移動操作を検出したときは、移動前の座標と移動後の座標の２つの座標がＣＰＵ６に通知される。
【００４０】
まず、前記（Ｏ１）の一連のユーザ操作のうち、第１の操作（タッチ操作）がなされると、検出回路４からはタッチ操作である旨とそのときの座標が通知されるので、その直後に起動されたタッチ・移動・リリース検出処理で、ＣＰＵ６は、タッチ管理レジスタに新規レコードを作成し、タッチされた座標（タッチパネル２上のタッチ位置の座標）を初期座標および現在座標として記録する。そして、その座標に対応する操作子ＩＤ（identification）を求めて、当該操作子ＩＤの操作子がオンされた旨を、後述する図５の発音管理処理に通知する（ステップＳ１→Ｓ２→Ｓ３→Ｓ４）。タッチ管理レジスタは、ＲＡＭ８の所定位置に確保されたレジスタであり、図６（ａ）に示すように、初期座標（ｘ，ｙ）および現在座標（ｘ，ｙ）からなる１組のデータを複数組記憶できる領域を備えている。そして、この１組のデータ構造を「レコード」と言う。操作子ＩＤは、鍵盤２ａの各鍵画像にそれぞれ割り当てられているＩＤである。図示しない画像座標テーブルには、各鍵画像（操作子）のＩＤとその画像が配置されている座標が登録されており、タッチされた座標から、その座標に表示されている操作子ＩＤを取得することができる。
【００４１】
次に、前記（Ｏ１）の一連のユーザ操作のうち、第２の操作（リリース操作）がなされると、検出回路４からはリリース操作である旨とそのときの座標が通知されるので、その直後に起動されたタッチ・移動・リリース検出処理で、ＣＰＵ６は、タッチ管理レジスタから、リリースされた座標（タッチパネル２上のリリース位置の座標）が現在座標と一致するレコードを探し、そのレコードに記録されている初期座標に対応する操作子ＩＤを求めて、該操作子ＩＤの操作子がオフされた旨を前記発音管理処理に通知し、タッチ管理レジスタから当該レコードを消去する（ステップＳ１→Ｓ５→Ｓ７→Ｓ８→Ｓ９）。なお、この（Ｏ１）の一連のユーザ操作では、リリースされた座標が現在座標と一致するレコードは必ず、タッチ管理レジスタに記憶されている。
【００４２】
一方、前記（Ｏ２）の一連のユーザ操作のうち、第１の操作（タッチ操作）がなされると、検出回路４からはタッチ操作である旨とそのときの座標が通知されるので、その直後に起動されたタッチ・移動・リリース検出処理で、ＣＰＵ６は、前記（Ｏ１）の一連のユーザ操作のうちの第１の操作（タッチ操作）がなされたときに実行した処理と同様の処理を実行する（ステップＳ１→Ｓ２→Ｓ３→Ｓ４）。
【００４３】
次に、前記（Ｏ２）の一連のユーザ操作のうち、第２の操作（移動操作）がなされると、検出回路４からは移動操作である旨とそのときの座標に加え、移動前の座標が通知されるので、その直後に起動されたタッチ・移動・リリース検出処理で、ＣＰＵ６は、タッチ管理レジスタから、移動前の座標が現在座標と一致するレコードを探し、一致するレコードがあれば、移動後の座標を現在座標として記録（移動後の座標で現在座標を更新）する（ステップＳ１→Ｓ５→Ｓ６）。
【００４４】
この第２の操作（移動操作）では、ユーザがタッチした指を移動させたときに、移動後の位置が依然として同じ操作子上にある場合は、現在座標のみが更新されるのはもちろんであるが、本実施の形態では、移動前の操作子上から外れて他の操作子上に移動したり、操作子外の領域に移動した場合であっても、現在座標のみを更新するようにしている。そして、後述する第３の操作（リリース操作）がなされたときに、タッチ管理レジスタを参照して初期座標を求め、初期座標に対応した操作子ＩＤを取得して消音操作をするようにしている。つまり、移動操作により操作子上から指がずれても、操作子を操作したままの状態を維持するようにしている。しかし、これに代えて、移動操作により操作子上から指がずれて新たな操作子上に移動した場合は、移動前の座標で一旦リリース操作があったものとみなして、後述する第３の操作（リリース操作）に対応した処理を実行するとともに、移動後の座標で新たなタッチ操作があったものと見なして、前述の第１の操作（タッチ操作）に対応した処理を実行するようにしてもよい。これにより、移動操作により操作子上から指がずれたら一旦消音され、新たな操作子に対応した楽音が発音されるようになる。なお、操作子外から操作子上に移動した場合は、新たなタッチ操作のみとし、操作子上から操作子外に移動した場合は、リリース操作のみとする。また、本実施の形態の動作をするのか、これに代える動作をするのかをユーザが選択できるようにしてもよい。
【００４５】
次に、前記（Ｏ２）の一連のユーザ操作のうち、第３の操作（リリース操作）がなされると、検出回路４からはリリース操作である旨とそのときの座標が通知されるので、その直後に起動されたタッチ・移動・リリース検出処理で、ＣＰＵ６は、前記（Ｏ１）の一連のユーザ操作のうちの第２の操作（リリース操作）がなされたときに実行した処理と同様の処理を実行する（ステップＳ１→Ｓ５→Ｓ７→Ｓ８→Ｓ９）。
【００４６】
図５は、本実施の形態の電子音響信号発生装置、特にＣＰＵ６が実行する発音管理処理の手順を示すフローチャートであり、本発音管理処理は、たとえば１０ｍｓｅｃ毎に起動されて実行される。
【００４７】
本発音管理処理は、主として
（１）加速度センサ１１からのセンサ出力に関連するセンサ出力関連処理（ステップＳ１１〜Ｓ１３）
（２）発音処理（ステップＳ１６，Ｓ１７）
（３）消音処理（ステップＳ１９）
（４）発音管理レジスタ初期化処理（ステップＳ２１）
（５）消音管理レジスタ初期化処理（ステップＳ２３）
によって構成されている。
【００４８】
本発音管理処理が起動されると、上記（１）のセンサ出力関連処理で、まずＣＰＵ６は、制御処理の概要で前述したように、センサ出力格納領域から各軸のセンサ出力値を読み出して、現センサ出力格納領域に格納する（ステップＳ１１）。次にＣＰＵ６は、現センサ出力格納領域および旧センサ出力格納領域にそれぞれ格納された各軸のセンサ出力値に、前記式（１）の演算を施した（ステップＳ１２）後、その演算結果を、ＲＡＭ８の所定位置に確保されたリングバッファ（ring buffer）（図示せず）に保存する（ステップＳ１３）。本発明では前述したように、演算結果は、時系列的に得られたもののうち、最新の複数個（たとえば５個）を保存しておくため、本実施の形態では、保存する個数を超えて演算結果が得られた場合に、その演算結果を簡単に上書き保存できるリングバッファを採用したが、これに限らず、通常のメモリを採用し、ソフトウェアで保存する個数を管理するようにしてもよい。なお、フローチャートには記載されていないが、この（１）センサ出力関連処理では、ＣＰＵ６は、前記ステップＳ１３の処理の後、現センサ出力格納領域に格納されている各軸のセンサ出力値を読み出して、旧センサ出力格納領域に格納する処理を実行する。また、本発音管理処理が起動されたときに、旧センサ出力格納領域にまだ各軸のセンサ出力値が格納されていない場合があるが、その場合には、ＣＰＵ６は前記ステップＳ１２の演算処理を実行できないので、センサ出力格納領域から読み出した各軸のセンサ出力値を現センサ出力格納領域に格納する処理に続いて、ステップＳ１２，Ｓ１３の処理を実行せずに、現センサ出力格納領域に格納した各軸のセンサ出力値を旧センサ出力格納領域に格納する処理を実行する。
【００４９】
次にＣＰＵ６は、発音管理レジスタおよび消音管理レジスタ内の各カウンタの値を“１”だけインクリメントする（ステップＳ１４）。発音管理レジスタも消音管理レジスタも、ＲＡＭ８の所定位置に確保されたレジスタであり、図６（ｂ），（ｃ）に示すように、操作子ＩＤおよび（ソフトウェア）カウンタからなる１組のデータ（レコード）を複数組記憶できる領域を備えている。発音管理レジスタも消音管理レジスタも、１つのレコードも記憶していない場合があり、この場合には、ＣＰＵ６は前記ステップＳ１４のインクリメントを行わないことは、言うまでもない。
【００５０】
次に、発音管理レジスタ内にカウンタの値が“＋２”になったレコードがあれば、ＣＰＵ６は、処理を前記（２）の発音処理に進める（ステップＳ１５→Ｓ１６）。発音管理レジスタ内のカウンタ値＝＋２とは、前記タッチ・移動・リリース検出処理から「操作子オン」の通知を受けてから、本発音管理処理が２回起動されたこと、つまり図３において、タッチパネル２へのユーザのタッチが検出されてからｋ（＝２）回、各軸のセンサ出力値が取得されたことを意味し、このタイミングが発音を指示するタイミングであることを示している。
【００５１】
この（２）発音処理では、まずＣＰＵ６は、リングバッファに保存されている演算結果のうち、所定の条件に該当するもの（たとえば最大のもの）を採用し、これをベロシティ値に換算する（ステップＳ１６）。図６（ｄ）は、採用した演算結果をベロシティ値に換算する際に用いる関数の一例を示す図である。同図の関数は、非線形の関数の一例である、シグモイド関数（sigmoid function）である。もちろん、他の非線形の関数を用いてもよいし、非線形の関数に限らず、線形の関数を用いてもよい。さらに、「ベロシティ・センサビリティ」パラメータを定義し、このパラメータによって関数の形状を変えられるようにしてもよい。
【００５２】
そしてＣＰＵ６は、当該レコードの操作子ＩＤに対応する音高および上記換算後のベロシティ値にて、音源部である前記音源・効果回路１２に発音開始を指示し、当該レコードを発音管理レジスタから消去する（ステップＳ１７）。
【００５３】
次に、消音管理レジスタ内にカウンタの値が“＋２”になったレコードがあれば、ＣＰＵ６は、処理を前記（３）の消音処理に進め（ステップＳ１８→Ｓ１９）、当該レコードの操作子ＩＤに対応する音高の消音を音源・効果回路１２に指示し、当該レコードを消音管理レジスタから消去する。ここで、消音管理レジスタ内のカウンタ値＝＋２とは、タッチ・移動・リリース検出処理から「操作子オフ」の通知を受けてから、本発音管理処理が２回起動されたこと、つまり、タッチパネル２へのユーザのタッチのリリースが検出されてから、２回、各軸のセンサ出力値が取得されたことを意味する。しかしこの（３）消音処理では、前記（２）発音処理と異なり、リングバッファに記憶されている演算結果を使っておらず、したがって、リングバッファに新たな演算結果が入ってくるのを待つために、消音管理レジスタ内のカウンタ値を監視する必要はないので、消音管理レジスタ内のカウンタ値＝＋２は、タッチパネル２へのユーザのタッチのリリースが検出されてから消音が開始されるまでの時間と、タッチパネル２へのユーザのタッチが検出されてから発音が開始されるまでの時間とを一致させる目的でのみなされている。
【００５４】
次に、タッチ・移動・リリース検出処理から操作子オンの通知を受けると、ＣＰＵ６は、処理を前記（４）の発音管理レジスタ初期化処理に進め（ステップＳ２０→２１）、発音管理レジスタに新規レコードを作成し、操作子ＩＤを記録し、カウンタに“０”をセットする。
【００５５】
また、タッチ・移動・リリース検出処理から操作子オフの通知を受けると、ＣＰＵ６は、処理を前記（５）の消音管理レジスタ初期化処理に進め（ステップＳ２２→Ｓ２３）、消音管理レジスタに新規レコードを作成し、操作子ＩＤを記録し、カウンタに“０”をセットする。
【００５６】
なお、本実施の形態に代える動作として、移動操作により移動前の操作子上から移動後の操作子上へと指が動いたときのベロシティ値は、所定のデフォルト値を採用してもよいし、移動前の操作子の発音に用いたベロシティ値を保存しておき、これを移動後の操作子の発音時に使用してもよい。操作子外から操作子上に指が動いたときのベロシティ値は、移動前の操作子の発音に用いたベロシティ値がないことから、所定のデフォルト値を採用するのがよい。
【００５７】
また、本実施の形態では、検出された加速度の値に所定の演算を施した演算結果を複数個、ログとして保存するようにしたが、これに限らず、検出された加速度の値を複数個、ログとして保存しておき、発音処理（図５のステップＳ１６）において、保存されている複数組の加速度それぞれの値に所定の演算を施してから、所定のものを採用するようにしてもよい。
【００５８】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００５９】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６０】
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
【００６１】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００６２】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【符号の説明】
【００６３】
２…タッチパネル，５…表示回路（表示手段），６…ＣＰＵ（表示手段、保存手段、選択手段、決定手段），８…ＲＡＭ（記憶手段），１１…加速度センサ
【図１】
0005565399.tif 000002
【図２】
0005565399.tif 000003
【図３】
0005565399.tif 000004
【図４】
0005565399.tif 000005
【図５】
0005565399.tif 000006
【図６】
0005565399.tif 000007