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