(57)【要約】【課題】電子楽器において、２つの接点のみで、３つの接点を有する電子ピアノと同様な連打性能を実現すること。【解決手段】タッチ検出装置５０は、コントローラ５１と、第２カウンタ５５と、比較回路５８を備える。コントローラ５１は、第１カウンタ５４により第２接点１６０ｂがオフされてから第１接点１６０ａがオフされるまでカウントされた時間に基づいて、ダンパーオンイベントの発生に到達する時間であるダンパーオン到達時間を予測する。第２カウンタ５５は、ダンパーオン到達時間と比較する時間をカウントする。比較回路５８は、第２カウンタ５５によりカウントされた時間とダンパーオン到達時間とを比較し、一致したとき、ダンパーオンイベントを発生させるための離鍵一致信号をコントローラ５１に送信する。そして、コントローラ５１は、比較回路５８から離鍵一致信号が送信されてきた場合、ダンパーオンイベントを発生させる制御を実行する。【選択図】図２
2015045829.tif 000002
【特許請求の範囲】
【請求項１】
発音すべき楽音の音高を指定する鍵毎に設けられ、当該鍵に対する押鍵操作による押下量が第１の値になったときにオンになるとともに、離鍵操作により押下量が前記第１の値に戻ったときにオフになる第１接点と、
前記押鍵操作により前記鍵の押下量が前記第１の値より大きい第２の値になったときにオンになるとともに、前記離鍵操作により押下量が前記第２の値に戻ったときにオフになる第２接点と、
前記押鍵操作により、前記第１接点がオンになってから、前記第２接点がオンになるまでの時間をカウントする押鍵カウンタと、
前記第２接点がオンになると、前記押鍵カウンタにてカウントされた時間に対応する音量でかつ前記押鍵された鍵に対応する音高の楽音の発音を指示するノートオンイベントを生成するノートオンイベント生成手段と、
前記離鍵操作により、前記第２接点がオフになってから、前記第１接点がオフになる時点までの時間をカウントする離鍵カウンタと、
前記第１接点がオフになってから前記離鍵カウンタのカウント値に対応する時間経過後、前記離鍵された鍵に対応する音高の楽音の消音を指示するノートオフイベントを生成するノートオフイベント生成手段と、
を有するタッチ検出装置。
【請求項２】
前記タッチ検出装置はさらに、
前記ノートオフイベント生成手段によるノートオフイベント生成前に、前記第１接点が再度オンになったか否かを判別する判別手段と、
前記判別手段により再度オンになったと判別された場合は、前記ノートオフイベント生成手段で前記ノートオフイベントの生成をさせずに、前記第２接点がオンになった時点で前記ノートオンイベント生成手段に対して前記押鍵されている鍵に対応する音高の楽音の発音を指示する新たなノートオンイベントを生成させるように制御する制御手段と、
を有する請求項１記載のタッチ検出装置。
【請求項３】
前記タッチ検出装置はさらに、
前記離鍵操作により、前記第１接点がオフになった時点で、前記ノートオフイベント生成手段に対して、前記離鍵された鍵に対応する音高の楽音の消音を指示する新たなノートオフイベントを生成させる請求項１又は２に記載のタッチ検出装置。
【請求項４】
前記ノートオンイベント生成手段は、前記押鍵カウンタのカウント値に対応する時間経過後に、前記ノートオンイベントを生成する請求項１乃至３のいずれかに記載のタッチ検出装置。
【請求項５】
前記ノートオンイベント生成手段は、前記第２接点がオンになった時点で、前記ノートオンイベントを生成する請求項４に記載タッチ検出装置。
【請求項６】
発音すべき楽音の音高を指定する鍵毎に設けられ、当該鍵に対する押鍵操作による押下量が第１の値になったときにオンになるとともに、離鍵操作により押下量が前記第１の値に戻ったときにオフになる第１接点と、前記押鍵操作により前記鍵の押下量が前記第１の値より大きい第２の値になったときにオンになるとともに、前記離鍵操作により押下量が前記第２の値に戻ったときにオフになる第２接点と、を有するタッチ検出装置が実行するタッチ検出方法であって、
前記押鍵操作により、前記第１接点がオンになってから、前記第２接点がオンになるまでの押鍵時間をカウントし、
前記第２接点がオンになると、前記カウントされた押鍵時間に対応する音量でかつ前記押鍵された鍵に対応する音高の楽音の発音を指示するノートオンイベントを生成し、
前記離鍵操作により、前記第２接点がオフになってから、前記第１接点がオンからオフになるまでの離鍵時間をカウントし、
前記第１接点がオフになってから前記カウントされた離鍵時間に対応する時間経過後、前記離鍵された鍵に対応する音高の楽音の消音を指示するノートオフイベントを生成する、タッチ検出方法。
【請求項７】
発音すべき楽音の音高を指定する鍵毎に設けられ、当該鍵に対する押鍵操作による押下量が第１の値になったときにオンになるとともに、離鍵操作により押下量が前記第１の値に戻ったときにオフになる第１接点と、前記押鍵操作により前記鍵の押下量が前記第１の値より大きい第２の値になったときにオンになるとともに、前記離鍵操作により押下量が前記第２の値に戻ったときにオフになる第２接点と、を有するタッチ検出装置として用いられるコンピュータに、
前記押鍵操作により、前記第１接点がオンになってから、前記第２接点がオンになるまでの押鍵時間をカウントするステップと、
前記第２接点がオンになると、前記カウントされた押鍵時間に対応する音量でかつ前記押鍵された鍵に対応する音高の楽音の発音を指示するノートオンイベントを生成するステップと、
前記離鍵操作により、前記第２接点がオフになってから、前記第１接点がオフになるまでの離鍵時間をカウントするステップと、
前記第１接点がオフになってから前記カウントされた離鍵時間に対応する時間経過後、前記離鍵された鍵に対応する音高の楽音の消音を指示するノートオフイベントを生成するするステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タッチ検出装置、タッチ検出方法及びプログラムに関する。
【背景技術】
【０００２】
従来、電子ピアノ等の電子楽器において発音される音の強弱を示すベロシティ情報は、次のように検出されていた。
即ち、電子ピアノの各鍵下には、鍵の押下量（ストローク）が相互に異なる位置でオンする第１接点と第２接点とが設けられ、この第１接点と第２接点との各オンタイミングの時間差を計測し、この時間差に基づいてベロシティ情報を検出し、このベロシティ情報に基づいた強さの楽音を、接続された音源から発音する。
【０００３】
最近では、例えば、特許文献１に示されるような、各鍵下に３つの接点を有する電子ピアノが上市されている。これは従来からある２つの接点の中間の押下量の位置（中間ストローク位置）にもう１つの接点を追加し、３つの接点によりピアノのダンパー動作を模した音源制御を行うことができるようにしたものである。説明の便宜上、これら３つの接点を鍵の押下量が１番浅い位置から第１接点、第２接点、第３接点と呼ぶ。
【０００４】
このような３つの接点を有する電子ピアノにおいては、第２接点と第３接点との２つの接点が夫々オンされるタイミングの時間差に基づいてベロシティ情報を検出する点においては、２つの接点を有する電子ピアノの構造と大きく変わらない。
しかしながら、３つの接点を有する電子ピアノは、２つの接点を有する従来の電子ピアノと比較して深いストローク位置に第２接点を設置するようにすれば、アコースティックピアノと同様に、深いストローク位置における小さいストローク振幅の連打操作を検出することが可能となる。
また、３つの接点を有する電子ピアノにおける消音のタイミングの検出は、２つの接点を有する従来の電子ピアノのストローク位置と同様に、第１接点のオフのタイミングに基づいて行われる。３つの接点を有する電子ピアノにおいては、第１接点により消音（ダンパーのオン）制御を行うとともに、第２接点及び第３接点により発音制御（タッチ強度と発音開始タイミングの制御）を行うことができる。
このため、３つの接点を有する電子ピアノは、ダンパーをオフ（解放）にした状態のまま第２接点及び第３接点の繰り返し連打が行われた場合には、早いタイミングで同一音高の楽音を複数連続して発音させることが可能になり、これによって、アコースティックピアノの連打演奏を表現することできる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３９２２２２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、こうした連打性能の実現のためには、１鍵あたり接点を従来の２つから３つへと追加して設置しなければならず、接点（スイッチ）、配線、接点マトリクス（スイッチマトリクス）用のダイオード等、多くの追加部品を必要となる。これは必然的に複雑化・高コスト化を招くものであり、このため、従来の２つの接点のみの構成で、３つの接点を有する電子ピアノと同様な連打性能を実現することが望まれていた。
【０００７】
本発明は、このような状況に鑑みてなされたものであり、電子楽器において、従来の２つの接点のみの構成で、３つの接点を有する電子ピアノと同様な連打性能を実現することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の一態様のタッチ検出装置は、
発音すべき楽音の音高を指定する鍵毎に設けられ、当該鍵に対する押鍵操作による押下量が第１の値になったときにオンになるとともに、離鍵操作により押下量が前記第１の値に戻ったときにオフになる第１接点と、
前記押鍵操作により前記鍵の押下量が前記第１の値より大きい第２の値になったときにオンになるとともに、前記離鍵操作により押下量が前記第２の値に戻ったときにオフになる第２接点と、
前記押鍵操作により、前記第１接点がオンになってから、前記第２接点がオンになるまでの時間をカウントする押鍵カウンタと、
前記第２接点がオンになると、前記押鍵カウンタにてカウントされた時間に対応する音量でかつ前記押鍵された鍵に対応する音高の楽音の発音を指示するノートオンイベントを生成するノートオンイベント生成手段と、
前記離鍵操作により、前記第２接点がオフになってから、前記第１接点がオフになる時点までの時間をカウントする離鍵カウンタと、
前記第１接点がオフになってから前記離鍵カウンタのカウント値に対応する時間経過後、前記離鍵された鍵に対応する音高の楽音の消音を指示するノートオフイベントを生成するノートオフイベント生成手段と、
を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、電子楽器において、従来の２つの接点のみの構成で、複雑化・高コスト化を招くことなく３つの接点を有する電子ピアノと同様な連打性能を実現することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係るタッチ検出装置が適用された電子楽器のハードウェアの構成を示すブロック図である。
【図２】本発明の実施形態に係るタッチ検出装置のハードウェアの構成を示すブロック図である。
【図３】図２のタッチ検出装置のカウンタメモリのフォーマットを説明する図である。
【図４】本実施形態に係るタッチ検出装置を構成するハードウェアにおけるステータスフラグ（ＳＴ）の推移を説明する図である。
【図５】本発明の一実施形態に係るタッチ検出装置との比較としての、３接点を有する従来のタッチ検出装置によるタッチ検出動作処理が実行された場合における、押鍵により発音されてから離鍵により消音されるまでのタイミングを説明する図である。
【図６】本発明の一実施形態に係るタッチ検出装置との比較としての、２接点を有するタッチ検出装置によるタッチ検出動作処理が実行された場合における、押鍵により発音されてから離鍵により消音されるまでのタイミングを説明する図である。
【図７】本発明の一実施形態に係るタッチ検出装置によるタッチ検出動作処理が実行された場合における、押鍵により発音されてから離鍵により消音されるまでのタイミングを説明する図である。
【図８】本発明の一実施形態に係るタッチ検出装置によるタッチ検出動作処理が実行された場合における、押鍵により発音されてから離鍵により消音されるまでのタイミングを説明する図である。
【図９】本発明の一実施形態に係るタッチ検出装置によるタッチ検出動作処理が実行された場合における、押鍵により発音されてから離鍵により消音されるまでのタイミングを説明する図である。
【図１０】本発明の一実施形態に係るタッチ検出装置によるタッチ検出動作処理が実行された場合における、押鍵により発音されてから離鍵により消音されるまでのタイミングを説明する図である。
【図１１】図２のタッチ検出装置が実行するタッチ検出動作処理の流れを説明するフローチャートである。
【図１２】図２のタッチ検出装置が実行するタッチ検出動作処理の流れを説明するフローチャートである。
【図１３】図２のタッチ検出装置が実行するタッチ検出動作処理の流れを説明するフローチャートである。
【図１４】図２のタッチ検出装置が実行するタッチ検出動作処理の流れを説明するフローチャートである。
【図１５】図２のタッチ検出装置が実行するタッチ検出動作処理の流れを説明するフローチャートである。
【図１６】図２のタッチ検出装置が実行するタッチ検出動作処理の流れを説明するフローチャートである。
【図１７】図２のタッチ検出装置が実行するタッチ検出動作処理の流れを説明するフローチャートである。
【図１８】図２のタッチ検出装置が実行するタッチ検出動作処理の流れを説明するフローチャートである。
【図１９】図２のタッチ検出装置が実行するタッチ検出動作処理の流れを説明するフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて、本発明の実施形態に係るタッチ検出装置を説明する。
【００１２】
図１は、本発明の実施形態に係るタッチ検出装置５０が適用された電子楽器１のハードウェアの構成を示すブロック図である。
図１において、電子楽器１は、ＣＰＵ１１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３と、バス１４と、入出力インターフェース１５と、入力部１６と、出力部１７と、記憶部１８と、ＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）インターフェース部１９と、ドライブ２０と、タッチ検出装置５０と、を備えている。
【００１３】
ＣＰＵ１１は、ＲＯＭ１２に記録されているプログラム、又は、記憶部１８からＲＡＭ１３にロードされたプログラムに従って各種の処理を実行する。例えばＣＰＵ１１は、タッチ検出装置５０から送信された各種イベント（詳細については後述する）に基づいて発音や消音するための制御、即ち発音制御や消音制御を実行する。
ＲＡＭ１３には、ＣＰＵ１１が各種の処理を実行する上において必要なデータ等が適宜記憶される。
【００１４】
ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、及び後述のタッチ検出装置５０は、バス１４を介して相互に接続されている。このバス１４にはまた、入出力インターフェース１５も接続されている。入出力インターフェース１５には、入力部１６、出力部１７、記憶部１８、ＭＩＤＩインターフェース部１９、及びドライブ２０が接続されている。
【００１５】
入力部１６は、複数種類の音が夫々対応付けられた複数の鍵（例えば、８８個の鍵）を有するＭＩＤＩキーボードを含む。電子楽器１において、複数の鍵に対応づけられた複数種類の音は、ノートナンバにより識別される。この鍵の押鍵操作及び離鍵操作は、後述するタッチ検出装置５０により検出される。
【００１６】
具体的には、入力部１６は、複数の鍵毎に設けられ、押鍵操作に応じて、順次オンされる第１接点１６０ａ及び第２接点１６０ｂが、マトリクス状に接続された鍵スイッチマトリクス１６０を備える。
鍵スイッチマトリクス１６０は、タッチ検出装置５０から送信されたコモン側スイッチ入力信号（ＫＣ）に応じて、オンされた第１接点１６０ａ又は第２接点１６０ｂを検出する。そして、鍵スイッチマトリクス１６０は、オンされた第１接点１６０ａを示す第１接点オン信号又はオンされた第２接点１６０ｂを示す第２接点オン信号をタッチ検出装置５０に送信する。
一方、鍵スイッチマトリクス１６０は、鍵が押切られた状態からの離鍵操作に応じて、第２接点１６０ｂ、第１接点１６０ａの順にオフされたことを検出する。そして、鍵スイッチマトリクス１６０は、オフされた第１接点１６０ａを示す第１接点オフ信号又はオフされた第２接点１６０ｂを示す第２接点オフ信号をタッチ検出装置５０に送信する。
【００１７】
また、入力部１６は、各種情報を入力するためのスイッチを備えている。そして、入力部１６は、ユーザによって入力された各種情報をＣＰＵ１１に出力する。
出力部１７は、ディスプレイや、スピーカ及びＤ／Ａ変換回路等を有しており、画像や音声を出力する。
記憶部１８は、ハードディスクあるいはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成され、電子楽器１の制御のための各種プログラムを記憶する。
【００１８】
ＭＩＤＩインターフェース部１９は、楽音を生成する音源４１と発音制御部としてのＣＰＵ１１とを接続するインターフェースである。音源４１は、予め複数種類の楽音の音色に対応する楽音波形データが記憶され、入力部１６の複数の鍵のいずれかの押鍵により指定された音高に対応する速度で繰り返し読み出すことにより、楽音波形が生成、出力される。
【００１９】
ドライブ２０には、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリ等よりなる、リムーバブルメディア３１が適宜装着される。ドライブ２０によってリムーバブルメディア３１から読み出されたプログラムは、必要に応じて記憶部１８にインストールされる。また、リムーバブルメディア３１は、記憶部１８に記憶されている各種データも、記憶部１８と同様に記憶することができる。
【００２０】
次に、図２を参照して、本実施形態に係るタッチ検出装置５０のハードウェアの構成について説明する。
図２は、本発明の一実施形態に係るタッチ検出装置５０のハードウェア構成を示すブロック図である。
タッチ検出装置５０は、制御回路としてのコントローラ５１と、イベントフラグセット回路５２（以下、「ＥＶフラグセット回路５２」とも呼ぶ）と、ステータス増加回路５３と、第１カウンタ５４と、第２カウンタ５５と、カウンタメモリ５６と、到達時間メモリ５７と、比較回路５８と、反転回路５９と、ベロシティレジスタ６１と、ノートナンバレジスタ６２と、を備える。
【００２１】
コントローラ５１は、鍵スイッチマトリクス１６０の第１接点１６０ａ及び第２接点１６０ｂと接続され、第１接点オン信号、第２接点オン信号、第１接点オフ信号、及び第２接点オフ信号を受信する。
また、コントローラ５１は、タッチ検出装置５０におけるその他のハードウェアを制御し、ＣＰＵ１１に対して、ノートオンイベントあるいはノートオフイベントを生成してバス１４を介して送信する。
【００２２】
本実施形態において、「ノートオンイベント」は、入力部１６の鍵が押鍵された場合におけるその鍵のノートナンバ、及び鍵の押下の強さを示すイニシャルタッチ情報としてのベロシティ値を含む。
なお、ＣＰＵ１１は、ノートオンイベントを受信したときには、音源４１と協働して、当該イベントに含まれるノートナンバに対応する楽音を、ベロシティに応じた強さで発音する制御を実行する。
本実施形態において、「ノートオンイベント」は、入力部１６の鍵が離鍵された場合におけるその鍵のノートナンバを少なくとも含む。
【００２３】
また、コントローラ５１は、鍵スイッチマトリクス１６０にコモン側スイッチ入力信号（ＫＣ）を送信し、鍵スイッチマトリクス１６０から、第１接点オン信号、第２接点オン信号、第１接点オフ信号、又は第２接点オフ信号を受信する。
【００２４】
また、コントローラ５１は、イベントフラグ（以下、「ＥＶ」とも呼ぶ）及びステータスフラグ（以下、「ＳＴ」とも呼ぶ）に応じて、タッチ検出装置５０を構成する上記回路や加算器を制御する。
本実施形態において、ＥＶの値として、“０”又は“１”を取り得る。
ＥＶの値“０”は、何れの鍵も押鍵又は離鍵されていない状態であることを示す。
ＥＶの値“１”は、何れかの鍵が押鍵又は離鍵されている状態であることを示す。即ち、ＥＶの値が“１”である場合には、ノートオンイベント、又はノートオフイベントが発生したことを示す。
【００２５】
また、本実施形態において、ＳＴの値として、“０”、“１”、“２”、“３”、“４”、“５”、“６”又は“７”を取り得る。ＳＴは、鍵盤を測定する状態遷移を示す。
ＳＴの値“０”は、押鍵待ち状態であることを示す。
ＳＴの値“１”は、後述する押鍵バイアス時間をカウント中であることを示す。
ＳＴの値“２”は、後述する押鍵ベロシティ測定値をカウント中であることを示す。
ＳＴの値“３”は、後述する押鍵補正時間用カウンタ値をカウント中であることを示す。
ＳＴの値“４”は、離鍵待ちの状態であることを示す。
ＳＴの値“５”は、後述する離鍵バイアス時間をカウント中であることを示す。
ＳＴの値“６”は、後述する離鍵ベロシティ測定値をカウント中であることを示す。
ＳＴの値“７”は、後述する離鍵補正時間用カウンタ値をカウント中であることを示す。
【００２６】
コントローラ５１は、これらＥＶ及びＳＴの値を、カウンタメモリ５６に記憶し、適宜参照するとともに、ＥＶフラグセット回路５２及びステータス増加回路５３を制御して更新させる。
【００２７】
図３は、本実施形態に係るカウンタメモリ５６のフォーマットを説明する図である。
カウンタメモリ５６は、複数の鍵の夫々対応した複数のアドレス、具体的には本実施形態では８８個の鍵の夫々に対応した８８個のアドレス（同図中左方に記載の０〜８７のアドレス）を有する。各アドレスには、対応付けられた鍵におけるＥＶの値、ＳＴの値、ベロシティカウンタ値、押鍵補正時間用カウンタ値、及び離鍵補正時間用カウンタ値が記憶される。詳しくは後述するが、ベロシティカウンタ値（以下、「ＶＣ」とも呼ぶ）、押鍵バイアス時間及び離鍵バイアス時間は第１カウンタ５４により加算され、押鍵補正時間用カウンタ値及び離鍵補正時間用カウンタ値（以下、「ＴＣ」とも呼ぶ）は第２カウンタ５５により加算される。
また、各アドレスには、鍵に対応付けられたノートナンバ（図示せず）が記憶されている。
【００２８】
図２に戻り、ＥＶフラグセット回路５２は、コントローラ５１の制御により、カウンタメモリ５６に記憶されたＥＶの値を更新する。
ステータス増加回路５３は、コントローラ５１の制御により、カウンタメモリ５６に記憶されたＳＴの値を更新する。
【００２９】
第１カウンタ５４は、コントローラ５１の制御により、第１接点１６０ａがオンされてから第２接点１６０ｂがオンされるまでの時間を、カウンタメモリ５６のＶＣにおいて加算する。また、第１カウンタ５４は、コントローラ５１の制御により、カウンタメモリ５６のＶＣをリセットする。
ここで、カウンタメモリ５６のＶＣは、ＳＴの値“１”のときは押鍵バイアス時間を示し、ＳＴの値“２”のときは押鍵ベロシティ測定値を示す。即ち、押鍵ベロシティ測定値は、第１接点１６０ａがオンされてから第２接点１６０ｂがオンされるまでの時間から、予め設定された押鍵バイアス時間が除外された時間を示す値である。
一方、カウンタメモリ５６のＶＣは、ＳＴの値“３”のときは離鍵バイアス時間を示し、ＳＴの値“４”のときは離鍵ベロシティ測定値を示す。即ち、離鍵ベロシティ測定値は、第２接点１６０ｂがオフされてから第１接点１６０ａがオフされるまでの時間から、予め設定された離鍵バイアス時間が除外された時間を示す値である。
【００３０】
第２カウンタ５５は、コントローラ５１の制御により、第１カウンタ５４による加算が完了してからの時間を、カウンタメモリ５６のＴＣにおいて加算する。また、第２カウンタ５５は、コントローラ５１の制御により、カウンタメモリ５６のＴＣをリセットする。
【００３１】
到達時間メモリ５７は、第１到達時間メモリ５７ａと第２到達時間メモリ５７ｂとを含んで構成される。
第１到達時間メモリ５７ａは、ＶＣの押鍵ベロシティ測定値に応じて、予め設定された第２カウンタ５５による加算（カウント）終了時間を示す押鍵到達時間を記憶する。
第２到達時間メモリ５７ｂは、ＶＣの離鍵ベロシティ測定値に応じて、予め設定された第２カウンタ５５による加算（カウント）終了時間を示す離鍵到達時間を記憶する。
コントローラ５１は、第１カウンタ５４により第１接点１６０ａがオンされてから第２接点１６０ｂがオンされるまでカウントされた時間に応じて、押鍵タイミングを示す押鍵到達時間を予測する。また、コントローラ５１は、第１カウンタ５４により第２接点１６０ｂがオフされてから第１接点１６０ａがオフされるまでカウントされた時間に応じて、後述のダンパーオン到達時間を予測する。
コントローラ５１は、第２到達時間メモリ５７ｂに記憶されている離鍵到達時間を一定時間として設定することができる。
比較回路５８は、第１到達時間メモリ５７ａに記憶された押鍵到達時間とＴＣとを比較し、押鍵到達時間とＴＣとが一致したときに、押鍵一致信号をコントローラ５１に送信する。
また、比較回路５８は、第２到達時間メモリ５７ｂに記憶された離鍵到達時間とＴＣとを比較し、離鍵到達時間とＴＣとが一致したときに、離鍵一致信号をコントローラ５１に送信する。
反転回路５９は、カウンタメモリ５６に記憶されたＶＣ（押鍵ベロシティ測定値、又は離鍵ベロシティ測定値）を読み込み、反転処理によりベロシティ値を算出し、算出したベロシティ値をベロシティレジスタ６１にセット（格納）する。
【００３２】
次に、本実施形態に係るタッチ検出装置５０を構成するハードウェアにおけるステータスフラグ（ＳＴ）の推移について説明するが、先ず、その前提として、本実施形態の電子楽器１のモードについて説明する。
本実施形態では、電子ピアノを例としている関係から従来のノートオフイベントを、ダンパーオンイベントとしている。ダンパーオンとは、アコースティックピアノのダンパーの機能に模して、ダンパーがピアノの弦の振動を止めて消音させるためにダンパーペダルを踏んだのと等価なことをいう。即ち、ダンパーオンイベントは、後述のダンパーオン到達時に発生するノートオフイベント（消音イベント）である。
これらのイベントの関係を規定する本実施形態の電子楽器１のモードとしては、「ｍｏｄｅ０（ｍｕｌｔｉ  ａｓｓｉｇｎ  ｍｏｄｅ）」、「ｍｏｄｅ１（ｓｉｎｇｌｅ  ａｓｓｉｇｎ  ｍｏｄｅ）」、「ｎｏｔｅ  ｏｆｆ  ｅｎａｂｌｅ」、「ｎｏｔｅ  ｏｎ  ２  ｅｎａｂｌｅ」を少なくとも含む複数のモードが設けられている。コントローラ５１は、複数のモードのうち何れかのモードに切り替える制御を実行する。
【００３３】
「ｍｏｄｅ０」は、ピアノ等のように、同時に複数のノートオンを発生させることが可能なモードである。モードが「ｍｏｄｅ０」である場合には、途中でノートオフを挟まず、複数連続してノートオンを発生させることができ、ノートオフイベント発生により発生した同一ノートの発音をすべて消音させることができる。これにより、アコースティックピアノの様に、ダンパーペダルがオンされるまで複数の押鍵（打鍵）が可能となる。
「ｍｏｄｅ１」は、オルガン等、同一の音高で、ノートオン及びノートオフを交互に発生させるモードである。モードが「ｍｏｄｅ１」である場合には、アコースティックピアノ以外のオルガン等、複数の音源ジェネレータを同一音高に対しアサインしない場合、ノートオン及びノートオフを必ず交互に発生することができる。
「ｎｏｔｅ  ｏｆｆ  ｅｎａｂｌｅ」は、ノートオンイベント及びノートオフイベントが交互に発生しないが、情報として、ノートオフを発生させることもできるモードである。即ち、モードが「ｍｏｄｅ０」である場合には、ノートオンイベント及びノートオフイベントは交互に発生しないが、モードが「ｎｏｔｅ  ｏｆｆ  ｅｎａｂｌｅ」である場合には、ノートオフを発生させることもできる。例えば、モードが「ｎｏｔｅ  ｏｆｆ  ｅｎａｂｌｅ」である場合には、ハープシコードの２種類のフィートや、ハモンドオルガンの別フィート音を異なるタイミングで発生させることができる。この異なるタイミング差は、ベロシティにより変化するので、実物を模したタイミングでの消音が可能となる。
「ｎｏｔｅ  ｏｎ  ２  ｅｎａｂｌｅ」は、ストローク位置が下限ストローク到達前の第２接点１６０ｂの通過時にノートオンを発生させるモードである。例えば、モードが「ｎｏｔｅ  ｏｎ  ２  ｅｎａｂｌｅ」である場合には、ハープシコードの２種類のフィートや、ハモンドオルガンの別フィート音を異なるタイミングで発生させることができる。
これら複数のモードの変更は、後述で示すように、コントローラ５１の制御に基づき、ステータスの移動先の変更、またイベントフラグに基づき実現される。
【００３４】
次に、図４を参照して、ステータスフラグ（ＳＴ）の推移について説明する。
図４は、本実施形態に係るタッチ検出装置５０を構成するハードウェアにおけるステータスフラグ（ＳＴ）の推移を説明する図である。
【００３５】
まず、「押鍵待ち」の状態（図４の「状態」の項目参照）においては、コントローラ５１は、ステータス増加回路５３にＳＴの値“０”をセットさせる（図４の「ＳＴ」の項目参照）。そして、演奏者による鍵の押鍵操作が開始される。このとき、カウンタメモリ５６に記憶されたＥＶの値は、“０”である。
さらに押鍵され、第１接点１６０ａがオンされると、鍵スイッチマトリクス１６０は、第１接点オン信号をコントローラ５１に送信する。
【００３６】
ここで、コントローラ５１は、第１接点オン信号を受信すると、当該第１接点オン信号が送信された鍵を特定し、カウンタメモリ５６（図３参照）において、特定した鍵のアドレスに記憶された各種値を更新させる制御を実行する。また、コントローラ５１は、特定した鍵のノートナンバをノートナンバレジスタ６２にセット（格納）する。
【００３７】
ここで、図４の「ステータス進行条件」の項目は、現在のステータスフラグ（ＳＴ）を進行させる条件を示し、「進行動作」の項目は、次に進行させるステータスフラグ（ＳＴ）を示している。
例えば、現在のＳＴの値“０”における「ステータス進行条件」は、第１接点１６０ａがオンされることであり、「進行動作」は「ｔｏ  ＳＴ１」、つまり、ＳＴの値“０”を“１”に進めることである。
そこで、コントローラ５１は、第１接点オン信号を受信すると、ステータス増加回路５３にＳＴの値“１”をセットさせ、第１カウンタ５４にＶＣをリセットさせてからカウントを開始させＶＣを加算させる。
これにより、「押鍵待ち」から「押鍵バイアス時間カウント中」の状態に移行する。つまり、この状態におけるカウンタメモリ５６のＶＣは、押鍵バイアス時間を示す。
ここで、図４の「中止動作進行  条件喪失の場合」の項目は、「ステータス進行条件」が満たされなくなった（喪失した）場合に進行させるステータスフラグ（ＳＴ）を示している。例えば、「押鍵バイアス時間カウント中」の状態において、何らかのエラーにより「押鍵バイアス時間に到達」しない場合、ＳＴの値は“１”から“０”に変更される。即ち、「押鍵待ち」の状態に戻ることになる。
【００３８】
一方で、コントローラ５１は、カウンタメモリ５６におけるＶＣの値が、予め所定値に設定された押鍵バイアス時間と一致したとき、即ち、ＶＣが押鍵バイアス時間に到達した場合には、「押鍵バイアス時間カウント中」の状態における「ステータス進行条件」を満たしたことになるので、ステータス増加回路５３にＳＴの値“２”をセットさせ、第１カウンタ５４にＶＣをリセットさせてからカウントを開始させＶＣを加算させる。
これにより、「押鍵バイアス時間カウント中」から「押鍵ベロシティ測定値カウント中」の状態に移行する。つまり、この状態におけるＶＣは、押鍵ベロシティ測定値を示す。
また、例えば、「押鍵ベロシティ測定値カウント中」の状態において、何らかのエラーにより「押鍵ベロシティ測定値に到達」しない場合、ＳＴの値は“２”から“０”に変更される。即ち、「押鍵待ち」の状態に戻ることになる。
【００３９】
さらに押鍵され、第２接点１６０ｂがオンされると、鍵スイッチマトリクス１６０は、第２接点オン信号をコントローラ５１に送信する。
そして、コントローラ５１は、第２接点オン信号を受信すると、「押鍵ベロシティ測定値カウント中」の状態における「ステータス進行条件」を満たしたことになるので、ステータス増加回路５３にＳＴの値“３”をセットさせ、第１カウンタ５４にＶＣのカウントを終了させ、第２カウンタ５５にＴＣをリセットさせてからカウントを開始させＴＣを加算させる。
ここで、図４の「条件入力があった場合の状態」の項目は、所定の条件の入力を契機として発生する状態を示している。したがって、「押鍵ベロシティ測定値カウント中」の状態において、モードが「ｎｏｔｅ  ｏｎ  ２  ｅｎａｂｌｅ」である場合には、コントローラ５１は、第２接点オン信号を受信すると、押鍵を完了し、ノートオンイベントを発生させる。これにより、「押鍵ベロシティ測定値カウント中」から「押鍵補正時間カウント中」の状態に移行する。つまり、この状態におけるＴＣは、押鍵補正時間を示す。
また、例えば、「押鍵補正時間カウント中」の状態において、何らかのエラーにより「押鍵補正時間に到達」しない場合、ＳＴの値は“３”から“０”に変更される。即ち、「押鍵待ち」の状態に戻ることになる。
また、この間において、反転回路５９は、カウンタメモリ５６に記憶されたＶＣ（押鍵ベロシティ測定値）を読み込み、反転処理によりベロシティ値を算出し、算出したベロシティ値をベロシティレジスタ６１にセット（格納）する。そして、コントローラ５１は、割り込み信号、ノートナンバレジスタ６２にセット（格納）されたノートナンバ及びベロシティレジスタ６１にセット（格納）されたベロシティ値を含む発音情報を生成する。
【００４０】
次に、比較回路５８は、第１到達時間メモリ５７ａに予め目標すべき値として所定値に設定された押鍵到達時間とＴＣとを比較し、押鍵到達時間とＴＣとが一致したとき、即ち、ＴＣ（押鍵補正時間）が押鍵到達時間に到達した場合には、「押鍵補正時間カウント中」の状態における「ステータス進行条件」を満たしたことになるので、ＥＶフラグセット回路５２にＥＶの値“１”をセットさせ、ステータス増加回路５３にＳＴの値“４”をセットさせ、押鍵一致信号をコントローラ５１に送信する。コントローラ５１は、押鍵一致信号を受信すると、発音制御部としてのＣＰＵ１１に、ベロシティ値を含む発音情報を送信する。即ち、「押鍵補正時間カウント中」の状態において、コントローラ５１は、押鍵到達時間に到達すると、押鍵を完了し、ノートオンイベントを発生させる。これにより、「押鍵補正時間カウント中」から「離鍵待ち」の状態に移行する。そして、ＣＰＵ１１は、コントローラ５１から送信された発音情報に基づく音を発音する発音処理を実行する。
【００４１】
続いて、演奏者による鍵の離鍵操作が開始される。このとき、カウンタメモリ５６に記憶されたＥＶの値は、“１”である。
さらに離鍵され、第２接点１６０ｂがオフされると、鍵スイッチマトリクス１６０は、第２接点オフ信号をコントローラ５１に送信する。
【００４２】
ここで、コントローラ５１は、第２接点オフ信号を受信すると、当該第２接点オフ信号が送信された鍵を特定し、カウンタメモリ５６（図３参照）において、特定した鍵のアドレスに記憶された各種値を更新させる制御を実行する。また、コントローラ５１は、特定した鍵のノートナンバをノートナンバレジスタ６２にセット（格納）する。
【００４３】
そして、コントローラ５１は、第２接点オフ信号を受信すると、「離鍵待ち」の状態における「ステータス進行条件」を満たしたことになるので、ＥＶフラグセット回路５２にＥＶの値“５”をセットさせ、ステータス増加回路５３にＳＴの値“５”をセットさせ、第１カウンタ５４にＶＣをリセットさせてからカウントを開始させＶＣを加算させる。これにより、「離鍵待ち」から「離鍵バイアス時間カウント中」の状態に移行する。つまり、この状態におけるカウンタメモリ５６のＶＣは、離鍵バイアス時間を示す。ここで、例えば、「離鍵バイアス時間カウント中」の状態において、何らかのエラーにより「離鍵バイアス時間に到達」しない場合、ＳＴの値は“５”から“４”に変更される。即ち、「離鍵待ち」の状態に戻ることになる。
【００４４】
一方で、コントローラ５１は、カウンタメモリ５６におけるＶＣの値が、予め所定値に設定された離鍵バイアス時間と一致したとき、即ち、ＶＣの値が離鍵バイアス時間に到達した場合には、「離鍵バイアス時間カウント中」の状態における「ステータス進行条件」を満たしたことになるので、ステータス増加回路５３にＳＴの値“６”をセットさせ、第１カウンタ５４にＶＣをリセットさせてからカウントを開始させＶＣを加算させる。即ち、「離鍵バイアス時間カウント中」の状態において、モードが「ｎｏｔｅ  ｏｆｆ  ｅｎａｂｌｅ」である場合には、コントローラ５１は、離鍵バイアス時間に到達すると、離鍵を完了し、ノートオフイベントを発生させる。これにより、「離鍵バイアス時間カウント中」から「離鍵ベロシティ測定値カウント中」の状態に移行する。つまり、この状態におけるＶＣは、離鍵ベロシティ測定値を示す。
ここで、例えば、「離鍵ベロシティ測定値カウント中」の状態において、何らかのエラーにより「離鍵ベロシティ測定値に到達」しない場合において、モードが「ｍｏｄｅ０」である場合には、ＳＴの値は“６”から“１”に変更される。即ち、「押鍵バイアス時間カウント中」の状態に戻り、再びノートオン計測状態となる。一方で、モードが「ｍｏｄｅ１」である場合には、ＳＴの値は“６”から“４”に変更される。即ち、再びノートオン計測状態に移行させることで、ノートオンの発生は行わず、離鍵中止扱いとして離鍵待ち状態となる。
【００４５】
さらに離鍵され、第１接点１６０ａがオフされると、鍵スイッチマトリクス１６０は、第１接点オフ信号をコントローラ５１に送信する。このとき、コントローラ５１は、モードが「ｎｏｔｅ  ｏｆｆ  ｅｎａｂｌｅ」の場合には、ノートオフイベントを発生させる。
そして、コントローラ５１は、第１接点オフ信号を受信すると、「離鍵ベロシティ測定値カウント中」の状態における「ステータス進行条件」を満たしたことになるので、ＥＶフラグセット回路５２にＥＶの値“１”をセットさせ、ステータス増加回路５３にＳＴの値“７”をセットさせ、第１カウンタ５４にＶＣのカウントを終了させ、第２カウンタ５５にＴＣをリセットさせてからカウントを開始させＴＣを加算させる。これにより、「離鍵ベロシティ測定値カウント中」から「離鍵補正時間カウント中」の状態に移行する。つまり、この状態におけるＴＣは、離鍵補正時間を示す。
また、「離鍵補正時間カウント中」の状態において、何らかのエラーにより「離鍵補正時間に到達」しない場合において、モードが「ｍｏｄｅ０」である場合には、ＳＴの値は“７”から“１”に変更される。即ち、「押鍵バイアス時間カウント中」の状態に戻り、再びノートオン計測状態となる。一方で、モードが「ｍｏｄｅ１」である場合には、ＳＴの値は“７”から“４”に変更される。即ち、再びノートオン計測状態に移行させることで、ノートオンの発生は行わず、離鍵中止扱いとして離鍵待ち状態となる。
また、この間において、反転回路５９は、カウンタメモリ５６に記憶されたＶＣ（離鍵ベロシティ測定値）を読み込み、反転処理によりベロシティ値を算出し、算出したベロシティ値をベロシティレジスタ６１にセット（格納）する。そして、コントローラ５１は、割り込み信号、ノートナンバレジスタ６２にセット（格納）されたノートナンバ及びベロシティレジスタ６１にセット（格納）されたベロシティ値を含むノートオフイベントを生成する。
【００４６】
次に、比較回路５８は、第１到達時間メモリ５７ａに予め目標すべき値として所定値に設定された離鍵到達時間とＴＣとを比較し、離鍵到達時間とＴＣとが一致したとき、即ち、ＴＣ（離鍵補正時間）が離鍵到達時間に到達した場合には、「離鍵補正時間カウント中」の状態における「ステータス進行条件」を満たしたことになるので、ＥＶフラグセット回路５２にＥＶの値“１”をセットさせ、ステータス増加回路５３にＳＴの値“０”をセットさせ、離鍵一致信号をコントローラ５１に送信する。コントローラ５１は、離鍵一致信号を受信すると、消音制御部としてのＣＰＵ１１に、ベロシティ値を含むノートオフイベントを送信する。即ち、「離鍵補正時間カウント中」の状態において、コントローラ５１は、離鍵到達時間に到達すると、離鍵を完了し、ノートオフイベントであるダンパーオンイベントを発生させる。これにより、「離鍵補正時間カウント中」から「押鍵待ち」の状態に移行する。そして、ＣＰＵ１１は、コントローラ５１から送信されたノートオフイベントに基づく音を消音する消音処理を実行する。
【００４７】
次に、比較回路５８は、第２到達時間メモリ５７ｂに予め目標すべき値として設定された離鍵到達時間とＴＣとを比較し、離鍵到達時間とＴＣとが一致したとき、即ち、ＴＣ（離鍵補正時間）が離鍵到達時間に到達した場合に、離鍵一致信号をコントローラ５１に送信する。コントローラ５１は、離鍵一致信号を受信すると、消音制御部としてのＣＰＵ１１に、ベロシティ値を含むノートオフイベントを送信する。
そして、ＣＰＵ１１は、コントローラ５１から送信されたノートオフイベントに基づく音を消音する消音処理を実行する。
なお、以上のタッチ検出装置５０が実行する一連の処理を、以下、「タッチ検出動作処理」と呼ぶ。
【００４８】
以下、図５乃至図１０を参照して、タッチ検出装置５０によるタッチ検出動作処理が実行された場合における、押鍵により発音されてから離鍵により消音されるまでのタイミングについて説明する。
より具体的には、先ず本実施形態の理解を容易なものとすべく、図５を参照して、３接点の従来のタッチ検出装置（図示せず）によるタッチ検出動作処理が実行された場合における、押鍵により発音されてから離鍵により消音されるまでのタイミングを説明する。
次に、本発明人により発明された、本実施形態の基礎となるタッチ検出装置（図示せず）によるタッチ検出動作処理が実行された場合における、押鍵により発音されてから離鍵により消音されるまでのタイミングを説明する。
その後、図７乃至図１０を参照して、本実施形態のタッチ検出装置５０によるタッチ検出動作処理が実行された場合における、押鍵により発音されてから離鍵により消音されるまでのタイミングを説明する。
【００４９】
図５は、ストローク位置の異なる３つの接点によりベロシティ情報の検出を行う従来の電子ピアノに設けられたタッチ検出装置（図示せず）を用いた場合の、押鍵により発音されてから離鍵により消音されるまでのタイミングを説明する図である。
説明の便宜上、これら３つの接点をストローク位置の１番浅い位置から第１接点、第２接点、第３接点と呼ぶ。
図５の従来のタッチ検出装置は、押鍵時には、第２接点と第３接点の２つの接点がオンされる時間の差（ｔａ２−ｔａ１）を計測する。そして、図５の従来のタッチ検出装置は、計測した時間の差（ｔａ２−ｔａ１）に基づいて、下限ストローク位置に到達する時間（押鍵到達時間）ｔａ３を予測し、予測時間ｔａ３においてノートオンイベントを発生する。
そして、離鍵時には、図５の従来のタッチ検出装置は、第１接点がオフされるタイミングの時間ｔａ４でノートオフ（本実施形態のダンパーオンと等価）イベントを発生する。
このような図５の従来のタッチ検出装置では、３つの接点によりベロシティ情報が検出されるので、１鍵盤あたり接点を２つから３つへと追加して設置しなければならず、接点、配線、接点マトリクス用のダイオード等、多くの追加部品が必要となる。
【００５０】
そこで、本発明人は、接点としては２つのみを用い、連打性を実現するためのタッチ検出装置を発明した。ここで、説明の便宜上、これら２つの接点は、ストローク位置の１番浅い位置から第１接点、第２接点と呼ぶ。
先ず、本発明人は、本実施形態のタッチ検出装置５０の基礎となるものとして、図６に示すように、従来の２接点方式よりも深いストローク位置に第１接点を設置するようにした、タッチ検出装置（図示せず）を発明した。
図６は、本発明人により発明された、ストローク位置の異なる２つの接点によりベロシティ情報の検出を行うタッチ検出装置（図示せず）を用いた場合の、押鍵により発音されてから離鍵により消音されるまでのタイミングを説明する図である。
図６に示されるように、押鍵時には、第１接点及び２接点の順でオンされた時間の差（ｔｂ２−ｔｂ１）を計測する。そして、計測した時間の差（ｔｂ２−ｔｂ１）に基づいて、下限ストローク位置に到達する時間（押鍵到達時間）ｔｂ３を予測し、予測時間ｔｂ３においてノートオンイベントを発生する。
また、例えばモードが「ｎｏｔｅ  ｏｆｆ  ｅｎａｂｌｅ」の場合、図６のタッチ検出装置は、離鍵時において、第２接点及び第１接点の順でオフされた時間の差（ｔｂ５−ｔｂ４）に基づきオフベロシティ値を計測するとともに、ノートオフイベントを発生している。
この図６のような場合では、ノートオフイベントが発生される際のストローク位置が深くなる。その結果、離鍵タイミングが早すぎたり、また、予期しないような浅い位置で離鍵が発生したりするおそれが生ずる。
そこで、本発明人は、このようなおそれを防止すべく、本実施形態のタッチ検出装置５０を発明した。即ち、本実施形態のタッチ検出装置５０は、図４に示すタイミングで、タッチ検出装置５０の各ハードウェアを動作させることで、図７乃至１０に示すようなタイミングで発音又は消音させるようにした。
【００５１】
図７乃至１０は、本発明の実施形態に係るタッチ検出装置５０を用いた場合の、押鍵により発音されてから離鍵により消音されるまでのタイミングを説明する図である。本実施形態に係るタッチ検出装置５０は、図５の実施形態に係る３つの接点を用いた場合と同様なイベント発生を、２つの接点であって、第１接点を従来と同様の位置で実現することを目的としている。
図７乃至１０の本実施形態においては、押鍵により第１接点１６０ａがオンされると、押鍵バイアス時間が加算され、次に押鍵ベロシティ測定値が加算される。そして、さらに押鍵され第２接点１６０ｂがオンされると、押鍵ベロシティ測定値に応じた押鍵補正時間が加算され、この押鍵補正時間経過後に発音制御部において発音処理が実行される。これにより、鍵が押し切られたタイミングで発音される。さらに、離鍵により第２接点１６０ｂがオフされると、離鍵バイアス時間が加算され、次に離鍵ベロシティ測定値が加算される。そして、さらに離鍵され第１接点１６０ａがオフされると、離鍵ベロシティ測定値に応じた離鍵補正時間が加算され、この離鍵補正時間経過後に消音制御部において消音処理が実行される。
【００５２】
図７の例では、タッチ検出装置５０は、ノートオンの際の押鍵ベロシティ値から、押鍵到達時間（下限ストロークの位置に到達する時間）を推測する方法と同様に、ノートオフの際の離鍵ベロシティ値から、ダンパーオンに到達する時間（以下、「ダンパーオン到達時間」と呼ぶ）を予測（推定）する。
詳細には、タッチ検出装置５０は、離鍵時には、第２接点１６０ｂ及び第１接点１６０ａの順でオフされた時間の差（ｔｃ１−ｔｃ２）から、ダンパーオン到達時間ｔｃ３を推定（計測）する。その後、ダンパーオン時間ｔｄ３の経過後にダンパーオンイベント、つまりノートオフイベントを発生する制御を行うことができる。
この際の、ダンパーオン到達時間は、従来のタッチ検出装置における第１接点の位置にストロークが到達する時間と同一と捉えられる。
このようにして、２つの接点のみで、３つの接点によりベロシティ情報を検出する電子ピアノと同様な連打性能と音の重なりを実現することができる。
なお、図７の例の押鍵時については、タッチ検出装置５０は、第１接点１６０ａ及び第２接点１６０ｂの順でオンされた時間の差（ｔｃ５−ｔｃ４）から、下限ストローク位置に到達する時間（押鍵到達時間）ｔｃ６を推定（計測）し、推定（計測）した時間ｔｃ６においてノートオンイベントを発生する。
【００５３】
図８は、本実施形態のタッチ検出装置５０において、「ｎｏｔｅ  ｏｎ  ２  ｅｎａｂｌｅ」又は「ｎｏｔｅ  ｏｆｆ  ｅｎａｂｌｅ」の２つのモードを双方アサートした場合における、押鍵により発音されてから離鍵により消音されるまでのタイミングを説明する図である。
詳細には、図８の例では、タッチ検出装置５０は、離鍵時には、第２接点１６０ｂ及び第１接点１６０ａの順でオフされた時間の差（ｔｄ２−ｔｄ１）から、ダンパーオン時間ｔｄ３を推定（計測）する。この際、図８の例では図７の例と同様に、タッチ検出装置５０は、第１接点１６０ａのオフの時間ｔｄ２に基づいてすぐにノートオフイベント１を発生し、その後、ダンパーオン時間ｔｄ３の経過後にダンパーオンイベント、つまりノートオフイベント２を発生する制御を行うことができる。
一方、図８の例の押鍵時については、タッチ検出装置５０は、第１接点１６０ａ及び第２接点１６０ｂの順でオフされた時間の差（ｔｄ５−ｔｄ４）から、押鍵タイミングを示すダンパー位置に到達する時間（押鍵到達時間）ｔｄ６を推定（計測）する。
この際、タッチ検出装置５０は、第２接点１６０ｂのオンの時間ｔｄ５に基づいてすぐにノートオンイベントを発生し、さらに、押鍵到達時間ｔｄ６の経過後にノートオンイベントを発生する制御を行うことができる。
これにより、本実施形態に係るタッチ検出装置５０は、夫々異なる音源（例えば、第１ジェネレータ及び第２ジェネレータ）によりハープシコードの２種類のフィートや、ハモンドオルガン等の別フィート音を別タイミングに発生させることができる。この異なるタイミング差は、ベロシティにより変化するので、実物を模したタイミングでの消音が可能となる。このようにして、ハープシコードやハモンドオルガン等、音の発生タイミングが複数ある楽器の音を再現することができる。
【００５４】
図９は、本実施形態のタッチ検出装置５０において、モードが「ｍｏｄｅ０」である場合における、押鍵により発音されてから離鍵により消音されるまでのタイミングを説明する図である。
図９の例では、連打の様子と、ピアノ音を制御する場合の音源（第１ジェネレータ、第２ジェネレータ、第３ジェネレータ）のアサイン状況が示されている。
図９の例では、タッチ検出装置５０において、第１接点がストロークの深い位置に設置されており、これにより、深い位置でのストローク振幅の少ない連打、トリルに対応可能となっている。
詳細には、タッチ検出装置５０は、離鍵時には、第２接点１６０ｂ及び第１接点１６０ａの順でオフされた時間の差（ｔｅ２−ｔｅ１）から、ダンパーオン到達時間ｔｄ４を推定（計測）する。
この際、第１接点１６０ａが再びオンされた時間ｔｅ３が、ダンパーオン到達時間ｔｄ４よりも早い場合には、タッチ検出装置５０は、ダンパーオンイベント（ノートオフイベント）を発生せずに、第１接点１６０ａのオンの時間ｔｅ３に基づいてすぐにノートオンイベントを発生する制御を行うことにより、別の音源（例えば、第２ジェネレータ）により、異なる音を発生させることができる。
このように、図９の例では、タッチ検出装置５０は、ダンパーオン到達時間ｔｄ４内に鍵盤が再び第１接点１６０ａをオンするといった連打がなされた場合、即ち、第１接点１６０ａが再びオンされた時間ｔｅ３が、ダンパーオン到達時間ｔｄ４よりも早い場合には、ピアノにおいて弦のダンパーが解放されたまま打弦を繰り返されるのと同様に、音源ジェネレータを複数アサインすることができる。
これに対し、ダンパーオン到達時間ｔｄ８内に、第１接点１６０ａが再びオンされなかった場合（図９中一番右方の場合）には、タッチ検出装置５０は、ダンパーオン到達時間ｔｄ８においてダンパーオンイベント（ノートオフイベント）を発生する制御を行う。これにより、３つのジェネレータがオフになる。
【００５５】
図１０は、本実施形態のタッチ検出装置５０において、モードが「ｍｏｄｅ１」である場合における、押鍵により発音されてから離鍵により消音されるまでのタイミングを説明する図である。
図１０では、電子楽器１を、ピアノ以外の楽器（単一鍵盤に複数のジェネレータをアサインしない場合）に模した例が示されている。
詳細には、タッチ検出装置５０は、離鍵時には、第２接点１６０ｂ及び第１接点１６０ａの順でオフされた時間の差（ｔｆ２−ｔｆ１）から、仮想第１接点に到達する時間（以下、「仮想ダンパーオン時間」と呼ぶ）ｔｆ４を推定（計測）する。
この際、第１接点１６０ａが再びオンされた時間ｔｆ３が、仮想ダンパーオン時間ｔｆ４よりも早い場合には、タッチ検出装置５０は、継続して音源（第１ジェネレータ）により、同一の音を発生させることができる。
これに対し、第１接点１６０ａが再びオンされた時間ｔｆ８が、仮想ダンパーオン時間ｔｆ７よりも遅い場合には、タッチ検出装置５０は、仮想ダンパーオン時間ｔｆ７においてダンパーオフイベント（ノートオフイベント）を発生する制御を行う。
このようにすることで、本実施形態の検出装置５０は、連打を優先して第１接点を深くすると離鍵タイミングが早過ぎる、あるいは予期しない浅い位置での離鍵が発生するという弊害を防ぐことができる。
【００５６】
次に、図１１から図１９を参照して、本実施形態に係るタッチ検出装置５０を構成するハードウェアのタッチ検出動作処理について説明する。
図１１乃至図１９は、本実施形態に係るタッチ検出装置５０のタッチ検出動作処理の流れを説明するフローチャートである。
【００５７】
図１１に示すように、ステップＳ１において、コントローラ５１は、カウンタメモリ５６のＥＶの値が“１”であるか否かを判定する。ＥＶの値が“１”である場合にはステップＳ１においてＹＥＳであると判定され、処理はステップＳ２に移る。これに対し、ＥＶの値が“１”でない場合には、ステップＳ１においてＮＯであると判定され、処理はステップＳ５に移る。ステップＳ５以降の処理については、後述する。
【００５８】
ステップＳ２において、反転回路５９は、カウンタメモリ５６に記憶されたＶＣ（押鍵ベロシティ測定値）を読み込み、反転処理によりベロシティ値を算出し、算出したベロシティ値をベロシティレジスタ６１にセット（格納）する。
【００５９】
ステップＳ３において、コントローラ５１は、第１接点オン信号又は第２接点オン信号を受信した鍵のノートナンバをノートナンバレジスタ６２にセット（格納）する。
ステップＳ４において、ＥＶフラグセット回路５２は、ＥＶに“０”をセットすることにより、カウンタメモリ５６に記憶されたＥＶの値を“０”に更新する。この処理が終了すると、タッチ検出動作処理は終了となる。
【００６０】
ステップＳ５において、コントローラ５１は、カウンタメモリ５６のＳＴの値が“０”であるか否かを判定する。ＳＴの値が“０”である場合には、ステップＳ５においてＹＥＳであると判定され、処理はステップＳ６に移る。これに対し、ＳＴの値が“０”でない場合には、ステップＳ５においてＮＯであると判定され、処理はステップＳ１０に移る。ステップＳ１０以降の処理については、後述する。
【００６１】
ステップＳ６において、コントローラ５１は、第１接点オン信号を受信したか否かを判定する。第１接点オン信号を受信した場合には、ステップＳ６においてＹＥＳであると判定され、処理はステップＳ７に移る。これに対し、第１接点オン信号を受信していない場合には、ステップＳ６においてＮＯであると判定され、タッチ検出動作処理は終了となる。
【００６２】
ステップＳ７において、ステータス増加回路５３は、ＳＴに“１”をセットすることにより、カウンタメモリ５６に記憶されたＳＴの値を“１”に更新する。
ステップＳ８において、第１カウンタ５４は、カウンタメモリ５６のＶＣをリセットする。
ステップＳ９において、第１カウンタ５４は、カウンタメモリ５６のＶＣ（押鍵バイアス時間）のカウントを開始し、カウンタメモリ５６のＶＣにおいて加算する。この処理が終了するとタッチ検出動作処理は終了となる。
【００６３】
図１２に示すように、ステップＳ１０において、コントローラ５１は、カウンタメモリ５６のＳＴの値が“１”であるか否かを判定する。ＳＴの値が“１”である場合、ステップＳ１０においてＹＥＳであると判定されて、処理はステップＳ１１に移る。これに対し、ＳＴの値が“１”でない場合、ステップＳ１０においてＮＯであると判定されて、処理はステップＳ２１に移る。ステップＳ２１以降の処理については、後述する。
【００６４】
ステップＳ１１において、コントローラ５１は、第１接点オン信号を受信したか否かを判定する。第１接点オン信号を受信した場合には、ステップＳ１１においてＹＥＳであると判定され、処理はステップＳ１２に移る。これに対し、第１接点オン信号を受信していない場合には、ステップＳ１１においてＮＯであると判定され、処理はステップＳ２５に進む。ステップＳ２５以降の処理については、後述する。
【００６５】
図１３に示すように、ステップＳ１２において、コントローラ５１は、第２接点オン信号を受信したか否かを判定する。第２接点オン信号を受信した場合には、ステップＳ１２においてＹＥＳであると判定され、処理はステップＳ１３に移る。これに対し、第２接点オン信号を受信していない場合には、ステップＳ１２においてＮＯであると判定され、処理はステップＳ１７に移る。ステップＳ１７以降の処理については、後述する。
【００６６】
図１４に示すように、ステップＳ１３において、ステータス増加回路５３は、ＳＴに“３”をセットすることにより、カウンタメモリ５６に記憶されたＳＴの値を“３”に更新する。
ステップＳ１４において、第２カウンタ５５は、カウンタメモリ５６のＴＣをリセットする。
ステップＳ１５において、第２カウンタ５５は、ＴＣのカウントを開始し、カウンタメモリ５６のＴＣを加算する。
ステップＳ１６において、ＥＶフラグセット回路５２は、モードが「ｎｏｔｅ  ｏｎ  ２  ｅｎａｂｌｅ」である場合には、ＥＶに“１”をセットすることにより、カウンタメモリ５６に記憶されたＥＶの値を“１”に更新する。この処理が終了すると、タッチ検出動作処理は終了となる。
【００６７】
図１３に戻って、ステップＳ１７において、コントローラ５１は、カウンタメモリ５６のＶＣが予め設定された押鍵バイアス時間と一致するか否か、即ち、ＶＣが予め定めた所定値と一致することにより押鍵バイアス時間に到達したか否かを判定する。ＶＣが押鍵バイアス時間と一致する場合には、ステップＳ１７においてＹＥＳであると判定されて、処理はステップＳ１８に移る。これに対し、ＶＣが押鍵バイアス時間と一致しない場合には、ステップＳ１７においてＮＯであると判定されて、処理はステップＳ２１に移る。ステップＳ２１以降の処理については、後述する。
【００６８】
ステップＳ１８において、ステータス増加回路５３は、ＳＴに“２”をセットすることにより、カウンタメモリ５６に記憶されたＳＴの値を“２”に更新する。
ステップＳ１９において、第１カウンタ５４は、カウンタメモリ５６のＶＣをリセットする。
【００６９】
ステップＳ２０において、第１カウンタ５４は、カウンタメモリ５６のＶＣ（押鍵ベロシティ測定値）のカウントを開始し、カウンタメモリ５６のＶＣを加算する。この処理が終了するとタッチ検出動作処理は終了となる。
【００７０】
ステップＳ２１において、第１カウンタ５４は、ＶＣカウントアップを行い、カウンタメモリ５６のＶＣの加算を継続する。
【００７１】
図１２に戻って、ステップＳ２２において、コントローラ５１は、カウンタメモリ５６のＳＴの値が“２”であるか否かを判定する。ＳＴの値が“２”である場合には、ステップＳ２２においてＹＥＳであると判定されて、処理はステップＳ２３に移る。これに対し、ＳＴの値が“２”でない場合には、ステップＳ２２においてＮＯであると判定されて、処理はステップＳ２６に処理を移す。ステップＳ２６以降の処理については、後述する。
【００７２】
ステップＳ２３において、コントローラ５１は、第１接点オン信号を受信したか否かを判定する。第１接点オン信号を受信した場合には、ステップＳ２３においてＹＥＳであると判定されて、処理はステップＳ２４に移る。これに対し、第１接点オン信号を受信していない場合には、ステップＳ２３においてＮＯであると判定されて、処理はステップＳ２５に動作を移す。ステップＳ２５以降の処理については、後述する。
【００７３】
図１３に示すように、ステップＳ２４において、コントローラ５１は、第２接点オン信号を受信したか否かを判定する。第２接点オン信号を受信した場合には、ステップＳ２４においてＹＥＳであると判定されて、処理はステップＳ１３に移る。これに対し、第２接点オン信号を受信していない場合には、ステップＳ２４においてＮＯであると判定されて、処理はステップＳ２１に移る。
【００７４】
図１２に示すように、ステップＳ２５において、ステータス増加回路５３は、ＳＴに“０”をセットすることにより、カウンタメモリ５６に記憶されたＳＴの値を“０”に更新する。この処理が終了するとタッチ検出動作処理は終了となる。
【００７５】
図１５に示すように、ステップＳ２６において、コントローラ５１は、カウンタメモリ５６のＳＴの値が“３”であるか否かを判定する。ＳＴの値が“３”である場合にはステップＳ２６においてＹＥＳであると判定されて、処理はステップＳ２６に移る。これに対し、ＳＴの値が“３”でない場合には、ステップＳ２６においてＮＯであると判定されて、処理はステップＳ３０に移る。ステップＳ３０以降の処理については、後述する。
【００７６】
ステップＳ２７において、比較回路５８は、第１到達時間メモリ５７ａに記憶された押鍵到達時間と、カウンタメモリ５６のＴＣと、を比較し、押鍵到達時間とＴＣとが一致するか否かを判定する。押鍵到達時間とＴＣとが一致すると判定した場合には、ステップＳ２７においてＹＥＳであると判定され、処理はステップＳ２８に移る。これに対し、押鍵到達時間とＴＣとが一致しないと判定した場合はステップＳ２７においてＮＯであると判定されて、処理はステップＳ２９に移る。ステップＳ２９以降の処理については、後述する。
【００７７】
ステップＳ２８において、ステータス増加回路５３は、ＳＴに“４”をセットすることにより、カウンタメモリ５６に記憶されたＳＴの値を“４”に更新する。この処理が終了すると、タッチ検出動作処理は終了となる。
【００７８】
ステップＳ２９において、第２カウンタ５５は、ＴＣカウントアップを行い、カウンタメモリ５６のＴＣの加算を継続する。この処理が終了すると、タッチ検出動作処理は終了となる。
【００７９】
ステップＳ３０において、コントローラ５１は、カウンタメモリ５６のＳＴの値が“４”であるか否かを判定する。ＳＴの値が“４”である場合にはステップＳ３０においてＹＥＳであると判定されて、処理はステップＳ３１に移る。これに対し、ＳＴの値が“４”でない場合には、ステップＳ３０においてＮＯであると判定されて、処理はステップＳ３５に移る。ステップＳ３５以降の処理については、後述する。
【００８０】
ステップＳ３１において、コントローラ５１は、第２接点オン信号を受信したか否かを判定する。第２接点オン信号を受信した場合には、ステップＳ３１においてＹＥＳであると判定されて、処理はステップＳ３２に移る。これに対し、第２接点オン信号を受信していない場合には、ステップＳ３１においてＮＯであると判定されて、タッチ検出動作処理は終了となる。
【００８１】
ステップＳ３２において、ステータス増加回路５３は、ＳＴに“５”をセットすることにより、カウンタメモリ５６に記憶されたＳＴの値を“５”に更新する。
ステップＳ３３において、第１カウンタ５４は、カウンタメモリ５６のＶＣをリセットする。
ステップＳ３４において、第１カウンタ５４は、カウンタメモリ５６のＶＣ（離鍵バイアス時間）のカウントを開始し、カウンタメモリ５６のＶＣにおいて加算する。この処理が終了するとタッチ検出動作処理は終了となる。
【００８２】
図１６に示すように、ステップＳ３５において、コントローラ５１は、カウンタメモリ５６のＳＴの値が“５”であるか否かを判定する。ＳＴの値が“５”である場合、ステップＳ３５においてＹＥＳであると判定されて、処理はステップＳ３６に移る。これに対し、ＳＴの値が“５”でない場合、ステップＳ３６においてＮＯであると判定されて、処理はステップＳ４７に移る。ステップＳ４７以降の処理については、後述する。
【００８３】
ステップＳ３６において、コントローラ５１は、第１接点オフ信号を受信したか否かを判定する。第１接点オフ信号を受信した場合には、ステップＳ３６においてＹＥＳであると判定され、処理はステップＳ３７に移る。これに対し、第１接点オフ信号を受信していない場合には、ステップＳ３６においてＮＯであると判定され、処理はステップＳ５０に進む。ステップＳ５０以降の処理については、後述する。
【００８４】
図１７に示すように、ステップＳ３７において、コントローラ５１は、第１接点オフ信号を受信したか否かを判定する。第１接点オフ信号を受信した場合には、ステップＳ３７においてＹＥＳであると判定され、処理はステップＳ３８に移る。これに対し、第１接点オフ信号を受信していない場合には、ステップＳ３７においてＮＯであると判定され、処理はステップＳ４２に移る。ステップＳ４２以降の処理については、後述する。
【００８５】
図１８に示すように、ステップＳ３８において、ステータス増加回路５３は、ＳＴに“７”をセットすることにより、カウンタメモリ５６に記憶されたＳＴの値を“７”に更新する。
ステップＳ３９において、第２カウンタ５５は、カウンタメモリ５６のＴＣをリセットする。
ステップＳ４０において、第２カウンタ５５は、ＴＣのカウントを開始し、カウンタメモリ５６のＴＣを加算する。
ステップＳ４１において、ＥＶフラグセット回路５２は、モードが「ｎｏｔｅ  ｏｆｆ  ｅｎａｂｌｅ」である場合には、ＥＶに“１”をセットすることにより、カウンタメモリ５６に記憶されたＥＶの値を“１”に更新する。この処理が終了すると、タッチ検出動作処理は終了となる。
【００８６】
図１７に戻って、ステップＳ４２において、コントローラ５１は、カウンタメモリ５６のＶＣが予め設定された離鍵バイアス時間と一致するか否か、即ち、ＶＣが予め定めた所定値と一致することにより離鍵バイアス時間に到達したか否かを判定する。ＶＣが離鍵バイアス時間と一致する場合には、ステップＳ４２においてＹＥＳであると判定されて、処理はステップＳ４３に移る。これに対し、ＶＣが離鍵バイアス時間と一致しない場合には、ステップＳ４２においてＮＯであると判定されて、処理はステップＳ４６に移る。ステップＳ４６以降の処理については、後述する。
【００８７】
ステップＳ４３において、ステータス増加回路５３は、ＳＴに“６”をセットすることにより、カウンタメモリ５６に記憶されたＳＴの値を“６”に更新する。
ステップＳ４４において、第１カウンタ５４は、カウンタメモリ５６のＶＣをリセットする。
【００８８】
ステップＳ４５において、第１カウンタ５４は、カウンタメモリ５６のＶＣ（離鍵ベロシティ測定値）のカウントを開始し、カウンタメモリ５６のＶＣを加算する。この処理が終了するとタッチ検出動作処理は終了となる。
【００８９】
ステップＳ４６において、第１カウンタ５４は、ＶＣカウントアップを行い、カウンタメモリ５６のＶＣの加算を継続する。
【００９０】
図１６に戻って、ステップＳ４７において、コントローラ５１は、カウンタメモリ５６のＳＴの値が“６”であるか否かを判定する。ＳＴの値が“６”である場合には、ステップＳ４７においてＹＥＳであると判定されて、処理はステップＳ４８に移る。これに対し、ＳＴの値が“６”でない場合には、ステップＳ４７においてＮＯであると判定されて、処理はステップＳ５１に処理を移す。ステップＳ５１以降の処理については、後述する。
【００９１】
ステップＳ４８において、コントローラ５１は、第１接点オフ信号を受信したか否かを判定する。第１接点オフ信号を受信した場合には、ステップＳ４８においてＹＥＳであると判定されて、処理はステップＳ４９に移る。これに対し、第１接点オフ信号を受信していない場合には、ステップＳ４８においてＮＯであると判定されて、処理はステップＳ５０に動作を移す。ステップＳ５０以降の処理については、後述する。
【００９２】
図１７に示すように、ステップＳ４９において、コントローラ５１は、第１接点オフ信号を受信したか否かを判定する。第１接点オフ信号を受信した場合には、ステップＳ４９においてＹＥＳであると判定されて、処理はステップＳ３８に移る。これに対し、第１接点オフ信号を受信していない場合には、ステップＳ４９においてＮＯであると判定されて、処理はステップＳ４６に移る。
【００９３】
図１６に示すように、ステップＳ５０において、ステータス増加回路５３は、ＳＴに“５”をセットすることにより、カウンタメモリ５６に記憶されたＳＴの値を“５”に更新する。
【００９４】
図１９に示すように、ステップＳ５１において、コントローラ５１は、カウンタメモリ５６のＳＴの値が“７”であるか否かを判定する。ＳＴの値が“７”である場合にはステップＳ５１においてＹＥＳであると判定されて、処理はステップＳ５２に移る。これに対し、ＳＴの値が“７”でない場合には、ステップＳ５１においてＮＯであると判定されて、タッチ検出動作処理は終了となる。
【００９５】
ステップＳ５２において、コントローラ５１は、第２接点オフ信号を受信したか否かを判定する。第２接点オフ信号を受信した場合には、ステップＳ５２においてＹＥＳであると判定されて、処理はステップＳ５３に移る。これに対し、第２接点オフ信号を受信していない場合には、ステップＳ５２においてＮＯであると判定されて、処理はステップＳ５７に動作を移す。ステップＳ５７以降の処理については、後述する。
【００９６】
ステップＳ５３において、コントローラ５１は、第１接点オフ信号を受信したか否かを判定する。第１接点オフ信号を受信した場合には、ステップＳ５３においてＹＥＳであると判定されて、処理はステップＳ５４に移る。これに対し、第１接点オフ信号を受信していない場合には、ステップＳ５３においてＮＯであると判定されて、処理はステップＳ５７に動作を移す。ステップＳ５７以降の処理については、後述する。
【００９７】
ステップＳ５４において、比較回路５８は、第２到達時間メモリ５７ｂに記憶されたダンパーオン時間と、カウンタメモリ５６のＴＣと、を比較し、ダンパーオン時間とＴＣとが一致するか否かを判定する。ダンパーオン時間とＴＣとが一致すると判定した場合には、ステップＳ５４においてＹＥＳであると判定され、処理はステップＳ５５に移る。これに対し、一致しないと判定した場合はステップＳ５４においてＮＯであると判定されて、処理はステップＳ５６に移る。ステップＳ５６以降の処理については、後述する。
【００９８】
ステップＳ５５において、ＥＶフラグセット回路５２は、ＥＶに“１”をセットすることにより、カウンタメモリ５６に記憶されたＥＶの値を“１”に更新する。この処理が終了すると、タッチ検出動作処理は終了となる。
【００９９】
ステップＳ５６において、第２カウンタ５５は、ＴＣカウントアップを行い、カウンタメモリ５６のＴＣの加算を継続する。この処理が終了すると、タッチ検出動作処理は終了となる。
【０１００】
ステップＳ５７において、ステータス増加回路５３は、モードが「ｍｏｄｅ０」である場合、ＳＴに“１”をセットすることにより、カウンタメモリ５６に記憶されたＳＴの値を“１”に更新する。また、ステータス増加回路５３は、モードが「ｍｏｄｅ１」である場合、ＳＴに“４”をセットすることにより、カウンタメモリ５６に記憶されたＳＴの値を“４”に更新する。この処理が終了すると、タッチ検出動作処理は終了となる。
【０１０１】
以上説明したように、本実施形態のタッチ検出装置５０は、第１接点１６０ａと、第２接点１６０ｂと、押鍵カウンタ（第１カウンタ５４）と、ノートオンイベント生成部としてのコントローラ５１と、離鍵カウンタ（第２カウンタ５５）と、ノートオフイベント生成部としてのコントローラ５１と、を有する。
第１接点１６０ａは、発音すべき楽音の音高を指定する鍵毎に設けられ、当該鍵に対する押鍵操作による押下量が第１の値になったときにオンになるとともに、離鍵操作により押下量が第１の値に戻ったときにオフになる。
第２接点１６０ｂは、押鍵操作により鍵の押下量が第１の値より大きい第２の値になったときにオンになるとともに、離鍵操作により押下量が第２の値に戻ったときにオフになる。
押鍵カウンタ（第１カウンタ５４）は、押鍵操作により、第１接点がオンになってから、第２接点がオンになるまでの時間をカウントする。
ノートオンイベント生成部としてのコントローラ５１は、第２接点１６０ｂがオンになると、押鍵カウンタ（第１カウンタ５４）にてカウントされた時間に対応する音量でかつ押鍵された鍵に対応する音高の楽音の発音を指示するノートオンイベントを生成する。
離鍵カウンタ（第２カウンタ５５）は、離鍵操作により、第２接点１６０ｂがオフになってから、第１接点１６０ａがオフになる時点までの時間をカウントする。
ノートオフイベント生成部としてのコントローラ５１は、第１接点１６０ａがオフになってから離鍵カウンタのカウント値に対応する時間経過後、離鍵された鍵に対応する音高の楽音の消音を指示するノートオフイベントを生成する。
これにより、第１接点１６０ａと第２接点１６０ｂとの２つの接点（スイッチ）でダンパーオン到達時間を予測することにより、任意に設定できるノートオフイベントが発生する位置を２つの接点のオフの時間差から発生させることができる。これにより、２つの接点のみで、３つの接点を有する電子ピアノと同様な同音連打やトリルを実現することができ、多様な音の重なりを制御することができる。さらに、２つの接点（スイッチ）のみで離鍵到達時間を予測するので、離鍵タイミングを検知するため専用の接点（スイッチ）や回路を不要にし、コストの低減を図ることができる。
【０１０２】
また、本実施形態のタッチ検出装置５０は、さらに、判別部としてのコントローラ５１と、制御部としてのコントローラ５１と、を有する。
判別部としてのコントローラ５１は、ノートオンイベント生成部としてのコントローラ５１によるノートオフイベント生成前に、第１接点１６０ａが再度オンになったか否かを判別する。
制御部としてのコントローラ５１は、判別部としてのコントローラ５１により再度オンになったと判別された場合は、ノートオフイベント生成部としてのコントローラ５１でノートオフイベントの生成をさせずに、第２接点１６０ｂがオンになった時点でノートオンイベント生成部としてのコントローラ５１に対して押鍵されている鍵に対応する音高の楽音の発音を指示する新たなノートオンイベントを生成させるように制御する。
これにより、第１接点１６０ａをストロークの深い位置に設置することで、２つの接点のみで、３つの接点を有する電子ピアノと同様に、深い位置でのストローク振幅の少ない連打、トリルを実現することができ、３つの接点を有する電子ピアノと同様な連打性能を実現することができる。
【０１０３】
また、本実施形態のタッチ検出装置５０は、離鍵操作により、第１接点１６０ａがオフになった時点で、ノートオフイベント生成部としてのコントローラ５１に対して、離鍵された鍵に対応する音高の楽音の消音を指示する新たなノートオフイベントを生成させる。これにより、ユーザの所望に応じて第１接点１６０ａのオフに基づき即座に音を消音させることができる。
【０１０４】
また、本実施形態のタッチ検出装置５０のノートオンイベント生成部としてのコントローラ５１は、押鍵カウンタ（第１カウンタ５４）のカウント値に対応する時間経過後に、ノートオンイベントを生成する。これにより、ユーザの所望のタイミングで音を発音することができる。
【０１０５】
また、本実施形態のタッチ検出装置５０は、複数種の音高が夫々対応付けられた複数の鍵と、複数の鍵毎に設けられ、押鍵操作に応じて、各鍵の押下量が相互に異なる位置で順次オン又はオフされる第１接点１６０ａ及び第２接点１６０ｂと、ノートオンイベントにより所定種類の音を発音させる発音制御部としてのＣＰＵ１１と、ノートオフイベント又はダンパーオンイベント（ノートオフイベント）により所定種類の音を消音させる消音制御部としてのＣＰＵ１１と、を備えた電子楽器のタッチ検出装置１００であって、第１カウンタ５４と、コントローラ５１と、第２カウンタ５５と、比較回路５８と、を備える。
第１カウンタ５４は、第１接点１６０ａ及び第２接点１６０ｂの夫々のオフ検出信号に基づいて、第２接点１６０ｂがオフされてから第１接点１６０ａがオフされるまでの時間をカウントする。
コントローラ５１は、第１カウンタ５４により第２接点１６０ｂがオフされてから第１接点１６０ａがオフされるまでカウントされた時間に基づいて、ダンパーオンイベント（ノートオフイベント）の発生に到達する時間であるダンパーオン到達時間を予測する。
第２カウンタ５５は、ダンパーオン到達時間と比較する時間をカウントする。
比較回路５８は、第２カウンタ５５によりカウントされた時間とダンパーオン到達時間とを比較し、一致したとき、ダンパーオンイベント（ノートオフイベント）を発生させるための離鍵一致信号をコントローラ５１に送信する。
そして、コントローラ５１は、比較回路５８から離鍵一致信号が送信されてきた場合、ダンパーオンイベント（ノートオフイベント）を発生させる制御を実行する。
これにより、第１接点１６０ａと第２接点１６０ｂとの２つの接点（スイッチ）でダンパーオン到達時間を予測することにより、任意に設定できるノートオフイベントが発生する位置を２つの接点のオフの時間差から発生させることができる。これにより、２つの接点のみで、３つの接点を有する電子ピアノと同様な同音連打やトリルを実現することができ、多様な音の重なりを制御することができる。さらに、２つの接点（スイッチ）のみで離鍵到達時間を予測するので、離鍵タイミングを検知するため専用の接点（スイッチ）や回路を不要にし、コストの低減を図ることができる。
【０１０６】
また、本実施形態のタッチ検出装置５０のコントローラ５１は、比較回路５８から離鍵一致信号が送信されてくる前に、第１接点１６０ａ及び第２接点１６０ｂの夫々のオン検出信号が供給された場合、ダンパーオンイベント（ノートオフイベント）の発生を禁止して、ノートオンイベントを発生させる制御を実行する。
これにより、第１接点１６０ａをストロークの深い位置に設置することで、２つの接点のみで、３つの接点を有する電子ピアノと同様に、深い位置でのストローク振幅の少ない連打、トリルを実現することができ、３つの接点を有する電子ピアノと同様な連打性能を実現することができる。
【０１０７】
また、本実施形態のタッチ検出装置５０は、ノートオンイベントの発生の有無を選択可能な複数のモードが少なくとも設けられている。そして、コントローラ５１は、複数のモードのうち選択されているモードに基づいて、ノートオンイベントの発生の有無を制御する。
これにより、様々な連打性能をユーザの所望に応じて選択されたモードに基づいて実現することができる。
【０１０８】
また、本実施形態のタッチ検出装置５０は、第１接点１６０ａがオフされたときにノートオフイベントを発生させるモードが少なくとも設けられている。そして、コントローラ５１は、当該モードが選択されている場合、第１接点１６０ａのオフ検出信号が供給されたとき、ノートオフイベントの発生を制御する。
これにより、ユーザの所望に応じて選択されたモードに基づいて第１接点１６０ａのオフに基づき即座に音を消音させることができる。
【０１０９】
また、本実施形態のタッチ検出装置５０の第１カウンタ５４は、第１接点１６０ａ及び第２接点１６０ｂの夫々のオン検出信号に基づいて、第１接点１６０ａがオンされてから第２接点１６０ｂがオンされるまでの時間をカウントする。また、第２カウンタ５５は、ノートオンイベントの発生に到達する時間である押鍵到達時間と比較する時間をカウントする。
そして、比較回路５８は、さらに、第２カウンタ５５によりカウントされた時間と押鍵到達時間とを比較し、一致したとき、ノートオンイベントを発生させるための押鍵一致信号をコントローラ５１に送信し、コントローラ５１は、さらに、比較回路５８から押鍵一致信号が送信されてきた場合、ノートオンイベントを発生させる制御を実行する。
これにより、任意に設定できるノートオンイベントが発生する位置を２つの接点のオンの時間差から発生させることができる。
これにより、２つの接点のみで、３つの接点を有する電子ピアノと同様な同音連打やトリルを実現することができる。
【０１１０】
また、本実施形態のタッチ検出装置５０の第２接点１６０ｂがオフされてから第１接点１６０ａがオフされるまでの時間をカウントするカウンタと、第１接点１６０ａがオンされてから第２接点１６０ｂがオンされるまでの時間をカウントするカウンタは同一の第１カウンタ５４により構成される。
これにより、１つのカウンタ（第１カウンタ５４）のみで、離鍵ベロシティ測定値と押鍵ベロシティ測定値の両方をカウントすることができるので、部品点数を減らし、コストの削減を図ることができる。
【０１１１】
また、本実施形態のタッチ検出装置５０は、第２接点１６０ｂがオンされたときにノートオンイベントを発生させるモードが少なくとも設けられている。そして、コントローラ５１は、当該モードが選択されている場合、第２接点１６０ｂのオン検出信号が供給されたとき、ノートオンイベントの発生を制御する。
これにより、ユーザの所望に応じて選択されたモードに基づいて第２接点１６０ｂのオンに基づき即座に音を発生させることができ、音色毎に最適なタイミングで発音することができる。
【０１１２】
また、本実施形態のタッチ検出装置５０の比較回路４９は、所定条件を満たした場合、ダンパーオン到達時間として、コントローラ５１の予測結果の代わりに、一定時間を用いる。
これにより、２接点１６０ｂがオフされてから第１接点１６０ａがオフされるまでの時間に関わらずダンパーオン到達時間を一定にすることができ、時間のばらつきによる音のばらつきを抑えることができる。
【０１１３】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【０１１４】
例えば、上述の実施形態では、鍵の数を８８個とし、カウンタメモリに８８個の特定のアドレスを設けたが、これに限らず、例えば、カウンタメモリの特定のアドレスは、鍵の数以上であれば任意の数としてもよい。
【０１１５】
また、上述の実施形態では、カウンタメモリ５６と到達時間メモリ５７とを夫々設けたが、これに限らず、例えば、カウンタメモリ５６と到達時間メモリ５７とを含む１つのメモリを設けてもよい。
【０１１６】
また、上述の実施形態では、カウンタメモリ５６の記録内容は、測定されたものが用いられたが、これに限らず、例えば、後から変更されたものが用いられてもよい。制御回路に各カウンタによるカウント値（計測値）がカウンタメモリ５６に格納され、オフベロシティで参照される場合、カウンタメモリ５６の値を書き換えることにより、ダンパーオン到達時間の変更、即ち、ストローク位置を変更することも可能である。
また、音色やユーザの好みで鍵盤設定を変える仕様にも対応できる。即ち、複数の音色パラメータの夫々に対応する複数のカウンタメモリ５６が存在し、制御回路は、複数の音色パラメータのうち、指定された音色パラメータに対応するカウンタメモリの記録内容に基づいて、ダンパーオン到達時間を予測する、ことも可能である。これにより、様々な音色に対応して離鍵到達時間を予測することができるので、音色に特有の音を表現することができる。
【０１１７】
また、上述の実施形態では、本発明に係るタッチ検出装置が適用される電子楽器は、電子ピアノを例として説明したが、特にこれに限定されない。
例えば、本発明は、タッチ検出機能を有する電子機器一般に適用することができる。具体的には、例えば、本発明は、ノート型のパーソナルコンピュータ、プリンタ、テレビジョン受像機、ビデオカメラ、携帯型ナビゲーション装置、携帯電話機、ポータブルゲーム機等に適用可能である。
換言すると、図１のハードウェア構成は例示に過ぎず、特に限定されない。
【０１１８】
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１１９】
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
［付記１］
発音すべき楽音の音高を指定する鍵毎に設けられ、当該鍵に対する押鍵操作による押下量が第１の値になったときにオンになるとともに、離鍵操作により押下量が前記第１の値に戻ったときにオフになる第１接点と、
前記押鍵操作により前記鍵の押下量が前記第１の値より大きい第２の値になったときにオンになるとともに、前記離鍵操作により押下量が前記第２の値に戻ったときにオフになる第２接点と、
前記押鍵操作により、前記第１接点がオンになってから、前記第２接点がオンになるまでの時間をカウントする押鍵カウンタと、
前記第２接点がオンになると、前記押鍵カウンタにてカウントされた時間に対応する音量でかつ前記押鍵された鍵に対応する音高の楽音の発音を指示するノートオンイベントを生成するノートオンイベント生成手段と、
前記離鍵操作により、前記第２接点がオフになってから、前記第１接点がオフになる時点までの時間をカウントする離鍵カウンタと、
前記第１接点がオフになってから前記離鍵カウンタのカウント値に対応する時間経過後、前記離鍵された鍵に対応する音高の楽音の消音を指示するノートオフイベントを生成するノートオフイベント生成手段と、
を有するタッチ検出装置。
［付記２］
前記タッチ検出装置はさらに、
前記ノートオフイベント生成手段によるノートオフイベント生成前に、前記第１接点が再度オンになったか否かを判別する判別手段と、
前記判別手段により再度オンになったと判別された場合は、前記ノートオフイベント生成手段で前記ノートオフイベントの生成をさせずに、前記第２接点がオンになった時点で前記ノートオンイベント生成手段に対して前記押鍵されている鍵に対応する音高の楽音の発音を指示する新たなノートオンイベントを生成させるように制御する制御手段と、
を有する付記１記載のタッチ検出装置。
［付記３］
前記タッチ検出装置はさらに、
前記離鍵操作により、前記第１接点がオフになった時点で、前記ノートオフイベント生成手段に対して、前記離鍵された鍵に対応する音高の楽音の消音を指示する新たなノートオフイベントを生成させる付記１又は２に記載のタッチ検出装置。
［付記４］
前記ノートオンイベント生成手段は、前記押鍵カウンタのカウント値に対応する時間経過後に、前記ノートオンイベントを生成する付記１乃至３のいずれかに記載のタッチ検出装置。
［付記５］
前記ノートオンイベント生成手段は、前記第２接点がオンになった時点で、前記ノートオンイベントを生成する付記４に記載タッチ検出装置。
［付記６］
発音すべき楽音の音高を指定する鍵毎に設けられ、当該鍵に対する押鍵操作による押下量が第１の値になったときにオンになるとともに、離鍵操作により押下量が前記第１の値に戻ったときにオフになる第１接点と、前記押鍵操作により前記鍵の押下量が前記第１の値より大きい第２の値になったときにオンになるとともに、前記離鍵操作により押下量が前記第２の値に戻ったときにオフになる第２接点と、を有するタッチ検出装置が実行するタッチ検出方法であって、
前記押鍵操作により、前記第１接点がオンになってから、前記第２接点がオンになるまでの押鍵時間をカウントし、
前記第２接点がオンになると、前記カウントされた押鍵時間に対応する音量でかつ前記押鍵された鍵に対応する音高の楽音の発音を指示するノートオンイベントを生成し、
前記離鍵操作により、前記第２接点がオフになってから、前記第１接点がオンからオフになるまでの離鍵時間をカウントし、
前記第１接点がオフになってから前記カウントされた離鍵時間に対応する時間経過後、前記離鍵された鍵に対応する音高の楽音の消音を指示するノートオフイベントを生成する、タッチ検出方法。
［付記７］
発音すべき楽音の音高を指定する鍵毎に設けられ、当該鍵に対する押鍵操作による押下量が第１の値になったときにオンになるとともに、離鍵操作により押下量が前記第１の値に戻ったときにオフになる第１接点と、前記押鍵操作により前記鍵の押下量が前記第１の値より大きい第２の値になったときにオンになるとともに、前記離鍵操作により押下量が前記第２の値に戻ったときにオフになる第２接点と、を有するタッチ検出装置として用いられるコンピュータに、
前記押鍵操作により、前記第１接点がオンになってから、前記第２接点がオンになるまでの押鍵時間をカウントするステップと、
前記第２接点がオンになると、前記カウントされた押鍵時間に対応する音量でかつ前記押鍵された鍵に対応する音高の楽音の発音を指示するノートオンイベントを生成するステップと、
前記離鍵操作により、前記第２接点がオフになってから、前記第１接点がオフになるまでの離鍵時間をカウントするステップと、
前記第１接点がオフになってから前記カウントされた離鍵時間に対応する時間経過後、前記離鍵された鍵に対応する音高の楽音の消音を指示するノートオフイベントを生成するするステップと、
を実行させるプログラム。
【符号の説明】
【０１２０】
１，１Ａ，１Ｂ，１Ｃ・・・電子楽器、１１・・・ＣＰＵ、１２・・・ＲＯＭ、１３・・・ＲＡＭ、１４・・・バス、１５・・・入出力インターフェース、１６・・・入力部、１７・・・出力部、１８・・・記憶部、１９・・・ＭＩＤＩインターフェース部、２０・・・ドライブ、３１・・・リムーバブルメディア、４１・・・音源、５０・・・タッチ検出装置、５１・・・コントローラ、５２・・・ＥＶフラグセット回路、５３・・・ステータス増加回路、５４・・・第１カウンタ、５５・・・第２カウンタ、５６・・・カウンタメモリ、５７・・・到達時間メモリ、５７ａ・・・第１到達時間メモリ、５７ｂ・・・第２到達時間メモリ、５８・・・比較回路、５９・・・反転回路、６１・・・ベロシティレジスタ、６２・・・ノートナンバレジスタ、１６０・・・鍵スイッチマトリクス、１６０ａ・・・第１接点、１６０ｂ・・・第２接点
【図１】
2015045829.tif 000003
【図２】
2015045829.tif 000004
【図３】
2015045829.tif 000005
【図４】
2015045829.tif 000006
【図５】
2015045829.tif 000007
【図６】
2015045829.tif 000008
【図７】
2015045829.tif 000009
【図８】
2015045829.tif 000010
【図９】
2015045829.tif 000011
【図１０】
2015045829.tif 000012
【図１１】
2015045829.tif 000013
【図１２】
2015045829.tif 000014
【図１３】
2015045829.tif 000015
【図１４】
2015045829.tif 000016
【図１５】
2015045829.tif 000017
【図１６】
2015045829.tif 000018
【図１７】
2015045829.tif 000019
【図１８】
2015045829.tif 000020
【図１９】
2015045829.tif 000021