(57)【要約】   【課題】  小さい処理負荷で、適切なタッチレスポンスデータを得る  【解決手段】  タッチ検出回路５は、鍵の第１のスイッチのオンに伴って計数を開始し、現在のカウント値に、カウントレート値を加算するベロシティカウントユニット２９と、現在のカウント値を記憶するＲＡＭ２４と、鍵の第２のスイッチのオンに伴って、その鍵の現在のカウント値に基づくタッチレスポンスデータを出力するインタフェースユニット２２と、現在のカウント値に加算すべきカウントレート値を算出するベロシティカウントレート発生器２８とを備える。ＲＡＭ２４は、カウント値の上位ビットに関連付けられたカウントレート値を記憶し、ベロシティカウントレート発生器２８は、現在のカウント値に基づくカウントレート値を、現在のカウント値の下位ビットにより補間したカウントレート値の補間値を求める補間手段を有し、補間値が、現在のカウント値に加算される。【選択図】  図２
2008070408.tif 000002
【特許請求の範囲】
【請求項１】
鍵盤を構成する各鍵に離間して配置された２つのスイッチのオン時間差を計測することにより、押鍵速度を示すタッチレスポンスデータを算出するタッチレスポンス検出装置であって、
前記鍵の２つのスイッチのうち第１のスイッチのオンに伴って、当該鍵に関するカウント値の計数を開始し、所定のタイミングで、現在のカウント値に、カウントレート値を加算するベロシティカウント手段と、
前記現在のカウント値を記憶する記憶手段と、
前記第２のスイッチのオンに伴って、前記鍵の現在のカウント値に基づくタッチレスポンスデータを出力するインタフェース手段と、
前記現在のカウント値に加算すべきカウントレート値を算出するカウントレート値算出手段と、を備え、
前記記憶手段が、前記カウント値の所定の上位ビットのビット値に関連付けられたカウントレート値を記憶し、
前記カウントレート値算出手段が、前記記憶手段から出力された、前記現在のカウント値に基づくカウントレート値を、前記現在のカウント値の上記上位ビットを除く所定の下位ビットのビット値により補間したカウントレート値の補間値を求める補間手段を有し、前記カウントレート値の補間値が、前記現在のカウント値に加算されることを特徴とするタッチレスポンス検出装置。
【請求項２】
前記補間手段が、前記上位ビットのビット値に関連付けられたカウントレート値と当該ビット値の次の値の関連付けられたカウントレート値との差分値と、前記カウント値の前記所定の下位ビットのビット値との乗算値、および、前記カウントレート値の加算値を、前記カウントレート値の補間値として算出することを特徴とする請求項１に記載のタッチレスポンス検出装置。
【請求項３】
前記上位ビットを除く所定の下位ビットが、前記現在のカウント値の最下位ビットを含む所定数の下位ビットを除いた、現在のカウント値の中位ビットであることを特徴とする請求項１または２に記載のタッチレスポンス検出装置。
【請求項４】
前記カウントレート値算出手段が、前記補間値を指数変換する指数変換テーブルを有することを特徴とする請求項１ないし３の何れか一項に記載のタッチレスポンス検出装置。
【請求項５】
前記インタフェース手段が、前記現在のカウント値のビットを反転することで、タッチレスポンスデータを得ることを特徴とする請求項１ないし４の何れか一項に記載のタッチレスポンス検出装置。
【請求項６】
複数の鍵を備え、各鍵において、離間して配置された２つのスイッチを有する鍵盤と、
前記鍵盤を構成する各鍵の２つのスイッチのオン時間差を計測することにより、押鍵速度を示すタッチレスポンスデータを算出するタッチレスポンス検出手段であって、
前記鍵の２つのスイッチのうち第１のスイッチのオンに伴って、当該鍵に関するカウント値の計数を開始し、所定のタイミングで、現在のカウント値に、カウントレート値を加算するベロシティカウント手段、
前記現在のカウント値を記憶する記憶手段、
前記第２のスイッチのオンに伴って、前記鍵の現在のカウント値に基づくタッチレスポンスデータを出力するインタフェース手段、並びに、
前記現在のカウント値に加算すべきカウントレート値を算出するカウントレート値算出手段、を有し、
前記記憶手段が、前記鍵ごとに前記カウントレート値を補正するための補正データを記憶し、かつ、前記カウントレート値算出手段が、前記カウントレート値を、前記補正データに基づいて補正することにより、補正されたカウントレート値を算出し、前記補正されたカウントレート値を、前記ベロシティカウント手段に出力することを特徴とするタッチレスポンス検出手段と、
タッチレスポンスデータおよび押鍵された鍵の音高を受信して、かつ、指定された音色で、受信した音高で、かつ、当該タッチレスポンスデータに基づくベロシティの楽音の生成を、楽音発生手段に指示する制御手段と、
前記制御手段から指示された音色、音高、および、ベロシティの楽音データを生成する楽音発生手段と、
を備えたことを特徴とする電子楽器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵など演奏操作子の操作の速さを検出するためのタッチレスポンス検出装置、および、当該タッチレスポンス検出装置を備えた電子楽器に関する。
【背景技術】
【０００２】
従来、電子鍵盤楽器の鍵など演奏操作子の操作の速さ、つまり、演奏操作子の押下速度を、段差のある２つのゴム接点のスイッチがオンするときの時間差を計測することにより検出することが一般的である。
【０００３】
鍵を押下する速度に相当するタッチレスポンスデータを検出するタッチ検出装置は、鍵の第１のスイッチのオンからカウントを開始し、第２のスイッチのオンでカウントを終了し、そのカウント値に基づいてタッチレスポンスデータを検出している。なお、人間の聴感特性から、タッチレスポンスデータと上記時間差との間がほぼ指数関数になるように、タッチレスポンスデータが求められるのが望ましいとされている。
【０００４】
特許文献１のタッチレスポンス検出装置においては、鍵が最初のスイッチにオンしたときから、ダウンカウントするカウンタが設けられている。このダウンカウンタをカウントダウンさせるタイミングを、段階的に変化させている。たとえば、初期的には、ダウンカウンタには、クロック発生器におけるもっとも高速なクロックφによりダウンカウントするが、その後、段階的に、（１／２）φ、（１／３）φ、（１／８）φ、（１／１０）φ、（１／７５φ）のクロックによりダウンカウントし、その結果、指数関数を直線で近似したようなカウンタ出力を得られるようにしている。
【特許文献１】特開昭６３−４１９００号公報（第１図、第４図）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に示すタッチレスポンスデータは、折れ線により指数関数を近似したものであり、実際に指数関数の値との間で誤差が生じる。したがって、従来、電子鍵盤楽器を制御するマイクロコンピュータが、誤差を修正するテーブルを参照して、タッチレスポンスデータを補正している。
【０００６】
このように折れ線にしたがったタッチレスポンスデータを、マイクロコンピュータにて補正する手法では、発音開始時のマイクロコンピュータの処理の負荷が大きくなってしまう。特に、和音など複数の楽音を発生させる際にも、それぞれの発音を遅らせることはできないため、マイクロコンピュータの処理負荷はできるだけ小さくするのが望ましい。
【０００７】
本発明は、小さい処理負荷で、適切なタッチレスポンスデータを得ることができるタッチレスポンス検出装置、および、当該タッチレスポンス検出装置を備えた電子楽器を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の目的は、鍵盤を構成する各鍵に離間して配置された２つのスイッチのオン時間差を計測することにより、押鍵速度を示すタッチレスポンスデータを算出するタッチレスポンス検出装置であって、前記鍵の２つのスイッチのうち第１のスイッチのオンに伴って、当該鍵に関するカウント値の計数を開始し、所定のタイミングで、現在のカウント値に、カウントレート値を加算するベロシティカウント手段と、前記現在のカウント値を記憶する記憶手段と、前記第２のスイッチのオンに伴って、前記鍵の現在のカウント値に基づくタッチレスポンスデータを出力するインタフェース手段と、前記現在のカウント値に加算すべきカウントレート値を算出するカウントレート値算出手段と、を備え、前記記憶手段が、前記カウント値の所定の上位ビットのビット値に関連付けられたカウントレート値を記憶し、前記カウントレート値算出手段が、前記記憶手段から出力された、前記現在のカウント値に基づくカウントレート値を、前記現在のカウント値の上記上位ビットを除く所定の下位ビットのビット値により補間したカウントレート値の補間値を求める補間手段を有し、前記カウントレート値の補間値が、前記現在のカウント値に加算されることを特徴とするタッチレスポンス検出装置により達成される。
【０００９】
本発明によれば、タッチレスポンス検出装置において、現在のカウント値の上位ビットのビット値に関連付けられた、粗いカウントレート値を、現在のカウント値の上位ビットを除く所定の下位ビットのビット値により補間して、現在のカウント値に基づく精度の良いカウントレート値を算出する。記憶手段に記憶するカウントレート値の量をそれほど大きくすることなく、また、処理負荷をそれほど大きくすることなく、精度の良い（きめ細かい）カウントレート値を得ることができる。したがって、得られるベロシティカーブは折れ線状ではなく曲線状となる。
【００１０】
好ましい実施態様においては、前記補間手段が、前記上位ビットのビット値に関連付けられたカウントレート値と当該ビット値の次の値の関連付けられたカウントレート値との差分値と、前記カウント値の前記所定の下位ビットのビット値との乗算値、および、前記カウントレート値の加算値を、前記カウントレート値の補間値として算出する。
【００１１】
また、好ましい実施態様においては、前記上位ビットを除く所定の下位ビットが、前記現在のカウント値の最下位ビットを含む所定数の下位ビットを除いた、現在のカウント値の中位ビットである。つまり、所定数の上位ビットにより、粗いカウントレート値が決定され、それに引き続く所定数の中位ビットにより補間が行われる。この実施態様によれば、演算量を大きくすることなく、きめの細かいカウントレート値を得ることができる。
【００１２】
別の好ましい実施態様においては、前記カウントレート値算出手段が、前記補間値を指数変換する指数変換テーブルを有する。
【００１３】
また、別の好ましい実施態様においては、前記インタフェース手段が、前記現在のカウント値のビットを反転することで、タッチレスポンスデータを得る。
【００１４】
また、本発明の目的は、複数の鍵を備え、各鍵において、離間して配置された２つのスイッチを有する鍵盤と、
前記鍵盤を構成する各鍵の２つのスイッチのオン時間差を計測することにより、押鍵速度を示すタッチレスポンスデータを算出するタッチレスポンス検出手段であって、
前記鍵の２つのスイッチのうち第１のスイッチのオンに伴って、当該鍵に関するカウント値の計数を開始し、所定のタイミングで、現在のカウント値に、カウントレート値を加算するベロシティカウント手段、前記現在のカウント値を記憶する記憶手段、
前記第２のスイッチのオンに伴って、前記鍵の現在のカウント値に基づくタッチレスポンスデータを出力するインタフェース手段、並びに、前記現在のカウント値に加算すべきカウントレート値を算出するカウントレート値算出手段、を有し、前記記憶手段が、前記鍵ごとに前記カウントレート値を補正するための補正データを記憶し、かつ、前記カウントレート値算出手段が、前記カウントレート値を、前記補正データに基づいて補正することにより、補正されたカウントレート値を算出し、前記補正されたカウントレート値を、前記ベロシティカウント手段に出力することを特徴とするタッチレスポンス検出手段と、
タッチレスポンスデータおよび押鍵された鍵の音高を受信して、かつ、指定された音色で、受信した音高で、かつ、当該タッチレスポンスデータに基づくベロシティの楽音の生成を、楽音発生手段に指示する制御手段と、
前記制御手段から指示された音色、音高、および、ベロシティの楽音データを生成する楽音発生手段と、
を備えたことを特徴とする電子楽器により達成される。
【発明の効果】
【００１５】
本発明によれば、小さい処理負荷で、適切なタッチレスポンスデータを得ることができるタッチレスポンス検出装置、および、当該タッチレスポンス検出装置を備えた電子楽器を提供することが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、添付図面を参照して、本発明の実施の形態について説明する。図１は、本発明の実施の形態にかかる電子楽器の概略を示すブロックダイヤグラムである。図１に示すように、電子楽器は、マイクロコンピュータ１、ＲＯＭ（Read  Only  Memory）２、ＲＡＭ（Random  Access  Memory）３、スイッチ類４、タッチ検出回路５、鍵盤６、楽音発生回路７、波形ＲＯＭ８、Ｄ／Ａ変換器（ＤＡＣ）９、増幅回路１０およびスピーカ１１、１２を備えている。マイクロコンピュータ１、ＲＯＭ２、ＲＡＭ３および楽音発生回路は、バス１３と接続されており、タッチ検出回路５はマイクロコンピュータ１とシリアルインタフェースで接続されている。
【００１７】
マイクロコンピュータ１は、電子楽器全体を制御し、プログラムやデータを格納したＲＯＭ２から、プログラムやデータを読み出して、プログラムを実行する。プログラムの実行にて生成されるデータなどはワークエリアであるＲＡＭ３に記憶される。スイッチ類４は、電子楽器のコンソールパネル上に配置されている。マイクロコンピュータ１は、演奏者によるスイッチ類４の操作を検出する。タッチ検出回路５は、後に詳述するように所定のタイミングで鍵盤６に対して走査信号を送出し、各鍵盤６の鍵に配置された２つのスイッチのオンに応答して、演奏操作データ（音高およびタッチレスポンスデータ）を生成して、マイクロコンピュータ１に出力する。本実施の形態において、鍵盤６は８８個の鍵を有し、各鍵には、その長手方向に２つのスイッチが配置され、鍵の押下によってまず第１のスイッチがオンされ、さらに、鍵が押下されることにより第２のスイッチがオンされるようになっている。
【００１８】
マイクロコンピュータ１は、スイッチ類４の操作により指定された音色、および、タッチ検出回路５から出力されたタッチレスポンスデータを含む演奏操作データに基づき、楽音発生回路７を制御して、所定の楽音を発生させる。楽音発生回路７は、波形ＲＯＭ８から指定された音色の波形データを読み出して、演奏操作データにしたがった音高および音量（ベロシティ）の楽音を生成してＤＡＣ９に出力する。ＤＡＣ９は、楽音発生回路７から出力されたディジタルデータをアナログ信号に変換する。アナログ信号は増幅回路１０を介してスピーカ１１、１２から放音される。
【００１９】
図２は、本実施の形態にかかるタッチ検出回路の構成をより詳細に示すブロックダイヤグラムである。図２においては、タッチ検出回路５を構成する部材のほか、図１の鍵盤６も表示している。図２に示すように、タッチ検出回路５は、ＵＡＲＴ（Universal  Asynchronous  Receiver  Transmitter）２１、インタフェースユニット２２、セレクタ（ＳＥＬ）２３、ＲＡＭ２４、タイミング発生器２５、キーインユニット２７、ベロシティカウントレート発生器２８、および、ベロシティカウントユニット２９を有する。
【００２０】
ＵＡＲＴ２１は非同期のシリアルインタフェースであり、マイクロコンピュータ１との間のデータ送受信を制御する。マイクロコンピュータ１からシリアル形式で送られるデータは、パラレル形式に変換され、さらにインタフェースユニット２２およびセレクタ２３を介して、ＲＡＭ２４の所定の領域に書き込まれる。また、タッチ検出回路５における演算により得られたタッチレスポンスデータは、インタフェースユニット２２およびＵＡＲＴを介してマイクロコンピュータ１に転送される。
【００２１】
インタフェースユニット２２は、ＵＡＲＴ２１経由で書き込まれたタッチ検出用制御データを、もう一方の入力にベロシティカウントユニット２９からの出力が接続されているセレクタ２３を介して、ＲＡＭ２４の所定の領域に格納する。タッチ検出用制御データには、ベロシティレートデータおよびベロシティ補正データが含まれる。
【００２２】
セレクタ２３は、上述したようにインタフェースユニット２２がＵＡＲＴ経由でタッチ検出用制御データを出力する場合には、このタッチ検出用制御データを選択して、ＲＡＭ２４に出力する。それ以外の場合には、ベロシティカウントユニット２９からの出力（ベロシティカウント値）を選択して、これをＲＡＭ２４に出力する。
【００２３】
タイミング発生器２５は、鍵盤６に対して、鍵盤６のスイッチのオン／オフを検出するためのタイミング信号を出力するとともに、ＲＡＭ２４のアドレスとなるＣＮＴ［６：０］を出力する。前述したように、本実施の形態においては、８８鍵のそれぞれに２つずつスイッチが設けられ、鍵盤６には１７６個のスイッチが配置される。スイッチは８×２２のマトリクスを構成している。キーインユニット２７は、マトリクスを走査して、タイミング発生器２５のタイミング信号にしたがって、鍵盤６の各鍵のスイッチのオン／オフを検出する。キーインユニット２７は、取り込んだスイッチの状態を示す信号を時分割化して、ベロシティカウントユニット２９に出力する。
【００２４】
ベロシティカウントレート発生器２８は、後に詳述するように、ベロシティカウント値、ベロシティレートデータおよびベロシティ補正データに基づいて、ベロシティカウントレートを算出して、ベロシティカウントユニット２９に出力する。ベロシティカウントユニット２９は、ベロシティカウント値と、ベロシティカウントレート発生器２８から出力されたベロシティカウントレートとを加算して、新たなベロシティカウント値を算出する。新たなベロシティカウント値は、セレクタ２３を介して、ＲＡＭ２４の所定の領域に格納される。
【００２５】
本実施の形態においては、ＲＡＭ２４は３０ビットのデータを格納できる。アドレス０〜８７には、各アドレスに対応してＳＴ［３：０］、ＶＣ［１９：０］およびＣＯＲ［５：０］が格納される。３０ビットのデータＳＴ［３：０］、ＶＣ［１９：０］およびＣＯＲ［５：０］は、鍵盤ごとの情報を表す。ステータスＳＴ［３：０］は、その鍵のカウントのステータスを示す。たとえば、この４ビットの値により、カウント準備中、カウント中などのステータスが特定される。ベロシティカウント値ＶＣ［１９：０］は、鍵盤６のある鍵において、第１のスイッチがオンされた後、第２のスイッチがオンされるまでの間にカウントされる値を示す。ベロシティカウント値ＶＣ［１９：０］は、ステータスＳＴが「カウント中」を示す間、所定のタイミングで、後述するように算出されるベロシティカウントレートが加算されていく。ベロシティ補正データＣＯＲ［５：０］は、鍵盤６の鍵ごとにベロシティカウント値を補正するため（より詳細には、ベロシティカウント値に加算するベロシティカウントレートを補正するため）の値である。上記データは、後述する信号ＣＮＴ［６：０］をアドレスとすることで指定される。
【００２６】
また、ＲＡＭのアドレス８８〜１０５には、各アドレスに対応してＶＲ［７：０］が格納されている。これらは、後述する信号ＶＣ［１９：１６］をアドレスとすることで指定される。
【００２７】
図２に示すタッチ検出回路５において、キーインユニット２７が、ある鍵の第１スイッチのオンを検出すると、その鍵に対応するアドレスのデータ中、ステータスＳＴ［３：０］が、カウント中を示す値に変更され、ベロシティカウント値ＶＣ［１９：０］のカウントが開始される。
【００２８】
ベロシティカウントユニット２９は、所定のタイミングで、ベロシティカウント値ＶＣ［１９：０］に、ベロシティカウントレート発生器２８で算出されたベロシティカウントレートを加算する。ベロシティカウント値ＶＣは、セレクタ２３を介して、ＲＡＭ２４中、鍵のアドレスに格納される。ベロシティカウント値ＶＣに対するベロシティカウントレートの加算は、キーインユニット２７により同じ鍵の第２のスイッチのオンが検出されるまで繰り返される。
【００２９】
キーインユニット２７が、上記鍵の第２のスイッチのオンを検出すると、その時点での当該鍵のベロシティカウント値ＶＣが、インタフェースユニット２２に与えられ、かつ、インタフェースユニット２２において、ベロシティカウント値の各ビット値が反転される。この反転された値が、鍵の押下速度を示すタッチレスポンスデータとなる。タッチレスポンスデータは、鍵の情報（たとえば、音高情報）とともに、ＵＡＲＴ２１を介して、マイクロコンピュータ１に対して出力される。マイクロコンピュータ１は、音高情報およびタッチレスポンスデータに基づいて、ある音高をある強度（或いは速度）でキーオンしたときの演奏操作データを生成して、これを楽音発生回路７に出力する。
【００３０】
また、キーインユニット２７が、鍵のスイッチのオフを検出すると、ベロシティカウントユニット２９からインタフェース２２に対して、鍵の情報（音高情報）とキーオフを示す情報が与えられる。与えられた情報は、ＵＡＲＴ２１を介して、マイクロコンピュータ１に対して出力される。マイクロコンピュータ１は、キーオフを示す情報の受信に応答して、キーオフを示す演奏操作データを生成して、これを楽音発生回路７に出力する。
【００３１】
図３は、本実施の形態にかかるベロシティカウントレート発生器の構成を詳細に示すブロックダイヤグラムである。図３に示すように、ベロシティカウントレート発生器２８は、セレクタ（ＳＥＬ）３１と、ＦＦ３２〜３５と、減算器３６と、乗算器３７、４０と、加算器３８と、変換テーブル３９とを有する。
【００３２】
ＦＦ３３は、ベロシティカウント値ＶＣのうちの上位ビットＶＣ［１９：１２］を保持する。セレクタ３１の一方の入力には、タイミング発生器２５からのＣＮＴ［６：０］が与えられ、他方の入力には、ＶＣのうちのさらに上位の所定ビットＶＣ［１９：１６］が与えられ、タイミングにより何れか一方を出力するようになっている。セレクタ３１の出力は、ＲＡＭ２４のアドレスとなる。
【００３３】
ＦＦ３４には、ＲＡＭ２４においてアドレスＶＣ［１９：１６］で指定して読み出されたベロシティレートデータＶＲが格納される（以下、このデータを、ＶＲ（ＶＣ［１９：１６］）と記す。）。ＦＦ３３には、アドレス（ＶＣ［１９：１６］＋１）で指定して読み出されたベロシティデータが格納される（以下、このデータを、ＶＲ（ＶＣ［１９：１２］＋１）と記す。）。また、ＦＦ３５には、ベロシティ補正データＣＯＲ［５：０］が格納される。
【００３４】
前述したように、ＦＦ３２からの出力のうち、上位のビットＶＣ［１９：１２］のうち上位側ＶＣ［１９：１６］はセレクタ３１に出力され、その一方、下位側ＶＣ［１５：１２］は乗算器３７に出力される。
【００３５】
以下、図３に示すベロシティカウントレート発生器２８における動作について説明する。図４は、本実施の形態にかかるベロシティカウントレート発生器の動作を示すフローチャートである。ベロシティカウントレート発生器２８は、タイミング発生器２５の出力ＣＮＴ［６：０］の値で特定される鍵について、ＲＡＭ２４からアドレスＣＮＴ［６：０］のデータを読み出す。ＲＡＭ２４から読み出されたデータのうち、ベロシティカウント値の上位ビットＶＣ［１９：１２］は、ＦＦ３２に格納される（ステップ４０１）。また、ＲＡＭ２４から読み出されたデータのうち、ベロシティ補正データＣＯＲ［５：０］は、ＦＦ３５に格納される（ステップ４０２）。
【００３６】
次いで、ＦＦ３２に格納されたベロシティカウント値の上位データＶＣ［１９：１２］のうちさらに上位のデータＶＣ［１９：１２］をアドレスとして、ＲＡＭ２４からベロシティレートデータＶＲ（ＶＣ［１９：１６］）が読み出され、ＦＦ３４に格納される（ステップ４０３）。また、（ＶＣ［１９：１２］＋１）をアドレスとして、ＲＡＭ２４からベロシティレートデータＶＲ（ＶＣ［１９：１２］＋１）が読み出され、ＦＦ３３に格納される（ステップ４０４）。
【００３７】
ＦＦ３３の出力ＶＲ（ＶＣ［１９：１２］＋１）およびＦＦ３４の出力ＶＲ（ＶＣ［１９：１６］）は減算器３６に印加され、差分値Ｄｉｆｆ［７：０］＝ＶＲ（ＶＣ［１９：１２］＋１）−ＶＲ（ＶＣ［１９：１６］）が算出される。さらに、差分値Ｄｉｆｆは、ＶＣ［１９：１２］の下位側のデータＶＣ［１５：１２］と乗算器３７により乗算され、さらに、加算器３８によりＶＲ（ＶＣ［１９：１６］）と加算される。これにより、補間値Ｉｎｔ＝ＶＲ（ＶＣ［１９：１６］）＋ＶＣ［１５：１２］×Ｄｉｆｆが得られる（ステップ４０５）。
【００３８】
本実施の形態において、減算器３６、乗算器３７、加算器３８は、ＶＲ（ＶＣ［１９：１２］＋１）とＶＲ（ＶＣ［１９：１６］）との差であるＤｉｆｆを、ＶＣ［１５：１２］で直線補完するための演算系を構成する。ＤｉｆｆとＶＣ［１５：１２］との積を、ＶＲ（ＶＣ［１９：１６］）に加えることにより、アドレスＶＣ［１９：１６］による比較的粗い値であるＶＲ［７：０］を、アドレス下位の値ＶＣ［１５：１２］で補間した補間値Ｉｎｔを得ることができる。
【００３９】
図５（ａ）は、本実施の形態にかかるベロシティレートデータを説明する図である。図５（ａ）において、左側はベロシティカウント値の上位データＶＣ［１９：１２］に相当する。このように、ベロシティカウント値の所定の上位ビット（最上位４ビット）ごとに、これをアドレスとしてＲＡＭ２４からベロシティレートデータＶＲ［７：０］が読み出される。上述した補間により図６に示すような補間値を得ることができる。図６のグラフにおいて、縦軸がベロシティレート値の補間値に相当し、横軸がベロシティカウント値の上位データＶＣ［１９：１２］に相当する。
【００４０】
さらに、補間値Ｉｎｔは、変換テーブル３９に出力され、変換テーブル３９から変換値が出力される。図５（ｂ）は、本実施の形態にかかる変換テーブルの構成例を示す図である。図５（ｂ）に示すように、変換テーブル３９は、補間値Ｉｎｔ、ＶＲ［７：０］と示されている。）を入力として、変換データに示すような値を出力する。図５（ｂ）から理解できるように、変換テーブル３９は、直線補間された補間値を、指数変換する。
【００４１】
図７は、変換テーブル３９を経た補間値を説明するためのグラフである。図７において、縦軸が、指数変換されたベロシティレート値の補間値に相当し、横軸がベロシティカウント値に相当する。
【００４２】
このように指数変換された補間値は、後述するベロシティ補正データによる補正を経て、ベロシティカウントレートとして、ベロシティカウントユニット２９において、ベロシティカウント値と加算される。このように、指数変換された補間値をカウントすることにより、図８のグラフに示すようなベロシティカウントカーブを得ることができる。このベロシティカーブにおいて、縦軸はベロシティデータ（つまりベロシティカウント値の反転値）、横軸は時間である。
【００４３】
このように、本実施の形態においては、折れ線のベロシティレートを補間し、かつ、これを指数変換してレンジを拡張したものをカウント（積分）する。したがって、得られるベロシティカーブ（図８）は曲線状となる。
【００４４】
本実施の形態によれば、ベロシティカウント値の上位ビットＶＣ［１９：１６］に関連付けられたベロシティレートデータＶＲ［７：０］を、ベロシティカウント値の上記上位ビットに引き続く所定の中位ビットＶＣ［１５：１２］で補間して補間されたベロシティレートデータを算出する。またｈ、補間されたベロシティレートデータを指数変換し、指数変換した補間値を、ベロシティカウント値に加算する。したがって、上述したように、ベロシティカーブを曲線状にすることが可能となる。
【００４５】
次に、本実施の形態にかかる補正について説明する。変換テーブル３９の出力である指数変換された補間値は、乗算器４０の一方の入力に与えられる。乗算器４０の他方の入力には、ＦＦ３５からのベロシティ補正データＣＯＲ［５：０］が与えられる。ここで、補正範囲を制限することによって補正データのビット長を削減しているため、補正データＣＯＲ［５：０］は上位に１１（２進数）を付加され、１１００００００〜１１１１１１１１（２進数）の範囲の８ビットデータとして乗算器４０に与えられる。したがって、乗算器４０において、変換値とベロシティ補正データとが乗算されて出力される。この出力が、ベロシティカウントレートとして、ベロシティカウントユニット２９において、ベロシティカウント値ＶＣ［１９：０］と加算される。
【００４６】
なお、変換後の補正値１１１０００００（２進数）を補正ゼロとすると、
１１００００００（２進数）＝１９２（１０進数）
１１１０００００（２進数）＝２２４（１０進数）  ：補正ゼロ
１１１１１１１１（２進数）＝２５５（１０進数）
であるから、補正範囲としては
（１９２−２２４）／２２４＝−１４．２８６％
から
（２５５−２２４）／２２４＝  １３．８３９％
となる。
【００４７】
本実施の形態においては、鍵毎に、スイッチの接点間のばらつきを補正するための補正データを、ベロシティ補正データとしてＲＡＭ２４に格納している。鍵に配置された２つのスイッチの物理的な配置位置のずれや、スイッチ自体の特性から、同じ強さで鍵をオンした場合であっても、第１スイッチのオンから第２スイッチのオンにいたるまでの時間が鍵によって異なる場合がある。本実施の形態においては、これをスイッチ接点間の誤差という。そこで、本実施の形態においては、別途、鍵盤のスイッチ接点間の誤差を測定し、その誤差に基づく鍵ごとのベロシティ補正データＣＯＲを、マイクロコンピュータ１から、ＵＡＲＴ２１、インタフェースユニット２２およびセレクタ２３を介して、ＲＡＭ２４に格納している。
【００４８】
図９は、本実施の形態にかかるベロシティ補正データを説明するためのグラフである。図９において、横軸は鍵を示す。また、縦軸は、測定された鍵ごとのスイッチ接点間の誤差を示す。この例では、測定装置（図示せず）において、ベロシティデータを０〜１２７とした場合に、ベロシティデータが「７２」に相当するように押鍵し、実際に、第１スイッチのオンから第２スイッチのオンに至るまでの時間差に基づいて、本実施の形態にかかるタッチ検出回路５から、ベロシティ補正データによる補正なしで出力されたベロシティデータを取得している。実際に測定され、出力されたベロシティデータは、図９に示すように、鍵により若干のばらつきがある。そこで、本実施の形態においては、鍵ごとに誤差をキャンセルするための値を算出して、この値を、その鍵についてのベロシティ補正データとして、ＲＡＭ２４に格納している。このベロシティ補正データのＲＡＭ２４への格納は、マイクロコンピュータ１から、ＵＡＲＴ２１、インタフェースユニット２２、セレクタ２３を介して、ＲＡＭ２４に鍵ごとのベロシティ補正データを与え、ＲＡＭ２４に書き込むことにより実現される。
【００４９】
図９の例では、ベロシティ補正データは、誤差をキャンセルするための比の値である（１００＋Ａ）／１００とすれば良い。ここで、Ａは、符号付きの誤差の割合（パーセント）、つまり、（実測値−理論値）／理論値である。たとえば、上記例で、ある鍵について、実際に測定されたベロシティデータが「６６」であれば、ベロシティ補正データは、（１００＋（６６−７２）／７２）／１００となる。
【００５０】
ベロシティカウント値は、基本的には、２接点間距離をカウントレートで除したものである。つまり、以下のように書くことができる。
【００５１】
ベロシティカウント値＝２接点間距離／カウントレート
そこで、誤差がＡ％であれば、
ベロシティカウント値＝（２接点間距離×（１００＋Ａ）／１００）／
（カウントレート×ベロシティ補正値）
ベロシティ補正値＝（１００＋Ａ）／１００
上記ベロシティ補正データを、カウントレートに乗じて補正値を得ることによって、接点間のばらつきをキャンセルすることが可能となる。
【００５２】
本実施の形態によれば、鍵ごとに、スイッチ接点間のばらつき（誤差）をキャンセルするベロシティ補正データをＲＡＭ２４に格納し、ベロシティ補正データを、カウントレート（本実施の形態では、指数変換されたベロシティレートデータ）と乗算することで、ベロシティカウント値に加算すべき、最終的な補正されたベロシティカウントレートを得ている。これにより、鍵ごとのスイッチ接点間のばらつきをキャンセルすることができ、鍵ごとの誤差のないタッチレスポンスデータを得ることが可能となる。
【００５３】
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【図面の簡単な説明】
【００５４】
【図１】図１は、本発明の実施の形態にかかる電子楽器の概略を示すブロックダイヤグラムである。
【図２】図２は、本実施の形態にかかるタッチ検出回路の構成をより詳細に示すブロックダイヤグラムである。
【図３】図３は、本実施の形態にかかるベロシティカウントレート発生器の構成を詳細に示すブロックダイヤグラムである。
【図４】図４は、本実施の形態にかかるベロシティカウントレート発生器の動作を示すフローチャートである。
【図５】図５（ａ）は、本実施の形態にかかるベロシティレートデータを説明する図、図５（ｂ）は、本実施の形態にかかる変換テーブルの構成例を示す図である。
【図６】図６は、本実施の形態にかかる補間値の例を示すグラフである。
【図７】図７は、本実施の形態にかかる変換テーブルを経た補間値を説明するためのグラフである。
【図８】図８は、本実施の形態にかかるベロシティカーブを説明するためのグラフである。
【図９】図９は、本実施の形態にかかるベロシティ補正データを説明するためのグラフである。
【符号の説明】
【００５５】
１      マイクロコンピュータ
２      ＲＯＭ
３      ＲＡＭ
４      スイッチ類
５      タッチ検出回路
６      鍵盤
７      楽音発生回路
８      波形ＲＯＭ
９      ＤＡＣ
１０    増幅回路
１１、１２  スピーカ
２１    ＵＡＲＴ
２２    インタフェースユニット
２３    セレクタ
２４    ＲＡＭ
２５    タイミング発生器
２７    キーインユニット
２８    ベロシティカウントレート発生器
２９    ベロシティカウントユニット
【図１】
2008070408.tif 000003
【図２】
2008070408.tif 000004
【図３】
2008070408.tif 000005
【図４】
2008070408.tif 000006
【図５】
2008070408.tif 000007
【図６】
2008070408.tif 000008
【図７】
2008070408.tif 000009
【図８】
2008070408.tif 000010
【図９】
2008070408.tif 000011